Software Development Process #
- 1. Introduction
- 2. The Reference Process
- 3. Level-based view
- 4. Process-based view
- 5. Tools view
- 6. Development
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 understand 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
- Planning
- Modelling - Analysis
- Modelling - Design
- Construction - Code
- Construction - Test
- Deployment - Delivery
- Deployment - Support - Feedback
3.2. Level 5#
- Initiation
- Planning
- Modelling - Analysis
- Modelling - Design
- Construction - Code
- Construction - Test
- Deployment - Delivery
- Deployment - Support - Feedback
3.3. Level 6#
- Initiation
- Planning
- Modelling - Analysis
- Modelling - Design
- Construction - Code
- Construction - Test
- Deployment - Delivery
- Deployment - Support - Feedback
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#
The below are given as suggestions only, you may find and use other tools that you prefer.
- Project Management: Trello, MS Project, MS Excel
- Team Communication: Teams, Slack
- Version Control: Git, CVS or similar
- Design: diagrams.net,STARUML, Visio,mermaid-js,TextUML or similar
- Coding: Visual Studio / Intelli J or similar
- Unit Testing: Junit/Nunit,QUnit, Mocha or similar.
- Code Review: SonarQube
- Integration Testing: Azure DevOps or similar
- User Acceptance Testing: Selenium
- Deployment/Release: Azure DevOps or similar
6. Development#
6.1 Team#
- 2022 Jack Carey jack.carey@student.shu.ac.uk
- 2020 - 2022 Carlos Da Silva c.dasilva@shu.ac.uk
- 2020 - 2021 Soumya Basu soumya.basu@shu.ac.uk
- 2020 - 2021 Chris Bates
- 2020 - 2021 James Harmson
- 2020 - 2021 Brian Davis
6.2 License#
This material is made available under Creative Commons Attribution-ShareAlike 4.0 International License.
6.3 Analytics#
We are using privacy preserving analytics from Plausible.io to monitor which pages students view and the terms they search for. The analytics we collect are completely anonymous and no cookies are stored in your browser. Nevertheless, we're letting you know that we will use the information to inform development of the content on these pages.
Please contact the current research team if you have any questions.