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.
Requirements engineering
Types of software requirements
There are different types of software requirements, and software architects should be knowledgeable...