Requirements Tool
- Requirements Tool
- a software tool
that automates all or part of the performance of one or more
tasks
that are primarily related to the
requirements
As illustrated in the preceding figure, Requirements Tool is part of the following inheritance hierarchy:
- Type: Concrete
- Superclass: Tool
- Subclasses:
- Requirements Identification (Elicitation) Tool
- Requirements Analysis (Modeling) Tool
- Requirements Prototyping Tool
- Requirements Specification Tool
- Requirements Management / Reuse Tool
- Example Instances:
- Other listings of requirements tools include:
The typical responsibilities of a Requirements Tool are to:
- Automate requirements engineering tasks that were previously performed manually.
- Thereby increase the:
- Quality of requirements-related work products.
- Productivity of teams and roles when working on requirements-related work products.
- Requirements Engineering Objectives, which are related to fulfilling requirements engineering tasks
- Other Functional Objectives, which are related to fulfilling tasks of
other activities that are nonetheless strongly related to requirements.
- Quality Objectives, which are related to required quality factors of the tools.
The typical responsibilities of requirements tools are to enable the
requirements team (and other
stakeholders)
to better perform one or more of the following
requirements engineering tasks:
- Requirements Identification:
- Identify requirements via keywords (e.g., shall, must, will).
- Capture requirements (e.g., input raw requirements via forms and lists, shared workspaces and bulletin boards, instant messaging).
- Requirements Reuse:
- Locate relevant reusable requirements.
- Import existing reusable requirements.
- Requirements Analysis:
- Enable modeling (e.g., use case modeling, object
modeling, data modeling, state modeling, function modeling).
- Draw and maintain diagrams.
-
Requirements Prototyping:
- Requirements-based simulation.
- Automatic design and code generation.
- Requirements Specification:
- Automate requirements specification production.
- Partially automate the production of related work
products (e.g., endeavor glossary and business object model).
- Publish and communicate requirements specifications and reports.
- Support formal (e.g., ANSI, DOD, FAA, IEEE, ISO, NASA)
and informal (e.g., OPF) documentation content and format standards.
- Support requirements access and editing (e.g.,
directly, via filters, or via ad-hoc metadata-based queries).
- Notify stakeholders when relevant requirements change (e.g., via publish/subscribe).
- Requirements Management:
- Support the requirements model (e.g., requirements type hierarchy, relationships between requirements).
- Store requirements (e.g., text, diagrams, graphs, tables, spreadsheets).
- Store requirements characteristics (attributes, metadata).
- Store relationships between requirements.
- Trace requirements (from sources, to architectures, designs, implementations, and tests).
- Prioritize requirements for scheduling.
- Identify requirements baselines.
- Assign requirements to baselines.
Typical additional functional responsibilities of requirements tools are to enable other
teams to better perform one or more of the following tasks:
Typical quality responsibilities of requirements tools include:
- Interoperability.
Requirements tools often overlap with and should be
interoperable and integrated with:
- UpperCASE modeling tools to support the storage of the results of requirements analysis
(e.g., use case models and associated use case, sequence, and activity diagrams).
- Configuration management tools to avoid duplication of configuration and version control.
- Documentation tools to provide for the automatic generation of requirements specifications.
- Test tools to support the traceability of requirements to test cases.
- Security.
The requirements of sensitive applications (e.g.,
military applications, business-critical applications) may
themselves be highly confidential and require adequate
security from international and industrial spies.
- Timeliness.
Users of the requirements work products may need timely
notifications when relevant requirements are changed.
- Usability.
Requirements tools should be highly usable to:
- Their primary users, the members of the requirements team.
- The various users of the requirements work products,
who may want to directly access the requirements repository (e.g., with ad-hoc queries).
- Change notification is a critical feature of requirements
tools due to the iterative, incremental, and parallel nature of requirements engineering.
- The requirements tool should support collaborative
development by multiple distributed users because of the team
and distributed nature of requirements engineering.
- Requirements specification tools should support all relevant:
- Media (e.g., paper, electronic, Web).
- Data formats (e.g., MS Word, Rich Text Format, Interleaf, Framemaker, HTML, XML).
- Formal (e.g., ANSI, DOD, FAA, IEEE, ISO, NASA) and
informal (e.g., OPF) documentation content and format standards.
- The requirements database should store individual
requirements as individual objects to provide adequate
granularity for updates and change notification. This
typically implies that requirements are directly entered into
the tool and that the requirements specifications are
automatically generated from the tool’s database
(requirements repository) via templates that conform to the
associated specifications’ content and format standards.