History

Software process has evolved over a period of time.

Waterfall model





Waterfall model is a perfect solution assuming everything is defined well in advance and no changes are required, but unfortunately world is not perfect and waterfall model failed in most of the projects executed. Its failure is not really 100% but customers lived with big compromises given the investments made during the software development.

Practically, we humans, while visualizing a system, tend to change our views over a period of time. What we feel is important may not be important after couple of months or a new learning about certain feature or new discovery might result in a complete change in direction of how we want to build a product.

Typically the waterfall model is built with the understanding that requirements are freezed upfront and then subsequent phases are done in sequence.  Usually projects were planned for an year or couple of years or so. Customer gets to see the solution only after a long wait, and customer gets disappointed.

Usually requirements elucidation is a doctor patient relationship. Assuming you are a doctor and if you provide treatment to patient based on what customer explains as the symptoms, most probably you will be giving him exactly wrong medicine. 

A good doctor always asks right questions and then based on patient answers, can go with a course of medicine and asks patient to come back after specific number of days. If patient sees improvement doctor might consider continuing the medicine, if not might change the course.

Similarly when it comes to software, waterfall model failed most of the cases because there was no mechanism for the customer to try and provide feedback.   The only feedback he could give was at the end and it is called as "Post mortem". Waterfall model result is like "Operation successful but patient has died". Technically project is successful but customer will be bleeding given the investment he made and the end result not being something that looks similar to what he would expect.

Iterative model

Then came in iterative model which was a repetitive waterfall model with shorter cycles. This enabled feedback mechanism



Rational Unified Process (RUP)


Rational Unified Process is an iterative process. The way it is designed is as a generic adaptive process that helps projects to be implemented. Rational Unified Process (RUP) is an implementation of Unified Process.

Basically there are 4 verticals/phases identified (Inception, Elaboration, Construction, Transition) and all the SDLC steps (business modeling, requirements, analysis, design and implementation, testing and deployment will have these 4 phases.  This results in with a pattern that seem iterative but not exactly.


Adapting to RUP for me looks complex.

2 comments:

  1. Agile software development Very efficiently written information. It will be beneficial to anybody who utilizes it, including me. Keep up the good work. For sure i will check out more posts. This site seems to get a good amount of visitors.

    ReplyDelete
  2. Students looking for high-quality academic guidance often search for the best IEEE project support in Chennai. Many learners choose Project Center in Chennai because it offers a wide range of final year IEEE projects and research guidance. These project centers help students work on advanced technologies such as artificial intelligence, cloud computing, and data science. With expert mentors and real-time project development, students gain practical experience that supports their academic success. Such support makes it one of the best and No:1 IEEE project centers for students in Chennai, India.

    Final year CSE students can choose from several advanced technology areas to build strong technical knowledge and industry-ready skills. Many learners explore Final Year Project Domains for CSE to understand trending fields such as artificial intelligence, machine learning, cloud computing, cybersecurity, and blockchain. Selecting the right project domain helps students focus on a specific technology and develop practical implementation skills. These domains support research-oriented learning and real-world system development. A well-chosen CSE project domain can improve technical expertise and create better career opportunities in the IT industry.

    Final year projects are an important part of the Computer Science and Engineering curriculum because they allow students to apply theoretical knowledge to real-world applications. Many students explore Final Year Projects for CSE to find project ideas in trending technologies such as artificial intelligence, machine learning, cloud computing, and cybersecurity. These projects help students improve programming, system design, and research skills while working on practical implementations. By completing a strong project, students can build a portfolio that showcases their technical abilities to employers. Overall, final year CSE projects play a key role in preparing students for careers in the IT and software industry.

    ReplyDelete