Model-Driven Development Definitions, Challenges, Promises…
Talking Points What is Model-Driven Development? What is Difficult with Real-time & Embedded Systems? Why does MDD™ often Fail? What enables MDD™? Comments on Various MDD Enablers What is MARTE™? When will MDD™ Succeed? Concluding Remarks and Hand-over to the MARTE Examples Talk.
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
2
What is a Model? Noun: from Latin modellus, diminutive form of modulus ‗small measure‘[1]. A simplified representation (usually mathematical) used to explain the workings of a real world system or event. − ―The computer weather model did not correctly predict the path of the hurricane.‖ The structural design of a complex system. − ―The team developed a sound business model.‖
A praiseworthy example to be copied, with or without modifications − ―British parliamentary democracy was seen as a model for other countries to follow‖ © 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
3
What is Development? Noun: development[2] The application of new ideas to practical problems − ―Our development department has produced three new adhesives this year.‖ The active placement of the pieces, or the process of achieving it − ―White's development is good, but Black's has been hampered by the pawn on e5.‖
QED: An active process of problem-solving via analysis and synthesis of alternatives…
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
4
What is Model-Driven Development? The ―rapid solutioning‖ of complex systems from Models which are smaller and more abstract than are those synthesized systems − Models which are larger and more complex than their solutions suggests something has gone wrong!
The solving of problems using Models pervasively and using Models as the inputs to parameterized implementation generators Development Methodologies which regard Models as the Intellectual Property − Rather than those which (or who) regard the output artifacts as irreplaceable
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
5
Why is Real-Time and Embedded Development Different? Solutions are constrained by Time, Space, Cost, and Access Consequences of failure include − Loss of Revenue − Loss of Systems − Loss of Life Verification by Inspection, Demonstration, or Test can be impractical − Leaving just Verification by Analysis
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
6
Why does Model-Driven Development Fail? Models are Incomplete
Model Development is too slow
Models are Inconsistent
Graphical Grammars are no more— or are less—expressive than Text
Models are Ambiguous Models are Incomprehensible Models are Unsharable Models are Unverifiable Models Ignore Multiform Time
Models lack Quantitative and Qualitative Metrics
Modeling Tool User Interfaces are User Hostile Modeling Tools are Buggy Good Modeling is Subjective Models are Cohesive, Coupled, Complex, Rigid, and Fragile − Like the epitome of bad code…
Model Development is too arduous © 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
7
What Enables Model-Driven Development? Standardized Methodologies − Collections of Methods and Processes − Objective Metrics
Standardized Syntax, Notations, Symbols Standardized Semantics ―Models of Computation‖ Multiform Time Formal Methods
Interfaces, Design by Contract Variation and Sensitivity Analysis Tradeoffs Analysis Provers and Solvers Collaboration Isolated Modeling Change Management
Workflow Integration Design for Test
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
8
Quantitative Model Metrics Number of Requirements? Use Cases? Classes? SysML Blocks? − 5 are too few, 100,000 are too many—but are 500 just right? Number of Diagrams? Number of Steps per Interaction Diagram? Number of Packages? Number of elements per Package? Number of Associations? Currently, No Set of Objective, Quantitative Metrics
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
9
Qualitative Model Metrics Requirements have been Refined? Derived? Satisfied? Verified? Use Cases have Interaction Diagrams? Model has a Package Structure supporting IPTs? Collaboration? Component Sharing? Multiple Programming Languages? ―Evil Twins‖ are not Present? Diagrams have White Space? Are Pretty? Have Comments? Model has internal Documentation? Model uses Design Patterns?
Model expresses Tradeoffs and Rationales? Model is Executable? Verifiable? Reusable? Currently, No Set of Objective, Qualitative Metrics © 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
10
Standardized Symbols and Notations Alphabets and Grammars (but not Sentences) Mathematical Expressions Mathematical and Logical Symbols Set Theory Predicate Calculus Query and Constraint Languages Domain-specific Engineering Notations − Control, SCADA, HVAC, Electrical, Building, UML, MARTE… Standardized Symbols Facilitate Comprehension © 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
11
Domain-Specific Modeling Specific versus General Modeling Ideally More Abstract and More Expressive Offers Reduction in Effort Stylized Icons Business Logic Constraint Enforcement Approachable in UML™ with − Stereotypes − Tag Definitions − Tool Behavior Modification via plugin Scripting
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
12
Formal Methods Mathematically rigorous Techniques and Tools for − the Specification, Design and Verification of Software and Hardware[3] Systemic Usage yields Verifiable Systems Throughout Lifecycle Example Languages − Esterel and Lustre − Vienna Development Method – Specification Language (VDM-SL) − Temporal Logic of Actions (TLA+) − Z(ed)
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
13
Interfaces and Contracts Interfaces − Delegate Interactions − Separate Specification from Implementation − Decouple Components − Enable Dynamic Substitution − Enables Mocking for Testing − Examples: − Provided and Required Interfaces − Abstract Classes
Contracts − Express Preconditions and Postconditions − Enable formal Verification − Exploitable throughout the System Specification and Implementation
Contracts, written in Formal Methods, are especially powerful − Examples: − Spark Ada − Eiffel
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
14
Model Transformations takes as input a model conforming to a given metamodel and produces as output another model conforming to a given metamodel. …One of the characteristics of a model transformation is that a transformation is also a model[4] Frequently only unidirectional
− Model-to-text or ―Code Generation‖ Powerful when bidirectional − Traceable and Reversible − E.g. Triple Graph Grammars
Automated Transformations − Replace lengthy, error-prone manual transformations − E.g. the Eclipse ATLAS Transformation Language (ATL) © 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
15
Model to Text Transformations Traditionally: ―Code Generation‖ Also: Document Generation, Testcase Generation, XMI, etc. Typical Methods − Model(s) → Query → XMI → XSLT → Formatted Output − XMI → ATL → XMI → XSLT → Formatted Output − Model(s) → Query → Configurable Procedures → Formatted Output − Model(s) → Query → Parameterized Templates → Formatted Output
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
16
Design Patterns
A general, repeatable solution to a commonly occurring problem in software design… Not a finished design that can be transformed directly into code… A description or template for how to solve a problem that can be used in many different situations.[5]
Creational
−
Mediator
−
Factory
−
Observer
−
Singleton
−
State
−
Strategy
−
Template Method
−
Visitor
Structural −
Adapter
−
Decorator
−
Façade
−
Proxy
Behavioral −
Broker
−
Chain of Responsibility
−
Command
−
Iterator
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
Concurrency −
Active Object
−
Scheduler
−
Thread Pool
17
Models of Computation Offer Design Patterns of Component Interaction[6]
Component Interaction
Express Semantics of Concurrency and Time
Communicating Sequential Processes
Often Derived from Formal Mathematics No panacea ―MoC‖ − Foreach ―MoC‖ − Useful when Circumstances are Suitable
− e.g. CORBA
− E.g. Hoare, Occam
Discrete-Event − E.g. Digital Hardware Simulation
Synchronous Dataflow − E.g. Streams and Signal Processing
Synchronous/Reactive − E.g. Esterel/Lustre
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
18
Collaboration and Isolation Engineering Activities are either − Collaborative − Isolated Collaborative when
− Brainstorming, Sharing, Presenting, Concurrent − E.g. Systems Engineering Isolated when − Rapidly Prototyping, Refactoring, Analyzing, Verifying, Serialized
− E.g. Software Engineering MDD Methodologies and Tools must Enable both forms of Engineering − But most don‘t… © 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
19
Collaboration and Workflow Common, Referentially Consistent ―Data‖ Dictionary Automatic Publication of − Who Changed What − Why and When
− In the larger Context Management of Such Change − Historical Variations − Differencing − Reversion Ability Individual-centric Models and Manual Change Propagation impede MDD
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
20
Rapid Prototyping Software (or Solid Form) Feature Implementation Small Subset of Features May be significantly different from Final Implementation Enables Early Assessment
Requires an easily mutable modeling medium (like Text in Vi ) − Any rigid, coupled, time-consuming model would be an impediment Requires isolated not collaborative engineering − Mutual exclusion from conflicting, radical modifications MDD Methodologies and Tools must Enable both forms of Engineering − A few do…
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
21
Analysis Noun: From Medieval Latin analysis from Ancient Greek ἀνάλυσις (analusis) from ἀναλύω (analuō), ―‗I unravel, investigate‘‖) from ἀνά (ana), ―‗on, up‘‖) + λύω (luō), ―‗I loosen‘‖)[7] The action of taking something apart in order to study it.
The mathematical study of functions, sequences, series, limits, derivatives and integrals. The process of breaking a substance down into its constituent parts. QED: Understanding a System by tearing it apart and studying the pieces
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
22
Simulation Substitution for Analysis when Closed-Form Solutions aren‘t achievable Enables Analysis by Execution Enables Solvers, Provers, Tradeoff and Sensitivity Analysis Without Requiring Actual Environment or System In Compressed or Expanded Absolute Time Requires Workload Specifications Requires Non-Functional Property Value Specifications Requires Instances Specifications Requires Integrated Modeling and Simulation Tools
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
23
Unit Testing and Mocking Testable Units (Packages of Models) −
Can be verified, trusted, reused earlier
But, Embedded Systems are Often −
Highly Coupled
−
Intrinsically Complex
−
Difficult to Decompose into Individually, Testable Units
Interfaces and Mocks enable Scriptable, Mocking Test Harnesses to −
provide Required services
−
Record interaction and coverage
−
Respond with proper Sequences
−
Detect missing Expected Interactions
UML Testing Profile offers Standardized Verification Modeling MDD™ Requires Modular Models to Enable Unit Testing
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
24
History of MARTE™ Spawned from RT/E Software Engineers‘ Frustration with the Inability to Express, Analyze, and Simulate Time and Resource Constrained Systems − In any way other than implementing prototypes, executing those, and observing their behavior
Motivated by the Inadequacies of the prior OMG Profile for Schedulability, Performance, and Time (SPT) Launched in Feb 2005 with the ProMARTE RFP Response[8] Adopted Specification as of May 2008
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
25
Foundations of MARTE™ Non-Functional Properties − Qualities − Value Specification Language Time
− Multiform Models of Time and Events − Causal, partial ordering − Clocked, synchronous
− Absolute and Relative Physical Time
Generic Resource Modeling − Execution Platform Generic Component Modeling − Compositions
− SysML™ Blocks − Interfaces, Flows, and Interactions Allocations
− Spatial Deployment − Temporal Scheduling − Based upon SysML™ Allocation
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
26
Using MARTE™ for Design Software Resource Modeling Hardware Resource Modeling Real-time Embedded Models of Computation and Communication
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
27
Using MARTE™ for Analysis Generic Quantitative Analysis Modeling Schedulability Analysis Modeling Performance Analysis Modeling
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
28
When MDD™ Will Succeed Refinement of de facto Metrics − Completeness, Objectivity Adoption of Formal Methods − Completeness, Consistency, Verification Improvement of Tools
Additional Research − Graphical Expressiveness − Metrics Improved Education − Consistency, Modeling Fluency, Objectivity
− Consistency, Collaboration, Modeling Fluency, Modeling Duration, User Interfaces, Model Modularity
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
29
References
[1] Wiktionary Contributors., "Wiktionary Definition of "Model"." Wiktionary: a wiki-based Open Content dictionary. [Online] May 29, 2008. [Cited: June 14, 2008.] http://en.wiktionary.org/w/index.php?title=model&oldid=4661990.
[2] —. "Wiktionary Definition of "Development"." Wiktionary: a wiki-based Open Content dictionary. [Online] June 05, 2008. [Cited: June 14, 2008.] http://en.wiktionary.org/w/index.php?title=development&oldid=4691164.
[3] Butler, Ricky W., "What is Formal Methods?" Langley Formal Methods. [Online] August 06, 2001. [Cited: June 13, 2008.] http://shemesh.larc.nasa.gov/fm/fm-what.html.
[4] Wikipedia Contributors., "Model Transformation." Wikipedia, The Free Encyclopedia. [Online] October 03, 2007. [Cited: June 15, 2008.] http://en.wikipedia.org/w/index.php?title=Model_transformation&oldid=139650456.
[5] —. "Design Pattern (Computer Science)." Wikipedia, The Free Encyclopedia. [Online] October 03, 2007. [Cited: June 15, 2008.] http://en.wikipedia.org/w/index.php?title=Design_pattern_%28computer_science%29&oldid=161755559.
[6] Lee, Edwards, et al., "Overview of the Ptolemy Project." Department of Electrical Engineering and Computer Science. [Online] July 02, 2003. [Cited: June 15, 2008.] http://www.ptolemy.eecs.berkeley.edu/publications/papers/03/overview/overview03.pdf. Technical Memorandum UCB/ERL N03/25.
[7] Wiktionary Contributors., "Wiktionary Definition of "Analysis"." Wiktionary: a wiki-based Open Content dictionary. [Online] May 23, 2008. [Cited: June 15, 2008.] http://en.wiktionary.org/w/index.php?title=analysis&oldid=4625313.
[8] ProMARTE Team., "UML Profile for MARTE RFP." MARTE Specification. [Online] February 04, 2005. [Cited: June 11, 2008.] http://www.omg.org/docs/realtime/05-02-06.pdf. realtime/05-02-06.
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
30
Speaker Biography Lonnie VanZandt Artisan Software Partner; Artisan Studio® user since 2000 Independent Consulting Systems Engineer (Predictable Response Consulting) since 2000 Specialties include: Operating Systems kernels, Real-time Systems, Object Oriented Systems, Network Protocols, UML™ Modeling, Artisan Studio® Usage, Together© Usage Career includes: AT&T Lucent Bell Labs, TimeSys Linux, Northrop Grumman {Cleared}, DesignNet, … Education: BS and MS, Computer Engineering, University of Illinois, Urbana
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
31
Copyright Notices UML™, OMG™, MDA™, MDD™, SysML™, MARTE™, and the OMG MDA Logo are either registered trademarks or trademarks of Object Management Group, Inc. in the United States and/or other countries. Artisan Studio® and the Artisan Studio® Logo are either registered trademarks or trademarks of Artisan Software Tools Ltd. in the United States and/or other countries. Each slide within this presentation is Copyright © 2008 Artisan Software.
© 2008 Artisan Software Tools Ltd. All rights reserved. 15 June 2008 OMG::Washington, DC::VanZandt
32