Mastering Requirements Engineering: The Foundation of Successful Project Delivery
Learn the importance of clear, consistent, and complete requirements in software development to ensure products meet customer needs. Discover how to define functional and non-functional requirements and validate them effectively.
Mastering Requirements Engineering: The Foundation of Successful Project Delivery
E N D
Presentation Transcript
Requirements Engineering • The first step of each process model • Whatdo we want to build? • They may range from a high-level abstract statement of a service or of a system constraint to a detailed mathematical functional specification: can be statements (“The system shall…”), diagrams, use cases, etc. • Can be used as basis for contacts, etc.
Requirements specify external behavior • Functional requirements are statements of the services that the system must provide • “The system shall display the heart rate of the patient” • Non-functional requirements are constraints on the services and functions offered by the system • “The system shall display the heart rate of the patient within two seconds” • Performance, Scalability, Capacity, Availability Reliability, Recoverability, Maintainability, Serviceability, Security, Regulatory, Manageability • Exercise: list some functional and non-functional requirements for an iPhone
Requirements qualities • Three Cs: • Clear • Consistent • Complete (internally and externally) • Use the SE principle of incrementality to derive requirements • Remember, they must all be externally visible • Why? They must all be testable
Testable Requirements • Do not use vague terminology; “errors shall be minimized…” • Should NOT partially pass or fail • Should have a source
In-class example • Let’s imagine we have an ATM • Come up with 5 functional requirements • Show how each requirement could be improved • Show how each requirement could have been worse • Come up with 3 non-functional requirements • Do the same as above
Requirements Validation • It’s cheapest to fix faults at this step, than later on (sometimes 100 times cheaper) • Are they testable? • Do any conflict? • Do they cover all aspects of the system? • Are they what the customer wanted?
Assignment • Examine the Quiz Game description • In your teams, come up with at least seven functional requirements and at least two non-functional requirements • Remember the three Cs • Requirements specify external behavior • Requirements must be testable • Turn in this assignment through XP-Dev • See instructions and grading rubric on project page