L03: Software Lifecycle Flashcards
What factors do we consider when choosing a software engineering process?
Choice of software process typically depends on:
- Characteristics of system being developed
- Customer requirements
- Skills and experience of development team
- Organisational culture and practices
An appropriate software process should be chosen for a system based on the project and its context
What are some examples of software lifecycle/process models?
- Prescriptive models (such as waterfall)
- Iterative and incremental development (such as agile)
- Integration and configuration
What is a software lifecycle/process model?
A software process model or lifecycle is an abstract
representation of software processes
- What activity should be done next
- How long it should last
- Process determines activities and how they are structured
- As well as outcomes, role of stakeholders involved and pre- and post-conditions of activities
What is a lifecycle?
Oxford English Dictionary
“In extended use:
a course or evolution from a beginning, through
development and productivity, to decay or ending.”
What are the stages of a software lifecycle?
- Inception
- Feasibility
- Commissioning
- Development
- Acceptance testing
- Deployment and operation
- Maintenance and evolution
- Phase-out
What is the waterfall model?
Requirements specification
-> Design
-> Implementation
-> Validation
-> Operation
-> Maintenance
What happens in a modified waterfall model?
After the maintenance phase, the process goes back to the requirements specification phase
What are the pros of the waterfall model?
Can be used when
- Requirements are well understood
- Requirements are unlikely to change radically during development
Possibly suitable for
- Embedded systems
- Critical systems
- Collaborative development scenarios for large engineering projects
What are the cons of the waterfall model?
- Plan-driven
- Lacks flexibility as you cannot go through the phase in any other order
What is the spiral model?
Incremental but systematic
- Risk-driven software process framework
- Changes are results of project risks
- Process and product are determined by risks
- Aims to lower development costs by early elimination of
alternatives that are not viable
Each loop in the spiral
- A phase of the process
What are the 4 sectors in each loop of the spiral model?
- Objective setting
- Risk assessment and reduction
- Development and validation
- Planning for next loop
What is iterative and incremental development (IID)?
Initial release of software, followed by refinements
- Increments incorporating feedback from stakeholders
- Plan-driven or agile or a mix of both
- Basis for current development methods
What are the pros of IID?
- Quicker delivery and deployment of useful software to customers
- Earlier feedback from customers on work completed
- Reduced cost of accommodating changes to customer
requirements - Earlier identification of risks and mitigations
What are the cons of IID?
- Lack of visible process and complete documentation
- Degrading system structure as more increments are added
- Challenges in identifying common concerns and utilities that apply across the system
- Conflicts with procurement models of organisations without complete specification at the start
What is the integration and configuration model?
Software reuse is common in projects
- Reuse-oriented approaches
- Reusable software components
Examples
- General-purpose stand-alone systems that can be
configured
- Web services satisfying service standards and can be
remotely invoked
- An integrating framework for composing components