Software Engineering Requirements PDF
Document Details
Uploaded by IngeniousTan
National University
Tags
Related
Summary
This document provides a summary of different types of software requirements, focusing on both functional and non-functional ones. It defines software requirements as capabilities, and details how these are classified and used in software development. It also includes examples of both functional and non-functional requirements, highlighting how these requirements are defined.
Full Transcript
SOFTWARE ENGINEERING CHAPTER 2 Requirements Engineering (Software Requirements) 1 Requirements Engineering Software Engineering Requirement Engineering - Definition Requiremen...
SOFTWARE ENGINEERING CHAPTER 2 Requirements Engineering (Software Requirements) 1 Requirements Engineering Software Engineering Requirement Engineering - Definition Requirements Engineering is the process to identify, analyze, document, and manage the needs and expectations of stakeholders for a software. It describes what services required by customer from a software and the conditions which it should operates. It may range from a high level abstract statements of what a software should do to a detailed functional specification. Both these statements are called requirements. Requirements Engineering Software Engineering Requirement Engineering - Definition Once a contract has been awarded, the contractor must write a system definition for the client in more detail so that the client understands and can validate what the software will do Requirements engineering is critical step in the success of software development projects. It ensures that software meets the needs of all stakeholders and is delivered on time, within budget, and to the required quality standards. Requirements Engineering Software Engineering Types of Software Requirements Requirements Engineering Software Engineering Types of Software Requirements IEEE defines Software requirement as a capability possessed by the software in order to solve a real world problem. Requirements should be clear, correct and well define There are two types of software requirements Functional Requirements Non Functional Requirements Requirements Engineering Software Engineering Types of Software Requirements Functional requirements Describe functionality or system services in details. Statements of what service the system should provide, what the system should behave (react) to particular inputs Essentially “What” the system should do Requirements Engineering Software Engineering Examples – Functional Requirements Students should be able to register courses, view attendance, view grades, do payments, and others Search options Teachers should be able to upload study materials, record attendance, create announcements and others System should also allow update, delete records Note: any activity that should be done in the system is functional Requirement Requirements Engineering Software Engineering Functional & Non Functional Requirements Non functional requirements These define system quality properties and constraints e.g. reliability, response time, maintainability, scalability, portability, storage requirements, environmental, regulatory etc. These requirements are not directly associated on what software is doing, but rather how is performing. It apply to the system as a whole rather than individual features or services. Requirements Engineering Software Engineering Examples - Non Functional Requirements Staff should NOT be able to update his/her salary information Software should be able to handle at least 20 thousand users Software should be able to operate with different OS (Portability) Software should be able to accommodate new requirements (flexible) Software should be able to manage errors (error handling) Software should be user friendly (Usability) Note: These are not direct functions of the system but make the system perform better Requirements Engineering Software Engineering Non Functional Requirements Requirements Engineering Software Engineering Difference between Functional & Non Functional Requirements Functional Requirements Non-Functional Requirements Describes what the system should do, i.e., Describes how the system should perform, i.e., specific functionality or tasks. system attributes or quality. Focuses on the performance, usability, and other Focuses on the features of the system. quality attributes. Defines the actions and operations of the Defines conditions that the system must system. operate. Requirements Engineering Software Engineering Non Functional Requirements Consideration Functional Requirements Non-Functional Requirements Mandatory Requirements Non- Mandatory Specified by architect, developers and technical Specified by users persons. Must be completed before performing non Depends on the availability of functional functional test requirements Requirements Engineering Software Engineering Non Functional Requirements Consideration Functional Requirements Non-Functional Requirements Its focus directly related to user and business Focuses on user experience and system requirements. performance. Can be tested through functional testing (e.g., Evaluated through performance testing, security unit or integration tests). testing, and usability testing. Examples: User authentication, data Examples: Scalability, security, response time, input/output, transaction processing. reliability, maintainability. Requirements Engineering Software Engineering SUMMARY Requirements for a software system set out what the system should do and define limitations on its operation and implementation. Functional requirements are the services that the system must provide or are functionalities of what software will solve as the customer problem Non functional requirements often quality attributes of the system being developed and the development process being used Non functional requirements may be more critical than functional requirements. If these are not met, the system may be useless. Requirements Engineering Software Engineering