Software Development Process #
- 1. Introduction
- 2. The Reference Process
- 3. Level-based view
- 3.1. Level 4
- 3.2. Level 5
- 3.3. Level 6
- 4. Process-based view
- 4.1. Initiation
- 4.2. Planning
- 4.3. Modelling - Analysis
- 4.4. Modelling - Design
- 4.5. Construction - Code
- 4.6. Construction - Test
- 4.7. Deployment - Delivery
- 4.8. Deployment - Support and Feedback
- 5. Tools view
- 6. Development
- Team
- License
1. Introduction#
We are creating a software development process that can be followed by students at all levels as they work on both individual and group assessments. We're doing this because we want our students to use good practice, to undersatnd the software lifecycle and to become familiar with industry-standard tools.
2. The Reference Process#
The SHU development process is based on the generic process framework described by Pressman and Maxim [REF], and comprises five methodological stages: initiation, planning, modelling, construction and deployment. 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.

Each level of study has an specific set of guidelines, techniques and tools with appropriate depthness for the level.
The different stages are presented below, with links for their respective guidelines and can be viewed in two ways:
- Click here for a level-based view of the guidelines (L4, L5, L6).
- Click here for a process-based view of the guidelines.
Rembember, these stages are simply used for helping organising and presenting the process, and should not be interpreted as a strict order. In fact, each student is free to navigate over the stages as he/she sees fit.
A description of each phase is presented below.
- The Initiation phase is dedicated to understanding the objectives of stakeholders, and for the design and collection of requirements that help identify the expected software functionalities and quality attributes.
- The Planning phase is responsible for defining the scope of the project, the resources needed, the risks involved, a work schedule, and the resulting products.
- The Modelling phase is divided into analysis and design steps.
- The Analysis is focused on the definition/formalisation of requirements, using artefacts like user stories and use cases.
- The Design step is focused on the modelling of the solution. It usually involves decision around architecture, data structure, user-interface, classes, algorithms, etc.
- The Construction phase involves the implementation of the structures modeled in the design phase. For this purpose, code and tests are conducted.
- The Deployment involves the steps of delivery and support and feedback.
- Delivery is focused activities associated with the ongoing DevOps practices.
- Support and feedback step is driven by monitoring and maintenance activities. This step also contains guidance regarding assessment, reports and presentations. We also consider evaluation, reporting and reflection as part of this last step.
3. Level-based view#
3.1. Level 4#
- Initiation
- Initiation Guidelines
- Planning
- Git Version Control
- Project Management
- Team Communication
- Modelling - Analysis
- User Stories
- Use Case Models
- Modelling - Design
- Class, Entity Relationship and Sequence Diagrams
- Construction - Code
- Code Commenting
- Code Review
- Construction - Test
- Testing Guidelines
- Deployment - Delivery
- Delivery Guidelines
- Deployment - Support - Feedback
- Presenting, Reporting and Demonstrating
3.2. Level 5#
- Initiation
- Initiation Guidelines
- Planning
- Git Version Control
- Project Management
- Team Communication
- Modelling - Analysis
- User Stories
- Use Case Models
- Personas and Scenarios
- MoSCoW Prioritisation Method
- Modelling - Design
- Class, Entity Relationship and Sequence Diagrams
- Construction - Code
- Code Commenting
- Code Review
- Construction - Test
- Testing Guidelines
- Deployment - Delivery
- Delivery Guidelines
- Deployment - Support - Feedback
- Presenting, Reporting and Demonstrating
3.3. Level 6#
- Initiation
- Initiation Guidelines
- Planning
- Git Version Control
- Project Management
- Team Communication
- Modelling - Analysis
- User Stories
- Modelling - Design
- Class, Entity Relationship and Sequence Diagrams
- Construction - Code
- Code Commenting
- Code Review
- Construction - Test
- Testing Guidelines
- Deployment - Delivery
- Delivery Guidelines
- Deployment - Support - Feedback
- Presenting, Reporting and Demonstrating
4. Process-based view#
4.1. Initiation#
4.2. Planning#
4.3. Modelling - Analysis#
4.4. Modelling - Design#
4.5. Construction - Code#
4.6. Construction - Test#
4.7. Deployment - Delivery#
4.8. Deployment - Support and Feedback#
5. Tools view#
- Project Management: Trello, MS Project, MS Excel
- Team Communication: Team, Slack
- Version Control: Git, CVS or similar
- Design: STARUML, Visio or similar
- Coding: Visual Studio/ Intelli J or similar
- Unit Testing: Junit/Nunit or similar. Coverage tools
- Code Review: SonarQube
- Integration Testing: Azure DevOps or similar
- User Acceptance Testing: Selenium
- Deployment/Release: Azure DevOps or similar
6. Development#
Team#
- Carlos Da Silva
- Soumya Basu
- Chris Bates
- James Harmson
- Brian Davis
- Jack Carey
License#
This material is made available under Creative Commons Attribution-ShareAlike 4.0 International License.