Software Process Model
There are lots of software process models, including waterfall, prototyping, iterative,incremental development, spiral development, rapid application development, extreme programming and various types of agile methodology.
- The Waterfall Model
The waterfall model,also known as the classic life cycle, is a sequential development approach, in which development is seen as flowing steadily downwards(like a waterfall) through several phases as shown in Figure 2-1, typically encompasses the following activities:
- Requirements analysis resulting in a software requirements specification
- Software design which refers to modeling
- Programming
- Testing
- Integration, if there are multiple subsystems
- Development(or Installation)
- Maintenance which refers to ongoing support of the completed software till retirement
- The Incremental Model
- The Spiral Model The Spiral Model is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the Waterfall model.
- The Agile Process
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation.
- Responding to change over flowing a plan
Phases of Software Development
- Software Development Life Cycle These phases encompass planning, analysis, design, implementation and maintenance phases.
- Planning phases
The goal of this period is to creative a project development plan.
- Assemble the project team
- Justify project
- Choose development methodology
- Develop a project schedule
- Produce a project development plan
- Analysis Phase
The goal of the analysis phase is to produce a list of requirements for a new or revised information system.
- Study the current system
- Determine system requirements
- Write requirement report
- Design Phase
- Identify potential solutions
- Evaluate solutions and select the best
- Select hardware and software
- Develop application specifications
- Obtain approval to implement the new system
- Implementation Phases
- Purchase and install hardware and/or software
- Create applications
- Test applications
- Finalize documentation
- Train users
- Convert data
- Convert to new system
- Maintenance Phase
- Operate equipment
- Make backups
- Provide help to users
- Fix bugs
- Optimize speed and security
- Revise software as necessary to meet business needs
Software Reengineering Activities
- Inventory Analysis
- Document Restructuring
- Reverse Engineering
- Code Restructuring
- Data Restructuring
- Forward Engineering