About the course
Our 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.
Instructor-led online and in-house face-to-face options are available - as part of a wider customised training programme, or as a standalone workshop, on-site at your offices or at one of many flexible meeting spaces in the UK and around the World.
-
- Grasp Core Design Principles: Understand fundamental object-oriented analysis and design concepts like abstraction, encapsulation, polymorphism, and design by contract.
- Identify Key UML Diagrams: Recognise and differentiate between the primary UML diagram types and their specific applications in software modelling.
- Apply Core UML Notation: Utilise fundamental UML notation, including packages, dependencies, constraints, and stereotypes, for clear and consistent modelling.
- Create Detailed Class & Object Diagrams: Construct comprehensive Object and Class Diagrams, illustrating relationships, attribute visibility, and inheritance hierarchies.
- Model System Interactions: Diagram dynamic system behaviour and message sequencing effectively using Sequence and Collaboration Diagrams.
- Map System States & Activities: Illustrate system behaviour, states, events, and process flows using State Machine and Activity Diagrams.
- Capture Functional Requirements: Develop comprehensive Use Case Diagrams to effectively capture and relate system functional requirements.
- Implement Common Design Patterns: Identify and apply widely-used architectural and design patterns to solve recurring software design problems.
- Relate UML Diagrams for Holistic Models: Understand the interrelationships between various UML diagrams to create a cohesive and comprehensive system model.
- Integrate UML with Development Processes: Understand how UML tools and techniques fit within modern software development methodologies, including Agile approaches.
-
This course is appropriate to system architects, designers, DevOps engineers, project managers and software developers who wish to learn analysis and design along with UML notation.
-
Some experience of systems and/or software development is assumed, but previous exposure to UML and the design techniques and concepts covered in this course is not mandatory.
-
This UML course is available for private / custom delivery for your team - as an in-house face-to-face workshop at your location of choice, or as online instructor-led training via MS Teams (or your own preferred platform).
Get in touch to find out how we can deliver tailored training which focuses on your project requirements and learning goals.
-
Core Concepts of Analysis and Design
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 modeller.
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 generalisation.
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.
Signalling, 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 generalisation.
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.
-
https://www.uml.org/ - the home of UML
https://en.wikipedia.org/wiki/List_of_Unified_Modeling_Language_tools - comprehensive list of UML tools
https://www.eraser.io/ai/uml-diagram-generator - let AI do the heavy lifting
Trusted by