Software quality is highly dependent on the systems development methodology employed for software production. Fundamentals to any selected methodology is its System Development Life Cycle (SDLC) model, which follows either the waterfall or the iterative-incremental process. The understanding of the process on how software is to be developed is a key to managing a software development project.
JOSEPH CONRADO S. JACER July 11, 2009 MPROGLA 1st Term SY ‘09-‘10 ============================================================================== SOFTWARE DEVELOPMENT – WATERFALL OR ITERATIVE-INCREMENTAL PROCESS In every problem, we do our best to find solutions that will best fit to solve that particular problem. Individually unique as we are from each other, we tend to approach a problem in various perspectives. Some finds it easy to look at worm’s eye view, while some finds comfortable with looking at bird’s eye view. In either way, there are advantages and disadvantages. Just like creating solutions for computer driven programs, or as we call it “software development”, two most commonly used approaches used are: the “Waterfall Process” and the “Iterative-incremental process”. With “Waterfall” approach, the development process is confined to strictly follow the four stages: Analysis, Design, Implementation and Testing. It is a pre-planned, and predetermined sequence of events. Usually, a time-frame is set for each stage and is determined to be followed; otherwise, the next stage could be compromised. This means, Analysis, being the first stage, should be complied within the given time frame. Whether the analysis phase is done or not, the next stage, which is Design, has to be started as scheduled, otherwise, the rest of the process might likewise be affected. The same approach will be done with “Implementation”, as well as “Testing”. Thus, with “waterfall” effect, the flow is only “oneway” and no more going back. This approach is more controllable, it is easy to know if a certain phase or stage is completed or not. It is also easy to estimate the total length of the project. It may sound measurable in terms of time scheduling is concerned, but proceeding to the next stage without assurance of compliance from the previous stage is very risky. It may result in more serious risk towards the completion of the project. On the other hand, with the “Iterative-incremental” approach, the development processes is more flexible in such a way that developers can rollback, or trace back, or review previous stages. Requirements can be recalled in order to resolve problems encountered during Analysis stage. Earlier phases can be reviewed and repeated in order to identify problems that may have caused the slowing down of present stage of development. This is a more flexible way since developers can review several cycles anytime. Another advantage with this approach is that the requirements can be broken down into smaller segments, sub-grouped or partitioned in such a way that solutions are scaled down and simplified in accordance to that portion of the requirements. In this way, the complexity of the program is simplified, thus, errors are easily monitored in smaller scale, thus, can be addressed accordingly. In every development process, problems are unpredictable and risks may come up in any step of the way. This approach allowed detection of these oftentimes surprising problems while still in a smaller scale. Page 1 of 2 JOSEPH CONRADO S. JACER, MPROGLA, 1st Term SY ‘09-’10, July 11, 2009 ============================================================================== One advantage is that solutions may and could be drawn by reviewing the previous step or stage of the development process. The risk that may be involved can not just be assumed or isolated to a particular stage or cycle. Factors that may be considered primarily is the clarity or requirements. Another is the ability of the designers to address the requirements. These two are just a few of the many other factors wherein with this approach, tracing root causes could be done in any part of the cycle of development process. I am in favour of the “Iterative-incremental” approach. It gives developers flexibility and freedom to look around the development cycle. In any software development, reliability of data is very important. Clarity of requirements dictates the whole cycle of development. With the advent of countless choices of products and services, consumers’ choice on quality, necessity and functionality, market behaviour is indeed very erratic. This should be considered by developers. One analysis may not be enough to justify a design in mind. With the allotted time-frame demanded by the client, it should be taken into consideration that the requirements could change along the process. With this approach, developers will have full freedom and flexibility to review every phase of the development cycle. Overall, with reliable data and the right tools, the whole development cycle will be manageable, and expected outcome is predictable and will be working as required. Page 2 of 2
Pages to are hidden for
"Software Development – Waterfall Or Iterative Incremental Process (DOC)"Please download to view full document