A Flexible MDATool Set Anneke Kleppe Klasse Objecten
Outline Intro Future MDA tools Today’s MDA tools
Part 0: MDA Intro
MDA Overview SQL - EJB EJB - JSP PSM JSPPSM SQLPSM EJB Platform Independent Model JSP Code SQL Code EJB Code
Why Model Driven? Productivity? Portability? Interoperability? Maintenance and documentation? Raising the level of abstraction! –Handling more complex systems
MDA: a Revolution : from assembler to 3GL languages : from 3GL languages to modeling languages
Future software development New roles for people involved: Model creator (PIM analyst) Transformation engineer (PSM creator) Transformation definition developer Language designer
Software Development in 2015
Part 1: Future MDA Tools
Tools What type of tools are there? MDA Connectivity Bus Model Editor Model Validator Model Repository Code File Generator Code File Editor(IDE) Transform Def.Editor Transform Executor Transf. Def. Repository Language Def. Editor Language Repository
Requirements: Modeling Tools Multi-user Easy switch between visual / overview and textual / detail view Early error detection / debug options Code completion Version control Everything programming IDEs offer today
Requirements: Language Tools Language Def. Editor: See Modeling Tools Extra: support for defining semantics Language Def. Repository: See Transf. Def. Repository
Requirements: TD Editor See Modeling Tools
Requirements: TD Repository Classifications of Transf Defs –domain->GUI, domain->Web, domain->DB –Java->ER, UML->C# –Realtime process control, data entry Easy access: library system tags Quality assessments
Requirements: TD Executor General (QVT) executors and hard coded ones Tuneable –I.e. value of x in “transform all strings in UML model to CHARVAR[x]” –I.e. on/off switch for aspects Output = input for another executor Open source and proprietary tools Quality assessments of tools
Requirements: General Connectivity bus that supports interoperability –For instance, by providing a single XMI parser Open standards supporting interchange –Modeling Languages (UML XMI is not a good example) –Transformation Definitions
Part 2: Today’s tools
Modeling tools Not really multi-user Few validation options Break between overview and detail view
Language tools No support for expressing semantics Look’s like a house. It’s beauty.
Transformation tools No repositories Executors mostly hardcoded –Exception: ArcStyler Little connectivity –Not possible to make a chain of executors Little tuneability / Do It Yourself tuneability Some open source tools available –AndroMDA, Octopus
Conclusion Raising the level of abstraction will improve –Productivity, portability, interoperability, etc. Fulfilling full potential needs extra attention 100% feasible MDA is necessary to cope with more complex client demands