A Systematic Study Of Software Quality – The Objective Of Many Organizations

DOI : 10.17577/IJERTV2IS50637

Download Full-Text PDF Cite this Publication

Text Only Version

A Systematic Study Of Software Quality – The Objective Of Many Organizations

Rutuja K Pensionwar1, Anilkumar Mishra2, Latika Singp

CSE-IT Department, ITM University HUDA Sector 23A, Gurgaon

Abstract

The quality is one of the main objectives of many software organizations which help one to deliver software products that meet and or exceed customer expectations. In Software engineering Software quality and software metrics are one of the most active research areas. Software quality model is one of the vital place where we can obtained the data to improve the performance of various projects. This improvement can be measured in terms of quality, customer satisfaction, less cost and time of quality. Software metrics and the software quality models play an important role in measurement of software quality. Many researchers have proposed many different models for quality to measure software quality of any product. In this paper we are going to check all companies quality policies and also check what kind of process improvement models they used to ensure the quality level.

Keywords: Software quality; Software quality model; Customer satisfaction; Software metrics; Quality policies; Process improvement model;

  1. Introduction

    Quality consists of all characteristics and significant features of a product or an activity which relate to the requirement satisfaction. Software is critical in providing a competitive edge to many organizations, and is progressively becoming a key component of business systems, products and services. The quality of software products is now considered as one of the essential element in business success. Furthermore, the quality of software product is very important and essential since for example in some sensitive systems such as, real-time systems the poor quality may lead to financial loss, mission failure, permanent injury or even loss of human life. There are several definitions for software Quality term, for examples, it is defined by the IEEE [1990] as

    The degree to which a system, component or process meets specified requirements and customer (user) needs (expectations). Pressman [2004]

    defines it as The conformance to explicitly stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software. The ISO, by contrast, defines quality in ISO 14598-1 [ISO, 1999] as The totality of characteristics of an entity that bear on its ability to satisfy stated and implied needs,

    There are a number of quality models in software engineering literature, each one of these quality models consists of a number of quality characteristics (or factors). These quality characteristics could be used to reflect the quality of the software product from the view of that characteristic.

  2. Quality Models

    Here we will discuss about two main quality models:

    1. McCalls Quality Model

    2. FURPS Quality Model

    3. CMM (Capability Maturity Model)

      We will see some comparison and differences between the two.

      1. McCalls Quality Model

        This is one of the best and useful quality models now days which is presented by Jim McCall. McCall Quality Model defines and identifies the quality of a software product by addressing three perspectives which divide the 11 external quality factors.

        1. Product operation: is the products ability to be quickly understood, operated and capable of

          providing the results required by the user. It covers correctness, reliability, efficiency, integrity and usability factors.

        2. Product revision: is the ability to undergo changes, including error correction and system adaptation. It covers maintainability, flexibility and testability factors.

        3. Product transition: is the adaptability to new environments, distributed processing together with changing hardware. It covers portability, reusability and interoperability factors.

      2. FURPS Software Quality Model

        The FURPS model was originally presented by Robert Grady.

        FURPS stands for:

        • Functionality: includes feature sets, capabilities and security.

        • Usability: includes human factors, aesthetics, consistency in the user interface, online and context sensitive help, wizards and agents, user documentation, and training materials.

        • Reliability: includes frequency and severity of failure, recoverability, predictability, accuracy, and mean time between failures (MTBF).

        • Performance: imposes conditions on functional requirements such as speed, efficiency, availability, accuracy, throughput, response time, recovery time, and resource usage.

        • Supportability: includes testability, extensibility, adaptability, maintainability, compatibility, configurability, serviceability.

      3. CMM (Capability Maturity Model)

    It provides guidelines for conduction audits, testing activities and for process improvement. The approach

    classifies the maturity of an organisation into 5 levels.

    CMMI can be used to guide process improvement across a project, division, or an entire organization. Under the CMMI methodology, processes are rated according to their maturity levels, which are defined as: Initial, Repeatable, Defined, Quantitatively Managed, and Optimizing.

    In software quality engineering we need to have a quality models that can be used through out the SDLC. Based on above we came to conclude that all models are compare to each other by some key characteristics and all models are useful in all manner to define a good quality product. Software quality attributes try to describe all aspects of a software system. Software metrics have been providing to reflect software quality. The developers and software engineers use refactoring

    consciously as a mean to improve the quality of their software.

    The proposed model is applied to improve software quality with the help of software quality measurement and metrics.

  3. Quality Improvement Models

We always try to demand high quality product and they are delivered in safe, effective, efficient timely manner. To do this many organizations try to introduce new concepts called as continuous quality improvement. One of the main software process models called as CMM/CMMI which helps software engineers to understand key principles of process improvement. Process improvement refers to making a process more effective, efficient, or transparent.

An organization that conducts process improvement focuses on proactive problem resolution in order to avoid operating in crisis management mode when process degradation occurs. Process improvement helps an organization:

  • View process value through the eyes of the customer;

  • Define, manage, and measure a process in order to regularly evaluate it using data-driven information;

  • Break down process silos by contributing to an understanding of how processes interact and impact one another and customers;

  • Reduce unnecessary business costs.

    The primary goal is to identify and understand issues in order to recognize solutions and implement improvements to stay aligned with customer needs and expectations.

    When stakeholders are involved in process improvement, they can collectively focus to eliminating waste thing likemoney, time, resources, materials, and opportunities. We waste these precios elements when we fail to examine the processes we use to conduct our business. Work can be completed more cost effectively, quickly, and easily. The Process Improvement Methodology (see Figure 1 in Methodology Description below) serves as a common framework for understanding the cyclical, ongoing nature of a process. It provides a set of phased activities for analysis of an existing process for the specific purpose of identifying improvement opportunities. The methodology further guides the user through process improvement implementation.

    These are the four major supported stages reflected in the Process Improvement Methodology:

    1. The first is to identify the process and its elements. Specific phases involve defining the scope of the process to be analysed, as well as documenting and analysing the current state.

    2. Next is to improve the process by identifying and presenting recommendations on specific trouble areas and designing a roadmap to support improvement implementation.

    3. It is important to then effectively manage the improvement implementation and subsequent process operation using a clearly defined, approved approach.

    4. Finally, in order to maintain process health and recognize ongoing improvement opportunities, it is essential to Measure key elements.

    For a deep analysis of the processes by which challenges were overcome. There were also detailed observations of day-to-day business, going through process maps, conducting interviews and walkthroughs. The company had numerous projects and training programs for quality. And yet, there was no improvement.

    Two reasons:

    1. The projects failed to elicit the involvement and commitment of the staff and management.

    2. The outcomes of the projects were not included in the employees scorecard, which made employees think that the projects were unimportant or not important enough.

    For that sake SEI introduces various quality improvement models those helps software engineer

    to understand basic principles of software process improvement.

    1. Different Methodologies

      Lets see one by one each process or quality improvement methods:

      1. PSP/TSP

        PSP helps individual developers improve their Performance by bringing discipline to the way that they develop software. It clearly shows developers how to manage the quality of their products, how to make a sound plan, and how to make commitments. It also offers them the data to justify their plans. They can evaluate their work and suggest improvement direction by analysing and reviewing development time, defects, and size data.

        PSP consists of a series of seven personal processes that provides various scripts, measures, forms, templates, checklists, and standards. These personal processes are categorized as follows [4]:

  • PSP0, PSP0.1 Gather current data

  • PSP1, PSP1.1 Estimate using historical data

  • PSP2, PSP2.1 Manage quality

  • PSP3 Apply PSP2 cyclically

    PSP0 provides a consistent fundamental for measuring progress and a defined foundation on which to improve [5]. PSP0.1 extends PSP0 by appending elements such as coding standard, size measurement, and PIP (Process Improvement Proposal) [4].

    PSP1 focuses on personal project management. PSP1 adds software size estimating and test reporting to PSP. PSP1.1 appends task planning and schedule planning to PSP1.

    PSP2 extends PSP1 by introducing review techniques such as code review and design review [5]. These review techniques help software engineers find defects as early as possible.

    PSP2.1 appends design templates to PSP2 so that software engineers establish design completeness criteria and examine design verification and consistency techniques.

    PSP3 introduces methods for individuals to use when they are developing larger-scale software. In scaling the PSP2 up to larger projects, the approach is to subdivide the personal process of developing larger programs into PSP2-sized pieces [5].

    1. TSP

      The primary goal of TSP is to create a team environment for establishing and maintaining a self directed team, and supporting disciplined individual work as a base of PSP framework [6]. Self-directed team means that the team manages itself, plans and tracks their work, manages the quality of their work, and works proactively to meet team goals.

      TSP has two principal components: team-building and team-working [7]. Team-building is a process that defines roles for each team member and sets up teamwork through TSP launch and periodical relaunch. Team-working is a process that deals with engineering processes and practices utilized by the team. TSP, in short, provides engineers and managers with a way that establishes and manages their team to produce the high quality software on schedule and budget.

    2. Six Sigma

    Six Sigma is a quality improvement approach to enhance organizations performance by using statistical analytic techniques [8]. Six Sigma aims to eliminate the variability and defects which interfere with customer satisfaction and cost reduction. Six Sigma has been being embodied in the management strategy for quality improvement to quantitatively evaluate organizations processes and to reduce process variability [9].

    Six Sigma is defined at three levels [10]:

  • Philosophy: Being more profitable, Six Sigma can be used for improving customer satisfaction by reducing and eliminating defects.

  • Metrics: As a metric, Six Sigma equals to 3.4 defects per million opportunities (DPMO). Additionally Six Sigma includes several metrics such as Defect rate (parts per million), Sigma Level, Defects per Unit (DPU), and Yield [11].

  • Improvement Framework: Six Sigma owns various toolkits and structured problem solving roadmaps such as DMAIC (Define, Measure, Analyze, Improve, Control) and DMADV (Define, Measure, Analyze, Design, Verify).

    Six Sigma, in other words, is defined as the scientific quality improvement approach that measures the performance of the organizations processes and analyzes the cause of the defects by using Six Sigma roadmaps and toolkits, then eliminates the defects and pursues continuous, measurable, and controllable improvement of the organizations processes so as to accomplish Six Sigma level. By eliminating defects and process variability, Six Sigma achieves cost reduction and customer satisfaction.

    Six Sigma is a measurement-driven approach to continuous process improvement that focuses on reduction of variation, consistency, and high product quality. Therefore, in terms of software process, applying Six Sigma which emphasizes on data measurement to PSP/TSP can accelerate software process improvement by identifying high leverage activities, quantifying cost and benefits, evaluating the Effectiveness of process changes, and controlling process performance. Based on this, we provided the mapping table that shows Six Sigma tools which can be used in PSP/TSP.

    However, performance increase at

    the individual and team level can be attained by identifying and analyzing issues using Six Sigma tools that could happen at team level, and that can provides a basis for applying Six Sigma at the project and organization level. Thus, we are currently doing research on how to improve individual and team performance from TSP angle using Six Sigma tools.

    Software development processes can be fully characterized by three simple Measurements:

  • Time the time required to perform a specific task;

  • Size the size of the product produced; and

  • Defects the number of defects, the type of defects, time to eliminate defects, etc

    Processes in a software services company are repeatable and can be improved by the process improvement. Success of Six Sigma in the manufacturing domain has encouraged its application in the software doman.

    1. Various Companies Quality Criteria

      From literature survey I came to know that there are some barriers that can scatter the quality of any product like they can not be resist to any kind of change in specification, low commitment, inefficient resources, less teamwork skill, limited software aids. So all these barriers may affect any product that can increase the cost of product.

      Lets see one by one each company that obeys various quality improvement methodologies:

      1. TCS

        Six Sigma provides an effective mechanism to focus on customer requirements, through improvement of process quality. In the Global Engineering Development Center of Tata Consultancy Services (TCS GEDC) at Chennai, India, Six Sigma projects are being carried out with the objective of improving on time delivery, product quality and in-process quality.

        TCS GEDC has a number of initiatives in quality and process management and is on its journey to Level 5 of the Capability Maturity Model (CMM) enunciated by the Software Engineering Institute of Carnegie Mellon University [13].

        Six Sigma Quality quantitatively means that the average review process generates 3.4 defects per million units where a unit can be anything ranging from a component to a line of code or an administrative form. This implies that nearly flawless execution of key processes is critical to achieve customer satisfaction and productivity growth. A defect is anything that results in customer Dissatisfaction. Is one of the main approaches of this company.

        All employees are trained on Six Sigma Quality to increase their awareness, understanding, and the day-today use of Six Sigma tools and processes, and their application to projects.

        Six Sigma projects (quality projects) are chosen, based on customer feedback and analysis of the process metrics. Projects that have a significant customer impact and financial savings are given top priority.

        The goal is to achieve Six Sigma level not only in product quality, which is currently at 5.85, but also in the other client specified metrics of on-time delivery and estimate compliance. To achieve this goal, TCS – GEDC plans to have about 60 Six Sigma projects completed by the second quarter of 2001.

        Quality Framework for TCS: We are worlds first organization to achieve an enterprise-wide Maturity Level 5 on CMMI® and P-CMM ®based on SCAMPISM, the most rigorous assessment methodology.

      2. INFOSYS

        Their product Quality is ensured across all our processes, interfaces and outputs in management, core and support processes. It helps them to deliver long-term excellence, and ultimately, predictability of returns, through the Global Delivery Model (GDM), to all stakeholders. They improve "Execution Excellence" through continuous productivity improvement. They have continuously benchmarked our processes against world-class standards and models such as ISO 9001-TickIT, SEI-CMM / CMMI, ISO 20000, ISO

        27000, AS 9100, TL 9000 and ISO 14001.

        Regular and rigorous assessments are conducted by reputed external assessors. Their process performance has emerged as better than that of our peers. Infosys has embarked on several strategic improvement initiatives:

  • Baldrige-based assessment of units for business excellence.

  • Organization-wide reuses and tools initiatives for productivity improvement.

  • Program management framework to enable execution of large deals.

  • Proactive risk assessment model and approach to mitigate execution risks

  • Internal quality certification to equip our team members with required skill sets quickly.

    Quality Framework for INFOSYS: They have continuously benchmarked our processes against world-class standards and models such as ISO 9001-TickIT, SEI-CMM / CMMI, ISO 20000, ISO

    27000, AS 9100, TL 9000 and ISO 14001.

    1. WIPRO

      Wipro is the first PCMM Level 5 and SEI CMMi Level 5 certified IT Services Company

      Globally Wipro provides comprehensive IT solutions and services (including systems integration, IS outsourcing, package implementation, software application development and maintenance) and Research & Development services (hardware and software design, development and implementation) to corporations globally.

      Outsourcing Model and stringent Quality Processes of SEI and Six Sigma.

      Wipros position of leadership in the IT business is built on a strong foundation of quality processes (Six Sigma and ISO 9000), Knowledge Management, Innovation & People processes (P- CMM: People Capability Maturity Model). Wipro InfoTech was also one of the earliest adopters of Six Sigma. Besides offering Six Sigma consulting services, the company has used Six Sigma methodology to improve internal process performance in diverse areas to bring about quicker deliveries, higher reliability, simplified processes for customers and employees, call response and personal productivity.

      Quality Framework for WIPRO: Most mature Six Sigma program in the industry, first company to be awarded by PCMM level 5 and SEI CMMI level 5. Defect prevention and post release defect at

      0.2 per KLOC with assurance that quality on your products will never be compromised.

    2. IBM

    Quality software delivery is entering a new era. In 2006, the Software Engineering Institute (SEI) report, Performance Results of CMMI-Based Process Improvement,2 stated that, of the organizations surveyed, those that implemented

    Capability Maturity Model Integration (CMMI®) processes improved quality by 48 percent, while reducing costs by 34 percent and shortening schedules by 50 percent. Not surprisingly, the process improvements SEI recommended include early, iterative and continuous quality activities. This also requires a comprehensive, Collaborative software fitness process model, upon which IBM has built its team oriented Rational® platform.

    Quality framework for IBM: the IBM Rational quality management solution provides a full set of software delivery process guidelines, best practices and integrated team tools to help your organization achieve CMMI-level improvements in cost efficiency, quality metrics and time to value for business-critical projects. IBM Rational best practices, quality management solutions and skills have helped many organizations achieve industry- leading CMMI process improvement metrics, competitive business growth and rapid adoption of new technologies for innovation.

    1. Conclusion

      This paper has define main quality models that which are applied to project to improve quality of any product for that sake we have to build such process that not just improve the quality but also effective, efficient and transparent.

      The quality is one of the main objectives of many software organizations which help one to deliver software products that meet and or exceed customer expectations. Software quality model is one of the vital places where we can obtain the data to improve the performance of various projects.

      In this paper we are going to check all companies

  • Quality policies

  • Quality frameworks

  • Quality improvement methods like TSP, PSP, CMMI, SIX SIGMA etc.

To check what kind of process improvement models they used to ensure the quality level. So for that sake I have gone through some research papers and from those I came to understand that since all companies use their quality policies but still they lack in some project to define high quality product.

  1. References

  1. Dr. Deepshikha Jamwal, Analysis of Software Quality Models for Organizations, International Journal of Latest Trends in Computing (E-ISSN: 2045-5364)19 Volume 1, Issue 2, December 2010.

  2. Marc-Alexis Côté M, Software Quality Model Requirements for Software Quality Engineering.

  3. Biehl, R. E. (2001). Six sigma for Software. IEEE Sofware, 21(2), 68-70.

  4. Watts S. Humphrey, The Personal Software Process (PSP), Software Engineering Institute, CMU/SEI-2000- TR-022, ESC-TR-2000-022, 2000.

  5. Watts S. Humphrey, The personal process in software engineering, October 1994, pp 69 77.

  6. Noopur Davis, Julia Mullaney, The Team Software ProcessSM (TSPSM) in Practice: A Summary of Recent Results, Software Engineering Institute, CMU/SEI- 2003-TR-014, ESC-TR- 2003-014,2003.

  7. Watts S. Humphrey, The Team Software Process (TSP), Software Engineering Institute, CMU/SEI-2000- TR-023, ESC-TR-2000-023, 2000.

  8. Thomas Pyzdek, The Six Sigma Handbook: The Complete Guide for Greenbelts, Blackbelts, and Managers at All Levels, Revised and Expanded Edition, McGraw-Hill, 2003.

  9. Pete, Larry Holpp, What is Six Sigma?, McGraw- Hill, 2002.

  10. Jeannine Siviy, M. Lynn Penn, and Erin Harper,

    Relationships Between CMMI® and Six Sigma, Software Engineering Institute, CMU/SEI-2005-TN-005, 2005.

  11. David L. Hallowell, Six Sigma Software Metrics, Part 3. [12]http://software.isixsigma.com/library/content/c03101

  1. http://www.minitab.com/

  2. Paulk M, Weber C, Curtis B, Chrissis M.B.(1995) The Capability Maturity Model: Guidelines for Imp roving the Software Process.Addison Wesley Publishing Company, Reading, MA.

  3. Forrest W. Breyfogle Implementing Six Sigma: Smarter Solutions Using Statistical Methods.

Leave a Reply