MDA
... Main Paper Some people think that Model Driven Architecture (MDA) will be biggest shift in software development since the move from assembler to the first high level languages. Others think that it's nothing more than Night of the Living Case Tools. We’re in the latter camp but feel the need for more than a slick saying. According to research, 67% of UK IT Directors are ignorant of any alternative or complementary solutions to off shoring. Given that Model Driven Architecture (MDA) can provide a less risky and more cost-effective solution – promising savings in excess of 40% in comparison to the 30%-35% that might be achieved through off shoring projects – it’s surprising that 76% of IT Directors questioned have never heard of it. Results indicate that organisations could be potentially losing hundreds of thousands of pounds as a result of lack of awareness of viable substitutes for the growing offshore epidemic. Michael Blechar who is VP and Research Director at Gartner said that "MDA is a forced march. Right, wrong or indifferent, it’s going to happen. Besides that, “It’s effectively a done deal," said Erich Gerber, CEO of Interactive Objects, one of the leading Model Driven Architecture solutions providers, and commissioner of the research commented. The UK represents 35% of the total European outsourcing market and it’s apparent that competent managers seeking to control costs are turning to it as their only perceived solution. Unbeknownst to them, MDA is a vital and highly cost-effective tool allowing IT departments to build a foundation on which to manage inevitable technological change and create a dynamic link between business and IT. Results of the survey conducted revealed that only 7% of IT Directors were using or planning to use MDA in the next six months. Microsoft has given indications that it takes model-driven approaches to software seriously. Statements emanated from the top of the company about the importance of model orientation. At its recent Professional Developers Conference, Microsoft unveiled a modelling tool for rapidly developing Web services. Steve had a broad and deep involvement in the discipline of formal specification during his tenure with IBM. He was a key creator of Object Constraint Language (OCL), which became part of UML. He contributed to the Precise UML (pUML) group, and consistently challenged the architects of UML to approach modelling with formality and precision. Steve is continuing his work in Microsoft. In this important article, he lays out some fundamentals that Microsoft will follow as it moves increasingly to be a player in model-driven systems. Steve’s emphasis on product lines and domain-specific languages is important. The original work on product lines came out of the Carnegie Mellon Software Engineering Institute, the same outfit that gave us the Capability Maturity Model (CMM). Regarding domain-specific languages, I have pointed out previously on these pages that a general purpose modelling language like UML can only take you so far. Steve’s emphasis on product lines and domain-specific languages is important. However, although some of us involved with MDA have indicated the importance of domain-specific languages and product lines, Microsoft is doing the industry a service by presenting a thorough integration all of these key concepts, and by expressing a commitment to put the ideas into practice in its tools. In addition, Steve explains that Microsoft has come to some negative conclusions about MOF and XMI, two important MDA standards. A response to these conclusions will be published in a future issue of MDA Journal. Nevertheless, these views have to be taken seriously, as they stem from very smart people at a hugely influential company. By diverging from MOF, Microsoft will not be treading exactly along the path of the MDA brand, but the model-driven systems community can manage this divergence, much as the distributed object community managed divergence between CORBA and COM via CORBA-COM inter-working standards a short generation ago. On the other hand, IBM has a long heritage of support for modelling, model driven development, and MDA is evident in many areas across IBM technologies and services (e.g., in business modelling, data modelling, deployment modelling, and so on). Here we will concentrate on the IBM Rational solutions in which modelling are used primarily to drive the design and implementation of enterprise-scale, software-intensive systems. For more than a decade, IBM Rational tools have emphasized the importance of models as a way of raising the level of abstraction at which software practitioners understand and build software solutions. Over the past few years, the software development industry has increasingly realized the value of ever-higher levels of abstraction—from code descriptions at the level of machine language to the emergence of MDA itself—as shown in figure below. IBM strongly believes that organizations are well-served by creating models of the problem domain and solution domain, and by coordinating these models throughout the life of a software project. Because IBM has been a strong proponent of such model-driven approaches to software development, and model-driven development forms a key component of the best practices and tools available from IBM, today a wide range of IBM customers employ these technologies to great effect. IBM recognizes MDA as an emerging set of standards and technologies focused on a particular style of software development—one that prescribes certain kinds of models to be used, how these models may be prepared, and the relationships among the different kinds of models. MDA provides an approach for, and enables tools to be provided for: • Specifying a system independently of the platform that supports it. • Specifying platforms. • Choosing a particular platform for the system being developed. • Transforming the system specification into one for a particular platform. In general, IBM believes that two categories of software development tools provide strong support for MDA: • Tools that offer a high degree of automation in model definitions and transformations, typically targeted to specific application domains for which complex transformation rules appropriate to that domain can be pre-defined. • Tools designed for a more general purpose, but which can be configured to support MDA via end-user and third-party tool vendor extensions and customizations, typically targeted to a broader range of application domains. Another important aspect of IBM’s support for MDA can be seen in the leadership position that IBM plays in many of the key MDA standards. IBM has consistently provided strong support for the OMG in terms of: • Specific standards largely derived from IBM technologies. The key example, of course, is UML, as it was based on the work of IBM Rational—formerly Rational Software—which was acquired by IBM in 2003. However, IBM Rational has also had a major influence on other standards such as the Meta Object Facility (MOF), the Query, View, and Transformation (QVT) standards, and the emerging Reusable Asset Specification (RAS) work. • Personal commitments from IBM Rational to drive MDA standards. IBM Rational personnel occupy key positions on the OMG Architecture Board, on standards task forces, and in the teams developing solutions. IBM Rational is committed to continuing this deep involvement in MDA standards, and to ensuring that those standards are practical and effectively implemented in IBM Rational tools. IBM Rational offers products in both of these categories. In the first category, IBM Rational Rose Technical Developer provides highly automated model transformation and robust code generation capabilities—capabilities particularly important to developers of embedded systems and other technical software products. Similarly, IBM Rational Rapid Developer provides a highly automated implementation of MDA targeted to J2EE applications that integrate and extend existing legacy systems. In the second category, IBM Rational Rose XDE Developer offers a combination of patterns capabilities, code templates, and application. What is it related with Java? MDA is certainly not specific to Java and Java 2 Platform, Enterprise Edition (J2EE). By remaining technology independent, MDA allows architecture to be implemented using J2EE, .Net, CORBA, Web services, or any technology that supports distributed applications. But Java applications, especially those that are distributed across systems and using a Web interface, will eventually be able to leverage MDA...