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

Similar documents
CSSE 490 Model-Based Software Engineering: Transformation Systems

CSSE 490 Model-Based Software Engineering: Software Factories

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

Model-Driven Architecture/ Development

CSSE 490 Model-Based Software Engineering: Domain Engineering

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

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

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

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

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

CSSE 490 Model-Based Software Engineering: Transformational Programming

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

CSSE 490 Model-Based Software Engineering: Introduction to MetaModels

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

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

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

Model Driven Architecture - The Vision

MDD with OMG Standards MOF, OCL, QVT & Graph Transformations

Model driven Engineering & Model driven Architecture

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

We are at System Operation Contracts

Incremental development A.Y. 2018/2019

Architecture-driven development of Climate Control Software LMS Imagine.Lab Embedded Software Designer Siemens DF PL

CSSE 374: GRASP ing at the First Five Patterns Principles. Shawn Bohner Office: Moench Room F212 Phone: (812)

Introduction to Software Engineering

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

Unified Modeling Language (UML)

Advanced Topics in Software Engineering (02265) Ekkart Kindler

Software Engineering

Why and Where do we need Executable modeling?

innoq Deutschland GmbH innoq Schweiz GmbH D Ratingen CH-6330 Cham Tel Tel

xuml, AADL and Beyond

Model-Based Embedded System Engineering & Analysis of Performance-Critical Systems

Compositional Model Based Software Development

Introduction to Dependable Systems: Meta-modeling and modeldriven

Analysis and Design with UML

COBOL-IT Developer Studio

IBM Software Group. Mastering Requirements Management with Use Cases Module 10: Structure the Use-Case Model

The Model Driven (R)evolution. Richard Mark Soley, Ph.D. Chairman and CEO Object Management Group, Inc.

What is Software Architecture

Pattern for Structuring UML-Compatible Software Project Repositories

Threat Modeling and Sharing

UML for Real-Time Overview

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

Software Engineering from a

IS 0020 Program Design and Software Tools

Representing System Architecture

Lecture 2: Software Engineering (a review)

MDSE USE CASES. Chapter #3

Activities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects

Outline of Unified Process

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

INF5120 and INF9120 Modelbased System development

The etrice Eclipse Project Proposal

Whole Platform Foundation. The Long Way Toward Language Oriented Programming

Role of Executable UML in MDA. Presented by Shahid Alam

Software Service Engineering

Semantics-Based Integration of Embedded Systems Models

Small is Beautiful Building a flexible software factory using small DSLs and Small Models

Modelling in Enterprise Architecture. MSc Business Information Systems

MDA Driven xuml Plug-in for JAVA

Model-Driven Systems Engineering for Netcentric System of Systems With DEVS Unified Process

Integrating MATLAB Analytics into Business-Critical Applications Marta Wilczkowiak Senior Applications Engineer MathWorks

Introduction to Software Engineering. ECSE-321 Unit 9 Architectural Design Approaches

Chapter 9. Introduction to High-Level Language Programming. INVITATION TO Computer Science

OBJECT-ORIENTED MODELING AND DESIGN. Process Overview

Comparative analysis of MDA tools

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Introduction To Systems Engineering CSC 595_495 Spring 2018 Professor Rosenthal Midterm Exam Answer Key

Software Language Engineering of Architectural Viewpoints

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

SysML Past, Present, and Future. J.D. Baker Sparx Systems Ambassador Sparx Systems Pty Ltd

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

User-Centered Development

SRI VENKATESWARA COLLEGE OF ENGINERRING AND TECHNOLOGY THIRUPACHUR,THIRUVALLUR UNIT I OOAD PART A

Introduction to Software Engineering 10. Software Architecture

Application Compatibility Guide

Enterprise Architecture Frameworks

Practical Model-Driven Development with the IBM Software Development Platform

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

9768: Using RTC's ISPF Client for z/os Code Development

9LV Mk4. Use of DDS for system integration. June, 2007 Thomas Jungefeldt. Saab Systems

1: Software Development and.net. An approach to building software

Lecture 13 Introduction to Software Architecture

Investigation of System Timing Concerns in Embedded Systems: Tool-based Analysis of AADL Models

IBM Research Report. Model-Driven Business Transformation and Semantic Web

Domain Modeling. CSSE 574: Week 1, Part 3. Steve Chenoweth Phone: Office (812) Cell (937)

How to Harvest Reusable Components in Existing Software. Nikolai Mansurov Chief Scientist & Architect

*ANSWERS * **********************************

Introduction to Software Engineering

Methods for the Development

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

BLU AGE 2009 Edition Agile Model Transformation

index_ qxd 7/18/02 11:48 AM Page 259 Index

3rd Lecture Languages for information modeling

Introduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process

Dimensions for the Separation of Concerns in Describing Software Development Processes

OO Analysis and Design with UML 2 and UP

Software Processes. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 1

Horváth Ákos Bergmann Gábor Dániel Varró István Ráth

Transcription:

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

Learning Outcomes: MBE Discipline Relate Model-Based Engineering as an engineering discipline. Software development More on transition from traditional to modelbased development Elements of MBSE MBSysE (if time) Q3

What are some of the most important models you use in developing software? How do they relate to each other? Think for a minute Turn to a neighbor and discuss it for a minute Q2

Software Lifecycle Activities...and their models Requirements Elicitation Analysis System Design Object Design Implementation Testing Expressed in Terms Of Structured By Realized By Implemented By Verified By Use Case Model Application Domain Objects Subsystems Solution Domain Objects class..." class..." class..." Source Code? class..."? Test Cases Q1

Status Quo of Development Integrated Development Environments (IDE) e.g., Eclipse Rationale Enterprise Edition Visual Studio Including Modeling tools e.g., UML (e.g., ArgoUML) Refactoring tools Design Pattern tools Agile Methods as a Silver Bullet Incrementally faster, with less risk May not play well with other disciplines (e.g. QA) Q2

Level of Automation: Past ~35 Years Programming IDEs (e.g. Eclipse, Rational, Visual Studio) Platfom independent model (PIM) Programming Language Higher level of expression Easier to understand Portable Standardized Platfom specific model (PSM) Compiler Engine Diverse HW/OS Platforms Dependable Flexible Configurable Optimizing Complete: Linker, Debugger, etc.

Levels of Automation: MBSE Architectural IDEs (e.g. ArcStyler) PIM Model (UML, ) & Modeling Style (J2EE,.NET, COBOL, ) Higher level of expression Easier to understand Portable Standardized Generator Projection PSM Translative Generator Engine Models to Code Models to Models Code for specific platforms, Refinement models,... Dependable Flexible Configurable Debuggable Optimizing Complete Q3, 4

Key Information Resides in Models System Models Object Model Forward Engineering Functional Model Dynamic Model class..." class..." class..." Code Reverse Engineering Constraints Tradeoffs Issues Pro Con Proposals Issue Model Org Chart PERT Chart Timeline Task Models

Model Clashes

MBSE Starting Point: Domain Domain engineering is the starting point in most cases Establish the key concepts, actors, objects, and interaction in the domain Determine what parts done by a computer, people, roles, mechanisms, Understand forces of change Establish basic vocabulary (later use in DSL) Q5

MBSE: Metamodel Starting with a clear structure of the domain (an ontology), establish the structure for introducing automation Metamodel captures the abstract syntax and the static semantics of a language Abstract syntax (unlike concrete syntax) merely states what the language structure looks like Static semantics determine the well-formedness (e.g., a rule that variables must be declared) Q6

Domain Specific Language Specialized to a domain e.g., telecommunications or telephony billing Makes a domain s aspects formally expressible and model able Model will sometimes be used synonymously with DSL

Formal Models Starting point for automated transformations Formal model needs a DSL Mappings Transformations Always based on metamodel Model to model Model to platform Q7

MBSE: Platform Target of the system System Hardware Communications Operating System Language Database Graphical User Interface etc. MacOS Windows Unix

MBSE: Car Sharing Example Domain Modeling A B UMTS Server Web Server Web Service A B Model Transformation <<EJBArchive>> secureibank Domain Object Models Use Cases... Deployable Components Build & test environment...

This is a model Can you develop it? Think for a minute Turn to a neighbor and discuss it for a minute

Model-Based System Engineering (according to Software Engineering Institute) Architecture Modeling & Analysis ABS NAV ETC ABS NAV ABS ETC Requirements Analysis ETC System Integration Rapid Integration Predictable Operation Upgradeability Reduced Cost Predictive Analysis Early In & Throughout Life Cycle

A Control Engineer Perspective K 1 + - K 2 s Continuous feedback in a controller Tune parameters Component Analysis with Text_IO; package Main is Simulink with Text_IO; package Main is Matlab application Code begin type real is digits 14; type flag is boolean; begin type real is digits 14; type flag is boolean; x : real := 0.0; ready : flag := TRUE; x : real := 0.0; ready : flag := TRUE; Continuous feedback for a control engineer

Software System Engineer Perspective Continuous feedback by Comparing analysis results with actual results with Text_IO; package Main is begin with Text_IO; package Main is begin type real is digits 14; type real is digits 14; type flag is boolean; type flag is boolean; x : real := 0.0; x : real := 0.0; ready : flag := TRUE; ready : flag := TRUE; Application Components Execution Platform Arch. Tools AADL Runtime Timing analysis Reliability analysis Refine properties package Dispatcher is A.p1 := B.p2; Case 10ms: dispatch(a); dispatch(b); T1 T2 T3 T4 12 12 5 R1 6 R2 R3 R4 23 34 8 8 12 12 5 6 24 23 234 23 34 8 8 24 23 234 T1 T2 T3 T4 T1 T2 T3 T4 12 12 5 6 23 3412 8 812 5 6 24 23 23434 8 8 24 23 2 34 Runtime Data R1 R2 R3 R4 12 12 5 6 23 34 8 8 24 23 234 Architecture Model

A Combined Perspective K 1 + Matlab - K 2 s Continuous interaction between Control engineer & system engineer Tune parameters Component Analysis Application Code with Text_IO; package Main is begin type real is digits 14; type flag is boolean; x : real := 0.0; ready : flag := TRUE; Simulink with Text_IO; package Main is begin type real is digits 14; type flag is boolean; x : real := 0.0; ready : flag := TRUE; Arch. Tools AADL Runtime Architecture Models Timing analysis Reliability analysis Refine properties package Dispatcher is A.p1 := B.p2; Case 10ms: dispatch(a); dispatch(b); T1 T2 T3 T4 12 12 5 R1 6 R2 R3 R4 23 34 8 8 24 23 234 12 12 5 6 23 34 8 8 24 23 234 T1 T2 T3 T4 T1 T2 T3 T4 12 12 5 6 23 34 12 8 812 5 6 24 23 234 34 8 8 24 23 2 34 Runtime Data R1 R2 R3 R4 12 12 5 6 23 34 8 8 24 23 234

Homework and Milestone Reminders Continue to Read Chapter 4 of MBSD Text Concept Formulation Let s talk tomorrow about representation forms