The Requirements Management Activities

Print   

02 Nov 2017

Disclaimer:
This essay has been written and submitted by students and is not an example of our work. Please click this link to view samples of our professional work witten by our professional essay writers. Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of EssayCompany.

Abstract

Most software systems operate in constantly changing environment. Therefore, such systems need to be adapted to fulfill their purpose in this environment. Since the development and management of the requirements is one of the first and thus most important steps of each software engineering project, good requirements management is crucial to deal with these changes. Requirements management tools can help managing requirements. Usually, features of such tools are creating and updating requirements, specifying the relations and applying this data to execute impact analysis to support change. This paper covers the theme of software requirements management and applying of this information in development of web-based requirement management tool.

Contents

Introduction

Most software systems operate in constantly changing environment. Therefore, such systems need to be adapted to fulfill their purpose in this environment. Since the development and management of the requirements is one of the first and thus most important steps of each software engineering project, good requirements management is crucial to deal with these changes.

When developing a software system, many different items are created, modified and removed. They can be use cases, requirements, scenarios, code or other byproducts. Such an items called artifacts. When a change is made to the system, some of these artifacts will be affected. To control these artifacts, various tools can be used. In our case such a tool is called requirements management tool.

Requirement management tool is a software to create, update and remove requirements. But this is only basic functionality needed. To manage requirements in the full sense of this word, application should be able, for example, to import and export requirements, to integrate with other project management tools or to make the relations between requirements, which called traceability.

Traceability is the ability to clarify relations between artifacts. These relations can be used, for example to determine what scenario is the source of a specific use case. It can also be used between different stages in the life cycle, for example to show what sections of code are responsible for the implementation of a specific step in a use case. Besides manually checking these traces, they can also be used by the tool to perform coverage analysis, to identify if all requirements have been fulfilled and every artifact is linked to at least one requirement to prevent unnecessary code. Another usage for traces is impact analysis.

Change impact analysis finds all artifacts that have to be changed as a result of a proposed change. Data received during impact analysis can be used to forecast the amount and type of artifacts affected to calculate the expenses of a change and to make a decision to perform a change or not. Also, it can be used to get a clear image of all affected artifacts to make sure that other functionality of the system is not affected by the change. Requirements management tools with support for traceability and impact analysis can be useful in an environment with permanently changing requirements, where the results of these changes must spread to all other artifacts in the system without breaking it.

Considering the topicality of the research, it worth noting that there are many disadvantages of the existing solutions, which need to be eliminated. They are high prices, not always satisfactory quality, absence of some key features and others. Thus, they define some of the tasks, which need to be accomplished during the research. The following results of IBM survey of 24 leading software companies illustrate the importance of requirements management.

2 out of every 8 large systems development efforts started will be canceled.

75% of projects delivered will have operating failures (do not function as intended or not used at all).

The average software development project takes 50% longer than planned.

55% of projects cost more than expected. [1]

The main objective of the author’s graduation paper is development of the open-source web-based requirements management tool for easy and effective requirements management with support for traceability, impact analysis and other common for requirements management tools features. However, this paper is only a draft of the graduation work mentioned above, which will be written later this year.

In the main part of the paper, the core definitions will be given, an overview of requirements management tools will be performed, followed by the conclusion.

Chapter 1

This chapter discusses the requirements management in general. A definition for a requirement will be given as well as for requirements management. In addition, requirements management activities will be discussed.

One of the problems in the software industry is the lack of generally accepted definitions of the terms we use to describe our work. Various experts, referring to the same document, call it user requirements, software requirements, functional requirements, system requirements, process requirements, business requirements, and product requirements. Customers often believe that requirements is an advanced concept of the product designed for developers. Those, in turn, suppose that it is detailed development of the user interface, in relation to customers. This diversity leads to confusion and problems of communication. Therefore we need general definition.

1.1 Requirements management overview

From the software engineering point of view, a requirement is a condition to which a system or software must correspond to or a feature that the system must have, or a constraint on the system. Since this definition clearly states that requirements can contain both features and restrictions, it will be used from now on. Requirements can be divided into two general categories, functional and nonfunctional requirements.

Functional requirements specify the capability and the behavior of the system. They can be thought of as the description of an interaction between the system and its environment. Functional requirements are used to show the behavior of a system by specifying both the input conditions and the output conditions that are expected to result.

Non-functional requirements include a wide variety of attributes that do not directly refer to the system’s functionality. These kinds of attributes are, for example, quality attributes such as usability, reliability, performance and supportability. Non-functional requirements are usually as important to the end user as are the functional requirements.

Requirements engineering can be divided into two main categories, requirements development and requirements management. Requirements development concerns activities associated with elicitation, analysis, documentation and validation of requirements. It deals primarily with the content of the requirements. The purpose of requirements development is to create and analyze customer requirements, product requirements, and product-component requirements. Requirements development is not within the scope of this thesis.

Requirements management concerns activities associated with controlling and tracking of changes to requirements, relations between requirements and dependencies between the requirements specifications and other artifacts. Requirements management can be thought of as a supportive process, which helps to manage requirements through the product lifecycle. The primary objective in requirements management is to guarantee that the end product meets stakeholders’ expectations. In the end product, there have to be all the demanded features, and these only.

The requirements provide the area and direction for the projects. Unfortunately, just paying attention to the requirements management is not enough in fact. If requirements are not managed well, a project can fail, be delayed or be very expensive. On the other hand, a project that meets its requirements is by definition a success. [1] As mentioned above, requirements management is one of the most crucial processes in the software development. In [2] the authors explain why the requirements management is so important and what happens when the requirements are not complete or even wrong. They show a list of consequences, which appears when the system requirements are not met:

The system may be delivered late and it may cost more than originally expected.

The customer and end users are not satisfied with the system. They may not use its facilities or may even decide to scrap it altogether.

The system may be unreliable in use, with regular system errors and crashes disrupting normal operation.

If the system continues in use, the costs of maintaining and evolving the system are usually very high.

Usually, the costs of fixing errors in requirements are much greater than fixing errors made at later stages of the development process. Fixing requirements issues may require revision of the system design, implementation and testing. Under the circumstances, the costs are much higher than fixing a simple programming error. [2]

1.2 Requirements management activities

The requirements management includes a process of managing changes to the system requirements. During the project lifecycle, requirements can change for many different reasons: the changing needs of system stakeholders, changes in the environment in which the system will operate, changes in the business which plans to use the system, changes in laws and regulations, etc. The only permanent issue in software development is the changing requirements. These changes have to be managed, so the principal activities in the requirements management are the change control and change impact analysis, better known as the requirements change management.

Other activities are requirements identification and requirements tracing. Requirements cannot be managed effectively without traceability. A requirement is traceable if it is possible to answer to the following questions related to the requirements change: who, why, what, how and when. A significant precondition for requirements management is that every requirement must have a unique identification. A common method is to identify requirements by numbers.

The requirements management can be organized under four main requirements management activities as follows:

Requirements identification

Requirements traceability management

Requirements change management

Requirements management planning

1.2.1 Requirements identification

The requirements identification focuses on the assignment of a unique identifier for each requirement, which can be used to uniquely refer to a requirement during product lifecycle. Since requirements may change during product development, the management of requirement versions is substantial. Requirements are usually organized hierarchically, consequently, parent-child – relations between requirements are possible.

The requirement attributes can be used to store additional information about the requirements, which helps users to get better understanding and management of information. Attributes can be included into requirements and they describe information as requirement classification, status, priority, version, relations, etc. Clearly defined attributes can help systematize information related to the requirement.

1.2.2 Requirements traceability management

The requirements traceability is the possibility to describe and follow the life of a requirement in both forward and backward direction. The requirements traceability is used to evaluate the impact of changes and to help understanding what the affected elements are. Moreover, later in product development, it will allow us to check why a certain feature was changed.

The requirements traceability can also cover the relationships with other artifacts, such as scenarios, changes in design documentation, use cases, and other byproducts. Traceability is especially needed while conducting the change impact analysis.

Traceability should cover both the horizontal and vertical relationships. Moreover, both of these can be divided into forward and backward traceability. The vertical relationship is the traceability between requirements specification, implementation and test, while the forward traceability links requirements to the design plan, product features and test cases, whereas backward traceability links features, tests and design to the requirements. The horizontal relationship refers to traceability between requirements versions, so that forward and backward traceability mean traceability in time-scale.

Many different methods for requirements traceability can be found in literature, but in this thesis, it is understood as a direct or indirect link from the requirement to another requirement or to the other product artifact, such as design or source code. This kind of traceability called a Simple Links Traceability.

Simple Links Traceability is the simplest form of traceability and it includes creating a link between two artifacts by using a traceability matrix, hypertext link, graph, or a traceability tool embedded into a requirements management system. A requirement is linked to the artifacts it affect by use of a simple query that returns the set of all affected artefacts. The basic strengths of this approach are its simplicity and the fact, that many requirements management tools support it. The general weaknesses of this method include the long-term difficulty of maintaining large amount of links.

1.2.3 Requirements change management

The requirements change management is associated with the processes used to manage changes to the system requirements. Data is collected for each proposed change similarly and general evaluation is made about the costs and advantages of the proposed change. In other words, impact of changes are managed. [3]

Most of the customers’ requirements become clear during the requirements identification, but it is normal that the requirements change during the project lifecycle. It is not rational to wait until everything about the requirements is known; otherwise, the design phase can never start. Therefore, the change management is a crucial part of the requirements management. [3]

It is also significant to control the process of change, ensuring that no changes are made without a proper review. This review includes a full impact analysis and it should only be made with proper permission. To efficiently analyze the impact of the changes, it is essential that the source of each requirement is known and the substantiation for any change is documented. In order to enable all team members to respond quickly if the change affects their work, all members should be immediately notified when a requirement, which they are working to fulfill, changes.

1.2.4 Requirements management planning

The definition of the requirements management policies is seen as one of guidelines for requirements management. These policies include the definition of the goals and procedures for requirements management, which should be followed in the organization. According to [4], an organization can have general policies for requirements management, but still each project should assess their applicability, and select the related ones for the project.

Chapter 2

In this chapter, an overview of requirements management tools is given.

The development of sophisticated systems requires a strict approach to requirements development and tracking. The quality of the final product depends on how well it meets the customer’s expectations. Customers want to be sure that they get what they asked for. Contractors want to monitor the current state of the project development to guarantee that correct decisions are made with minimal impact on cost and schedule. Requirements management tools are designed to monitor the development process and manage the system requirements.

Main objectives of requirements management tools are to help and ease the software development process. Especially when developers are geographically dispersed, the requirements management tool support is priceless. Such a tools can offer many features, such as a general repository, communication capabilities, change control functions and information sharing, which can improve development process and, in turn, refine the final product quality.

The requirements management tools offer several advantages for providing requirements traceability. When using requirements management tools, all requirements and artifacts are held in the database instead of different documents and tools, which do not necessarily integrated with each other. The tools provide various methods to update the links between the requirements identifiers. The requirements management tools integrate requirements management activities as a natural and logical part of the development process.

Most of the existing requirements management tools have integrated change management support, which makes it easy to access the latest available information and makes it possible to check, for example, when an artifact was changed, who made that change and why. This activity is usually called change management. [5] The change management generally includes a change impact analysis, which helps in making conclusions and fixing possible problems that may be caused by a requirement change.

The tools allow different types of attributes to be linked with each item in the database. The attributes may be used later to arrange the data. For example, project can have more than one customer. It should be possible to select only one customer’s requirements from the database before showing them to the customer.

The requirements management tools can be configured to give different statistics and reports, for example, for an inspection meeting or a customer meeting. In addition, some of the tools are able to communicate and integrate with other project management tools and to hold the other tools' data in their database together with ordinary textual data. [5]

Conclusion

It is necessary to restate some of the most important points of the research. The main objective of the author’s graduation paper is development of the open-source web-based requirements management tool for easy and effective requirements management with support for traceability, impact analysis and other common for requirements management tools features.

Considering all mentioned in chapter 2, the tool will have all common features to provide competitiveness in modern requirements management tools market. The tool will consist of server part that will be created on the Ruby programming language and an open-source framework Rails. Rails framework represents model-view-controller methodology for application development. Developing on Ruby on Rails implies, that the tool will be brought to web, so the clients will be able to access it wherever they are.

The author believes that this requirements management tool will have a wide application. Among all the benefits the tool will have integration with risk management system, which will be developed parallel as graduation paper of author’s classmate.

Despite the fact that originally the tool expected to be used by students, author hopes that the results of this research can be of interest not only to the students but also to the companies in the field.

References

[1] Guidelines for Requirements Management (2000). United States Department of Energy, Software Quality Assurance Subcommittee

[2] Kotonya G., & Sommerville I. (1998) Requirements Engineering: Process and Techniques. John Wiley & Sons

[3] Parviainen P., Hulkko H., Kääriäinen J., Takalo J., Tihinen M. (2003) Requirements engineering, Inventory of technologies. VTT Publications 508, p. 106

[4] Sommerville I. & Sawyer P. (1997) Requirements Engineering: A Good Practice Guide. John Wiley & Sons, 390 p.

[5] Tvete B. (1999) Introducing Efficient Requirements Management. In: Proceedings of the 10th International Workshop on Database & Expert Systems Applications. IEEE Computer Society, pp. 370-375



rev

Our Service Portfolio

jb

Want To Place An Order Quickly?

Then shoot us a message on Whatsapp, WeChat or Gmail. We are available 24/7 to assist you.

whatsapp

Do not panic, you are at the right place

jb

Visit Our essay writting help page to get all the details and guidence on availing our assiatance service.

Get 20% Discount, Now
£19 £14/ Per Page
14 days delivery time

Our writting assistance service is undoubtedly one of the most affordable writting assistance services and we have highly qualified professionls to help you with your work. So what are you waiting for, click below to order now.

Get An Instant Quote

ORDER TODAY!

Our experts are ready to assist you, call us to get a free quote or order now to get succeed in your academics writing.

Get a Free Quote Order Now