2nd ed. — Stevenage: The Institution of Engineering and Technology, 2007. — 375 p. — (IET Professional Applications of Computing 4). — ISBN 978-0-86341-354-4.
Up until a few years ago there were over 150 different modelling languages available to software developers. This vast array of choice however, only served to severely hinder effective communication. Therefore, to combat this, every methodologist and many companies agreed to speak the same language, hence the birth of the unified modelling language (UML). The UML offers a means to communicate complex information in a simple way using visual modelling; i.e. drawing diagrams to create a model of a system. This fully revised edition, based on a training course given by the author, coincides with the release of UML version 2 by the standard body, the Object Management Group, and covers the significant changes that have occurred since its release. It also includes material on life cycle management, examining the way the UML can be used to control and manage projects and the UML systems engineering profile.
Systems engineeringProblems with systemsSystems
Defining systems engineering – first attempt
The need for systems engineering
Disasters and failures
Causes of problems
Defining a system
Defining systems engineering – second attempt
Complexity, communication and understandingComplexity
Minimising complexity
Communications
A good approach
QualityThe need for quality
Level of responsibility
Requirements for systems professionals
Processes and quality
Standards
Problems with standards
Consequences of problems with standards
Compliance with standards
Processes
Conclusions
Further discussion
ModellingIntroduction to modelling
The importance of modelling
Why projects fail
Modelling
Defining a «model»
Principles of modelling 31
The UMLAspects of the model
Views versus models
Extending the UML
Background of the UML
A nonproprietary language
Conclusions
Further discussion
Structural modellingStructural modelling using class diagrams
Modelling classes and relationships
Basic modelling
Adding more detail to classes
Adding more detail to relationships
Other structural diagrams
Further discussion
Behavioural modellingBehavioural modelling using state machine diagrams
Behavioural modelling – a simple example
Solving the inconsistency
Alternative state machine modelling
Actions and activities
Comparing the approaches
Other behavioural models
Conclusions
Further discussion
The UML diagramsOverview
Conceptual changes between UML 1.x and UML 2.0
Terminology
The structure of UML 2.0 diagrams
Comparison of the types of diagram
The UML meta-model
Class diagrams (structural)Overview
Diagram elements
Example diagrams and modelling – class diagrams
Using class diagrams
Object diagramsOverview
Diagram elements
Example diagrams and modelling – object diagrams
Using object diagrams
Composite structure diagrams (structural)Overview
Diagram elements
Examples and modelling – composite structure diagrams
Using composite structure diagrams
Package diagrams (structural)Examples of package diagrams
Using package diagrams
State machine diagrams (behavioural)Overview
Diagram elements
Examples and modelling – state machine diagrams
Using state machine diagrams
Interaction diagramsOverview – communication diagrams
Diagram elements – communication diagrams
Examples and modelling – communication diagrams
Using communication diagramsOverview – sequence diagrams
Diagram elements – sequence diagrams
Examples and modelling – sequence diagrams
Using sequence diagrams
Overview – interaction overview diagrams
Diagram elements – interaction overview diagrams
Examples and modelling – interaction overview diagrams
Using interaction overview diagramsOverview – timing diagrams
Diagram elements – timing diagrams
Examples and modelling – timing diagrams
Using timing diagrams
Activity diagramsOverview
Diagram elements
Examples and modelling
Using activity diagrams
Use case diagramsOverview
Diagram elements
Examples and modelling
Using use case diagrams
Component diagramsOverview
Diagram elements
Examples and modelling
Using component diagrams
Deployment diagramsOverview
Diagram elements
Examples and modelling
Using deployment diagrams
Conclusions
Further discussion
Modelling standards, processes and proceduresStandards
Standards, standards, standards
Requirements for using standards
Analysing standards
Aspects of modelling using the UML
Modelling example
EIA 632 Processes for engineering a system
ISO 15504 Software process improvement and capability determination (SPICE)
Comparing models
Other standards and processes
Defining new processes using the UMLA new procedure
Completing the model
Tailoring the processDefining deliverables
Deliverables by type
Deliverables by process
Deliverables by structure
Implementing the systems engineering process using a toolUses for a tool
The information model
The profile definition
The implementation model
Conclusions
Further discussion
Modelling requirementsRequirements engineering basicsThe requirements phase
Capturing requirements
Requirements
Stakeholders
Using use case diagrams (usefully)Context modelling
Types of context
Practical context modelling
Requirements modellingModelling requirements
Describing use cases
Modelling scenarios
Scenarios in the UML
Example scenarios
Communication versus sequence diagrams
Wrapping up scenarios
Documenting requirementsOverview
Populating the document
Finishing the document
Summary and conclusions
Further discussion
Life cycle managementLife cycles and life cycle modelsDifferent life cycle models
When to choose
Linear versus iterative models
The linear approach
The iterative approach
STUMPI – an example of life cycle managementThe STUMPI life cycle
The STUMPI life cycle model
The STUMPI process model
Phase iterations
Process behaviour
Project planningExercise
System architecturesIntroduction to architectures
Architecture – definitions
Not an architecture
Architecture versus model
Architectural views
Example of architecture – Department of Defense Architectural Framework (DoDAF)
Example architecture – IEEE 1471
Conceptual model of architectural description
Common themes
Validation with architecturesGenerating the architecture
Using an architecture for project validation
Applying the UMLThe requirements model architecture
The analysis model architecture
The design model architecture
Conclusions
Extending the UMLCreating a profileBackground to process modelling example
Identifying and reading stereotypes
Declaring and defining stereotypes
Adding more knowledge
Declaring a profile
Stereotyping symbols
Introduction to constraintsFormal constraints – the object constraint language (OCL)
Introduction to tagged values
Conclusions
Further discussion
ToolsCASE tools
Selecting a tool
What tools can do
What tools cannot do
A requirements model for CASE tool evaluation
Requirements model overview
Modelling capability provision
Provision of interoperability capability
Provision of other capabilities
Provision of application capability
Ensuring process compatibility
Provision of system functionality
Ensuring compatibility with the UML
Ensuring vendor’s quality of service
Conclusions
Further discussion