Must choose from different UML models and different levels of abstraction, and must ensure many independent 'views' of the system for the relevant parties involved
UML diagrams can be structural (static) or behavioural (dynamic) and each describe an aspect of a model
Structural diagrams: the entities (classes) and the relationships between them
Structural diagrams
Class diagram: shows the structure with the classes, (attributes and methods) and relationships between objects
* Component diagram: shows how components are wired together to make up the system, used in complex systems
* compositestructure diagram: shows how the components of the system are made up
* deployment diagram: models the physical hardware side (the 'nodes'), (eg. web servers in web development)
Object diagram: a class diagram but with instances (instantiated - the model at a specific time)
* package diagrams: very abstract, shows how packages in the model interact
* Communication diagram: shows communication of data between objects/parts in terms of messages sent
* Interaction overview diagram: shows workflow with nodes that have interaction diagrams, similar to to sequence diagrams but containing the interactions diagrams nested inside it
sequence diagram: shows object interactions in vertical order
State machine diagram: States of the system and transitions between them (farons sequences but as a graph)
Timing diagram: shows behaviours of objects throughout a given time
Behavioural diagrams are: state machine, activity, use case, communication, interaction overview, sequence, timing (SmAU CIoST)
SysML - extension of UML, contains more diagrams such as ones with full detailed requirements as boxes and links between them