Ch 2: Software Process & Methodology
What 8 steps occur during each iteration of the Agile Unified Process (AUP)?
(1) Accommodating change (2) Domain modeling (3) System-actor interaction modeling (4) Behavior modeling (5) Design class diagram (6) Test-driven development/pair programming (7) Integration testing (8) Deployment
What are the 4 agile values presented in the Agile Manifesto?
(1) Agility values individuals and interaction over processes & tools. (2) Agility values working software over comprehensive documentation. (3) Agility values customer collaboration over contract negotiation. (4) Agility values responding to change over following a plan.
What are the 6 phases for Feature Driven Development (FDD)?
(1) Develop overall model (2) Build feature list (3) Plan by feature (4) Design by feature (5) Build by feature (6) Deployment
What are the various agile processes introduced in this chapter?
(1) Dynamic Systems Development Method (DSDM) (2) Scrum (3) Feature Driven Development (FDD) (4) Extreme Programming (XP) (5) Agile Unified Process (AUP)
What are the 6 phases of Extreme Programming (XP)?
(1) Exploration (2) Planning (3) Iteration to first release (4) Productionizing (5) Maintenance (6) Death
What are the 5 phases of DSDM?
(1) Feasibility study (2) Business study (3) Functional model iteration (4) Design and build iteration (5) Implementation
What is a software development methodology?
A software methodology defines the steps or how to carry out the activities of a software process.
What is a software process?
A software process defines the phases of activities or what needs to be performed to construct a software system. Each phase produces some artifacts which are the input to other phases. Each phase has a set of entrance criteria and a set of exit criteria.
Will agile development replace the conventional approaches such as the waterfall process?
In short, no. Agile methods work well for small to medium-size projects that face frequent changes in requirements. Plan-driven approaches remain the de facto choice for large, complex systems and equipment manufacturers where predictability is important. Therefore, both approaches are needed.
For what sort of projects should you use the spiral process, the Unified Process, and an agile process, respectively?
Projects that are research-oriented or exploratory may use the spiral process. Projects that require adequate documentation should use the UP. Projects that need to respond quickly to changing business requirements, and hence software requirements, should use an agile process.
What is the 80/20 rule for agile processes?
The 80/20 rule indicates that it is good enough to identify 80% of the requirements that are of high customer value.
What are the similarities & differences between the spiral process, the Unified Process, and an agile process?
The similarities are that they are iterative processes, and meant to be an improvement over the existing processes. However, the iterations in the spiral process is situation dependent--that is, what to perform next depends on the outcome of the current iteration. Moreover, risk management is a unique feature of the spiral process. Unlike the spiral process, the UP repeats the same 4 phases in each iteration. It does not require the spiral process-like decision making. It also does not indicate risk management. Agile processes are different from the spiral process and the UP in the agile manifesto, agile practices and values, and agile principles. In addition, agile development tends to adopt short iterations and frequent delivery of small increments.
What are the similarities and differences between the conventional waterfall model and the Unified Process model?
The waterfall model & the Unified Process(UP) model are similar in the sense that they are process models & they define phases as well as the activities and products of each of the phases. The waterfall process is a sequential process, although backtracking is possible. The UP, on the other hand, is an iterative, incremental process.
Explain why the waterfall process is a process for solving tame problems.
The waterfall process requires that the requirements of the system must be identified, as well as clearly & completely defined before the design and implementation of the system. The first 2 properties of wicked problems are: (1) a wicked problem does not have a definite formulation, and (2) the specification of the problem and the solution cannot be separated. Clearly, the waterfall process cannot solve wicked problems because the problem-solving process does not address these 2 wicked-problem properties.
What are 3 advantages of the Unified Process?
UP advantages are: (1) its iterative process can better accommodate requirements change because changes can be made to remaining iterations, (2) it is use-case driven, allowing the development team to focus on customer value--that is, development & deployment of high-priority use cases as early as possible, and (3) it is incremental, reducing the risk of requirements misconception.
What are 3 disadvantages of the Unified Process?
UP disadvantages are: (1) an iterative process is more difficult to manage & schedule, (2) early versions of the UP focused too much on documentation and much of it is not used, and (3) the UP is a process, not a methodology, therefore it is only useful for experienced software developers.
What are 3 strengths of the waterfall process?
Waterfall process advantages are: (1) it facilitates project management, scheduling, and status tracking, (2) it can be used for function-oriented team organization, and (3) it is more appropriate for large, complex software projects.
What are 3 disadvantages of the waterfall process?
Waterfall process disadvantages are: (1) it is difficult to respond to requirements change, (2) the long development duration is unacceptable, and (3) users cannot experiment with the system until late in the development life cycle.
What is the difference between a process and a methodology?
While a software process defines the phased activities or what to do in each phase, it does not specify how to perform the activities. A software methodology defines the detailed steps or how to carry out the activities of a process.