✓ Types of Requirements – Functional and Non functional
✓ Four Phases of Requirement Engineering ✓ Software requirement Specification (SRS) ✓ Structure and contents of SRS ✓ IEEE standard format for SRS ✓ Case studies should be covered on the above topic
1 MASTER OF COMPUTER APPLICATION
Unit Objective
I. To learn the fundamentals of Requirement Engineering
II. To understand the basic concept of SRS III. To learn the different types of requirements in Software development .
Unit Outcomes
i. To study the basic structure and principles of SRS.
ii. To understand & implement the SRS format in system development. iii. To understand and learn the basic fundamental of IEEE software development models 2 MASTER OF COMPUTER APPLICATION Introduction to Requirement Engineering ❑What is Requirement Engineering? ✓ The process to gather the software requirements from client, analyze and document them is known as Requirement engineering. ✓ The goal of requirement engineering is to develop and maintain sophisticated and descriptive ‘System Requirements Specification’ document. ❑ Requirement Engineering Process: ✓ It is a four step process, which includes – ✓ Feasibility Study ✓ Requirement Gathering ✓ Software Requirement Specification ✓ Software Requirement Validation
3 MASTER OF COMPUTER APPLICATION
Introduction to Requirement Engineering
4 MASTER OF COMPUTER APPLICATION
Introduction to Requirement Engineering ❑What is Feasibility study? ✓ Feasibility study comes up with rough idea about what all functions the software must perform and which all features are expected from the software. ✓ The analysts can do a detailed study about whether the desired system and its functionality are feasible to develop. ✓ This feasibility study is focused towards goal of the organization. ✓ This study analyzes whether the software product can be practically materialized in terms of implementation, contribution of project to organization, cost constraints and as per values and objectives of the organization.
5 MASTER OF COMPUTER APPLICATION
Introduction to Requirement Engineering ❑What is Requirement Gathering? ✓ After feasibility report requirement gathering phase will starts with gathering requirements from the user. ✓ Analysts and engineers communicate with the client and end-users to know their ideas on what the software should provide and which features they want the software to include.
6 MASTER OF COMPUTER APPLICATION
Introduction to Requirement Engineering ❑What is Software Requirement Specification(SRS)? ✓ SRS is a document created by system analyst after the requirements are collected from various stakeholders. ✓ SRS documentation is the responsibility of system analyst to document the requirements in technical language. ✓ This is useful and understand by the software development team. ❑ SRS document have following features……. ✓ User Requirements are expressed in natural language. ✓ Technical requirements are expressed in structured language, which is used inside the organization. ✓ Design description should be written in Pseudo code. ✓ Format of Forms and GUI screen prints. ✓ Conditional and mathematical notations for DFDs etc.
7 MASTER OF COMPUTER APPLICATION
Introduction to Requirement Engineering ❑What is Software Requirement Specification(SRS)? ✓ A software requirements specification is the basis for your entire project. ✓ It lays the framework that every team involved in development will follow. ✓ It’s used to provide critical information to multiple teams such as development, quality assurance, operations, and maintenance. ✓ This keeps everyone on the same page. ✓ SRS helps to ensure requirements are fulfilled. ✓ It can also help you make decisions about your product’s lifecycle — for instance, when to retire a feature. ✓ Writing an SRS can also minimize overall development time and costs. 8 MASTER OF COMPUTER APPLICATION Introduction to Requirement Engineering ❑How to Write an SRS Document? 1. Introduction 1.1 Purpose 1.2 Intended Audience 1.3 Intended Use 1.4 Scope 1.5 Definitions and Acronyms 2. Overall Description 2.1 User Needs 2.2 Assumptions and Dependencies 3. System Features and Requirements 3.1 Functional Requirements 3.2 External Interface Requirements 3.3 System Features 3.4 Non-functional Requirements
9 MASTER OF COMPUTER APPLICATION
Introduction to Requirement Engineering ❑How to Write an SRS Document? ✓ Start With a Purpose: ✓ It sets the expectation for the product you’re building. ✓ Start by defining the purpose of your product.
✓ Intended Audience and Intended Use:
✓ Define who in your organization will have access to the SRS. ✓ How they should use it. ✓ This may include developers, testers, and project managers. ✓ It could also include stakeholders in other departments, including leadership teams, sales, and marketing.
1 MASTER OF COMPUTER APPLICATION
0 Introduction to Requirement Engineering ❑How to Write an SRS Document? ❑ Definitions and Abbreviations ✓ It’s smart to include a risk definition. ✓ Avoiding risk is top-of-mind for many developers especially those working on safety-critical development teams. ❑ Give an Overview of What You’ll Build ✓ Your next step is to give a description of what you’re going to build. ✓ Is it an update to an existing product? ✓ Is it a new product? ✓ Is it an add-on to a product you’ve already created? ✓ You should also describe why you’re building it and who it’s for.
1 MASTER OF COMPUTER APPLICATION
1 Introduction to Requirement Engineering ❑How to Write an SRS Document? ❑ User Needs: ✓ User needs are critical. ✓ You will need to define who is going to use the product and how. ❑ Assumptions and Dependencies: ✓ There might be factors that impact your ability to fulfil the requirements outlined in your SRS. ❑ Detail Your Specific Requirements: ✓ The next section is key for your development team. ✓ This is where you detail the specific requirements for building your product. ❑ Functional Requirements ✓ Functional requirements are essential to building your product.
1 MASTER OF COMPUTER APPLICATION
2 Introduction to Requirement Engineering ❑How to Write an SRS Document? ❑ External Interface Requirements ✓ External interface requirements are types of functional requirements. ✓ They outline how your product will interface with other components. ✓ There are several types of interfaces you may have requirements for, including: ✓ User ✓ Hardware ✓ Software ✓ Communications
1 MASTER OF COMPUTER APPLICATION
3 Introduction to Requirement Engineering ❑How to Write an SRS Document? ❑ System Features ✓ System features are types of functional requirements. ✓ These are features that are required in order for a system to function. ❑ Non functional Requirements ✓ Non functional requirements can be just as important as functional ones. ✓ These include: ✓ Performance ✓ Safety ✓ Security ✓ Quality SRS Template
1 MASTER OF COMPUTER APPLICATION
4 Introduction to Requirement Engineering ❑What is Software Requirement Validation? ✓ After SRS documents is developed, the requirements mentioned in this document are validated. ✓ User might ask for illegal, impractical solution or experts may interpret the requirements incorrectly. ✓ This results in huge increase in cost if not compressed in the bud. ✓ Requirements can be checked against following conditions … ✓ If it can be practically implemented ✓ If it are valid and as per functionality and domain of software. ✓ If there are any ambiguities ✓ If they are complete ✓ If they can be demonstrated
15 MASTER OF COMPUTER APPLICATION
Types of Requirements ❑What are Types of Requirements ? ✓ According to IEEE standard a requirement is defined as follows: ✓ A condition or capability needed by a user to solve a problem or achieve an objective. ✓ A condition or capability that must be met or controlled by a system or system component to satisfy a contract, standard, specification. ✓ software requirement can be of 3 types: ✓ Functional requirements ✓ Non-functional requirements ✓ Domain requirements
1 MASTER OF COMPUTER APPLICATION
6 Types of Requirements ❑What are Types of Requirements ? ✓ Functional Requirements: ✓ These are the requirements that the end user specifically demands as basic facilities that the system should offer. ✓ All these functionalities need to be necessarily incorporated into the system as a part of the contract. ✓ They are basically the requirements stated by the user which one can see directly in the final product, unlike the non- functional requirements. ✓ Requirements, which are related to functional aspect of software fall into this category. ✓ They define functions and functionality within and from the software system.
1 MASTER OF COMPUTER APPLICATION
7 Types of Requirements ❑What are Types of Requirements ? ✓ Functional Requirements: ✓ Functional requirements define a function that a system or system element must be qualified to perform and must be documented in different forms. ✓ The functional requirements are describing the behavior of the system as it correlates to the system's functionality.
1 MASTER OF COMPUTER APPLICATION
8 Types of Requirements ❑What are Types of Requirements ? ✓ Non-functional requirements: ✓ Requirements which are not related to functional aspect of software, fall into this category. ✓ They are implicit or expected characteristics of software, which users make assumption of it ✓ Non-functional requirements include - ✓ Security Cost Logging Interoperability Storage Flexibility Configuration Disaster recovery Performance Accessibility
19 MASTER OF COMPUTER APPLICATION
Requirement Elicitation Process ❑What is Requirement Elicitation Process? ✓ Non-functional requirements: ✓ Non-functional requirements are divided into two main categories: ❑ Execution qualities: ✓ Execution qualities like security and usability, which are observable at run time. ❑ Evolution qualities: ✓ Evolution qualities like testability, maintainability, extensibility, and scalability that alive in the static structure of the software system.
20 MASTER OF COMPUTER APPLICATION
Types of Requirements ❑What is Requirements Elicitation ? ✓ Requirements Elicitation is the process to find out the requirements for software system by communicating with client, end users. ✓ Requirements gathering : ✓ The developers discuss with the client and end users and know their expectations from the software. ✓ Organizing Requirements : ✓ The developers prioritize and arrange the requirements in order of importance, urgency and convenience.
21 MASTER OF COMPUTER APPLICATION
Types of Requirements ❑ Negotiation & discussion : ✓ If requirements are ambiguous or there are some conflicts in requirements of various stakeholders, if they are, it is then negotiated and discussed with stakeholders. ✓ Requirements may then be prioritized and reasonably compromised. ✓ The requirements come from various stakeholders. ✓ To remove the ambiguity and conflicts, they are discussed for clarity and correctness. ✓ Unrealistic requirements are compromised reasonably. ❑ Documentation : ✓ All formal & informal, functional and non-functional requirements are documented and made available for next phase processing.
22 MASTER OF COMPUTER APPLICATION
Requirement Elicitation Techniques ❑What are Requirement Elicitation Techniques? ✓ Requirements Elicitation is the process to find out the requirements for an intended software system by communicating with client, end users, system users and others in the software system development. ✓ There are various ways to discover requirements ❑ Interviews ✓ Interviews are strong medium to collect requirements. Organization may conduct several types of interviews such as: Structured (closed) interviews, where every single information to gather is decided in advance, they follow pattern and matter of discussion firmly.
23 MASTER OF COMPUTER APPLICATION
Requirement Elicitation Techniques ✓ Non-structured (open) interviews, where information to gather is not decided in advance, more flexible and less biased. ✓ Oral interviews ✓ Written interviews ✓ One-to-one interviews which are held between two persons across the table. ✓ Group interviews which are held between groups of participants. ✓ They help to uncover any missing requirement as numerous people are involved. ❑ Surveys: ✓ Organization may conduct surveys among various stakeholders by querying about their expectation and requirements from the upcoming system.
24 MASTER OF COMPUTER APPLICATION
Requirement Elicitation Techniques ❑What are Requirement Elicitation Techniques? ✓ Questionnaires: ✓ A document with pre-defined set of objective questions and respective options is handed over to all stakeholders to answer, which are collected and compiled. ✓ Task analysis: ✓ Team of engineers and developers may analyze the operation for which the new system is required. ✓ Domain Analysis: ✓ Every software falls into some domain category. ✓ The expert people in the domain can be a great help to analyze general and specific requirements.
25 MASTER OF COMPUTER APPLICATION
Requirement Elicitation Techniques ❑What are Requirement Elicitation Techniques? ✓ Brainstorming ✓ An informal debate is held among various stakeholders and all their inputs are recorded for further requirements analysis. ✓ Prototyping: ✓ Prototyping is building user interface without adding detail functionality for user to interpret the features of intended software product. ✓ It helps giving better idea of requirements. ❑ Observation ✓ Team of experts visit the client’s organization or workplace. ✓ They observe the actual working of the existing installed systems. ✓ They observe the workflow at client’s end and how execution problems are distributed. 26 MASTER OF COMPUTER APPLICATION