A language to describe software texture in abstract design models and implementation.

Slides:



Advertisements
Similar presentations
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Advertisements

Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML, Part 4 UML 2 Metamodel.
Architecture Representation
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
Unified Modeling Language
Introduction To System Analysis and Design
Software Testing and Quality Assurance
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Lecture 3: Requirements Modeling Intro Professor Aditya Ghose Director, Decision Systems Lab School of IT and Computer Science University of Wollongong.
1 SWE Introduction to Software Engineering Lecture 15 – System Modeling Using UML.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Object-Oriented Theories for Model Driven Architecture Tony Clark, King’s College, UK. Andy Evans, University of York, UK. Robert France, Colorado University,
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Unified Modeling Language Visual language.
1 Conceptual Modeling of Topic Maps with ORM Versus UML Are D. Gulbrandsen The XML group, Center for Information Technology Services, University of Oslo,
1 CS 691z / 791z Topics on Software Engineering Chapter 17: Interfaces and Subsystems [Arlow & Neustadt, 2002] March 6, 2007.
Common Mechanisms in UML
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
Introduction to MDA (Model Driven Architecture) CYT.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
METACASE. WHAT THIS PRESENTATION IS ABOUT  What’s META MODELING?  What’s METACASE?  METAEDIT+ 5.1 EVALUTION PROGRAM  Diagram and its kinds.
Introduction To System Analysis and Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
Object Management Group (OMG) Specifies open standards for every aspect of distributed computing Multiplatform Model Driven Architecture (MDA)
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
SaveUML System design. System overview Possible...
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Hybrid Transformation Modeling Integrating a Declarative with an Imperative Model Transformation Language Pieter Van Gorp
 What is Modeling What is Modeling  Why do we Model Why do we Model  Models in OMT Models in OMT  Principles of Modeling Principles of Modeling 
Dr. Darius Silingas | No Magic, Inc. Domain-Specific Profiles for Your UML Tool Building DSL Environments with MagicDraw UML.
 The need for a formal methodology description  SPEM for describing an agent oriented methodology  PASSI: an example  The needed extension  Discussion.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Jairson Vitorino, Cin UFPE May, 2nd 2005
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Chapter 19: Interfaces and Components [Arlow and Neustadt, 2005] University of Nevada, Reno Department of Computer Science & Engineering.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
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.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
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.
Model Driven Performance Analysis University College London James Skene –
Design Pattern Support based on principles of model driven development Zihao Zhao.
Model Driven Architecture MDA SE-548 Lale Doğan
Object Oriented Analysis & Design By Rashid Mahmood.
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Daniel Amyot and Jun Biao Yan
Object Oriented Analysis and Design
Implementing Language Extensions with Model Transformations
Evaluating Compuware OptimalJ as an MDA tool
Chapter 20 Object-Oriented Analysis and Design
Chapter 19: Interfaces and Components
Implementing Language Extensions with Model Transformations
PASSI (Process for Agent Societies Specification and Implementation)
Software Architecture & Design
Presentation transcript:

A language to describe software texture in abstract design models and implementation

Motivation Unambiguous architecture representation Reusable, implementation language independent design models. Automated architecture compliance checks Precise descriptions of allowable input and resultant output for code generator construction. A verbose notation to specify input and output is counter-productive.

Typical use of UML Cluttered Design Model … peppered with implementation details.

Uncluttered Design Model … free of implementation details.

Compact UML modelling techniques What? - Raising the level of abstraction of design models. How? - The basic idea is straight forward: use the UML to model each allowable construct that can appear in the UML design model in an architecture model, and then use the UML to model all the corresponding implementation constructs in an implementation model. Why? - The achievable difference in the level of abstraction between UML model and implementation code directly corresponds to a gain in productivity if code generation techniques are used to map from UML model to target language(s).

Types of Models Implementation Model (UML) Design Model (UML) Architecture Model (UML) Implementation (Java, XML, SQL) - Architecture Model Design Model mapping Implementation Model - Implementation mapping Design Model - Implementation mapping specificgeneric Architecture Model - Implementation Model mapping abstract concrete

The Architecture Model The Architecture Model is a model is on the same level of abstraction as the Design Model. It describes the usage of design patterns and specifies design constraints.

The Design Model The Design Model is a model on a high level of abstraction that hides all implementation language details. Most UML tools do not provide the features needed to generate code from such a model.

Limitations of the UML The UML has several shortcomings when used as an architecture description language: We resort to what could be called multi-level stereotyping. We need multi-dimensional stereotypes to express the mapping between architecture model and implementation model. Flexibility at the meta-modelling level is required to optimise the notation. With class diagrams we have just scratched the surface of architectural concerns.

Deficiencies of UML tools Current UML tools pose a stumbling block in using the presented modelling techniques: The semantics of the > and the > stereotypes are in conflict with the "validation rules" enforced by most UML tools, such as checks for cyclical inheritance relationships. In this and in similar situations clumsy alternative notations have to be used to model the construct that the UML diagramming tool does not allow.

The Implementation Model The Implementation Model is a model on the same level of abstraction as the implementation. In projects that make extensive use of reverse engineering features of UML tools, the implementation model is often called “design model”.

The Implementation By Implementation we mean all source code artefacts. Some implementation artefacts can be fully generated from the abstract design model, others need to be partially handcrafted.

Conclusion Architectural modelling constitutes a domain that is not adequately covered by the standard UML constructs: Different software architectures implement different separations of concerns - often for good reasons. Each specific architectural concern is best expressed in an optimised, concern-specific notation.

Example of building an ADL Let’s improve the UML representation of the Architecture -> Design -> Implementation mapping: Essentially we want to model a mapping of software texture. To do so we invent a texture diagram notation that allows us to map architectural textures to implementation textures in one diagram. The underlying meta-model should allow the implementation of automated architecture compliance checks.

Notational elements required

Class Texture BusinessReferenceType businessOperation() attribute: UmlBaseType part:UmlAggregation I<BusinessReferenceType>Brt get () set () get () set () <businessOperation>() <BusinessReferenceType>BrtInst <businessOperation>() <BusinessReferenceType>Brt attribute: BaseTypeInterface get () set () get s() set s() s:RoleCursorInterface <BusinessReferenceType>BrtCur add(element : I<BusinessReferenceType>Brt remove(element : I<BusinessReferenceType>Brt I<BusinessReferenceType>BrtCur add(element : I<BusinessReferenceType>Brt remove(element : I<BusinessReferenceType>Brt

Inheritance Texture BusinessReferenceType < >BrtInst <BusinessReferenceType>Brt I<BusinessReferenceType>Brt BusinessType [BusinessReferenceType does not havesuperclass] <BusinessReferenceType>BrtCur I<BusinessReferenceType>BrtCur RoleCursor

Assoc. & Dependency Texture Part ReusablePart BusinessReferenceType Role CorporateReferenceType PresentationReferenceType <BusinessReferenceType>Brt I<BusinessReferenceType>Brt Role Part I<CorporateReferenceType>BrtCur ReusablePart I<PresentationReferenceType>Prt I<BusinessReferenceType>BrtCur <BusinessReferenceType>BrtCur Vector

End