<< Chapter < Page Chapter >> Page >

Iterative nature of the requirements process

There is general pressure in the software industry for ever shorter development cycles, and this is particularly pronounced in highly competitive market-driven sectors. Moreover, most projects are constrained in some way by their environment, and many are upgrades to, or revisions of, existing software where the architecture is a given. In practice, therefore, it is almost always impractical to implement the requirements process as a linear, deterministic process in which software requirements are elicited from the stakeholders, baselined, allocated, and handed over to the software development team. It is certainly a myth that the requirements for large software projects are ever perfectly understood or perfectly specified.

Instead, requirements typically iterate towards a level of quality and detail which is sufficient to permit design and procurement decisions to be made. In some projects, this may result in the requirements being baselined before all their properties are fully understood. This risks expensive rework if problems emerge late in the software engineering process. However, software engineers are necessarily constrained by project management plans and must therefore take steps to ensure that the “quality” of the requirements is as high as possible given the available resources. They should, for example, make explicit any assumptions which underpin the requirements, as well as any known problems.

In almost all cases, requirements understanding continues to evolve as design and development proceeds. This often leads to the revision of requirements late in the life cycle. Perhaps the most crucial point in understanding requirements engineering is that a significant proportion of the requirements will change. This is sometimes due to errors in the analysis, but it is frequently an inevitable consequence of change in the “environment”: for example, the customer’s operating or business environment, or the market into which software must sell. Whatever the cause, it is important to recognize the inevitability of change and take steps to mitigate its effects. Change has to be managed by ensuring that proposed changes go through a defined review and approval process, and, by applying careful requirements tracing, impact analysis, and software configuration management. Hence, the requirements process is not merely a front-end task in software development, but spans the whole software life cycle. In a typical project, the software requirements activities evolve over time from elicitation to change management.

Change management

Change management is central to the management of requirements. This topic describes the role of change management, the procedures that need to be in place, and the analysis that should be applied to proposed changes. It has strong links to the Software Configuration Management KA.

Requirements attributes

Requirements should consist not only of a specification of what is required, but also of ancillary information which helps manage and interpret the requirements. This should include the various classification dimensions of the requirement and the verification method or acceptance test plan. It may also include additional information such as a summary rationale for each requirement, the source of each requirement, and a change history. The most important requirements attribute, however, is an identifier which allows the requirements to be uniquely and unambiguously identified.

Requirements tracing

Requirements tracing is concerned with recovering the source of requirements and predicting the effects of requirements. Tracing is fundamental to performing impact analysis when requirements change. A requirement should be traceable backwards to the requirements and stakeholders which motivated it (from a software requirement back to the system requirement(s) that it helps satisfy, for example). Conversely, a requirement should be traceable forwards into the requirements and design entities that satisfy it (for example, from a system requirement into the software requirements that have been elaborated from it, and on into the code modules that implement it).

Measuring requirements

As a practical matter, it is typically useful to have some concept of the “volume” of the requirements for a particular software product. This number is useful in evaluating the “size” of a change in requirements, in estimating the cost of a development or maintenance task, or simply for use as the denominator in other measurements.

Requirement measurements

Questions & Answers

define system ,concepts of system and types of system?
Gurmeet Reply
iom
ADNAN
hello
arsh
is very important software engineer or not.
Riyanshu Reply
very important
arsh
what is software engineering
Ravindra Reply
Software engineering is a detailed study of engineering to the design, development and maintenance of software
arsh
what is salary of software engineer
Akash Reply
it depend on organization's and quality
josephat
I think average salary 80000us dollars per year
arsh
what are naturs of software Engineering
BANDARU Reply
what is the nature of saftware
BANDARU Reply
what is nature of sotfware
BANDARU
hi
khushboo
can anyone help me I need to learn
khushboo
code debug
khushboo
in eclipse java
khushboo
@janak can u suggest
khushboo
what is the salary of software engineer
Akash
per month
Akash
please tell me what is the salary of software engineer per monthe
Akash
which sdlc mode l is suitable for atm banking system
Rakesh Reply
how can I create my own software?
David
HUAWEI.ABBULLAG.45720891
Abdula Reply
how to build apps
Andreas Reply
what is memory?
Hausa Reply
memory is billions of consecutive data storage cell where each of the cell has its own particular address of identification.
Shariful
is software engineering important or not.
Riyanshu
what are the major difference in the external environment of an office automation system and that of an embedded systems
juma Reply
What is software engineering
Zohaib Reply
what is salary of a software engineer
Akash Reply
tell me what is salary of a software engineer.
Riyanshu
understand wllhi 😭am language somali bro 😇😣😣😣
what is agile
Qais Reply

Get the best Software engineering course in your pocket!





Source:  OpenStax, Software engineering. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10790/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Software engineering' conversation and receive update notifications?

Ask