Software Development Process
1) Discuss the software that needs to be written
2) Write some code
3) Test the code to identify the defects
4) debug to find causes of defects
5) fix the defects
6) If not done, return to steps 1 or 3
- Write down all requirements
- Make plans before coding
- Break down development into smaller tasks and schedule and monitor them
- Require approval for all changes to requirements
- Use version control for all changes
- Track all bugs
- Review requirements and code
- Planning and conducting quality assurance.
Hypothesis
- Software development process increases flexibility and efficiency
- Upfront investment for greater return
Feasibility - Process Step
- A feasibility study precedes the decision to begin a project
- What is the scope of the project?
- Is the Project feasible?
- What is the benefit of the project?
- What are the risks?
- What are the costs / timeline?
A feasibility study leads to a decision: go or no-go
Project scope
- market and user research, identifying objectives
Technical Feasibility
- evaluating existing technology, surveying literature, and consulting.
Risk
- potential risks in early and late phases of development
- Requirements define the functions of the system from the clients view point. They must be developed in a manner that is understandable by the client and the development staff. Requirements may be set incrementally, especially for large projects. Failure to agree on the requirements is one of the leading causes of software projects failing.
Implementation and testing
- The design is realized as a set of programs or program units
- These software components may be written by the development team, acquired from elsewhere or modified from existing libraries or components
Integration
- Individual components or modules developed during the implementation phase are integrated.
Testing
- System testing the components are integrated and tested again ensuring that the integration is successful
Maintenance
- Bug fixes
- Content Updates and Events
- Customer Support
- Analytics and Data Analysis
The Downsides of Process Model - Waterfall
- It is a sequential approach. The development team works through the process
- The main drawback is the difficulties accommodating change.
Process Model - Spiral
1) Plan Objectives
2) Risk Analysis
3) Develop the next version of the product
4) Plan the next phase
![[spiral_model_PNG.png]]
- It is an iterative approach. Each iteration delivers a new prototype to get feedback until the final version is built
- Emphasizes risk management throughout the development process
- It provides more flexibility due to its spiral model
- Mainly used for large complex projects where risk management is crucial
- It is suitable for projects with evolving requirements and high levels of uncertainty