Software Engineering & Computer Science degrees involve many software-development projects. A Software development process is beneficial as it guides on what, when and how part of the development, including guidance on potential tools usage. Although teaching about various methods and techniques, there is no standardised method for students to follow. They are free to use as per their choice. However, in the new normal, remote team working will be very common for students and thus it will be incredibly difficult for students if they must decide on methods for each group assignment.

The aim of this project is to design a software development process that can be “instantiated” into the different levels of Software Engineering and Computer Science courses. The process will be more useful to our students if it fits into the assessment of their work. Thus, the second part of this project is to define structured ways in which students can present and submit their work.

The idea is to develop a set of guidance following a simplified software lifecycle. Our proposal structures and standardises key activities that students undertake when doing their software development coursework, including simple project management guidance that works for both individuals and small groups working remotely. Complexity can be added to a simple process according to the level of study, in which we add relevant tools and techniques as students progress through their degree and are better able to understand and apply those tools and techniques.

The SHU Development Process is based on the generic process framework by Pressman and Maxim, and comprises five methodological stages: These main stages encompass a set of support steps: analysis and design related to modelling; code and test related to construction; and delivery, support and feedback for deployment.

A view of the phases of the software development process.
General view of the proposed software development process.
Each level of study has an specific set of practices (guidelines, techniques and tools) with appropriate depthness for the level.

The current version of the process can be found at this github repository.
Any comments and suggestion are welcome and can be made directly in the repository.