UML: Unified Modeling Language Story: What UML is for Some of the main diagrams are and what you use them for Class diagrams and class forms Use Case Diagrams Sequence (Event) Diagram State Diagrams An example UML: Unified Modeling Language Developed by the “Three Amigos”: Grady Booch, Jim Rumbaugh, Ivar Jacobson Each had their own development methodology More or less emphasis on notation and process UML is a notation and a process Diagrams and notation from UML 1.3 Definition (http://www.rational.com) Diagrams Class diagrams: Represents static structure Use case diagrams: Sequence of actions a system performs to yield an observable result to an actor Sequence diagrams:Shows how groups of objects interact in some behavior State diagrams: Describes behavior of system by describing states of an object Class Diagrams Better name: “Static structure diagram” Doesn’t describe temporal aspects Doesn’t describe individual objects: Only the overall structure of the system There are “object diagrams” where the boxes represent instances But rarely used—other diagrams serve the role of describing object interaction better When used, object diagrams describe static structure, like a data structure Different Levels of Specifying Classes Notation in Class Boxes Abstract classes (and operations) in italics + is public, - is private, # is protected Can also specify stereotypes or compartments “constructors” or “query” “controller” Other variations in Class specifications Use of templates, interfaces, and types Can even specify body of methods Components of Class Diagrams Multiplicities How many of each? Labels to indicate how reference is viewed Role and Association classes Navigability and Aggregations Navigability Who owns/contains/has who? Arrows not strictly required Aggregation: Open diamond “Part-of” relationship, but disagreement Composition: closed diamond Part can only belong to whole Qualifiers Serves to describe an instance variable that partitions the relationship. Use Case Diagrams Means of capturing requirements Document interactions between user(s) and the system User (actor) is not part of the system itself But an actor can be another system An individual use case represents a task to be done with support from the system (thus it is a ‘coherent unit of functionality’) Simple Use Case Diagram Reserve book Borrow book Return book Use Case Diagram with Multiple Actors Use Cases Are actually defined as text, including descriptions of all of the normal and exception behavior expected Do not reveal the structure of the system Collectively define the boundaries of the system to be implemented Provide the basis for defining development iterations Example Use Case Diagram (Advanced Features) Sequence (Event) Diagrams Shows individual objects and how they interact Describes Lifelines of objects Who sends what messages when Can also describe sending messages to self ("self-delegation") Can describe guards, notes, etc. Example Sequence Diagram State Diagrams Describe all the possible states a particular object can get into, and the events that lead to those changes Also called a "statechart" Example State Diagram Other Kinds of UML Diagrams Collaboration Diagrams An alternative to sequence diagrams for describing the flow of messages between objects Other kinds of UML Diagrams Activity Diagrams Alternative to statecharts Other kinds of UML Diagrams Implementation Diagrams Down at the detail level What piece of code goes where? How are they connected? UML in Real Practice You don't typically use all the diagrams You'll choose between them based on preference and particular situation You typically use many diagrams A single use case may not capture all scenarios If you are going to use statecharts, there are probably lots of objects with states Each sequence/collaboration diagram only shows one interaction Example: Student Registration System Not going to do all the diagrams Not all types, not even all that completely specify the system But this is an application you know, so the examples may help make sense Student Registration Class Diagram Student 1 transcript major schedule registrar * Registrar Section course daysAndTime roster addStudent removeStudent 1 1 Department courses requiredCourses courseGrades 1 * enrollInClass: gradeInCourse: takenCourse: Transcript 1 * * 1 getSectionsFor: enrollInSection: dropFromSection: * 1* 1..3 1 courses sections gradeForCourse: takenCourse: 1 * CourseGrade * course grade termEnrolled * 1 Course * name number 0..3 department creditHours prereqs prerequisites Partial Use Case Diagram Apply for Admission Enroll in the University Student Enroll in a Course Withdraw from a Course Admissions States of a Student Apply [ Must be accepted first ] Enrolled EnrollInClass ( Add a Transcript ) Withdraw Registered AddCourse Graduate [ All courses must be completed ] Sequence Diagram: Registering for Course aStudent theRegistrar aSection theTranscript getSectionsFor: return sections enrollInSection: takenCourse: prerequisite takenCourse: prerequisite state of prereq have prereq addStudent: enrolled enrolled Process to Representations OOA CRC Cards (but they’re not officially UML) Use Cases OOD Just about all of the rest But variations—some detail is later OOP Can actually go UML->code with some tools! UML v1.3 Copyright Notice Copyright © 1997, 1998, 1999 Object Management Group, Inc. Copyright © 1997, 1998, 1999 Hewlett-Packard Company Copyright © 1997, 1998, 1999 IBM Corporation Copyright © 1997, 1998, 1999 ICON Computing Copyright © 1997, 1998, 1999 i-Logix Copyright © 1997, 1998, 1999 IntelliCorp Copyright © 1997, 1998, 1999 Electronic Data Services Corporation Copyright © 1997, 1998, 1999 Microsoft Corporation Copyright © 1997, 1998, 1999 ObjecTime Limited Copyright © 1997, 1998, 1999 Oracle Corporation Copyright © 1997, 1998, 1999 Platinum Technology, Inc. Copyright © 1997, 1998, 1999 Ptech Inc. Copyright © 1997, 1998, 1999 Rational Software Corporation Copyright © 1997, 1998, 1999 Reich Technologies Copyright © 1997, 1998, 1999 Softeam Copyright © 1997, 1998, 1999 Sterling Software Copyright © 1997, 1998, 1999 Taskon A/S Copyright © 1997, 1998, 1999 Unisys Corporation