In: Computer Science
All answers should be typed. Word limit (except the last question) is <50. 1. Show one benefit and one problem with the waterfall model in software development. 2. Briefly explain “pair programming” in agile development. First, you will tell how it works. Then you tell one benefit of applying pair programming in agile development. 3. Give one example when the client (customer), the software developer, and the end user are the same person. Then show one advantage in such a situation. 4. Recall what we had seen in the class, describe the Scrum process (in agile development). Note that the entire process is not only a meeting. 5. What is the connection between Miller’s Law and stepwise refinement? 6. In your project, what software process do you propose to use? Then tell how you are going to use the process in the software development. For this question, you will elaborate with more details about the project topic, size, time, cost (if applicable), team management, communication, planning, and all related activities during development.
1.) Benefit:-
Determines the end goal early:- Waterfall is committing to an end product, goal, or deliverable at the beginning, and teams should avoid deviating from that commitment. For small projects where goals are clear, this step makes your team aware of the overall goal from the beginning
Problem:-
Excludes the client or end user:- The Waterfall methodology focuses very little on the end user or client involved with a project. Its main purpose has always been to help internal teams move more efficiently through the phases of a project, which can work well for the software world.
2.) Pair programming is where two developers work using only one machine. One programmer acts as the driver who codes while the other will serve as the observer who will check the code being written, algorithm and spell check it, while also figuring out where to go next.
Benefit:-
Produce better solutions:- The most important reason to pair program is that it often produces better solutions than either developer could have produced on their own. Problems are picked up on earlier and potential bugs are identified by two people instead of one.
3.) This situation occurs when the person with profession software developer wants to develop any project for future scope or for thier own work to complete, with help of automation.
Advantage:- It is not required to create any documentation for software system, because developer is the client and user as well, hence they know everything about this software system.
4.) Scrum Process is a subset of Agile. It is a lightweight process framework for agile development, and the most widely-used one.It is a project management system that relies on incremental development. Each iteration consists of two to four week sprints, where each sprint's goal is to build the most important features first and come out with a potentially deliverable product.
5.)
Miller's Law: At any time a human being can concentrate on 7 +- 2 chunks (quota of information).
Stepwise refinement enables the software engineer to concentrate on those "chunks" that are the most relevant at the current phase of development. In other words, concentrate on most relevant aspects and ignore details.