The Unified Modeling Language

  The Unified Modeling Language The Unified Modeling Language (UML) is a standard language for writing software

  The Unified Modeling Language blueprints. The UML may be used to visualize, specify, construct, and document the artifacts of a software-intensive system.

  „ Grady Booch

  „ James Rumbaugh (OMT) „ Ivar Jacobson (OOSE)

  1

  2 Building Blocks of UML Things

  „ „ Structural things Things

  9 classes, interfaces, collaborations, use cases, active classes, components, nodes.

  „ Relationships

  „ Behavioral things

  9 interactions, state machines.

  „ Diagrams „ Grouping things

  9 packages.

  „ Annotational things

  9 notes.

  3

  4

  5 Relationships

  8. Component diagram „

  9 Operation ¾

  An attribute is a named property of a class that describes a range of values that instances of the property may hold.

  9 Attribute ¾

  ¾ A class is a description of a set of objects that share the same attributes, operations, relationships, and semantics.

  

„

Class

  8 Class

  Structural things are the nouns of UML models. These are the mostly static parts of a model, representing elements that are either conceptual or physical.

  7 Structural Things

  9. Deployment diagram

  7. Activity diagram „

  „ Dependency

  6. Statechart diagram „

  5. Collaboration diagram „

  4. Sequence diagram „

  3. Use case diagram „

  2. Object diagram „

  1. Class diagram „

  „

  6 Diagrams

  „ Generalization „ Realization

  „ Association

  An operation is the implementation of a service that can be requested from any object of the class to affect behavior.

  9 Use Case

  Register.exe Billing.exe Billing System

  9 When you prefer to show a spatial organization of symbols and interaction rather than concentrating on the sequence of the interaction

  

„

  9 Numbered arrows show the movement of messages during the course of a scenario

  9 Describes a specific scenario

  9 Cross between an symbol diagram and a sequence diagram (interaction).

  

„

Collaboration

  12 Collaboration

  ¾ An interface is a collection of operations that specify a service of a class or component.

  „ Use case

  „ Interface

  ¾ A use case diagram shows a set of use cases and actors and their relationships.

  „ Use case diagram

  10 Use Case Diagram

  An actor represents a coherent set of roles that users of use cases play when interacting with these use cases.

  9 Actor ¾

  ¾ A use case specifies the behavior of a system or a part of a system and is a description of a set of sequences of actions, including variants, that a system performs to yield an observable result of value to an actor.

When to use a Collaboration Diagram

  Collaboration Diagram

„

  Node ¾

  A node is a physical element that exists at run time and represents a computational resource. em City Student DB tornado Course S cheduling Enrollm ent

  13

  14 Behavioral Things Behavioral Things (cont’d)

  

„

Behavioral things are the dynamic parts of Interaction

  ¾ UML models. These are the verbs of a An interaction is a behavior that comprises a set of messages exchanged among a set of objects within a model, representing behavior over time and particular context to accomplish a specific purpose. space.

  

„

State machine

  ¾ A state machine is a behavior that specifies the sequences of states an object or an interaction goes through during its lifetime in response to events, together with its response to those events.

  15

  16

  17 Grouping and Annotational Things

  19 Association

  ¾ An aggregation is a special form of association that specifies a whole-part relationship between the aggregate (the whole) and a component (the part).

  

„

Aggregation

  20 Aggregation

  serves

  Bank Teller Customer

  ¾ An association is a structural relationship that specifies that objects of one thing are connected to objects of another.

  „ Association

  RegistrationManager ScheduleAlgorithm

  Grouping things are the organizational parts of UML models.

  ¾ A dependency is a using relationship that states that a change in specification of one thing may affect another thing that uses it, but not necessarily the reverse.

  

„

Dependency

  18 Dependency

  ¾ A note is simply a symbol for rendering constraints and comments attached to an element or a collection of elements.

  „ Note

  Annotational things are the explanatory parts of UML models.

  ¾ A package is a general purpose mechanism for organizing elements into groups.

  „ Package

  Course CourseOffering Generalization Realization „

  

„

Generalization Realization

  ¾ ¾

  A generalization is a relationship between a general A realization is a semantic relationship between thing and a more specific kind of that thing. classifiers, wherein, one classifier specifies a contract Sometimes it is called an ''is-a-kind-of'' relationship. that another classifier guarantees to carry out.

  Employment Billing.exe

  Billing System Register.exe <<interface>> Teller Manager

  21

  22 Class and Object Diagram Sequence Diagram

  

„

Sequence diagram

  „ Class diagram

  9 A sequence diagram is an interaction diagram that emphasizes the ¾ time-ordering of messages.

  A class diagram shows a set of classes, interfaces,

  9 This diagram is a model describing how groups of objects collaborate in and collaborations and their relationships. some behavior over time.

  9 The diagram captures the behavior of a single use case.

  „ Object diagram

  9 It shows objects and the messages that are passed between these objects ¾

  An object diagram shows a set of objects and their in the use case. relationships.

  

„

When to use a sequence diagram

  9 A good design can have lots of small methods in different classes. Because of this it can be difficult to figure out the overall sequence of behavior. This diagram is simple and visually logical, so it is easy to see the sequence of the flow of control.

  9 A sequence diagram also clearly shows concurrent processes and activations.

  23

  24 Sequence Diagram State Chart Diagram „

  Statechart diagram ¾ A statechart diagram shows a state machine, consisting of states, transitions, events, and activities. ¾ Provides a very detailed picture of how a specific symbols changes states.

  ¾ A state refers to the value associated with a specific attribute of an object and to any actions or side

  ¾ effects that occur when the attribute’s value changes „

When to use a State Diagram

  ¾ Used when you are working on real-time process control applications or systems that involve concurrent processing

  ¾ When you want to show the behavior of a class over several use cases

  25

  26 State Chart Diagram Activity Diagram

  „ Activity diagram

  

9

An activity diagram is a special kind of a statechart diagram that shows the flow from activity to activity within a system.

  27

  28 Deployment Diagram Component Diagram „

  

„

A Deployment diagram shows the configuration of run-time processing elements A component diagram shows the dependencies among software components, and the software components, processes, and objects. Software component including source code, binary code and executable components. Some instances represent run-time manifestations of code units. Components that do components exist at compile time, some exist at link time, and some exist at run not exist as run-time entities do not appear on these diagrams. These time; some exist at more than one time. components should be shown on component diagrams.

  29

  30 Example

  Actors „

  An University wants to computerize their registration

„

  An actor is someone or some thing that must system interact with the system under development

  9 The Registrar sets up the curriculum for a semester ¾

  One course may have multiple course offerings

  9 Students select 4 primary courses and 2 alternate courses

  9 Once a student registers for a semester, the billing system Registrar is notified so the student may be billed for the semester

  Professor

  9 Students may use the system to add/drop courses for a period of time after registration

  Student

  9 Professors use the system to receive their course offering

  Billing System

  rosters

  9 Users of the registration system are assigned passwords which are used at logon validation

  31

  32 Use Cases Use Case Diagram „ use case is a pattern of behavior the system exhibits

  9 Each use case is a sequence of related transactions performed by an actor and the system in a dialogue

  Request Course Roster

  „ Actors are examined to determine their needs

  Professor Student

  9 Registrar -- maintain the curriculum

  Maintain Schedule

  9 Professor -- request roster

  9 Student -- maintain schedule

  9 Billing System Maintain Curriculum Billing System -- receive billing information from registration

  Registrar Maintain Curriculum Request Course Roster Maintain Schedule

  33

  34 Sequence Diagram Collaboration Diagram

  StudentR ecord E nrollm ent StudentSchedule courseO ffering

  course form :

  Student

  1: set course info CourseForm

  2: process

  StudentId prompt for password password password verified create studentSchedule display studentSchedule selectCourse

  3: add course : Registrar

  getPrerequisites verifyPrerequisites prerequisites prereqs not met deny enrollment prereqs met checkEnrollm ent space available

  theManager : aCourse :

  addCourse

  CurriculumManager Course

  display studentSchedule

  4: new course

  select another course?

C ourse Enrollm ent

  35

  36

  37 Classes RegistrationForm

  addStudent(Course, StudentInfo) name numberCredits open() addStudent(StudentInfo) major location open() addStudent(StudentInfo) tenureStatus

  addStudent(Course, StudentInfo) name numberCredits open() addStudent(StudentInfo) name major location open() addStudent(StudentInfo) name tenureStatus

  ScheduleAlgorithm

  40 Multiplicity and Navigation RegistrationForm

  RegistrationManager Course

  Student CourseOffering

  Professor

  ScheduleAlgorithm

  Student CourseOffering

  1 0..*

  0..*

  1

  1 1..*

  4 3..10

  0..4

  Professor

  RegistrationManager Course

  RegistrationManager Course

  name numberCredits open() addStudent(StudentInfo)

  Student CourseOffering

  Professor ScheduleAlgorithm

  38 Classes RegistrationForm

  RegistrationManager

  addStudent(Course, StudentInfo)

  Course

  Student

  39 Relationships RegistrationForm

  name major

  CourseOffering

  location open() addStudent(StudentInfo)

  Professor

  name tenureStatus

  ScheduleAlgorithm

  1

Inheritance State Transition Diagram

  ScheduleAlgorithm RegistrationForm

  Add student[ count < 10 ] Add Student /

  RegistrationManager Set count = 0

  Initialization Open

  do: Initialize course addStudent(Course, StudentInfo) entry: Register student

  Course

  exit: Increment count name

  RegistrationUser numberCredits Cancel

  name

  Student

  open()

  Cancel

  addStudent(StudentInfo)

  [ count = 10 ]

  major

  Canceled

  do: Notify registered students

  Closed Cancel

  do: Finalize course

  Professor CourseOffering

  tenureStatus location open() addStudent(StudentInfo)

  41

  42 Component Diagram Deployment Diagram

  Register.exe Billing.exe

  Registration Database

  Billing System People.dll

  User Course.dll

  Course

  Main Library Building

  Professor Student

  Dorm

  Course Course Offering

  43

  44