UML

Document Sample
UML Powered By Docstoc
					1
CS115 Class 8: UML

• Due today
  – Read: Practical UML
• Next Class
  – Review: Software Inspections
• One week from now
  – Deliverable: Design
  – Design presentation by Blue Team



                                       2
Modeling

• Describing a system at a high level of
  abstraction
  – A model of the system
  – Used for requirements and specification


• Many notations over time
  – State machines
  – Entity-relationship diagrams
  – Dataflow diagrams
  – ...
                                              3
Recent History: 1980’s

• 1980’s
  – The rise of object-oriented programming
  – New class of OO modeling languages
  – By early ’90’s, over 50OO modeling languages
• 1990’s
  – Three leading OO notations decide to combine
     • Grady Booch (BOOCH)
     • Jim Rumbaugh (OML: Object Modeling Technique)
     • Ivar Jacobsen (OOSE: OO Soft. Eng)
  – Why?
     • Natural evolution towards each other
     • Effort to set an industry standard

                                                       4
UML

• UML stands for
           Unified Modeling Language


• Design by committee
  – Many interest groups participating
  – Everyone wants their favorite approach to be “in”
  – Big tent


• Resulting design is huge
                                                   5
This Lecture

• We discuss
  – Class Diagrams        for structural models
  – Sequence Diagrams
  – Activity Diagrams     for dynamic models




• This is a subset of UML
  – But probably the most used subset


                                                  6
Running Example: Automatic Train

• Consider an unmanned people-mover
  – as in many airports


• Train
  – Moves on a circular track
  – Visits each of two stations (A and B) in turn
  – Each station has a “request” button
     • To stop at this station
  – Each train has two “request” buttons
     • To stop at a particular station

                                                    7
Class Diagrams

• Describe classes
                           Train
   – In the OO sense
                           lastStop

                           nextStop
• Each box is a class
                           velocity
   – List fields
                           doorsOpen?
   – List methods


• The more detail, the     addStop(stop);

  more like a (detailed)   startTrain(velocity);
  design it becomes        stopTrain();

                           openDoors();
                                                   8
Class Diagrams: Relationships

• Many different kinds of
  edges to show different
  relationships between
  classes


• Mention just a couple




                                9
Associations

• Capture n-m
  relationships             Station        Train
   – Subsumes ER diagrams     1                1
                                 1    2
• Label endpoints of edge
  with cardinalities         RequestButton
   – Use * for arbitrary

                              One request button
• Typically realized with     per station; each train
  embedded references         has two request
                              buttons
• Can be directional (use
                                                        10
  arrows in that case)
Aggregation

• Show contains a
  relationships               Station    Train
                                1            1
• Station and Train               1     2
  classes can contain their
                               RequestButton
  respective buttons


• Denoted by open
  diamond on the
  “contains” side
                                                 11
Generalization

• Inheritance between
  classes
                             Button

• Denoted by open
  triangle




                 RequestButton        EmergencyButton


                                                12
Sequence Diagrams

• A table
  – Columns are classes or actors
  – Rows are time steps
  – Entries show control/data flow
     • Method invocations
     • Important changes in state




                                     13
Example Sequence Diagram



 Passenger             Station          Train
         pushButton()                           Classes &
                            addStop()
                                                Actors


                             openDoors()
       pushButton(S)
                             closeDoors()




                                                       14
Example Sequence Diagram



 Passenger             Station          Train
         pushButton()                           Method
                            addStop()
                                                invocation

                                                Note: These
                             openDoors()        are all
       pushButton(S)                            synchronous
                             closeDoors()
                                                method calls.
                                                There are
                                                other kinds of
                                                invocations.
                                                          15
Example Sequence Diagram



 Passenger             Station          Train
         pushButton()                           Invocation
                            addStop()
                                                lifetime spans
                                                lifetimes of all
                                                nested
                             openDoors()
                                                invocations
       pushButton(S)
                             closeDoors()




                                                          16
Example Sequence Diagram



 Passenger             Station          Train
         pushButton()                           “Lifelines” fill
                            addStop()
                                                in time
                                                between
                                                invocations
                             openDoors()
       pushButton(S)
                             closeDoors()




                                                           17
Sequence Diagrams Notes

• Sequence diagrams
  – Gives view of dynamic behavior of classes
     • Class diagrams give the static class structure


• Not orthogonal to other diagrams
  – Overlapping functionality
  – True of all UML diagrams




                                                        18
Activity Diagrams

• Reincarnation of flow charts
  – Uses flowchart symbols


• Emphasis on control-flow


• Two useful flowchart extensions
  – Hierarchy
     • A node may be an activity diagram
  – Swim lanes
                                           19
  Example Activity Diagram

Activities in            Station   Train
rounded
rectangles         pushButton



May itself be a
nested activity
diagram    lightButton             addStop




                                             20
  Example Activity Diagram

Concurrency,            Station   Train
fork & join
                  pushButton




          lightButton             addStop




                                            21
  Example Activity Diagram

Swim lanes               Station   Train
show which
classes/actors     pushButton
are responsible
for which part
of the diagram

           lightButton             addStop




                                             22
Opinions about UML: What’s Good

• A common language
   – Makes it easier to share requirements, specs, designs


• Visual syntax is useful, to a point
   – A picture is worth 1000 words
   – For the non-technical, easier to grasp simple diagrams than
     simple pseudo-code


• To the extent UML is precise, forces clarity
   – Much better than natural language


• Commercial tool support
   – Something natural language could never have             23
Opinions On UML: What’s Bad

• Hodge-podge of ideas
   – Union of most popular modeling languages
   – Sublanguages remain largely unintegrated


• Visual syntax does not scale well
   – Many details are hard to depict visually
      • Ad hoc text attached to diagrams
   – No visualization advantage for large diagrams
      • 1000 pictures are very hard to understand


• Semantics is not completely clear
   – Some parts of UML underspecified, inconsistent
   – Plans to fix                                     24
UML is Happening

• UML is being widely adopted
  – By users
  – By tool vendors
  – By programmers


• A step forward
  – Seems useful
  – First standard for high-levels of software process
  – Expect further evolution, development of UML
                                                   25
University of California

• UC has
  – campuses
  – schools
  – departments
  – professors
  – classes
  – students
  – majors
• What’s a good UML class diagram?
  – be flexible (but not too flexible)   26

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:73
posted:12/2/2011
language:English
pages:26