CMPT 275 Software Engineering Requirements Analysis Process Janice Regan, 2008-2014 1 Requirements Analysis A requirement is a feature (ability) of the system that client requires Requirements analysis seeks to assess (analyze) and specify the behavior of the final system as a set of requirements. Requirements analysis results in a complete, consistent, correct, and unambiguous specification of the requirements Requirements analysis can be iteratively
carried out or done in a top-down fashion Janice Regan, 2008-2014 2 Definitions Complete: All features of interest to the client are described by the requirements Consistent: No requirement contradicts any other requirement in the specification Unambiguous: The requirements cannot be interpreted in multiple ways. Correct: The requirements describe all features of interest to the client, but not extra or superfluous features Janice Regan, 2008-2014
3 Activities: Requirements Analysis Requirements Gathering (Elicitation) Understand what the product must do, what the requirements of the product are Requirements Specification Enumerate (list) each function the product must do and the constraints under which the function must be done Requirements Analysis Analyze the requirements of the system and verify that the list is complete, unambiguous, consistent and correct Janice Regan, 2008-2014 4
Purpose of Requirements Analysis Requirements analysis is used by software developers to understand The functions of the application to be developed What the client/user expects the application to do The relative importance of each function of the system to the client/user Necessary details of the application domain The scope of the project Janice Regan, 2008-2014
5 Purpose of Requirements Analysis Requirements Analysis also helps the clients/users to understand / quantify What their own requirements are Which requirements are most important The feasibility and costs of some features that may be difficult to implement (this may change the users prioritization of features) How they will be able to complete their required tasks Janice Regan, 2008-2014 6 Importance of Requirements Analysis
Frederick Brooks: The hardest single part of building a software system is deciding precisely what to build Barry Boehm: by investing more up- front effort in verifying and validating the software requirements, software developers will see reduced integration and test costs, as well as higher software reliability and maintainability Janice Regan, 2008-2014 7 Why requirements analysis? Early software engineering studies tried to identify the sources of problems and errors in large software development projects
Source of Errors/Problems other 10% coding 7% Effort to fix problems coding 1% other 4% design 13% design 27% Janice Regan, 2008-2014
After Demarco Requirements 56% Requirements 82% 8 Types of Requirements Functional Requirements: Specify services that the software system must provide. Describe all interactions between the system and its
environment that are not implementation dependent e.g.: Compute value of users stock portfolio Non-Functional Requirements: Specify quality (usability, reliability, performance, ) Specify constraints (budget, legal, implementation, ) e.g.: Compute value of stock portfolio in < 1s Janice Regan, 2008-2014 9 Non-Functional Requirements Quality: Performance
response time, capacity, availability, throughput Quality: Usability Ease of use Amount / detail of user documentation Specified fonts, layouts, colours, logos Special client interface needs? Janice Regan, 2008-2014 10 Non-Functional Requirements Quality: Dependability, Reliability Acceptable rate of errors, mean time to failure Robustness: ability to deal with incorrect inputs and high stress operating conditions without
serious failures Quality: Supportability maintainability: can easily fix defects or deal with new technology Adaptability: ease of adding new features Portability Janice Regan, 2008-2014 11 Non-Functional Requirements Constraints: Implementation Must use specific languages, tools, platforms Constraints: Legal requirements Licensing, government regulation, certification Constraints: Operations requirements Administration and management Constraints: Interface requirements
Interchange formats, interface to other systems Constraints: Packaging requirements Janice Regan, 2008-2014 12 Requirements It is IMPORTANT to understand that requirements originate from the needs of the client, not from the wishes of the application design team. Janice Regan, 2008-2014 13 Requirements
Common errors of developer driven requirements Replacing the requirements requested by the user to their own vision of the application Deciding to use a particular tool not supported by the user because it would make the application better For example producing a UNIX tool when developing an application for a company that uses only WINDOWS Can you think of others? Janice Regan, 2008-2014 14 Realistic, Verifiable, Traceable Requirements are only useful if they have the
following properties Realism: system can be implemented without violating any constraints Verifiability: As the system is designed and built repeatable tests can be developed that demonstrate the system fulfills each requirement Traceability: Each requirement can be mapped to one or more system functions, each system function can be mapped to at least one requirement. Interdependence between requirements are also mapped Janice Regan, 2008-2014
15 Overview of Requirements Analysis Analysis Requirements Specification Requirements Elicitation Functional model (requirements, use cases) Non-Functional requirements Analysis Model System Design
Dynamic model Static Model Analysis object model Janice Regan, 2008-2014 16 Requirements Analysis Phase Informal scenarios -> questions to client Software Requirement Specification doc (SRS) Use cases System Context diagram Primary classes Scenarios (not informal scenarios) Use case diagram Class diagram Janice Regan, 2008-2014
17 Requirements Gathering Activities Develop informal scenarios based on the project description Informal scenarios are used to Understand the initial project Formulate questions for client meetings, interviews, site visits Clarify understanding of the system requirements Janice Regan, 2008-2014 18
Gathering Requirements Interviews with client, managers, etc. Clarify project description, informal scenarios can help May be conducted by a member or members of the development team or a Business Analyst May include technical specialists from the clients organization as well as end users or clients Visit to client site, see how the application will be used
Analyze current procedures your system will replace Analyze current electronic system if one exists Janice Regan, 2008-2014 19 Requirements Specification Activity Write a list of requirements for your project based on the understanding you have gained from informal scenarios and meetings with the clients \ users You may need one or more cycle of meeting with the client followed by
refining your informal scenarios. Janice Regan, 2008-2014 20 Requirements Specification Activity The requirements must often be prioritized Basis of prioritization What resources are available? Are all users requests possible to implement with available resources? (scope is important)
Which requirements are critical to the client? Which requirements are needed by the client? Which requirements are desired by the client? Janice Regan, 2008-2014 21 Requirements Analysis Activities Analyze your requirements Tools used to analyze your requirements include:
System context diagram, Class (object) diagram, Primary Classes Use cases and use case diagrams Scenarios (formal) Janice Regan, 2008-2014 22 Requirements Analysis Activities:3 Update your requirements based on this analysis If necessary repeat the cycle of analysis of requirements (may also need additional elicitation) followed by update of requirements Complete revision of your SRS (first version to go to
the client) May conduct a structured client requirements review to confirm and or refine your requirements If necessary update of your SRS (both requirements and analysis) Janice Regan, 2008-2014 23
Network Access Protection. Network Access Protection (NAP) is a set of operating system components that provide a platform for protected access to private networks. The NAP platform provides an integrated way of evaluating the system health state of a network...
Shallow encoding. Information encoded by repetition or rehearsal. Elaborative encoding. Information encoded by association with meaning or linking to previous learning. Retrieval of these memories is aided by contextual cues. Contextual cues serve as a reminder of the time the...
Chapter 15: Genetic Engineering Section 15-1: ... working on bacteria that can clean up radioactive substances or metal pollution Polyploid Plants Drugs that prevent chromosome separation in meiosis are useful in plant breeding, to create polyploid plants that are larger...
Doing nothing is not an option (used this morning by John Holden, NHS England) Co-benefits Triple Bottom Line (see next slides) Circular economy "Product based" to "service based" If business are taking this seriously, then why are not we in...
RWS 200 and the lower division writing program. We want students to be able to identify claims, evaluate evidence and reasons, locate assumptions, identify argumentative moves, pose critical questions, produce sophisticated arguments, etc.
Ready to download the document? Go ahead and hit continue!