| written 6.9 years ago by |
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.


and 4 others joined a min ago.