1. CH4 exercise question 1: One activity is critical to me and needs to be added to the “code-and-fix model”[1] is the design review. This design review should be added after Problem statement and before Code. It could be done by the software engineer himself, or the software engineer could also invite others to review his design. This is important since we will spend less effort to find design bugs if we filter those bugs as early as possible. From the Tartan case study[2], we learned that bugs are easy to cascade and the Tartan team spent 30%-50% of the total project effort for them. The Tartan team then used various techniques to prevent this cascading from happening, including design review, and then they achieved an …show more content…
CH4 review question 7: The four phases of the Rational Unified Process (RUP) are Inception Phase, Elaboration Phases, Construction Phase, and Transition Phase1. In the Inception Phase, our intention is to set up the scope and clarify the goal. Based on this two information, we then estimate the schedule and required resources. After that, we plan other activities, such as implementation and testing. In the Elaboration Phase, we finished gathering our requirements and specifications. We also clear all design feasibility questions and metrics would be used to measure our system. At this phase, the software project is ready to go. The goal of Construction Phase is to complete the implementation and release an Alpha version product. Finally, we fix all the issues and integrate all the components in Transition Phase. After finishing the manuals and educations materials, the product is ready to be released to users, and the software group is ready to service …show more content…
More specifically, in incremental models, we are sure about what the system-to-be is, and then we divide the system-to-be into smaller functions, and then design, implement, and test those functions. However, in iterative models, just like Walton said, “iterative development emphasizes constant feedback, and quicker, smaller releases”[3], we build up our understanding of final products by going through many development cycles. One example would be a web login function. If we implement this login function by using incremental models, we might divide it into front-end, database, and login mechanisms, such as Facebook login. Then we go through design, coding, and testing phase for each function. On the other hand, in iterative models, we might build a most basic login function with front-end, back-end, and login mechanism. Then after testing, we find that the UI is not friendly, or the login method is not convenient. So, in the next iteration, we redesign our UI and add a login method for Gmail. I think this is the essential difference between iterative and incremental