• Tidak ada hasil yang ditemukan

Software Requirements (third edition)

N/A
N/A
Mihaela

Academic year: 2023

Membagikan "Software Requirements (third edition)"

Copied!
673
0
0

Teks penuh

Karl and Joy have updated one of the most important works on software requirements, taking what was good and improving upon it. Doreen Evans, managing director of the requirements and business analysis practice for Robbins Gioia Inc.

Links in the requirements chain 491

Tools for requirements engineering 503

IMPLEMENTING REQUIREMENTS ENGINEERING

Improving your requirements processes 517

Software requirements and risk management 537

Introduction

A new chapter on handling requirements for agile projects has been added to this third edition, as well as sections in many other chapters that describe how to apply and adapt the practices in those chapters to an agile development environment. We've learned that these practices are applicable to almost any project: small and large projects, new development and enhancements, with local and distributed teams, and using traditional and agile development methods.

Benefits this book provides

This book provides dozens of tools to facilitate that communication and help software practitioners, managers, marketers, and customers implement effective requirements engineering methods. Think of these practices as tools to help you make sure you're having effective conversations with the right people on your projects.

Who should read this book

Looking ahead

Other chapters in Part II address how to find appropriate customer representatives, elicit requirements from them, and document user requirements, business rules, functional requirements, data requirements, and nonfunctional requirements. The self-assessment in Appendix A can help you select areas ripe for improvement.

Case studies

The business analyst role (a role that goes by many other names) is the subject of Chapter 4. The principles and practices of requirements management are the subject of Part IV, with an emphasis on techniques for handling changing requirements.

From principles to practice

Errata & book support

We want to hear from you

Stay in touch

Acknowledgments

She was a lot of fun to work with, and she added a lot of value to the book. She would especially like to thank two colleagues and friends: Anthony Chen, whose support for her writing this book was extremely important; and Rob Sparks, for his continued encouragement in such endeavors.

The essential software requirement

Many problems in the software world arise from deficiencies in the way people learn about, document, agree on, and modify product requirements. Nowhere more than in the requirements are the interests of all the stakeholders in a project crossed.

Taking your requirements pulse

Software requirements defined

Some interpretations of ”requirement”

The pure dictionary “requirement”

Levels and types of requirements

Business requirements describe why the organization is implementing the system—the business benefits the organization hopes to achieve. Functional requirements are often written in the form of traditional "must" statements: "The passenger must be able to print boarding passes for all flight segments for which he has checked in" or "If the passenger's profile does not show a seat preference, the reservation system assigns a seat.”

FIGURE 1-1   Relationships among several types of requirements information. Solid arrows mean “are stored in”;
FIGURE 1-1 Relationships among several types of requirements information. Solid arrows mean “are stored in”;

If they’re nonfunctional, then what are they?

Therefore, you can trace the genesis of some functional requirements to a particular business rule. A feature consists of one or more logically related system capabilities that provide value to a user and are described by a set of functional requirements.

FIGURE 1-2   Relationships among features, user requirements, and functional requirements.
FIGURE 1-2 Relationships among features, user requirements, and functional requirements.

Working with the three levels

When someone suggests a new feature, user requirement, or bit of functionality, the analyst should ask, "Is it in scope?" If the answer is "yes", the requirement belongs in the specification. The third possible answer is "no, but it supports the business goals, so it should be." In that case, whoever controls the project scope—the project sponsor, project manager, or product owner—must decide whether the current project or iteration's scope should be increased to accommodate the new requirement.

Product vs. project requirements

Especially for business applications, people sometimes refer to a "solution" that includes both product requirements (which are primarily the responsibility of the business analyst) and project requirements (which are primarily the responsibility of the project manager). They may use the term "solution scope" to refer to "everything that needs to be done to successfully complete the project." In this book, however, we are focusing on product requirements, whether your end product is a commercial software product, a hardware device with embedded software, a corporate information system, contracted government software, or anything else.

Requirements development and management

Requirements development

Elicitation

Usage-centric or product-centric?

Analysis

Specification

Validation

Requirements management

The purpose of requirements management is not to stifle change or make it difficult. It is anticipating and accommodating the very real changes that you can always expect to minimize their disruptive impact on the project.

Every project has requirements

Without knowing the requirements, you cannot tell when the project is finished, determine whether it has met its goals, or make trade-off decisions when scope adjustments are needed. Instead of spending time on requirements, people should balk at the money wasted when the project doesn't pay enough attention to requirements.

When bad requirements happen to good people

In those cases, you can take an iterative or incremental approach, implementing one part of the requirements at a time and obtaining feedback from customers before moving on to the next cycle. However, this is not an excuse to write code before considering the requirements for the next increase.

Insufficient user involvement

Shortcomings in requirements practice pose many risks to project success, where success means delivering a product that meets the user's functional and quality expectations, at the agreed cost and schedule. Chapter 32, “Software Requirements and Risk Management,” describes how to manage such risks to prevent them from derailing your project.

Inaccurate planning

Creeping user requirements

Ambiguous requirements

Gold plating

Overlooked stakeholders

Benefits from a high-quality requirements process

Next steps

Requirements from the customer’s perspective

Gerhard mentioned some business objectives, benefits that he expects Contoso to reap using the new chemical tracking system. However, Gerhard cannot fully describe the user requirements because he is not the intended user of the system.

Deliverable: Rejected

Part of the requirements problem stems from confusion about the different levels of requirements described in Chapter 1, “Essential Software Requirements”: business, user, and functional. Chapter 6, “Finding the Voice of the User,” describes the different types of customers and users and ways to involve appropriate user representatives in eliciting requirements.

The expectation gap

As the small progressively descending gray triangles in Figure 2-1 illustrate, a series of such touchpoints will lead to a much smaller expectations gap at the end of the project and a solution that is much closer to the actual needs of the customer. That's why one of the guiding principles of agile development is to have constant conversations between developers and customers.

Who is the customer?

The best way to minimize the waiting gap is to arrange frequent touchpoints with appropriate customer representatives. Customers like Gerhard provide the business requirements, which create the guiding framework for the project and the business rationale for launching it.

FIGURE 2-2   Potential stakeholders within the project team, within the developing organization, and outside the  organization.
FIGURE 2-2 Potential stakeholders within the project team, within the developing organization, and outside the organization.

The case of the missing stakeholder

The customer-development partnership

The Requirement Bill of Rights for Software Customers in Table 2-1 lists ten expectations that customers can legitimately have regarding their interactions with BAs and developers during the project's requirements engineering activities. The word “you” in the rights and responsibilities refers to a customer for a software development project.

TABLE 2-1   Requirements Bill of Rights for Software Customers You have the right to
TABLE 2-1 Requirements Bill of Rights for Software Customers You have the right to

Requirements Bill of Rights for Software Customers

The Pitfall Don't assume that project participants instinctively know how to collaborate in requirements development. It's a good idea to write down how you decide to approach and manage requirements issues in the project.

Right #1: To expect BAs to speak your language

These rights and responsibilities apply to actual customers when the software is developed for internal company use, under contract, or for a known group of larger customers. In mass market product development, rights and responsibilities are more about customer surrogates, such as the product manager.

Right #2: To expect BAs to learn about your business and your objectives

This understanding can reduce friction later, when one party expects something the other is unwilling or unable to provide.

Right #3: To expect BAs to record requirements in an appropriate form

As part of project planning, key customer and development stakeholders should review and negotiate these two lists to reach a meeting of the minds. Your review of these specifications and other requirements representations, such as visual analysis models, helps ensure that they accurately represent your needs.

Right #4: To receive explanations of requirements practices and deliverables

Right #5: To change your requirements

Right #6: To expect an environment of mutual respect

Right #7: To hear ideas and alternatives for your requirements and for their solution

Right #8: To describe characteristics that will make the product easy to use

Right #9: To hear about ways to adjust requirements to accelerate development through reuse

Right #10: To receive a system that meets your functional needs and quality expectations

Requirements Bill of Responsibilities for Software Customers

Responsibility #1: To educate BAs and developers about your business

Responsibility #2: To dedicate the time that it takes to provide and clarify requirements

Responsibility #3: To be specific and precise when providing input about requirements

Responsibility #4: To make timely decisions about requirements when asked

Responsibility #5: To respect a developer’s assessment of the cost and feasibility of requirements

Responsibility #6: To set realistic requirement priorities in collaboration with developers

Responsibility #7: To review requirements and evaluate prototypes

Responsibility #8: To establish acceptance criteria

Responsibility #9: To promptly communicate changes to the requirements

Responsibility #10: To respect the requirements development process

Creating a culture that respects requirements

Such rework is hidden in the daily activities of the project participants, so they do not consider it a serious inefficiency. Developers are stakeholders in the project, but sometimes their input is not requested and they become the 'victims' of the demands imposed on them.

Identifying decision makers

Reaching agreement on requirements

Everyone involved in the request approval process should know exactly what opting out means or problems could arise. Equally problematic is a development manager who sees opt-out as a way to freeze requests.

The requirements baseline

Many organizations use the act of "signing off" (why not "signing off"?) on the requirements as the mark of stakeholder approval. After the decision makers have defined a baseline, the BA must place the requirements under change control.

What if you don’t reach agreement?

Development management has confidence because the development team has a business partner who will keep the project focused on achieving its goals and will work with development to balance schedule, cost, functionality, and quality. Business analysts and project managers are confident that they can manage changes to the project in a way that will keep chaos to a minimum.

Agreeing on requirements on agile projects

Which items from the Charter of Rights and the Charter of Responsibilities do these parties currently accept and implement. If necessary, amend the Bill of Rights and Bill of Responsibilities so that all parties agree on how they will work together.

Good practices for requirements engineering

Please note that this chapter is titled “Good Practices for Requirements Development” and not “Best Practices.” It is doubtful whether all these practices will ever be systematically evaluated for this purpose. Nevertheless, many other practitioners have found these techniques effective (Sommerville and Sawyer 1997; Hofmann and Lehner 2001; Gottesdiener 2005; IIBA 2009).

TABLE 3-1   Requirements engineering good practices
TABLE 3-1 Requirements engineering good practices

A requirements development process framework

Due to the diversity of software development projects and organizational cultures, there is no single, formal approach to requirements development. But even if you plan a traditional "requirements phase" at the start of the project, which then leads into design, you can expect to have to do some additional requirements work throughout the project.

FIGURE 3-2   A representative requirements development process.
FIGURE 3-2 A representative requirements development process.

Good practices: Requirements elicitation

Distribute Questionnaires Questionnaires are a way of surveying large groups of users to find out what they need. If the questions are well written, questionnaires can help you quickly determine analytical information about needs.

Good practices: Requirements analysis

Analyze interfaces between your system and the outside world All software systems have connections to other parts of the world through external interfaces. Assigning Requirements to Subsystems The requirements for a complex product containing multiple subsystems must be distributed among the various software, hardware, and human subsystems and components.

Good practices: Requirements specification

The convention must be robust enough to withstand additions, deletions and changes made to the requirements over time. Document your business rules separately from a project's requirements because they typically have an existence outside of a specific project's scope.

Good practices: Requirements validation

Simulate Requirements Commercial tools are available that allow a project team to simulate a proposed system either in situ or to augment written requirements specifications. Users can interact with the simulated system to validate requirements and make design choices, bringing the requirements to life before jumping into concrete code.

Good practices: Requirements management

A requirements traceability matrix can also link functional requirements to the higher-level requirements from which they are derived and to other related requirements. Such tools help you implement and automate many of the other requirements management practices described in this section.

Good practices: Knowledge

Educate developers about the application domain To help developers understand the basics of the application domain, hold a workshop on the customer's business activities, terminology, and objectives for the product being created. You can also match each developer with a "user buddy" for the life of the project to translate jargon and explain business concepts.

Good practices: Project management

Because so many decisions involve requirements issues, it is essential for the project team to identify and empower its requirements decision makers, preferably before they face their first major decision. Identify and document risks related to requirements as part of the project's risk management activities.

Getting started with new practices

Monitor the impact your requirements activities have on the project so you can assess the return on your requirements investment. Incorporate the adoption of new requirements techniques into your organization's software process improvement activities, relying on change leadership to facilitate testing, deployment, and adoption of better practices.

TABLE 3-2   Implementing requirements engineering good practices Value Difficulty
TABLE 3-2 Implementing requirements engineering good practices Value Difficulty

The business analyst

The business analyst role

The BA can help represent the users and understand their needs while performing the additional BA activities described later in the chapter. Using highly experienced analysts can reduce the total project effort by a third compared to similar projects with inexperienced analysts.

The business analyst’s tasks

Using standard templates accelerates requirements development by reminding BAs of topics to discuss with user representatives. Validation of the BA's lead requirements must ensure that the requirements statements have the desired characteristics discussed in Chapter 11, “Writing Great Requirements,” and that the requirements-based solution will meet the needs of the stakeholders.

Essential analyst skills

A BA must also be able to summarize and present information at the level of detail that the target group needs. Interpersonal Skills Analysts must be able to get people with competing interests to work together as a team.

Practicing what you teach

BA will need to know when to select specific models based on how they add value. A BA should be easy to communicate with and be clear and consistent when communicating with team members.

Essential analyst knowledge

The making of a business analyst

The former user

Users who become BAs need to learn more about the technical side of software development so that they can present information in the most appropriate forms for their multiple audiences. Some former users think they understand what is needed better than current users, so they do not solicit or respect input from those who will actually use the new system.

From medical technologist to business analyst

The downside is that former users who are now graduate professionals may know little about software engineering or how to communicate with technical people. Recent users may be stuck in the current way of working in the here and now, so that they do not see the possibility of improving business processes with the help of a new information system.

The former developer or tester

They will need to familiarize themselves with current requirements engineering best practices. Developers will benefit from training and mentoring in the various soft skills mastered by top analysts, as described earlier in this chapter.

The former (or concurrent) project manager

The subject matter expert

The rookie

The analyst role on agile projects

Help verify that customer needs are accurately represented in the product backlog and facilitate backlog prioritization. However, the person performing the Product Owner role may not have all the business analysis skills or time to perform all the related activities.

Creating a collaborative team

The point is that regardless of the project's development approach, the tasks associated with the BA role still need to be accomplished. Work with the rest of the team to determine the impact of changes on iteration content and release plans.

Establishing the business requirements

Defining business requirements

Identifying desired business benefits

Product vision and project scope

Important The product vision ensures that we all know where we want to end up. Project scope ensures that we are all talking about the same thing for an immediate project or iteration.

Make sure the vision solves the problem

The project scope identifies which portion of the ultimate product vision the current project or development iteration will address. The scope statement draws the line between what is in and what is out for this project.

Interlocking scopes

Conflicting business requirements

Project decision makers must resolve these conflicts before the analyst can detail the kiosk requirements. Project decision makers should not expect the program team to resolve conflicts between different stakeholders.

Vision and scope document

The vision and scope document only defines the scope at a high level; the scope details are represented by each release baseline that defines the team. Each iteration, release, or enhancement project for an evolving product can include its own scope statement in that project's requirements documentation, rather than creating a separate vision and scope document.

Template tactics

Business requirements

  • Background
  • Business opportunity
  • Business objectives
  • Success metrics
  • Vision statement

A business objectives model shows a hierarchy of related business problems and measurable business objectives (Beatty and Chen 2012). In other cases, achieving business objectives may depend on projects that go beyond your current ones.

TABLE 5-1   Examples of financial and nonfinancial business objectives
TABLE 5-1 Examples of financial and nonfinancial business objectives

Crafting the product vision

Business risks

Business risks are not the same as project risks, which often include concerns about resource availability and technology factors.

Business assumptions and dependencies

Scope and limitations

Scope can be represented in numerous ways (see “Scope Representation Techniques” later in this chapter). At the highest level, scope is defined when the customer decides which business objectives to target.

Blue-sky requirements

  • Major features
  • Scope of initial release
  • Scope of subsequent releases
  • Limitations and exclusions
  • Business context
    • Stakeholder profiles
    • Project priorities
    • Deployment considerations

At each level, the scope must stay within the boundaries of the level above it. In this section, explicitly state: "The new system will not provide mobile platform support."

Scope representation techniques

Important Not all five dimensions can be constraints, nor can they all be drivers. Provide a summary of the information and activities required to ensure effective implementation of the solution in the operational environment.

Context diagram

Record any information that will be needed by people who will prepare training or modify business processes in conjunction with the implementation of the new solution. However, those processes take place outside the scope of the Chemical Detection System, as part of the operations of the purchasing and receiving departments.

Figure 5-6 illustrates a portion of the context diagram for the Chemical Tracking System
Figure 5-6 illustrates a portion of the context diagram for the Chemical Tracking System

Ecosystem map

Feature tree

Event list

Keeping the scope in focus

Using business objectives to make scoping decisions

Assessing the impact of scope changes

Vision and scope on agile projects

Scope management and timeboxed development

Many agile projects perform a preliminary design iteration (iteration zero) to define the overarching product vision and other business requirements for the project. Business requirements must be defined for all software programs, regardless of the development approach.

Using business objectives to determine completion

Or simply create a model of business goals and have the rest of the team review it. This can reveal that your team does not have a shared understanding of the goals or scope of the project.

Finding the voice of the user

If developers build exactly what customers ask for first, they will probably have to build it again because customers often don't know what they really need. If you don't invest the time to achieve this shared understanding—this shared vision of the target product—some results are rework, missed deadlines, cost overruns, and customer dissatisfaction.

User classes

Additionally, BAs may not be talking to the right people or asking the right questions. The features users present as their "wants" are not necessarily the same functionality they need to perform their tasks with the new product.

Classifying users

A better way to identify user classes is to think about the tasks that different users will perform with the system. Disadvantaged user classes are groups that are not supposed to use the product for legal, safety or security reasons (Gause and Lawrence 1999).

FIGURE 6-1   A hierarchy of stakeholders, customers, users, and user classes.
FIGURE 6-1 A hierarchy of stakeholders, customers, users, and user classes.

Identifying your user classes

Any chemist will use the system several times a day, primarily to request chemicals and track chemical containers to and from the lab. They will deliver containers from three warehouses, request new chemicals from vendors, and track all container movements in and out of warehouses.

FIGURE 6-2   A portion of the organization chart for Contoso Pharmaceuticals.
FIGURE 6-2 A portion of the organization chart for Contoso Pharmaceuticals.

User personas

By defining enterprise-level user classes, you can reuse these user class descriptions in future projects. If you do include the user class descriptions in the project's SRS, you can incorporate entries from the Reusable User Class Catalog by reference and simply write descriptions of new groups specific to that application.

Connecting with user representatives

As in the children's game "Telephone", the intermediate layers between the user and the developer increase the possibility of miscommunication and transmission delays. Recognize the risks you take by using marketing staff, product managers, subject matter experts or others as surrogates for the actual voice of the user.

The product champion

Product advocates collect requirements from other members of the user classes they represent and reconcile inconsistencies. For example, product advocates can drive adoption of an application by the user community, which can be a success metric that managers will value.

External product champions

The product master approach works best if each master is fully empowered to make binding decisions on behalf of the user class he represents. These people provided valuable domain expertise as well as insight into the client organization's policies.

Product champion expectations

As another example, my longtime family doctor, Art, left his medical practice to become the voice of a physician for a medical software company. Regardless, if people no longer function in a role, they've simply forgotten the complexity of their day-to-day work.

Multiple product champions

No backup team was needed if the user class was small enough or cohesive enough that one individual could truly represent the needs of the group.1.

The voiceless user class

Selling the product champion idea

However, he willingly made the necessary decisions when agreement was not reached so that the project could continue. Product advocates are one way to get that all-important customer input in a timely manner, not at the end of a project when customers are frustrated and developers are tired.

Product champion traps to avoid

Every organization has horror stories of new systems that failed to meet user needs or failed to meet unstated usability or performance expectations. You can't afford to rebuild or scrap systems that don't fit because no one understood the requirements.

User representation on agile projects

If the product owner functions in the role of a business analyst, rather than as a stakeholder representative himself, he can set up a structure with one or more product champions to see that the most appropriate sources provide input. Alternatively, the product owner may work with one or more business analysts, who then work with stakeholders to understand their requirements.

On-sight” customer

Resolving conflicting requirements

Individual users are set by the product champion or product owner User classes The preferred user class takes precedence. Users and user managers The product owner or product champion for the class of users decides Development and customers Customers take precedence, but in line with business objectives Development and marketing Marketing takes precedence.

Table 6-3 identifies some requirements conflicts that can arise on projects and suggests ways  to handle them
Table 6-3 identifies some requirements conflicts that can arise on projects and suggests ways to handle them

Requirements elicitation

The result of requirements development is a shared understanding of the needs held by the various project stakeholders. However, before we go through this process, let's review some of the requirements elicitation techniques that you may find useful.

FIGURE 7-1   The cyclic nature of requirements elicitation, analysis, and specification.
FIGURE 7-1 The cyclic nature of requirements elicitation, analysis, and specification.

Requirements elicitation techniques

Interviews

Prepare questions and straw man models ahead of time Prepare for interviews by drafting any material you can in advance, such as a list of questions to guide the conversation. When users really can't articulate what they need, perhaps you can watch them work and suggest ways to automate parts of the work (see the "Observations" section later in this chapter).

Workshops

Complete all the team roles A facilitator must make sure that the following tasks are covered by people in the workshop: note taking, time keeping, scope management, ground rule management, and making sure that everyone is heard. Plan an agenda Every workshop needs a clear plan, as discussed in the "Preparation for elicitation".

Too many cooks

Keep the team small, but include the right stakeholders. Small groups can work much faster than larger teams. Knowledge, experience and decision-making authority are qualifications for participation in elicitation workshops.

Focus groups

Evocation workshops with more than five or six active participants can become bogged down in side trips, simultaneous conversations, and bickering. Workshop participants could include the product master and other user representatives, perhaps a subject matter expert, a BA, a developer and a tester.

When conflicts erupt

Observations

If you use observations in agile projects, have the user demonstrate only the specific tasks relevant to the next iteration. The BA must abstract and generalize beyond the observed user activities to ensure that the captured requirements apply to the user class as a whole, not just that individual.

Watch me bake a cake

By observing a user's workflow in the task environment, the BA can validate information from other sources, identify new topics for interviews, see problems with the current system, and identify ways the new system can better support the workflow.

Questionnaires

System interface analysis

Through system interface analysis, you may learn that multiple systems pass orders to the order management system, which does the validation, so you don't have to build this feature.

User interface analysis

Document analysis

Planning elicitation on your project

Select the row or rows that represent features of your project and read on the right to see which elicitation techniques are most likely to be useful (marked with an X). For example, if you are developing a new application, you are likely to achieve the best results with a combination of stakeholder interviews, workshops, and system interface analysis.

Preparing for elicitation

Align the scope of the session with the overall project scope defined in the business requirements to keep the conversation on topic. Learn about the stakeholders Identify the relevant stakeholders for the session (see Chapter 6, . "Finding the Voice of the User").

Performing elicitation activities

Document the source of each request so you can get further clarification if needed and trace development activities back to the specific customer origin. Come up with a shorthand note to capture a question that comes to mind while someone is speaking, so you can quickly come back to it when you have an opportunity.

Stakeholders on the move

If there are existing objects to view (such as straw man models, existing requirements, or existing systems), project them onto the wall. If several participants are in the same room, use video conferencing tools to show remote participants what's on the walls and whiteboards.

Following up after elicitation

If it is culturally appropriate, use toys to stimulate participants' minds or give them something to do with their hands.

Organizing and sharing the notes

Documenting open issues

Classifying customer input

Repeatedly asking “why” the user needs it to function this way is likely to reveal the true need (Wiegers 2006). If the user replies, "That just seemed like a good way to do it," then the real requirement is something like, "The system must allow the user to specify the state in which to send the packet." But maybe the user says, “We do the same thing in several other places, and I want it to be consistent.

How do you know when you’re done?

The phone must allow the user to swipe with a finger to navigate between screens.”. Also, the dropdown prevents the user from entering invalid data." These are legitimate reasons for specifying a specific solution.

Some cautions about elicitation

Proposed new features, user requirements, or functional requirements are all considered out of scope. If your project requires extensive research, use an incremental development approach to explore the requirements in small, low-risk chunks.

Assumed and implied requirements

No assumed requirements

Finding missing requirements

You will likely never discover all the requirements for your product, but almost any software team can do a better job of eliciting requirements by applying the practices described in this chapter. Identify the prompting techniques that you think would work best and decide how you will implement them next time.

Understanding user requirements

The purpose of this approach is to describe the tasks that users will be required to perform with the system, or the user-system interactions that will produce a valuable result for some stakeholder. This understanding guides the BA to derive the necessary functionality that must be implemented to enable these usage scenarios.

Use cases and user stories

The use case should not be included in the design specifications, only the user's mental image of the interaction. The remainder of this chapter will focus on the use case technique, noting similarities and contrasts with the user story approach where appropriate.

TABLE 8-1   Sample use cases from various applications
TABLE 8-1 Sample use cases from various applications

The use case approach

Use cases provide project participants with a structure and context that a collection of user stories lacks. But user stories don't replicate that structure and rigor, so it's easier for the team to miss some acceptance tests.

Users and actors

Use cases and usage scenarios

One or more postconditions that describe the state of the system after the use case has completed successfully. A numbered list of steps indicating the sequence of interactions between the actor and the system - a dialogue - leading from the preconditions to the postconditions.

FIGURE 8-3   Partial specification of the Chemical Tracking System’s “Request a Chemical” use case.
FIGURE 8-3 Partial specification of the Chemical Tracking System’s “Request a Chemical” use case.

Use case labeling convention

Preconditions and postconditions

Normal flows, alternative flows, and exceptions

Some error conditions can affect multiple use cases or multiple steps in the normal flow of a use case. Some of the steps in an alternate flow will be the same as in the normal flow, but some unique actions are needed to accomplish the alternate path.

Dressing the use cases

Rather than being dogmatic about how much detail to include in a use case, remember your goal: to understand the user's goals well enough to allow developers to proceed with low risk of having to rework.

Extend and include

Trap Don't have long-winded debates with your colleagues about when, how, and whether to expand and include relationships. An author of a book on use cases told me that extend and include are best discussed with friends over beer.

Aligning preconditions and postconditions

Use cases and business rules

If a passenger executes a use case for selecting a new seat on the airline's website, the relevant business rules would change the passenger's airline ticket if he were to select one of those seats. When defining a use case, record the identifiers of all known business rules that affect the use case and indicate which part of the use case is affected by each rule.

Identifying use cases

As the group explored the remaining use cases in scope in the workshops, they found that some of them were related scenarios that could be consolidated into a single, more general use case. Some users suggested use cases that were not phrased as tasks, such as "Material Safety Data Sheet." A use case's name should indicate a goal the user wants to achieve, so you should start with a verb.

Exploring use cases

Sometimes a proposed use case was just a single step the actor would perform as part of the process, such as "Scan barcode". The BA needs to learn what goal the user has in mind that involves scanning a barcode. The resulting sequence of actor actions and system responses became the normal flow for the use case.

Staying in bounds

When writing the steps in the use case flow, avoid language that refers to specific user interface interactions. Also note any information that may not be visible to the users, such as the need for one system to communicate with another behind the scenes to complete the use case.

Validating use cases

Use cases often involve additional information or requirements that do not fit within any of the template sections. The CTS team created several representations of the requirements they identified: a list of functional requirements, a set of corresponding tests and analysis models, all based on use cases.

Use cases and functional requirements

Many functional requirements fall directly from the dialogue steps between the actor and the system. Some are obvious, such as “The system will assign a unique sequence number to each request.”

Use cases only

To reduce this uncertainty, consider a BA explicitly specifying the functional requirements needed to implement each use case (Arlow 1998). The chemical tracking system used the use cases primarily as a tool to reveal the necessary functional requirements.

Functional requirements only

Use cases and tests

Use case traps to avoid

Incorporating data definitions into the use cases Use case explorations naturally stimulate data discussions, considering which data elements serve as input and output during the interaction. Some use case authors include definitions of the relevant data elements in the use case specification.

Benefits of usage-centric requirements

Use Cases Users Don't Understand If users can't connect a use case to their business processes or goals, there's a problem. Identify the functional requirements that will allow the user to successfully complete each use case.

Playing by the rules

Gambar

TABLE 1-1   Some types of requirements information
FIGURE 1-1   Relationships among several types of requirements information. Solid arrows mean “are stored in”;
FIGURE 1-2   Relationships among features, user requirements, and functional requirements.
Figure 1-3 illustrates how various stakeholders might participate in eliciting the three levels of   requirements
+7

Referensi

Dokumen terkait

Requirements (Kebutuhan, Persyaratan) bagi sistem software mengatur apa yang sistem akan lakukan dan mendefinisikan batasan-batasan.. pada operasi

Keywords Requirement elicitation, Arduino development, IoT application, Software engineering INTRODUCTION A rapid IoT application nowadays allowed the needs analyse of requirements

UNIT – II Requirements Engineering for secure software: Introduction, the SQUARE process Model, Requirements elicitation and prioritization UNIT – III Secure Software Architecture

Contents Foreword v Acknowledgments ix PART I THE BASICS 1 Chapter 1 Introduction 3 Chapter 2 Separate Account Definitions 13 Chapter 3 The State of the Separate Accounts Industry

CONTENTS Introduction PART I A HORMONE AND ESSENTIAL OIL PRIMER CHAPTER 1 How to Balance Your Hormones Without Adding Hormones CHAPTER 2 The Guide to Using Essential Oils CHAPTER 3

Contents at a Glance Introduction ...1 Part I: Getting Familiar with Candlestick Charting and Technical Analysis...7 Chapter 1: Understanding Charting and Where Candlesticks Fit In

ix Contents FOREWORD xiii ACKNOWLEDGMENTS xv INTRODUCTION 1 PART I: POLITICS AND METRICS 15 Politics 15 Metrics 17 CHAPTER 1 UNDERSTANDING WHAT TYPES OF COMMUNICATION WILL BE

TABLE OF CONTENTS Acknowledgments iii Abstract iv Published Content and Contributions vii Table of Contents viii Chapter 1 1 General Introduction Chapter 2 19