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.
By the end of this course, you will have learnt:
- A deep and orthogonal 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.
Live, instructor-led online and on-site training
We appreciate that you need flexibility to fit in with new working situations - whether you're an individual, part of a distributed team, or simply have projects and deadlines to meet.
Our remote training can take place online in a virtual classroom, with content split into modules to accommodate your scheduling challenges and meet your learning goals. Get in touch today to find out how we can help design a cost-effective, flexible training solution.
As soon as it's safe, we'll return to also offering the on-site custom training courses and programmes upon which we've built our reputation.
Analysis and Design with UML Training Course
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.