chapter : 14 quality concepts. what is quality? quality is a complex and multifaceted concept that...

28
Chapter : 14 Quality Concepts

Upload: josephine-lynch

Post on 04-Jan-2016

267 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

Chapter : 14 Quality Concepts

Page 2: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

What Is Quality?

• Quality is a complex and multifaceted concept that can be described from five different points of view.•The transcendental view argues that you immediately recognize, but can not explicitly define.•The user view sees quality in terms of an end user’s specific goals. If the product meets those goals, it exhibits quality.•The manufacturer’s view defines quality in terms of the original specification of the product. If the product conforms the specification, it exhibits quality.•The product view suggests that quality can be tied

Page 3: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

to inherent characteristics of the product.•The value-based view measures quality based on how much a customer is willing to pay for a product.•Quality of design encompasses the degree to which the designer meets the functions and features specified in the requirement model.•Quality of conformance focuses on the degree to which the implementation follows the design and the resulting system meets its requirements and performance goals.

Page 4: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

Software Quality

• Software quality can be defined as : “An effective software process applied in a manner that creates a useful product that provides measurable value for those who produce and who those use it.”•The definition serves to emphasize three important points :

1.An effective software process establishes the infrastructure that supports any effort at building a high-quality software product.

2.A useful product delivers the content, functions, and features that the end user desires, but as important, it delivers these assets in a reliable,

Page 5: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

error-free way. A useful product always satisfies those requirements that have been explicitly stated by stakeholders. It satisfies a set of implicit requirements that are expected of all high-quality software.

3. By adding value for both the producer and user of a software product, high-quality software provides benefits for the software organization and the end-user community.

Page 6: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

Garvin’s Quality Attributes

•David Garvin suggests that quality should be considered by taking a multidimensional viewpoint that begins with an assessment of conformance and terminates with a transcendental view.•Following dimensions of quality can be applied when software quality is considered :

1.Performance Quality : Does the software delivers all content, functions, and features that are specified as part of requirements model in a way that provides value to the end user?

2.Feature Quality : Does the software provide

Page 7: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

features that surprise and delight first-time end users?

3.Reliability : Does the software deliver all features and capability without failure? Is it available when it is needed?

4.Conformance : Does the software conform to local and external software standards that are relevant to the applications? E.g. does the user interface conform to accepted design rules for menu selection or data input?

5.Durability : Can software be maintained or corrected without the inadvertent generation of side effects? Will change causes the error rate or reliability to degrade with time?

Page 8: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

6. Serviceability : Can the software be maintained or corrected in an acceptably short time?

7. Aesthetics : There’s no question that each of us has a different and very subjective vision of what is aesthetic. And yet, most of us would agree that an aesthetic entity has a certain elegance, a unique flow, and a obvious “presence” that are hard to quantify but are evident (clear) nonetheless.

8. Perception : In some situation, you have a set of prejudices that will influence your perception of quality.•Apart from this, we need a set of “hard” quality factors that can be categorized into two groups : (1) factors that can be directly measured (e.g. defects uncovered during testing) (2) factors that can be measured indirectly (e.g. usability)

Page 9: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

McCall’s Quality Factors

• Figure 14.1• Software quality factors of figure focus on three

important aspect of a software product:-

(1)Its operational characteristics

(2)Its ability to undergo changes

(3)Adptabilty to new environment • Correctness:- the extent to which a program

satisfies its specification and fulfills the customer’s mission objectives.

• Reliability :- the extent to which a program can be expected to perform its intended function with required care.

Page 10: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

• Efficiency :- the amount of computing resources and code required by a program to perform its function.

• Integrity:- the extent to which access to software or data by unauthorized persons can be controlled.

• Usability:- the effort required to learn, operate, prepare input for and interpret output of a program.

• Maintainability:- the effort required to locate error in the program.

• Flexibility:- the effort required to modify an operational program.

• Testability:- the effort required to test a program to ensure that it performs its intended function.

Page 11: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

• Portability:- the effort required to transfer the program from one hardware and/or software system environment to another.

• Reusability:- the extent to which a program [or parts of program] can be reused in another applications.

• Interoperability:- the effort required to couple one system to another.

Page 12: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

ISO 9126 Quality Factors

• It was developed in attempt to identify quality attributes for computer software. The standard identifies six key quality attributes.

(1)Funcationality:- the degree to which the s.w satisfies needs as indicated by the following sub-attributes: accuracy, suitability, interoperability etc.

(2)Relaibilty:- The amount of time that the software is available for use as indicated by the flowing sub attributes : fault tolerance, recoverability

(3)Usabilty:- the degree to which s.w is easy to use as indicated by the these attributes: understandability, learnability etc.

Page 13: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

(4)Efficiency:- the degree to which the s.w makes optimal use of resources as indicated by the following sub attributes: time behavior, resource behavior.

(5) Maintainability:- the ease with which repair may be may be made to the software as indicated by the following attributes: changeability, testability, analyzability etc.

(6) Portability: the ease with which the software can be transposed from one environment to another as indicated by these attributes: adaptability, replaceability.

Page 14: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

Targeted Quality Factors

• A software team can develop a set of quality characteristics and associated questions that would probe (check out) the degree to which each factor has been satisfied.

1) Intuitiveness : The degree to which the interface follows expected usage patterns so that even a novice can use it without significant training.

1) Does the interface follow the three golden rules?2) Are the interface operations easy to locate and initiate?

2) Efficiency : The degree to which operations and information can be located or initiated.1) Are output data or content presented so that it is

Page 15: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

understood immediately?2) Does the interface layout and style allow a user to locate operations and information efficiently?

3) Robustness : The degree to which the software handles bad input data or inappropriate user interaction.1) Does the interface provides useful diagnosis and guidance when error condition is uncovered?2) Will the interface recognize common manipulative mistakes and explicitly guide the user back on the right back?

4) Richness : The degree to which the interface provides a rich feature set.1) Can the interface be customized to the specific needs of a user?2) Does the interface provide a macro capability that enables a user to identify a sequence of common operations with a single action or command?

Page 16: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

The Transition To A Quantitative View

• The determination of quality is a key factor.• Subjectivity and specialization also apply to

determining software quality.• A more precise definition of software quality and a

way to derive quantitative measurement of software quality is needed.

Page 17: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

The Software Quality Dilemma• Software engineers should strive to produce high-

quality software. It’s better to apply good practices in attempt to do so.

“Good Enough” Software

• Good enough software delivers high-quality functions and features that users desire, but at the same time it delivers other more obscure (unclear) or specialized functions and features that contain known bug.

• The software vendor hopes that the vast majority of end users will overlook the bugs because they are so happy with other applications.

Page 18: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

• It is true that “good enough” may work in some application domains and for a few major software companies.

• When you deliver a good enough software, you may risk permanent damage to your company’s reputation.

Page 19: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

The Cost Of Quality

• It can be argued that “quality is important but it costs time and money.”

• This argument seems reasonable.• There is no question that quality has a cost, but lack of

quality also has a cost- not only to end users who must live with buggy software, but also to the organization that has built and must maintain it.

• The cost of quality includes all costs incurred in the pursuit of quality or in performing quality-related activities and the downstream costs of lack of quality .

• The cost of quality can be divided into costs associated with prevention, appraisal, and failure.

Page 20: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

• Prevention costs include (1) the cost of management activities required to plan and coordinate all quality control and quality assurance activities, (2) the cost of added technical activities to develop complete requirements and design models, (3) test planning costs, and (4) the cost of all training associated with these activities.

• Appraisal costs include activities to gain insight into product condition the “first time through” each process.E.g. cost of conducting technical reviews, cost of data collection and metric evaluation, cost of testing and debugging.

• Failure costs are those disappear if no errors appeared before or after shipping a product to customers.

Page 21: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

• Failure costs can be subdivided into internal failure costs and external failure costs.

• Internal failure cost are incurred when you detect an error in a product prior to shipment.

• It include : Cost required to perform repair to correct an error

• External failure costs are associated with defects found after the product has been shipped to the customer.

• E.g. product return and replacement, help line support.• Figure 14.2• Example explain

Page 22: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

Risks

• Low-quality software increases risks for both the developer and the end user.

• A warning for creator of computer programs is – that the quality of software matters, the application must be foolproof, and that - whether embedded in the engine of a car- poorly deployed code can kill.

• Poor quality leads to risks, some of them very serious.

Page 23: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

Negligence (Carelessness) And Liability

• The customer claims that the developer has been negligent and therefore not entitled to payment.

• The developer often claims that the customer has repeatedly changed its requirements and has subverted (weaken) the development partnership in other way.

• In every case, the quality of the delivered system comes into question.

Page 24: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

Quality And Security

• As the criticality of Web-based systems and applications grows, application security has become increasingly important.

• Software that does not exhibit high quality is easier to hack, and as a consequence, low-quality software can indirectly increase the security risk with all of its attendant costs and problems.

• To build a secure system, we must focus on quality, and focus must begin during design.

Page 25: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

The Impact Of Management Actions• Software Quality is often influenced by management

decisions.• Estimation Decisions : A software team is rarely given

luxury of providing an estimate for a project before delivery dates are established and overall budget is specified. In many cases there is time-to-market pressure that forces a team to accept unrealistic delivery dates. As a consequence, short cuts are taken, activities that lead to higher-quality software may be skipped.

• Scheduling Decision : When software project schedule is established, tasks are sequenced based on dependencies. E.g. because component A depends on processing that occurs within components B,C, and D, component A cann not be scheduled.

Page 26: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

D, component A can not be scheduled for testing until components B, C, and D are fully tested. But if time is very short, and A must be available for further critical testing, we might decide to test A without its subordinate components . As a consequence, A may have defects that are hidden, only to be discovered much later.

• Risk-oriented decisions : Risk management is also one of the key attributes of a successful software project.

Page 27: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

Achieving Software Quality• Software quality is the result of good project

management and solid software engineering practice.• Management and practice are applied within the

context of four activities :

1.Software Engineering Methods : To build high-quality software, you must understand the problem. A design should be created that conforms to the problem while at the same time exhibiting characteristics that lead to software that exhibits quality dimensions and factors.

2.Project Management Techniques : If (1) the project manager uses estimation to verify that delivery dates are achievable, (2) schedule dependencies are understood and the team resists the temptation to use

Page 28: Chapter : 14 Quality Concepts. What Is Quality? Quality is a complex and multifaceted concept that can be described from five different points of view

short cuts, (3) risk planning is conducted, software quality will increase.

3.Quality Control : It compasses a set of software engineering actions that help to ensure that each work product meets its goals.

4. Quality Assurance : It establishes an infrastructure that supports solid software engineering methods, rational project management, and quality control. It consists of a set of auditing and reporting functions that assess the effectiveness and competence of quality control actions.