UML Diagrams
Use case paths
- Base path: optimistic "happy day" scenario - Alternative paths: Every other possible way the system can be (ob)used. Includes perfectly normal alternative use, but also errors and failures
Sequence Diagram
A type of diagram that shows objects participating in interactions and the messages exchanged between them.
class diagram
A visual representation of the relationships between classes.
Multiplicity
Number of links between each instance of the source class and instances of the target class
Dependency
- A directed relationship which shows that an element or a set of elements require(s) or depend(s) on other elements for implementation - A supplier-client relationship where the client depends on the supplier - Modification of the supplier may impact the client elements client (e.g. CarFactory) - - - -- - - - -- - -- > supplier (Car) CarFactory class depends on the Car class
use case diagram
- A picture showing system behavior, along with the key actors that interact with the system - Based on user stories - <<Include>> where multiple use cases share a piece of the same functionality - <<extends>> adds more capability to an activity
Aggregation
- A special type of association - It is used when one object logically or physically contains another - Empty diamond
Realisation
- A specialised abstraction relationship between two sets of model elements, one representing a specification (the supplier) and the other representing an implementation of the latter (the client) - i.e. this is just implementing an interface - dotted line with an arrow pointing towards the <<interface>>
Composition
- A strong form of aggregation - The multiplicity at the composition end is always 1 as the parts have no meaning outside the whole - If the whole is copied or deleted its parts are copied or deleted together with it; the owner is explicitly responsible for creation and deletion of the parts - Solid diamond
Class relationships
- Dependency - Association - Aggregation - Composition - Realisation - Generalisation
Activity Diagram
- Describes user (or system) activities, the person who does each activity, and the sequential flow of these activities - supports *parallel behaviour* (unlike flowcharts)
Advantages of using UML
- Enhances communication and ensures the right communication - Captures the logical software architecture independent of the implementation language - Helps to manage complexity - Enables reuse of design
Generalisation
- Inheritance - Solid line with white arrows pointing towards the superclass
Association
- Most general type of class relationship - Shows a bi-directional connection between two classes - It is a weak coupling as associated classes remain somewhat independent of each other - Shown by a solid line
State Machine Diagram: special states
- Start state: Each state diagram must have one and only one start state - Stop state: An object can have multiple stop states
A good way to identify potential classes from a requirement specification
Picking out all nouns and noun phrases
State Machine Diagram
a diagram showing the life of an object in states and transitions