Software quality management

Last updated

Software Quality Management (SQM) is a management process that aims to develop and manage the quality of software in such a way so as to best ensure that the product meets the quality standards expected by the customer while also meeting any necessary regulatory and developer requirements, if any. [1] [2] [3] Software quality managers require software to be tested before it is released to the market, and they do this using a cyclical process-based quality assessment in order to reveal and fix bugs before release. Their job is not only to ensure their software is in good shape for the consumer but also to encourage a culture of quality throughout the enterprise. [1] [2] [3]

Contents

Quality management activities

Software quality management activities are generally split up into three core components: quality assurance, quality planning, and quality control. [1] [2] Some like software engineer and author Ian Sommerville don't use the term "quality control" (as quality control is often viewed as more a manufacturing term than a software development term), rather, linking its associated concepts with the concept of quality assurance. [3] However, the three core components otherwise remain the same.

Quality assurance

Software quality assurance sets up an organized and logical set of organizational processes and deciding on that software development standards — based on industry best practices — that should be paired with those organizational processes, software developers stand a better chance of producing higher quality software. However, linking quality attributes such as "maintainability" and "reliability" to processes is more difficult in software development due to its creative design elements versus the mechanical processes of manufacturing. [1] [2] [3] Additionally, "process standardization can sometimes stifle creativity, which leads to poorer rather than better quality software." [3]

This stage can include:

Quality planning

Quality planning works at a more granular, project-based level, defining the quality attributes to be associated with the output of the project and how those attributes should be assessed. Additionally, any existing organizational standards may also be assigned to the project at this phase. Attributes such as "robustness," "accessibility," and "modularity" may be assigned to the software development project. [1] [2] While this may be a more formalized, integral process, those using a more agile method of quality management may place less emphasis on strict planning structures. [3] The quality plan may also address intended market, critical release dates, quality goals, expected risks, and risk management policy. [2] [3]

Quality control

The quality control team tests and reviews software at its various stages to ensure quality assurance processes and standards at both the organizational and project level are being followed. [1] [2] (Some like Sommerville link these responsibilities to quality assurance rather than call it quality control. [3] ) These checks are optimally separate from the development team so as to lend more of an objective view of the product to be tested. [2] [3] However, project managers on the development side must also assist, helping to promote as part of this phase a "culture that provides support without blame when errors are discovered." [3] In software development firms implementing a more agile quality approach, these activities may be less formal; however, a switch to agile methods from a more formal quality management structure may create problems if management procedures aren't appropriately adapted. [3]

Activities include:

Software quality and the software lifecycle

The measurement of software quality is different from manufacturing; tolerances aren't applicable (at least in the same way), and objective conclusions concerning if software meets specifications are difficult if not impossible to achieve. [3] However, software's quality and fit-for-purpose status can still be realized in various ways depending on the organization and type of realized project. [4] This done through the support of the entire software development lifecycle, meaning:

Software quality management is a topic strongly linked with various project management, development, and IT operation methods, including:

Software Quality Management implementation sample for project using RUP and V-Model Extended VModelRUP EN 01.jpg
Software Quality Management implementation sample for project using RUP and V-Model
  • component "Quality in a project environment", which describes necessity of double-checked and objective control of created products. It proposes using 4 elements: quality management system, function of quality control, planning quality and quality controls.
  • "Quality Review Technique" which is focused on verification if created products fulfills defined quality criteria.
  • 3.4.12 Plan Quality,
  • 3.5.2. Perform Quality Assurance,
  • 3.6.7. Perform Quality Control

Associations and organizations

See also

Related Research Articles

<span class="mw-page-title-main">Acceptance testing</span> Test to determine if the requirements of a specification or contract are met

In engineering and its various subdisciplines, acceptance testing is a test conducted to determine if the requirements of a specification or contract are met. It may involve chemical tests, physical tests, or performance tests.

Software testing is the act of examining the artifacts and the behavior of the software under test by validation and verification. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not necessarily limited to:

<span class="mw-page-title-main">Configuration management</span> Process for maintaining consistency of a product attributes with its design

Configuration management (CM) is a systems engineering process for establishing and maintaining consistency of a product's performance, functional, and physical attributes with its requirements, design, and operational information throughout its life. The CM process is widely used by military engineering organizations to manage changes throughout the system lifecycle of complex systems, such as weapon systems, military vehicles, and information systems. Outside the military, the CM process is also used with IT service management as defined by ITIL, and with other domain models in the civil engineering and other industrial engineering segments such as roads, bridges, canals, dams, and buildings.

<span class="mw-page-title-main">Project Management Body of Knowledge</span> Body of knowledge for project management

The Project Management Body of Knowledge (PMBOK) is a set of standard terminology and guidelines for project management. The body of knowledge evolves over time and is presented in A Guide to the Project Management Body of Knowledge, a book whose seventh edition was released in 2021. This document results from work overseen by the Project Management Institute (PMI), which offers the CAPM and PMP certifications.

A software company is an organisation — owned either by the state or private — established for profit whose primary products are various forms of software, software technology, distribution, and software product development. They make up the software industry.

The rational unified process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs. RUP is a specific implementation of the Unified Process.

Quality assurance (QA) is the term used in both manufacturing and service industries to describe the systematic efforts taken to assure that the product(s) delivered to customer(s) meet with the contractual and other agreed upon performance, design, reliability, and maintainability expectations of that customer. The core purpose of Quality Assurance is to prevent mistakes and defects in the development and production of both manufactured products, such as automobiles and shoes, and delivered services, such as automotive repair and athletic shoe design. Assuring quality and therefore avoiding problems and delays when delivering products or services to customers is what ISO 9000 defines as that "part of quality management focused on providing confidence that quality requirements will be fulfilled". This defect prevention aspect of quality assurance differs from the defect detection aspect of quality control and has been referred to as a shift left since it focuses on quality efforts earlier in product development and production and on avoiding defects in the first place rather than correcting them after the fact.

<span class="mw-page-title-main">PRINCE2</span> Project management method

PRINCE2 is a structured project management method and practitioner certification programme. PRINCE2 emphasises dividing projects into manageable and controllable stages.

In software development, agile practices include requirements discovery and solutions improvement through the collaborative effort of self-organizing and cross-functional teams with their customer(s)/end user(s), Popularized in the 2001 Manifesto for Agile Software Development, these values and principles were derived from and underpin a broad range of software development frameworks, including Scrum and Kanban.

<span class="mw-page-title-main">Dynamic systems development method</span>

Dynamic systems development method (DSDM) is an agile project delivery framework, initially used as a software development method. First released in 1994, DSDM originally sought to provide some discipline to the rapid application development (RAD) method. In later versions the DSDM Agile Project Framework was revised and became a generic approach to project management and solution delivery rather than being focused specifically on software development and code creation and could be used for non-IT projects. The DSDM Agile Project Framework covers a wide range of activities across the whole project lifecycle and includes strong foundations and governance, which set it apart from some other Agile methods. The DSDM Agile Project Framework is an iterative and incremental approach that embraces principles of Agile development, including continuous user/customer involvement.

In software project management, software testing, and software engineering, verification and validation (V&V) is the process of checking that a software system meets specifications and requirements so that it fulfills its intended purpose. It may also be referred to as software quality control. It is normally the responsibility of software testers as part of the software development lifecycle. In simple terms, software verification is: "Assuming we should build X, does our software achieve its goals without any bugs or gaps?" On the other hand, software validation is: "Was X what we should have built? Does X meet the high-level requirements?"

The Personal Software Process (PSP) is a structured software development process that is designed to help software engineers better understand and improve their performance by bringing discipline to the way they develop software and tracking their predicted and actual development of the code. 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 analyzing and reviewing development time, defects, and size data. The PSP was created by Watts Humphrey to apply the underlying principles of the Software Engineering Institute's (SEI) Capability Maturity Model (CMM) to the software development practices of a single developer. It claims to give software engineers the process skills necessary to work on a team software process (TSP) team.

<span class="mw-page-title-main">V-model</span> Graphic of a systems development lifecycle

The V-model is a graphical representation of a systems development lifecycle. It is used to produce rigorous development lifecycle models and project management models. The V-model falls into three broad categories, the German V-Modell, a general testing model, and the US government standard.

Capability Maturity Model Integration (CMMI) is a process level improvement training and appraisal program. Administered by the CMMI Institute, a subsidiary of ISACA, it was developed at Carnegie Mellon University (CMU). It is required by many U.S. Government contracts, especially in software development. CMU claims CMMI can be used to guide process improvement across a project, division, or an entire organization. CMMI defines the following maturity levels for processes: Initial, Managed, Defined, Quantitatively Managed, and Optimizing. Version 2.0 was published in 2018. CMMI is registered in the U.S. Patent and Trademark Office by CMU.

Quality management ensures that an organization, product or service consistently functions well. It has four main components: quality planning, quality assurance, quality control and quality improvement. Quality management is focused not only on product and service quality, but also on the means to achieve it. Quality management, therefore, uses quality assurance and control of processes as well as products to achieve more consistent quality. Quality control is also part of quality management. What a customer wants and is willing to pay for it, determines quality. It is a written or unwritten commitment to a known or unknown consumer in the market. Quality can be defined as how well the product performs its intended function.

Software quality assurance (SQA) is a means and practice of monitoring all software engineering processes, methods, and work products to ensure compliance against defined standards. It may include ensuring conformance to standards or models, such as ISO/IEC 9126, SPICE or CMMI.

The Capability Maturity Model Integration (CMMI) defines a process area as, "a cluster of related practices in an area that, when implemented collectively, satisfies a set of goals considered important for making improvement in that area." Both CMMI for Development v1.3 and CMMI for Acquisition v1.3 identify 22 process areas, whereas CMMI for Services v1.3 identifies 24 process areas. Many of the process areas are the same in these three models.

An independent test organization is an organization, person, or company that tests products, materials, software, etc. according to agreed requirements. The test organization can be affiliated with the government or universities or can be an independent testing laboratory. They are independent because they are not affiliated with the producer nor the user of the item being tested: no commercial bias is present. These "contract testing" facilities are sometimes called "third party" testing or evaluation facilities.

In software engineering, a software development process is a process of planning and managing software development. It typically involves dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design and/or product management. It is also known as a software development life cycle (SDLC). The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.

<span class="mw-page-title-main">In-Step BLUE</span>

in-STEP BLUE is a project management software program developed and sold by microTOOL GmbH, based in Berlin, Germany. It is designed to assist project managers in developing plans, assigning resources to tasks, tracking progress, managing budgets, requirements, changes and risks as well as analyzing workloads. The tool automatically stores all project results in a central repository shared by all users. Individual project management methods can be supported as well as the agile method Scrum, official methods like the British PRINCE2, the German V-Model XT, the Swiss HERMES method and methods for the automotive industry according to ISO/IEC 15504, also known as SPICE.

References

  1. 1 2 3 4 5 6 Zsolt, U. (February 2014). "Software quality management" (PDF). Software Development Processes and Software Quality Assurance. University of Pannonia. pp. 117–121. Retrieved 7 December 2017.
  2. 1 2 3 4 5 6 7 8 Maxim, B.R. (2014). "Software Quality Management" (PPT). University of Michigan - Dearborn. Retrieved 7 December 2017.
  3. 1 2 3 4 5 6 7 8 9 10 11 12 Sommerville, I. (2011). "Chapter 24: Quality Management". Software Engineering (9th ed.). Addison-Wesley. pp. 651–680. ISBN   9780137035151.
  4. Kelemen, Z. D. (2013). Process Based Unification for Multi-Model Software Process Improvement Eindhoven: Technische Universiteit Eindhoven. ISBN   978-90-386-3313-8
  5. OGC (Office of Government Commerce) (2009). Managing Successful Projects with PRINCE2 (2009 ed.). TSO (The Stationery Office). ISBN   978-0-11-331059-3
  6. A Guide to the Project Management Body of Knowledge, Fourth Edition, PMI, USA, 2008
  7. Microsoft Solution Framework - Chapter 18 Stabilization phase, Published: April 27, 2005
  8. "Certifying Software Testers Worldwide". International Software Testing Qualifications Board. Retrieved 7 December 2017.