• Logical view– show classes and objects
• Process view – models the executables
• Implementation view– Files, configuration and versions
• Deployment view– Physical and computational nodes
• Use-case view– Models the basic requirements
• 4+1 view
Architecture
• Highest level concept of the system and its environment
• Organizational structure of a system– Parts– Connectivity– Interaction– Mechanisms– Guiding principles
UML
• Program = Data + Algorithm
• Software System = Objects + Messages
• UML models the world as a system of interacting objects.
• An object is a cohesive cluster of data and function.
• UML is a visual language
Object Model
• Static Structure: Describes the important objects of the system and their relationships
• Dynamic Behavior: Describes the lifecycles of the objects and how and when they collaborate to deliver the system functionality
UML Structures
• Things – modeling elements
• Relationships – semantic relationship between the things
• Diagrams – representing the ‘what’ and ‘how’ of the system.
Things
• Structural things - class, interface, collaboration, use case, active class, component, node, etc.
• Behavioral things – interactions, sequence diagram, state machines
• Grouping things – package
• Annotations – notes, comments, etc.
Relationships
• Association
• Dependency
• Generalization
• Realization (use-case)
Diagrams
• Class diagram• Component diagram• Deployment diagram• Object diagram• Use-case diagram• Sequence diagram• Collaboration diagram• State chart diagram• Activity diagram
UML common mechanisms
• Specifications – textual descriptions of the semantics of an element – Meat of the model
• Without specs we just have blobs connected by lines
• Specs evolve over time – and hence may be incomplete and/or inconsistent
• Completeness and consistency test is applied periodically
Adornments
• Specs are hidden
• Important details are added to model
• Added only to highlight and add clarity
Classifier
• Abstract notion• Actor
– role played by outside user
• Class – description of similar objects
• Classifier role – restricted classifier
• Component – replaceable part of the system
• Datatype
• Interface– collection of operations to specify a service offered by
a class or a component
• Node– physical, run-time element
• Signal– an asynchronous message
• Subsystem– grouping of elements
• Use-case– sequence of actions performed to accomplish a task
• Instances are concrete things – taking part in the workings of the system
• Interfaces – present the contract for a functionality
• Various implementations can be made available to adhere to the interface.
• Constraints can be added to elements
• Stereotype is a tagged and/or constrained element