UML Lecture Fall09

download UML Lecture Fall09

of 38

Transcript of UML Lecture Fall09

  • 8/8/2019 UML Lecture Fall09

    1/38

    COP4331 UML Lecture

    Presented By: Antoniya Petkova

    9/11/2009

    Originally Prepared By: Pengju Shang

    for EEL5881 Software Engineering I

  • 8/8/2019 UML Lecture Fall09

    2/38

    Slides materia

    l

    Slides material are taken from different sources

    including:

    UML resource page http://www.uml.org Google: UML Tutorial/Diagrams

    Object-Oriented ClassicalSoftware Engineering,

    seventh Edition, Stephen R. Schach

    the slides of Mr. Shiyuan Jins UML class, EEL4884, Fall 2003

    the slides of Mr. Yi Luos UML class, EEL 5881, Fall

    2007.

  • 8/8/2019 UML Lecture Fall09

    3/38

    Outline

    What is UML?

    Why Use UML?

    UML Diagrams

    Resources

  • 8/8/2019 UML Lecture Fall09

    4/38

    What is UML?

    UML Unified Modeling Language

    Unified: UML has become a world

    standard

    Modeling :Describing a software system

    at a high level of abstraction

    Language: More comprehensible, ready-to-use, expressive, and visualing.

  • 8/8/2019 UML Lecture Fall09

    5/38

    What is UML? Goals of UML:

    Provide extensibility and specialization mechanisms to

    extend the core concepts Be independent of particular programming languages and

    development processes

    Provide a formal basis for understanding the modeling

    language

    Encourage the growth of the OO tools market. Support higher-level development concepts such as

    collaborations, frameworks, patterns and components.

  • 8/8/2019 UML Lecture Fall09

    6/38

    What is UML?

    History of UML

    Object-Oriented modeling languages

    began to appear between mid-1970 and

    the late 1980s ;

    Identified modeling languages: < 10 >

    50 (1989-1994 ) Necessity and development

  • 8/8/2019 UML Lecture Fall09

    7/38

    What is UML?

    1997: UML 1.0, 1.1

    1996: UML 0.9 & 0.91

    1995: Unified Method 0.8

    Other methods

    Booch 91

    Booch 93 OMT - 2

    OMT - 1

    Year Version2003: UML 2.0

    2001: UML 1.4

    1999: UML 1.3

    began in late 1994(unifying the Booch and OMT

    (Object Modeling Technique) methods )

  • 8/8/2019 UML Lecture Fall09

    8/38

    UML Diagrams Each UML diagram is designed to let developers

    and customers view a software system from a

    different perspective and in varying degrees ofabstraction

    Use Case Diagram

    Class Diagram

    Interaction Diagrams (Sequence Diagram / Collaboration

    Diagram ) State Diagram

    Activity Diagram

  • 8/8/2019 UML Lecture Fall09

    9/38

    Source:http://en.wikipedia.org/wiki/Unified_Modeling_Language

  • 8/8/2019 UML Lecture Fall09

    10/38

    Use-Case Diagrams Relationship between actors and use cases;

    capturing user requirements.

    Actors:An actor is represents a user or anothersystem that will interact with the system you are

    modeling

    Use cases: an external view of the system that

    represents some actions the user might perform in

    order to complete a task

  • 8/8/2019 UML Lecture Fall09

    11/38

    Use-Case Diagrams When to use:

    Use cases are used in almost every project.

    How to Draw Simplest

  • 8/8/2019 UML Lecture Fall09

    12/38

    Use-Case Diagrams: Example

    A user placing an order with a sales

    company might follow these steps : Browse catalog and select items.

    Call sales representative.

    Supply shipping information.

    Supply payment information.

    Receive conformation number from salesperson.

  • 8/8/2019 UML Lecture Fall09

    13/38

    Use-Case Diagrams: Example

    The salesperson

    could also be included

    in this use casediagram because the

    salesperson is also

    interacting with the

    ordering system.

  • 8/8/2019 UML Lecture Fall09

    14/38

    Use-Case Diagrams Relationships in Use Cases

    Include: a use case includes the

    functionality described in another usecase. (directed arrow having a dotted shaft,

    labeled )

  • 8/8/2019 UML Lecture Fall09

    15/38

    Use-Case Diagrams Extend: the child use case, the parents use

    case.

    The "Perform Pathological Tests" use case

    is a specialized version of the generic

    "Perform medical tests" use case.

  • 8/8/2019 UML Lecture Fall09

    16/38

    Use-Case Diagrams Generalizations: The child use case in the

    generalization relationship has the

    underlying business process meaning, but isan enhancement of the parent use case.

    (directed arrow with a triangle arrowhead )

    you can replace any occurrence ofthe "Store patient records (paper file)"

    use case in the business flow of your

    system with the "Store patient records

    (computerized file)" use case without

    impacting any business flow.

  • 8/8/2019 UML Lecture Fall09

    17/38

    Class diagram

    Class diagrams are widely used to describe

    the types of objects in a system and their

    relationships Each class is represented by a rectangle

    subdivided into three compartments Name

    Attributes

    Operations

  • 8/8/2019 UML Lecture Fall09

    18/38

    Class diagram

    Modifiers are used to indicate visibility of attributes

    and operations. + is used to denote Publicvisibility (everyone)

    # is used to denote Protectedvisibility (friends and derived)

    - is used to denote Private visibility (no one)

    - Customer_Name

    - Balance+addFunds( )

    +withDraw( )

    +transfer( )

    Name

    Attributes

    Operations

    Account_Name

  • 8/8/2019 UML Lecture Fall09

    19/38

    Class diagram

    There are two kinds of Relationships Generalization (parent-child relationship)

    Association (student enrolls in course)

    Associations can be further classified

    as Aggregation

    Composition

  • 8/8/2019 UML Lecture Fall09

    20/38

    Generalization

    Subtype2

    Supertype

    Subtype1

    -Inheritance is a required feature of object orientation

    -Generalization expresses a parent/child relationship among related classes.

    -Used for abstracting details in severallayers

    Regular

    Customer

    Loyalty

    Customer

    CustomerExample:

  • 8/8/2019 UML Lecture Fall09

    21/38

    Association

    Associations represent static

    relationships between classes. (association names filled arrow )

    (Place roles near the end of an association)

  • 8/8/2019 UML Lecture Fall09

    22/38

    Association: Multip

    licity and Ro

    les

    University Person

    1

    0..1

    *

    *

    Multiplicity

    Symbol Meaning

    1 One and only one

    0..1 Zero or one

    M..N From M to N (naturallanguage)

    * From zero to any positive integer

    0..* From zero to any positive integer

    1..* From one to any positive integer

    teacheremployer

    Role

    Role

    A given university groups many people;

    some act asstudents, others as teachers.

    A given student belongs to a single

    university; a given teacher may or may not

    be working for the university at a particular

    time.

    student

  • 8/8/2019 UML Lecture Fall09

    23/38

    Association: Composition and Aggregation

    Association: Models the partwhole relationship

    Composition : (filled diamond)

    Every part may belong to only one whole, and If the

    whole is deleted, so are the parts

    Aggregation : (hollow diamond).

    It is a specific kind of Container-Containee

    relationship

  • 8/8/2019 UML Lecture Fall09

    24/38

    Aggregation vs. Composition

    Composition is really a strong form of association components have only one owner

    components cannot exist independent of their owner

    components live or die with their owner

    e.g. Each car has an engine that can not be shared withother cars.

    Aggregations may form "part of" the association, but may not be

    essential to it. They may also exist independent of theaggregate. e.g. Employees may exist independent of theteam.

  • 8/8/2019 UML Lecture Fall09

    25/38

    Association: Composition and Aggregation

    Composition : (filled diamond)

    Aggregation : (hollow diamond).

  • 8/8/2019 UML Lecture Fall09

    26/38

    Interaction Diagrams

    Interaction diagrams are used when you want to model the

    behavior of several objects in a use case

    UML supports two types of interaction diagrams

    Sequence diagramsSequence diagrams generally show the sequence of events that occur

    Collaboration diagrams

    Collaboration diagrams demonstrate how objects are statically connected.

  • 8/8/2019 UML Lecture Fall09

    27/38

    Sequence Diagram:Object interaction

    SelfSelf--CallCall: A message that an

    Object sends to itself.

    Condition: indicates when a

    message is sent. The message is

    sent only ifthe condition is true.

    Iteration

    Condition

    A B

    Synchronous

    Asynchronous

    Transmission

    delayed

    Self-Call

    [condition] remove()

    *[for each] remove()

  • 8/8/2019 UML Lecture Fall09

    28/38

    Sequence Diagram(make a phone call)

    Caller Phone Recipient

    Picks up

    Dial tone

    Dial

    Ring notification Ring

    Picks up

    Hello

  • 8/8/2019 UML Lecture Fall09

    29/38

    Sequence Diagrams Object Life Spans

    Creation

    Create message

    Object life starts at that point

    Activation Symbolized by rectangular

    stripes

    Place on the lifeline where object

    is activated.

    Rectangle also denotes whenobject is deactivated.

    Deletion

    Placing an X on lifeline

    Objects life ends at that point

    Activation bar

    A

    B

    Create

    X

    DeletionReturn

    Lifeline

  • 8/8/2019 UML Lecture Fall09

    30/38

    Sequence Diagrams Object Life Spans

  • 8/8/2019 UML Lecture Fall09

    31/38

    Interaction Diagrams: Collaboration diagrams

    User

    Catalog

    Reservations

    start

    1: look up2: title data

    3 : [not available] reserve title

    4 : title returned

    5 : hold title

    6 : borrow title

    6: remove reservation

    5: title available

    Collaboration diagrams are equivalent to sequence diagrams. All the features of sequencediagrams are equally applicable to collaboration diagrams

    Use a sequence diagram when the transfer of information is the focus of attention

    Use a collaboration diagram when concentrating on the classes

  • 8/8/2019 UML Lecture Fall09

    32/38

    State Diagrams (Billing Example)

    State Diagrams show the sequences ofstates an object

    goes through during its life cycle in response to

    stimulin, together with its responses and actions;

    an abstraction ofallpossiblebehaviors.

    Unpaid

    Start End

    PaidInvoice created paying Invoice destroying

  • 8/8/2019 UML Lecture Fall09

    33/38

    Yellow

    Red

    Green

    Traffic Light

    State

    Transition

    Event

    Start

    State Diagrams (Traffic light example)

  • 8/8/2019 UML Lecture Fall09

    34/38

  • 8/8/2019 UML Lecture Fall09

    35/38

  • 8/8/2019 UML Lecture Fall09

    36/38

    Conclusion

    UML is a standardized specification language for objectmodeling

    Several UML diagrams: Use-case diagram: a number of use cases (use case models the

    interaction between actors and software) Class diagram: a model of classes showing the static

    relationships among them including association andgeneralization.

    Sequence diagram: shows the way objects interact with oneanother as messages are passed between them. Dynamic model

    State diagram: shows states, events that cause transitions

    between states. Another dynamic model reflecting the behaviorof objects and how they react to specific event

    Activity diagram: describes the state of activities by showing thesequence of activities performed.

  • 8/8/2019 UML Lecture Fall09

    37/38

    UML Resources

    Books Martin Fowler, KendallScott: UML Distilled,Addison-Wesley

    2000

    Grady Booch, et al: The UnifiedModelingLanguage User

    Guide,Addison-Wesley James Rumbaugh, et al: The UnifiedModelingLanguage

    Reference Manual, Addison-Wesley Ivar Jacobson, et al:Unified Software Development Process,Addison-Wesley

    Online UML Resources Rational Software

    UML Resource Center(http://www.rational.com/uml/index.jsp),

    UML Quick Reference(http://www.rational.com/uml/resources/quick/index.jsp),UML Whitepapers(http://www.rational.com/uml/resources/whitepapers/index.jsp)Recommended Books(http://www.rational.com/uml/reading/index.jsp)UML Cafe(http://cafe.rational.com/HyperNews/get/hn/umlcafe.html)

  • 8/8/2019 UML Lecture Fall09

    38/38

    UML Resources

    The ObjectManagement Group -- UML resource Page(http://www.omg.org/technology/uml/index.htm), UML Tutorial(http://cgi.omg.org/news/pr97/umlprimer.html)

    The UML Center-- UML Information

    (http://atlas.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutoria

    l/resources.htm#1)

    UML Events(http://atlas.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/resources.htm#evnts)

    The UML Zone -- UML FAQ(http://www.uml-zone.com/umlfaq.asp)UML Q&A

    (http://news.devx.com/cgi-bin/dnewsweb.exe?utag=&group=vb.oop&xrelated=8577&cmd_related.x=69&cmd_related.y=6)

    GDpro -- UML Center(http://www.gdpro.com/uml_central.html)UML Dictionary(http://softdocwiz.com/UML.htm)