Software Project Management
Discipline of managing projects to completion (all features/scope) while achieving quality within time constraints & budget.
Software Quality
Discipline of specifying, assuring, monitoring & controlling quality of software products. In SE, measures how well software designed & how well it conforms to that design.
Software Verification
Have we built software right? Have we made right decision each step of the way?
Software Validation
Have we built right software? How well does product address business needs?
Software Testing
Techniques to execute programs with intent of finding as many defects as possible/gaining sufficient confidence in Software Under Test (SUT).
Software Inspections
Techniques aimed at systematically verifying software artifacts (design docs, code, tests etc) without executing them, with intent of finding as many defects as possible, as early as possible.
What are the factors of software quality?
Functional stability, reliability, performance efficiency, operability, security, compatibility, maintainability and portability
Functional Stability
Functional appropriateness, accuracy and compliance
Reliability
Maturity, availability, fault tolerance, recoverability and compliance
Performance Efficiency
Time-behaviour, resource utilisation and compliance
Operability
Appropriateness, recognisability, learnability, ease of use, attractiveness, technical accessibility and compliance
Security
Confidentiality, integrity, non-repudiation, accountability, authenticity and compliance
Compatibility
Co-existence, interoperability and compliance
Maintainability
Modularity, reusability, analysability, changeability, modification stability, testability and compliance
Portability
Adaptability, installability, replaceability and compliance
Correctness
Does software perform as expected?
Understandability
Completeness
Conciseness
Portability
Consistency
Maintainability
Testability
Usability