UML by lGV61G

VIEWS: 11 PAGES: 45

									UML


 Dr. Zhen Jiang
 West Chester University
 E-mail: zjiang@wcupa.edu
Outline
 Introduction to UML
 Objects and Classes
 Class Diagrams
    ◦ Class Icon
    ◦ Relationships
    ◦ Constraints
    UML: Unified Modeling
         Language
 The Unified Modeling Language (UML) is
  an industry-standard language for
  specifying, visualizing, constructing, and
  documenting the artifacts of software
  systems
 The UML definition was led by Grady
  Booch, Ivar Jacobson, and Jim Rumbaugh
  (all now at Rational Software)
Objects and Classes
    What’s object
     ◦ Identity
     ◦ State
     ◦ Behavior
        Sequence Diagram
        Statechart Diagram
    Messages and methods
    What’s class
     ◦   Objects and Classes
     ◦   Nature of a class
     ◦   Class Attributes
     ◦   Operation (Method)
     ◦   Interfaces
     ◦   Interfaces and Implementation
     ◦   Corresponding C++ code
                 Objects
   Conceptually, there are many ways to think
    of an object
    – something that can be seen or touched
    – a thing to which some action is directed
    – something that performs a query action
 The structure and behaviour of similar
  objects are defined in their common class
 Objects have thee properties: identity , state,
  and behaviour (query action)
Object Property 1: Identity
 Identity is that property of an object which
  distinguishes it from all other objects
 Keep in mind, however, that an object may
  not have a name; Similarly, an object might
  have multiple names (aliases)
    – For this reason, there is a subtle distinction
      made between the concepts of "name" and
      "identity"
    Object Property 2: State
   The state of an object encompasses all of the
    (usually static) properties of the object plus
    the current (usually dynamic) values of each
    of these properties
Object Property 3: Behaviour
 Behaviour is how an object acts and reacts,
  in terms of its status changes and
  message/information passing
 The state of an object represents the
  cumulative results of its behaviour
      Example Objects
   There are many physical objects we can
    examine right in this room
    – each person is an object
    – any chair is not an object
    – each light bulb is an object
    – Any book is not an object
    – this room itself is an object (full or not)
   See if the followings are objects or not:
    ◦   Desk
    ◦   Light
    ◦   Person
    ◦   Log
    ◦   The Earth
    ◦   Clock
    ◦   Machine
    ◦   Computer
    ◦   Saving account
   Answer: N,Y,Y, N,Y,Y,Y,Y,Y
    Objects versus Classes
 How would we describe the state, behaviour,
  and identity for each of these objects
 We have looked at objects and we have seen
  that objects can be "classified" into classes
 As programmers, we work with both classes
  and objects from those classes
    Classes and Objects
 An object is called an "instance" of a class
 The terms instance and object are
  interchangeable
 Creating an object from a class is often
  called instantiation
 For example, there are many person objects
  in this room -- each person is an instance of
  the person class
    The Nature of a Class
 A class describes the common structure
  (attributes/state) and behaviour of its instances
 For example,


    – 3.14, 2.71, and 5.5 can be classified as Floats


    – the following shapes can be classified as Circles
 In a 2D drawing package, circles have a
  radius, a line thickness, a line color, and a
  fill color
 Each individual circle (instance) drawn by
  the user has its own value for each attribute
 The programmer writes a Circle class and
  the program instantiates a Circle object
  every time the user draws a Circle

                   a snowman made from 9
                   Circle instances
       Class Attributes
 An attribute is a named property of a class
  that describes the range of values that
  instances of the property may
  hold.(Booch,1999)
 An attribute has a type that defines the
  type of its instances.
 Only the object itself should be able to
  change the value of its attributes.
 The values of the attributes define the
  state of the object
       Operation (Methods)
   An operation is the implementation of a
    service that can be requested from any object
    of the class to affect behavior (Booch, 1999)
   An operation can be:
     – Question (does not change the value of the
       object)
     – Command (may change the value of the object)
                                  Review
               something
Object
               action



             action
  state1                 state2
                                              operations/methods
                                           attributes: {attribute1,
                                                        attribute2}
                                             structure
         operation/method
attribute1            attribute2
                                   value
         Light




       Turn on/off
 On                  Off
                                     operations/methods:
                                      Turn_on/off ( )
                                   attributes: {True,
                                                False}
                                    structure
        Turn_on
True               False
        Turn_off           value
Class Diagram
   Introduction
   Class Icon
   Relationships
   Constraints
          Introduction
 The class diagram is fundamental to object-
  oriented programming
 UML’s class diagrams capture the attributes
  and operations of each class as well the
  relationships that exist between classes
Class Icon
   Class Icon
   Hiding Details
   Visibility Notation
   Attribute Specification
   Operation Specification
            UML Class Icon
   The UML class icon is
    a rectangle with three
    compartments:                   Circle
    – class name               radius: float
    – class attributes
                               center_x: int
    – class operations
                               center_y: int
   Attributes are specified
    in the following form:     area()
    – object:class name        display()
             Hiding Detail
     You can optionally leave out the attributes,
      operations, or both in a class icon:

   Circle             Circle             Circle
                radius: float
area()          center_x: int
display()       center_y: int
  UML Member Visibility
       Notation
UML has   three visibility prefixes for
members:
+ for public, # for protected, and – for
private
 – e.g.
                 Circle
           -radius: float
           #area()
           +display()
         Full UML Attribute
           Specification
   The full form of a UML attribute is as
    follows:
    [visibility] name [multiplicity] [: type] [= initial value]
    [{property}]
     – The property choices are changeable, addOnly, and frozen


                         Student Info
          -id: string
          -hasGraduated: bool = false
     Full UML Operation
        Specification
The  full form of a UML operation is as
 follows:
 [visibility] name [(parameter-list)] [:return-type] [{property}]
  – The property choices are sequential, concurrent, guarded, and
    isQuery


The full form of a UML parameter is:
 [direction] name : type [= default-value]
  – The direction choices are in, out, and inout
 UML Class Relationships
 A class relationship is a connection between
  two (or more) classes
 The three most important class relationships
  are generalizations, associations, and
  aggregations
 UML provides a graphical representation for
  each of the relationships using a different
  line type for each relationship
    Class Relationships
   Generalization
   Association
   Association Class
   Qualified Association
   Ternary Association
   Aggregation
             Generalization
   A generalization is a relationship between a general
    thing (superclass) and a more specific kind of that
    thing (subclass)
   In the UML, generalization requires that objects of the
    subclass may be used anywhere an object of the
    superclass appears
                     Person



                   Student
              Association
An association is a structural relationship that specifies
that objects of one thing are connected to objects of
another


 Faculty                                    Student
           Association
Associations can   be adorned with a name.


                    Teaching
Faculty                                  Student
            Association
Associations can    be adorned with the roles.




           teacher
Faculty                           learner   Student
                Association
Associations can   be adorned with the multiplicity.


 Faculty                                    Student
            1                       4..*
    Association Class (relation
            attributes)
   Each object of association class is one
    instance of relationship (link) in an
    association.

           1..*
Faculty                       4..*
                                     Student

                    Course
        Qualified Association
 Qualified association relates two classes and
  a qualifier.
 The qualifier is a special attribute that
  reduces the effective multiplicity of an
  association.
    Directory    file               File
                name
         Ternary Association
   A ternary association is a structural relationship that
    specifies that objects of one thing are connected to
    objects of other two’s.


Project                                    Language



                      Developer
           Aggregation
 An aggregation is an association that
  represents whole/part relationship
 The “whole” end of the association
  relationship is adorned with an open
  diamond shape (e.g. X is part of Y)
 e.g. door:Door is part of car:Car

              X       Y
Generalization, Aggregation, and
          Association
    See if the following pairs of classes have
     generalization, aggregation or association
      Faculty & student (as)
      Hospital & doctor (as)
      Door & Car (ag --<>)
      Member & Organization (ag --<>)
      People & student (ge <|-- )
      Circle & point (ge --|>)
      Department & Faculty (as)
      Employee & Faculty (ge <|--)
      Item & Printer (ge <|--)
      Account & Checking account (ge <|-- )
    Constraints
   Constraints on Object
   Constraints on Relations (Ordering)
   General Constraints (Dependency)
    Constraints on Object
 The  constraints restricts the values that
 objects can be.
 Example:   No employee’s salary can exceed
 the salary of the employee’s boss.


{salary <=boss.salary}
Employee                                 Employer
Salary                                  Salary
Constraints on Relations
      (Ordering)
{Order}   indicates that the elements of the
“many” end of an association have an explicit
order that must be preserved.


                       {ordered}
 Paper     1
                             1..   Author
                             *
        General Constraints
          (Dependency)

   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)
      General Constraints
        (Dependency)
   Dependencies are often used when one class uses
    another class as an argument of the operation

       Aerodrome
                                       Runway
checkRVR( r: Runway )
   Dependencies are also often used to express general
    constraints.
                   member-of
 Person            {subset}           Committee
                   chair-of
   (Class Name, attribute, method) vs (Table Name, field,
    query)
   (Class & object) vs (Table & row)
   (Table 1, table 2, … ) vs Knowledge relearning with
    OO techniques to quickly locate the information
Design
• Organize the data into “something” (i.e., object)
being queried.
• Observe the relationship between objects.
• Describe the queries into methods, changing,
updating, and even deleting the attribute information.
• If necessary, translate class, object, attribute value,
and method to table, row, field value, and query.

								
To top