Requirements Engineering Requirements Engineering The first step of

  • Slides: 12
Download presentation
Requirements Engineering

Requirements Engineering

Requirements Engineering • The first step of each process model • What do we

Requirements Engineering • The first step of each process model • What do 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

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 i. Phone

Answer: list some functional and nonfunctional requirements for an i. Phone • Functional: –

Answer: list some functional and nonfunctional requirements for an i. Phone • Functional: – – The system shall make a phone call The system shall receive a phone call The system shall allow the user to adjust volume etc • Non-functional: – The system shall boot up in 60 seconds or less – The system shall respond to touch within 1 second – etc

Requirements qualities • Three Cs: – Clear – Consistent – Complete (internally and externally)

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

Exercise • Give an unclear requirement, then fix it • Give an inconsistent set

Exercise • Give an unclear requirement, then fix it • Give an inconsistent set of requirements, then fix them • Give an incomplete requirement, then fix it*

Answer • Unclear: “The background shall be blue” – There are many shades of

Answer • Unclear: “The background shall be blue” – There are many shades of blue…is #3333 CC blue? – Fix: “The background shall be #0000 FF” • Inconsistent: “The background shall be red” and, elsewhere “The background shall be a cool color” – Fix: “The background shall be #0000 FF” • Incomplete: This is the hardest; it means we’re missing a requirement or information – Fix: …make sure you have all your requirements (externally complete) – Fix: …make sure you have enough info; include supporting documents when needed (i. e. what is 508 compliance? ) (internally complete)

Testable Requirements • Do not use vague terminology; “errors shall be minimized…” • Should

Testable Requirements • Do not use vague terminology; “errors shall be minimized…” • Should NOT partially pass or fail • Should have a source

Requirements Validation • It’s cheapest to fix faults at this step, than later on

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?

Quiz review • What is a functional requirement? • What is a non-functional requirement?

Quiz review • What is a functional requirement? • What is a non-functional requirement? • What do all requirements have to be?

In-class exercises • Let’s imagine we have an ATM – Come up with 5

In-class exercises • Let’s imagine we have an ATM – Come up with 5 functional requirements – Show each requirement could be improved – Show each requirement could have been worse – Come up with 3 non-functional requirements – Do the same as above • Complete the exercises at http: //www. cs. gmu. edu/~kdobolyi/cs 321/Requirements_Worksheet. docx • Complete the exercises at http: //www. cs. gmu. edu/~kdobolyi/cs 321/hwk 01. html

Assignment (time permitting) • Examine the Quiz Game description • In your teams, come

Assignment (time permitting) • Examine the Quiz Game description • In your teams, come up with at least seven functional requirements and at least two nonfunctional requirements – Remember the three Cs – Requirements specify external behavior – Requirements must be testable • Turn in this assignment through svn – See instructions and grading rubric on project page