Summary : Software & Quality Assurance
How to make a Quality Software
Software Development Life Cycle
1. Requirements & Specifications
Bad design cannot be rescued by Implementation.
Coupling
Measure of dependence of data & functionality on each other.
Low Cohesion = Independent to each other.
High Cohesion = Dependent to each other.
Cohesion
Measure of interdependence of data & functionality on each other.
High Cohesion = Related functions are in the same place.
Low Cohesion = Related functions are NOT in the same place.
Coupling & Cohesion
Low Coupling & High Cohesion = Good.
High Coupling & Low Cohesion = Bad.
3. Development
Coding Style
Consistency is Key.
When alternative exists, select one and enforce it !
In-code Documentation
Self-documenting code get updated dynamically.
Comments provide context that is not in code.
Both form of document are necessary.
4. Testing
Test Selection
Test Adequacy
Test-Driven Development (TDD)
By writing the tests first, you avoid some developer bias and give you a check when your code are done.