A Development Process Overview
Maintenance program period begins after deployment with focus on bug fixing, modifications and enhancements. Maintenance usually involves further analysis, design, implementation and testing. Among test activities during the maintenance phase is also a regression testing which if passed successfully ensures that test results after changes are exactly the same test results as those before the changes.
The activities listed above can be classified as more specific tasks. In some cases, analysis is decompounded into domain analysis which focuses on understanding the problem in a more general context, and application analyze the application which focuses on understanding the specific problem to be solved at the design stage. Design comprises architectural design, the design of subsystems and software packages, algorithm design and class design. Implementation involves the implementation and integration of classes. Testing includes checking basic modules, integrated modules, systems and subsystems.
Many software development projects are based on evolutionary process model – an incremental model, a spiral model or concurrent design. The focus will be on the incremental process model.
Within the framework of an incremental development process, the system is developed as a sequence of increments. An increment is a component module (a deliverable), which can be a model, documentation, and code that provides some or all of the functionality required for the system. Software products developed during one increment are the basis for the development of the next increment. Sequential increments extend (and sometimes change) the functionality of the system. The final increment provides a deployable system that is in compliance with all the requirements. Increments can be created sequentially, but concurrent development of two or more of these is also possible.
To develop every increment, developers must perform analysis, development, coding and testing as and when necessary. Usually, when building increments they have to repeat all these activities many times, because they happen to find errors in preceding procedures. As the development progresses, they gain fresh insights into the challenge and its solution. We intentionally single out the cyclic aspect of incremental development and make it a part of this process.
Software development quality assurance is what Cherkassian TestMatick team specializes in. People worldwide use their services to create best IT products and therefore stay ahead of their competitors.