CSSE 490 Model-Based Software Engineering: Introduction to Domain Engineering

Similar documents
CSSE 490 Model-Based Software Engineering: Domain Engineering

Model-Driven Architecture

Model-Driven Architecture/ Development

CSSE 490 Model-Based Software Engineering: More MBSD. Shawn Bohner Office: Moench Room F212 Phone: (812)

CSSE 490 Model-Based Software Engineering: Software Factories

CSSE 490 Model-Based Software Engineering: Cougaar Model-Driven Architecture Example

CSSE 490 Model-Based Software Engineering: Domain Specific Language Introduction

CSSE 490 Model-Based Software Engineering: MDSD and Case Study

CSSE 490 Model-Based Software Engineering: Transformation Systems

CSSE 490 Model-Based Software Engineering: Introduction to MetaModels

Modelling in Enterprise Architecture. MSc Business Information Systems

CSSE 490 Model-Based Software Engineering: Architecture Description Languages (ADL)

All you need are models Anneke Kleppe, Klasse Objecten

Outline. A little history. Outline. The Unified Modeling Language Opportunities and Challenges for Formal Methods

Modellierung operationaler Aspekte von Systemarchitekturen. Master Thesis presentation. October 2005 March Mirko Bleyh - Medieninformatik

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com

The Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling

Part II Black-Box Composition Systems 20. Finding UML Business Components in a Component-Based Development Process

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Comparative analysis of MDA tools

The Eclipse Modeling Framework and MDA Status and Opportunities

2009 Shawn A. Bohner. Shawn Bohner Office: Moench Room F212 Phone: (812)

An Introduction to MDE

CSSE 490 Model-Based Software Engineering: Transformational Programming

CSSE 374: More Object Design with Gang of Four Design Patterns

CSSE 374: Logical Architecture. Shawn Bohner Office: Moench Room F212 Phone: (812)

CSSE 374: UML Activity Diagrams. Shawn Bohner Office: Moench Room F212 Phone: (812)

Part II Black-Box Composition Systems 10. Business Components in a Component-Based Development Process

Model Driven Development. Building Automated Code Generation Methods with Eclipse and DSL Tools. Vicente Pelechano

Index. business modeling syntax 181 business process modeling 57 business rule 40

The etrice Eclipse Project Proposal

From Models to Components. Rapid Service Creation with

Software Industrialization

Role of Executable UML in MDA. Presented by Shahid Alam

Softwaretechnik. Lecture 19: Model Driven Engineering. Peter Thiemann. University of Freiburg, Germany

Softwaretechnik Model Driven Architecture Meta Modeling

A UML 2 Profile for Variability Models and their Dependency to Business Processes

* Corresponding Author

Christian Doppler Laboratory

Model Driven Engineering (MDE)

Compositional Model Based Software Development

Object Management Group Model Driven Architecture (MDA) MDA Guide rev. 2.0 OMG Document ormsc/

UML 2.5: Specification Simplification

10.1 Big Objects, Business Objects, and UML Components

Model driven Engineering & Model driven Architecture

Software Engineering from a

Model Abstraction versus Model to Text Transformation

SUMMARY: MODEL DRIVEN SECURITY

An Ontological Approach to Domain Engineering

OCL Support in MOF Repositories

Formal Foundations of Software Engineering

CSSE 374: Even More Object Design with Gang of Four Design Patterns

Introduction to Model Driven Engineering using Eclipse. Frameworks

It s all Done with Mirrors Patterns and OCL. KMF Kent Modelling Framework D.H.Akehurst and O.Patrascoiu

An introduction to MOF MetaObject Facility.

Metamodeling with Metamodels. Using. UML/MOF including OCL

MDA Journal. Toward a Business Process Platform A BPT COLUMN. David S. Frankel Lead Standards Architect - Model Driven Systems SAP Labs.

Construction of Complex UML Profiles

OO Analysis and Design with UML 2 and UP

Semantic Information Modeling for Federation (SIMF)

Transformational Design with

2009 Shawn A. Bohner. Shawn Bohner Office: Moench Room F212 Phone: (812)

IBM Rational Software Architect

Trace-Directed Modelling Mid-Project Meeting Report

Tools to Develop New Linux Applications

with openarchitectureware

Introduction to MDE and Model Transformation

Introduction to Dependable Systems: Meta-modeling and modeldriven

The Model-Driven Semantic Web Emerging Standards & Technologies

Models versus Ontologies - What's the Difference and where does it Matter?

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Expressing Feature-Based Variability in Structural Models

A framework for business processes view integration

Model Driven Architecture

MDT OCL Goes Generic. Introduction to OCL and Study of the Generic Metamodel and API. Christian W. Damus IBM Rational Software OCL Committer

Improving the Definition of UML

Applying Model Driven Technologies in the Creation. of Domain Specific Modeling Languages

Model-Driven Language Engineering

The Write Once, Deploy N MDA Case Study

Lecture 13 Introduction to Software Architecture

Kermeta tutorial. How to create a metamodel. François Tanguy, Didier Vojtisek. Abstract

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages

Requirements Modelling and Software Systems Implementation Using Formal Languages

Introduction to UML. (Unified Modeling Language)

CISC836: Models in Software Development: Methods, Techniques and Tools

CSSE 374: Design Class Diagrams. Shawn Bohner Office: Moench Room F212 Phone: (812)

ATL: Atlas Transformation Language. ATL User Manual

Whole Platform Foundation. The Long Way Toward Language Oriented Programming

INF5120 Model-Based System Development

Model Driven Development Unified Modeling Language (UML)

bahmanzamani.com Computer Engineering i Dept. University of Isfahan

Object-Oriented Theories for Model Driven Architecture

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach?

A UML 2 Profile for Variability Models and their Dependency to Business Processes

Model Driven Architecture - The Vision

Eclipse technology in IFMS Interface Management System

3rd Lecture Languages for information modeling

Model Driven Architecture

Semantics-Based Integration of Embedded Systems Models

Transcription:

CSSE 490 Model-Based Software Engineering: Introduction to Domain Engineering Shawn Bohner Office: Moench Room F212 Phone: (812) 877-8685 Email: bohner@rose-hulman.edu

Learning Outcomes: Metamodels Design a metamodel for a model-based software system. Exam Discussion Milestone 2 Demo Looking closer at Mapping Introduce Object Constraint Language (OCL) Action Semantics (if time) Introduce Domain Eng. Q3

Midterm Stats Average Score = 85.6 High Score = 90 Low Score = 77 Grade allocations A => 88-100 B+ => 85-87 B => 79-84 C+ => 75-78

Milestone #2 LET S DEMO!

What is the difference between conventional Software Engineering and Model Based Software Engineering? Again, think for 15 seconds Let s talk Q3

Conventional and MBSE Conventional Software Engineering Requirements Analysis Produces requirements for one system System Design Produces design of one system System Implementation Produces system implementation Model-Based Engineering Domain Analysis Produces reusable, configurable requirements for a class of systems Design Produces reusable design for a class of systems and a production plan Implementation Produces reusable components, infrastructure and production process

Abstraction Gaps Bain of Mapping A b s t r a c t i o n G a p Middleware with Framework 3GL with Middleware 3GL with Operating System Machine Code with Operating System Machine Code Generators Level of Abstraction

Abstraction or Refinement? Mapping techniques between two metamodels often formulate 1. An abstraction (leading to more abstract metamodels) or 2. A refinement (leading to more detailed metamodels) Hence, one metamodel is sometimes called an abstraction or a refinement of the other When do we call a mapping a refinement? When do we call it an abstraction?

Definitions: Refinement Let A and B be two metamodels B is said to be a refinement of A if a "reasonable" (semantic-preserving) surjective mapping technique (or mapping in the algebraic sense) from A to B cannot be provided

Refinement Mapping

Definitions: Abstraction Let A and B be two metamodels B is said to be an abstraction of A if a "reasonable" (semantic-preserving) surjective and non-injective mapping technique (or mapping in the algebraic sense) from A to B can be provided

A matter of perspective

Mapping Models Model instance_of 1 Metamodel +describes Platform +source 1..n 1 +target 1..n +source 1..n 0..1 1 +t arget Mapping application_of MappingTechnique 1 Multiple mappings may be applied successively in a chain

Models, Metamodels, & Platform Stack Model instance_of 1 Metamodel +describes 1..n 0..1 Platform 1..n Standards: - UML - standardized UML profiles - XMI - Programming Languages Standard: - MOF Standards: - CORBA - J2EE -.NET - Linux - Windows +realizedon PrimitiveRealization 1..n PlatformRealization implemented_with ComposedRealization

Formal: Mapping Techniques Model conforms_to 0..1 Metamodel +represent ingmodel 0..n +abstractsyntax 1..n +source renders Example: UML Profile 0..n +targetmappingtechnique MappingTechnique 0..n +sourcemappingtechnique +representedmodel 0..1 Model conforms_to 0..1 1 Metamodel +t arget +abstractsyntax

Annotations for Specific Mapping Techniques +model Model conforms_to +abstractsyntax 0..1 Metamodel +metamodel +target 1 1..n +source +target 1 1..n +source +sourcemapping 0..n 0..n Mapping +targetmapping application_of +sourcemappingtechnique 1 0..n 0..n MappingTechni que +targetmappingtechnique +requiringmapping 0..n 0..n +providingmapping +mappingtechnique +requi ringmappingtechnique 0..n 0..n +providingmappingtechnique Example: Record of the transformation +requiredannotation 0..n 0..n Annotation +providedannotation +requiredannotationmodel instance_of 1 0..n 0..n AnnotationModel +providedannotationmodel 0..n +annotation +annotationmodel 0..* +annotationmodel

Analysis is to Design as Domain is to? Again, think for 15 seconds Let s talk

Where is Domain Engineering? Investment Domain Engineering Feedback" Application Engineering Environment" Payback Application Engineering Applications Applications Applications

Example: Domain Context

Example: Interactions in Domain

Example: Domain Operation Contract Note Properties that must be true to admit a patient Preconditions Post-conditions Invariants

Object Constraint Language (OCL) OCL defines the structure of models expressing constraints Pre and post conditions, Invariants OCL is a meta-model instance of the MOF The OCL semantic is defined with models (operation without side effect) OCL defined a concrete syntax ModelElement Class BankAccount +balance Constraint * * 1 * ModelPropertyCall amount Expression ExpressionInOcl {context BankAccount inv: balance > -1000 } PropertyCallExp > Literal -1000 * * OclExpression

Dealing with Behavior Need common semantic base for all behaviors Choice of behavioral formalism driven by application needs Classifier 0..1 0..* Behavior Class UseCase Component... Action Activity Interaction Statemachine

Action Semantics AS defines the structure of models expressing sequences of actions CreateObjectAction Pin WriteStructuralAction CallOperationAction AS was a meta-model and is now completely integrated in UML 2.0 AS has no concrete syntax (UML diagram) The semantic of AS is not formally defined (an RFP is published) cb 100 10 BankAccount +balance +credit()

Homework and Milestone Reminders Milestone 2: Establish a repository and structure for assembling components for your FacePamphlet application Due by 1:35pm Today, April 11 th, 2011 Case Study/Homework: UML 2: A model-driven development tool by B. Selic Be prepared to discuss and even lead the discussion Write a brief summary of observations on the paper based on assignment (on Angel) Due by 1:35pm Tuesday, April 12 th, 2011

Representing Models: Some Examples Editable ASCII UML Graphical Notation ASCII UML Graphical Notation Representation UML textual notation syntax UML textual notation syntax UML UML ASCII UML Profile for "EJB Compact Bean" UML Profile for JSR 26 Java Syntax Programmatically Accessible EJB Compact Bean Metamodels EJB Expanded Bean (JSR 26) Java Abstract Syntax Tree

Bridge Mappings: Case Notes

Example: Domain Model

Map to Lower Levels

Platform Independent Model (PIM)

Some Open Source Transformers Generative Model Transformer (GMT) http://www.eclipse.org/gmt Eclipse project (vaporware, JUUT-je prototype, UMLX 0.0) XMI-based (XMI+XMIà XMI, XMIà XMI, XMIà text) AndroMDA http://www.amdromda.org Builds on XDoclet, uses Velocity template engine Takes UML XMI input and generates output using cartridges Current cartridges: Java, EJB, Hibernate, Struts Generates no business logic Jamda http://jamda.sourceforge.net Takes UML XMI file as input, using Jamda profile Java-based code generators Generates class definitions added to UML model before codegen

But what about Assembly? System Component Sub-Component

Product Line Philosophy Power of a product line lies in its ability to leverage common features despite necessary variances between different systems in the domain Viability of the product-line approach depends on predictable variances Entails a significant change in mindset Cultural issue poses the greatest challenge to adopting a productline approach Use of a common asset base In production Of a related set of products 33

Key Product Line Concepts Use of a Common Asset Base Architecture Production Plan In Production Business Case Of a Related Set of Products 34

Ecosystem: Key Product Line Activities 35 Source: Software Engineering Institute

A FAST Process Investment Domain Engineering Feedback" Application Engineering Environment" Payback Application Engineering Applications Applications Applications

Domain Engineering Domain Analysis Domain Model" Domain Implementation Analysis Document," Application Modeling" "Language" Application Engineering Environment" Tools, Process" 37

The Domain Model Conceptual Framework Family Definition Commonalities and Variabilities Among Family Members Common Terminology for the Family Abstractions for the Family Economic Analysis Application Modeling Language (AML) Language for stating requirements Mechanism for translating from AML to Code Alternative 1: Compiler Alternative 2: Composer 38

Building The Conceptual Framework Qualify The Domain Is it economically viable? Define The Decision Model What decisions must be made to identify a family member? Define The Family What do members of the family have in common and how do they vary? Design The Application Modeling Language What is a good way to model a family member? Design The Application Engineering Environment What are good mechanisms for using the decision model and the Application Modeling Language? 39

Defining The Family: Commonality Analysis Dictionary of terms Technical terms that define a vocabulary for the domain Primary Condition: The availability of a unit: working: ready, unready, or unusable Commonalities: Assumptions that hold for every member of the family Every unit must be in one of the four primary conditions. Variabilities: Assumptions that define the range of variation for the family Some unit names have inhibit states. Parameters of Variation: Quantification of the variabilities Whether or not a unit name can have an inhibit state: Boolean 40

Reusable Assets Validations -- generic algorithms for every unit type Realizations -- generic algorithms for every unit type Relationships data that is used to drive the generic algorithms design information shared across development 41

Case Study/Homework: UML 2: A model-driven development tool by Bran Selic What are the alternatives? How hard are they to implement? Is there support from the community?

MOF Action Semantics EMF has limited Behavioral Modeling support Action semantics capture the behavior of a model (i.e., how the model behaves) Actions semantics has been proposed for UML 2.0. Variants appear in Executable UML Let s talk more about Action semantics and Object Constraint Language (OCL) on Monday