Requirements engineering
In order to model your domain and design an appropriate architecture, you will need to know the requirements for the software you are building. Requirements engineering involves establishing the functionality that is required by the stakeholders, along with the constraints under which the software must be developed and operate. It encompasses all of the tasks involved in eliciting, analyzing, documenting, validating, and maintaining the requirements of the software system. As a software architect, you will be participating in these tasks so it is helpful to be familiar with them.
Types of software requirements
There are different types of software requirements, and software architects should be knowledgeable about them. The main types of software requirements include:
- Business requirements
- Functional requirements
- Non-functional requirements
- Constraints
Let's take a closer look at each of these types.
Business requirements
Business requirements represent the high-level business...