Software Engineering A Practitioners Approach 6e Chapter 7

  • Slides: 30
Download presentation
Software Engineering: A Practitioner’s Approach, 6/e Chapter 7 Requirements Engineering copyright © 1996, 2001,

Software Engineering: A Practitioner’s Approach, 6/e Chapter 7 Requirements Engineering copyright © 1996, 2001, 2005 R. S. Pressman & Associates, Inc. NOTE: Some slides referenced from: Ian Sommerville Slides for Software Engineering. These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 1

What is a requirement? n n It may range from a high-level abstract statement

What is a requirement? n n It may range from a high-level abstract statement of a service or of a system constraint to a detailed mathematical functional specification This is inevitable as requirements may serve a dual function n May be the basis for a bid for a contract - therefore must be open to interpretation May be the basis for the contract itself - therefore must be defined in detail Both these statements may be called requirements These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 2

Requirements Definition n n Should specify external behavior of the system so the requirements

Requirements Definition n n Should specify external behavior of the system so the requirements should not be defined using a computational model Includes functional and non-functional requirements n Functional requirements are statements of the services that the system should provide n Non-functional requirements are constraints on the services and functions offered by the system These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 3

Wicked Problems n n n Most large software systems address wicked problems Problems which

Wicked Problems n n n Most large software systems address wicked problems Problems which are so complex that they can never be fully understood and where understanding develops during the system development Therefore, requirements are normally both incomplete and inconsistent These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 4

Requirements Engineering-I n Inception—ask a set of questions that establish … n n n

Requirements Engineering-I n Inception—ask a set of questions that establish … n n n n basic understanding of the problem the people who want a solution the nature of the solution that is desired, and the effectiveness of preliminary communication and collaboration between the customer and the developer Elicitation—elicit requirements from all stakeholders Elaboration—create an analysis model that identifies data, function and behavioral requirements Negotiation—agree on a deliverable system that is realistic for developers and customers These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 5

Requirements Engineering-II n Specification—can be any one (or more) of the following: n n

Requirements Engineering-II n Specification—can be any one (or more) of the following: n n n Validation—a review mechanism that looks for n n n A written document A set of models A formal mathematical A collection of user scenarios (use-cases) A prototype errors in content or interpretation areas where clarification may be required missing information inconsistencies (a major problem when large products or systems are engineered) conflicting or unrealistic (unachievable) requirements. Requirements management These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 6

Inception n Identify stakeholders n n “who else do you think I should talk

Inception n Identify stakeholders n n “who else do you think I should talk to? ” Recognize multiple points of view Work toward collaboration The first questions n n Who is behind the request for this work? Who will use the solution? What will be the economic benefit of a successful solution Is there another source for the solution that you need? These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 7

Eliciting Requirements n n n meetings are conducted and attended by both software engineers

Eliciting Requirements n n n meetings are conducted and attended by both software engineers and customers rules for preparation and participation are established an agenda is suggested a "facilitator" (can be a customer, a developer, or an outsider) controls the meeting a "definition mechanism" (can be work sheets, flip charts, or wall stickers or an electronic bulletin board, chat room or virtual forum) is used the goal is n n to identify the problem propose elements of the solution negotiate different approaches, and specify a preliminary set of solution requirements These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 8

Eliciting Requirements These courseware materials are to be used in conjunction with Software Engineering:

Eliciting Requirements These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 9

Elicitation Work Products n n n n a statement of need and feasibility. a

Elicitation Work Products n n n n a statement of need and feasibility. a bounded statement of scope for the system or product. a list of customers, users, and other stakeholders who participated in requirements elicitation a description of the system’s technical environment. a list of requirements (preferably organized by function) and the domain constraints that apply to each. a set of usage scenarios that provide insight into the use of the system or product under different operating conditions. any prototypes developed to better define requirements These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 10

Use-Cases n n n A collection of user scenarios that describe thread of usage

Use-Cases n n n A collection of user scenarios that describe thread of usage of a system Each scenario is described from the point-of-view of an “actor”—a person or device that interacts with the software in some way Each scenario answers the following questions: n n n n n Who is the primary actor, the secondary actor (s)? What are the actor’s goals? What preconditions should exist before the story begins? What main tasks or functions are performed by the actor? What extensions might be considered as the story is described? What variations in the actor’s interaction are possible? What system information will the actor acquire, produce, or change? Will the actor have to inform the system about changes in the external environment? What information does the actor desire from the system? Does the actor wish to be informed about unexpected changes? These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 11

Use-Case Diagram These courseware materials are to be used in conjunction with Software Engineering:

Use-Case Diagram These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 12

Building the Analysis Model n Elements of the analysis model n Scenario-based elements n

Building the Analysis Model n Elements of the analysis model n Scenario-based elements n n n Class-based elements n n Implied by scenarios Behavioral elements n n Functional—processing narratives for software functions Use-case—descriptions of the interaction between an “actor” and the system State diagram Flow-oriented elements n Data flow diagram These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 13

Class Diagram From the Safe. Home system … These courseware materials are to be

Class Diagram From the Safe. Home system … These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 14

State Diagram These courseware materials are to be used in conjunction with Software Engineering:

State Diagram These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 15

Negotiating Requirements n Identify the key stakeholders n n Determine each of the stakeholders

Negotiating Requirements n Identify the key stakeholders n n Determine each of the stakeholders “win conditions” n n These are the people who will be involved in the negotiation Win conditions are not always obvious Negotiate n Work toward a set of requirements that lead to “win-win” These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 16

Reasons we need to negotiate n n Large software systems must improve the current

Reasons we need to negotiate n n Large software systems must improve the current situation. It is hard to anticipate the effects that the new system will have on the organization Different users have different requirements and priorities. There is a constantly shifting compromise in the requirements System end-users and organizations who pay for the system have different requirements Prototyping is often required to clarify requirements These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 17

Requirements Document Structure n n Purpose Overall Description System Features (Functional Requirements/Use Cases) External

Requirements Document Structure n n Purpose Overall Description System Features (Functional Requirements/Use Cases) External Interface Requirements n n User interface requirements or standards Hardware interfaces to other systems Software interfaces to other systems Communication Interfaces n Non-functional Requirements Appendices n See SRS Template on the CS 421 project page n (provided by http: //www. processimpact. com/). These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 18

Requirements Rationale n n n It is important to provide rationale with requirements (this

Requirements Rationale n n n It is important to provide rationale with requirements (this will be part of our description in the requirements specification document). This helps the developer understand the application domain and why the requirement is stated in its current form Particularly important when requirements have to be changed. The availability of rationale reduces the chances that change will have unexpected effects These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 19

Non-Functional Requirement Types n Product requirements n n Organizational requirements n n Requirements which

Non-Functional Requirement Types n Product requirements n n Organizational requirements n n Requirements which specify that the delivered product must behave in a particular way e. g. execution speed, reliability, etc. Requirements which are a consequence of organisational policies and procedures e. g. process standards used, implementation requirements, etc. External requirements n Requirements which arise from factors which are external to the system and its development process e. g. interoperability requirements, legislative requirements, etc. These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 20

Non-Functional Requirement Examples n Product requirement n n Organizational requirement n n 4. C.

Non-Functional Requirement Examples n Product requirement n n Organizational requirement n n 4. C. 8 It shall be possible for all necessary communication between the APSE and the user to be expressed in the standard Ada character set. 9. 3. 2 The system development process and deliverable documents shall conform to the process and deliverables defined in XYZCo-SPSTAN-95. External requirement n 7. 6. 5 The system shall provide facilities that allow any user to check if personal data is maintained on the system. A procedure must be defined and supported in the software that will allow users to inspect personal data and to correct any errors in that data. These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 21

Requirements must be testable n n Requirements should be written so that they can

Requirements must be testable n n Requirements should be written so that they can be objectively verified The problem with this requirement is its use of vague terms such as ‘errors shall be minimized” n n The system should be easy to use by experienced controllers and should be organized in such a way that user errors are minimized. The error rate should be been quantified n Experienced controllers should be able to use all the system functions after a total of two hours training. After this training, the average number of errors made by experienced users should not exceed two per day. These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 22

Requirements must be testable These courseware materials are to be used in conjunction with

Requirements must be testable These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 23

System Level Requirements n Some requirements place constraints on the system as a whole

System Level Requirements n Some requirements place constraints on the system as a whole rather than specific system functions n Example n n The time required for training a system operator to be proficient in the use of the system must not exceed 2 working days. These may be emergent requirements which cannot be derived from any single sub-set of the system requirements These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 24

Requirements Validation n n Concerned with demonstrating that the requirements define the system that

Requirements Validation n n Concerned with demonstrating that the requirements define the system that the customer really wants Requirements error costs are high so validation is very important n n Fixing a requirements error after delivery may cost up to 100 times the cost of fixing an implementation error Prototyping is an important technique of requirements validation These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 25

Validating Requirements-I n n n Is each requirement consistent with the overall objective for

Validating Requirements-I n n n Is each requirement consistent with the overall objective for the system/product? Work with all parties on this question! Have all requirements been specified at the proper level of abstraction? That is, do some requirements provide a level of technical detail that is inappropriate at this stage? Is the requirement really necessary or does it represent an add-on feature that may not be essential to the objective of the system? Is each requirement bounded and unambiguous? Does each requirement have attribution? That is, is a source (generally, a specific individual) noted for each requirement? Do any requirements conflict with other requirements? These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 26

Validating Requirements-II n n n Is each requirement achievable in the technical environment that

Validating Requirements-II n n n Is each requirement achievable in the technical environment that will house the system or product? Is each requirement testable, once implemented? Does the requirements model properly reflect the information, function and behavior of the system to be built. Has the requirements model been “partitioned” in a way that exposes progressively more detailed information about the system. Have requirements patterns been used to simplify the requirements model. Have all patterns been properly validated? Are all patterns consistent with customer requirements? These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 27

Requirements Reviews n n n Regular reviews should be held while the requirements definition

Requirements Reviews n n n Regular reviews should be held while the requirements definition is being formulated Both client and contractor staff should be involved in reviews Reviews may be formal (with completed documents) or informal. Good communications between developers, customers and users can resolve problems at an early stage These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 28

Requirements Reviews Check n n Verifiability. Is the requirement realistically testable? Comprehensibility. Is the

Requirements Reviews Check n n Verifiability. Is the requirement realistically testable? Comprehensibility. Is the requirement properly understood? Traceability. Is the origin of the requirement clearly stated? Adaptability. Can the requirement be changed without a large impact on other requirements? These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 29

Quality Function Deployment n n Function deployment determines the “value” (as perceived by the

Quality Function Deployment n n Function deployment determines the “value” (as perceived by the customer) of each function required of the system Information deployment identifies data objects and events Task deployment examines the behavior of the system Value analysis determines the relative priority of requirements These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R. S. Pressman & Associates, Inc. , copyright © 1996, 2001, 2005 30