330 likes | 461 Views
MDA: A big step forward in the industrialization of software production. Wim Bast Chief Architect September 14 th , 2005. Agenda. The industrialization of software production The essence of MDA The standardization of MDA The weather forecast. The industrialization of software production.
E N D
MDA: A big step forward in the industrialization of software production. Wim Bast Chief Architect September 14th, 2005
Agenda • The industrialization of software production • The essence of MDA • The standardization of MDA • The weather forecast
Benefits of industrialization • Cost effective • Through a repeatable production process… • With a predictable outcome in terms of quality… • On time
Relevance to Application Development • Application development is expensive • 44% of software projects run over budget (versus cost effective) • Application development is complex and risky • 30% of software projects are canceled (versus repeatable) • Application development seldom delivers according to expectations • 60% of software projects are not considered a success by the business (versus predictable) • Application development is always late • 90% of software projects are delivered late(versus on time)
Software production is not exactly the same as the production of physical goods (e.g. cars). • Millions of cars are produced based on the same design of the same car model. • A production line for software has to produce many different releases of an application where the design is changed every time. • We can invest a lot of money in a production line for one specific car model. • A software factory must be able to produce applications in the midst of constant changing requirements and technology.
Software = Domain * IT • When we develop software we apply IT patterns to Domain aspects • Many different technologies and patterns are used to build one application • Each aspect of the domain is implemented in many technologies and patterns in one application
What is a Pattern? • A pattern is a common solution to a common problem in a given context • Capture best practices, good designs and experience • Transfer knowledge, share experience • A pattern is a matter of discovery and experience, not invention • Abstraction of a specific solution • Using, improving and extending patterns • This makes us experts
SalesOrder Customer Stock Product Supplier Customer Stock Product Supplier SalesOrdr Stock SalesOrder Customer Product Supplier Business Delegate PatternAn Example • Problem • Remote communication between clients and business service components is too complex • Solution • Use a Business Delegate to encapsulate access to a business service * Core J2EE Patterns, Best Practices and Design Strategies Alur, Crupi, Malks; ISBN 0-13-142246-4
Small window of opportunity • The number of different technologies used to develop an application is growing • The number of domain aspects to be automated is growing • The number of changes to the domain and IT aspects is growing • The window of opportunity to deliver a successful application is getting smaller
Platform Knowledge Domain Knowledge Classic Modeling and Development Domain X Technology Applications Classic Tools Designers & Developers Users
Application Developers Platform Experts Technology Selection and Tuning Technology Solutions Domain Models Domain Experts MDA Goal Applications MDA Tools Users
MDA Essentials • Separation between, and reusability of, domain and platform expertise • Embracement and appreciation of existing IT technologies • Quick adaptability of domain and technology changes • Generation of working high-quality applications and integrations
Application models Applications 3 Different Abstraction Levels Domain Model Business Modelling language Technology rules Application Modelling Languages Coding rules Coding languages
Java UML expressed in expressed in CRM Applic. CRM Model Formal Languages Lang. X expressed in Spec. A
expressed in Meta Modeling MOF expressed in expressed in expressed in CWM UML Lang. X expressed in expressed in expressed in CRM data Model Spec. A CRM Model
Meta Object Facility • XMI and JMI are standard mappings from MOF meta-models to XML Schema’s and Java interfaces used for tool interoperability • UML-profiles define only small extensions to the UML meta-model using stereo- types and tags • Since MDA has to support all aspects of all technologies (including non-OO), MOF is becoming more important to define a family of (modeling) languages
Transformation Definition defined by Transformation Transformations Lang. Y Lang. X expressed in expressed in Spec. B Spec. A
Transformation Example UML Classes to EJB trans. def. UML Java expressed in expressed in defined by CRM EJBs CRM model
MOF 2.0 QVT transformation • A declarative pattern-based language for defining ‘relations’ between (modeling) languages. • Incremental execution, preserving changes & additions to the target model. • Transformations that are defined in multiple directions should be executable in multiple directions. • The language for defining the production machines in the software factory.
MOF 2.0 Q/V/T expressed in Transformation Query/View/Transformations MOF expressed in Lang. Y Transformation Definition Lang. X expressed in expressed in defined by Spec. B Spec. A
MOF Model2Text expressed in Transformation Model to Text Transform. MOF Textual Lang. Y Transformation Definition Lang. X expressed in expressed in defined by Spec. B Spec. A
MOF UML Application models UML MOF Applications Applying OMG Modeling Standards Domain Model Business Modelling language QVT Technology rules Application Modelling Languages M2T Coding rules Coding languages
Status • UML2.0 / MOF2.0 / XMI2.0: ready (FTF end-report approved) • OCL 2.0: FTF end-report submitted • MOF 2.0 Q/V/T: One final joint submission, FTF Charter is proposed (end-of FTF June 2006) • MOF Model To Text Transformation: First revised submissions ready • JIM (JMI for MOF 2.0, by OMG members) initiated
MDA Acceptance • Broad investment in MDA (or MDA-like) tools by may important IT vendors. • Many software production companies have chosen to use of MDA as there development approach. • Software factories are build and used.
elaborational modifiable transformations Abstraction level translational Percentage automated The elaborational MDA versus translational MDA ‘battle’
Benefits of industrialization for the software • A cost effective way to produce an application…. • Through a repeatable production process… • With a predictable outcome in terms of quality… • On time!