Model of the system: describing a system at a high level of abstraction
•
Who designed OO notations?
◦
Grady Booch (BOOCH)
◦
Jim Rumbaugh (OML: Object Modeling Language)
◦
Ivar Jacobson (OOSE: Object Oriented Software Engineering)
•
Who won Turing Award for software engineering?
◦
Fred Brooks (Mentioned, for The Mythical Man-Month / No Silver Bullet)
◦
Robert Floyd
Unified Modeling Language (UML)
•
It is the "union" of all modeling languages, many loosely related styles under one roof
•
Nearly everything in UML is optional
•
Static Modeling: Captures the fixed, code-level stuff
◦
Class Diagram
•
Behavioral Modeling: Captures the dynamic execution of a system
◦
Use-case Diagram
◦
Interaction diagrams, e.g. Sequence Diagram
◦
Statechart Diagram
◦
Activity Diagram
•
The bad things about UML:
◦
A set of many ideas; visual syntax does not scale well; semantics not completely clear
Use-case Diagram
•
Captures the requirements of a system from the user's perspective, and is at a higher level of abstraction than other UML elements
•
Use case: a particular piece of functionality that the system must provide
•
May include supplemental information: entry / exit conditions, nonfunctional requirements
•
Marks
•
Actor (stick figures): a role that a user takes when invoking a use case
◦
A single user may be represented by multiple actors
•
Use cases (ovals): edges from actor to use case showing that the actor is involved in that use case
◦
Just an "association" relationship, e.g. Normal user cannot cancel session, but refund is related to him, so we also need to link to them other than the admin
75%
25%
•
Relationships in Use-case
◦
Generalization, e.g. Push train button is a specialization of push button
◦
Extension is an exceptional variation of a use case, e.g. Derail is exceptional for riding
◦
Inclusion, e.g. Push button included in ride
◦
Note: generalization and extend point to parent (I extend my parent), while inclusion point to the children (I include my child)
70%
30%
•
An example use-case diagram
Statechart Diagram
•
Shows the various stages of an entity during its lifetime, to show the state transitions