
12 Steps of Software Engineering
Breaking down the lifecycle of software production, from idea to product into these 12 points of high-level software engineering.
- System initiation/Planning — Where does it [the system] come from and what does it do?
- Requirement Analysis and Specifications — The problem the system is supposed to solve. Capabilities, performance characteristics and resource structure needed.
- Functional scheme and prototyping — Defines the objects of computation, attributes and relationships, system constraints and so forth.
- Partition and Selection (Build vs Buy vs Reuse) — Divide the system and determine whether new, existing or reusable components correspond to the needed pieces.
- Architectural Design and Configuration Specifications — Define interfaces between the subsystems (components) in ways suitable for their overall design and configuration management.
- Detailed Component Design — Defines the procedural methods through which the data resources are transformed.
- Component Implementation and Debugging — not much to add here.
- Software integration and Testing — Test and recheck of the overall software integration; verifying consistency, integrity, resource interfaces, interconnections and validating the performance of the system and subsystems
- Revision documentation and System delivery — package and rationalize recorded system development descriptions into user guides and systematic documentation suitable for system support.
- Deployment and Installation — providing support for the installation of the delivered system into the local computing environment.
- Training and User — providing instructional aids for understanding system capabilities and limits.
- Maintainance — sustainig the system by providing requested functional enhancements, repairs and improves.