UPI Study › Courses › Software Engineering › Free lessons › Lesson 6.3 Free with a free account
What Makes Good Requirements? Engineering Essentials
Software Engineering · Chapter 6: Requirements Engineering and PrototypingSection 6.3 · lesson 40 of 1038 min · free with a free account
Free preview
Create a free account to keep watching
It takes a minute and costs nothing. Your free account unlocks all of Chapter 1 and 3 more lessons of Software Engineering.
Lesson complete
Earn the 3 college credits for Software Engineering
Enrolling adds a quiz after each lesson, the graded work and the official transcript. Recommended for credit by NCCRS.
Next lesson: Capturing Requirements Through Real-World Scenarios →← Prototyping Software: Building to LearnNext lesson: Capturing Requirements Through Real-World Scenarios →
In this lesson
5 characteristics of a good requirement, and the 5 activities that keep it good.
- Explain why the quality of each requirement matters
- Identify the 5 characteristics of a good requirement
- Describe the 5 activities of requirements engineering
- Rewrite a weak requirement, and explain why management never stops
Transcript
Everything said in the video, section by section (1,036 words). Read along, or search it.
Requirements Engineering and Prototyping
What Makes Good Requirements?
Some requirements help a team enormously. Others actively mislead it. This section covers what separates the two. The five characteristics of a good requirement, and the five activities that gather requirements and keep them correct.
"Quickly"
Nobody Was Careless
A client tells a team that the search feature should return results quickly. Six months later, the team delivers a search that returns results in about three seconds. The client is furious. They expected well under a second. Nobody involved was careless, and nobody disagreed with what was written down. The requirement itself simply never said what quickly meant, in a number anyone could check.
Why Quality Matters
The Foundation Everything Rests On
A requirement is a statement of something the software must do, or a quality it must have. It is described from the perspective of what is needed, rather than how it will be built. Requirements are the foundation every later activity depends on. Modeling, construction, and testing all rest on them. And a flawed requirement does not stay contained. It gets built into a design, then written into code. Then it is covered by tests drawn from the same flawed understanding. The longer it goes unnoticed, the more it costs.
Table 1
5 Characteristics of a Good Requirement
Five characteristics separate a requirement a team can build against from one that only looks finished. Clear means plain, specific language. The system should handle errors gracefully fails it. Unambiguous means only one reasonable interpretation. The report should update regularly fails it. How often is regularly? Testable means a concrete way exists to check it. The app should feel fast fails it. Feasible means achievable within real technology, time, budget, and skill. And traceable means linked to where it came from, and to what implements and verifies it.
A Fine Distinction
Clear Is Not the Same as Unambiguous
Two of these are easy to confuse. Clear, and unambiguous. Clear is about how easy the requirement is to read and parse. Unambiguous is about how many readings it allows. Two different readers, given the same text, should describe the same thing. A requirement can technically have only one correct reading, and still be hard to parse. So a good requirement needs both.
Table 2
5 Activities of Requirements Engineering
Producing good requirements is a small process of its own, with five activities. Elicitation gathers requirements from stakeholders, through conversation, observation, and other means. Analysis examines what was gathered for conflicts, overlaps, and gaps, and turns it into an organized set. Specification writes the analyzed requirements down in a clear, structured, agreed form. Validation checks with stakeholders that the specification reflects what is actually needed. And management keeps requirements current and traceable as the project proceeds. It routinely reopens the earlier activities.
Before and After
Rewriting "Quickly"
Let's go back to the opening requirement. The search feature should return results quickly. It has no measurable threshold, so quickly means something different to each reader. Here is a rewritten version. A keyword search over the product catalog must return the first page of results within five hundred milliseconds, for ninety-five percent of queries. And that is measured under normal production load.
Why the Rewrite Works
All 5 Characteristics at Once
The rewrite passes all five characteristics at once. It is clear, because it names the specific feature and condition in plain language. It is unambiguous, because five hundred milliseconds for ninety-five percent of queries admits no competing reading. It is testable, because a team can measure response time directly and compare it to the number. It is feasible, as long as the number was set with real infrastructure in mind. And it becomes traceable once it is linked back to the stakeholder who needed it, and forward to the code and test that satisfy it.
A Process, Not a Step
Requirements Keep Moving
Requirements are not gathered once and then frozen. Stakeholder understanding evolves, business needs shift, and new information surfaces throughout a project. That is exactly why management is ongoing, rather than a step that finishes at sign-off. How often the other activities get revisited depends partly on the process. A single pass typically front-loads requirements work once. An iterative effort revisits it every cycle.
Figure 4
Frozen Requirements, Moving Need
This picture shows what happens over time. The solid line is the actual need. It keeps moving as the project goes on. The dashed line is what the requirements say when nobody manages them. They stay frozen at sign-off, and the gap keeps growing. That gap is effort spent building the wrong thing. The stepped line shows managed requirements. They are brought back in line with the real need every cycle, so the two keep tracking each other.
Table 4
When Management Lapses
Here is what a lapse in requirements management tends to cost. The team builds the wrong thing, putting effort into an outdated understanding of the need. Traceability is lost. Nobody can say why a requirement exists, or what depends on it. Scope becomes disputed, as stakeholders and the team disagree about what was promised. And the correction comes late and expensive, when the mismatch finally surfaces after delivery.
Apply It
"The System Should Be Secure"
Let's practice on another weak requirement. The system should be secure. It fails testable, because there is no concrete way to check whether secure has been achieved. And it fails unambiguous, because different readers could mean entirely different protections. A rewrite might say that user passwords must be stored with an approved hashing algorithm. And that login attempts must be limited to no more than five failures per account per hour. Both parts can be verified directly, and linked to whoever required them.
Key Terms
The Vocabulary of This Section
Let's lock in the key terms. A requirement states something software must do, or a quality it must have. Elicitation gathers requirements, and specification writes them down in an agreed form. Validation confirms, with stakeholders, that the specification reflects the real need. Requirements management keeps requirements current and traceable as the project proceeds. Traceability is the ability to track a requirement forward to what implements and verifies it, and backward to its origin. And a testable requirement has a concrete, objective way to check whether it has been satisfied.
Key Takeaways
What to Carry Forward
To pull this together. A flawed requirement gets built into the design, the code, and the tests before it is caught. Good requirements are clear, unambiguous, testable, feasible, and traceable. The requirements engineering process has five activities. Elicitation, analysis, specification, validation, and management. Adding a measurable threshold turns a vague wish into something a team can build and test against. And management is ongoing. Left alone, documented requirements drift away from the real need.
About Software Engineering at UPI Study
Software Engineering (Computer Science 301) is a self-paced online course of 103 video lessons in 15 chapters, from process models and agile to requirements, design, user interfaces, reliability, security and project management. It carries a NCCRS credit recommendation for 3 semester credits.
Every lesson transcript is free on pages like this one, and the videos are free with a free UPI Study account. Enrolling adds a practice quiz after each lesson, the graded work and final exam that earn the credit, lifetime access, and an official transcript on completion. UPI Study has helped over 130,000 students with college credits. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.
Enroll now → Course details Download the syllabus All Computer Science courses Every course with PRO →
Why take it here
Why students take Software Engineering with UPI Study
Where the credit goes
Universities that work with NCCRS
Software Engineering carries a NCCRS credit recommendation. These universities work with NCCRS; some are UPI Study's signed partners. ACE and NCCRS have over 2,100 cooperating colleges that will consider accepting credits; the final decision is with the universities.
Thomas Edison State UniversitySigned partner
University of the PeopleSigned partner
Charter Oak State CollegeSigned partner
Strayer UniversitySigned partner
Columbia Southern UniversitySigned partner
Indiana TechSigned partner
Penn StateWorks with NCCRS
Southern New Hampshire UniversityWorks with NCCRS
SUNYWorks with NCCRS
+many more cooperating universitiesFind my college →Find my college → Not listed? Ask Athena in the corner of this page, or book a 15-minute call.
FAQ
Questions students ask us
About What Makes Good Requirements? Engineering Essentials
What are the characteristics of a good software requirement?
What are the five activities of requirements engineering?
How do you make a vague requirement testable?
What is the difference between a clear requirement and an unambiguous requirement?
About the Software Engineering course
How many college credits is Software Engineering?
How much does Software Engineering cost and what is included?
Which universities accept UPI Study credits?
How long does Software Engineering take?
How are the exams done?
How do my credits reach my college?
Ready for the full course? Earn 3 credits in Software Engineering.
103 video lessons, a quiz after each one, and the graded work that earns the credit. Recommended for credit by NCCRS.
3 credits · NCCRSEnroll →