1.Require analysis , definition and system overview
- define exactly what we want to do.
- who is our audiences ,their age and their preferences in multimedia elements. Extracting the requirements from users and gauging the feasibility of the project. (The client usually know what they want but often have incomplete, ambiguous or contradictory requirements or even non-realistic requirements. It is the job of software developers and project managers to steer them in the right direction and to clarify the requirements)
- system overview is to see the big outline of the project and understand the steps need to be carried out.
- the idea is expanded, trimmed, manipulated, altered and formed into a complete concept.
- determine and document the hardware and software environment, the functions or features the software must have as well as the security requirements.
- Specification and Requirement Analysis - vary a lot depending on the formality, size, and scope of the project and the methodology used in an organization. (In general, it involves taking the requirements and describing them in a way meaningful to programmers)
- create a prototype.
- present the prototype to the client. If they agree, proceed with the next step.
2. Estimation
- have to be able to select from different options discussing the platforms , technologies and tools that will be used in the project.
- clearly list down what is included in the price and how much any additional features will cost.
- come out with rough project schedule.
3.Functional specification and UI prototype
- functional specification determines what exactly the target system must do.
- All requirements should be thoroughly defined and documented.
4. Software architecture/design and test plan
- software architecture designs included general and detailed design, low level details than the previous step.
- general design/ low level details is about the structural design, development strategy.
- detailed design is about the specification and documentation on each components are developed.
- determine the system components that fulfill requirements and the way these components work together.
5. Development or Coding
- this is pretty obvious, this is where the rubber meets the road and the program is built.
- make sure the coding is understandable, organized and documented.
6. Implementation (coding) and testing
- build target system regarding the specification developed in the previous stage.
- transfer specification algorithms into a programming language.
- to ensure components function together properly and project implementation meets system specification, comprehensive testing and rectifying errors identified is a must.
- making sure the program functions as required and that the program's functionality is described fully to allow for easier maintenance in the future.
6. Release, delivering and installation
- process of getting the program into the hands of users. This usually includes more than just the act of distributing the software but also providing training to users.
- formal acceptance testing (a series of end-to-end tests) to ensure system fulfills the acceptance requirements determined by the functional and specification.
- once the above mentioned phase complete , the product is considered formally delivered and accepted.
7.Operation and maintenance
- proper functioning of the software.
- software should be continuously maintained to detect and correct the errors ,extend and improve the software.
- concerned with maintaining the existing program by fixing any bugs and enhancing the software.
- With a well written system most of the actual maintenance is for small, incremental, improvements rather than actual bug fixes.
Reference: