Model Driven Architecture offers promise for migrating legacy softwareStory
May 31, 2010
OMG Model Driven Architecture provides a solution to the overall software architecture and constituent artifact problems associated with legacy software migration.
Several significant obstacles exist in migrating legacy software applications. The root cause in many cases can be traced to the overall software architecture and its constituent artifacts. Two primary culprits are software design documentation and underlying platform dependencies such as operating system, target processor, middleware, and programming language, just to name a few. OMG Model Driven Architecture (MDA) provides improvements in both of these problem areas.
Problem 1: Lacking or inaccurate software design documentation
Most legacy software developments initially produce three data repositories: requirements, design, and source code. However, at the end of most developments, the design repository loses synchronization with the source code and requirements repositories. This is because most software developments finish in a similar state: behind schedule, out of money, and with myriad software defects (a.k.a. “features”). Design repository accuracy is not considered critical to development effort completion, so it is left for the scrap heap. This occurs because many software design architectures only depict high-level views and relationships for element structures and behaviors. This problem significantly affects migration of legacy application business logic.
Problem 2: Application software underlying platform dependencies
All software applications have dependencies on the underlying platform technology. The most basic dependency is on the target computer architecture, processor(s), memory architecture, interconnection bus, peripherals, and so on. In most cases a high-level programming language, libraries, and operating system provide an abstraction for the software developer from these hardware dependencies, creating a new set of software dependencies. Depending on the application, additional software dependencies are introduced such as a network stack, distribution middleware, database interface, user interface, security services, and so on. A replacement or significant change in any of these areas greatly affects an application’s business logic even if the software is well structured.
Solution: Model Driven Architecture (MDA)
One emerging solution for both previously stated problems is the concept of the Object Management Group (OMG) Model Driven Architecture (MDA). MDA defines three model levels: Computation Independent Model (CIM), Platform Independent Model (PIM), and multiple Platform Specific Models (PSMs). The PIM models software application structure, behavior, and functionality using the Unified Modeling Language (UML), independent of the underlying platform technology. The PIM is transformed into a series of PSMs that targets specific areas of the underlying platform technology.
One example of a PIM-to-PSM transformation uses a technology known as Executable UML, currently supported by a number of tool vendors. Executable UML translates a PIM into source code (considered a PSM by MDA). Executable UML utilizes a subset of UML 2.x diagrams such as state charts, activity diagrams, class diagrams, and sequence diagrams used to model the PIM. A code generator analyzes the diagrams and automatically generates a source code set based on the compiler that is attached to the tool. Some of the more advanced tools allow selection of the compiler (C, C++, Java, or Ada) and compiler vendor. The more advanced tools also provide capabilities of visual debug and automated test and are integrated with a configuration management environment. It has been shown that this technology can automatically generate 75 to 80 percent of an application’s business logic from UML diagrams. The set of UML diagrams that captures the software design is now used to generate the source code set.
Other PIM-to-PSM translations include UML 2.x ports, interfaces, and active objects. Ports are used to encapsulate interfaces among application business logic and areas of the underlying platform technology (middleware, operating system, and so on). Port stereotypes are used to select PIM-to-PSM translation. For example, a port could be designated as a CORBA Publisher/Subscriber for data distribution. Active objects are used to transform PIM objects to PSM threads (or tasks) in the underlying operating system.
MDA: Grist for software legacy architecture
New software technologies based on OMG MDA with currently available vendor tools offer tremendous potential to extend legacy software life expectancy. These technologies hold the promise of significant improvements in ease of maintenance, rapid integration of new capabilities, and the ability to migrate software to new platform technologies. Sounds too good to be true, doesn’t it? Well, honestly, there is a price to be paid to achieve these architectural improvements. Though far from its idyllic end state, today’s MDA capabilities still offer significant improvements to the current state of legacy software migration.
D.K. McKean is CTO at Advanced Fusion Technologies. He has more than 32 years of experience as a systems engineer, software developer, and software architect, developing real-time embedded and safety-critical software. He can be contacted at [email protected]