What:
It’s not just coding. When you’re doing it, split it up into multiple bits.
1. Requirements Capture
Process:
- Identify what the software must do.
- Functional Requirements: What the system should do
- Non-Functional Requirements: How it should be: How fast it should be, show seldom it should fail etc. (Informally called ‘ilities’ - efficiency, security, portability etc.)
Where to get Requirements:
- Goals
- Stakeholders
- Business Rules - I.E. The uni may not allow you to do certain things with your code
Ensure your requirements are verifiable, possible (given time / money budget) etc.
2. Designing
Think of the following:
- Requirements: What must the software do. Incredibly Important
- Design: How should it do that
- High level - UML
3. Construction
- Coding
- Testing
- Documentation
4. Maintenance
- Stopping Software Rot
- Coping in an evolving world
Interesting Note:
TCO (Total Cost of Ownership) of a system often dwarfs dev costs.