Why it important for software processes to be agile?
Provides Stability, control, and organization to an activity that can become quite chaotic.
What are the five fundamental activities common to all software processes and that a SE should perform/supervise during a project life cycle.
- Construction, Deployment
How are tasks, actions, and activities related to software process models?
It defines the flow of all activities, actions and tasks, the degree of iteration, the work products, and the organization of the work that must be done.
The task sets sit within the engineering action, which sit within the umbrella activities, which sit within the process framework, which makes up the software process model.
List and describe the generic software process models from Chapter 4
- 1. Prescriptive process model (Waterfall)
- COMMUNICATION > PLANNING > MODELING > CONSTRUCTION > DEPLOYMENT
- 3. Incremental Model
- same as waterfall but delivered in increments (Agile)
- 4. Evolutionary Process Model (Prototyping)
- communication, quick plan, modeling quick design, construction of prototype, "deploymentm delivery and feedback"
- 5. Spiral Process Model
- same as waterfall but repeats as many times as it takes to complete
- 6. Concurrent Models
- Inactive, "Awaiting changes, under revision" or "under review, baselined", done
- 7. Component Base Process Model (CBSE)
- requirements specification, component analysis, requirements modification, system design with reuse, development and integration, system validation
What are benefits of Incremental Delivery?
We can offer the product in a much shorter amount of time developing the core portion of the product then the extra features in the following updates by increments.
Describe the phases of the prototyping model for software development?
- Identify some requirements to begin with:Requirements are gathered by having the customer and developer meet and identify whatever objectives and requirements they can.
- Develop initial prototype: Quick design follows, focusing on representation of the software that will be visible to the customer.
- Review the prototype: A prototype is constructed by the developer and evaluated by the customer and used to refine the requirements.
- Revise and enhance the prototype: Iteration occurs and the prototype is tuned to satisfy the customer's needs.
Why are evolutionary models considered by many to be the best approach to software development in a modern context?
Because these models are designed to grows and changes. Evolutionary models are interactive. They are characterized in a manner that enables you to develop increasingly more complete versions of the software.
Users get a feel for the actual system and developers get to build something immediately.
What are the primary advantages of the component-based process model for software engineering?
- promote software reuse and reusability and can result in:
- 70% reduction in development cycle times
- 84% reduction in project costs
- 70% increase in productivity.
What are the tradeoffs proposes by the "Manifesto for Agile Software Development"?
- 1. Individuals and interactions valued over processes and tools
- 2. Working software valued over comprehensive documentation
- 3. Customer collaboration valued over contract negotiation
- 4. Responding to change valued over following a plan
- 1. Early and continuous delivery of software
- 2. Welcoming changing requirements
- 3. Deliver working software frequently
- 4. Business ppl and developers work together daily
- 5. Build projects around motivated individuals
- 6. Face to face conversation
- 7. Working with SW is the primary measure of progress
- 1. Customer satisfaction = highest priority
- 4. Customer collaboration
- 10. Simplicity - essential
- 11. self-organizing teams.
- 12. Team reflection at regular intervals
Describe the three key assumptions regarding software projects that every agile software process must address.
- 1. difficulty in predicting which software requirements will change in advance
- 2. difficult to predict how much design is necessary before construction is used to prove the design
- 3. analysis, design, construction, and testing are unpredictable
role of customers and end-users on an agile process team
Customers and end-users participate as full collaborators on agile process teams. They are the source of information used to create use cases and provided needed information on the business value of proposed software feature and functionality. They also provide much needed feedback on operational prototypes during incremental delivery of software increments.
Describe the SCRUM process and the diagram shown in the book:
analysis, design, evolution, and delivery
emphasize project priorities, compartmentalize work units communication and frequent customer feed back.
key issues stressed by an agile philosophy of software engineering
- 1. The importance of self-organizing teams
- 2. Communication and collaboration between team members and customers
- 3. Recognition that change represents opportunity
- 4. Emphasis on rapid delivery of software that satisfies the customer