Introduction
For the Requirements Analysis course in the first semester, we worked as a team on an analysis project that had to meet the expectations of a fictitious client. Our case was a living room restaurant that needed an automated reservation system. The goal was to deliver detailed analysis and design documentation that could serve as a foundation for a development project in the second semester, executed by another student team.
What is “Requirements Analysis”
Requirements Analysis is a crucial first phase in software development. In this phase, it is investigated what a customer exactly needs, why that is needed, and how this can be functionally translated into a digital solution. This is done through:
- Functional and non-functional requirements
- Use case diagrams and descriptions
- Prototypes and wireframes
- Prioritization of features (for example via the MoSCoW method)
The goal is to arrive at a conclusive and unambiguous document that can serve as a blueprint for developers.
Realization
Our team worked intensively together to clearly map out the reservation system. The steps we went through included:
- Drawing up functional requirements based on the client’s wishes
- Working out use cases to model the interaction between user and system
- Designing interactive prototypes, so that the system could already be presented visually and functionally
- Prioritizing the functionalities with the MoSCoW method to distinguish between necessary and optional components
My personal responsibilities within the team were working out the requirements and background information, designing some screens within the prototypes, and applying the MoSCoW prioritization.
Reflection
This project gave me valuable insight into how an analysis process is approached professionally. I learned how important it is to communicate clearly with the client, how to translate abstract wishes into concrete software requirements, and how good preparation greatly simplifies the development process in later phases.
By actively contributing to both the analysis and the design, I learned how to lay a solid foundation for a web application – even before a single line of code is written. I take this experience with me in future projects, where I, as a developer or analyst, must bridge the gap between customer and technology.