UML for Software Analysis and Design
Course Description:
This course is designed for software engineers and systems architects who are new to UML. Delegates are taught how to create the most commonly used UML diagram types to analyse requirements and create static and dynamic designs. Practical exercises and workshops help to reinforce the theory.
Prerequisites:
No prior UML experience is required.
A background in software analysis and design is helpful.
Equipment:
For on-site delivery the customer should provide a suitable training room with a screen or projector to connect to our trainer’s laptop and a whiteboard or flipchart. All delegates require a PC or laptop running Enterprise Architect.
For webinar delivery delegates require a PC or laptop running Enterprise Architect with an Internet connection (a headset can be helpful). If you wish to test your environment join a test WebEx meeting: www.webex.com/test-meeting.html
Course Style:
40% theory, 60% practical.
Each module is accompanied by targeted exercises to allow delegates to apply the theory and become confident with new concepts and notation.
Delegate Handouts:
Each delegate receives a folder containing all the course slides and comprehensive theory notes which form excellent reference material. Folders also contain exercises and suggested solutions. Following successful completion of the course each delegate receives a certificate.
Course Modules:
- Delegate background and objectives
- Timetable and course outline
UML Teaching – 0.5 hour
- Advantages of graphical notations
- History of UML
- Key UML diagrams
- Business process models
- Requirements capture
- Static and dynamic models
UML/SysML Teaching – 1 hour
Paper Exercises – 1.5 hours
- Comparison with traditional requirements
- Workshops and GUI prototypes
- Model users as actors
- External systems and timers
- Actor definition and notation
- Actor generalisation
- Use case and scenario definition
- Use case notation
- Use case diagrams
UML/SysML Teaching – 1 hour
Paper Exercises – 1 hour
- Use case specification
- Use cases drive development
- Include relationship
- Extend relationship
- Use case inheritance
UML/SysML Teaching – 0.5 hour
Paper Exercises – 0.5 hour
- Document business activities and workflow
- Model Sequential activities
- Nested and structured activities
- Decision and merge (conditional logic)
- Fork and join (parallel logic)
- Object states and action pins
- Send, accept and time signals
- Swimlanes for responsibility
UML Teaching – 1 hour
Paper Exercises – 1.5 hours
- Model real world concepts
- Classes and objects
- Object identity and responsibilities
- Encapsulation of attributes
- Objects as intelligent black boxes
- What makes a good class
- How to discover classes
- Whole-part relationships (aggregation)
- Generalisation-specialisation (inheritance)
- Polymorphism
UML Teaching – 1 hour
Paper Exercises – 1 hour
- Class definition and notation
- Attributes, operations and parameters
- Visibility
- Associations, multiplicity and direction
- Whole-part relationships (aggregation)
- Generalisation-specialisation (inheritance)
UML Teaching – 1 hour
Paper Exercises – 1 hour
- Attribute scope and properties
- Class multiplicity
- Parameter direction on operations
- Roles and association qualifier
- Constraints
- Reflexive associations
- Association classes and derived information
- Stereotypes and tagged values
- Additional class compartments
- Nested classes and composition
- Abstract classes and operations
- Multiple inheritance
UML Teaching – 0.25 hour
Paper Exercises – 0.25 hour
- Design component-based systems
- Build or buy components
- Understand interfaces and services
- Logical component architecture
UML Teaching – 0.5 hour
Paper Exercises – 1 hour
- Object collaboration and messaging
- Map use cases to the class model
- Classes, responsibilities and collaborations
- Boundary, control and entity classes
UML/SysML Teaching – 1 hour
Paper Exercises – 1 hour
- Object notation and lifelines
- Message passing and sequencing
- Actors and the system boundary
- Asynchronous messages
- Create and delete objects
- Interaction frames for loops and decisions
- Centralised verses distributed control
UML Teaching – 0.5 hour
Paper Exercises – 0.5 hour
- Object notation and links
- Message passing and sequencing
- Asynchronous messages
- Alternative paths and loops
UML/SysML Teaching – 0.5 hour
Paper Exercises – 1 hour
- When to use state machines
- Object lifecycles and states
- Transitions and events
- Actions
- Entry, exit and do events
UML/SysML Teaching – 0.5 hour
Paper Exercises – 0.5 hour
- Guard conditions
- Internal events and self-transitions
- Automatic transitions
- Nested states and the history symbol
- Concurrent states
UML Teaching – 1 hour
Paper Exercises – 0.5 hour
- Advantages of design patterns
- Document design patterns
- Creational patterns (factory, singleton)
- Structural patterns (composite, adaptor, bridge)
- Behavioural patterns (state, iterator, command)
UML Teaching – 0.5 hour
- Persistence and relational databases
- Wrapper classes and factories
- Store classes and attributes
- Record associations
- Many to many relationships
- Mapping inheritance
Paper Exercises – 2.5 hours
- Quick reminder of UML notation
- Role play to identify processes and activities
- Build business process model
Paper Exercises – 1 hour
- Quick reminder of UML notation
- Create use case model
- Planning session
- Capture requirements details
- Map non-functional requirements to use cases
Paper Exercises – 1 hour
- Quick reminder of UML notation
- Model use case logic as an activity diagram
- Construct domain model
Paper Exercises – 1 hour
- Quick reminder of UML notation
- Explore object interactions
- Model complex state behaviour