UML Unified MODELING Language

Slides:



Advertisements
Similar presentations
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Advertisements

Analysis and Design with UML
Object-Oriented Analysis and Design
UML Unified Modeling Language Basic Concepts. UML What is the UML*? UML stands for Unified Modeling Language The UML combines the best of the best from:
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
UML Overview Unified Modeling Language Basic Concepts.
Software Engineering Recitation 3 Suhit Gupta. Review CVS problems XML problems – XML/XSD/DTD/SCHEMAS.
Unified Modeling (Part I) Overview of UML & Modeling
Page 1  Copyright © 1997 by Rational Software Corporation Class Diagrams A class diagram shows the existence of classes and their relationships in the.
© Copyright Eliyahu Brutman Programming Techniques Course.
Page 1 R Copyright © 1997 by Rational Software Corporation Analysis and Design with UML.
Unified Modeling Language
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
UML Unified Markup Language Ziya Karakaya Atılım University, Computer Engineering
Page 1 What is the UML? UML stands for Unified Modeling Language The UML combines the best of the best from – Data Modeling concepts (Entity Relationship.
Introduction to UML 1 Quick Tour Why do we model? What is the UML? Foundation elements Unifying concepts Language architecture Relation to other OMG technologies.
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
Solid Palette Gradient Palette I Gradient Palette II APPLYING THESE COLORS Click on the desired color Click on the paintbrush tool located.
Page 1  Copyright © 1997 by Rational Software Corporation Computer System Business Process Order Item Ship via “ Modeling captures essential parts of.
Page 1 R Copyright © 1998 by Rational Software Corporation Visual Modeling and the UML.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Requirements Analysis Visual Modeling] Lab 02 Visual Modeling (from Visual Modeling with Rational Rose and UML) A way of thinking about problems using.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
COP43311 Copyright © 1997 by Rational Software Corporation Unified Modeling Language (UML) Based on slides and papers from Rational’s UML website
Analysis & Design with UML
1 The Unified Modeling Language. 2 The Unified Modeling Language (UML) is a standard language for writing software blueprints. The UML may be used to.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
OOA&D - 1© Minder Chen, Models, Views, and Diagrams Use Case Diagrams Use Case Diagrams Use Case Diagrams Scenario Diagrams Scenario Diagrams.
SWT - Diagrammatics Lecture 4/4 - Diagramming in OO Software Development - partB 4-May-2000.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Introduction to UML CS A470. What is UML? Unified Modeling Language –OMG Standard, Object Management Group –Based on work from Booch, Rumbaugh, Jacobson.
Page 1 R Copyright © 1997 by Rational Software Corporation Analysis and Design with UML Presentation was downloaded (and is available for free) from Rational.
Introduction to OOAD and the UML
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 15 The Unified Modeling Language: a Primer.
UML Diagrams for Caradon developers Daniel DG Moth Core Development Group, Research Student University of Brighton, MSc Object Oriented Software Technology.
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.
Page 1  Copyright © 1997 by Rational Software Corporation Putting the UML to Work The ESU University wants to computerize their registration system –
IST 210 The Rational Unified Process (RUP) and Unified Modeling Language (UML) Todd Bacastow IST 210: Organization of Data.
UML (Unified Modeling Language)
Visual Modeling and the UML. Object Oriented Analysis and Design.
Chapter 3: Introducing the UML
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
UML (Unified Modeling Language)
1 IS 0020 Program Design and Software Tools Unified Modeling Language Lecture 13 April 13, 2005.
1 IS 0020 Program Design and Software Tools Unified Modeling Language Lecture 13 November 30, 2004.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Analysis and Design with UML
CHAPTER
UML Diagrams By Daniel Damaris Novarianto S..
Visual Modeling and the UML
Systems Analysis and Design With UML 2
Unified Modeling Language
Introduction to Unified Modeling Language (UML)
UML Diagrams Jung Woo.
UML SEQUENCE AND CLASS DIAGRAMS
The Unified Modeling Language
The Development Process
Chapter 20 Object-Oriented Analysis and Design
Software Design Lecture : 15.
Introduction to OOAD and the UML
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Presentation transcript:

UML Unified MODELING Language Hoang Huu Hanh, PhD hhhanh@hueuni.edu.vn UML Unified MODELING Language based on online courses and presentations

DEFINITION Unified Modeling Language is the successor to the wave of Object- Oriented Analysis and Design methods that appear in the late `80s and early `90s. Most directly unifies the methods of Booch, Rumbaugh (OMT), and Jacobson, but its reach is wider than that. UML went through a standardization process with the OMG (Object Management Group) and is now an OMG standard. Introduction to UML

CS 578 Software Architecture -- From Architecture to Design: Role Of UML 11 April 2017 UML History Introduction to UML Walk the audience through the timeline. Point out that the UML is the natural successor to the notations. 1. Late ‘80s and early ‘90 - there are many (50+) OO methodologies 2. Among the first generation methodologies, Booch and OMT stood out 3. Around 1993, second generation methodologies came out - Booch ‘93 and OMT-II. Methodologist borrowed good concepts from each others so many concepts were the same across the methodologies, but different notations. 4. Oct. 1994 - Dr. James Rumbaugh joined Rational to unify Booch & OMT. 5. At OOPSLA ‘95, Grady and Jim announced Unified Method 0.8. 6. Use Case technique developed by Dr. Ivar Jacobson was adapted by all methodologies by then. 7. Rational acquires Objectory in fall of ‘95 - Dr. Ivar Jaconson joins Rational. 8. Jun of ‘96 - Rational submits UML 0.9 to OMG. 9. UML gains industry support from HP, Microsoft, Oracle + 16 others 10. UML is the de facto standard for OO and component technologies 11. The final submission goes in Sep. ‘97 - expect the announcement in Dec. ... © 2001-3 Neno Medvidovic & Edward Colbert

WHAT IT IS UML is a modeling language, not a method Most methods consist, at least in principle, of both a modeling language and a process. Modelling Language is the (mainly graphical) notation that methods use to express designs. Process is their advice on what steps to take in doing a design. Modeling Language is the most important part of the method, which is the key part of communication. Introduction to UML

WHY USE UML Helps Analysis and Design Used for communication Use the advantages of OO Documentation As stated in The Unified Modeling Language User Guide; UML is a language for: Visualizing Specifying Constructing Documenting Introduction to UML

Visualizing It makes it easier to understand and work through problem Since it is a formal language, it enables other developers familiar with the language to more easily interpret our drawings. Introduction to UML

Specifying We must communicate our software system using some common, precise, and unambiguous communication mechanism. Again the formal nature of the UML facilitates this specification quite nicely. Introduction to UML

Constructing We know that the UML is a formal language with its own set of syntactical rules. Because of this formality, we can create tools that interpret our models. They can map the elements to a programming language, such as Java, C++. Many tools such as Rational Rose, supports this forward engineering. In fact this is one of the advantages of using a formal modeling tool. Introduction to UML

Documenting The models we create are just one of the articats produced throughout the development lifecycle. Using the UML in a consistent fashion produces a set of documentation that can serve as a blueprint of our system. Introduction to UML

USAGES Define the boundaries of a system & its major functions use cases and actors Illustrate use cases interaction diagrams Define the static structure of a system class diagrams Model the behavior of objects state transition diagrams Document the physical implementation architecture component & deployment diagrams Provide for growth stereotypes Introduction to UML

FUNDAMENTAL UML Models and Views Core Diagrams Fundamental Elements Introduction to UML

Introduction to UML

Models and Views UML is more than disjointed diagrams Turn attention to an illustration of the UML from three different perspectives Further insight into these divisions enables us to realize one of the greatest benefits of modeling, which is creating different views of our software system. Introduction to UML

Core Elements Introduction to UML

Core Elements (cont’d) ¹ An extension mechanism useful for specifying structural elements. Introduction to UML

Fundamental Elements These are the elements of which diagrams are composed Understanding the intent of each element enables us to create precise diagrams, because each of them has unambiguous meaning. Introduction to UML

DIAGRAMS Individual diagrams contribute more to the specification of a software system. They are composition of many of the fundamental elements. Are mechanism that developers use to communicate and solve problems in the complex aspects of the system. The most common diagram is the Class Diagram, which describe the structural relationships that exist among the classes, can guide developers in understanding our software system’s class structure. Introduction to UML

VIEWS As we become more proficient in modeling, we begin to realize that using a combination of diagrams to communicate is most effective. We may need to combine class diagram with a diagram whose intent is to give systems dynamics. By combining these called views. View is a depiction of our system from a particular perspective. By making different views, we can represent our system from different perspectives. Introduction to UML

VIEWS (cont’d) There are five main views, Use case Design Development Process Physical They must be consistent with each other, because all of them are representing the same system. Can be used to validate each other. Introduction to UML

USE CASE VIEW This view documents the system from the customer’s perspective. Terminology used in this view should be domain specific. Depending on the technical nature of our audience, we should avoid obscure technical terms. Diagrams most common in this view are the use case diagrams and, less common, activity diagrams. Organizations transitioning to the UML may wish to work only with use case diagrams early and experiment with activity diagrams over time. Introduction to UML

Design VIEW This view documents the system from designer’s and architect’s perspective. Diagrams most common in this view are class and interaction diagrams (either sequence or collaboration), as well as package diagrams illustrating the package structure of our Java application. Introduction to UML

Development VIEW This view documents the components that the system is composed of. This view typically contains component diagrams. Except for the most complex Java applications, this view is optional. Introduction to UML

Process VIEW This view documents the processes and threads that compose our application. These processes and threads typically are captured on class diagrams using an active class. Because of the advanced nature of active classes, coupled with the volume of use, active classes are beyond the scope of this discussion. Introduction to UML

Physical VIEW This view documents the system topology. Deployment diagrams that compose this view illustrate the physical nodes and devices that make up the application, as well as the connections that exist between them. Introduction to UML

VIEWS (cont.) We are not limited with the listed views. If there is something that architecturally important, for example security, then we may create a new view (ex: security view) into the system from that perspective. Introduction to UML

Modeling Elements Structural elements Behavioral elements class, interface, collaboration, use case, active class, component, node Behavioral elements interaction, state machine Grouping elements package, subsystem Other elements note Introduction to UML

Diagrams - The foundation of UML Use Case Diagrams Requirements Activity Diagrams Generally what, not who - good to detect parallelism Interaction Diagrams Collaboration/Communication Diagrams (object centered) Sequence Diagrams (timeline) Static Structure Diagrams Objects/Classes/Packages Statechart Diagrams States of objects with interesting lifecycles Implementation Diagrams Component Diagrams Deployment Diagrams Introduction to UML

DIAGRAMS As we’ve seen, we can combine diagrams that form models and that can serve as views into our system. If an advantage in modeling is to combine diagrams to form views into our system, then it only makes sense that each diagram has a different focus on what it communicates. Each falls into one of two categories: behavioral, and structural. Most commonly used are use case, sequence, and class diagrams. Introduction to UML

Behavioral diagrams Behavioral diagrams depict the dynamic aspects of our system.They are most useful for specifying the collaborations among elements that satisfy the behavior of our system’s requirements. Five diagrams that fall into this category are; Use case Activity State Sequence Collaboration (Communication) Mostly used are use case, sequence, and collaboration. Activity and state diagrams are used on an as-needed basis. Activity diagrams visually represent behaviors captured by use cases. State diagrams, on the other hand, are used to illustrate complex transitions in behavior for a single class. Introduction to UML

Core Relationships Introduction to UML

Core Relationships (cont’d) Introduction to UML

Relationships An association is a bi-directional connection between classes An association is shown as a line connecting the related classes An aggregation is a stronger form of relationship where the relationship is between a whole and its parts An aggregation is shown as a line connecting the related classes with a diamond next to the class representing the whole A dependency relationship is a weaker form of relationship showing a relationship between a client and a supplier where the client does not have semantic knowledge of the supplier A dependency is shown as a dashed line pointing from the client to the supplier Introduction to UML 30

Relationship Notation 1 - one and only one 4 - four and only 4 0..1 - zero or 1 5..10 - five to and including 10 0..* - zero or more 4..* - four or more Introduction to UML

Finding Relationships Relationships are discovered by examining interaction diagrams If two objects must “talk” there must be a pathway for communication RegistrationManager Course Registration Manager Math 101: Course 3: add student(joe) Introduction to UML 31

Relationships ScheduleAlgorithm RegistrationForm RegistrationManager Course Student CourseOffering Professor addStudent(Course, StudentInfo) name numberCredits open() addStudent(StudentInfo) major location tenureStatus ScheduleAlgorithm Introduction to UML 32

Associations Introduction to UML

Association Ends Introduction to UML

Relationship Notation 1 - one and only one 4 - four and only 4 0..1 - zero or 1 5..10 - five to and including 10 0..* - zero or more 4..* - four or more Introduction to UML

Ternary Associations Introduction to UML

Composition Introduction to UML

Composition (cont’d) Introduction to UML

Generalization Introduction to UML

Generalization Introduction to UML

Dependencies Introduction to UML

Dependencies Introduction to UML

Derived Attributes and Associations Introduction to UML

Links Introduction to UML

Constraints and Comments Introduction to UML

Traffic Control System Actors An actor is someone or some thing that interacts with the system External Forces Human interaction Automated System Traffic Control System Driver Keyboard Operator User <<Backup System>> <<toll booth>> Introduction to UML 14

Use Cases A use case is a pattern of behavior the system exhibits Each use case is a sequence of related transactions performed by an actor and the system in a dialogue Details what the system must provide to the actor when the use cases is executed A flow of events document is created for each use case Written from an actor point of view Actors are examined to determine their how they interact with the system Break down into the most atomic actions possible Typical contents How the use case starts and ends Normal flow of events Alternate flow of events Exceptional flow of events Introduction to UML 15

Use case diagrams Use case diagrams are centered around the business processes that our application must support. Most simply, use case diagrams enable us to structure our entire application around the core processes that it must support. Doing so enables us to use these use cases to drive the remainder of the modeling and development effort. Shows a set of actors and use cases, and the relationships between them. Use case diagrams contribute to effective model organization, as well as modeling the core behaviors of a system. Introduction to UML

Use Case Diagram Captures system functionality as seen by users Built in early stages of development Purpose Specify the context of a system Capture the requirements of a system Validate a system’s architecture Drive implementation and generate test cases Developed by analysts and domain experts Introduction to UML

Customer Service Agent Use Case Diagram Use case diagrams are created to visualize the relationships between actors and use cases Pay toll Driver Passager Lost Luggage Customer Service Agent Ramp Maintenance Mechanic Introduction to UML 18

Use Case Diagram Captures system functionality as seen by users Introduction to UML

Collaboration Diagrams A type of interaction diagram that describes the organizational layout of the objects that send and receive messages. Semantically equivalent to a sequence diagram. It uses class diagrams layout, and can be used to make more cohesive and less coupled classes. Introduction to UML

Collaboration Diagram A collaboration diagram displays object interactions organized around objects and their links to one another course form : 1: set course info CourseForm 2: process 3: add course : Registrar theManager : aCourse : CurriculumManager Course Introduction to UML 4: new course 22

Sequence Diagrams Semantically equivalent to a collaboration diagram. sequence diagram is a type of interaction diagram that describes time ordering of messages sent between objects. Almost in all software development activity, this diagram is used. Introduction to UML

Sequence Diagram A sequence diagram displays object interactions arranged in a time sequence Counter Agent Ticket Passenger Gate Agent Plane 1: Give Info 2: Questions 3: Answer 4: Print 5: Safeguard 6:Present 7: Board 8: Overbook 9: Return Introduction to UML 21

The State of an Object A state transition diagram shows The life history of a given class The events that cause a transition from one state to another The actions that result from a state change State transition diagrams are created for objects with significant dynamic behavior Introduction to UML 37

State Transition Diagrams Illustrates internal state-related behavior of an object. Transitions between states help identify, and validate, complex behavior. A class can have at most a single state diagram. Introduction to UML

State Transition Diagram Add Student / Set count = 0 Add student[ count < 10 ] [ count = 10 ] Cancel Initialization Open do: Initialize course do: Finalize course do: Notify registered students entry: Register student exit: Increment count Canceled Closed Introduction to UML 38

Activity Diagrams Models the flow of activity between processes. These diagrams are most useful in detailing use case behavior. An activity diagram doesn’t show collaboration among objects. Introduction to UML

STRUCTURAL DIAGRAMS Diagrams in this category are focused on specifying the static aspects of our system. Of these four diagrams, the class diagram is most often used. when transitioning to the UML, most organizations tend to use class diagrams first because they are excellent mechanisms for communication among developers, as well as tools that can be used for problem solving. There are two forms of class diagrams. The first is the most commonly understood and consists of the classes that compose our system and of the structure among these classes. Unfortunately, the second is not often used but is of equal importance and can be most effective in helping developers understand our system from a high level. A type of class diagram, called a package diagram, often represents the Java packages and the dependencies between them that our application consists of. Introduction to UML

Class Diagrams Illustrates a set of classes, packages, and relationships detailing a particular aspect of a system. This diagram is likely the most common one used in modeling. Introduction to UML

Class Diagrams A class diagram shows the existence of classes and their relationships in the logical view of a system UML modeling elements in class diagrams Classes and their structure and behavior Association, aggregation, dependency, and inheritance relationships Multiplicity and navigation indicators Role names Attributes The structure of a class is represented by its attributes Attributes may be found by examining class definitions, the problem requirements, and by applying domain knowledge Operations The behavior of a class is represented by its operations Operations may be found by examining interaction diagrams Introduction to UML 23

Class Diagram Captures the vocabulary of a system Introduction to UML

Object Diagrams Provides a snapshot of the system illustrating the static relationships that exist between objects. Object diagrams depict the structural relationship that exists among the objects within our running application at a given point in time. When we think of the runtime version of our system, we typically think of behavior. Many people have found that object diagrams are most useful in fleshing out the instance relationships among objects, which in turn can help verify our class diagrams. Beyond this, object diagrams are not often used. Introduction to UML

Relationships Relationships provide a pathway for communication between objects Sequence and/or collaboration diagrams are examined to determine what links between objects need to exist to accomplish the behavior -- if two objects need to “talk” there must be a link between them Three types of relationships are: Association Aggregation Dependency Introduction to UML 29

Multiplicity and Navigation Multiplicity defines how many objects participate in a relationships Multiplicity is the number of instances of one class related to ONE instance of the other class For each association and aggregation, there are two multiplicity decisions to make: one for each end of the relationship Although associations and aggregations are bi- directional by default, it is often desirable to restrict navigation to one direction If navigation is restricted, an arrowhead is added to indicate the direction of the navigation Introduction to UML 33

Multiplicity and Navigation RegistrationForm RegistrationManager Course Student CourseOffering Professor addStudent(Course, StudentInfo) name numberCredits open() addStudent(StudentInfo) major location tenureStatus ScheduleAlgorithm 1 0..* 1..* 4 3..10 0..4 Introduction to UML 34

Inheritance Inheritance is a relationships between a superclass and its subclasses There are two ways to find inheritance: Generalization Specialization Common attributes, operations, and/or relationships are shown at the highest applicable level in the hierarchy Introduction to UML 35

Inheritance ScheduleAlgorithm RegistrationForm RegistrationManager Course Student CourseOffering Professor addStudent(Course, StudentInfo) name numberCredits open() addStudent(StudentInfo) major location tenureStatus ScheduleAlgorithm name RegistrationUser Introduction to UML 36

The Physical World Component diagrams illustrate the organizations and dependencies among software components A component may be A source code component A run time components or An executable component Introduction to UML 39

Component Diagrams Addresses the static relationships existing between the deployable software components. Examples of components may be .exe, .dll, .ocx, jar files, and/or Enterprise JavaBeans. Component diagrams might be used to show the software components within our application. Components aren’t equivalent to classes. Introduction to UML

Component Diagram Captures the physical structure of the implementation Introduction to UML

Deploying the System The deployment diagram shows the configuration of run-time processing elements and the software processes living on them The deployment diagram visualizes the distribution of components across the enterprise. Introduction to UML 41

Deployment Diagram Captures the topology of a system’s hardware Introduction to UML

Extensibility Mechanisms Stereotype Tagged value Constraint Introduction to UML

Extending the UML Stereotypes can be used to extend the UML notational elements Stereotypes may be used to classify and extend associations, inheritance relationships, classes, and components Examples: Class stereotypes: boundary, control, entity, utility, exception Inheritance stereotypes: uses and extends Component stereotypes: subsystem Introduction to UML 43

Deployment Diagrams Describes the physical topology of a system. Typically includes various processing nodes, realized in the form of a device (for example, a printer or modem) or a processor (for example, a server). Deployment diagrams are most useful when we have a complex configuration environment. If our application is to be deployed to multiple servers, across locations, a deployment diagram might be useful. Introduction to UML

Q & A … time to ask questions Introduction to UML

Thank you! … take a break Introduction to UML