Some Terms To Know Definition and Good Process Models History Advantages and Disadvantages ...

Post on 05-Jan-2016

217 views 0 download

Tags:

transcript

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.

LDAPInterface

authenticate_user(username : String, password : String) : Boolean

MainPageController

login_member()logout_member()create_new_project()create_new_member()

1

1

1

1

Task

description : Textdue_date : Dateassigned_to : Integercreated_by : Integercompleted_on : Date

completed?() : Booleanlate?() : Boolean

GroupController

create_task()edit_task()change_task_status()add_members()remove_members()

GroupMember

group_id : Integermember_id : Integer

GroupProject

project_id : Integergroup_id : Integer

Notifier

email_notification()

Milestone

due_date : Datename : Stringdescription : Textid : Integer

*

1

*

1

Member

first_name : Stringlast_name : Stringusername : Stringid : Integer

*1

*1

1

1

1

1

Group

name : Stringid : Integer

add_member(member_id : Integer)remove_member(member_id : Integer)

*

1

*

1

1..*

1

1..*

1

*

1

*

1

*

1

*

1

*

*

*

*

MemberProject

member_id : Integerproject_id : Integer

*

1

*

1

Project

name : Stringid : Integerdescription : Textorganization : Stringadmin_id : Integerready_for_purge : Boolean

add_existing_group(group_id : Integer)create_group(name : String)create_milestone(name : String, description : Text, due_date : Date)send_incomplete_eval_notifications()create_random_groups(num_members : Integer)set_admin(member_id : Integer)

*

1

*

1

1

*

1

*

*1 *1

*

*

*

*

*

*

*

**

1

*

1

ProjectController

create_random_groups()create_milestone()add_group()

*

1

*

1

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 1991. 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 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.152.8697

[2] Niz, D. (2009). Diagrams and Languages for Model-Based Software Engineering of Embedded Systems: UML and AADL. Retrieved January 25, 2011 from http://www.sei.cmu.edu/library/reportspapers.cfm

[3] Ziegenbein, D. & Bosch, R. & Braun, P. (2005). AutoMoDe - Model-Based Development of Automotive Software. Retrieved January 26, 2011 from http://ieeexplore.ieee.org/Xplore/

[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 http://ieeexplore.ieee.org/Xplore/

[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 http://portal.acm.org

[6] Grieskamp, W. & Tillmann, N. & Veanes, M. (2004). Instrumenting Scenarios in a Model-Driven Development Environment. Retrieved January 29, 2011 from http://research.microsoft.com/apps/pubs/default.aspx?id=77816

[7] The Middleware Company. (June 2003). Model Driven Development for J2EE Utilizing a Model Driven Architecture (MDA) Approach. Retrieved January 22, 2011 from http://www.omg.org/mda/mda_files/MDA_Comparison-TMC_final.pdf

[8] Buckl, C. & Knoll, A. & Gerhard, S. (2007). Model-Based Development of Fault-tolerant Embedded Software. Retrieved January 26, 2011 from http://ieeexplore.ieee.org/Xplore/

[9] Bohner, S. & Mohan, S. (2009). Model-Based Engineering of Software: Three Productivity Perspectives. Retrieved January 26, 2011 from http://ieeexplore.ieee.org/Xplore/

[10] Bohner, S. & Mohan, S. (2009). Model-Based Engineering of Software: Three Productivity Perspectives. Retrieved January 26, 2011 from http://ieeexplore.ieee.org/Xplore/

[11] Jacky, J. & Veanes, M. & Campbell, C. & Schulte, W. (2008). Model-Based Software Testing and Analysis with C#. Retrieved January 30, 2011 from http://www.cambridge.org/gb/knowledge/isbn/item1163498/?site_locale=en_GB

[12] Miller, S. & Whalen, M. & Cofer, D. (2010). Software Model Checking Takes Off. Retrieved January 28, 2011 from http://portal.acm.org

[13] NModel. Retrieved Febuary 4, 2011 from http://nmodel.codeplex.com/ [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 http://www01.ibm.com/software/rational/products/rhapsody/developer/

[15] Defining Technology, Inc. MRC Home. Retrieved February 5, 2011 from http://www.middleware.org/

[16] PrecisionMBA, LLC. V-Cycle. Retrieved February 7, 2011 from http://www.precisionmba.com/v-cycle.htm

[17] Microsoft. Model-Based Testing. Retrieved February 7, 2011 from http://msdn.microsoft.com/en-us/library/ee620469.aspx

[18] Microsoft. Model-Driven Development. Retrieved February 7, 2011 from http://msdn.microsoft.com/en-us/library/aa964145.aspx#mdldrvdv_topic1

[19] IBM. An introduction to Model Driven Architecture. Retrieved February 8, 2011 from http://www.ibm.com/developerworks/rational/library/3100.html