Package Diagrams
Relevant for medium to large size systems
Shows how classes are grouped into packages
Shows relationsships between packages (eg. one package imports another)
If one package depends on another, if the parent is changed, the child also needs to be re-compiled
Sequence Diagrams
Created for use case
- Multiple sequence diagrams for one use case show steps of different paths through the use case
Shows objects involved in the behaviour
Models sequence of events (interaction between objects)
- wWhich methods are called, arguments that are passed
Organized along time flow - from top to bottom
Flow must be from one object to another - actions are caused by some other action
Besauce there are so many use cases, sequence diagrams should only be modeled when there is confusion in how the system needs to be constructed
AgileModeling.comSteps to Build a Sequence Diagram
- Set the context
- Identify which objects will participate
- Set the lifeline for each object
- Lay out the messages from top to bottom of the diagram based on the order in which they are sent
- Add execution occurance to each object's lifeline
- Validate teh sequence diagram
Collaboration Diagram
Same information as sequence diagrams, but focused on objects' interaction rather than time sequencing
Time flow represented by numbering of messages
Collaboration diagram can usually be automatically generated from sequence diagram and vice-versa
For example: stackoverflow.com
State Transition Diagram
Is modeled after one object
Created for objects that exhibit non-trivial behaviour
Shows changes of object's states over time
State changes are triggered by events
May also show action that accompany state change
For example: agilemodeling.com
The State Transition Diagram applies to only one object
Only events that significantly change object state are included
Only classes with significant behaviour have states
State is a time-span between 2 events
State variables = properties of the object
Events trigger state transitions
Actions = object's response to transitions
Component Diagram
Component Diagrams show the physical design of software components, interfaces and ports
An example: uml-diagrams.org
Deployment DIagram
Deployment Diagram shows physical nodes and components that run these nodes
For example: agilemodeling.com
Information System Architecture
Client / Server Architecture
Client functions:
- Formatting and display
- Data entry and transmission to server
- Query building
Server functions:
- Processing requests from many clients
- Locking, sharing
- Load balancing (distribute the work - don't overload the server)
- Transaction processing
Both the client and server will validate the users data.
Multi-Tiered Architecture
Model-View-Controller - MVC
Presentation Layer
- Thin client
- Validation
Business Layer
- Processing logic
- Validation
Data Layer
- Data Processing
- Validation
Additional layers, eg. middleware