UPI Study › Courses › Software Engineering › Free lessons › Lesson 6.1 Free with a free account
Foundations of Modeling Software Requirements
Software Engineering · Chapter 6: Requirements Engineering and PrototypingSection 6.1 · lesson 38 of 1037 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: Prototyping Software: Building to Learn →← Running Projects with ScrumNext lesson: Prototyping Software: Building to Learn →
In this lesson
Why requirements get modeled, and how functional and non-functional ones differ.
- Explain the purpose of requirements modeling
- Distinguish functional from non-functional requirements
- Explain why the 2 types are modeled differently
- Place modeling within requirements engineering
Transcript
Everything said in the video, section by section (838 words). Read along, or search it.
Requirements Engineering and Prototyping
Foundations of Modeling Software Requirements
Analysis produces requirements. But a requirement written only as a sentence of plain English carries a hidden cost. This section covers why requirements get modeled, the difference between functional and non-functional requirements, and where modeling fits in the wider work of requirements engineering.
The Hidden Cost
Easy to Write, Easy to Misread
Natural language is easy to write, and easy to misread. Two people can read the same sentence, and walk away with two different pictures of what was asked for. And that gap often stays invisible until construction is already underway, when it is expensive to fix. Requirements modeling is the practice that closes the gap. It takes raw, natural-language understanding and gives it a structured, visual, checkable form, before anyone trusts it as a foundation for design.
What a Model Is
Deliberately Incomplete
In this context, a model is a simplified, structured representation of a requirement, or a set of them. A diagram, a notation, or another organized form. A model is deliberately incomplete. It leaves out details that do not matter for its question, so the ones that do matter are easier to see. Why bother? Because prose is a poor tool for catching certain problems. A missing case, a hidden contradiction between two requirements, or a boundary condition nobody mentioned can all sit quietly on a page. A model forces every path, state, or relationship to be shown explicitly, so those gaps tend to stand out.
2 Kinds of Requirement
What It Does, and How Well
Requirements come in two broad kinds. A functional requirement describes a specific action the system must perform. For example, let a user submit an order. A non-functional requirement describes a quality or constraint on how well the system performs. For example, process an order within two seconds. It is not a separate action. It is a bar that whatever the system does must clear. So functional requirements answer, what does the system do? Non-functional requirements answer, how well, and under what conditions?
Modeled Differently
Behaviors vs. Constraints
That difference shapes how each kind gets modeled. A functional requirement is, at its core, a describable sequence of behavior. So it fits naturally into behavior models, showing steps, a flow of data, or states. A non-functional requirement resists that treatment. It is not a step in a sequence. It is a property that applies across many steps at once. So it is usually attached as a constraint on a functional model, or captured in a separate specification of quality attributes.
Figure 6.1A
Where Modeling Sits
Requirements engineering is broader than modeling alone. It includes eliciting requirements from stakeholders, analyzing them, modeling them, specifying them formally, validating them, and managing them as they change. Modeling sits specifically between analysis and specification. It takes raw, natural-language understanding, and turns it into a structured form, precise enough to specify formally and check rigorously.
Modeling's Role
A Checkpoint, Not a Replacement
Modeling is not a replacement for the other activities. A model still has to be validated against what stakeholders actually meant. And it still has to be managed, as requirements change over the life of the project. What modeling contributes is a checkpoint partway through the process. It is the point where understanding becomes concrete enough to examine, question, and correct, before design work builds anything on top of it.
Table 6.1
Side by Side
Here are the two kinds side by side. A functional requirement focuses on a specific action, like letting a user submit an order. It answers, what does the system do? A non-functional requirement focuses on a quality or constraint, like processing that order within two seconds. It answers, how well, or under what conditions? Functional requirements are usually modeled with behavior diagrams, like flows and states. Non-functional requirements are usually constraints attached to those functional models.
Think About It
A Ride-Hailing App
Here is a question to think about. Take a ride-hailing app. One functional requirement is clear. A rider can request a ride to a destination. One non-functional requirement attached to it might be that the driver's location updates every few seconds. Now drop that second requirement, and keep the first. Rides still get requested. But riders wait without knowing where the driver is, they miss pickups, and they stop trusting the app. The function still works, and yet the system fails its users.
Key Terms
The Vocabulary of This Section
Let's lock in the key terms. Requirements modeling is representing requirements in a structured, simplified form, rather than only in natural language. A model is a deliberately incomplete, structured representation, built to make certain details easier to check. A functional requirement describes a specific action the system must perform. A non-functional requirement describes a quality or constraint on how well it performs. And requirements engineering is the broader set of activities, eliciting, analyzing, modeling, specifying, validating, and managing, that modeling is one part of.
Key Takeaways
What to Carry Forward
To pull this together. Requirements modeling turns natural-language requirements into a structured form, so hidden gaps are caught before design begins. Functional requirements are actions the system performs. Non-functional requirements are qualities and constraints on how well it performs them. Functional requirements fit behavior models, while non-functional ones are usually attached as constraints. Modeling sits between analysis and specification, within the broader work of requirements engineering. And it does not replace validation or management. It gives them something concrete to work with.
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 Foundations of Modeling Software Requirements
What is requirements modeling in software engineering?
What is the difference between functional and non-functional requirements?
How are non-functional requirements modeled?
Where does modeling fit in the requirements engineering process?
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 →