Vous êtes sur la page 1sur 5

Software Qualities Software Product

Software engineering (SE) is an intellectual • Different from traditional types of products


activity and thus human-intensive – intangible
• difficult to describe and evaluate
Software is built to meet a certain functional
goal and satisfy certain qualities – malleable
Software processes also must meet certain – human intensive
qualities • involves only trivial “manufacturing” process

Software qualities are sometimes referred to


as ilities

Software Qualities CS172 2005 Software Qualities CS172 2005


1 2

Classification of SW Qualities Classification of SW Qualities


Internal vs. External Product vs. Process
• External Factors • Product - what is delivered to a customer
May be detected by users of the software
• Process - used to produce a product
• Internal Factors
Only perceptible to computer professionals

Process quality affects product quality


Internal factors are the key to assuring that
the external factors will be satisfied
Software Qualities CS172 2005 Software Qualities CS172 2005
3 4

Correctness The Limits of Correctness


• Correctness is the ability of software
products to perform their task exactly as • It is an absolute (yes/no) quality
defined by their requirements and – there is no concept of “degree of correctness”
specification – there is no concept of severity of deviation
– assuming that a specification exists!
• What if specifications are wrong?
• If specifications are formal, since programs
– (e.g., they derive from incorrect requirements
are formal objects, correctness can be
or errors in domain knowledge)
defined formally
– It can be proven as a theorem or disproved by
counterexamples (testing)

Software Qualities CS172 2005 Software Qualities CS172 2005


5 6

1
Reliability
Idealized Situation

• Reliability • Requirements are correct


– informally, user can depend on it
– can be defined mathematically as “probability of
absence of failures for a certain time period”
– if specs are correct, all correct software is
reliable, but not vice-versa (in practice, however,
specs can be incorrect …)
Reliability
Correctness

Software Qualities CS172 2005 Software Qualities CS172 2005


7 8

Robustness
Performance
• Performance is a measure of the efficient
• Robustness use of resources
– software behaves “reasonably” even in – memory, processing time, communication
unforeseen circumstances (e.g., incorrect • Can be verified
input, hardware failure) • complexity analysis of algorithms used
• performance evaluation (measurement, analysis,
simulation)
• Performance can affect scalability
• a solution that works on a small local network may
not work on a large intranet

Software Qualities CS172 2005 Software Qualities CS172 2005


9 10

Usability Verifiability

• A system is usable if its expected users find • Verifiability is the ease of preparing
the system easy to use acceptance procedures, particularly test data
• Often called “user-friendliness” and procedures for detecting and tracing
• Rather subjective, difficult to evaluate failures
– mostly an internal quality
• Affected mostly by user interface
– can be external as well (e.g., security critical
• e.g., visual vs. textual
application)

Software Qualities CS172 2005 Software Qualities CS172 2005


11 12

2
Maintainability Maintainability
• Maintainability: ease of maintenance
• Maintenance: changes after release • Can be decomposed as
Maintenance costs exceed 60% of total cost – Repairability
of software • ability to correct defects in reasonable time

Three main categories of maintenance – Evolvability


• ability to adapt sw to environment changes and to
corrective: removing residual errors (20%)
improve it in reasonable time
adaptive: adjusting to environment changes
(20%)
perfective: quality improvements (>50%)

Software Qualities CS172 2005 Software Qualities CS172 2005


13 14

Reusability Portability

• Existing product (or components) used • Portability - the ease with which software
(with minor modifications) to build another products may be transferred to different
product hardware and software environments
– (Similar to evolvability) • Remains relevant as new platforms and
• Also applies to process environments are introduced (e.g. digital
• Reuse of standard parts is a measure of the assistants)
maturity of the field • Relevant when downloading software in a
(numeric libraries, graphic tool boxes) heterogeneous network environment

Software Qualities CS172 2005 Software Qualities CS172 2005


15 16

Understandability Interoperability

• Ease of understanding software Ability of a system to coexist and cooperate


• Program modification requires program with other systems
understanding e.g., word processor and spreadsheet
Open systems allow different applications,
written by different organizations, to
interoperate

Software Qualities CS172 2005 Software Qualities CS172 2005


17 18

3
Product and Process Qualities Software Product
• Object Code
• Product - what is delivered to a customer • User’s Manual
• Requirements
• Process - used to produce a product • Design
• Source Code
• Test Data

Software Qualities CS172 2005 Software Qualities CS172 2005


19 20

Process Qualities Process Qualities


• Evolvability - the process must be able to • Reusability - various software
accommodate new management and
organizational techniques, changes in methodologies are attempts to reuse the
engineering education, availability of new same process for building different products
techniques, etc... • Productivity - measures the efficiency of a
process
• Visibility - a measure of how clearly all
steps and the current status of the process • Timeliness - the ability to deliver a product
are documented on time

Software Qualities CS172 2005 Software Qualities CS172 2005


21 22

Timeliness:
Timeliness Issues Visual Description of the Mismatch

• Often the development process does not


follow the evolution of user requirements Function
User
• A mismatch occurs between user needs
Actual
requirements and status of the product system
capabilities

t2 Time
t0 t1 t3 t4

Software Qualities CS172 2005 Software Qualities CS172 2005


23 24

4
Application-Specific Qualities Quality Measurement

• E.g., information systems • Many qualities are subjective


Data integrity • No standard metrics defined for most
Security qualities
Data availability
Transaction performance.

Software Qualities CS172 2005 Software Qualities CS172 2005


25 26

Seven Principles

• Rigor and Formality


• Separation of Concerns
• Modularity
• Abstraction
• Anticipation of Change
• Generality
• Incrementality
Software Qualities CS172 2005
27

Vous aimerez peut-être aussi