Professional Documents
Culture Documents
Fundamental concepts
of software quality
and software dependability
Security
Attributes
Causality chain
Henrique M adeira Analysis of Software Artifacts, DEI-FCTUC, 2022/2023 8
10
• Non-Functional view
– How the software system does it (features such as performance, security,
reliability, availability, usability, maintainability, and many, many, more)
– Typically known as Quality Attributes of a software system
– Most of them cannot be measured directly
– The biggest technical challenges are in these non-functional attributes
11
• Functional requirements
– Describes what a software system should do
– Function points is a usual metric to characterize and assess the size of the
software
• Non-functional requirements
– Define constraints (or goals) on how the system will do so
– Include basically everything that is not related to the functional aspects of the
software system
12
Robustness
(more on concepts & terminology)
13
Resilience
(more on concepts & terminology)
• Resilience considers changes in lato senso. That is, changes include all sort
of upsets:
– Hardware and software faults
– Malicious attacks
– Configuration changes
– Software and hardware upgrades
– Etc…
Henrique M adeira Analysis of Software Artifacts, DEI-FCTUC, 2022/2023 14
14
• Hardware faults
• Software faults
• Environment faults
• Human faults
• …
Henrique M adeira Analysis of Software Artifacts, DEI-FCTUC, 2022/2023 15
15
16
17
18
19
20
21
Classification of faults
• Caused by what?
– Physical faults
– Human-Made faults
• Why?
– Accidental faults
– Intentional non malicious faults / Intentional malicious faults
• When?
– Development faults: design, coding, configuration, upgrading
– Operational faults: in use or maintenance (operation faults, interaction faults,
configuration faults,..)
• Where (with respect to the system)?
– Internal faults
– External faults
• How long?
– Permanent faults
– Transient faults
Henrique M adeira Analysis of Software Artifacts, DEI-FCTUC, 2022/2023 22
22
23
24
Failures classification
25
26
Dependability means
• Fault Prevention techniques: prevent the occurrence ofTwo
faults
different
– Improve development process to avoid/minimize faults
– Use selected technologies (better components, certified softwareperspectives
tools, etc. ) with
strong technical
• Fault Tolerance techniques: to provide correct serviceimplications
in presence of faults
– Triple modular redundancy, N-Version programming, check pointing and recovery, etc.
27
Dependability means
• Fault Prevention techniques: prevent the occurrence of faults
– Improve development process to avoid/minimize faults
– Use selected technologies (better components, certified software tools, etc. )
28
Error masking
29
V model
Error masking
30
31
32
Fundamental concepts
of software quality
and software dependability
1
Henrique M adeira Analysis of Software Artifacts, DEI-FCTUC, 2022/2023 33
33