Chapter 2: The Software Development Lifecycle Flashcards
What are the 6 steps of the Software Development Lifecycle?
- Feasibility Study: Is it possible?
- Analysis: Gathering data and making a plan
- Design: Refining the plan
- Implementation: Setting the system up
- Evaluation: Comparing the finished product to the specification
- Maintenance: Maintaining the software
TELOS and the 5 types of Feasibility
- Technical: Does the technology exist?
- Economic: Does it make sense from a financial view?
- Legal: Are there any copyright issues that may stop the production?
- Operational: Does it work? Will people use it?
- Schedule: Does it fit within the timescale?
Analysis
Gathering data and analysing it to identify the system requirements and make the Requirements Specification
Ways of gathering data for Analysis include… (4)
- Interview possible users
- Use questionnaires to get data from larger groups of people
- Observe how people currently work
- Get examples of existing documentation
After gathering data for Analysis, the developer would… (3)
- Use data flow diagrams to create a loose idea of how the system fits together
- Make a data dictionary to capture how each data item would look (e.g. data type, format, etc.)
- Make a Specification or User Requirement. This is used to create the Design and is what the finished product is compared against during Evaluation
The software design will include… (5)
- A more detailed Data Dictionary, defining any data, its data type, format and validation. This includes any file structures
- Input screens or user interface
- Output screens and reports
- Main algorithms in the form of flowcharts and pseudocode
- A formal Test Plan to ensure that the software is tested objectively
Implementation entails… (3)
- Coding and testing the software
- Writing technical documentation for whoever has to maintain and support the code, and a user guide
- Installing the software if it was written for a particular client
Evaluation
Checking that the software meets the Requirements Specification. Includes Acceptance Testing for software created for a specific client
CAP and the 3 types of Maintenance
- Corrective: fixing bugs
- Adaptive: making changes to the software as the user’s requirements change
- Perfective: improving the performance or usability of the software (e.g. runtime diagnostics, layout)
Waterfall Model
A series of separate stages, where each completed stage provides specific inputs to the next. Essentially a one-off, linear model. Good for large groups
Pros and Cons of the Waterfall Model (3 | 3)
Pros:
- Self-contained steps are easy to manage
- Defined processes and outputs for each step
- Good for managing large groups of developers working in parallel
Cons:
- Requirement changes mean going back to an already completed stage
- Changes can be costly in both money and time
- The lack of customer involvement after Analysis means that issues are not addressed until Evaluation
Cyclical Model
Similar to the Waterfall Model, with structured stages, but stages form a continuous cycle. Good for big pieces of software (e.g. MS Office)
What is the extra pro of the Cyclical Model over the Waterfall Model?
Maintenance logically starts the next cycle, which maps better onto the actual lifecycle of a complex piece of software
Spiral Model
Instead of doing each stage once, the software goes through several iterations after the Feasibility stage is completed. Successive passes through the stages produce a more refined prototype until the software is complete
Pros and Cons of the Spiral Model (3 | 2)
Pros
- Well-defined steps are easy to manage
- Interim prototypes highlight issues quickly so the end product is more likely to satisfy the client
- The iterative nature means that changes can be incorporated easily
Cons
- Building prototypes and getting feedback takes time, so the overall timescale is longer
- The longer timescale means that there is a higher cost