150 likes | 323 Views
CS22120 Model Driven Engineering and MDA Nigel Hardy. Model Driven Engineering. Development focuses on creating models Models which are: close to the problem domain; therefore understandable to the user; But are the basis for implementation
E N D
CS22120 Model Driven Engineering and MDA Nigel Hardy
Model Driven Engineering • Development focuses on creating models • Models which are: • close to the problem domain; • therefore understandable to the user; • But are the basis for implementation • “Computer-Aided Software Engineering” from 1980s • c.f. CAE from manufacturing • Tools appeared • Developed through proprietary systems to UML
Model-driven Architecture (MDA) • Object Management Group, 2001http://www.omg.org/mda/ • Basic idea: use modelling to drive development • Generate code from models • Allow rapid prototyping from models • Allow testing of models • Allows multiple targets • OS, Hardware, Storage mechanisms • Not yet a reality • Moving in this direction
Model Transformation • Platform-independent model (PIM) • ?UML • ?more domain specific • Platform definition model (PDM) • What is the target like • Platform-specific model (PSM) (or models) • Domain specific language (DSL) • or General Purpose Language (GPL) • Model Transformation Language
Models? • They are all models • UML • Java • Assembler • Some closer to execution env. • Some more remote • Some more abstract and intelligible to user • Some less so • Models must all do the same thing • Logically the same • Initial models and derived models • Initial: human input • Derived - +/- automatic
One we already do • E-R diagram (?UML) • PIM • SQL for relational implementation • PSM
What’s wrong with what we do now? • If any modelling is done (e.g. UML) then it often gets ignored or changed when you actually build something • Separation of what you are trying to do from how you do it • Multiple implementations may differ • Application knowledge (Business Knowledge) has longest life, but is tied closely to implementation strategy at the design stage
How does MDA do it better? • Stress on platform independent models (PIMs) • Transformation of platform independent models to get platform specific models (PSMs) • Multiple compatible implementations • Where the marks can be used to automate the generation of a PSM, and PSM can be used to generate code, then can change PIM, and the code will change
Executable UML • A “profile” of UML • Testable • Completeness, coherence • “Compilable” to PSM
Example • (data only) • Using AndroMDA (http://www.andromda.org/) • High volume biological data • “Post genomic” • Transcriptomics, proteomics, metabolomics • Complex structure • FuGE (http://dx.doi.org/doi:10.1038/nbt1347)
FuGE • 1 top level model • Reasonably intelligible • XML transport implementation • JAVA class library implementation • ?SQL relational implementation • Specialisations • 'omics
Advantages/disadvantages of model-driven development Advantages: • System building is done at a higher (more efficient level) • Concentrates on what is important • Emphasizes reuse • Rapid modelling could replace rapid prototyping • Documentation always matches the code (although the code is no longer important) Disadvantages: • Not working for general case (very good in some domains, e.g. telecomms) • De-emphasizes the user interface aspects • Overkill for some systems?
Summary • Nothing magical about software process models • Each raises some valid issues about what is involved in developing software • Doesn’t help when scheduling tasks with main elements - down to management • Even if followed appropriately, they don’t guarantee successful project development. • Mix of staff skills • Quality procedures • Clear management