Documente Academic
Documente Profesional
Documente Cultură
(SCSJ3343)
Lecturers Details
UTMSPACE
Refer schedule @ BK4, B11, FAB.
Attendance Policies
INTRODUCTION
Basic Questions
Software is:
Computer programs, procedures, and possibly associated
documentation and data pertaining to the operation of a
computer system.
[IEEE]
Differences between Software and
Other Products
1. Product Complexity
2. Product Visibility
3. Product Development Process
"Software Crisis"
supply
Time
Problem Today: complexity of problems addressed by
software has outpaced improvements in software
creation process
Quality Products
Software vs. Quality
Software is:
Computer programs, procedures, and possibly
associated documentation and data pertaining to
the operation of a computer system.
Quality:
The combination of all 4 components is needed to
assure the quality of the development process as
well as the ensuing long years of maintenance.
Software: Good & Bad
The Big Question
"software error"
"software fault"
"software failure"
types of errors
1. code error
2. procedure error
3. documentation error
4. software data error
Nine causes of Software Errors
Faulty requirements definition.
Client-developer communication failures.
Deliberate deviations from software requirements.
Logical design errors.
Coding errors.
Non-compliance with documentation and coding
instructions.
Shortcomings of the testing process.
User interface and procedure errors.
Documentation errors.
When are defects introduced?
Phase % of % effort to
defects fix
Requirements 56 82
Design 27 13
Code 7 1
Other 10 4
Cost of fixing defects
Relative cost of fixing defects
benchmark: cost at requirements phase = 1
Different Models:
McCalls Factor Model (11 Factors)
Evans and Marciniak factor model (12 Factors)
Deutsch and Willis factor model (15 Factors)
ISO/IEC 9126 (10 Factors)
McCalls Factor Model
Deutsch & Willis Factor Model
Deutsch & Willis Factor Model (cont.)
ISO/IEC 9126: Internal and External Quality
ISO/IEC9126 Sub-characteristics
Quality Sub-characteristics
Functionality Suitability
Accuracy
Interoperability
Security
Portability Installability
Coexistence
Adaptability
Replaceability
Efficiency Resource Utilization
Performance
Reliability Maturity
Fault tolerance (robustness)
Recoverability
Usability Understandability
Learnability
Operability
Attractiveness
Maintainability Analyzability
Changeability
Stability
Testability
In-class Exercise