Software Architecture & Design

Slides:



Advertisements
Similar presentations
Language Specification using Metamodelling Joachim Fischer Humboldt University Berlin LAB Workshop Geneva
Advertisements

Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML, Part 4 UML 2 Metamodel.
Automated Test Design ™ © 2011 Conformiq, Inc. CONFORMIQ DESIGNER On ES v1.2.1 Stephan Schulz MBT Working Meeting/MTS#56, Göttingen.
IEC Substation Configuration Language and Its Impact on the Engineering of Distribution Substation Systems Notes Dr. Alexander Apostolov.
Metamodel Global view. Some sources Object Modeling with UML: Advanced Modeling, Karin Palmkvist, Bran Selic, and Jos Warmer, March 2000.
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.1 Formal Techniques in Software Engineering 3de BAC Informatica Chapter.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Software Requirements
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
Course Instructor: Aisha Azeem
Formalizing Material Flow Diagrams How can an MDE approach be used to improve the design process of material handling systems? Robert-Jan Bijl.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 4 - System modelling Dr Richard Clayton.
Faculty of Informatics and Information Technologies Slovak University of Technology Peter Kajsa and Ľubomír Majtás Design.
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
Slide 1 Wolfram Höpken RMSIG Reference Model Special Interest Group Second RMSIG Workshop Methodology and Process Wolfram Höpken.
MDA and QVT  Tom Gullion, Director of Product Management, Together Products.
MDE Model Driven Engineering Xavier Blanc Université Pierre et Marie Curie
Introduction to MDA (Model Driven Architecture) CYT.
Introduction to UML By: Prof. Aiman Hanna Department of Computer Science, Concordia University, Montreal, Canada.
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
METACASE. WHAT THIS PRESENTATION IS ABOUT  What’s META MODELING?  What’s METACASE?  METAEDIT+ 5.1 EVALUTION PROGRAM  Diagram and its kinds.
Diagram Definition A Case Study with the UML Class Diagram MoDELS 2011, Wellington, NZ By Maged Elaasar 1,2 (Presenter) and Yvan Labiche.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
1 Devon M. Simmonds Metadata & The UML Metamodel SLIDES include some from tvarious sources including: (1)
SaveUML System design. System overview Possible...
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
Model Driven Development An introduction. Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language.
A language to describe software texture in abstract design models and implementation.
Systems Analysis and Design in a Changing World, 3rd Edition
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
Sheet 1 DocEng’03, Grenoble, November 2003 Model Driven Architecture based XML Processing Ivan Kurtev, Klaas van den Berg University of Twente, the Netherlands.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
CIM LAB MEETING Presentation on UML Rakesh Mopidevi Kwangyeol Ryu.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
UML Profile BY RAEF MOUSHEIMISH. Background Model is a description of system or part of a system using well- defined language. Model is a description.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Yu, et al.’s “A Model-Driven Development Framework for Enterprise Web Services” In proceedings of the 10 th IEEE Intl Enterprise Distributed Object Computing.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML: UML 2 Metamodel Note to Instructor: The material in this.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
Introduction to OOAD and UML
Defects of UML Yang Yichuan. For the Presentation Something you know Instead of lots of new stuff. Cases Instead of Concepts. Methodology instead of the.
Application architectures. Objectives l To explain the organisation of two fundamental models of business systems - batch processing and transaction processing.
UNIT-IV Designing Classes – Access Layer ‐ Object Storage ‐ Object Interoperability.
OPCAT: Object-Process CASE Tool
UML Diagrams By Daniel Damaris Novarianto S..
Object Management Group Information Management Metamodel
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Object-Oriented Analysis and Design
SysML v2 Formalism: Requirements & Benefits
Chapter 11 Object-Oriented Design
Web Application Modeling
University of Central Florida COP 3330 Object Oriented Programming
UML Diagrams Jung Woo.
Business Process Measures
Chapter 2, Modeling with UML, Part 4 UML 2 Metamodel
Introduction to UML.
Evaluating Compuware OptimalJ as an MDA tool
UML profiles.
Constructing MDA-based Application Using Rational XDE for .NET
Metadata Framework as the basis for Metadata-driven Architecture
An Introduction to Software Architecture
Chapter 7 –Implementation Issues
Introduction to Pattern Oriented Analysis and Design (POAD)
Model Driven Software Development
Software Architecture & Design
Presentation transcript:

Software Architecture & Design 6CCS3SAD / 7CCSMDAS Dr Kevin Lano

Session 9: Model-Driven Engineering I March 11th, 2019

Learning Outcomes At the end of this session you should be able to: Explain the benefits of automation in software development; Explain the MOF meta-modelling architecture

So far Architecture models constructed manually Abstract Architectures Concrete Architectures for .NET Architectural Styles Architectures are then passed on to developers for manual design and implementation

Problems Enforcing architectures and constraints? Errors introduced through manual implementation Reuse?

Today Model-Driven Engineering (MDE) can help address these problems  Automatically transform models all the way to code Enforce architectural constraints Avoid implementation errors Simplify reuse and increase consistency

Model-Driven Engineering (MDE) Overview Models as central artefacts of software development Architecture, design, ... Model transformations to encode and automate processing of models Model-to-model (M2M): Transform models into other models Model-to-text (M2T): Transform models to source code or other text

Model-Driven Engineering (MDE) Overview Models as central artefacts of software development Architecture, design, ... Model transformations to encode and automate processing of models Model-to-model: Transform models into other models Model-to-text: Transform models to source code/text

Model-to-Text Transformations Programs that Take a model (or models) as input For example, an architecture diagram Requires formalised (i.e., computer processible) representation of the model Produce a text file (or files) as output Often, but not always, source code

Model-to-Text Transformations Programs that Take a model (or models) as input For example, an architecture diagram Requires formalised (i.e., computer processible) representation of the model Produce a text file (or files) as output Often, but not always, source code

Models Models are abstractions of a system Different from the system – details are left out Can be used as an example to produce a system Models are descriptions of a system written in a well-defined modelling language Modelling languages we have used: To design class hierarchy of a system using language of UML class diagrams To design system architecture using UML2 component-diagram language To design a COM+ specific system architecture using COM+ specialization of UML2 component diagrams

Metamodels A metamodel is a description of a modelling language A model of models Defines all concepts that can be used within a language A model is constructed using the syntax defined by a metamodel You know a range of metamodels: UML class diagrams UML2 component diagrams .NET/COM+ specialization Relational data model diagrams XMLSchema for XML documents …

Models, languages and metalanguages is written in Metamodel is written in Model

The Meta-Object Facility (MOF) Is an OMG standard for defining modelling languages OMG = Object Management Group A model of meta-models (a meta-metamodel) UML, the OCL, relational database models, specializations of UML can all be represented in the MOF An object-oriented approach to defining modelling languages Modelling concepts defined as “meta-classes” Meta-classes themselves are instances of MOF classes 4 layered architecture to define the modelling / meta-modelling process Layers M0 to M3

Layers M0 and M1 We already know these Layer M0 is the actual running system E.g., component instances E.g., customer objects, representing actual customers accessing an ecommerce system Layer M1 is a system model Defines the types of entities and relationships that make up a system E.g., component specifications E.g., a UML class model, defining a Customer class that specifies that customer objects are system entities Every element of M0 is an instance of an element from M1

Layers M0 and M1 :Customer title = “Dr” name = “Jekyll” :Customer M0: System (at runtime) M0 are system instances – specific objects, eg., at runtime :Customer title = “Dr” name = “Jekyll” :Customer title = “Mr” name = “Hyde”

Layers M0 and M1 Customer title : String name : String :Customer M1: Model of a System M0: System :Customer title = “Dr” name = “Jekyll” :Customer title = “Mr” name = “Hyde”

Layers M0 and M1 Customer title : String name : String :Customer <<instance-of>> <<instance-of>> M1: Model of a System M0: System :Customer title = “Dr” name = “Jekyll” :Customer title = “Mr” name = “Hyde”

Layers M0 and M1 Customer title : String name : String :Customer <<instance-of>> <<instance-of>> M1: Model of a System M0: System :Customer title = “Dr” name = “Jekyll” :Customer title = “Mr” name = “Hyde” Notation: ‘:’ and underscore to indicate objects  This is an object diagram

Layers M0 and M1 Notation: No ‘:’ nor underscore to indicate class  This is a class diagram Customer title : String name : String <<instance-of>> <<instance-of>> M1: Model of a System M0: System :Customer title = “Dr” name = “Jekyll” :Customer title = “Mr” name = “Hyde”

Layer M2 For a modelling tool, all elements of a model are objects They are on ‘M0’ Their classes are things like ‘Class’, ‘Attribute’, or ‘Association’ A meta-model (M2 model) reflects this: Meta-classes on M2 are instantiated by model elements on M1

M0 as instance of M1 Customer title : String name : String :Customer M1: Model of a System M0: System :Customer title = “Dr” name = “Jekyll” :Customer title = “Mr” name = “Hyde”

Layer M2 M1: Model of a System Customer title : String name : String

Layer M2 :UML Attribute name = “title” type = “String” :UML Class M1: Model of a System M1 model is viewed as an instance of an M2 model. :UML Attribute name = “title” type = “String” :UML Class name = “Customer” :UML Attribute name = “name” type = “String”

Layer M2 :UML Attribute name = “title” type = “String” :UML Class M2: Meta-model of UML M1: Model of a System :UML Attribute name = “title” type = “String” :UML Class name = “Customer” :UML Attribute name = “name” type = “String”

M1 as instance of M2 Instantiation of associations by links. This happens between M1 and M0, too. UML Attribute name : String type : String UML Class name : String 1 * <<instance-of>> <<instance-of>> M2: Meta-model of UML M1: Model of a System :UML Attribute name = “title” type = “String” :UML Class name = “Customer” :UML Attribute name = “name” type = “String” Notation: ‘:’ and underscore to indicate objects  This is an object diagram 17/03/2016 Side note: The actual UML meta-model is more complex and uses different names for the meta-classes.

Layer M3 We use the same trick again We get a language for defining meta-models A meta-meta-language Defines key concepts of meta-models Meta-classes and associations of M2 are instances of meta-meta-classes of M3 The MOF is really the language for M3 models

Layer M3 UML Class name : String UML Attribute type : String * 1 <<instance-of>> <<instance-of>> M2: Meta-model of UML M1: Model of a System :UML Attribute name = “title” type = “String” :UML Class name = “Customer” :UML Attribute name = “name” type = “String”

Layer M3 UML Class name : String UML Attribute type : String 1 * M2: Meta-model of UML UML Class name : String UML Attribute type : String * 1

Layer M3 :MOF Class name = “UML Class” :MOF Association :MOF Class M2: Meta-model of UML :MOF Class name = “UML Class” src :MOF Association :MOF Class name = “UML Attribute” tgt

Layer M3 MOF Class name : String MOF Association :MOF Class 1 src tgt M3: MOF Meta-meta-model M2: Meta-model of UML :MOF Class name = “UML Class” src :MOF Association :MOF Class name = “UML Attribute” tgt

M2 as instance of M3 MOF Class name : String MOF Association 1 src tgt <<instance-of>> <<instance-of>> M3: MOF Meta-meta-model M2: Meta-model of UML M2 model viewed as an instance of an M3 model :MOF Class name = “UML Class” src :MOF Association :MOF Class name = “UML Attribute” tgt

Putting It All Together MOF Class name : String MOF Association 1 src tgt M3: MOF Meta-meta-model

Putting It All Together MOF Class name : String MOF Association 1 src tgt M3: MOF Meta-meta-model M2: Meta-model of UML :MOF Class name = “UML Class” name = “UML Attribute” :MOF Association src tgt

Putting It All Together MOF Class name : String MOF Association 1 src tgt M3: MOF Meta-meta-model M2: Meta-model of UML :MOF Class name = “UML Class” name = “UML Attribute” :MOF Association src tgt M2: Meta-model of UML M1: Model of a System :UML Attribute name = “title” type = “String” :UML Class name = “Customer” :UML Attribute name = “name” type = “String” M1: Model of a System M0: System :Customer title = “Dr” name = “Jekyll” :Customer title = “Mr” name = “Hyde”

Putting It All Together (2) M3: MOF Meta-meta-model M2: Meta-model of UML M1: Model of a System M0: System

Why so many layers? M0 and M1 are clearly useful M2 M3 Programs and models of programs. Writing good models is essential to sound software development M2 Important for defining modelling languages, eg., UML Different modelling languages for different contexts E.g., a modelling language for COM+ architectures M3 Important to relate languages and build language tools E.g., code generators from UML to Java

Part of UML class diagram metamodel * *

Part of the UML2 Components Metamodel Specialisation of UML Class language Component metaclass specialises UML Class with provided and required interface attributes This is how languages are defined: First provide metaclass diagrams Then document metaclass semantics in English and OCL Class Component Interface provided required * *

Reminder: What we wanted to do Automate implementations of architecture By generating source code from architecture models Using model-to-text transformations Requires formal representation of models Requires language for expressing transformations Requires engine for executing transformations

Meta Modelling tools Eclipse : ECORE meta-modelling framework (MOF based) MetaCase Tool

Eclipse ECORE

MetaCase 17/03/2016

Coming up Code Generation with EGL (Epsilon Generation Language)