210 likes | 315 Views
A Flexible MDATool Set. Anneke Kleppe Klasse Objecten. Outline. Intro Future MDA tools Today’s MDA tools. Part 0: MDA Intro. Platform Independent Model. SQL - EJB . EJB - JSP . PSM SQL. PSM EJB. PSM JSP. SQL Code. EJB Code. JSP Code. MDA Overview. Why Model Driven?.
E N D
A Flexible MDATool Set Anneke Kleppe Klasse Objecten
Outline • Intro • Future MDA tools • Today’s MDA tools
Platform Independent Model SQL - EJB EJB - JSP PSM SQL PSM EJB PSM JSP SQL Code EJB Code JSP Code MDA Overview
Why Model Driven? • Productivity? • Portability? • Interoperability? • Maintenance and documentation? • Raising the level of abstraction! • Handling more complex systems
MDA: a Revolution • 1960-1970: from assembler to 3GL languages • 2000-2010: 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
Model Editor Model Validator Model Repository Transform Def.Editor Transform Executor Language Def. Editor Language Repository Code File Generator Code File Editor(IDE) Transf. Def. Repository Tools • What type of tools are there? MDA Connectivity Bus
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
Modeling tools • Not really multi-user • Few validation options • Break between overview and detail view
Language tools It’s beauty. Look’s like a house. • No support for expressing semantics
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