80 likes | 186 Views
Requirements Engineering. Requirements Engineering. The first step of each process model What do we want to build?
E N D
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