Software Processes Flashcards
Life Cycle
Refers to the building of the software until the company no longer works/associates with it.
Process
A set of actions.
Issues with software.
Evolution always equals faults, and if the original programmers leave, then there could be no understanding of the original code.
The Waterfall Model
Essentially, you complete the whole software by the requirements you have already been set, allowing no change until it is complete. This is inflexible and is only appropriate when the requirements are final.
Order is:
- Requirements definition
- System and software design
- Implementation and unit testing
- Integration and system testing
- Operation and maintenance
Evolutionary Development
Allows development of the software based upon specification, but also allows validation of the software too, which means going to the user and checking if there is anything they like/don’t like etc.
Order is:
- Outline description
- Specification (initial version), development (intermediate version), validation (final version).
Agile Development
This is more of a test driven development.
Uses pair programming and self organised teams (one could be tester, the other the developer etc).
Software Specification
Establishing what services are required and the constraints on the system’s operation and development.
Defect Amplification
Minor wrong details leads to bigger problems down the line.
Software Design and Implementation
Designing a software that realises the specification and creating executable code from that design. These may be inter-leaved.
Architectural Design
Sub-systems are identified and documented.
Abstract Specification
For each sub-system, specification of operational constraints and services are produced.
Interface Design
For each sub-system, an unambiguous interface with other sub-systems are produced.
Component Design
Services are allocated to components / interfaces of the components are designed.
Data structure Design
Data structures used in system implementation are designed in detail and specified.
Algorithm Design
Algorithms used in components to provide services are produced.