350 likes | 963 Views
Unified Modeling Language (UML). CSCI 6050 Software Engineering January 19, 2005 Trentin Bishop Micah Lewis Amit Mathew Rufin Tshinanga Stephen Upchurch. Why do we need models?. To create a simplified representation of a real software system. What is UML?.
E N D
Unified Modeling Language (UML) CSCI 6050 Software Engineering January 19, 2005 Trentin Bishop Micah Lewis Amit Mathew Rufin Tshinanga Stephen Upchurch
Why do we need models? To create a simplified representation of a real software system
What is UML? • A popular, standardized modeling language for object-oriented software • The Object Management Group (OMG) is the group that dictates the UML standard • Created by Grady Booch, James Rumbaugh, and Ivar Jacobson
UML Models • Functional Models • Use case diagrams • Structural Models • Class diagrams • Dynamic/Behavioral Models • Statechart diagrams • Sequence diagrams • Activity diagrams
UML Conventions • Rectangles are classes or instances • Ovals are functions or use cases • Instances are underlined • Types are not underlined
Poseidon for UML • Available from http://www.gentleware.com/ • Get the free Community Edition • Caveat: Slow on older computers, a little sluggish on newer ones
Use case diagrams • Describes the functional behavior of the system from the user’s point of view • Used during the requirements elicitation stage to represent external behavior • Actor: User, external system, or a physical environment • Use case: a class of functionality provided by the system as an event flow • Has entry and exit conditions, flow of events, and participating actors
Use case diagram symbols Actor Relationships Use case System
Use case example Report location Find arrival times Passenger GPS System Report error
Use case example explanation • Actors don’t have to be people • Shows how actors interact with the system • Three use cases
UML Class Diagram • Depict the classes within the model • Illustrates the class attributes (member variables), operations (member functions), and relationships with other classes
Class 1 Class 2 Class 1 Class 2 Class 1 Class 2 Class 3 UML Class Diagram Symbols CLASS Class Name Number of links each class object may contain # Composition relationship Class 1 is composed of a Class 2 Aggregation A collection of other classes Inheritance relationship Class 2 and Class 3 derive from Class 1
SimpleWatch 1 1 1 1 2 1 2 1 PushButton Display Battery Time UML Class Diagram Example SimpleWatch class contains 2 PushButtons 1 Display 2 Batteries 1 Time
UML Class Diagram Example http://pigseye.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/class.htm
UML Class Diagram Example The class Order is associated with the class Customer The multiplicity denotes the number of objects For example, Order object can be associated only one customer but a customer can be associated to many orders
UML Statechart Diagram • A statechart diagram shows the behavior of classes in response to external stimuli • This diagram models the dynamic flow of control from state to state within a system.
Basic Statechart Diagram Symbols and Notations • States represent situations during the life of an object • A solid arrow represents the path between different states of an object • A filled circle followed by an arrow represents the object's initial state. • An arrow pointing to a filled circle nested inside another circle represents the object's final state.
State: Display alarm time Display clock time No sound Sound on Buzzing Playing radio Transition: On Off Hold alarm Alarm switch off Change Hrs/Min Radio Activity: Do/wait for clock time to alarm time Description of state chart diagram
Sequence Diagrams • Describe the dynamic behavior between actors and the system and between objects of the system • Used during requirements analysis • To refine use case descriptions • To find additional objects • Used during system design • To refine subsystem interfaces
Sequence diagram notation • Classes are represented by columns • Messages are represented by arrows • Activations represented by narrow rectangles • Lifelines are represented by dashed lines
Example:- sequence diagram for SimpleWatch O - | - :SimpleWatch:Display:Time / \ | | | :WatchUser | | | pressButton1() blinkHours() | ――――――― ―――――――――――― | pressButton1() | blinkMinutes() | | ――――――― ―――――――――――― | | pressButton2() | | | ――――――― | incrementMinutes() | ―――――――――――――――――――――――――――――― | | refresh() pressButton1And2() | ――――――――――――― ――――――― | | commitNewTime() | ――――――――――――――――――――――――――――――― | stopBlinking() ―――――――――――――
Example cont. -The left-most column represents the timeline of the WatchUser who initiates the use case. -The other columns represent the timeline of the objects that participate in this use case. References: Page 33 Object-Oriented Software Engineering Bernd Bruegge, Allen H. Dutoit
Activity Diagrams • Used to represent the behavior of a system in terms of activities and their precedence constraints • Compared to flowchart diagrams because … • They can be used to represent control flow (order in which operations occur) • They can be used to represent data flow (objects exchanged among operations) The completion of an activity triggers an outgoing transition which may initiate another activity
Symbols - Synchronization of the control flow - Activities in the system - Transitions between activities
Activity Diagram Example Allocate Resources Open Incident Coordinate Resources Archive Incident Document Incident
Example Explained • The 1st activity initiated is Open Activity. After all the operations in this activity have been executed, the activities Allocate Resources, Coordinate Resources & Document Incident are initiated. (Note: There is a complex transition between Open Activity and the next three activities). • These three activities may occur in sequence or concurrently. • Even if the three activities don’t occur concurrently, Archive Incident is not initiated until all three have been completed.
References • B. Bruegge, A. Dutoit. Object-Oriented Software Engineering: Using UML, Patterns and Java, Second Edition. 2003.