Some Terms To Know Definition and Good Process Models History Advantages and Disadvantages Standardization Industry Specific Usage Current and Future Trends Software
Middleware – Software that mediates between an application program and a network. CORBA – Common Object Request Broker Architecture UML – Unified Modeling Language MDA – Model Driven Architecture MDE – Model Driven Engineering
MBT – Model-Based Testing MDD – Model-Driven Development DSL – Domain Specific Languages MBE – Model-Based Engineering OMG – Object Management Group
Loosely defined! The use of diagrams to model data and specify system behavior. Infinitely different processes? Not to be confused with formal specification languages such as Z which describe and model computing systems mathematically.
Have mechanisms for preventing, detecting, and correcting errors at each step. Contradicts some Experts outlook that Model-Based Software Development should be platform independent! (Maybe in years to come)
Models can be described in many different ways: diagrams, tables, text, mathematical formula, etc. Two Major Types ◦ Structure: describe entities that make up the design of a software system with relationships included. ◦ Behavior: describe how software systems react when provided with inputs.
Many different specifications of model-based software development, a need for standardization! Object Management Group, Inc. founded in 1989 provides substantial standardization for multiple industries. Process has evolved to include multiple stakeholders and higher abstraction.
Independence of a specific programming language Predict bottlenecks and constraints Predict system performance More detailed abstraction levels Achieve high complexity Encourages good OO
Can communicate effectively with stakeholders by providing a model. Create a roadmap for developers to follow. Track the history of every decision. (essential for Embedded Systems!) Represents things in thin air (like network or internet components)
More time modeling and less time coding (if you enjoy coding). Usability of generated code.
OMG – Object Management Group Mission: “develop, with our worldwide membership, enterprise integration standards that provide real-world value.” Founded in 1989 Any company can join. In charge of standards that enable powerful visual design, execution, and maintenance of software.
Specify, visualize, and document models of software systems. Can also be used for business modeling and modeling of other non-software systems. Used with UML-based software tools.
With UML 2.0, there are thirteen types of diagrams: class, object, component, composite, package, deployment, use case, activity, state machine, sequence, communication, timing, and interaction.
Provides vendor-neutral approach to the challenge of business and technology change. Separates business and application logic from low level platform technology. Built on UML and other OMG standards.
Systems Modeling Language General-purpose graphical modeling language. Use for software, hardware, information, personnel, procedures and facilities. Use for modeling system requirements, behavior, structure, and parametrics to be used with other engineering analysis models.
Created in Aimed at software designed for ORB standards. Easily integrates with many vendors. Benefit of CORBA: produce interoperable applications that are based on distributed, interoperating objects.
Data-Distribution Service for Real-Time Systems. First open international middleware standard directly addressing publish-subscribe- communications for Real-Time Embedded Systems. Latest version adopted in October 2006.
Model-Based Software Development has been used much more in embedded applications in the past. Process is essential for verification ◦ Automotive ◦ Middleware ◦ Aerospace
Description of development activities. Activities are repeatable, undoable, and traceable. Activities generally include low-level tasks but can also include higher level domain- specific tasks like functionality for a target platform.
All activities in the process models are defined in terms of the entities in the product models. Need explicit models for this to work. The more models the better.
graphical construct used to communicate a model-based software development methodology Doesn’t actually correlate directly with the model- based software development process.
Quickly test and iterate strategies in real-time. Use math modeling program like Simulink
This method uses model-based software development to greatly increase productivity
Automotive Model-Based Development Project 2005 Goal: Develop an integrated methodology for model-based development of automotive control software. Based on AutoFOCUS framework.
AutoFocus Framework
Highly modulated to reduce complexity Enhanced features such as allowing signals with different frequencies An AutoMoDe Mode Transition Diagram specifying engine operation modes.
“Model Driven Development for J2EE Utilizing a Model-Driven Architecture (MDA) Approach” (June 2003) By The Middleware Company Productivity Analysis, shortly after MDA came out. Results: MDA team developed application 35% faster than traditional team.
“Model-Based Development of Fault-tolerant Embedded Software” (2007) By: Technische Universitat Munchen Focuses on automatic code generation and issues regarding verification. Use of Simulink.
The argument: By generating source code the certification becomes much easier. Code Generation Architecture
Code Generation Process
Conclusion: The use of application- independent templates that are mapped automatically to compilable source code offers many advantages.
Improve automatic code generation. The use of UML to predict performance metrics and dynamically change model if needed to reach performance goals. Improve usability in Model-Based Software Development.
Microsoft Spec Explorer (Model-Based Testing) Nmodel (Model-Based Testing) Simulink (Model-Based Design) Rational Rose Product Line Rational Rhapsody
MBT – Automatic generation of software test procedures, using models of system requirements and behavior. Requires up-front model completion. After the model is created, test suites are automatically generated. Test suites contain test sequences and test oracle.
Advantages of Model-Based Testing ◦ Rules are specified once ◦ Lower project maintenance cost ◦ Design more and code less ◦ High coverage ◦ Model authoring is independent of implementation ◦ Can test concurrently with other team members
Model-Based testing and analysis framework for programs written in C#. Features test generation tool and test runner. Can show paths to unsafe states. Focuses primarily on finite state machines. Can show traceability User friendly
Paths to unsafe states
Simple Model Viewer User Friendly
Traceability
Embedded Systems Extensive libraries and predefined blocks User friendly Model analysis and diagnostics tools Can do applications in signal processing, video processing, image processing and much more. Can include handwritten C, Fortran, and Ada code directly into your model.
Model-Driven Software Development Programs. Currently seven different products. Provides fully automated design-to-code translation for Java, C, and C++, and few others. Only some products support up to UML v2.0 Most can integrate with other Rational products
MDD environment for embedded and real- time systems and software. Generates C, C++, Java and Ada applications. Generates real-time sequence diagrams during debugging. High traceability capabilities.
Has support for industry standard modeling languages (UML, SysML) Validate functionality early in development.
Model-Based Software Development has many advantages and few disadvantages. With the right process, MBD can conquer high complexity systems with more modeling and less coding. MBD is a hot topic of research with some solid potential in many software domains.
[1] Martens, A. & Heiko, K. (2007). Automatic, Model-Based Software Performance Improvement for Component-based Software Designs. Retrieved January 25, 2011 from [2] Niz, D. (2009). Diagrams and Languages for Model-Based Software Engineering of Embedded Systems: UML and AADL. Retrieved January 25, 2011 from [3] Ziegenbein, D. & Bosch, R. & Braun, P. (2005). AutoMoDe - Model-Based Development of Automotive Software. Retrieved January 26, 2011 from [4] Baleani, M. & Ferrari, A. & Mangeruca, L. (2005). Correct-by-Construction Transformations across Design Environments for Model-Bases Embedded Software Development. Retrieved January 26, 2011 from [5] Parastoo, M. & Vegard, D. & Tor, N. (2009). Definitions and Approaches to Model Quality in Model- Based Software Development-A Review of Literature. Retrieved January 28, 2011 from [6] Grieskamp, W. & Tillmann, N. & Veanes, M. (2004). Instrumenting Scenarios in a Model-Driven Development Environment. Retrieved January 29, 2011 from [7] The Middleware Company. (June 2003). Model Driven Development for J2EE Utilizing a Model Driven Architecture (MDA) Approach. Retrieved January 22, 2011 from [8] Buckl, C. & Knoll, A. & Gerhard, S. (2007). Model-Based Development of Fault-tolerant Embedded Software. Retrieved January 26, 2011 from [9] Bohner, S. & Mohan, S. (2009). Model-Based Engineering of Software: Three Productivity Perspectives. Retrieved January 26, 2011 from [10] Bohner, S. & Mohan, S. (2009). Model-Based Engineering of Software: Three Productivity Perspectives. Retrieved January 26, 2011 from
[11] Jacky, J. & Veanes, M. & Campbell, C. & Schulte, W. (2008). Model-Based Software Testing and Analysis with C#. Retrieved January 30, 2011 from [12] Miller, S. & Whalen, M. & Cofer, D. (2010). Software Model Checking Takes Off. Retrieved January 28, 2011 from [13] NModel. Retrieved Febuary 4, 2011 from [14] IBM Corp. Web. Rational Rhapsody Developer. IBM® Rational® Rhapsody® Developer Is a UML or SysML-based Model-driven Development Environment for Technical, Real Time, or Embedded Systems and Software Engineering. Retrieved February 4, 2011 from [15] Defining Technology, Inc. MRC Home. Retrieved February 5, 2011 from [16] PrecisionMBA, LLC. V-Cycle. Retrieved February 7, 2011 from cycle.htmhttp:// cycle.htm [17] Microsoft. Model-Based Testing. Retrieved February 7, 2011 from us/library/ee aspxhttp://msdn.microsoft.com/en- us/library/ee aspx [18] Microsoft. Model-Driven Development. Retrieved February 7, 2011 from [19] IBM. An introduction to Model Driven Architecture. Retrieved February 8, 2011 from