









Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
This course includes topics like software processes, requirements analysis and specification, design, prototyping, implementation, validation and verification, UML-based modeling, integrated development environments, and case studies. Key points of this lecture are: The Requirements Workflow, Software Engineering, Metamodel for Software Requirements, Requirements Workflow Details, Importance of Requirements, Defining Requirements, Inception and Elaboration Phases, Conflict Resolution, Stakeholde
Typology: Study notes
1 / 16
This page cannot be seen from the preview
Don't miss anything!










On special offer
The purpose of the requirements workflow is to reach an agreement on what the system should do, expressed in a way accessible to the users of the system Requirements engineering involves: elicitation, negotiation, conflict resolution, prioritization, documentation, and maintenance of requirements Various stakeholders are involved in establishing the set of requirements for the system UML uses cases describe functional requirements, but non-functional requirements need different description
Metamodel for Software Requirements Arlow & Neustadt’s approach for requirements engineering is shown in Fig. 3.3 [Arlow 2002]. Details can be found in Section 3.
Arlow and Neustadt extend slightly the UP requirements workflow with the addition of new tasks: find functional requirements, find non- functional requirements, prioritize requirements, & trace requirements to use cases. As such, non-functional requirements can be addressed as well, along with the traditional UP/UML treatment of functional requirements via use cases. Fig. 3.5 [Arlow & Neustadt 2005]
the stakeholders need from the system Requirements engineering encompasses elicitation, negotiation, conflict resolution, prioritization, documentation, and maintenance of requirements Poor requirements engineering is the major cause of software project failure The second major cause of software project failure is lack of user participation
document that contains the set of requirements expected to be satisfied by the system, both functional and non-functional There are many ways to write an SRS (“company dependent” ways) The SRS provides the input for the analysis and design phases of the development process The bottom line regarding the SRS is: “does it help me to understand what the system should do or not?”
Simple format recommended for well-formed requirements:
Must have Should have Could have Want to have [the MoSCoW system]
Status (proposed, approved, rejected, incorporated) Benefit (critical, important, useful) Effort (measured in person*day or function points) Risk (high, medium, low) Stability (high, medium, low) TargetRelease (product version when implemented)
Direct users Other stakeholders (e.g., managers, maintainers, installers) Other systems that interact with the system Hardware devices attached to the system Legal and regulatory constraints Technical constraints Business goals
Interviews: Don’t imagine a solution Don’t mind read Ask context-free questions Listen Have patience! Questionnaire: they can supplement interviews. Good at getting answers to closed questions Requirements workshop Participants: facilitator, requirements engineer, stakeholders, domain experts Procedure: 1 Brainstorm (accept all ideas) 2 Identify key requirements 3 Iterate over, refine, and prioritize requirements