American Science Institute of Technology  

 

   Requirements
Home Up Feedback Legal News

 

 

 

Purpose

The purposes of Requirements are:

  • To come to an agreement with the customer and the users on what the system should do.
  • To give system developers a better understanding of the requirements on the system.
  • To delimit the system.
  • To provide a basis for planning the technical contents of iterations.
  • To define a user-interface for the system.

To achieve these goals, Stakeholder Requests are gathered and analyzed, a Vision document, a use-case model use cases and Supplementary Specification are developed that describes what the system will do - an effort that views all stakeholders, including customers and potential users, as important sources of information (in addition to system requirements).

For a complete definition of the software requirements, use cases and Supplementary Specifications may be packaged together to define a Software Requirements for a particular "feature" or other subsystem grouping.

The Vision document states the overall goals of the project and main features of the system.

Stakeholder Requests are gathered to get a "wish list" of what different stakeholders of the project (customers, users, product champions) expect the system to include, together with information on how each request has been considered by the project.

The use-case model can serve as a contract between the customer, the users, and the system developers, which allows:

  • Customers and users to validate that the system will become what they expected.
  • System developers to build what is expected.

The use-case model consists of use cases and actors. Each use case in the model is described in detail, showing step-by-step how the system interacts with the actors, and what the system does in the use case. Use case function as a unifying thread throughout the software lifecycle; the same use-case model is used in system analysis, design, implementation, and testing.

The Supplementary Specifications are an important complement to the use-case model, because together they capture all software requirements (functional and nonfunctional) that need to be described to serve as a complete software requirements specification.

Artifact

Requirements Management Plan

Describes the guidelines used in the project for establishing the requirements documents, requirement types and their respective requirements attributes

Use-Case Modeling Guidelines

Describes the use-case modeling guidelines

Business Use-Case Model

The business use-case model is a model of the business intended functions. The business use-case model is used as an essential input to identify roles and deliverables in the organization

Glossary

The Glossary defines important terms used in the project.

Vision

The Vision is a general vision of the core project's requirements, and provides the contractual basis for the more detailed technical requirements

Stakeholder Requests

This artifact contains any type of requests a stakeholder (customer, end user, marketing person, and so on) might have on the system to be developed. It also contains references to any type of external sources to which the system must comply.

Use-Case Model

The use-case model is a model of the system's intended functions and its environment, and serves as a contract between the customer and the developers. The use-case model is used as an essential input to activities in analysis, design, and test.

Supplementary Specifications

The Supplementary Specifications capture the system requirements that are not readily capturable in the use cases of the use-case model. Such requirements include:

  • Legal and regulatory requirements and application standards.
  • Quality attributes of the system to be built, including usability, reliability, performance and supportability requirements.
  • Other requirements such as operating systems and environments, compatibility requirements, and design constraints.

Requirements Attributes

This artifact contains a repository of project requirements, attributes and dependencies to track from a requirement management perspective.

Change Request

Changes to development artifacts are proposed through Change Requests (CRs). Change Requests are used to document and track defects, enhancement requests and any other type of request for a change to the product. The benefit of Change Requests is that they provide a record of decisions, and, due to their assessment process, ensure that change impacts are understood project wide.

Use Case Storyboard

A use-case storyboard is a logical and conceptual description of how a use case is provided by the user interface, including the interaction required between the actor(s) and the system.

User-Interface Prototype

A user-interface prototype is a prototype of the user interface. For example, the prototype can manifest itself as:

  • paper sketches or pictures;
  • bitmaps from a drawing tool;
  • an interactive executable prototype (e.g., in Microsoft® Visual Basic®).

 

 

Relation to Other Workflows

The Requirements workflow is related to other process workflows.

  • The Business Modeling workflow provides an organizational context for the system.
  • The Analysis & Design workflow gets its primary input (the use-case model and the Glossary) from Requirements. Flaws in the use-case model can be discovered during analysis & design; change requests are then generated, and applied to the use-case model.
  • The Test workflow tests the system to verify the code against the Use-Case Model. Use Cases and Supplementary Specifications provide input on requirements used in planning and designing tests.
  • The Environment workflow develops and maintains the supporting artifacts that are used during requirements management and use-case modeling, such as the Use-Case-Modeling Guidelines and User-Interface Guidelines.
  • The Management workflow plans the project, develops the Requirements Management Plan, and each iteration (described in an Iteration Plan). The use-case model is an important input to the iteration planning activities.

Concepts

Traditionally, requirements are looked upon as statements of text fitting into one of the categories mentioned in Concepts: Requirements. Each requirement states "a condition or capability to which the system must conform".

To perform effective requirements management, we have learned that it helps to extend what we maintain as requirements beyond only the detailed "software requirements". We introduce the notion of requirements types to help separate the different levels of abstraction and purposes of our requirements. Each requirement type will have a unique set of attributes associated with each requirement defined at that level.

We may want to keep track of ambiguous "wishes", as well as formal requests, from our stakeholders to make sure we know how they are taken care of. The Vision document helps us keep track of key "user needs" and "features" of the system. The use-case model is an effective way of expressing detailed functional "software requirements", therefore use cases may need to be tracked and maintained as requirements, as well as perhaps individual statements within the use case properties which state "conditions or capabilities to which the system must conform". Supplementary Specifications may contain other "software requirements", such as design constraints or legal or regulatory requirements on our system. For a complete definition of the software requirements, use cases and Supplementary Specifications may be packaged together to define a Software Requirements Specification (SRS) for a particular "feature" or other subsystem grouping.

Test cases are ways of stating how we will verify what the system actually does, and therefore we may also want to track these by maintaining separate "test requirements". Similarly, we may wish to track "documentation requirements" for those requirements relating to how a technical writer may need to develop end-user support documentation and training material.

The larger and more intricate the system developed, the more expressions, or types of requirements appear and the greater the volume of requirements. "Business rules" and "vision" statements for a project trace to "user needs", "features" or other "product requirements". Use cases or other forms of modeling and other Supplementary Specifications drive design requirements, which may be further decomposed to functional and non-functional "software requirements" represented in analysis & design models and diagrams. "Test requirements" derived from the above decompose to test procedures and other testing artifacts.

Concepts: Traceability

The purpose of establishing traceability is to help:

  • Assess the project impact of a change in a requirement
  • Assess the impact of a failure of a test on requirements (i.e. if test fails the requirement may not be satisfied)
  • Manage the scope of the project
  • Verify that all requirements of the system are fulfilled by the implementation.
  • Verify that the application does only what it was intended to do.
  • Manage change.

 

Traceability helps you follow how stakeholder requests are translated into a set of key stakeholder needs and system features as specified in the Vision document and use-case model. These in turn are detailed into use cases and other requirements in the Supplementary Specifications. You then need to follow how these detailed specifications are translated into a design, how it is tested, and how it is documented for the user. For a large system, use cases and Supplementary Specifications may be packaged together to define a Software Requirements Specification (SRS) for a particular "feature" or other subsystem grouping.

A key concept in helping to manage changes in requirements is that of a "suspect" traceability link. When a requirement (or other traceability item) changes at either end of a traceability link, all links associated with that requirement are marked as "suspect". This flags the responsible worker to review the change and determine if the associated items will need to change also. This concept also helps in analyzing the impact of potential changes.

Traceabilities may be set up to help answer the following sample set of queries:

  • Show me user needs that are not linked to product features.
  • Show me the status of tests on all use cases in iteration #n.
  • Show me all supplementary requirements linked to tests whose status is untested.
  • Show me the results of all tests that failed, in order of criticality.
  • Show me the features scheduled for this release, which user needs they satisfy, and their status.

 

 

Hit Counter

Home ] Up ]

Send mail to webmaster@amscitech.com with questions or comments about this web site.
Copyright © 1997 - 2006 American Science Institute of Technology