Iterative And Incremental Development Of Software Models
Software process model consists of 2 categories generic and iterative. Generic method consists of 3 main methods which are waterfall, evolutionary and component based software engineering (CBSE). Moreover, iterative consist of 2 main method which are incremental delivery and spiral delivery. Then emphasis of the report will be on Iterative and Incremental method [1]
The Iterative and Incremental method, was introduced by Mr. Harlen Mills In 1970s .The method was further extended by Mr. Vic Basili by adding the incremental concept.[2] By definition iterative means develop a system through repeated cycles furthermore incremental means in smaller portions at a time. [3] The fundamental idea of iterative and incremental method is to break the software development process into the several parts over specific length of time. It repeats the process by adding more function to the software until the software is complete for usage.
Iterative and Incremental Methodology.
Figure 1: Iterative and Incremental development
Figure 1 [3] show the process of Iterative and Incremental methodology. Each iterative step consists of requirement, design, repetitive modular implementation, test and integration and final integration & system test. After each iteration, more functions will be added and the same iterative cycle is repeated again. The system grows in term of capabilities and complexity. Finally, the finished system integration and testing are performed before it is deployed.
The requirement process can be defined as ‘the process of analyzing the constraints under which it operates and is developed. The objectives are to identify the activities and techniques that will be used. During the requirement process, a feasibility study needs to be performed in order to evaluate the pros and cons of the project. It also involves risk assessment of the project. After that, customer’s requirements need to be established via discussions, interview and etc. Next, the specification which contains the functional constraints, non functional constraints, user conditions and system requirement are written out. In addition, the specifications are reviewed so that it will be error free. Lastly, the project management activities are set out to identify, track and control the progress of the project.
Figure 2: Iterative development.
Figure 2 [2] shows another example of Iterative development. Author perceive the iteration and incremental method in different view. He divides the process into 4 phases which are inception, elaboration, construction, and transition. During the inception phases the project, scope, risk and requirement are identified. Moreover, the working architecture is defined during elaboration phases. From the analysis, design, implementation and testing of the functional requirement, the architecture is being improve incrementally during the construction phases. Lastly, the system is implemented into the production operating environment in transition phase [2] Although both author view the process differently, most the process and method are overlapping similar.
The design process can be defined as process for identifying the sub-systems making up a system and the framework for sub-system control and communication [7]. The design processes consist of two models which is structural model and control model. Structure model consist of 3 models such as Repository, Client-server, Layered. While, there are 2 controls model which are centralized and Event-based. Different model need to be used in different applications, specifications and requirements. Therefore, evaluation of design model that will be used need to be done carefully in order to meet customer’s requirement.
The implementation, testing and Integration steps are recurring process. The programs that are developing in design process are implemented. However, it needs to be validated using testing. They are 2 type of testing program which is component testing and system testing. Each of the program components is tested in modular separately during component testing. On the other hand, system testing is performed by integrating the multiple components or subsystem into a system. However, system testing will be affected by the request and error mistake in component testing. After integration and incremental processes, all of the components are performing to the specification and error free, thus, can be integrated into a complete system and ready to be delivered to the customers. [9]
Advantages and Disadvantages of Iterative & Incremental Development
Advantages
Suitable for a large project but have limited financial resources. It is because, the maintenance will be undertaken to improve the errors are not known at the beginning of the cycle.[6]
Repetition of the phases can be built so that the system really meet the needs of users
Establish a good relationship between users and developers. project team will always communicate with users to obtain information to meet the needs of users, [5]
Reduce the risk of delay due to the important work done first.
Produce software that can be easily used by consumers [9]
Disadvantage
High maintenance costs
Difficult, it is because developers have to plan in advance the desired results. In addition, the developer must ensure that the work was completed in time to avoid delays and increased costs
Differences between Iterative & Incremental and Agile
Scope
Agile
Iterative & Incremental
Focus
focus on the simple process that allows for quick changes during the development cycle
focus on a limited project
Time
3 to 4 weeks time taken to complete a project
based on the requirements and specifications that determined by customer
Discussion and Conclusion
Methodology a combination of paradigms, methods, policies, procedures, Regulations, standards, techniques, tools, programming language and the other methodology used for analyzing system requirements and design. Iterative and incremental methodology is a process model developed to overcome the Weakness faced by the waterfall methodology. It is divided into several processes that requirement, design, implementation & integration test and final. This development process starts with the requirement phase and ends with the planning process. This process is repeated several times to produce products that meet the specifications required by the user. In addition, the model can be used for projects that are changing where it will reduce the risk of error and remove the incorrect input. This process resulted in the additional software that is easy to understand and made modifications.
Order Now