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"
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"
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"
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