Requirements Analysis
- The process that enables of a system or software project to be assessed.
2 types of requirements
- Functional Requirement
- The specific behavior or functions of a system. (
What
) - You could think of below as starting point to define it.
- Input
- Operation performed by the system
- Output
- It’s usually expected to be achieve by end users
- The specific behavior or functions of a system. (
- Non Functional Requirement
- How the system meets the functional requirements to a certain degrees. (
How
)- Quality or constraints that they system needs to satisfy.
- Also called
Non-behavioral requirements
. - You could think of following factors.
- Portability
- Security
- Maintainability
- Reliability
- Scalability
- Performance (Latency, Throughput, etc.)
- Reusability
- Flexibility
- How the system meets the functional requirements to a certain degrees. (
Note
It’s hard to have a chance to conduct this requirements analysis because most developers are brought into software projects during the middle stages, where their main responsibilities involve maintenance and adding new features.
Even if they join a new project that launches new service OR introduces a new component, Sadly, sometimes we lose the opportunity to conduct the requirements to a satisfactory level due to resource issues
However, this analysis is still important because the ability to conduct this is kind of starting point for system design that’s considered as basic competencies for senior software engineers. You might have seen many articles about system design starts from defining these requirements.