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
What are the stages in reuse-oriented software engineering?
Requirement specification
-> Requirement refinement
If there is an application system available to refactor, the application system is configured
If there are components available (but not the full system), they are developed and adapted to be integrated in the system