The first step of the Software Development Lifecycle is Functional & non Functional Requirement Gathering , it is the result from the specification of the informal ideas a client has about a product. The goals of this phase are to define the needed software and hardware. It is a really important phase because failures at this stage may increase the cost of development in higher stages to ensure the customer needs.
There are two factors to consider:
Initial Input: The idea of how a system will be created considering the needs of the client and defining a problem to be solved.
Desired Output: The requirements must be as specific as possible so the problem that needs to be solved can be completely understood.
Requirements Elicitation is mainly understanding and analyzing all of the requirements a client has for a system. Developers & engineers work closely with clients to understand the problems that need to be solved and what functionality a system should have and what hardware is optimal.
The problem is that clients usually do not have a clear idea of what they want or need and if there are many stakeholders, they will most surely have conflicting ideas. The conditions need to be met for the client to be able to solve a specific problem or achieve a certain objective and it must satisfy specific contracts, standards and specifications.
Requirements Elicitation – basic customer idea and definition.
Requirements Specification – Basic developer design and technical specifications.
Requirement analysis normaly uses one of two models: Dynamic model or Object Model. These specifications use formal (exact mathematical syntax or semanic syntax) or semi-formal notation (like UML).
In general this is a phase of understanding the stated problem that the client has and how it should be it describes “What” is needed but not “how” it should be achieved.
Here are some elicitation techniques to consider:
Uploaded by Mohamed Elgendy