Requirements Implementation in Embedded Software Development
Requirements Implementation in Embedded Software Development
Requirements Implementation in Embedded Software Development
Tätä julkaisua myy Denna publikation säljs av This publication is available from
Juho Jäälinoja
VTT TIETOPALVELU VTT INFORMATIONSTJÄNST VTT INFORMATION SERVICE
PL 2000 PB 2000 P.O.Box 2000
02044 VTT 02044 VTT FIN–02044 VTT, Finland
Puh. (09) 456 4404 Tel. (09) 456 4404 Phone internat. +358 9 456 4404
Faksi (09) 456 4374 Fax (09) 456 4374 Fax +358 9 456 4374
Requirements implementation in
embedded software development
Juho Jäälinoja
VTT Electronics
ISBN 951–38–6370–0 (URL: http://www.vtt.fi/inf/pdf/)
ISSN 1455–0849 (URL: http://www.vtt.fi/inf/pdf/)
Copyright © VTT Technical Research Centre of Finland 2004
Abstract
Development of correct requirements at the beginning of a software project is
considered an important precondition for successful software development.
Moreover, implementing these requirements correctly during the software
development is arguably just as important. Rigorous implementation of
requirements in embedded software development is especially critical, since
requirements affect both software and hardware. The goal of this research is to
identify elements for effective requirements implementation in embedded
software development.
To validate the feasibility of the developed framework, two case studies were
carried out within embedded software development organisations. The validation
was conducted by making a current state analysis and by suggesting
improvements based on the developed requirements implementation framework.
The results from the case studies indicated that the framework was a useful
foundation for improving the organisations' requirements implementation
practices.
3
Preface
This research was conducted at VTT Electronics in the MOOSE (software
engineering MethodOlOgieS for Embedded systems) project. The project's goal
was to improve the integration of available tools, techniques, methods, and
processes involved in embedded software development. The project started at
the beginning of 2002 and I joined the project a year later. In the project I had an
opportunity to study and write my graduate thesis on requirements and
embedded software development. This publication is based on that thesis. I must
sincerely thank VTT Electronics and other partners in the project for allowing
me to write the thesis as part of the project.
I wish to thank all the people at VTT Electronics for their support. Especially, I
would like to thank Ms. Päivi Parviainen for competent guidance throughout the
study. Furthermore, I want to thank Prof. Markku Oivo from the University of
Oulu for his support. I am also grateful for the co-operative people in the two
anonymous organisations I had the opportunity to study.
4
Contents
Abstract................................................................................................................. 3
Preface .................................................................................................................. 4
Abbreviations........................................................................................................ 7
1. Introduction..................................................................................................... 9
1.1 Background............................................................................................ 9
1.2 The research problem and methods ..................................................... 10
1.3 Scope ................................................................................................... 12
1.4 Structure .............................................................................................. 12
5
5.1.1 Requirements implementation in software requirements
analysis.................................................................................... 46
5.1.2 Requirements implementation in software designing ............. 50
5.1.3 Requirements implementation in software coding.................. 52
5.1.4 Requirements implementation in software testing .................. 54
5.1.5 Requirements implementation throughout the development... 56
5.2 Adaptation of the framework............................................................... 59
7. Conclusions................................................................................................... 71
7.1 Answers to the research questions....................................................... 71
7.2 Significance of the results ................................................................... 72
7.3 Further research possibilities ............................................................... 74
References........................................................................................................... 75
Appendices
6
Abbreviations
AQA Architecture Quality Analysis
ASIC Application-Specific Integrated Circuit
ATAM Architecture Tradeoff Analysis Method
CBSP Component-Bus-System-Property
CCB Change Control Board
CMM Capability Maturity Model
CMMI Capability Maturity Model Integration
DOORS Dynamic Object-Oriented Requirements System
DSP Digital Signal Processing
GRL Goal-oriented Requirement Language
MOOSE software engineering MethodOlOgieS for Embedded systems
PDL Program Design Language
QFD Quality Function Deployment
RTM Requirements Traceability Management
SBAR Scenario-Based Architecture Reengineering
SCM Software Configuration Management
SCR Software Cost Reduction
SDL Specification and Description Language
SRS Software Requirements Specification
TCM Test Case Management
UCM Use Case Maps
UML Unified Modeling Language
VTT Technical Research Centre of Finland
(Valtion teknillinen tutkimuskeskus)
7
1. Introduction
Modern embedded systems are more complex than before, and much of this
complexity is realised in these systems' software. Organisations that neglect to
manage software development efficiently are doomed to fail in these complex
development projects. Developing correct requirements and implementing them
correctly are considered key elements in successful software development. In
this research, the latter condition is studied and related means for improving
requirements implementation are provided. The term requirements
implementation refers in this research not only to realising requirements in code,
but also to their elaboration into software requirements, designs, and test cases.
This chapter presents the background for the study, defines the research problem
and scope, and outlines the structure of the study.
1.1 Background
This study was carried out at VTT Electronics within the MOOSE (software
engineering MethodOlOgieS for Embedded systems) project, which aimed to
improve the integration of available tools, techniques, methods, and processes
involved in embedded software development. System and software requirements
engineering are among the research areas in the project. The industrial partners
of the project expressed several problems related to requirements. The following
list contains some examples (MOOSE 2002b):
9
iterates towards greater maturity. During the iterations original requirements
very often change, which can cause problems for design, implementation, and
testing activities. Problems typically arise when a change of one requirement
affects many different components in the system.
This research explores solutions to these problems from the point of view of
requirements implementation. Although there has been made a significant
number of research on development, implementation, management, and
consistency management of requirements, these studies unfortunately present
only insular solutions. A holistic view of these elements is needed in order to
locate essential improvement areas in software development. Furthermore,
current research lacks an embedded software viewpoint regarding these issues. It
is obvious that concurrent development of hardware and software creates
specific problems for requirements implementation. In this study, the previously
stated deficiencies in current research are addressed.
10
1.3. What kind of framework would help to analyse and improve
requirements implementation practices?
11
1.3 Scope
The research is not merely concerned about methods that elaborate requirements
into software analysis models, designs, source code and test cases. Neither does
the research concentrate purely on the requirements management issues. Instead,
the scope of the research is to study rigorous implementation of requirements,
consistency management between requirements and software work products, and
how requirements and change management can be integrated into software
development activities.
1.4 Structure
12
Chapter 3 examines the relationship between requirements software
development activities such as requirements analysis, design, coding, and
testing. Also elements needed for effective implementation of requirements in
the development activities are presented.
The last chapter concludes the research and discusses the results. Further study
opportunities based on this research are also given. Appendix 1 contains a
questionnaire that can be used to clarify an organisation's current state of
requirements implementation practices. A summary of requirements
implementation practices and methods referenced to in this study is given in
Appendix 2.
13
2. Embedded systems and requirements
This chapter introduces the basic concepts of the research. Because the focus of
this research is requirements implementation in embedded software domain,
special characteristics of embedded systems, embedded systems development, and
embedded software development have to be taken into account. Furthermore,
definitions for requirements and requirements engineering are given.
Embedded systems that have timing constraints are called real-time systems,
which not only have to produce correct output, but also should produce it at the
right time. Embedded real-time systems often operate in tight timing constraints,
where missing an important deadline can lead to severe consequences.
(Stankovic 1996.) Some real-time embedded systems operate in a safety-critical
domain, where functionality and reliability are critically important features.
Examples of safety-critical real-time embedded systems are avionics, traffic
control systems, and medical devices.
14
2.2 Embedded systems development
15
software have to be integrated. Reusing components from previous designs or
outside the design group is considered as the main design goal. (Ernst 1998.)
Embedded systems co-design process is shown in Figure 2.
Requirements definition
Specification
System architecture
SW HW
Designer Designer
Figure 2. Embedded systems design process (adapted from Ernst 1998, 46).
16
software is presented as the classical V-model according to Easterbrook (2001)
and the terminology of ISO/IEC 12207 in Figure 3. This model's concepts are
used throughout this research. However, system level analysis, design, and
testing activities are not in the scope of the research.
System System
Requirements Testing
Analysis
System System
Architectural Integration
Design Testing
Software Software
Requirements System
Analysis Testing
Software Software
Architecture Integration
Design Testing
Software Software
Analyse and Detailed Module Integrate and
design Design Testing test
Software
Coding
The V-model basically states that the system requirements on the left side of the
V are gradually refined in the analysis and design activities until they are
implemented as software code. The activities on the right side of the V then
integrate and test the software until it is ready to be integrated with other
17
possible systems and hardware. The dotted lines between the development
activities indicate that the testing activities are based on the analysis and design
activities. Although verification and validation of the product is closely related
to testing, all the work products from the development activities must be verified
and validated throughout the development. Verification means checking that an
activity's work products fulfil the requirements or conditions imposed on them in
the previous activities. Validation ensures that the requirements and the final
product fulfil the product's specific intended use. (ISO/IEC 12207.)
2.4 Requirements
A requirement is something that the system must exhibit or a quality that the
system must have. Requirements are defined at the beginning of the
development as a specification of what should be developed. Requirements for a
system are typically a combination of demands from different people at different
levels of the developing organisation and from the environment where the
system must operate (Sawyer & Kotonya 2001, 2). In addition to the description
of what the system should do, requirements often involuntarily describe how the
18
system should be done. Therefore, requirements are a mixture of problem
information, statement of behaviour, and design and manufacturing constraints.
(Sommerville & Sawyer 1997.)
Software requirements are detailed requirements for software derived from the
system requirements. Software requirements fall into two general categories:
functional and non-functional requirements. Functional requirements define
capability and behaviour of the system. A sample functional requirement would
be a system's capability to format some text or modulate a signal. (Sawyer &
Kotonya 2001.) Non-functional requirements refer to performance, interface,
quality, and design constraints of the software. For example, a non-functional
requirement could define a recovery time for the software or specify the
programming language used in the implementation of the software. Software
requirements categorisation based on IEEE 830-1998 standard with explanatory
questions is listed in Table 1.
19
Table 1. Categorisation of software requirements.
Functional What is the software supposed to do?
requirements
Performance What are availability, response time, and recovery time of
requirements software functions?
External interface How does the software interact with external entities, such
requirements as hardware?
Quality attributes What are the quality considerations of software such as
reliability, usability, maintainability, and portability?
Design constraints Are there any required standards in effect, implementation
languages, operating environments, etc.?
Non-functional requirements
Functional requirements
In order to achieve quality in the developed product, it is not enough only to fulfil
the functional requirements. When a non-functional requirement such as usability
is neglected, the resulting system might work correctly but it may be difficult to
use. Unfortunately, non-functional requirements are often not as easily verifiable
as functional requirements during the development. (Ebert 1997.)
20
are equally important as functional requirements. (Karsai et al. 2003.) Non-
functional requirements are especially recognised as an important success factor
in market-driven embedded software development (Punter et al. 2002). A
product with outstanding functionality is not enough; instead, both functionality
and quality characteristics are needed for a successful product.
21
implementation, cost of replication, implementation time, ease of change, and
error rates during operation (Stevens et al. 1998).
Stakeholders'
needs and constraints
System requirements
development
Allocation
Flow-down
After the allocation, a flow-down process will take place, where requirements
for the lower-level elements are specified in response to the allocation. The
lower-level elements must have at least one requirement that responds to the
allocation, but often many requirements are written for one allocation. (Dorfman
1997.) Finally, requirements are implemented in sub-systems either in hardware
or software disciplines.
22
trade-off studies, and prototyping. The major difference between system and
software requirements engineering is that the origins of system requirements are
stakeholders' needs, while the origins of software requirements are system
requirements. (Thayer & Dorfman 1997.) However, in small scale development,
software requirements may come directly from stakeholders.
23
3. Requirements in software development
activities
After the agreed system requirements have been specified and further allocated
to software, the work begins on evolving these requirements into a software
requirements specification, designs, code, and test cases. This chapter discusses
the relationships between requirements and software development activities of
the V-model presented in the previous chapter. In addition, elements needed for
effective implementation of requirements in the development activities are
presented. These elements were gathered from current literature, which includes
software engineering standards, research papers, and books. The presented
elements are later used in Chapter 5 to construct the requirements
implementation framework.
24
techniques include data flow diagrams, state-transition diagrams, and use cases.
(Parviainen et al. 2003.)
25
software requirements consistency with system requirements must be ensured.
(ISO/IEC 12207:1995, IEEE 830-1998.) The SRS should be comprehensive and
should not include any design, implementation, testing, or project management
details other than applicable design and implementation constraints. An
undocumented requirement is not part of the agreement and no one should
expect it to be in the product. Although all the needed requirements should be
contained in the SRS, software design and construction can begin before the
entire SRS is written. This requires that the development project has baselined
agreement for a set of requirements. Baselined requirements are approved and
reviewed requirements from the SRS under development. Changes to the
baselined requirements should be made through a defined change control
process. (Wiegers 1999.)
After the software requirements have been analysed and specified, they need to
be verified. Verification ensures that requirements (1) correctly describe
behaviour and characteristics of the system, (2) are internally consistent, (3) are
complete and high-quality, and (4) provide an adequate basis to proceed with
design, implementation, and testing. Verification is not a solitary activity
performed after all of the requirements have been documented. Instead, as the
requirements tend to develop during the requirements gathering and analysis,
they need to be verified incrementally. (Wiegers 1999.)
26
Furthermore, risks associated with the construction of the software are reduced
by comparing alternative architectural solutions. (Pressman 2000.) Having a
good software architecture does not ensure that the developed product will meet
its requirements. On the other hand, having a badly designed architecture makes
it almost impossible to meet the product's requirements. (Hofmeister et al. 2000.)
27
methods can be used for evaluating absorption of quality attributes into the
design.
28
3.3 Requirements and detailed software design
29
Software development standards require that a software component's detailed
design is traceable to software requirements and consistent with them (ISO/IEC
12207:1995; ISO/IEC TR 15504-5:1998). The design should be also verified so
that all of the functional requirements are accommodated and unnecessary
functionality is not included (Wiegers 1999).
The purpose of the software coding activity is to produce software units that
reflect software designs and requirements. In coding activity, the developers
begin to write modules that compile in the programming language (Mazza et al.
1996). If designs are specified detailed enough, they may be used directly as the
basis for coding. Otherwise, developers need to use software requirements stated
in the SRS and detailed designs together.
Certain quality attributes, for example predictability, should become crucial for
developers at the coding activity. Definition of these characteristics cannot be
made precisely at the beginning of the development because of their dependency
30
on the software architecture and implementation technology. (Rodríguez-Dapena
et al. 2001.) On the other hand, trade-off analyses between some quality
attributes have to be made before coding. For example, fulfilling an efficiency
requirement may require that a code is implemented using a specific compiler
and operating system. As a result, the system may work fast, but at the same
time it will be hard to maintain, enhance, and port to another environment.
(Wiegers 1999.) Some of these quality attributes may need specific verification
procedures to ensure that the desired quality is elaborated into software code
(Rodríguez-Dapena et al. 2001).
The purpose of the software testing activity is to ensure that the produced
software will satisfy the software requirements. Software testing includes three
basic testing stages: module, integration, and system testing. Module testing
verifies that a software module's source code is doing what it is supposed to do.
Testing of software modules is followed by integration testing, where the focus
is on software designs and the structure of the software architecture. Finally,
system testing is performed to ensure that the software as an entity fulfils all
software requirements. (Mazza et al. 1996; Davis 1988; Pressman 2000.)
System testing is the most significant testing activity from software requirements
viewpoint. Davis (1988) emphasises that system testing should ensure that the
entire software embedded in its actual hardware environment behaves according
to the SRS. System test plans and test cases should be designed to ensure that all
the software's desired characteristics are achieved. The purpose of test planning
31
is to assess how the software will be tested for conformity with the SRS.
Another purpose of the planning is to ensure that the SRS is verifiable. An SRS
is verifiable only when all of the stated requirements are verifiable. However,
some of the requirements cannot always be rigorously verified. For example,
usability requirements have multiple interpretations and are hard to measure
quantitatively. (Davis 1990.)
Software testing has a major role in embedded system development due to the
system's reliability and other non-functional requirements. For example, a
system's quality attributes such as safety and reliability often require high code
coverage percentages. Usability aspects could be tested by gathering suitable
information during usability tests in an environment as close to the operational
environment as possible (Ebert 1997). Other sample techniques for non-
functional requirements testing include recovery testing, security testing, stress
testing, and performance testing (Pressman 2000). However, the realisation of
quality attributes is often difficult to verify. Various possible scenarios and
different input combinations force developers to limit the set of test cases. In
reality, quality attributes are often the first ones to bypass systematic
verification. (Rodríguez-Dapena et al. 2001.)
The software testing activity's test cases are based on software requirements. The
relation between requirements and test cases is considered so essential that the
link between them should be always established (Weber & Weisbrod 2002).
Every requirement should be traced to at least one test case, so that all expected
system behaviour is verified (Wiegers 1999). Composing test cases as soon as
requirements stabilise enables developers to find and correct flaws in
requirements inexpensively. Writing test cases for requirements crystallises the
developers' vision of how the system should behave. Ambiguous and conflicting
requirements should be revealed when the developer cannot describe the
system's expected response to a test case. (Wiegers 1999.)
32
case is even harder. Providing concrete requirements validation criteria examples
for developers and having developers exploit and re-use these samples may
improve these problems. The validation of non-functional requirements is also
improved if these requirements are stepwise refined until they are implemented by
a set of functional requirements. (Weber & Weisbrod 2002.)
33
4. Requirements implementation-
supporting elements
The previous chapter discussed the role of requirements in software
development activities and overviewed elements needed for effective
requirements implementation in these activities. The importance of maintaining
consistency and traceability between requirements and software work products
was emphasised in all discussed activities. In addition, requirements change
management is needed for controlling the inevitable change.
Changing requirements are the reality in system development rather than stable
ones. Designers are faced with unpredicted and disruptive changes in
requirements that the system has to satisfy. (Harker et al. 1993.) Requirements
sometimes change because of an error in requirements analysis, but more often it
is consequence of a change in the system's environment (Sawyer & Kotonya
2001). In addition to the change in the system's operating environment, the
hardware where the software is embedded may change. Therefore, concurrent
development of the embedded system's hardware and software is a possible
source for change. (Mäkäräinen 2000.) Sometimes, unfeasibility of requirements
is only revealed once the actual software designs and code are implemented and
tested; therefore, original requirements may need to be changed because of a
change request from software development activities.
34
Whatever the reason for a change, it is important to manage the change by
ensuring that the proposed changes go through appropriate review and approval
procedures (Sawyer & Kotonya 2001). Effective system development requires
organisational change management policies, which define the processes used for
change management and the related information that is associated with change
requests (Kotonya & Sommerville 1998). The need for requirements change
management is also stated in the Software Engineering Institute's process
improvement framework Capability Maturity Model Integration (CMMI). The
requirements management process area in the CMMI framework requires that
changes to the requirements are managed during the project (CMMI-SW 2002).
The need for a formal requirements change process arises when many changes to
requirements are proposed. A requirements change management process consists
of activities for documenting, reporting, analysing, costing, and implementing
changes to requirements. Change management process can be thought of as a
three-stage process. First, the problematic requirement is identified and analysed
using the problem information and change for the requirement is proposed.
Then, the proposed change is analysed to see how many other requirements are
affected and what is the cost of the change. Finally, the change is implemented
and relevant documents are updated. (Kotonya & Sommerville 1998.)
A recent survey in embedded software industry revealed that there are problems
implementing requirements change management process. Although change
management procedures are defined, they are in many cases rejected. The main
reason for this is that these procedures take too much time. Time is consumed
35
for example in re-reviewing all the relevant documents after every change. As a
result of inappropriate change management, requirements and design documents
may easily lose their consistency. (MOOSE 2002b.)
36
also be used to determine what to modify in order to accomplish a change.
(Arnold & Bohner 1993.)
When many requirements changes are introduced, the need to use a change
management tool grows. Requirements change management may be supported
by specialised requirements management and software configuration
management tools. Some of these tools enable the use of database supported
electronic change request forms. Furthermore, they may provide automatic
notification to responsible persons with electronic forms. (Kotonya &
Sommerville 1998.) Sample commercial requirements management tools that
37
also support requirements change management include Rational RequisitePro
(2003) and DOORS (2003).
The general problem with change management tools is their own implicit model
of change process, which organisations must adopt. In addition, special-purpose
change support tools are fairly expensive and difficult to integrate. Therefore,
these tools are mostly used by very large organisations in very large projects.
Because requirements management also involves release management and
configuration management, a tool support that integrates these features is
actually demanded by industry. Some of the requirements management tools
provide only some of the demanded features, while integration of configuration
management, change management, and test case management is needed.
(MOOSE 2002b.)
38
embedded systems also requires that traceability between a system's different
technology components is handled (Mäkäräinen 2000). Requirements
traceability is defined as "...the ability to describe and follow the life of a
requirement, in both a forwards and backwards direction (i.e., 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)." (Gotel & Finkelstein 1994, p. 97)
39
Although requirements tracing is recognised as a very useful practice in software
system development, it is often misused and poorly performed (Gotel &
Finkelstein 1994; Lindström 1993; MOOSE 2002b). One of the main problems
with tracing is related to the developers' necessity to manually add trace
elements to requirements documents and following work products. Since these
products have little or no direct consequence on the work of the development
team, setting trace elements has a low priority. The benefits of traceability are
not understood until later activities of the development life cycle, such as
validation testing and system installation and operation. (Palmer 1997.) Another
reason for problems with tracing requirements is that relations amongst
documents (e.g. between requirements and architecture) are too complex to
specify manually especially when projects are large (MOOSE 2002b).
Tools for automating the process of tracing have been presented, but the problem
still remains in industry (MOOSE 2002b). Sample commercial requirements
tracing tools include RTM (2003) and DOORS (2003). Introducing a
requirements tracing tool is a big step for the company and often the tools do not
satisfy the needs of the company nor the traceability. Reasons for rejecting the
use of traceability tools are various. Requirements tracing tools have for
example been criticised for ignoring the meaning of relations between
requirements. The link between requirements is established but the rationale
behind the link is missing. (MOOSE 2002b.)
40
process improvement framework CMMI also emphasises the importance of
traceability. Requirements management process area in CMMI requires that bi-
directional traceability among the requirements and work products is maintained
(CMMI-SW 2002). However, tracing requires a great deal of resources and
therefore it should be a compromise reflecting costs and benefits of linkages.
Tracing should be executed only where the traceability information is truly
useful. (Stevens et al. 1998.)
Sources for inconsistencies between different software work products are various.
Software engineering is conducted by human beings and therefore errors may be
introduced in any development activity by the developers of the system.
Inconsistencies may also arise when an organisation's personnel and customers
change. As analysts and customers leave a development project, they are replaced
by others who might drive development in a different direction. As a result,
inconsistencies between new requirements and existing software work products
arise. (Robinson & Pawlowski 1999.) Other possible sources for inconsistency are
approaches and tools used in the software development. The problem with current
development approaches is that relating information across work products is either
not straightforward or not possible at all. In addition, most of the development
41
tools support only specific development activity with limited support to other
activities in the development process. (Olsson & Grundy 2002.)
As the size and complexity of the software continues to grow during the
development, software developers are faced with problems in preserving
consistency between different work products. These problems are tackled with a
consistency management process, which is composed of various activities such
as the detection of overlaps, consistency checking, diagnosis, consistency
handling, consistency tracking, and specification and application of consistency
management policy (Kozlenkov & Zisman 2002).
42
Design
Despite the close relationship between requirements and software designs, little
attention has been paid to their integration. This has increased the risk of
inconsistencies in software development. A sample approach to reduce the risk
of inconsistency between requirements and architecture has been proposed by
Inverardi et al. (2001). They propose an approach that traces co-ordination
requirements from their definition to the low-level specification. The
architecture is then validated with respect to these co-ordination requirements.
Other sample methods to strengthen the relationship between requirements and
architectural design include CBSP (Component-Bus-System-Property) method
(Grünbacher et al. 2001) and the combined use of goal-oriented language GRL
and a scenarios-oriented architectural notation UCM (Liu & Yu 2001). Chechik
and Gannon (2001) present an approach where lightweight formal techniques are
used for automatic analysis of consistency between software requirements and
detailed design. Design inspections can also serve as a consistency checking
approach, as is shown by Travassos et al. (1999).
Coding
Approaches for ensuring consistency between requirements and software code
have also been presented. Robinson (2002) suggests an implementation
approach where an instrumented code is used to ensure that requirements are
traceable and satisfied. Chechik and Gannon (1995) propose a tool called
Analyzer which discovers instances of inconsistencies and incompleteness in
implementations by proofing state transitions. Punter et al. (2002) present a
method for evaluation and correct implementation of non-functional
requirements in software designs and code. They suggest combining the use of
quality modelling, probability concepts, and measurement techniques in order to
evaluate code and design artefacts. Phased inspection technique according to
Knight and Myers (1993) can be used for checking the existence of appropriate
functionality and quality characteristics such as portability, reusability, and
maintainability in code.
Testing
Testing can serve as a consistency checking approach throughout embedded
system development. Co-design of hardware/software systems relies heavily on
testing that is executed at all levels of design activities. When a consistent set of
43
test cases is used, consistency among different design levels can be ensured. To
support this, Gupta et al. (2001) propose an automatic test scenario generation
approach. Their method is based on a state-based model of the proposed system.
Another sample requirement-based approach for rigor verification of software
systems is suggested by Tahat et al. (2001), where Specification and Description
Language (SDL) is applied to create finite state machines, which are used to
automatically generate test cases that are consistent with the requirements.
44
5. Requirements implementation framework
In order to analyse and improve an organisation's capability to implement
requirements effectively, a framework is needed to describe how requirements
are ideally implemented throughout the development. This chapter presents such
a framework, which integrates elements of requirements implementation
referenced to previously in Chapters 3 and 4. These elements were found in the
literature as good practice of requirements implementation. While the previous
chapters provided examples of how these elements could actually be
implemented (summary available in Appendix 2), this chapter discusses their
interrelations and integration.
45
process section then presents elements that are utilised during the activity. While
the change management section discusses the important elements related to
requirements change, the verification and validation section concentrates on
elements that ensure the correctness of the produced work product in the
activity. After the individual activities with related requirements implementation
elements have been discussed, they are integrated into one holistic view.
Role Compilation
46
precondition, process, and verification and validation elements according to
Section 3.1 and Chapter 4 are discussed next. Furthermore, change management
elements according to Section 4.1 are covered below.
- Documentation policy
- Traceability policy
- Change management
policy
- SW Developers
System
Requirements
- Customers
Software - Review
Requirements
Specification - HW & SE
Developers
- Quality attribute
verification
Precondition
To increase the success rate of a development project, system level requirements
development and allocation should include people with software expertise.
These people may be software analysts, designers, and testers. Software
developers' knowledge of the software's capability and cost-effectiveness to
implement a certain requirements may affect the decision to allocate the
requirement into either software or hardware requirement.
47
requirements documentation policy, a change management policy, and a
traceability policy. These requirements policies need to be agreed to make sure
that requirements are later handled uniformly and correctly. For example, a
requirements documentation policy may define how requirements are classified
and identified in requirements documents. A traceability policy is needed to
agree and inform developers about which work products need to be traced and
how tracing is performed. A balance between the cost and the benefit of having
traceability information among work products should be determined. A change
management policy defines responsible roles and change procedures in
development activities when a change is introduced. Leaving requirements
policies undefined inevitably creates later a situation where working methods are
forgotten and not performed properly.
Process
During the software requirements analysis, certain attributes for requirements
must be defined to enhance requirements implementation later. Requirements
need to have information about their identity, priority and stability. Identification
is needed for various elements of requirements implementation, such as
traceability, consistency check, and change management. Priority information is
needed to make design decisions. Valuable sources for requirements priority
information include customers and software developers. Requirements stability
information helps to control change of requirements. Defining a requirement's
stability may require software design and development expertise. In addition to
these attributes, documentation of requirements' source, scope and rationale may
be usable later.
48
Change Management
An unmanaged change in the requirements during software development may
easily cause the system to be inconsistent. The requirements analysis activity
must have a procedure for managing changes from system level and from lower
level development activities. This procedure has to make sure that the software
requirements are consistent with the system requirements and internal
consistency among the software requirements is preserved. To support impact
analysis of a change, traceability amongst the software requirements has to be
maintained. Software developers also have to have procedures for reporting and
negotiating with system engineering level about problems implementing certain
requirements in lower-level software development activities.
49
5.1.2 Requirements implementation in software designing
- Trade-off analysis
- Traceability Software - Unrealized requirement
- Consistency Design procedure
- Change procedure - CCB
- SCM
- Review
Design - Coverage check
- Quality attribute
verification
50
Precondition
A good practice would be to include software designers in the specification of
software requirements, or even during the development and allocation of system
requirements. Their ability to evaluate and test proposed requirements in the
early phases of system and software development may be invaluable.
Demonstrating the system to the customers with preliminary designs and
prototypes is a cost-effective way of eliciting new essential requirements and
refining already agreed requirements. The results of preliminary designs and
prototypes could be also used later in the actual design activity as a basis for
design trade-off analysis.
Process
Design trade-off analysis ensures that requirements are implemented in the most
effective way and resolves conflicts when requirements collide. To make
decisions about which requirement is important to implement in the design, the
designer needs prioritisation information of requirements. Other information that
the designers may need from requirements include the rationale and source
behind a requirement. These requirement attributes enable designers to justify
design decisions, help to negotiate about fuzzy requirements, and make
requirements reuse possible. Specifying software requirements precisely and
quantitatively where possible during the requirements analysis activity pays off
now when designers have to make design decisions. However, requirements
should not be written as restricting design decisions, because they may prevent
designers discovering the most effective solution to a requirement.
Change management
Designers should have change procedures for making modifications in their
designs. These procedures may be jointly co-ordinated with the CCB and SCM.
Change procedures have to include impact analysis of the change for software
designs. Performing impact analysis produces much needed information for
project scheduling and resourcing. Without impact analysis a change of
requirements might result in a sequence of unsystematic changes to designs and
overrun of the project schedule.
51
face ambiguity and conflicts in the requirements. Therefore, they need to report
about the problematic requirement and ask for clarification. An unrealised
requirement should finally be dealt by the CCB, which decides how the
requirement is changed.
Process
The relationship between code and requirements is not as strong as is the case
with higher level designs. This is true especially when detailed designs are very
specific and enable automated code generation. On the other hand, if detailed
designs were not properly done, software requirements may support the
construction of code.
52
Change management
Developers that are responsible for software implementation must be ready for
changes in the requirements. Procedures for change management need to be
defined before the development begins. Change procedures should be planned
and executed jointly with the CCB and SCM. Impact analysis is a significant
part of the change procedure. Because of the close relation between
implementation and detailed design, the impact analysis must consider both of
them simultaneously. For example, a change in detailed design might require
many changes in code, which in turn requires changes into detailed designs, etc.
Developers also need procedures for unrealised requirements similarly to those
in design activity. Some requirements' unfeasibility for implementation is not
revealed until the actual code is written and tested.
Software
Requirements
Specification
Software
Detailed - Change impact
Design analysis
- Change procedure
- Traceability Software - Unrealized requirement
- Consistency Coding procedure
- CCB
- SCM
- Review
Code
- Quality attribute
verification
53
Although software standards (e.g. ISO/IEC 12207 and ISO/IEC 15504) require
traceability between software code and requirements, traceability links between
software code and software requirements is not always a necessity. If the code is
compatible with the detailed design, then all change management, consistency
checking, and other procedures concerning the requirements are dealt between
them. For example, the code may be automatically generated from detailed
designs, and all the needed changes are made to these designs. Once the changes
to the designs have been implemented, the code is regenerated. In this case,
traceability between requirements and the code is replaced by traceability
between detailed design and the code.
Precondition
Requirements must be stated unambiguously and quantitatively to enable
development of correct test cases. The SRS must have validation criteria for
accepting certain requirements. These criteria should be defined as precisely as
possible. Testers may already start planning test cases while software requirements
54
are being elaborated. Writing test cases for requirements during their development
reveals possible flaws inexpensively.
- CCB, SCM,
TCM
- Test case
development
- Change procedure
Software - Coverage check
- Quality attribute
Requirements - SRS verification
Software verification
Specification - Review
System
Test Testing
Cases
Software
Module
Testing
Process
Module and integration tests ensure that requirements stated for architectural and
detailed designs are correctly fulfilled. Module testing is often performed
simultaneously with the coding activity. For some systems it may be necessary
to trace these lower level tests to the requirements and check that all behaviour
and quality attributes are covered. However, if software designs' traceability and
55
consistency with requirements are maintained, then there should not be any need
for direct linkage between requirements and module and integration test cases.
The purpose of system testing is to ensure that the developed software works
correctly in its actual environment and reflects correctly system and hardware
requirements. Therefore, embedded software testers may need to have co-
operation with system and hardware testers throughout software testing.
Change management
Since software testing is strongly related to requirements, a change of a
requirement also affects testing activities. To maintain consistency throughout
the development chain, testing activity needs procedures in case of a
requirement change. For example, a change procedure may include an
evaluation of what test cases in system testing need to be updated. Maintaining
traceability between test cases and requirements facilitates this kind of
evaluation. If module and integration tests are also dependent on requirements,
then change procedures need to be defined for them as well. The CCB, SCM,
and test case management (TCM) play a vital role in defining how the change is
implemented.
56
chain of supporting activities for software development that enable correct and
effective implementation of requirements. Implementation of requirements
throughout the development is shown in Figure 10.
57
System - Documentation policy
Requirements - Traceability policy
Analysis - Software - Change management policy
Developers - Review practices
- Traceability
- Consistency
- Coverage - Change
check Software procedure Software
Architecture - CCB Integration
Design - SCM Testing
Software Software
- Trade-off Detailed Module
analysis Design Testing
- Change impact
analysis
- Unrealized Software
requirement Coding
procedure
58
development activities is facilitated, if the development organisation traces
requirements to work products and has established review practices in use.
The proposed framework assumes that software code can be directly created
based on detailed designs. Thus, traceability and consistency between the code
and the requirements is maintained through detailed designs. The framework
also assumes that module and integration tests are based on detailed and
architectural designs, and that their mutual traceability and consistency is
managed without any direct relationship with requirements. These and other
assumptions in the framework may be different from an organisation's actual
software development process. Therefore, possibilities to tailor the framework
for different development projects and organisations are discussed in the next
section.
59
The need and ability to sacrifice resources to requirements implementation is
dependent on both the size of the developing company and the size of the
project. More strict approach is suitable for large companies and large complex
projects that have a number of teams in different disciplines developing the same
product. In contrast, small companies and small projects need a more informal
and flexible approach. Small and large companies' needs and resources are
obviously not comparable. In a small organisation, for example, reporting an
unfeasible requirement may be informal communication between a developer
and a project manager. Nevertheless, roles and procedures regarding
requirements implementation in both small and large organisations should be
clearly defined.
The nature of developed embedded product also governs the attitude towards
requirements implementation aspects. Product and also project requirements
direct how the software development is carried out. For example, development
of a safety critical system may require an extremely rigorous approach in the
implementation of the given requirements. In contrast, an experimental project
may have very flexible procedures for requirements implementation. The
demands for the software process in the development of an aircraft are quite
different from those in the development of an electronic alarm clock.
60
requirements management elements must be in order when stakeholder needs are
developed into system requirements and further allocated into software
requirements.
61
6. Validation of the requirements
implementation framework
Two case studies were conducted to validate the requirements implementation
framework's capability to analyse and improve requirements implementation
practices in an industrial environment. This chapter presents these studies and
discusses the validation of the framework. First, the research approach used in
the validation is overviewed. Then, the two case studies are discussed in more
detail and the most important findings are presented. Finally, the framework's
applicability is evaluated based on the results from the case studies.
62
Data for the current state analysis of requirements implementation practices in
the two case organisations was collected from multiple sources. First, problem
areas of requirements implementation in the organisations were surveyed with
an open ended questionnaire based on the questions in Appendix 1. Then, the
discovered problem areas were further examined with more detailed
questionnaires, interviews, and by investigating organisations' software related
documentation.
The first case organisation builds embedded systems for document processing.
The organisation's R&D consists of over 2000 people, including some 700
software developers. Software development approaches include application,
control, and embedded software. The software is developed with a tailored
development model from the classical V-model. Currently, the software
development is under a process improvement program and the goal is to
introduce CMM level 2 key process areas.
63
Requirements are supplied by marketing, maintenance, and R&D departments.
These requirements are elaborated with safety rules, legislation, and standards
into more detailed product specification. At the product level, requirements are
initially specified in natural language and then developed into use cases, and
sequence diagrams. Product requirements are decomposed into sub-system
requirements, which contain requirements for mechanical, electronic, and
software disciplines. This decomposition can continue to more detailed sub-
systems, until requirements are implemented in mono-disciplinary levels.
Internal verification of SRS's and baselining the requirements were also well
handled. Consistency checking between software requirements and other
software work products was also conducted. All development activities included
review practices, where consistency was ensured. Checklists and other
guidelines for the reviews imposed to check internal and external consistency of
the work products.
64
work products. The organisation had established a change management process
with a change management tool and a change control board.
65
concerning all disciplines would enhance development, communication, and
reuse of requirements. A common policy would also allow the use of one
requirements management tool for maintaining all requirements.
A few improvements in the coding and testing activities could be also made.
Firstly, static code analysers could be used to identify areas of the source code
that are not conformant to certain quality attributes. Analysers such as Logiscope
and QAC/++ would automatically discover problems in maintainability,
readability, and portability issues. Secondly, the requirements specification's
quality attributes could be quantified and verified already in the software level
tests rather than postponing quality attribute testing to the system level.
66
6.3 Case two - small organisation
The second case organisation develops data management solutions for embedded
devices. The organisation employs around 100 people. One-fourth of these
employees work in R&D. Development projects at the organisation are carried
out at one site with an incremental software development process. The
organisation has an ongoing software process improvement program that is
based on ISO/IEC 15504 standard.
The organisation's director of R&D served as source of information for the case
study. In addition, documents such as software process descriptions, requirement
specification templates, and review guidelines were examined.
Requirements implementation in the coding and testing activities was also well
handled. The coding activity included review practices for certain parts of the code
where requirements implementation needed to be evaluated. Competent
developers ensured absorption of quality attributes into the code, such as
portability. Maintainability of the code was achieved by following the
organisation's coding standards. The testing activity included a set of testing tools
67
that automatically ensured verification of correct realisation of requirements.
Sometimes, however, automatic testing was not possible. In such case, manual
work and tracking of test cases to requirements was required. Tracking between
requirements and test cases was being introduced more and more.
Review practices in the organisation were not fully taken into use. When reviews
were performed, they tended to follow a more informal than formal process.
Limited resources simply do not allow extensive check of consistency between
requirements and other work products.
68
rationalised basis for making priority decisions. One possible solution would be
Wiegers' prioritisation method that is based on evaluating requirements priority
from the viewpoint of different stakeholders and developers.
After the current state analyses and the improvement proposals on requirements
implementation for the case organisations were made, the organisations
evaluated the significance of the given improvement proposal. The organisations
assessed the proposal's individual improvement suggestions significance with a
five-grade scale, where the lowest grade indicated an insignificant improvement
and the highest grade a critical improvement. This feedback information was
used to evaluate the requirements implementation framework's applicability in
improving requirements implementation practices.
69
The improvement proposal for the first case organisation was considered to be
very significant. A total of seven individual improvement suggestions were
made. Two of these suggestions were considered critical. Both of these
concerned system requirements development and documentation. Furthermore,
three suggestions were considered important. These suggestions included the
involvement of other disciplines in software requirements reviews, architectural
analysis against requirements, and static code analysis. The rest of the
suggestions - quality attribute quantification and post-traceability - were seen as
less important and did not therefore require immediate actions. The results from
the large organisation's feedback indicated that the framework was very useful in
revealing weak spots and developing improvement suggestions.
The improvement proposal made for the large organisation was more successful
compared to the proposal made for the small organisation. One of the reasons for
this is the fact that the large organisation had much clearer system and hardware
levels in its development life cycle. Therefore, improvement areas in the
framework that concerned those levels were not that applicable in the small
organisation. Furthermore, the large organisation with a rigid and document
oriented development process had naturally more need for the elements
presented in the framework. Nevertheless, the improvement suggestions made
for the small organisation were also considered important and therefore the
framework can be also regarded as applicable for analysing and improving small
organisations' requirements implementation practices.
70
7. Conclusions
This chapter concludes the study of requirements implementation in embedded
software development. First, the research is summarised by answering the
research questions. Then, the significance of the results is discussed. Finally,
further research possibilities based on this study are given.
71
requirements change management, traceability, and consistency checking, which
are all visible throughout the development.
The results from the case studies showed that the framework was indeed
applicable in analysing and improving requirements implementation practices in
an actual industrial environment. Most of the given improvement suggestions for
the large organisation were considered to be important or even critical. Part of
improvement suggestions made for the small organisation were also considered
important.
The main result of this study is the requirements implementation framework for
embedded software. The framework is plainly a synthesis of previous research
results and used practices in the industry. What, then, is so novel and non-
obvious about their integration? The main contribution of the framework is that
it covers relevant elements as extensively as possible. It also represents
relationships among these elements to increase knowledge about their
interdependencies. Other meaningful results from this study are the
questionnaire, which can be used to clarify an organisation's current state of
requirements implementation practices, in Appendix 1, and references to the
concrete processes, methods, and tools for these practices in Appendix 2. These
both can be used as a basis for software process improvement from the
viewpoint of requirements implementation.
The developed framework's strength and at the same time its weakness is that it
covers a great deal of different software development areas and even system
engineering aspects. This caused the framework to evolve into a fairly general
72
model. One element of the framework, for example requirements change
management, could have formulated its own framework. On the other hand,
requirements implementation could have been examined solely from one
software development activity's viewpoint such as designing or coding. This
would have made possible more detailed analysis and improvement suggestions
on more specific areas.
However, general models are also needed. As was shown, the elements of the
framework affect each other from the system requirements level down to
software testing level. Therefore, the developed framework could identify
improvement areas from a large perspective. Indeed, an overall picture of the
problem domain is needed to isolate specific improvement areas. What then
separates the framework from known software process improvement reference
models such as CMMI or ISO 15504? This study's framework should be used
especially when requirements implementation causes problems in development
activities. Therefore, it may be used to complement software process
improvement efforts that are based on the reference models, as was shown in the
case studies.
The results from the two case studies indicated that the framework was indeed
useful. Two different kinds of organisations - a large one and a small - were
studied to augment the validity of the results. In addition to the missing practices
found in the organisations, the framework also revealed many well performed
elements. This also supports the claim that the framework includes essential
elements for effective requirements implementation. However, more case studies
would be needed to substantiate the results. Conducting such studies is by no
means an easy task, because a proper case study requires a very close
examination of the subject or phenomenon. In this study, it meant examining a
significant number of software documents, preparing and analysing
questionnaires, and interviewing software developers.
73
The developed framework provides the means to obtain an overall picture of
embedded software development and locate possible improvement areas related
to requirements implementation. Although the framework was intended for
embedded software, it is also applicable to analysing non-embedded software
development processes. In this case, system engineering and hardware related
elements from the framework may be ignored.
The results from the case studies implied that while software requirements were
reasonably well handled, there were serious problems with system requirements.
In order to improve this, the participation of software developers at the system
engineering level should be studied more carefully. For example, software
measurement information and prototypes may be used to evaluate development
costs and rationalise system requirements allocation procedures.
74
References
Arnold, R.S. & Bohner, S.A. 1993. Impact Analysis - Towards a Framework for
Comparison. Proceedings of the Conference on Software Maintenance 1993, 292 –301.
75
DOORS 2003. Telelogic products - DOORS. Available:
http://www.telelogic.com/products/doorsers/doors [Referenced 15.11.2003]
Douglass, B.P. 2000. Real-Time UML, 2nd ed. Reading, USA: Addison-Wesley.
Ernst, R. 1998. Codesign of Embedded Systems: Status and Trend. IEEE Design
& Test of Computers, Vol. 15, no. 2, 45–54.
Gupta, P. & Cunning, S.J. & Rozenblit, J.W. 2001. Synthesis of High-Level
Requirements Models for Automatic Test Generation. Proceedings of the Eighth
Annual IEEE International Conference and Workshop on the Engineering of
Computer Based Systems, 76–82.
76
Harker, S.D.P., Eason, K.D. & Dobson, J.E. 1993. The Change and Evolution of
Requirements as a Challenge to the Practice of Software Engineering.
Proceedings of the IEEE International Symposium on Requirements Engineering
1993, 266–272.
77
Kotonya, G. & Sommerville, I. 1998. Requirements Engineering, Processes and
Techniques. Chichester, England: John Wiley & Sons Ltd.
Lee, E.A. 2000. What's Ahead for Embedded Software? IEEE Computer, Vol.
33, no. 9, September 2000, 18–26.
Mazza, C., Fairclough, J., Melton, B., De Pablo, D., Scheffer, A., Stevens, R.,
Jones, M. & Alvisi, G. 1996. Software Engineering Guides. Prentice Hall.
78
MOOSE 2002a. Survey of Applicaple Architectural Design and Analysis
Methods. MOOSE Consortium.
O'Neal, J.S. & Carver, D.L. 2001. Analysing the Impact of Changing
Requirements. Proceedings of IEEE International Conference on Software
Maintenance, 2001, 190–195.
Palmer, J.D. 1997. Traceability. In Thayer, R.H. & Dorfman M. (eds.) 1997,
Software Requirements Engineering, Vol. 2. Los Alamitos, USA: IEEE
Computer Society Press. 364–374.
Parviainen, P., Hulkko, H., Kääriäinen, J., Takalo, J. & Tihinen, M. 2003.
Requirements Engineering, Inventory of technologies. VTT Publications 508.
Espoo, Finland: Technical Research Centre of Finland.
79
Punter, T., Trendowicz, A. & Kaiser, P. 2002. Evaluating Evolutionary Systems.
In Oivo, M. & Komi-Sirviö, S. (eds.) 2002, Product Focused Software Process
Improvement. 4th International Conference PROFES 2002, LNCS 2559,
Springer-Verlag, 258–271.
80
Ronkainen, J., Taramaa, J. & Savuoja, A. 2002. Characteristics of Process
Improvement of Hardware-Related SW. In Oivo, M. & Komi-Sirviö, S. (eds.)
2002, Product Focused Software Process Improvement. 4th International
Conference PROFES 2002, LNCS 2559, Springer-Verlag, 247–257.
Ruhe, G., Eberlein, A. & Pfahl D. 2003. Trade-off Analysis for Requirements
Selection. International Journal of Software Engineering and Knowledge
Engineering, Vol. 13, no. 4, 345–366.
Sawyer, P. & Kotonya, G. 2001. Software Requirements. In: Abran, A., Moore,
J.W., Bourque, P. & Dupuis, R. (eds.) 2001. SWEBOK Trial Version 1.00. Los
Alamitos, USA: IEEE Computer Society Press.
Shull, F., Rus, I. & Basili, V. 2000. Perspective-Based Reading: Techniques for
Improving Requirements Inspections. IEEE Computer. Vol. 33, no. 7, 73–79.
Stevens, R., Jackson, K., Brook, P. & Arnold, S. 1998. Systems Engineering.
Coping With Complexity. Hertfordshire, England: Prentice Hall.
Tahat, L.H., Vaysburg, B., Korel, B. & Bader, A.J. 2001. Requirement-Based
Automated Black-Box Test Generation. Proceedings of the 25th Annual
International Computer Software and Applications Conference, 489–495.
81
Taramaa, J., Khurana, M., Kuvaja, P., Lehtonen, J., Oivo, M. & Seppänen, V.
1998. Product-based Software Process Improvement for Embedded Systems.
Proceedings of 24th Euromicro Conference, Vol. 2, 905–912.
Travassos, G.H., Shull, F., Fredericks, M. & Basili, V.R. 1999. Detecting
Defects in Object Oriented Designs: Using Reading Techniques to Increase
Software Quality. Proceedings of OOPSLA '99, 47–56.
Zelkowitz, M.V. & Wallace, D.R. 1998. Experimental Models for Validating
Technology. IEEE Computer, Vol. 31, no. 5, 23–31.
82
Appendix 1: Questionnaire on current state
of requirements implementation practices
Software requirements analysis
1/1
Software design
Software designers' input for software requirements development
• Are software designers involved in development of software requirements?
If yes, how?
Software coding
Software code's evaluation against software requirements
• Is code reviewed? If yes, how (e.g. informal review, formal inspection) and
is the requirements implementation evaluated?
• Is absorption of quality attributes into the code verified? If yes, how (e.g.
how is maintainability, modifiability, portability, efficiency of code
checked)?
1/2
Software testing
Test case development
• When begins the development of test cases for software level testing?
• Are testers included in software requirements development?
• Is unfeasibility of certain requirements found while developing test cases?
1/3
Requirements change into software requirements specification
• Is there a specific procedure for implementing a change into the SRS that
comes from the system or hardware level? If not, are there problems related
to implementing a change?
• Is there a specific procedure for implementing a change into the SRS that
comes from a software development activity? If not, are there problems
related to implementing a change?
Requirements tracing
• Are requirements traced from system level to software requirements? If yes,
how (tools, matrices)?
• from software requirements to architectures? If yes, how?
• from software requirements to detailed designs? If yes, how?
• from software requirements to code? If yes, how?
• from software requirements to test cases? If yes, how?
1/4
Unrealised requirements
• Is there a procedure for handling unrealised requirements in development
activities? If not, how are unrealised requirements handled?
• Are change management and CCB involved in a clarification of an
unrealised requirement?
1/5
Appendix 2: Requirements implementation
practices
The following list summarises requirements implementation practices and
related sample methods, techniques, and tools referenced to in this study.
2/1
Testing (Tahat et al. 2001)
Throughout Change management Olsen's change management
development model, Spiral-like change
management model, and
Generic change management
process model (Parviainen et
al. 2003)
Requirements Rational RequisitePro
management (2003), DOORS (2003)
Tracing Matrices (Parviainen et al
2003), DOORS (2003), RTM
(2003)
Impact analysis Quality Factor Deployment,
requirements inspections,
viewpoint analysis, trade-off
analysis (Lam &
Shankararaman 1999),
Wiegers' templates (Wiegers
1999)
2/2
Published by Series title, number and
report code of publication
Tätä julkaisua myy Denna publikation säljs av This publication is available from
Juho Jäälinoja
VTT TIETOPALVELU VTT INFORMATIONSTJÄNST VTT INFORMATION SERVICE
PL 2000 PB 2000 P.O.Box 2000
02044 VTT 02044 VTT FIN–02044 VTT, Finland
Puh. (09) 456 4404 Tel. (09) 456 4404 Phone internat. +358 9 456 4404
Faksi (09) 456 4374 Fax (09) 456 4374 Fax +358 9 456 4374