Version 2.0 of the universal modelling language could usher in the era of model-driven development, says software architect Shaun Forgie.
Creating one more level of abstraction will make the writing of Java or C++ code as irrelevant as assembler code is now, he says.
The UML 2.0 specification improves the scalability of the modelling language, says Forgie, speaking to a local audience of the Worldwide Institute of Software Architects. A larger repertoire of diagrams is available in version 2.0 describing, for example, “state machines” — a way of formally expressing the behaviour of algorithms. Relations between the various formal representations of processes and data are also more clearly defined in the new version.
A framework has been defined for “executing” the model itself, without needing to create a program to run. All this will make it easier to do much of the development at the level of the model, then generate code, substantially automatically. The code will not be written by human hands and rarely even examined, Forgie predicts.
Previous (1.x) versions of UML had not kept up with the move to component-based development and this was difficult to do with the language, particularly for a real-time system, and generated a lot of untidy proprietary extensions.
Components, the elements of popular development platforms such as J2EE and .Net, have been provided with descriptions showing what each component does and what “ports” it exposes and protocols it uses to communicate with other components. The ports serve to group together the services that may be required of the same component by different groups in the organisation. Hence the concept enhances reusability.
Provisions are also there for the model to be validated and executed, verifying its logic before manual or automatic coding. Models can also be archived and maintained.
Developers now have in their sights a genuine model-driven architecture (MDA), where both process and database elements can be generated from the model, rather than mismatches occurring between an object-oriented application design and a separately designed object-relational database.
UML, Forgie says, now fits more neatly into the whole corpus of disciplines and framework introduced by the Object Management Group. These are now organised into successive levels, with the top level being the meta object facility (MOF). Various meta-models, such as UML itself, Corba and OMG’s component warehouse meta-model are tightly related under this system, all being instances of the MOF. A particular UML model is an instance of UML use and a real-world object is an instance of the model.
Model-driven architecture has already “saved 50% of my development effort, and is likely to save another 50% in the next five years”, Forgie says.
The structure of model driven architecture is still under development, with “UML profiles” gradually emerging to apply the modelling language to different domains, such as systems engineering, application integration and testing.
The Eclipse development environment, funded by IBM (now including Rational) is likely to be the first to implement this complex structure in its entirety. Methods of managing the diagrammatic notation —- the “eye candy” -— are likely to come first, he says, with later attention to the substructure that does the substantive work. Full implementation will take a few more years, he suggests.