Code analysis and legacy modernisation
There's code analysis automation beyond SPARK...
In feedback to the article I co-wrote here, I was accused of being “way ahead of the game” so far as ordinary development goes.
Well, I was just talking to Mike Oara, CTO of Relativity and his colleague, product marketing manager Peter Mollins; and they seem to have some very similar ideas in the much more prosaic “legacy application modernisation” space. I wouldn't push the similarities too far, but the differences in approaches are a matter of degree, not kind.
Relativity uses some form of static analysis of legacy source code (in languages such as COBOL, PL1 Natural, Java – even 370 Assembler) to populate a metadata repository with information about what the application being analysed actually does.
This can be extracted in various forms and used as a foundation for a spectrum of activities from replacing the application entirely, to merely maintaining it as the business changes. You come a bit unstuck if you don't have the source code (not as unusual as you might hope) but you usually have enough of it to let the Relativity tools identify missing copybooks and "dead" code, which should be a big help.
In fact, an immediate payback from using the Relativity tools may be to prune this dead code from the legacy application; – code corresponding to obsolete functions, perhaps, that you've been too frightened to remove, because you’re not sure what else it might be used for – leading immediately to improved performance and reduced overheads.
And, most important of all, there's an SDK and the repository complies with OMG standards, so using Relativity shouldn't just move you from one proprietary lock-in to another. It comes with a new TLA (EAM or Enterprise Application Modernisation) but if you can forgive it that (a struggle, I know), Dirk Slama, chief strategy officer with Interactive Objects, confirms that Relativity's Modernization Workbench repository is something other products can build on.
In a Relativity press release, he says: “a proven path to modernized applications is via a standards-compliant approach based on [the OMG’s] Model Driven Architecture”. He goes on to say that, “by leveraging extracted information stored in [Relativity’s] Modernization Workbench repository, our technology can ensure the modernization of mainframe applications to environments such as Java. The process of connecting our technology to the Modernization Workbench via the EAM Framework made deploying a new EAM offer simple and efficient.”
This is just fine and dandy, but I bet end users of this stuff still meet real issues - and that most of these are people issues, to do with managers protecting their legacy fiefdoms and technicians protecting the knowledge which (they think) protects their careers. However, you'll meet these issues anyway and the resources you free up by automating the discovery of the business rules in your legacy systems and suchlike, and pruning them to match your real business requirements, can be redeployed to the more productive tasks of getting your business systems analysis right and aligning it with you IT systems.
Relativity recently made its EAM Framework available to its technology partners. It is packaged as a Software Development Kit, with documentation of Java APIs and detailed examples that should help to facilitate real integration projects. ®