Software Quality Assurance From Theory To Implementation