Master the power of use cases for developing requirements, improving software quality, and solidifying the link between requirements and other aspects of system development.
- Advance the knowledge you already have about use cases and their value throughout the development life cycle
- Implement practical methods for understanding user requirements
- Practice state-of-the-art business and system modeling techniques
- Understand the connection between functional system scope and use cases
- Identify the correct use cases for a new or enhanced business system quickly and accurately
- Develop and document correct functional requirements
- Gain exposure to relationships among use cases, Agile methods, and user stories
- Overcome common use case traps and pitfalls
- Explore interdependencies among use cases, other types of requirements, design elements, and test cases
- Increase testing effectiveness through well-written use cases
- Leverage the power of use cases to enhance software quality with improved traceability
- Apply use cases in your real organizational environment
- Improve your requirements elicitation skills
- Produce high-quality, readable use case documentation that serves business and IT stakeholders
- Experience powerful ways to document requirements with use cases
Exclusive Course Materials
To complement your learning experience, you’ll receive the groundbreaking book, Writing Effective Use Cases, by acclaimed expert Alistair Cockburn. This text supports the practical, real-world tone of the workshop and will make an excellent addition to any requirements engineering or business analysis reference library. You’ll also receive a comprehensive Participant Guide containing copies of all slides, supplemental material on specific tools and techniques, and a complete set of all workshop case project materials, plus an annotated bibliography to guide your further reading and learning after the workshop.
Prevent expensive errors and omissions in requirements with a proven approach and methodology!
It’s well documented that the most common source of delays, cancellations and defects in systems development projects is our failure to understand the project requirements. We also know that the top two causes of requirements errors are lack of input from the users and missing or incomplete requirements. As you’ll see in Developing Requirements with Use Cases, identifying and writing high-quality use cases is significantly enhanced with active user input and participation. In turn, that user involvement helps to ensure that all desired system functionality and behavior is explored and understood early on. This both drastically reduces the number of missed and misunderstood requirements and also provides a sound way to manage requirements on very complex systems.
Practice advanced real-world tools and techniques for immediate application.
This two-day advanced course will build on your existing knowledge of the use case approach to give you hands-on experience with the latest proven techniques for developing use cases, discovering other types of requirements, and documenting them expertly. Lively lectures combined with insightful demonstrations and realistic practice exercises will equip you with the capability and confidence to improve your project outcomes through better requirements and use case development. You’ll gain a thorough understanding of common requirements and use case pitfalls and challenges, practical approaches for discovering and writing use cases and requirements, and strategies for applying the use case methodology throughout the project life cycle in your organization. If you already know the basics of use cases and you play a role in defining project scope, capturing requirements, or consuming them as a developer, tester, or technical business user, you can’t afford to miss this course.
What’s the one approach proven to significantly enhance the quality of requirements, development, documentation, and testing?
It’s also one of the most straightforward and practical approaches invented to date: use cases. How can one approach make such a difference? Use cases offer a simple mechanism for involving users, developers, testers, and business customers in discussions throughout the lifecycle, starting from the very beginning of project initiation. Developing Requirements with Use Cases shows you multiple techniques to focus your stakeholders on the functionality they desire and shows several ways to firmly delineate what’s in scope and what’s excluded, how to specify what’s required to build the correct solution, and how to demonstrate that the solution is, indeed, viable. No one that works on systems development projects should be without an advanced knowledge of use cases.
In-Class Group Exercises
Practical and realistic hands-on exercises and activities will allow you to refine and enhance your use case discovery and writing skills. Working in small groups, you and your peers will identify and discuss strategies and tactics that your organization should be using to better define project scope, discover requirements, and document and manage use cases.
Specifically, you will:
- Revisit project initiation to refresh your skills for determining and documenting project scope
- Review basic requirements elicitation and use case discovery methods
- Practice additional techniques for discovering actors, events, normal scenarios, and extension scenarios
- Work as a team to establish the appropriate level of detail for any use case
- Write complete, fully dressed use cases, as well as usage narratives and use case briefs
- Identify and write user stories and use them to discover and confirm use cases
- Produce well written use case diagrams and narratives
- Learn to identify includes and extends relationships in use cases
- Understand how use cases are linked for large and/or complex systems
- Improve your ability to write high-quality statements of requirements
- Review and practice deriving other requirements from use cases
- Review traceability issues and apply use case traceability to improve testing and quality
- Learn how use cases can improve your software testing and QA processes
- Explore ways to generate test procedures from use cases
- Understand how design elements can be derived from use cases
- Generate a plan for bringing these methods back to your organization
Immediate Benefits of Participating in this Workshop:
- More deeply understand the relationships between use cases and requirements
- See how use cases and user stories fit into the development life cycle
- Identify stakeholder interests and learn how they influence use cases
- Gain further exposure to the Unified Modeling Language (UML) and some of its associated tools and models
- Use high-level scope of an IT project to identify the use cases that comprise it
- Improve project initiation by clarifying discussions of scope, increasing stakeholder involvement, and identifying exclusions and constraints up front
- Identify use cases for new or revised systems and determine the level of detail appropriate for your project and system
- Write clear and correct usage narratives and use case briefs
- Determine and document the main success and extension scenarios for use cases
- Translate users sta statements of needed system behavior and functionality into high-quality use cases
- Help to bridge the gulf between business customers and designers, developers, and testers
- Identify other requirements for a project from a use case, and review how to document those other requirements
- Understand includes and extends relationships and how to use them in documenting use cases
- Overcome common pitfalls and traps encountered when applying the use case approach
- Experience the power of connecting use cases to other types of requirements, elements of the solution development, and the testing and QA processes
- Enhance relationships with stakeholders throughout your organization and improve your ability to satisfy stakeholders from both the business and IT
- Help your organization understand apply state-of-the-art methods for discovering and documenting project requirements
- Understand the connection between use cases and test procedures and the value of automated tools for large and/or complex systems
- Shorten project schedules by reducing errors that lead to revision cycles
- Reduce project costs and improve their quality by defining the right requirements the right way the first time, every time!
Substitution & Cancellation Policy:
You may cancel or reschedule up to 21 days prior to the start date of the class at no penalty. For any cancellation or reschedule requests within 21 days, the full course tuition is still due and not eligible for refund. Any paid tuition will be credited towards a future class and must be used within 12 months.
*Partner delivered courses may be subject to different cancellation terms
Section I. Review of Requirements Development with Use Cases
Use cases are one of the best approaches for developing requirements. In this section of the workshop, we will review key definitions and terms, overview a requirements management framework, and review how use cases fit into the development life cycle. We’ll refresh your knowledge of how to find requirements from use cases, and we’ll conclude with a discussion of use cases and Agile methods.
- Definitions of terms
- Levels and types of requirements
- Characteristics of effective requirements
- Requirements, use cases, and the development life cycle
- Review and assess use case quality
- Identify requirements associated with a use case
- Use cases and Agile methods
With your instructor, revisit key concepts of requirements engineering and then review poorly written requirements to discover characteristics of effective requirements. Work with your team to review and analyze several use cases and then extract possible requirements from those sample use cases.
Section II. IT Project Initiation and Use Cases
To exploit the full advantages of use cases, seasoned analysts plan for them from the very beginning of each project. This section explores project initiation and its relationship to use cases, particularly how to identify and capture them early in the project life cycle. In particular, you’ll review whether use cases are appropriate for a specific project. You’ll strengthen your understanding of the connection between project scope and use cases. We’ll conclude this module with an exploration of other methods for identifying the use cases that comprise a system, and a chance for you to practice constructing a use case diagram.
- Project scope and stakeholders: how they relate to use cases
- Actor/goal definition and use cases
- Event identification
- User stories for agile development
- Use case briefs and usage narratives
- The use case diagram
Examine a hypothetical but realistic business and one of its emergent projects. You’ll work in a small group to practice determining whether the use case approach is appropriate, identifying the use cases using the actor/goal identification method, and writing user stories and use case briefs for the case project. You will also practice diagramming the actors and the use cases.
Section III. Documenting Requirements with Use Cases
At some point, we must document the use cases and requirements discovered during the requirements elicitation process. This section of the workshop focuses on how to apply the knowledge you already have to writing better use cases. It also examines more complex aspects of uses cases, including includes and extends relationships and use case linking on larger systems.
- The use case preamble: the big picture
- Describing the normal course (i.e., main success scenario)
- Identifying and describing extension scenarios
- Identifying includes (sub-function use cases) and extends relationships (extension use cases)
- Linking uses cases for larger or more complex systems
You’ll work with your team to write a fully dressed use case for our case project, including a preamble, the main success scenario, and the extension scenarios. You’ll also have a chance to write an included (or sub-function) use case and an extension use case.
Section IV. Improving Use Case Quality
As with most aspects of system development, the quality of downstream work products (design elements, test plans, etc.) depends directly upon the quality of the use cases. During this part of the workshop, we will apply standards for quality to our use cases and requirements and look at some proven ways to prevent common problems. We’ll also explore how to derive maximum benefit from reviews throughout the life cycle.
- Characteristics of well-written use cases
- Recognizing common problems with use cases
- Avoiding use case traps and pitfalls: advice and examples
- Validating use cases through reviews and inspections
Your team will review another team’s use case using a quality checklist. You’ll then have the opportunity to refine your own team’s use case based on feedback from another team.
Section V. Use Cases and Other Requirements
Merely writing use cases is not sufficient for capturing all project requirements. While desired user functionality yields a major set of project requirements, experienced analysts know there are also non-functional aspects of the desired system that must be identified and captured. In this section, we will examine ways to derive other typical requirements from use cases and how to identify constraints on the solution design. In addition, we’ll explore how use cases not only trace back to one or more business requirements, but also how they trace forward through the development life cycle to design and testing.
- Deriving non-functional requirements: business rules, data definitions, interfaces, and quality attributes
- Relating use cases to other requirements
- Identifying design constraints
- Documenting requirements and use case traceability
Your team will work together to derive and capture non-functional requirements from the use case your team has already refined. Then your instructor will work with the class to develop and document traceability between the requirements and the use cases for our course project.
Section VI. Use Cases and Testing
One of the most powerful aspects of the use case approach is its improvement in test procedure development. Well-written use cases directly impact the outcome of the very portion of the life cycle most likely to suffer when time is of the essence. Here, we’ll look at how use cases can help identify test cases early in the life cycle. Next, we’ll examine an example use case and its associated test plan side-by-side. Finally, we’ll discuss how use of automated tools can reduce not only testing time, but also the time required to produce the test procedures.
- Benefits of early test case development
- Relating use cases to test cases
- Automated tools: reducing test procedure development time and testing time
Your instructor will demonstrate the use of a popular automated use case documentation tool and will then use it to develop a partial set of test procedures for our case project.
Section VII. Use Cases and Design Elements
Once we have the use cases developed, we can use them as a basis for discovering the elements needed for the design and development of the solution. In this section, we’ll learn how to find typical design elements such as screens, messages, and dialog boxes, creating another layer of detail (sometimes called a “system use case”).
- What are design elements?
- The relationship between a use case and design elements
- Functional decomposition for finding design elements
- Specifying design elements from a use case
- Validating requirements from user stories, use cases, and interface design
With your team, you’ll analyze the use case you’ve already written to identify and specify required design elements. With your instructor, prototype an interface design for a use case from our case project and use it to validate the requirements.
Who should attend this class:
If you’re involved at all in defining and managing systems development projects, you should participate in this workshop. This course is perfect for you if you are a…
-Business customer, user or partner
-Business Systems Analyst
-Systems Architect or Designer
-Systems or Application Developer
-Leader of Systems project or teams
This is a 3 day Virtual class