EIEIOTECHNOVATION
← Training programmes

EIEIO / AUTOMATION & EMERGING TECHNOLOGY

Analysis and Design with UML

Course outline

5 days

Duration

5 days

Overview

Analysis and Design with UML training course is a comprehensive and in-depth induction into contemporary software development theory and practice using UML. With a fundamental emphasis on foundational principles, delegates move from basic concepts and paradigms through to the most powerful analysis and design techniques.

This Analysis and Design with UML course is exercise-rich and starts with simple problems before progressing to more complex challenges, and delegates finish the course with a comprehensive, powerful and immediately-applicable understanding of System Modelling and Notation.

By the end of this course, you will learn:

  • A deep understanding of system design
  • Understanding and knowledge of UML notation
  • How to avoid common pitfalls and traps
  • Development-process management

Who should attend

This course is appropriate to system architects, designers, project managers and programmers who wish to develop their knowledge and understanding of analysis and design.

Prerequisites

Some experience of systems and software development is assumed, but previous exposure to UML and the design techniques and concepts covered in this course is in no way essential.

Course Outline

Analysis and Design - Core Concepts

  • Modelling basics: state, change and reification.
  • The nature of software objects.
  • Abstraction, rights and responsibilities: design by contract.
  • Determining appropriate scope: encapsulation.
  • Intertype relationships. polymorphism.
  • Design Patterns: exploiting system symmetries and invariances.
  • The role of psychology: modelling the modeler.

Introduction to Modelling Notation and the UML

  • Object and class diagrams.
  • Sequence and collaboration diagrams.
  • State charts and activity diagrams.
  • Use Case diagrams.
  • Component and deployment diagrams.
  • Diagram interrelationships.

UML Notation Basics

  • UML document structure.
  • Packages: Composite packages, package dependencies, package generalization.
  • Dependencies, constraints and guard conditions.
  • Stereotypes and tag values.
  • Layout and ascetics.

Object and Class Diagrams

  • Object notation: Object states, active objects.
  • Class notation.
  • Classes, attributes and associations, qualified and N-ary associations.
  • Attribute visibility: Private, public, protected and friend.
  • Association classes, aggregation and composition.
  • Resolving circular associations.
  • Inheritance, multiple inheritance, multiple virtual inheritance.
  • Private, public and protected inheritance.
  • Polymorphism, abstract classes and templates.
  • Inheritance misuse:
  • The Circle-Ellipse problem.
  • Inheritance abuse: avoiding cosmic class-hierarchies.

Architecture and Design Patterns

  • The classification of archetypal form.
  • Observer.
  • Model-View-Controller.
  • Singleton.
  • Chain of Responsibility.
  • Visitor.
  • State and Strategy.
  • Memento.
  • Bridge.
  • Factory.
  • Façade.
  • Composite.
  • Decorator.
  • Flyweight.

Sequence and Collaboration Diagrams

  • Objects, lifelines and activations.
  • Object creation and destruction.
  • Message passing, control branching and joining.
  • Synchronous and asynchronous calls.
  • Recursive, reflexive and iterative calls.
  • Message sequencing.

State Charts and Activity Diagrams

  • States, events and transitions.
  • Implementation and protocol state charts.
  • Entry and exit actions.
  • Signaling, complex, explicit and self-transitions.
  • History, pseudo and composite states.
  • Junction, concurrent and disjoint sub-states.
  • Forks, joins and branches.
  • Stub states and transitions.

Use Case Diagrams

  • Requirements capture.
  • Actors, messages and Use Cases.
  • ‘Uses’, ‘includes’, and ‘extends’ relationships.
  • Actor generalization.
  • Developing a Use Case diagram.
  • Relating Use Case diagrams to other UML models.

Development Processes

  • Large projects and process overhead.
  • The Waterfall model.
  • Iterative and incremental development.
  • Design refactoring.
  • Agile Development.
  • Designing for change.

Programme scope, delivery arrangements and suitability are confirmed during enquiry.