(8) Software Development Flashcards
What are the phases of the waterfall model?
- Analysis of requirements
- Design
- Implementation and unit testing
- Integration and system testing
- Operation and maintenance
Requirement Analysis - Definition
Study, understand and specify the system requirements
Design Phase - Definition
- Study, understand and design the system architecture
- Identify and describe the fundamental software system abstractions and their relationships
Implementation and unit testing - Definition
Create individual code units and verify that each fulfils its responsibilities
Integration and system testing - Definition
- Integrate and test increasingly large modules, up to the level of the system as a whole
- Deliver validated system to customer
Operating and Maintenance - Definition
- Install the system and put it into practical use
- Update the software to correct errors, improve the software, and satisfy new requirements
What are advantages and disadvantages of the waterfall model?
Advantages:
- Defines a sequence of concrete activities
- Simple process model for managers
Disadvantages:
- Inflexible portioning of the project into distinct stages
- Insensitive to changing customer requirements
- High-risk due to “big bang” integration
When can the waterfall model be applied?
- Requirements must be well understood
- Requires a lot of experience
- Not well suited for complex projects
What is the V Model?
- Complements the waterfall model
- Elaborated view on verification and validation
What is the Iterative Process Model?
- Project is split into a series of short, fixed length mini projects called iterations
- Each iteration includes own analysis, design, implement and test phase
- User requirements are prioritized
- Highest priority requirements are included in early increments
What are advantages and disadvantages of the Iterative Process Model?
Advantages:
- Early attention to high risk
- Early process visible
- Early feedback
- Managed complexity
- Learning with each iteration can improve development
Disadvantages:
- Additional overhead
- Refactoring cycles may be needed
- Cost estimation is harder
What is the Agile Development model?
A lightweight approach to software development that aims for customer satisfaction.
How does an increment in the Agile Development Model looks like?
- Analyze a little
- Design a little
- Test a little
- Code a little
What are the four value statements of the Agile Development model?
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following the plan
What are the principles in the agile development model?
- Satisfy the customer
- Welcome changing requirements
- Business people and developers must work together (face -to-face)
- Build project around motivated individuals
- Working software = measure of progress
- Agile processes promote sustainable development (maintain constant pace)
- Attention to technical excellence and good design enhances agility
- Simplicity
- Self-organising teams
- Team reflections - how become more efficient