Software Requirements

In this section of chapter 2, we studied about software requirements which encludes topics: introductio, types of requirements, functional and non- functional requirements, requirement documentation ,and requirement engineering process.

Summary

In this section of chapter 2, we studied about software requirements which encludes topics: introductio, types of requirements, functional and non- functional requirements, requirement documentation ,and requirement engineering process.

Things to Remember

  • These requirements specifies the needs of the customer that helps to solve some problems. 
  • Types of requirements: system requirements, functional requirements, non-function requirements ,and domain requirements.
  • Functional Requirements:Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations.
  •  Non-functional requirements : Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc
  • Domain requirements : Requirements that come from the application domain of the system and that reflect characteristics of that domain.
  • Software requirement documentation is the official statement of what the system developer should implement. It should include both the user requirement for system and detail specification of the system requirement. 
  • The goal of the requirement engineering process is to create and maintain a system requirement document. 
  • The process of managing these changing requirements is called requirement management.
  • The requirement engineering process includes phases: feasibility study, requirement elicitation and analysis, requirement specification, requirement validation, and requirement management.

MCQs

No MCQs found.

Subjective Questions

No subjective questions found.

Videos

No videos found.

Software Requirements

Software Requirements

Introduction

The requirements for a system are the description of the services provided by the system and its operational constraints. These requirements specify the needs of the customer that helps to solve some problems. The process of finding out, analyzing and documenting and checking these services and constraints is called requirement engineering.

A requirement is simply high-level abstract statement of a service that the system should provide. Software requirements are classified in to user requirements and system requirements. User requirements are focused on what type of services the system is expected to provide and the constraints under which it must operate. System requirement set out the systems function, services and operational constraints in detail. Different levels of system specifications are useful because they communicate information about the system to different type of readers.

Types of Requirements

  1. User requirements:Statements in natural language plus diagrams of the services the system provides and its operational constraints written for customers.(slideshare)
  2. System requirements:A structured document setting out detailed descriptions of the system services. Written as a contract between client and contractor. (coursehero)
  3. Software specification:A detailed software description which can serve as a basis for a design or implementation. Written for developers.(coursehero)

Functional and Non-functional Requirements

  1. Functional Requirements:Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations.(slideshare)
  2. Non-functional requirements : Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc.(slideshare)
  3. Domain requirements : Requirements that come from the application domain of the system and that reflect characteristics of that domain. Domain requirements are derived from the application domain of the system rather than from the specific needs of the system requirements. Domain requirements are important because they often reflect fundamental concept of the application.(slideshare)

Functional Requirements

These are statements of services of the system should provide how the system should react to particular inputs and how the system should behave in particular situations.(Sommerville SE_book) The functional requirement for a system should describe what the system do or perform. These requirements depend on the type of software being developed, the expected user of the s/w and the general approach taken by the organization when writing requirements. Functional requirement describes system function in detail it s input, output, and so on.

The functional requirements discuss the functionality required from the system. The system is considered to perform a set of high-level function. Each function of the system can be considered as a transformation of a set of input to the corresponding set of output.(Mall Fundamental of SE) Functional requirement for a software system may be expressed in a number of ways.

The functional requirements define specific facilities to be provided by the system. These have been taken from the user requirement document. It is necessary for a software developer to interpret an ambiguous requirement to simplify its implementation. The functional requirement specification of a system should be complete and consistent.(Sommerville SE_book) Completeness means that all services required by the user should be defined. Consistency means that requirement should not have any contradiction.

Non-functional Requirements

Non-functional requirements are the requirements that are not directly concerned with the specific function of the system. (slideshare) They may related to emergent system properties such as reliability, response time and storage occupancy. They may define constraint on a system such as the capabilities of input/output devices and data representation used in the system interface. Non-functional requirement specify the emergent property of the system. They may specify the performance, security, availability and other property. This means that they are often more critical than functional requirement. Nonfunctional requirements are not just concern with a software system to be developed. Some non-functional requirements may constraint the process that should be used to develop the system.

Types of non-functional requirements:

  1. Product requirements:Product requirement specifies product behaviour. For example; performance requirement on how
    fast the system must execute and how much memory it requires reliability requirements that sets out the acceptable failure rate, probability requirement and usability requirement.(Sommerville SE_book)
  2. Organizational requirements:Organizational requirements are delivered from policies, procedure and structure of the
    customer and developers organization.
  3. External requirements:External requirements may include interoperability requirements that define how the system
    interacts with systems in other organization.

fig.types of non-functional requirements
fig.types of non-functional requirements

Software Requirements Documentation

Software requirement documentation is the official statement of what the system developer should implement. It should include both the user requirement for system and detail specification of the system requirement. The requirement has a diverse set of user ranging from the senior management of the organization to the engineers of responsible for developing the software. The diversity of the possible user means that the requirement document has to be compromise between communicating the requirement to customer, defining the requirement in precise detail for developer and tester and including information about possible system evolution. The level of detail that should include in a requirement document depends on the type of software that is being developed and the development process used. When the software will be developed by an external controller, critical system specification needs to be precise and detail.(Sommerville SE_book)

The requirement document should have the following :

  • Specify external system behavior
  • Specify implementation constraint
  • Easy to change
  • Serve as reference tool for maintenance
  • Record forethought about the life cycle of the system i.e. predict changes
  • Characterize responses to unexpected events(slideshare)

These are the various contents that the requirement document should possess :

  • Introduction
  • Glossary(coursehero)
  • User requirements definition(coursehero)
  • System architecture
  • System requirements specification
  • System models
  • System evolution
  • Appendices
  • Index
fig.users of requirement document
fig.users of requirement document

Requirement Engineering Process

The goal of the requirement engineering process is to create and maintain a system requirement document. The overall process includes four high-level requirement engineering sub-processes. These are concern with accessing whether the system is useful to the business (feasibility study), discovering requirement and analyzing them (elicitation and analysis), converting this requirement into some standard form (specialization), and checking that the requirement actually defines the system that the customer wants (validation).(Sommerville SE_book)

These activities are concern with the discovery documentation and checking of requirements. The people involved in development gain better understanding of what they want to do the software, modification made to the software and organizational environment. The process of managing these changing requirements is called requirement management.

fig. requirement engineering process
fig. requirement engineering process

Feasibility Study

A feasibility study decides whether or not the proposed system is worthwhile.(Sommerville SE_book) It is a short focused study that checks:

  • If the system contributes to organizational objectives(Sommerville SE_book)
  • If the system can be engineered using current technology and within budget(Sommerville SE_book)
  • If the system can be integrated with other systems that are used(Sommerville SE_book)

Requirement Elicitation and Analysis

  • Sometimes called requirements discovery(baidu)
  • Involves technical staff working with customers to find out about the application domain, the services that the system should provide and the system’s operational constraints.(csis)
  • May involve end-users, managers, engineers involved in maintenance, domain experts, trade unions, etc. These are called stakeholders(coursehero)

Activities in Requirement Elicitation and Analysis:

  1. Requirement discovery:This is the process of interacting with the stakeholder in the system to collect their requirements.
  2. Requirement Classification and Organization: This activity takes the unstructured collection of requirements, group of related
    requirement and organizes them into a proper structured manner.
  3. Requirement Prioritizing: Where multiple users are involved, requirement will be conflict .This activity is concerned with prioritizing requirement, finding and resolving requirement conflicting with discussing stakeholders.
  4. Requirement Documentation: The requirement is documented in a proper sequence which is input to the next stage of requirement engineering process.

Requirement elicitation and analysis is an iterative process with continual feedback from each activity to other activities.(coursehero)

Requirement Specification

Requirement specification is the process of generating requirement document that is useful for all types of system user. Requirement specification should be précised and complete. The requirement specification must specify merits and demerits along with recommendation of requirement.

Requirement validation

  • Concerned with demonstrating that the requirements define the system that the customer really wants.(csis)
  • Requirement validation overlaps analysis .it is concerned with finding the problems in the requirement.

Requirement validation is important because errors in a requirement document can lead to extensive rework and cost, when they are discovered during development or after the system is in service. During the requirement validation process; checks should be carried on the
requirements in requirement document .these checks include:

  1. Validity Check: A user may think that a system is needed to perform certain functions. However, further thought and analysis may identify additional or different functions that are required.(Sommerville SE_book)
  2. Consistency check: Requirement should not be conflict .there should no contradiction and differences between descriptions of same system function.
  3. Completeness check: The requirement document should include requirements, which define all functions intended by the system user. It includes two check process: Realism check which uses the knowledge existing technology, the requirement should be checked to ensure that they could actually implement. These checks should also take account of budget and schedule for the system development. And Verifiability which reduces the potential contradiction between customer and constrictor. The system requirement should verify. This enables both agree upon the system constraint.

Requirements management

The requirement for alarge software system is always changing .one reason for this is that these systems are usually developed to provide services of different kind of users. During the software process, stakeholder understanding of the problem constantly changing. Requirement management is the process of understanding and controlling changes to system requirement.

Software manager needs to keep track of individual requirement and maintain link between dependent requirements so that manager can assess the input of requirement changes .Software manager needs to establish a formal process for making change proposal and linking these to the system requirement.(slideshare)

Reference:

  • Sommerville, Ian. Software engineering. eight edition. Newyork: pearson, 2007.
  • coursehero. <https://www.coursehero.com/file/10421924/Lesson3-1/>.
  • coursehero. <https://www.coursehero.com/file/9656440/Software-Engineering-Lecture6/>.
  • csitprogram. <https://books.google.com.np/books?id=CDWRq0B9e5kC&pg=PA5&lpg=PA5&dq=+Software+Software+is+computer+programs+and+associated+documentation.&source=bl&ots=fuFOT7wYOS&sig=0tkbWoER8gf7RxbScRjIQc7W_d0&hl=en&sa=X&redir_esc=y#v=onepage&q=Software Software is%>.
  • slideshare. <http://www.slideshare.net/jayyu123/cs2-ah0405-softwarerequirements>.

Lesson

Software Requirements

Subject

Software Engineering

Grade

IT

Recent Notes

No recent notes.

Related Notes

No related notes.