Pre-Requirements Traceability: January 2002
Pre-Requirements Traceability: January 2002
net/publication/235353253
Pre-Requirements Traceability
CITATIONS READS
9 2,131
3 authors, including:
Hossein Saiedian
University of Kansas
174 PUBLICATIONS 1,654 CITATIONS
SEE PROFILE
All content following this page was uploaded by Hossein Saiedian on 19 February 2014.
Abstract
Requirements traceability (RT) is important for developing a high quality software sys-
tem, especially a large and critical system. In this paper, we discuss the requirements
traceability problem, the definition used today, and its importance. We then present a
detailed discussion of the problems existing with pre-requirements specification (pre-RS)
traceability and post-requirements specification (post-RS) traceability to show that most
of the RT problem lies in pre-RS traceability. Finally, we present a brief discussion of the
common tools and environments in use today and offer directions for future work.
Key words and phrases: Requirements traceability (RT), requirements engineering, Capa-
bility Maturity Model
1 Introduction
Requirements traceability (RT) can be viewed as “the ability to describe and follow the life
of a requirement, in both the forward and backward direction” [4]. It is used to capture the
relationships between requirements, design, and implementation of a system. RT not only can
be a useful solution to align system evolution with changing stakeholder needs, but it also
helps to find unexpected problems, innovative opportunities, and to lay the groundwork for
corporate knowledge management [10].
Techniques have been suggested in the research literature to address the RT problem. Their
use, however, is still not as widespread as the importance of RT suggests. This is likely because
there are still many issues to be addressed, for example, the lack of common definitions and
conflicting underlying problems [4].
According to the analysis made by Gotel et al [4], there are two different kinds of traceabil-
ities: pre-requirements specification (pre-RS) traceability and post-requirements specification
(post-RS) traceability (see Figure 1). Pre-RS traceability refers to those aspects of a require-
ment’s life prior to its inclusion in the RS. Post-RS traceability refers to those aspects of a re-
1
Requirements
Evolving Versions
Requirements
Users/Clients
Requirements Design Testing Code
Pre−Requirements Post−Requirements
Traceability Traceability
quirement’s life that result from inclusion in the RS. This distinction fits with the four kinds of
traceability links defined by Davis [1]: forward from requirements, backward to requirements,
forward to requirements and backward from requirements. The former two are included in
post-RS traceability. They link requirements to design and implementation, documenting re-
sponsibility assignment and compliance verification, to the impact analysis of a requirement.
The latter two types are included in pre-RS traceability. They document the rationale and so-
ciopolitical context from which the requirements emerge [10]. Existing tool support primarily
focuses on post-RS traceability, but most problems attributed to poor RT are found to be due
to the lack of pre-RS traceability [4]. This is likely because post-RS traceability is much better
understood than pre-RS traceability. Only pre-RS traceability, however, can provide the most
useful information about requirements to customers and stakeholders.
In practice, requirement traceability users can be divided into two groups: low-end and
high-end traceability users [10,14]. The two groups have a clear difference between their views
toward the number of participants, complexity of the system, traceability experience level,
user definition of traceability, and the application of traceability. Investigations show there are
2
various factors that influence the traceability practice of these two groups.
The remainder of this paper is organized as follows. Section 2 discusses issues related
to the RT definition and its importance. Section 3 discusses pre-RT and post-RT traceability
problems and approaches. Section 4 provides a brief introduction to the tools used in RT and
discusses their usefulness in addressing the RT problem. Section 5 provides suggestions for
related future work.
These definitions differ both in emphasis and scope and any one cannot include all concerns.
According to the IEEE standard [8], traceability refers to “the degree to which a relationship
can be established between two or more products of the development process, especially prod-
ucts having a predecessor-successor or master-subordinate relationship to one another; for
3
example, the degree to which the requirements and design of a given system element match.”
This definition is viewed from a high-level of the software development process.
Gotel provided a definition that is most often used today: “the ability to describe and follow
the life of a requirement, in both forwards and backwards directions (for example, from its
origins, through its development and specification, to its subsequent deployment and use, and
through all periods of on-going refinement and iteration in any of these phases)” [4]. This
definition covers all the aspects mentioned above, and corresponds to the division of pre-RS
traceability and post-RS traceability.
RT suggests that the life of each requirement can be understood from the origin to development
and specification, subsequent deployment and use, and adaptive to ongoing refinement and
iteration. Lack of RT or capturing insufficient or unstructured traces in a system will often result
in a loss of knowledge if key individuals leave the project- a common occurrence in today’s
software development community. It can also cause miscommunication, misunderstanding
and incorrect decisions, which may decrease the overall quality of the system and increase cost
and time to delivery [2]. In addition, RT is very important for version control and configuration
management (VC/CM) of the design artifacts that are produced throughout the product lifecycle
[9]. Requirements traceability should not be viewed as an option. It is essential to ensure a
customer’s satisfaction by providing them a documented means by which to prove that all
stated requirements are met and that the job is complete [15].
There is an important relationship between RT and the Software Engineering Institute’s Ca-
pability Maturity Model (SEI CMM). Within the SEI CMM, level two of maturity model stipulates
the need for understandable traces. Higher levels also require a capability for traces to plans
resulting from a defined process. Ramesh [14] identifies two kinds of traceability user organi-
zations: low-end users and high-end users. Low-end users treat traceability as a costly defense
against criticism and liability lawsuits and view traceability as a mandate from project sponsors.
High-end users see traceability as a necessary investment in information system engineering,
and view traceability as an important component of quality systems engineering. The trace-
ability practices of the two groups are different. Low-end users use simple schemes to model
requirements dependencies, allocate requirement components to system components and link
to compliance verification procedures. High-end users employ much complex schemes. They
4
use the information in richer ways and emphasize the capture of process related traceability
information. Although there are many different variances between these two groups, some or-
ganizations may have mature traceability practice even with predominantly low-end practices
[14].
In fact, many standards for system development mandate that RT should be practiced. For
example, the US DoD Standard 2167A (now MIL-STD-498) insists “that the functional require-
ments which are identified as a part of the functional baseline be traceable directly to specific
capabilities within the allocated baseline, which must then be directly traceable to specific ca-
pabilities within the product baseline” [16]. This standard requires that system requirements
should be traceable throughout the process of development, although it is not a full implemen-
tation of RT.
There are issues associated with RT- some of them political. For example, concerns may
arise among individuals on the development team because management has the opportunity
to use the information provided by system development personnel in performance evaluations
[15]. To counter this problem team responsibility may required, which means all products must
be considered team provided, so that no individual has to be concerned with personal negative
reflection.
Another issue can be the high cost of traceability. Planning for increased workload and doc-
umentation are required to implement RT. The initial budget required may be several times that
of system development without traceability processes yet having the same size and complexity.
Training various members of an organization on the use of the needed tools/environment is
another cost to be considered. Management may view these costs as contributing to the reduc-
tion of the total lifecycle costs due to development of a higher quality product with reduced
maintenance [15] (especially for high-end users). This problem can be mitigated by training
members during the development of relatively small and less time-sensitive projects to help
them become familiar with the process and tools needed to realize RT. Before we can do this,
however, we should make clear which kind of information should be recorded and traced. This
topic is discussed below.
It is hard to reach a consensus on what information should be captured and used as a part of a
traceability scheme. This is mainly because traceability changes with the stakeholders’ view of
5
the system. A stakeholder could be the program sponsor (e.g. customer), the project manager,
the system analyst or designer, the test engineer, system maintenance personnel, or the end
user of the system [15]. During the software lifecycle, the stakeholders’ views of traceability of-
ten change. Some of these views overlap, some of them conflict. For the maintenance engineer,
traceability means how the change of requirements may affect the system. To the customer,
traceability could mean making sure whether or not requirements have been satisfied.
There are factors that decide the kind of project and information that should be traced,
such as the customer requires it, the project is complex, different types of documentation
and their interrelationships are required, assurance that the system built just contains the
requirement claimed, or the system is safety critical [17]. These, however, seem too trivial and
project-specific. We need a higher-level overview of the traceability information.
During the process of requirements engineering, the task should proceed along three di-
mensions: managing the convergence of stakeholders’ interests toward agreement on critical
system goals and constraints; achieving sufficient shared understanding of the issues involved
in realizing the system vision; and documenting understanding in adequate representation
formats. RT should document all these dimensions of the requirements engineering process
[10]. There is a similar description of these three dimensions in the requirement engineering
process, which consists of:
In the representational dimension, we must capture linkages between the documents produced
during the requirements process. From a cognitive perspective, the trace should capture con-
ceptual objects. Also the trace should capture the human cooperation in the design process
about different stakeholders’ contribution to the development process.
6
In addition, the relations between these kinds of information (e.g. dependencies that exist
between the recorded trace objects) should be recorded. The actual process performance, such
as relating information between the process steps and the agents (human/tools) by which it
was produced, should also be traced [10,13]. Most of the tools/environments only support
some aspects of this three-dimension framework.
On the other hand, not all development projects need traceability in reality, e.g., a require-
ment prototype with a very short development cycle [17] may not need such kind of information.
There are two basic types of RT: pre-RS traceability and post-RS traceability. These refer to re-
quirement production and requirements deployment, respectively. What kind of pre-RS trace-
ability should be dealt with has neither been well understood nor fully supported. Having
insufficient pre-RS traceability becomes the main RT problem faced by both providers and end-
users [4].
Recent research focuses on pre-RS traceability. Most approaches consider different aspects
of pre-RS traceability, for example, DOORS from QSS. Other approaches focus on a particular
aspect of pre-RS traceability, e.g., contribution structure. This approach is based on modeling
the dynamic contribution structures underlying the requirements artifacts. The structures can
be defined using information about the agents that have contributed to the production of these
artifacts, and the traceability relations between the artifacts [5]. This method has been used in
some industrial projects and has helped in identifying the right people to help rectify matters
where problems of misunderstanding were found to exist. These information are valuable for
determining work that should be allocated in future projects and requirement reuse [6].
Considering the history and functionality of existing systems is important to help avoid
repeating failures or omitting important functionalities. Many requirements engineering ap-
proaches began to consider two categories of conceptual models that consisted of a current-
state model and a desired-state model. The latter refers to the requirements for a future system.
Based on this concept, another approach captures one special kind of requirements traceability
called extended traceability. By recording concrete system usage scenarios using rich media
(for example video, speech, graphic and images) one can trace back to a concrete instance exam-
ple from the real world, and trace in a very fine-grained manner showing the relations between
7
arbitrary parts of conceptual models to arbitrary parts of real world observations [7].
A requirements engineering environment called PRO-ART (Process and RepOsitory based
Approach for Requirements Traceability) uses a different approach and provides a compre-
hensive framework for the three-dimension trace information structure. It attempts to use a
three-dimensional framework to define information to be recorded. A trace-repository for trace
retrieval is also used. During the establishment of this repository, the Information Resource
Dictionary Standard (IRDS, ISO-IEC 10027) is used to build an information resource dictionary
(IRD). Based on the IRDS, a generic trace structure for a trace repository, based on the three
dimensional structure of requirements engineering, can be set up. A tool has also been built to
facilitate the automated trace capture. Finally, traces captured by the PRO-ART environment
consist of three kinds of information: the product produced, the dependencies between prod-
uct parts and the human agent, and the tool actions by which the trace was captured [13]. The
information recorded in the central repository can give important information to requirement
engineers and support consistent change integration.
There are many tools or environments that can be helpful in providing for traceability of re-
quirements. These include cross-referencing schemes, key phrase dependencies, templates,
RT metrics, matrix sequences, hypertext, constraint networks, and more. Some form of RT can
result from using certain languages, models and methods for development. In addition, many
commercial tools and research products embody manual and automated forms of the above
tools.
With increasing agreement that RT is a critical factor in requirements engineering, more
and more tools/environments are becoming available to support RT. The International Council
on Systems Engineering (INCOSE) has a survey on the current Requirements Management (RM)
Tools which include those based on relational database systems such as ARTS, Analyst Studio
(RequisitePro) v2000, icCONCEPT RTM, and those based on object-oriented database system
such as DOORS, RDD 100, and SLATE [11]. Most environments offer static and dynamic analysis
mechanisms to check inconsistencies and incompleteness. These environments support a set
of requirement management activities and support at least some kind of traceability analysis.
All these tools claim to support three common aspects of traceability:
8
• Identifying inconsistencies: The tool allows the user to identify inconsistencies such as
unlinked requirements or system elements (orphans) (e.g., DOORS4.0 can identify ob-
jects/requirements with no links at all, with no outward links or with no incoming links).
These can also be conditional on other data types. For example, show all unlinked tests
that have not yet been performed;
• Visibility into existing links from source to implementation: With the requirement links
in place, the user has the ability to follow the links to see where they come from and
where they go. For example, in Analyst Studio (RequisitePro) v2000, traceability trees are
provided to view the complete path of relationships. A “Requirement Go To” feature aids
navigation;
• Verification of a requirement (was it done, how was done): Throughout the life of the
project, the requirement management tool will be used to verify that the requirements
have been met. The tool should provide the ability to document the fact that the require-
ment was fulfilled, how it was done, and who was responsible. For example, in SLATE 4.0,
notes and attributes can be used to verify that requirements have been met. In addition,
verification status can be monitored by the system to automatically trigger events based
on the state of the database. For example, if a requirement has changed or failed a test,
project personnel can be notified via email [11].
9
user and support for heterogeneous computing environments is lacking [15]. Other approaches
include the PRIME-RT framework, which is based on a contribution structure [2]; a web-based
requirements tracing system-STAR-Track [15]; and an object-oriented tool- TOOR (Traceability
of Object-Oriented Requirements) [12], etc. Although most of these tools are still considered
experimental, they give some useful suggestion towards the future direction of RT and may
soon be integrated into requirements management environments.
We have presented a brief discussion about requirements traceability (RT) and related issues
and discussed the pre-RS traceability post-RS traceability problems. The information can be
useful for organizations that seek to transition from low-end to high-end practices. In fact,
an all-encompassing solution to the traceability problem that includes pre-RS traceability and
post-RS traceability is likely impossible. Most problems due to poor traceability are due to
inadequate pre-RS and efforts must be undertaken to improve.
Although RE has sometimes been viewed as a burden, more organizations are treating it as
necessary in building large and complex software systems, especially in those environments
where the stakeholders’ viewpoint often changes. Today, the size and scope of software sys-
tems are increasing rapidly. Projects with more than 1,000 requirements may have been treated
as large projects only a few years ago, but today they are treated as small and undertaken by
small organizations. In order to keep up with the changes related to software requirements, it
is becoming necessary to build automatic traceability models and tools. Since more and more
software environments are available today, and large projects often need dynamic reference
and link information across different platforms [14], research work must be accomplished in
this direction. Web technologies may offer a good solution in terms of integration with existing
tools and databases.
References
[1] A. Davis. The analysis and specification of systems and software requirements. In Systems
and Software Requirements Engineering. IEEE Computer Society Press, pp. 119–144, 1990.
[2] R. Domges and K. Pohl. Adapting traceability environments to project-specific needs. Com-
munications of the ACM, Vol. 41, No. 12. pp. 54–62, December 1998.
10
[3] F. Gardner. RayTracer: traceability for software engineering. In Third Symposium on As-
View publication stats
[4] O. Gotel and A. Finkelstein. An analysis of the requirements traceability problem. In Pro-
ceedings of the First International Conference on Requirements Engineering. pp. 94–101,
1994.
[7] P. Haumer, K. Pohl, K. Weidenhaupt, and M. Jarke. Improving reviews by extended traceabil-
ity. In Proceedings of the 2nd Annual Hawaii International Conference on Systems Sciences.
pp. 10, 1999.
[8] IEEE guide for developing system requirements specifications, IEEE STD 1233-1996, 6 June
1996.
[10] J. Matthias, Requirements tracing. Communications of the ACM, Vol. 41, No. 12. pp. 32–36,
December 1998.
[12] F. Pinheiro and J. Goguen. An object-oriented tool for tracing requirements. IEEE Software,
Vol. 13 No. 2, pp. 52–64, 1996.
[15] X. Song, B. Hasling, G. Mangla, and B. Sherman. Lessons learned from building a Web-
based requirements tracing system. In Third International Conference on Requirements
Engineering. pp. 41–50, 1998.
[16] U.S. Department of Defense, Military standard: Defense systems software development,
DoD STD-2167A, February 1988.
[17] R. Watkins and M. Neal. 1994. Why and how of requirements tracing. IEEE Software, Vol.
11, No. 4, pp. 104–106, July 1994.
11