Development Methods Flashcards
Software Development Lifecycle (SDLC)
When developing a solution to a problem for a computer system, programmers work through SDLC phases
Phases of SDLC
Feasibility: Is the problem solvable?
Requirements: Working out what the solution needs to do
Analysis and Design: Working out how the solution needs to do it
Implementation: Coding the solution
Testing: Checking it actually works
Deployment: Installing it in the target environment
Evaluation: Checking in with the user - is solution complete?
Maintenance: Ensuring it continues to function properly by the way of improvements, patches and updates
Development Methodology
The framework used to plan and control the development of a new system
Linear methods
Each stage of the process begins when the previous one is completed
Iterative methods
Less rigid. Repeat steps until the required outcome is achieved
Example of linear development
Waterfall
Examples of iterative development
Agile, Extreme Programming, Spiral, Rapid Application Development
Waterfall Method
Each phase has a defined start and end point. Developers have to work back down through the stages to return to a previous stage
Merits and Drawbacks of the Waterfall method
M: Shows developers may have to re think and re work some stages
M: Work is signed off by client when happy
D: End user is often not involved
D: Approval to proceed is needed
Agile Method
Focuses on the idea that client requirements will shift and change during development
Merits and Drawbacks of the Agile method
M: High end user involvement
M: Late changes welcomed
D: Difficult to plan deadlines/milestones
Spiral Method
Introduces the idea of developing software in iterative stages. At start of process, the requirements are defined and developers work towards a prototype. Decisions on development are based on the risks identified.
Merits and Drawbacks of the Spiral method
M: Faster project outcomes
M: Software is produced early
D: Difficult to set milestones
D: Dependent on good risk analysis
Extreme Programming (XP)
Intended to improve software quality and responsiveness to changing customer requirements.
Frequent releases of the software are made in short development cycles. Intended to improve productivity and introduce checkpoints where client requirements can be added.
Merits and Drawbacks of the XP method
M: Cost reduction
M: Better risk management
D: Duplication issues
D: Code centric