1 Software Development Using Executable UML (xUML) Anoop Mathew 11-22-2002.

Slides:



Advertisements
Similar presentations
Introduction to Object Orientation System Analysis and Design
Advertisements

Language Specification using Metamodelling Joachim Fischer Humboldt University Berlin LAB Workshop Geneva
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Model Driven Generative Programming Reza Azimi February 6, 2003 ECE1770: Trends in Middleware Systems.
Lockheed Martin Aeronautics Company © 2001 Lockheed Martin Corporation F-16 Modular Mission Computer Application Software Achieving Cross-Platform Compatibility.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Chapter 22 UML Tooks and UML as Blueprint Model-Driven Architecture (MDA) Object-Constraint Language (OCL)
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Model-Based Programming: Executable UML with Sequence Diagrams By Ruben Campos Cal State L.A. Computer Science Thesis Work Spring 2007.
Object-Oriented Analysis and Design
Introduction To System Analysis and Design
Slide 1 Systems Analysis & Design CS183 Spring Semester 2008 Dr. Jonathan Y. Clark Course Website:
Unified Modeling Language (UML)
HAS. Patterns The use of patterns is essentially the reuse of well established good ideas. A pattern is a named well understood good solution to a common.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
UML Sequence Diagrams Eileen Kraemer CSE 335 Michigan State University.
The chapter will address the following questions:
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Executable UML The Models are the Code - Executable UML CS387 Paul Krause.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 7 Structuring System Process Requirements
1. 2 Purpose of This Presentation ◆ To explain how spacecraft can be virtualized by using a standard modeling method; ◆ To introduce the basic concept.
Introduction to MDA (Model Driven Architecture) CYT.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
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.
Unified Modeling Language, Version 2.0
Executable UML The Models are the Code - Executable UML Lecture 3 - Modelling with Domains and Classes Paul Krause.
Introduction To System Analysis and Design
Executable Translatable UML Stephen J. Mellor Chief Scientist.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Systems Analysis and Design in a Changing World, 3rd Edition
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 02. Objects,
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
7 Systems Analysis and Design in a Changing World, Fifth Edition.
Copyright © 2013 Curt Hill UML Unified Modeling Language.
SWT - Diagrammatics Lecture 4/4 - Diagramming in OO Software Development - partB 4-May-2000.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
Design Model Lecture p6 T120B pavasario sem.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Software Engineering Lecture 8 Object-Oriented Analysis.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
CS 501: Software Engineering Fall 1999 Lecture 15 Object-Oriented Design I.
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
Basic Characteristics of Object-Oriented Systems
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
UML (Unified Modeling Language)
UML AN OVERVIEW. Topics covered in this Session 1. Introducing UML. 2. What constitutes the UML. 3. Concepts of 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.
Roberta Roth, Alan Dennis, and Barbara Haley Wixom
Systems Analysis and Design With UML 2
Chapter 20 Object-Oriented Analysis and Design
Copyright 2007 Oxford Consulting, Ltd
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Appendix A Object-Oriented Analysis and Design
Software Development Process Using UML Recap
Presentation transcript:

1 Software Development Using Executable UML (xUML) Anoop Mathew

2 Agenda Introduction to xUML Software Design using xUML xUML tools Conclusion

3 What is Executable UML? An executable version of UML. Automated methodology utilizing a highly specialized subset of the UML notation. xUML Precisely defined action semantics semantically weak elements UML = - +

4 Executable UML continued… Accelerates development of real- time, embedded software systems. Well defined, disciplined approach to software development Based on the object-oriented approach to software development.

5 Executable UML continued… xUML specification designed to separate design from implementation. Using xUML, application software design is mostly shielded from target platform/language and software architecture considerations. A much higher level of abstraction compared to coding in a specific programming language. Creates extensible and reusable software. Supports iterative software development.

6 The xUML methodology Abstracts away specific programming languages and software organization decisions. xUML specification comprises of a set of models that describe the problem under study. Models can be verified/tested against application requirements independently of the design. This allows for early detection and correction of errors.

7 The xUML methodology Three basic types of models: 1. UML class diagrams – abstract common real world objects into classes. Classes have attributes and associations between classes are modeled as relationships 2. UML state chart – each active object has a lifecycle which is abstracted as state machines. 3. Action Language – specifies the behavior of the object as it goes through each state of its lifecycle

8 How do these models become executable? For UML to be executable, rules have to be defined for the dynamic specification. An xUML model compiler turns the models into implementation. Target hardware and software environment factors in type of implementation compiler produces. Off the shelf compilers or custom made compilers.

9 Software Development Using xUML

10 The system model Executable UML model is built for each subject matter, or domain in the system. To create domains, requirements, in the form of use cases, are sorted into various subject matters in the system.

11 What is a Domain? A domain is an independent, real, or hypothetical world composed of conceptual entities. Domains are autonomous. Conceptual entities in one domain require the existence of all others in the same domain. Conceptual entities in one domain do not require the existence of entities in other domains.

12 Domain (continued) Conceptual entities with the same name can exist in different domains as long as they mean different things. The domain where business logic (application) requirements are captured is called the application domain. All other supporting domains are called service domains. Service domains provide services to application domain.

13 Domain (continued) The xUML model for each domain comprises a set of class, state and action models. Discovering domains and domain refinement is an iterative process. Domain dependencies captured graphically in a domain chart.

14 Domain Chart Example Adapted from Executable UML, A foundation for model driven architecture, Addison Wesley 2002

15 Classes and Attributes Abstract requirements and use cases into a model that formalizes knowledge about the domain. xUML, being object oriented uses classes, attributes and other constructs to organize abstractions.

16 Classes A class is an abstraction from a set of conceptual entities in a domain. They all share the same characteristics. They all behave according to the same rules and policies.

17 Identifying classes Tangible Things Roles played by people or organizations Incidents Specifications

18 Attributes Attribute is an abstraction of a single characteristic of entities abstracted into classes. Attributes have a data type associated with it. Types of Attributes 1. Descriptive – describes intrinsic characteristics of a thing. 2. Naming – name used to refer to a thing. 3. Referential – provides information about links.

19 Datatypes in xUML Core datatypes – boolean, string, integer, real, date, timestamp. Domain specific datatypes - defines a set of possible values an attribute can take. Built with core data types.

20 Example Class Customer {6, Customer} Internet Address name: PersonalName purchaseMade: Count = 0 Name Attributes Operations Adapted from Executable UML, A foundation for model driven architecture, Addison Wesley 2002

21 Relationships and Associations Associations between classes are modeled as relationships. Relationships between classes are labeled as roles or verb phrases. R1 Customer Shopping Cart has items placed in it by adds items to

22 Types of relationships Binary Relationships (1..1, 1..*, 0..1, 0..*) Generalization Associative Relationships

23 Example of relationship types Adapted from Executable UML, A foundation for model driven architecture, Addison Wesley 2002

24 Class Actions Class diagrams capture entities. Class diagrams do not specify what these entities do. An action is an individual operation that performs a single task on an element in a model. Class actions specify the behavior of the class when the class is instantiated.

25 Class Actions (continued) xUML relies on the Precise Action Semantics for UML adopted in 2001 by the Object Management Group (OMG). These action semantics provide the specification but does not define a syntax for these actions. There is no standard syntax for actions. Various action languages exist.

26 Action Languages OAL - Object Action Language SMALL – Shlaer-Mellor Action Language TALL – That Action Language

27 Example of OAL syntax create object instance d of dog; d.name = “sparky”; Create object instance h of doghouse; h.name = “sparkys house”; relate d to h across R1; unrelate d from h across R1; delete object instance d; delete object instance h; select any d from instances of dog where ….. select many dogset from instances of d;

28 Lifecycles Each active object (instance of a class) in the domain has a lifecycle. Lifecycle describes the actions the object performs. Lifecycles in xUML are modeled as state machines. UML state charts used to graphically represent state machines.

29 State Machines Lifecycle formally expressed as a state machine. State machine is comprised of 1. States – each stage of the object lifecycle. 2. Events – trigger. 3. Transitions – specifies the new state given current state and event received. 4. Procedures – specifies the actions that an object performs when it arrives in a state. Specified using an action language.

30 StateChart Example

31 Inter Object Communication Objects communicate as a result of state machine instances sending signals. Signal is a message that may carry data used by the actions in a procedure of a recipients state machine. Signaling is asynchronous There is no return parameters. Signals can be generated to self.

32 Signaling Example entry/ self.action = rcvd_evt.action; select any reqhelper from instances of requesthelper; generate actionreceived(action: self.action) to reqhelper; generate backToIdle to self; 1. Performing an action

33 Synchronizing Objects There is no built in synchronization. Synchronization must be specified explicitly. xUML uses signals to synchronize state machine instances.

34 Rules for synchronization Signals Signals are never lost. Signals are not reusable. Signals are received in the order sent. New signals are accepted by receiver only when it has finished execution of current procedures in a state. Multiple signals could be outstanding at any given time. Signals generated to self always processed before any others.

35 Rules for synchronization Procedures Only one state procedure being executed at any given time. Procedures in different objects can execute at the same time. New signals processed only after current procedures are completed. A procedure must leave data consistent.

36 Inter-Domain Communication Each domain model include external entities (EE). EE’s serve as anonymous proxies for the other domains. Link to another domain achieved by generating signals or synchronously invoking operations on EE’s. When the signals are asynchronous, it is called a bridge operation. Bridge operation is an operation defined on an external entity and implemented in another domain.

37 Turning Models Into Implementation xUML models are compiled into implementation. Compiler choice should be based on application performance requirements and the target environment A model compiler comprises a set of mechanisms and a set of rules to bring the xUML models together(archetypes).

38 Implementation (continued) Mechanisms are library-like components that require no specialization. Model Compiler must provide an implementation mechanism for each element of xUML. Model compiler must include mechanisms to create, store and retrieve data. Model compiler must include mechanisms to execute procedures and actions. Model compiler must include mechanisms to generate signals and receive events.

39 Implementation (continued) Rules for combining the xUML models together are called archetypes. An archetype is a fragment of data access and text manipulation logic that turns xUML models into text, a format that the compiler understands. Two types of archetypes – structural and action semantics.

40 Implementation (continued) Archetypes access a xUML repository whose structure is defined using a meta- model. A metamodel is a model of a language expressed using a modeling language. The metamodel of an xUML model is an xUML model. The metamodel is a model that describes application models, so that the archetype language can traverse the xUML models.

41 Archetype and Java Class.for each object in O_OBJ public class ${obj.name} extends StateMachine private StateMachineState currentState;.select many attributes related by object->O_ATTR[R105].for each attribute in attributes private ${attribute.implType}${attribute.name};.end for.select many signals related by object->SM_SM[R301]->SM_EVT[R303].for each signal in signals protected void ${signal,name} throws ooaException;.end for }.emit to file ${obj.name}.java.end for Public class ProductSelection extends StateMachine { private StateMachineState currentState; private Currency unitPriceOfSelection; protected void addSelection () throws ooaException; protected void changeQuantity() throws ooaExeption; } Adapted from Executable UML, A foundation for model driven architecture, Addison Wesley 2002

42 Sample Compilers Transaction safe system with rollback from Kabira Techologies. BridgePoint Model Compilers from Project Technologies.

43 Executable UML tools

44 BridgePoint Development Suite By Project Technologies Full support of the X T UML Process. Early execution, debug, and test of X T UML application models. Translation of X T UML application models into target-optimized 100% complete code. Customizable translators. Powerful performance-tuning and system resource-optimization. courtesy

45 BridgePoint Development Suite Image courtesy

46 BridgePoint Development Suite BridgePoint Model Builder – allows you to build all the artifacts needed in the xUML process. Syntax checking for OAL. Strong model configuration management and version control. Central repository model.

47 Image courtesy

48 BridgePoint Development Suite BridgePoint Model Verifier – executes xUML models to quickly debug and verify application behavior. Models can be verified as soon as they are created. They do not need to be compiled. Verifier is interpretive. Early detection and correction of errors.

49 Image courtesy

50 BridgePoint Development Suite BridgePoint Model Generator – translates the models into executable code using design pattern and rules specified through a model compiler. Sample Model Compilers MC-2020 – generates C++ code, runs on multiple RTOS and host OS environments. MC-3020 – generates C code.

51 Image courtesy

52 Conclusion Executable UML has been used successfully by many projects. There has to be an agreement on a standard Executable UML. This would lead to standardized compilers

53 More Info/Questions Project Website More Info Mellor Steven J, Balcer Marc J, Executable UML, A foundation for model driven architecture, Addison Wesley Questions??