Gotel 2011
Gotel 2011
1 Introduction
The role of traceability was recognised in the pioneering NATO working conference
held in 1968 to discuss the problems of software engineering (Naur and Randell,
1969). One of the working papers in this conference examined the requirements for
an effective methodology of computer system design and reported on the need to be
able to ensure that a system being developed actually reflects its design. In a critique
of three early projects focused on methodology, each was praised for the emphasis
they placed on making “the system that they are designing contain explicit traces of
the design process” (Randell, 1968).
Traceability was subsequently noted as a topic of interest in one of the earli-
est surveys on the state of the art and future trends in software engineering (Boehm,
1976), and its practice was certainly evident in those domains concerned with devel-
oping early tool support (Dorfman and Flynn, 1984; Pierce, 1978). By the 1980s,
traceability could be found as a requirement in a large number of national and
international standards for software and systems development, such as the high-
profile DOD-STD-2167A (Dorfman and Thayer, 1990). Published research began
to proliferate and diversify in the area of traceability in the late 1990s, spurred some-
what by renewed interest in the topic arising from two newly formed International
Requirements Engineering professional colloquia, with two early papers focusing
on the issues and problems associated with traceability (Ramesh and Edwards,
1993; Gotel and Finkelstein, 1994), the latter providing for the first systematic
analysis of the traceability problem. The topic of traceability continues to receive
growing research attention in the twenty-first century, with a particular focus on
automated trace generation (Cleland-Huang et al., 2007; Hayes et al., 2006) and
with concomitant advances in model-driven development (Aizenbud-Reshef et al.,
2006; Galvao and Goknil, 2007; Winkler and von Pilgrim, 2010).
O. Gotel (B)
New York, NY 10014, USA
e-mail: [email protected]
At the most fundamental level, traceability is simply the potential to relate data that
is stored within artifacts of some kind, along with the ability to examine this rela-
tionship. The ability to achieve traceability therefore depends upon the creation of
navigable links between data held within artifacts that are otherwise disconnected.
The value of traceability lies in the many software and systems engineering activities
and tasks that the information provided through such interrelations can enable, such
as change impact analysis, coverage analysis, dependency analysis, etc. (Gotel and
Finkelstein, 1994; Lindvall and Sandahl, 1996; Ramesh and Jarke, 2001); tracing
can provide visibility into required aspects of the software and systems develop-
ment process and contribute to a better understanding of the software system under
development.
This section defines two underlying terms, trace artifact and trace link, that are
the building blocks of traceability. It subsequently uses these definitions to clarify
the term trace. Based upon these definitions, the terms traceability and tracing are
then defined.
1 Section 3 of this chapter includes reproduced material from Center of Excellence for Software
Traceability Technical Report #CoEST-2011-001, with permission. Please direct any feedback on
this material via the CoEST website (http://www.coest.org).
2 Version 1.0 of the traceability glossary is provided as an appendix to this book and the latest
version of the glossary is maintained at http://www.coest.org. Please note that all glossary terms
are defined using U.S. English.
Traceability Fundamentals 5
Three terms closely associated with trace artifact include trace artifact type,
source artifact and target artifact. The trace artifact type serves to classify the
nature and function of the artifact, and is usually a recognised and “documented”
by-product of the software and systems development process. The terms source arti-
fact and target artifact serve to characterise the role of a particular trace artifact in a
specified trace.
Trace artifact type – A label that characterizes those trace artifacts that
have the same or a similar structure (syntax) and/or purpose (semantics). For
example, requirements, design and test cases may be distinct artifact types.
Source artifact – The artifact from which a trace originates.
Target artifact – The artifact at the destination of a trace.
A trace link is a single association forged between two trace artifacts, one com-
prising the source artifact and one comprising the target artifact. This definition of
trace link implies that the link has a primary direction for tracing, from the source
artifact to the target artifact. Directionality between the two trace artifacts provides
for the ability to traverse the trace link, or to follow it, so as to associate the two
6 O. Gotel et al.
pieces of data. It is this juxtaposition that is sought through traceability, rather than
the pure retrieval of one piece of data. In practice, however, every trace link can be
traversed in two directions, so the trace link also has a reverse trace link direction
and is effectively bidirectional, as illustrated in Fig. 1.
Primary trace link direction – When a trace link is traversed from its
specified source artifact to its specified target artifact, it is being used in
the primary direction as specified. Where link semantics are provided, they
provide for a way to “read” the traversal (e.g., A implements B).
Reverse trace link direction – When a trace link is traversed from its speci-
fied target artifact to its specified source artifact, it is being used in the reverse
direction to its specification. The link semantics may no longer be valid, so a
change from active to passive voice (or vice-versa) is generally required (e.g.,
if A replaces B then B is replaced by A).
Bidirectional trace link – A term used to refer to the fact that a trace link
can be used in both a primary trace link direction and a reverse trace link
direction.
Two interrelated terms that are closely associated with trace link are trace link
type and link semantics. The trace link type serves to classify the nature and function
Traceability Fundamentals 7
of the trace link. It is usually characterised according to the meaning of the rela-
tionship between the two artifacts that the link associates, so the trace link type is
generally defined in terms of the link’s semantic role. The trace link type is a broader
term that may define a collection of links with the same link semantics.
Trace link type – A label that characterizes those trace links that have the
same or similar structure (syntax) and/or purpose (semantics). For example,
“implements”, “tests”, “refines” and “replaces” may be distinct trace link
types.
Link semantics – The purpose or meaning of the trace link. The link seman-
tics are generally specified in the trace link type, which is a broader term that
may also capture other details regarding the nature of the trace link, such as
how the trace link was created.
The term trace relation is frequently used interchangeably with the term trace
link in many publications. In reviewing the traceability fundamentals and encour-
aging the more consensual use of terminology within the traceability community,
the proposal is to differentiate the two terms in the future. Following from database
theory, a trace relation describes all the trace links that are specified between two
defined artifact types acting as source artifacts and target artifacts. It is the trace
relation that is captured in the commonly used traceability matrix.
Trace relation – All the trace links created between two sets of specified trace
artifact types. The trace relation is the instantiation of the trace relationship
and hence is a collection of traces. For example, the trace relation would be
the actual trace links that associate the instances of requirements artifacts with
the instances of test case artifacts on a project. The trace relation is commonly
recorded within a traceability matrix.
Traceability matrix – A matrix recording the traces comprising a trace
relation, showing which pairs of trace artifacts are associated via trace links.
2.3 Trace
Use of the term trace has led to some misunderstanding in the traceability commu-
nity since it has two distinct meanings dependent upon whether the term is being
used as a noun (i.e., “a mark remaining” (OED, 2007)) or as a verb, (i.e., “tracking
or following” (OED, 2007)). When used in a software and systems engineering
context, the meanings are often used interchangeably whereas they need to be
distinguished. “Trace” can, therefore, be defined in two ways.
8 O. Gotel et al.
When used as a noun, the term “trace” refers to the complete triplet of trace
elements that enable the juxtaposition of two pieces of data: the source artifact,
the target artifact and the trace link. Additional information, in the form of trace
attributes, may qualify properties of the overall trace or of each of the three ele-
ments. Such traces can either be atomic or chained (see Fig. 2). Where chained,
the trace links are strung together by the source and the target trace artifacts that
they connect, the target artifact for one trace becoming the source artifact for the
subsequent trace, to form a series of data juxtapositions.
Trace element – Used to refer to either one of the triplets comprising a trace:
a source artifact, a target artifact or a trace link.
Trace attribute – Additional information (i.e., meta-data) that characterizes
properties of the trace or of its individual trace elements, such as a date and
time stamp of the trace’s creation or the trace link type.
A trace (chained)
A trace (atomic)
When used as a verb, the term “trace” (i.e., to trace) is associated with the activity
of tracing (see Section 2.5).
2.4 Traceability
Traceability is the potential for traces (as defined above in the noun sense) to be
established (i.e., created and maintained) and used. The challenge for traceability is
that each of the component elements (i.e., the trace artifacts and trace links) needs
to be acquired, represented and stored, and then subsequently retrieved as a trace
to enable software and systems engineering activities and tasks. Both the time and
the manner in which traces are established and brought together for use will depend
upon the purposes to which the traceability is put. Consequently, traces exist within
their own life cycles and can (ideally) be reused in different contexts. The type and
the granularity of the trace artifacts, and the semantics of the trace link, are therefore
details that are best determined on a project-by-project basis. They could perhaps
even be determined on a moment-to-moment basis in relation to an overarching
traceability strategy. It is this process through which traces come into existence
and eventually expire that influences the definition of a generic traceability process
model in Section 3.
2.5 Tracing
Tracing implies undertaking all those activities required to put traceability in place,
in addition to all those activities that exploit the results.
Tracing activities demand some form of agency, and leads to the three associ-
ated terms of manual, automated and semi-automated tracing when referring to the
nature of the activity that puts the traceability in place.
Figure 3 depicts a generic traceability process model. It shows the essential activ-
ities that are required to bring traces into existence and to take them through to
eventual retirement. Traces are created, maintained and used, all within the context
of a broader traceability strategy. This strategy provides the detail of stakehold-
ers’ needs, decisions regarding mechanism and automation, and also chains atomic
traces in some agreed way to enable required activities and tasks. Continuous feed-
back is a critical aspect of the entire process to enable the traceability strategy to
evolve over time. The four key activities of this generic traceability process model
are described in the following sub-sections.
Creating Using
Maintaining
Ensuring that the traceability is then established as planned, and yet can adapt
to remain effective as needs evolve and as a project’s artifacts change, is also the
province of traceability strategy. Determining how the traceability will be provi-
sioned such that the requisite quality can be continuously assured further demands
analysis, assessment and potential modification of the current traceability solution.
Assessing the quality and the execution of the traceability solution, and implement-
ing a feedback loop to improve it, is a critical part of the traceability strategy for a
project; it needs to develop and leverage historical traceability information.
When creating a trace, the elements of the trace have to be acquired, represented and
then stored in some way, as illustrated in Fig. 5. Reference models and classifica-
tion schemes characterising different types of trace link and trace artifacts drive the
traceability creation process, as usually defined within the traceability information
model of the overarching traceability strategy.
Creating
Traceability information
On-going
cycle Trace stored (physical storage)
Feedback
/ Valid
While project artifacts are generally pre-existing on a project, the links between
them may not yet be defined. Techniques to support the creation of trace links
can range from manual to automated approaches, each with differing degrees of
efficiency and effectiveness. The differentiating factor is often whether the trace
links are created concurrently with the forward engineering process (i.e., trace
capture) or at some point later (i.e., trace recovery). Validation is therefore critical
to the viability of the traceability creation process, regardless of how trace links are
initially created, as it is concerned with determining and assuring the credibility of
the trace as a whole.
Maintaining
Maintenance
planned/ New trace(s)
required Retrieving Trace Analyzing Trace required
Trace
Traceability information retrieved Rendered visible
Update
Updates identified for this trace required
to other
trace(s)
Updating Trace (propagation)
To maintain a trace, it needs to be retrieved and the nature of the change anal-
ysed to determine what update is necessary, as illustrated in Fig. 6. This may
necessitate the propagation of changes and/or the creation of entirely new traces.
Updates need to be performed, where applicable, recorded and verified. Feedback
on the maintenance process is also essential for evolving the overarching traceabil-
ity strategy. As per traceability creation, traces can be maintained continuously or
on-demand.
The availability and usefulness of traces has to be ensured to allow for their ongo-
ing use throughout the software and systems development life cycle, potentially
Traceability Fundamentals 17
Any atomic trace is likely to play a role in the context of many use contexts. To
use a trace in isolation, or as a constituent part of a chain, it needs to be retrieved
and rendered visible in some task-specific way, as suggested in Fig. 7. An important
component of the use process is assessing the quality of the traceability that is pro-
vided in terms of the fitness for purpose with respect to the task or activity for which
the traceability is required. Such information provides a feedback loop to improve
the overall traceability strategy.
Using
Use
requested Retrieving Trace Rendering Trace
Trace
retrieved According to the task
Traceability information at hand
On-going
cycle
In Fig. 8, the potential to trace from the requirement through to the code is ver-
tical traceability, linking artifacts at differing levels of abstraction to accommodate
life cycle-wide or end-to-end traceability. Any potential to trace between versions of
the requirement or versions of the code is horizontal traceability, linking artifacts at
the same level of abstraction at different moments in time to accommodate version-
ing and rollback. These two types of tracing, vertical and horizontal, employ both
forward and backward tracing.
Two additional types of traceability are more conceptual in nature, and these can
employ each of the above tracing types in some combination. Post-requirements
(specification) traceability comprises those traces derived from or grounded in the
requirements, and hence explicates the requirements’ deployment process. Pre-
requirements (specification) traceability comprises all those traces that show the
derivation of the requirements from their sources, and hence explicates the require-
ments’ production process. Only post-requirements traceability is evident in Fig. 8
since the requirement is the earliest development artifact available; this is the most
common form of traceability in practice.
20 O. Gotel et al.
• Do we create an atomic trace for each class method or for the cluster of methods
within a class? This is an issue of trace granularity.
Trace granularity – The level of detail at which a trace is recorded and per-
formed. The granularity of a trace is defined by the granularity of the source
artifact and the target artifact.
• Do the three methods in the Display class fully satisfy the requirement? This is
a question related to completeness. Does the trace then lead to the right code?
This is a question of correctness. Is the trace up to date? This depends upon
whether the traced artifacts reflect the latest project status. All of these questions
are associated with the concept of traceability quality.
• As Fig. 8 suggests, traces typically associate artifacts that are semantically very
different, so the use of natural language alone to derive a trace link cannot always
be trusted. For example, the play transition in the behavioural Statechart of Fig. 8
does not trace to the play method in the class diagram, or does it? Open issues
in traceability research and practice have led to the formulation of a set of trace-
ability challenges by the traceability community, and work is now underway to
develop a Traceability Body of Knowledge (TBOK).
5 Conclusions
This chapter has defined terminology and concepts that are fundamental to the
discipline of traceability. This includes the essential terms of trace, trace artifact,
trace link, traceability and tracing in Section 2, along with a number of interrelated
and dependent terms. The chapter has also described a generic traceability process
model in Section 3 and characterised the basic activities involved in the life cycle of
a trace. This includes a consideration of the activities comprising traceability strat-
egy, traceability creation, traceability maintenance and traceability use. In Section 4,
the chapter distinguishes between basic types of traceability and explains some key
associated concepts.
The chapter is supplemented by an extensive glossary that has been developed
and endorsed by members of the traceability community. This glossary contains
additional terms and can be found as an appendix to this book.
References
Aizenbud-Reshef, N., Nolan, B.T., Rubin, J., Shaham-Gafni, Y.: Model traceability. IBM Syst. J.
45(3), 515–526 (2006, July)
Boehm, B.W.: Software engineering. IEEE Trans. Comput. c-25(12), 1226–1241 (1976,
December)
22 O. Gotel et al.
Cleland-Huang, J., Settimi, R., Romanova, E., Berenbach, B., Clark, S.: Best practices for
automated traceability. IEEE Comput. 40(6), 27–35 (2007, June)
Dorfman, M., Flynn, R.F.: ARTS – An automated requirements traceability system. J. Syst. Softw.
4(1), 63–74 (1984, April)
Dorfman, M., Thayer, R.H.: Standards, Guidelines, and Examples on System and Software
Requirements Engineering: IEEE Computer Society Press Tutorial. IEEE Computer Society
Press, Los Alamitos, CA (1990)
Galvao, I., Goknil, A.: Survey of traceability approaches in model-driven engineering. In:
Proceedings of the 11th IEEE International Enterprise Distributed Object Computing
Conference, Annapolis, MD, USA, 15–19 Oct, 2007, pp. 313–324.
Gotel, O., Finkelstein, A.: An analysis of the requirements traceability problem. In: Proceedings of
the 1st IEEE International Conference on Requirements Engineering, Colorado Springs, CO,
USA, 18–22 Apr, 1994, pp. 94–101.
Huffman Hayes, J., Dekhtyar, A., Sundaram, S.: Advancing candidate link generation for require-
ments tracing: The study of methods. IEEE Trans. Softw. Eng. 32(1), pp. 4–19 (2006,
January)
Lindvall, M., Sandahl, K.: Practical implications of traceability. Softw. Pract. Exp. 26(10),
1161–1180 (1996, October)
Mäder, P., Gotel, O., Philippow, I.: Getting back to basics: Promoting the use of a traceability infor-
mation model in practice. In: Proceedings of the 5th International Workshop on Traceability in
Emerging Forms of Software Engineering, Vancouver, BC, Canada, 18 May, 2009a.
Mäder, P., Gotel, O., Philippow, I.: Motivation matters in the traceability trenches. In: Proceedings
of 17th IEEE International Requirements Engineering Conference, Atlanta, GA, USA, 31
Aug–4 Sept, 2009b, pp. 143–148.
Naur, P., Randell, B. (eds.): Software engineering: Report of a conference sponsored by the NATO
Science Committee, Garmisch, Germany, 7–11 October 1968, Brussels, Scientific Affairs
Division, NATO (Published 1969)
The Oxford English Dictionary: Online Version, Oxford University Press, Oxford. http://www.oed.
com. Accessed on January 2007
Pierce, R.: A requirements tracing tool. ACM SIGSOFT Softw. Eng. Notes. 3(5), pp. 53–60 (1978,
November)
Ramesh, B., Edwards, M.: Issues in the development of a requirements traceability model. In:
Proceedings of the IEEE International Symposium on Requirements Engineering, San Diego,
CA, USA, 4–6 Jan 1993, pp. 256–259.
Ramesh B., Jarke M.: Towards reference models for requirements traceability. IEEE Trans. Softw.
Eng. 27(1), 58–93 (2001, January)
Randell, B.: Towards a methodology of computing system design. In: Naur, P., Randell, B. (eds.)
NATO Software Engineering Conference, 1968, Report on a Conference Sponsored by the
NATO Science Committee, Garmisch, Germany, pp. 204–208 (7–11 October 1968). Brussels,
Scientific Affairs Division, NATO (Published 1969)
Winkler, S., von Pilgrim, J.: A survey of traceability in requirements engineering and model-driven
development. Softw. Syst. Model. 9(4), pp. 529–565 (2010, September). Springer (Published
on line December 22, 2009)