CSSE 490 Model-Based Software Engineering: Software Factories

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

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: Domain Engineering

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

Model-Driven Architecture/ Development

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

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

CSSE 490 Model-Based Software Engineering: Transformation Systems

CSSE 490 Model-Based Software Engineering: Transformational Programming

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

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

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

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

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

Whole Platform Foundation. The Long Way Toward Language Oriented Programming

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

Future Directions for SysML v2 INCOSE IW MBSE Workshop January 28, 2017

Introduction to Software Engineering 10. Software Architecture

The 60-Minute Guide to Development Tools for IBM Lotus Domino, IBM WebSphere Portal, and IBM Workplace Applications

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

Advanced Topics in Software Engineering (02265) Ekkart Kindler

We are at System Operation Contracts

Language Extension and Composition with Language Workbenches

Tools to Develop New Linux Applications

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

Domain Specific Languages. Product Line Engineering

CSSE 490 Model-Based Software Engineering: Introduction to MetaModels

A REVIEW OF BASIC KNOWLEDGE OF DATABASE SYSTEM

What is a Data Model?

Introduction to EGF. Benoît Langlois / Thales Global Services.

Introduction to MDE and Model Transformation

Language engineering and Domain Specific Languages

A conceptual framework for building good DSLs. Markus Voelter independent/itemis

Lecture 13 Introduction to Software Architecture

A little History Domain Specific Languages Examples Tools Benefits A more theoretical View Programming and Modeling The LWES Project Bonus: Best

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language

JBPM Course Content. Module-1 JBPM overview, Drools overview

Dr. Tom Hicks. Computer Science Department Trinity University

DITA for Enterprise Business Documents Sub-committee Proposal Background Why an Enterprise Business Documents Sub committee

Architecture Viewpoint Template for ISO/IEC/IEEE 42010

The Eclipse Modeling Framework and MDA Status and Opportunities

Frustrated by all the hype?

What Is Computer Science? The Scientific Study of Computation. Expressing or Describing

Domain Specific Development

Christian Doppler Laboratory

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

Definition of Information Systems

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

Compositional Model Based Software Development

ITM DEVELOPMENT (ITMD)

Metaprogrammable Toolkit for Model-Integrated Computing

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Teiid Designer User Guide 7.5.0

Start Up Benoît Langlois / Thales Global Services Eclipse (EMFT) EGF 2011 by Thales; made available under the EPL v1.

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

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

ESE Einführung in Software Engineering!

ECLIPSE MODELING PROJECT

OMG Workshop MDA. Tool Chains for MDA? Let's consider leaving our tool chains behind us.

Advanced Systems Lab (Intro and Administration) G. Alonso Systems Group

Architectural Design

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

Architectural Design

Logical Architecture & Design Preliminaries

6. The Document Engineering Approach

Software Industrialization

Introduction to Dependable Systems: Meta-modeling and modeldriven

Semantics-Based Integration of Embedded Systems Models

Using the IMS Universal Drivers and QMF to Access Your IMS Data Hands-on Lab

3.4 Data-Centric workflow

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

Variability differences among products in PL. Variability in PLE. Language Workbenches. Language Workbenches. Product Line Engineering

Introduction to Modeling

Chapter 6 Architectural Design. Chapter 6 Architectural design

Fundamentals to Creating Architectures using ISO/IEC/IEEE Standards

... is a Programming Environment (PE)?... is Generic Language Technology (GLT)?

Programming Assignment IV Due Monday, November 8 (with an automatic extension until Friday, November 12, noon)

Introduction in the Dragon1 open EA Method

Program generation for schema-based, typed data access

Introduction to Information Systems

challenges in domain-specific modeling raphaël mannadiar august 27, 2009

Proposed Revisions to ebxml Technical. Architecture Specification v1.04

Minsoo Ryu. College of Information and Communications Hanyang University.

It Is a Difficult Question! The Goal of This Study. Specification. The Goal of This Study. History. Existing Benchmarks

Orthographic Software Modeling A Practical Approach to View Based Development

CHAPTER 5 CO:-Sketch component diagram using basic notations 5.1 Component Diagram (4M) Sample Component Diagram 5.2 Deployment Diagram (8M)

Combined Object-Lambda Architectures

Introduction to UML. (Unified Modeling Language)

Software Reuse and Component-Based Software Engineering

Software Language Engineering of Architectural Viewpoints

Design concepts for data-intensive applications

Proposed Revisions to ebxml Technical Architecture Specification v ebxml Business Process Project Team

Coding and Unit Testing! The Coding Phase! Coding vs. Code! Coding! Overall Coding Language Trends!

10 Thoughts 2 Demos * Discussions

MDA. SOA = Model Driven SOA

you have to work hard to get your thinking clean to make it simple. Steve Jobs,

Definition of Visual Language Editors Using Declarative Languages

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

Transcription:

CSSE 490 Model-Based Software Engineering: Software Factories 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. Discussion of Milestone 3 Finish Class Project Exercise Example: DRACO Context for Software Factories Key Software Factory Concepts Short Microsoft SF Example Q3

Exercise: Reflect on Class Project Describe how Milestone 3 Environment Automates Software Development. What are the assembling steps? What are the transformational steps? Is the domain language a separate concern? Draw a diagram of how it works? Q1

Early Generative Reuse System DRACO Jim Neighbors (1984) Programs are written in domain-specific languages Optimize DSL programs (because the domain abstractions are visible) Translate DSL to another, lower-level abstraction DSL and do the same Unoptimized DSL program Unoptimized DSL program Optimized DSL program Optimized DSL program Process repeats until you get to machine code Unoptimized DSL program Optimized DSL program Q2

DRACO Perspective of Programming SQL select statement Domain-Specific Language (e.g., set theoretic data language) Generative Programming Parser Inefficient relational algebra expression Optimizer Efficient relational algebra expression Code Generator Automatic Programming efficient program

DRACO View of Query Optimization Generative Programming occurs when mapping between levels of abstraction Automatic Programming occurs when optimizing (or refining/transforming) within a level of abstraction is done automatically Unoptimized Algebra Expression Unoptimized program query optimizer code optimizer SQL statement Optimized Algebra Expression Optimized Java class file Q3

MBSE Requires Advances in: Generative Programming (GP) Understand domain well enough to generate software Programs that synthesize other programs Metaprogramming, skeleton communities Domain-Specific Languages (DSLs) Elevate program specifications to compact domainspecific notations that are easier to write & maintain Automatic Programming Culmination of GP and DSLs Generate efficient programs from declarative specs Precursor to Model-Based Software Engineering

A Case for Automated Programming Structure of matter is fundamental to chemistry and physics Structure of material is fundamental to engineers Structure of software is fundamental to software engineering structure = modules and their composition Structure of software not well-understood Software design, which is a process to define the structure of an application, is an art form We need a science of design for software

So Did the Database People Get it? Nope Look at the Computing Surveys Review of Codd s 1970 seminal paper on the Relational Model... Do you get it? This is a race and my leg is running now Your leg is coming up!

Looking at the details.

Key Original Papers Automatic Programming Robert Balzer. A 15-year Perspective on Automatic Programming. IEEE Transactions on Software Engineering, 11(11):1257 1268, November 1985. David R. Barstow. Domain-Specific Automatic Programming. IEEE Transactions on Software Engineering, 11(11):1321 1336, November 1985. Charles Rich and Richard C. Waters. Automatic Programming: Myths and Prospects. IEEE Computer, 21(8):40 51, August 1988. Automated Planning Keith Golden. A Domain Description Language for Data Processing. Proc. of the International Conf. on Automated Planning and Scheduling, 2003. M. Stickel et al. Deductive Composition of Astronomical Software from Subroutine Libraries. Proc. of the International Conf. on Automated Deduction, 1994.

If you automated software production, what would the factory contain? Think for 15 seconds Let s talk Q4 Q3

Recall: Modeling Concepts Domain describes relevant concepts of Meta Model Abstract Syntax specified based on Static Semantics 0..* Subdomain <<instanceof>> Concrete Syntax DSL specified based on <<synonym>> Formal Model gets meaning from Semantics Modeling Language respects

Recall: Platform Concepts Domain supports Plattform 0..* based on <<abstract>> Building Block {open} Middleware Library Framework Component Aspect Q5

Recall Transformations Platform Platform Idioms <<abstract>> Transformation Source Formal Model 0..* Source Meta Model Meta Model <<instanceof>> Target Model2Platform Transform Target Meta Model Non-generated Artifact Model2Model Transform 0..* Target <<role>> Product 0..* 1..* Generated Artifact Semantics gets meaning from

Recall: Software System Product Lines Product Line Domain Transformation 0..* DSL 1 describes relevant concepts of supports may support Software System Family Domain Architeture Runtime System Platform <<role>> Product 1..*

Generative Programming Concepts <<gp>> Problem Space <<synonym>> Domain describes relevant concepts of Meta Model {open} <<gp>> Feature Model <<instanceof>> <<gp>> Configuration Knowledge Static Semantics <<respects>> Formal Model <<gp>> Specification <<gp>> Solution Space <<synonym>> Platform Model2Platform Transformation

More GP Concepts Guidance, Efficiency Complexity, Flexibility Routine Configuration Creative Construction Configuration Parameters Property Files Feature-Model Based Configuration Graph-Like Languages Framworks Manual Programming Wizards Tabular Configurations Platform consists of maximally combinable and minimally redundant components GP is often routine configuration as opposed to creative construction Q6

Software Factories 1990 s Software Factories emerged as the new automated programming Faced an untrained community coupled with limitations in computing capabilities The Virtual Software Factory Software Templates Software Refinery Devolved into IDEs configured for efficient development of Domain applications (led by Microsoft these days)

Software Factories Schema Schema defines viewpoints for modeling and building a system (e.g., enterprise system): Presentation, form layout and workflow Component structure and business data model Persistence mapping, Deployment, Schema identifies core artifacts as well as the most efficient way of producing them DSLs, frameworks, patterns, manual programming Schema identifies commonalities and differences among applications in the domain Q7

Software Factories Templates Makes the Schema usable Load SF Template into IDE to configure it for specific domain Provides the necessary frameworks or libraries Contributes project types suitable for the factory Delivers build scripts Extends IDE with DSL editors and transformations Q8

MS DSL Tools Example Source: http://galilee.microsoft.fr/(ncqibzbvkp2ezr45aevbcqjk)/ a17fdcfb90f14a7592045f1c0fc5e97f/

Defining a Metamodel Source: http://galilee.microsoft.fr/(ncqibzbvkp2ezr45aevbcqjk)/ a17fdcfb90f14a7592045f1c0fc5e97f/

Graphical Model Editor

GME: Modeling based on previously defined MM

GME: OCL Constraint Validation

Homework and Milestone Reminders Milestone 3: Light-Weight Transformation Environment (see Milestone 3 assignment) Due by 11:55pm, Thursday, May 12 th, 2011. Milestone 4: Final MBSE Environment (see Milestone 4 assignment) Due by 11:55pm, Friday, May 13 th, 2011.