Better integration of high-level modeling tools and low-level code is an objective behind the partnership of modeler No Magic and code-generation specialist Blu Age. The parties are aware of the mixed reviews UML model-driven code generation has garnered, but see potential for the approach and are pursuing increasingly popular Spring applications, as well as Java.
The fruits of the union between No Magic's UML modeling tools and Blu Age's code generation tools are available for Spring and Java now, and are expected for Prism and Flex soon. The companies believe that a ''Model2Code'' approach will help deliver on UML's promise as the framework for all aspects of the programming lifecycle.
"UML is becoming the equivalent of Java at a higher level of abstraction," maintains Daniel Brookshier, Chief Architect at No Magic. "Java will run on any machine. A UML model can run on any application server or modeling engine."
When UML was first introduced in 1997, it was a useful tool for graphically depicting software architectures, but there was no easy way to get from the models to finished applications.
"It was kind of sloppy," mused Brookshier. "It was good for understanding and learning and talking about designs, but not code generation."
UML 2.0 attempted to address these shortcomings with a more rigorous model. Brookshier noted that some people saw this as overkill, but this rigor meant that UML could accurately represent software and other ideas in a complex model. UML also had extensibility built in, which paved the way for offshoots: SoaML for modeling SOA, SysML for systems, and PRR for rules.
With the SysML piece, an architect can specify how a particular system will behave in the real world. They can use a wide variety of analysis tools such as Mathematica, Modelica, MATLAB, or Simulink to see how the system will perform, identify bottlenecks, and optimize the way different pieces interact with each other.
All of these different extensions are helping to turn UML into the "common repository and one source of trust you will have throughout the life and death of a product," noted No Magic CEO Gary Duncanson.
Software models walk the last mile
Always at issue is the amount of fidelity with which the models could be converted into code, or, in turn, the fidelity with which existing code could be transformed into models.
Duncanson said that the partnership with Blu Age will help allow standards-based tools to generate code and round trip from the code back into the model. "We can start to generate stuff, and as you start to code the guts and meat, you can get it back into the model," he noted.
No Magic released SOA+ earlier this year to better support SOA-style development. The partnership with Blu Age supports the transformation of all of the components of the model into different mediums, including configuration files, the database definition, J2EE, and Spring.
"We are moving toward a platform independent model so that you can move to different app servers or generate code in a different language," Duncanson explained. "It lets you do more with less by focusing on the models."