Вы находитесь на странице: 1из 9

SOFTWARE ENGINEERING

CS 304

Dr. Arshad A. Shahid


SOFTWARE QUALITIES
• Software engineering (SE) is an
intellectual activity and thus human-
intensive
• Software is built to meet a certain
functional goal and satisfy certain qualities
• Software processes also must meet
certain qualities
• Software qualities are sometimes referred
to as “ilities”

Dr. Arshad A Shahid NU-FAST Islamabad Spring 2009 2


SOFTWARE QUALITIES (Cont..)

Dr. Arshad A Shahid NU-FAST Islamabad Spring 2009 3


CLASSIFICATION OF SW
QUALITIES
• The User:
– wants SW product reliable, efficient, and easy to use
• The Producer:
– wants it to be verifiable, maintainable, portable, and extensible
• The Manager of the Project:
– wants the process productive, predictable, and easy to control
• External versus Internal qualities
– The external qualities are visible to the users of the system
– The internal qualities are those that concerns the developers of the
system.
– You may not achieve one in isolation like user may be interested in
reliability but internal quality of verifiability is necessary for achieving
this external quality.
– The External Factors may be detected by users of the software.
– Internal Factors: Only perceptible to computer professionals
– Internal factors are the key to assuring that the external factors will be
satisfied

Dr. Arshad A Shahid NU-FAST Islamabad Spring 2009 4


CLASSIFICATION OF SW
QUALITIES
• Product* and process qualities
– Product - what is delivered to a customer
– Process - used to produce a product
– Process quality affects product quality
• We can also attribute some qualities to the process,
although process qualities often are closely related to
product qualities.
– For example, to achieve product reliability the process
requires careful planning of test data (and testability).
– Some qualities, such as efficiency, apply both to the product
and to the process.
• All types of qualities fall into major classification as
process, product, internal or external
* Sub-Product, Work product, artifact, deliverable, milestone
Dr. Arshad A Shahid NU-FAST Islamabad Spring 2009 5
CLASSIFICATION OF SW
QUALITIES
• Based on the classifications requirements
can be categorized:
Software Requirements

Functional Architectural Non-Functional


Requirements Requirements (QAs) Requirements

Dr. Arshad A Shahid NU-FAST Islamabad Spring 2009 6


REPRESENTATIVE QUALITIES
Correctness
• Correctness is the ability of software products to perform
their task exactly as defined by their requirements
specification (i.e. Functional Requirements Specifications
and NOT nonfunctional req like performance & scalability).
• assuming that a specification exists!
• Corrections is a mathematical property that establishes
equivalence b/w the S/W and its spec.
• If specifications are formal, since programs are formal
objects, correctness can be defined formally
• It can be proven as a theorem or disproved by
counterexamples (testing)
• We can be more systematic and precise in assessing
correctness depending upon how rigorous we are in
specifying FRs.
• Can be enhanced by proven methodologies, processes and
algo, libraries of modules▪
Dr. Arshad A Shahid NU-FAST Islamabad Spring 2009 7
REPRESENTATIVE QUALITIES
• The Limits of Correctness
– It is an absolute (yes/no) quality
• there is no concept of “degree of correctness”
– there is no concept of severity of deviation

• What if specifications are wrong?


– (e.g., they derive from incorrect requirements
or errors in domain knowledge)

Dr. Arshad A Shahid NU-FAST Islamabad Spring 2009 8


REPRESENTATIVE QUALITIES
Reliability
• Informally, software is reliable if the user can depend on it.
• Literature defines it in terms of statistical behavior---the probability
that the software will operate as expected over a specified time
interval (e.g. Y2k problem); {Mean time to failure; Availability}
• Incorrect S/W may still be reliable (i.e. Incorrect result but Always).
• Unfortunately, software products have not achieved required level of
reliability; and are released along with a list of “Known bugs” *.
• Users take it for granted that “Release 1” of a product is “buggy”.
This is one of the most striking symptoms of the immaturity of the
software-engineering discipline.
• Relationship b/w correctness and reliability (in
ideal case).
– Reliable program should also be correct

Dr. Arshad A Shahid NU-FAST Islamabad Spring 2009 9

Вам также может понравиться