Full two days workshop on modeling in UML, domain driven design, agile requirements and smart use cases, packed with many hands-on exercises
The use of modeling techniques in software development projects leads to higher productivity and better quality of both the design and the code, as well as improved maintainability of the produced software. A picture says more than a thousand words. By combining UML modeling with agile techniques, these models will be used by end users, business analysts, developers, and testers to discuss the software under development.
Why UML ? Why smart use cases ?
The modeling language UML is now a worldwide standard for modeling requirements, functionality, components and services. UML 2.x (currently UML 2.4) contains modeling techniques such as use case diagrams, activity diagrams, communications diagrams, class diagrams and package diagrams. These modeling techniques are used during the various phases of system development, like analysis, design, implementation and even during testing.
However, the UML specifications define the structure of these modeling techniques but not how to use them in practice. This workshop will provide insight in the different diagrams and particularly the power of the use case.
During this workshop, Sander Hoogendoorn presents the smart use case implementation cycle in UML, where agile requirements, scope, business processes and smart use cases are identified, modeled and implemented in an agile way.
Why should you attend this workshop ?
This workshop, which has been presented over 100 times, begins where most other UML workshops end: you know the theory of UML, but this workshop teaches you how to use UML and use cases in a practical, pragmatic, productive and agile way! Packed with many hands-on modeling exercises.
Companies that use UML and use cases in their software development projects, should also implement a method to use the use cases in a pragmatic way throughout the development life cycle. This approach is also documented in Sander’s book Pragmatisch Modelleren met UML 2.0. This approach is used in many larger but also smaller organizations, and taught at various schools. You get this book free with your registration.
During this workshop, you will receive a large number of essential tips and tricks to model UML diagrams and use cases in a pragmatic way. This method starts with the identification of business processes, all through the domain modeling, testing and estimation. By using a case study throughout the workshop (an online dating web site), the modeling process is explained and refined in group exercises.
We have already organized this workshop over 25 times, and the comments by participants vary from good to excellent.
What questions does the workshop answer?
This workshop answers these and other questions:
- How to identify business processes
- How to deduct (smart) use cases from these processes
- How to model (smart) use cases
- How can (smart) use cases be the fil rouge in your project?
- What is the link between various UML modeling techniques ?
- How to model the business domain and business logic ?
- How do we test requirements and functionality using smart use cases ?
- Can we use UML and smart use cases in a pragmatic, agile and iterative development process ?
Who should attend this workshop ?
This workshop is aimed at everyone who is involved in the different phases of software development:
- business analysts and requirements gatherers
- software and IT architects
- information analysts
- software designers, information modelers
- testers, …
Preferably, participants are (or will be) involved in the modeling, realization and testing of software, and have some knowledge of UML, although deep practical knowledge is not required.
Sander’s book Pragmatisch Modelleren met UML 2.0 provides background reading material for this workshop.
Spread over 2 days, we will cover:
The smart use case approach
Short overview of the workshop, how it all fits together
- Agile software development and agile requirements
- Determine project scope
- Identify business processes
- Identify smart use cases
- Model smart use cases
- Estimate smart use cases
Agile software development and agile requirements
A pragmatic and agile modeling approach to systems development projects
- Why model ?
- Why agile ?
- How does agile work ?
- Different levels of requirements: cloud, kite, sea and fish level
- User stories, huge use cases and the YAGNI (you ain’t gonna need it) principle
- A pragmatic modeling approach, from business process to working application
Identifying scope and business processes
How to deal with business processes
- How do you set the scope of your project ?
- Which business processes are supported by the new application ?
- How do you model chronological and hierarchical processes ?
- Elementary business processes
- How do you use the OTOPOP (one time, one place, one person) rule to limit the scope of use cases ?
- The transition from business processes to smart use cases
Identifying smart use cases
Smart use cases as a fil rouge in a project: how does this work ?
- Different levels of use cases – sea level and fish level
- From business processes to smart use cases
- How do you identify smart use cases in your project ?
- How to distinguish between the different types of smart use cases ?
Modeling smart use cases
- How to model use cases diagrams ?
- How to describe use cases
- Actors and use cases
- Use case scenario’s
Implementing & testing smart use cases
- The smart use case implementation cycle
- Writing use cases
- Test scenarios and test cases
- Unit testing smart use cases
- Testing in the agile life cycle
- Estimating projects, releases and iterations
- How to model class diagrams
- Modeling attributes, value objects, references, enumerations, associations, aggregations, composition, dependencies, …
- What is domain-driven design
Requirements in Agile Projects
- Agile requirements. Business Analysis in an agile environment
- Roles in agile development
- Best practices when you use UML and smart use cases in agile projects
- The smart use case as a guideline for the Definition of Done