Watts Humphrey | |
---|---|
Born | Battle Creek, Michigan, U.S. | July 4, 1927
Died | October 28, 2010 83) | (aged
Known for | Capability Maturity Model |
Awards | National Medal of Technology |
Scientific career | |
Fields | Software engineering |
Institutions | IBM, Software Engineering Institute |
Watts S. Humphrey (July 4, 1927 – October 28, 2010) was an American pioneer in software engineering who was called the "father of software quality." [1]
Watts Humphrey (whose grandfather and father also had the same name) was born in Battle Creek, Michigan on July 4, 1927. His uncle was US Secretary of the Treasury George M. Humphrey. [2] In 1944, he graduated from high school and served in the United States Navy. [3] Despite dyslexia, he received a bachelor of science in physics from the University of Chicago, a master of science in physics from Illinois Institute of Technology physics department, and a master of business administration from the University of Chicago Graduate School of Business. [1]
In 1953 he went to Boston and worked at Sylvania Labs. In 1959 he joined IBM. [4] In the late 1960s, Humphrey headed the IBM software team that introduced the first software license. Humphrey was a vice president at IBM.
In the 1980s at the Software Engineering Institute (SEI) at Carnegie Mellon University Humphrey founded the Software Process Program, and served as director of that program from 1986 until the early 1990s. The program was funded by the Department of Defense (DOD) because it was in need of a solution for software being developed that was defective, consistently late, and over budget. This program was aimed at understanding and managing the software engineering process because this is where big and small organizations or individuals encounter the most serious difficulties and where, thereafter, lies the best opportunity for significant improvement. [5]
In 1987 Humphrey published an SEI Technical Report (CMU/SEI-87-TR-11) that defined five levels of process maturity: (1) Initial, (2) Repeatable, (3) Defined, (4) Managed, and (5) Optimized. In 1989 he described how to use the five levels for managing and improving software development processes in a book titled "Managing the Software Process" [6] When SEI released the Capability Maturity Model (CMM) in 1991, it was based on the principles in his book. Subsequently, DOD required organizations that developed software for it to have at least a level 3 process maturity level. Humphrey also published books on the concepts of the personal software process (PSP) and the team software process (TSP). [1] The five levels of process maturity were later adopted for use in two standards: ISO/IEC 15504 (later superseded by ISO/IEC TS 33061) and the Business Process Maturity Model (BPMM) published by Object Management Group (OMG). Both standards applied the five levels to processes in general, not just to software development processes.
Humphrey received an honorary doctor of software engineering from the Embry-Riddle Aeronautical University in 1998. The Watts Humphrey Software Quality Institute in Chennai, India was named after him in 2000. [7] In 2003, Humphrey was awarded the National Medal of Technology. [8] Humphrey became a fellow of the SEI and of the Association for Computing Machinery in 2008. [9]
Humphrey is the author of several books, including
Ada is a structured, statically typed, imperative, and object-oriented high-level programming language, inspired by Pascal and other languages. It has built-in language support for design by contract (DbC), extremely strong typing, explicit concurrency, tasks, synchronous message passing, protected objects, and non-determinism. Ada improves code safety and maintainability by using the compiler to find errors in favor of runtime errors. Ada is an international technical standard, jointly defined by the International Organization for Standardization (ISO), and the International Electrotechnical Commission (IEC). As of May 2023, the standard, called Ada 2022 informally, is ISO/IEC 8652:2023.
The Capability Maturity Model (CMM) is a development model created in 1986 after a study of data collected from organizations that contracted with the U.S. Department of Defense, who funded the research. The term "maturity" relates to the degree of formality and optimization of processes, from ad hoc practices, to formally defined steps, to managed result metrics, to active optimization of the processes.
Software engineering is a field within computer science focused on designing, developing, testing, and maintening of software applications. It involves applying engineering principles and computer programming expertise to develop software systems that meet user needs.
Software Engineering Institute (SEI) is a federally funded research and development center in Pittsburgh, Pennsylvania, United States. Founded in 1984, the institute is now sponsored by the United States Department of Defense and the Office of the Under Secretary of Defense for Research and Engineering, and administrated by Carnegie Mellon University. The activities of the institute cover cybersecurity, software assurance, software engineering and acquisition, and component capabilities critical to the United States Department of Defense.
Software architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.
Software configuration management (SCM), a.k.a. software change and configuration management (SCCM), is the software engineering practice of tracking and controlling changes to a software system; part of the larger cross-disciplinary field of configuration management (CM). SCM includes version control and the establishment of baselines.
The following outline is provided as an overview of and topical guide to software engineering:
Philippe Kruchten is a Canadian software engineer, and Professor of Software Engineering at University of British Columbia in Vancouver, Canada, known as Director of Process Development (RUP) at Rational Software, and developer of the 4+1 Architectural View Model.
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.
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.
In the context of software engineering, software quality refers to two related but distinct notions:
The cleanroom software engineering process is a software development process intended to produce software with a certifiable level of reliability. The central principles are software development based on formal methods, incremental implementation under statistical quality control, and statistically sound testing.
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.
Robert C. Seacord is an American computer security specialist and writer. He is the author of books on computer security, legacy system modernization, and component-based software engineering.
The Standard CMMI Appraisal Method for Process Improvement (SCAMPI) is the official Software Engineering Institute (SEI) method to provide benchmark-quality ratings relative to Capability Maturity Model Integration (CMMI) models. SCAMPI appraisals are used to identify strengths and weaknesses of current processes, reveal development/acquisition risks, and determine capability and maturity level ratings. They are mostly used either as part of a process improvement program or for rating prospective suppliers. The method defines the appraisal process as consisting of preparation; on-site activities; preliminary observations, findings, and ratings; final reporting; and follow-on activities.
The Quality Management Maturity Grid (QMMG) is an organizational maturity matrix conceived by Philip B. Crosby first published in his book Quality is Free in 1979. The QMMG is used by a business or organization as a benchmark of how mature their processes are, and how well they are embedded in their culture, with respect to service or product quality management.
In combination with the personal software process (PSP), the team software process (TSP) provides a defined operational process framework that is designed to help teams of managers and engineers organize projects and produce software for products that range in size from small projects of several thousand lines of code (KLOC) to very large projects greater than half a million lines of code. The TSP is intended to improve the levels of quality and productivity of a team's software development project, in order to help them better meet the cost and schedule commitments of developing a software system.
Proxy-Based Estimating (PROBE) is an estimating process used in the Personal Software Process (PSP) to estimate size and effort.
LDRA, previously known as the Liverpool Data Research Associates, is a privately held company producing software analysis, testing, and requirements traceability tools for the public and private sectors. It is involved static and dynamic software analysis.
Bill Curtis is a software engineer best known for leading the development of the Capability Maturity Model and the People CMM in the Software Engineering Institute at Carnegie Mellon University, and for championing the spread of software process improvement and software measurement globally. In 2007 he was elected a Fellow of the Institute of Electrical and Electronics Engineers (IEEE) for his contributions to software process improvement and measurement. He was named to the 2022 class of ACM Fellows, "for contributions to software process, software measurement, and human factors in software engineering".
Watts S. Humphrey, Software Engineering Institute, Carnegie Mellon University; Citation: For contributions to software engineering process discipline.