07 Class Diagrams

download 07 Class Diagrams

of 30

Transcript of 07 Class Diagrams

  • 8/6/2019 07 Class Diagrams

    1/30

    UML Class Diagram

    and PackagesWritten by

    Zvika GuttermanAdam Carmi

  • 8/6/2019 07 Class Diagrams

    2/30

    UMLClass Diagrams 2

    Agenda What is a Class Diagram?

    Essential Elements of a UML Class

    Diagram

    Packages and Class Diagrams

    Analysis Classes Approach

    Tips

  • 8/6/2019 07 Class Diagrams

    3/30

    UMLClass Diagrams 3

    What is a Class Diagram?

    A class diagram describes the types ofobjects in the system and the various kinds

    of static relationships that exist amongthem.

    A graphical representation of a static view ondeclarative static elements.

    A central modeling technique that runsthrough nearly all object-oriented methods.

    The richest notation in UML.

  • 8/6/2019 07 Class Diagrams

    4/30

    UMLClass Diagrams 4

    Essential Elements of a

    UML Class Diagram Class

    Attributes

    Operations Relationships

    Associations

    Generalization

    Dependency

    Realization

    Constraint Rules and Notes

  • 8/6/2019 07 Class Diagrams

    5/30

    UMLClass Diagrams 5

    Classes A class is the description of a set of objects

    having similar attributes, operations,

    relationships and behavior.

    Window

    size: Size

    visibility: boolean

    display()

    hide()

    Class

    Name

    Attributes

    Operations

  • 8/6/2019 07 Class Diagrams

    6/30

    UMLClass Diagrams 6

    Associations A semantic relationship between two or moreclasses that specifies connections among theirinstances.

    A structural relationship, specifying that objects ofone class are connected to objects of a second(possibly the same) class.

    Example: An Employee works for a Company

    CompanyDepartmentEmployee

  • 8/6/2019 07 Class Diagrams

    7/30

    UMLClass Diagrams 7

    Associations (cont.) An association between two classes

    indicates that objects at one end of an

    association recognize objects at the other

    end and may send messages to them.

    This property will help us discover less trivial

    associations using interaction diagrams.

  • 8/6/2019 07 Class Diagrams

    8/30

    UMLClass Diagrams 8

    Associations (cont.)

    StaffMember Student1..* *instructs

    instructor

    Association

    name

    Role

    name

    MultiplicityNavigable

    (uni-directional)

    associationCourses

    pre -requisites

    0..3Reflexive

    association

    Role

    *

  • 8/6/2019 07 Class Diagrams

    9/30

    UMLClass Diagrams 9

    Associations (cont.) To clarify its meaning, an association may be

    named.

    The name is represented as a label placed midwayalong the association line.

    Usually a verb or a verb phrase.

    A role is an end of an association where itconnects to a class.May be named to indicate the role played by the class

    attached to the end of the association path. Usually a noun or noun phrase

    Mandatory for reflexive associations

  • 8/6/2019 07 Class Diagrams

    10/30

    UMLClass Diagrams 10

    Associations (cont.) Multiplicity

    The number of instances of the class, next to

    which the multiplicity expression appears, thatare referenced by a single instance of the classthat is at the other end of the association path.

    Indicates whether or not an association is

    mandatory. Provides a lower and upper bound on the

    number of instances.

  • 8/6/2019 07 Class Diagrams

    11/30

    UMLClass Diagrams 11

    Associations (cont.)Multiplicity Indicators

    Exactly one 1

    Zero or more (unlimited) * (0..*)

    One or more 1..*

    Zero or one (optional association) 0..1

    Specified range 2..4

    Multiple, disjoint ranges 2, 4..6, 8

  • 8/6/2019 07 Class Diagrams

    12/30

    UMLClass Diagrams 12

    Aggregation A special form of association that models a

    whole-part relationship between an

    aggregate (the whole) and its parts.

    Models a is a part-part of relationship.

    Whole Part

    Car Door House1..*2..*

  • 8/6/2019 07 Class Diagrams

    13/30

    UMLClass Diagrams 13

    Aggregation (cont.) Aggregation tests:

    Is the phrase part of used to describe the relationship? A door is part of a car

    Are some operations on the whole automaticallyapplied to its parts?

    Move the car, move the door.

    Are some attribute values propagated from the whole toall or some of its parts?

    The car is blue, therefore the door is blue.

    Is there an intrinsic asymmetry to the relationshipwhere one class is subordinate to the other?

    A door ispart of a car. A caris notpart of a door.

  • 8/6/2019 07 Class Diagrams

    14/30

  • 8/6/2019 07 Class Diagrams

    15/30

    UMLClass Diagrams 15

    Generalization Indicates that objects of the specialized

    class (subclass) are substitutable for objects

    of the generalized class (super-class).

    is kind of relationship.

    Shape{abstract}

    Circle

    Super

    Class

    Sub

    Class

    An abstract

    class

    Generalizationrelationship

    {abstract} is a

    tagged value that

    indicates that the

    class is abstract.The name of an

    abstract class should

    be italicized

  • 8/6/2019 07 Class Diagrams

    16/30

    UMLClass Diagrams 16

    Generalization A sub-class inherits from its super-class

    Attributes

    Operations

    Relationships A sub-class may

    Add attributes and operations

    Add relationships

    Refine (override) inherited operations A generalization relationship may notbe used to

    model interface implementation.

  • 8/6/2019 07 Class Diagrams

    17/30

    UMLClass Diagrams 17

    Dependency A dependency indicates a semantic relation

    between two or more classes in which a change in

    one may force changes in the other although thereis no explicit association between them.

    A stereotype may be used to denote the type of the

    dependency.

    Iterator Vector

  • 8/6/2019 07 Class Diagrams

    18/30

    UMLClass Diagrams 18

    Realization

    A realization relationship indicates that one

    class implements a behavior specified by

    another class (an interface or protocol).

    An interface can be realized by many

    classes.

    A class may realize many interfaces.

    LinkedList

    ListLinkedList List

  • 8/6/2019 07 Class Diagrams

    19/30

    UML

    Class Diagrams 19

    ConstraintRu

    les and Notes Constraints and notes annotate among otherthings associations, attributes, operations and

    classes.

    Constraints are semantic restrictions noted asBoolean expressions.

    UML offers many pre-defined constraints.

    id: long { value > 0 }

    Customer

    Order*1 { total < $50 } may becanceled

    Constraint Note

  • 8/6/2019 07 Class Diagrams

    20/30

    UML

    Class Diagrams 20

    TVRSEx

    ample

    id : longname : Stringrank : int

    Policeman

    TrafficPoliceman id : long

    description : String

    TrafficReport

    id : longdescription : String

    Violation

    name : String

    id : long

    Offender

    1..* 1

    reports of

    1..*

    issues1 *

    occuredAt : Date

  • 8/6/2019 07 Class Diagrams

    21/30

    UML

    Class Diagrams 21

    UML Packages A package is a general purpose groupingmechanism.

    Can be used to group any UML element (e.g. use case,

    actors, classes, components and other packages. Commonly used for specifying the logical

    distribution of classes.

    A package does not necessarily translate into a

    physical sub-system. Name

  • 8/6/2019 07 Class Diagrams

    22/30

    UML

    Class Diagrams 22

    Logical Distribution of

    Classes Emphasize the logical structure of the

    system (High level view)

    Higher level of abstraction over classes.

    Aids in administration and coordination of the

    development process.

    Contributes to the scalability of the system. Logical distribution of classes is inferred

    from the logical architecture of the system.

  • 8/6/2019 07 Class Diagrams

    23/30

    UML

    Class Diagrams 23

    Packages and Class

    Diagrams (cont.) Add package information to class diagrams

    A

    DE

    F

    G

    C

    B

  • 8/6/2019 07 Class Diagrams

    24/30

    UML

    Class Diagrams 24

    Packages and Class

    Diagrams (cont.) Add package information to class diagrams

    a.A

    b.b.Db.b.E

    b.a.F

    b.a.G

    a.C

    a.B

    b.a

    b.b

    ab

  • 8/6/2019 07 Class Diagrams

    25/30

    UMLClass Diagrams 25

    Analysis Classes A technique for finding analysis classes

    which uses three different perspectives of

    the system: The boundary between the system and its actors

    The information the system uses

    The control logic of the system

  • 8/6/2019 07 Class Diagrams

    26/30

    UMLClass Diagrams 26

    Boundary Classes Models the interaction between the systems

    surroundings and its inner workings

    User interface classes

    Concentrate on what information is presented to the

    user Dont concentrate on user interface details

    Example:

    ReportDetailsForm

    ConfirmationDialog System / Device interface classes

    Concentrate on what protocols must be defined.

    Dont concentrate on how the protocols are

    implemented

  • 8/6/2019 07 Class Diagrams

    27/30

    UMLClass Diagrams 27

    Entity Classes

    Models the key concepts of the system

    Usually models information that is

    persistent

    Contains the logic that solves the system

    problem

    Can be used in multiple behaviors

    Example: Violation, Report, Offender.

  • 8/6/2019 07 Class Diagrams

    28/30

    UMLClass Diagrams 28

    Control Classes Controls and coordinates the behavior of the

    system

    Delegates the work to other classes

    A control class should tell other classes to do

    something and should never do anything exceptfor directing

    Control classes decouple boundary andentity classes

    Example: EditReportController

    AddViolationController

  • 8/6/2019 07 Class Diagrams

    29/30

    UMLClass Diagrams 29

    TVRSEx

    ample

    Vi l ti

    E it rt tr ll r tr l

    r f f i rt

    f f r r f f i li

    l r

    rt t il F r

    ry

    f ir ti i l

    ry

    li B r xy

    ry

    f f r B r xy

    ry

    f f r B

    li B

  • 8/6/2019 07 Class Diagrams

    30/30

    UMLClass Diagrams 30

    Tips

    Dont try to use all the various notations.

    Dont draw models for everything,

    concentrate on the key areas.

    Draw implementation models only when

    illustrating a particular implementation

    technique.