This is an assignment question I had for my Design Patterns and Software Testing class.
You are given a project that is going to be used in a high school with 400 students. The application will store the student specifications along with the courses they take and corresponding marks into a database and applies some calculations for each student and each class. For example, the average of the marks of a specific course in a class, the number of failed students in a subject in a class, etc. The deadline of the application has been defined six months from the time that you sign the contract.
Name the “development cycle model” that you prefer to use for implementing such an application and explain in detail why would you do so?
Hint: Consider the type of the project, your limitations, your client, etc. A good solution would explain the advantages of the chosen model in comparison with other models. Try to explain it clearly, think realistically as if you have signed such a contract and try to forecast any issue that may come up in future for each model and choose the best one.
Different development cycle models are used for different things, so you must choose an efficient one that will work according to the specifications that your client wants. There are three different development cycles.
The development cycle model that I would prefer to use for this application would be the Agile Development Cycle. One reason why I would use this model is because agile is preferred for smaller projects which this application would be. Another reason is that it is the best choice for the situation out of the three, spiral is intended for larger and complicated projects, and waterfall should only be used if the client is completely sure that they won’t make any changes. In a project like this, the client might want to add more requirements like for example, which students made honours and etc which is why waterfall would not work. With the agile development cycle changing requirements are welcome, even late in the development of the application. Agile is also better because the development is broken into short iterations which means if the school gets more students, the development of the application will be able to adjust to this change easily. Those are the reasons why the agile development cycle should be used instead of the waterfall model and the spiral model.