As easy as it sounds, software requirements are requirements for software. But let’s dig a little bit deeper. Requirements are not only the functions required, actually this might be the least of the concerns in terms of requirements. Requirements must surpass all of the client’s expectations.
There’s even a science in charged of this analysis; and it is called Requirement Engineering its goal is to develop a very very very special and important document called the System Requirements Specification.
It involves mainly four steps, although there are text that claim it to be more than that and they are:
- Feasibility Study: This is the initial stage. In this one, the requirement engineer must meet the client in order to talk about the general expectations. Then, he produces a very wide and thorough analysis on the possible constrains, implementation cost, and objectives. It also explores the technical aspects of the project wit the future always in mind.
- Requirement Gathering: This is the solid, concrete and full list of requirements. Usually, this list contains the explicit requirements and specifications of the project.
- Software Requirement Specification: This is the formal and official document I talked about in the introduction. This is a natural language document in which all the interactions must be stated. And by all, I mean it. Every single interaction between hardware and software must be in there. Cross-plattform specification, security, limitations, maintainability must be there too.
- Software Requirement Validation: All the previous was never validated nor analyzed. In this stage, the document is impressively analyzed. All variables are taken into account, feasibility, ethics, security, ambiguities, cost and many others. This is the most important stage, because what is stated in this final revision is what devs are going to work with.
There are several types of requirements, (mainly two, read more
And most important, they all have the same weight while taking decisions. There are no biased decisions in this topic. They all weigh the same because each one impacts the others in a certain way. For example, if the system is more complex, we might need the final user interface to be even more friendly due to the business requirements.

From its beginnings in the 1960s, writing software has evolved into a profession concerned with how best to maximize the quality of software and of how to create it.


with the connection and interaction as the content interlinks and relates seamlessly.