Requirements Modeling in Software Engineering: Classes, Functions & Behaviors

Instructor: Alexis Kypridemos

Alexis is a technical writer for an IT company and has worked in publishing as a writer, editor and web designer. He has a BA in Communication.

This lesson will explain the concepts of requirements modeling in the context of software engineering. Topics covered include the patterns used, as well as classes, functions and behaviors. We will also briefly touch upon an example state diagram using UML(Unified Modeling Language).

Requirements Modeling

Requirements modeling in software engineering is essentially the planning stage of a software application or system. Generally the process will begin when a business or an entity, for example an educational institution, approaches a software development team to create an application or system from scratch or update an existing one. Requirements modeling comprises several stages or 'patterns': scenario-based modeling, data modeling, flow-oriented modeling, class-based modeling and behavioral modeling. Each of these stages/patterns examines the same problem from a different perspective.

Identifying Requirements

Requirements in this context are the conditions that a proposed solution or application must meet in order to solve the business problem. Identifying the requirements is not an exclusively technical process, and initially involves all the stakeholders, like the representatives of the entity that has commissioned the software project, who may not necessarily be from a technical background, as well as the software developers, who are necessarily the technical team. Together, they discuss and brainstorm about the problem, and decide what functions the proposed application or system must perform in order to solve it.

Functional vs. Non-Functional Requirements

A functional requirement specifies something that the application or system should do. Often this is defined as a behavior of the system that takes input and provides output. For example, a traveler fills out a form in an airline's mobile application with his/her name and passport details (input), submits the form, and the application generates a boarding pass with the traveler's details (output).

Non-functional requirements, sometimes also called quality requirements, describe how the system should be, as opposed to what it should do. Non-functional requirements of a system include performance (e.g. response time), maintainability, and scalability, among many others. In the airline application example, the requirement that the application must display the boarding pass after a maximum of five seconds from the time the traveler presses the 'submit' button would be a non-functional requirement.

Working with Requirements Modeling

As mentioned above, requirements modeling includes several stages or patterns, each examining the problem and its proposed solution from a different perspective. Technically, there is no 'right way' of going through these stages, but generally the process would begin with scenario-based modeling and complete with behavioral modeling.

Scenario-based Modeling

Scenario-based modeling's primary objective is to look at a system from the user's perspective and produce a use case, an example instance of the user interacting with the system, like the traveler using the airline application to generate their boarding pass. It makes sense to start with this step as the other requirements modeling stages/patterns will make reference to this use case.

The below is a use case diagram depicting three possible use cases of the traveler using the airline application. The first is the one in the example, getting a boarding pass. The following two are searching for flights and buying air tickets.

Use Cases

Class-based Modeling

Class-based modeling identifies classes, attributes and relationships that the system will use. In the airline application example, the traveler/user and the boarding pass represent classes. The traveler's first and last name, and travel document type represent attributes, characteristics that describe the traveler class. The relationship between traveler and boarding pass classes is that the traveler must enter these details into the application in order to get the boarding pass, and that the boarding pass contains this information along with other details like the flight departure gate, seat number etc.

Data Modeling

Data modeling essentially works with the same elements as class-based modeling (object, attributes, relationships) but uses the information to produce a detailed model, termed a physical model, of what the database structure will be that will hold all the data, for example the name,passport number and other details of the travelers that use the airline application.

To unlock this lesson you must be a Member.
Create your account

Register to view this lesson

Are you a student or a teacher?

Unlock Your Education

See for yourself why 30 million people use

Become a member and start learning now.
Become a Member  Back
What teachers are saying about
Try it risk-free for 30 days

Earning College Credit

Did you know… We have over 160 college courses that prepare you to earn credit by exam that is accepted by over 1,500 colleges and universities. You can test out of the first two years of college and save thousands off your degree. Anyone can earn credit-by-exam regardless of age or education level.

To learn more, visit our Earning Credit Page

Transferring credit to the school of your choice

Not sure what college you want to attend yet? has thousands of articles about every imaginable degree, area of study and career path that can help you find the school that's right for you.

Create an account to start this course today
Try it risk-free for 30 days!
Create An Account