SQA – SWE 333 Software Quality Assurance Prof. Dr. Mohamed BATOUHE Dept. of Software Engineering CCIS – King Saud University 1 What is CMM ?? 2 Why CMM matters … It is the most widespread and detailed software development model It is a standard for much DoD work, which is a lot of software projects It is being used by many non-DoD businesses It is widely criticized, and has inspired several anti- CMM models 3 History … Begun in 1986 by DoD to help improve government software contractors. Work started at Mitre, then at Software Engineering Institute (SEI) at Carnegie Mellon Univ. Watts Humphrey was initial author, then Mark Paulk, Bill Curtis, and others. Borrows heavily from general Total Quality Management (TQM) and work of Philip Crosby. Under active development for 15+ years, ongoing… Has gained significant interest among non-DoD software vendors. All documents are public, and many are free. Known as SW-CMM or CMM. 4 SW Development and Football What happens when a ball is hit to a Little League team? Everyone runs around at random. They might do the right thing, or they might not. The next time the ball is hit in the same place, they may do something different. What happens when a ball is hit to a professional team? Everyone moves in a coordinated fashion, based on practicing that play many times. Sometimes they fail to make the right play, but they almost always try to do the right thing. 5 SW Development and Football A professional football team is more "mature" than a Little League team (not referring to age). A professional team has self-perpetuating quality. They Make good plays Develop new players like themselves Find ways to make better plays 6 SW Development and Football What happens when the team loses a star player? Little League team gets much worse. Professional team often has someone waiting to fill in. Self-improvement after a bad play… Little League players don’t know what went wrong, or they blame each other. Professional teams discuss their play and look for ways to improve. 7 … So what is CMM? In the same way, high-quality SW organizations are different from low-quality orgs. CMM tries to capture and describe these differences. CMM strives to create software development organizations that are “mature”, or more mature than before applying CMM. 8 … So what is CMM? While awarding a contract, the customer needs to gain confidence that an organization is capable of delivering the desired product. The US Department of Defense wanted to evaluate their contractors. They needed a framework to evaluate the maturity of software processes. In 1986, the Software Engineering Institute (SEI) initiated the development of a framework to be called the CMM. In the CMM model, the maturity level of an organization tells us to what extent an organization can produce low cost, high quality software. Having known the current maturity level, an organization can work to reach the next higher level. There are five levels of SW process maturity in the CMM model. Includes lots of detail about each level. 9 CMM in details – Five levels of maturity 10 Five levels of maturity … 11 Summary of levels Level 1 – Initial. Anything at all. Ad-hoc and chaotic. Will have some successes, but will also have failures and badly missed deadlines. Level 2 – Repeatable. SW processes are defined, documented, practiced, and people are trained in them. Groups across an organization may use different processes. 12 Summary of levels Level 3 – Defined. SW processes are consistent and known across the whole organization. Level 4 – Managed. SW processes and results are measured quantitatively, and processes are evaluated with this data. Level 5 – Optimizing. Continuous process improvement. Experimenting with new methods and technologies. Change processes when find something that works better. 13 Level 1 – Initial Team tackles projects in different ways each time Can have strong successes, but may not repeat Some time/cost estimates are accurate, many far off Success comes from smart people doing the right things Hard to recover from good people leaving Frequent crises and "firefighting.” (Many believe this is standard for SW development. CMM says NO.) Most SW development organizations are Level 1. 14 Level 2 – Repeatable Key areas Requirements management Software project planning Project tracking and oversight Subcontracts management Quality assurance Configuration management 15 Level 3 – Defined Key areas. Level 2, plus… Organization-wide process focus Organization-wide process definition Training program in above Integrated software management (above applied per project) Software product engineering (coding, etc.) Inter-group coordination Peer reviews 16 Level 4 – Managed Key areas. Level 3, plus… Quantitative process management (data gathering) Quality management (data-driven quality improvement) 17 Level 5 – Optimizing Key areas. Level 4, plus… Defect prevention Technology change management (bring in new methods) Process change management (improve processes) 18 Structure of the Levels Main idea: Saying you will do something is not enough. 19 Time required to progress to next level Capability level transition Level 1 to level 2 Mean time (months) 24 No. of organizations 125 Level 2 to level 3 21.5 124 Level 3 to level 4 33 18 Level 4 to level 5 18 19 Source: Based on Gartner Inc. (2001) 20 Project Resources distribution Percentage of project resources CMM capability level Original work Reworking Testing and quality assurance 1 34 41 25 2 55 18 27 3 67 11 22 4 76 7 17 21 Observation: CMM contains a lot of verbiage. Can seem like just a word game, which it might be to some extent. If you get beyond the verbiage however, CMM does describe some important methods for running software projects. 22 Problems with CMM It is a goal, not a method Being used just as stamp of approval Doesn’t say anything about software! Doesn’t help in a crisis Only for repetitive tasks 23 CMM is a goal, not a method Organizations often look to CMM as a method or formula for improvement Tempting to want easy answers. CMM is actually a management framework, with many details left out Example: “You must have peer reviews.” But how should the reviews be run? If you say, "we do CMM just like the book", you aren't doing CMM To use CMM, you have to think You must be flexible, be creative, and integrate the goals of CMM with the realities of your business. 24 CMM is a goal, not a method Related to this point, some organizations are rigid about mandating CMM to their employees This has given CMM a bad reputation as an onerous, inflexible method The problem here (usually) is misunderstanding CMM, not its rigidity 25 Becoming stamp of approval Some organizations want CMM only as a stamp of approval, without a high-level commitment to process improvement or quality Want to find easiest way to get certified as Level 2 (or 3) without really changing A CMM assessor was tired and disillusioned because: She wanted companies to say, “Let’s work together to improve our software processes.” Instead, they say, “Just tell us what to do to get Level 2, so we can get back to work." 26 Not about software! CMM is, by design, a model for managing software projects They claim most software failures are due to management problems rather than technical barriers (I agree) But CMM goes too far in this direction An organization could write lousy code (consistently) and be rated highly by CMM This is counter-intuitive, since good code is the goal of software development 27 Does not help in a crisis CMM does not help projects that are in crisis right now Trying to apply it then would make things worse Unfortunately, this is often when companies look for help with their software processes Analogy: For long-term cardiac health… Eat lots of fruits and veggies, quit smoking, get exercise, reduce stress But suppose you are having a heart attack now. Will these actions help? It is too late for preventive measures. You need some other kind of intervention. 28 Only for repetitive tasks CMM is based on re-using past results for future software projects In management activities, quality measurements, development processes But, this only makes sense for relatively repetitive projects Example: MS Word team creating V7 after V1-6 To create brand-new software of unknown size, with unknown hurdles, using human creativity, CMM is clearly not the right model. 29 “Maturity suite” (OPT) Personal Software Process (PSP) Team Software Process (TSP) People CMM (P-CMM) Software Acquisition CMM (SA-CMM) System Engineering CMM (SE-CMM) Integrated Product Development CMM (IPD-CMM) CMM Integration (CMMI): SW + SE + IPD 30 Versions of CMMI (capability maturity model integration) CMMI-SE/SW System Engineering CMM (SE-CMM) Software engineering CMM (SW-CMM) CMMI-SE/SW/IPPD/SS System Engineering CMM (SE-CMM) Software engineering CMM (SW-CMM) Integrated Product/Process Development (IPPD-CMM) Supplier Sourcing CMMI-SE/SW/IPPD System Engineering CMM (SE-CMM) Software engineering CMM (SW-CMM) Integrated Product/Process Development (IPPD-CMM) 31 ISO 9000 vs. Capability Maturity Molel 32 ISO 9000/9001 and CMM Definition ISO 9000/9001 CMM A set of documents dealing with quality systems that can be used for external quality assurance purposes. The Capability Maturity Model describes the principles and practices underlying software process maturity and intended to help software organizations improve the maturity of their software process. ISO 9000/9001 and CMM ISO 9000/9001 CMM Development By The International Standards Organization By The Software Engineering Institute Written for Wide range of industry Software industry Documents Abstract Detailed ISO 9000/9001 and CMM ISO 9000/9001 CMM Pages long Only 5 pages Over 500 pages Concept To follow a set of standards to make success repeatable To emphasize on achieving and improving its process continuously Documents On the customer/supplier relationship to reduce a customer’s risk in choosing a supplier. The supplier to improve the internal software process. ISO 9000/9001 and CMM Management Responsibility ISO 9000/9001 CMM Quality policy is defined, documented, understood, implemented, and maintained; that responsibilities and authorities for all personnel specifying, achieving, and monitoring quality be defined. Quality policy is primarily addressed in Software Quality Assurance. ISO 9000/9001 and CMM ISO 9000/9001 Quality System CMM Procedures are addresses and assured in Software Requires documented Quality Assurance. quality system, included Software product procedures and Engineering tasks should instructions, be be defined, integrated, established. and consistently performed. ISO 9000/9001 and CMM ISO 9000/9001 Contract Review CMM Contracts are reviewed to determine whether the Documented and requirements are reviewed and the adequately defined, agree with the bid, and missing requirements are clarified. can be implemented. ISO 9000/9001 and CMM ISO 9000/9001 Design Control CMM Requires that procedures to control and verify the The life cycle activities design be established. on requirements This includes planning analysis, design, code, design activities, and test are described in identifying inputs and Software Product outputs, verifying the Engineering. design, and controlling design changes. ISO 9000/9001 and CMM ISO 9000/9001 Document Control CMM The configuration Requires that the management practices distribution and characterizing document modification of control are described in documents be controlled. Software Configuration Management. ISO 9000/9001 and CMM ISO 9000/9001 Purchasing Requires that purchased products conform to their specified requirements. This includes the assessment of potential subcontractors and verification of purchased products. CMM This is addressed in Software Subcontract Management. ISO 9000/9001 and CMM PurchaserSupplied Product ISO 9000/9001 CMM Requires that any purchaser-supplied material be verified and maintained. Describing the use of purchased software. It does so in the context of identifying off-the-shelf or reusable software as part of planning. ISO 9000/9001 and CMM ISO 9000/9001 Product Identification and Trace ability CMM Software Product Requires that the product Engineering states the be identified and specific need for traceable during all consistency and trace stages of production, ability between software delivery, and installation. work products. ISO 9000/9001 and CMM ISO 9000/9001 Process Control Servicing CMM Requires that production The procedures defining processes be defined and the software production planned. This includes process are distributed carrying out production throughout the key under controlled process areas in the conditions, according to various Activities documented instructions. Performed practices. Requires that servicing activities be performed as specified. Intended to be applied in both the software development and maintenance environments, ISO 9000/9001 and CMM Training ISO 9000/9001 CMM Requires that training needs be identified and that training be provided, since selected tasks may require qualified personnel. Records of training are maintained. Identified in the training and orientation practices in the Ability to Perform common feature. ISO 9000/9001 and CMM Quality Records ISO 9000/9001 CMM Requires that quality records be collected, maintained, and dispositioned. Specifically pertinent to this clause are the testing and peer review practices in Software Product Engineering. Companies have ISO 9001 certification AIR LIQUIDE ALLIED SIGNAL AEROSPACE AMERICAN PACIFIC CORPORATION AMERICAN TANK & FABRICATING CO. APPLIED MATERIALS, INC. ARCO CHEMICAL COMPANY ASHLAND CHEMICAL CO. ASME INTERNATIONAL ASQ AT&T BABCOCK & WILCOX BACARDI-MARTINI CANADA, INC BAKER HUGHES MINING TOOLS, INC. BARCLAYS BANK, PLC. BASF CORPORATION BAXTER DIAGNOSTICS, INC. BAYER CORPORATION BECKMAN INSTRUMENTS BELL SOUTH TELECOMMUNICATIONS, INC. BELL TECHNOLOGIES BOEING BOEING AEROSPACE OPERATIONS BOSE CORPORATION Companies have ISO 9001 certification BRISTOL- MYERS SQUIBB BRITISH STANDARDS INSTITUTION, INC. BURLINGTON PERFORMANCE WEAR CAMPBELL SOUP COMPANY CANADA GENERAL STANDARDS BOARD CARRIER CORPORATION CATERPILLAR, INC. CHRYSLER CORPORATION CIBA VISION CREATIVE LABS CUTLER & HAMMER DAIMLER CHRYSLER DIEBOLD, INC. DOW CHEMICAL DRAVO DUNLOP TIRE CORPORATION DURACELL E.I. DUPONT EASTMAN KODAK EATON CORPORATION ENTELA, INC., QSRD ERICSSON, INC. ESSILOR OF AMERICA, INC. ESTEE LAUDER COMPANIES EXXON CHEMICAL COMPANY Companies have ISO 9001 certification EXXON COMPANY, INC. FISERV FORD FUJITSU COMPUTER PRODUCTS GE AIRCRAFT ENGINES GILLETTE GOODYEAR TIRE GOODYEAR TIRE & RUBBER COMPANY HARBISON-WALKER REFRACTORIES HASBRO USA GAME MFG. HEWLETT PACKARD HYUNDAI ELECTRONICS AMERICA IBM INGERSOLL-RAND INTL. SALES INC KOHLER KRUPP WERNER & PFLEIDERER CORPORATION LOCKHEED MARTIN AIR TRAFFIC MANAGEMENT LOCKHEED MARTIN CANADA LOCKHEED MARTIN ENERGY SYSTEMS References Williaw E. Lewis, “Software Testing And Continuous Quality Improvement”, Third Edition, CRC Press, 2009. K. Naik and P. Tripathy: “Software Testing and Quality Assurance”, Wiley, 2008. Ian Sommerville, Software Engineering, 8th edition, 2006. Aditya P. Mathur,“Foundations of Software Testing”, Pearson Education, 2009. D. Galin, “Software Quality Assurance: From Theory to Implementation”, Pearson Education, 2004 David Gustafson, “Theory and Problems of Software Engineering”, Schaum’s Outline Series, McGRAW-HILL, 2002. Michael R. Liu, Handbook of Software Reliability Engineering, IEEE Computer Society Press, McGraw-Hill, 2005. 50 51
© Copyright 2026 Paperzz