Presentation on theme: "7.1 A Bridge to Design & Construction"— Presentation transcript:
1 7.1 A Bridge to Design & Construction Is requirements engineering necessary?Are there ever cases/situations where requirements engineering can be skipped? (Brad)Why do some software developers not pay enough attention to requirements engineering?
2 7.2 Requirements Engineering Tasks Inception—ask a set of questions that establish a basic understanding of the problem, the people, the solution, the effectiveness of communicationElicitation—elicit requirements from all stakeholdersElaboration—create an analysis model that identifies data, function and behavioral requirementsNegotiation—agree on a deliverable system that is realistic for developers and customersSpecification—can be a document, model, user scenarios, prototype, etc.Validation—a review mechanism that looks for errors, inconsistencies, unrealistic requirements.Requirements managementWhich of the 7 requirement engineering steps (Inception, Elicitation, Elaboration, Negotiation, Specification, Validation, Requirement Management) is most prone to failure? Why? (Brad)Failure in which requirement engineering step would be most likely to cause the project to fail? (Brad)
3 7.3 Inception Identify stakeholders Recognize multiple points of view Should a software developer ever choose to ignore a stakeholder viewpoint that s/he believes would hurt the quality of a project? If so, what would be an ethical solution to this problem?Work toward collaborationThe first questionsWho is behind the request for this work?Who will use the solution?What will be the economic benefit of a successful solutionIs there another source for the solution that you need?What types of questions should be asked during the Inception phase? What types of questions should be avoided? (Brad)What are some other “context-free” questions that you might ask a stake holder during inception?What does “feasibility analysis” imply when it is discussed within the context of the inception function?
4 7.4 Eliciting Requirements: Collaborative Requirements Gathering meetings are conducted and attended by both software engineers and customersrules for preparation and participation are establishedan agenda is suggesteda "facilitator" controls the meetinga "definition mechanism" is usedthe goal is to identify the problem, propose elements of the solution, negotiate different approaches, and specify a preliminary set of solution requirements.Difficult due to:Problems of scopeProblems of understandingProblems of volatility
5 7.4 Eliciting Requirements How involved should developers be in the Elicitation phase? (Brad)What are the benefits & consequences of having developers actively involved in the Elicitation phase? (Brad)In addition to the problems of scope, understanding, and volatility, what other significant issues would a requirements engineer face during elicitation?At what point during requirements engineering is acceptance risk the highest? At what point is it the lowest? What steps can a software developer take to minimize this risk?You have been given the responsibility to elicit requirements from a customer who tells you s/he is too busy to meet with you. What should you do?
6 7.4 Eliciting Requirements : Quality Function Deployment Function deployment determines the “value” (as perceived by the customer) of each function required of the systemNormal requirementsExpected requirementsExciting requirementsWhat are the dangers of "Expected" and "Exciting" requirements? (Brad)What “obvious” information about a system is a stakeholder or end-user likely to omit from the list of requirements?
7 7.4 Eliciting Requirements Elicitation Work Products: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 elicitationa 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.
8 7. 5 Developing Use-CasesA collection of user scenarios that describe the thread of usage of a systemEach scenario is described from the point-of-view of an “actor”—a person or device that interacts with the software in some wayAn actor and an end-user are not necessarily the same.What features compose an effective use-case?Should stakeholders be asked to develop use-cases on their own for a project?Do any problems arise from using use-cases as part of the requirements engineering process?
10 7.6 Building the Analysis Model Elements of the analysis modelScenario-based elementsFunctional—processing narratives for software functionsUse-case—descriptions of the interaction between an “actor” and the systemUse case diagram, activity diagramClass-based elementsImplied by scenariosClass diagramBehavioral elementsState diagramFlow-oriented elementsData flow diagram
14 7.6 Building the Analysis Model Is the analysis model an effective way to describe system requirements? Why or why not?Why would it be advantageous to use different modes of representation (e.g. Use Cases, Flow Charts, computer based tools) while building the analysis model? (Brad)Why are analysis models considered a "snapshot of the system in time"? (Brad)
15 7.7 Negotiating Requirements Identify the key stakeholdersThese are the people who will be involved in the negotiationDetermine each of the stakeholders “win conditions”Win conditions are not always obviousNegotiateWork toward a set of requirements that lead to “win-win”How can a systems developer resolve disputes effectively during negotiation?Let’s assume that you’ve convinced the customer (you’re a very good salesperson) to agree to every demand you have as a developer. Is that always a good thing? (Brad)What does “win-win” mean in the context of negotiation during the requirements engineering activity?
16 7.8 Validating Requirements Examine each element of the analysis model for consistency, omissions, and ambiguity.What steps can be maximize the effectiveness of requirements validation? (Brad)Do a majority of successful software projects spend a considerable about of time on requirements validation? How much time should be spent on this step?If requirements are not consistently stated, how long will it take for problems to occur?What are the benefits of requirement specification templates/documents? What are the drawbacks?