Software Development
Software Development Life Cycle
1. Requirements analysis:
- Who will use it?
- How will it be used?
- What data will be input/output
- Requirement specification document
​
2. Design
- System Requirements
​
3. Development
- Production
​
4. Testing
- Unit Testing: Testing individual units of code
- Integrated Testing: Testing modules in a group
- System Testing: Compatibility and hardware testing
- Acceptance: Is the product what it was designed to be?
- Non-Functional: Does it work?
​
5. Deployment
- Beta testing the final product for bugs
​
6. Maintenance
- Patches and updates
​
Source Control
- Have backups with naming conventions
- Shared folders
​
Version Control System
- Restore backups
- Synchronize shared files
- Short/Long term undo
- Track changes
- Track ownership
- Sandboxing: making changes in isolated areas
- Branching: making large isolated changes and merging them with the project