GQM++ A Full Life Cycle Framework for the Development and
- 格式:pdf
- 大小:226.08 KB
- 文档页数:13
全生命周期流程英文English:The concept of a "full lifecycle process" refers to the entirety of stages and activities involved in the development, maintenance, and eventual decommissioning of a product or system. It encompasses inception, where the initial idea is conceived, through to design, development, testing, deployment, operation, and ultimately retirement or replacement. Each phase is interconnected, with outputs from one phase often becoming inputs for the next. Inception involves defining the project scope, objectives, and requirements gathering. Design entails creating detailed specifications and architectural plans. Development is the actual implementation of the design, while testing verifies that the product meets its requirements and functions as intended. Deployment involves releasing the product into its intended environment, while operation ensures its ongoing functionality and performance. Finally, retirement or replacement involves either decommissioning the product if it's no longer needed or upgrading it to a new version. Throughout this entire process, careful management of resources,schedules, and risks is crucial to ensure the success of the project and the satisfaction of stakeholders.Translated content:"全生命周期流程"的概念指的是产品或系统开发、维护和最终退役的各个阶段和活动的整体。
使用G Q M实现治理目标Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#使用G Q M实现治理目标Roger Dunn, CEO, SourceIQ, Inc.Roger N. Dunn 是 SourceIQ 公司(一个致力于交付来自于 IBM Rational 基础架构的管理标准的高级 IBM 商业伙伴)的创立者和 CEO。
他拥有二十五年的领导团队进行 ISV 和 IT 软件开发项目的经验。
简介:阅读目标问题矩阵方法(Goal-Question-Metric Approach,GQM) 如何提供一种方法,这种方法对于整个团队,或者个体的团队成员来说,使他们更好的理解他们在成功的软件开发中所扮演的角色。
本文来自于 The Rational Edge。
标记本文!发布日期: 2008 年 4 月 15 日级别:初级其他语言版本:英文访问情况 186 次浏览建议:中国有句古老的谚语,“千里之行始于足下”。
1 当在软件项目规划中起航时,我不想在第一步就遇到绊脚石。
我想要项目规划能够在控制之中并取得成功,以避免另外一个着名的格言:“如果你不知道你要去哪里,那么你可能会走向任何一条路。
” 2问题矩阵方法(Goal-Question-Metric Approach,GQM) 3 是一个强大的工具,它能够使您有信心和指导方向的迈出第一步。
GQM 帮助我们为管理模型建立框架,这是通过将最初的关注点放在我们想要实现的目标矩阵上实现的。
在本文中,我将从两个方面展示 GQM。
第一个方面是,GQM 应用于什么?我将讨论应用 GQM 的四个阶段:(1)建立目标;(2)定义问题;(3)识别矩阵;(4)设置行动模型第二个方面是,我们能够从已经应用了 GQM 的角色中学习到什么?我将解释阵势世界的 GQM 场景,针对于 IT 执行管理层、项目经理、架构师、开发经理和软件质量经理。
总649期第八期2018年8月河南科技Henan Science and Technology油气长输管道全寿命周期完整性管理荆晓(河南省中原石油天然气集团有限公司,河南郑州450002)摘要:油气长输管道的发展使得其安全可靠性问题日益突出,对油气长输管道进行全寿命周期完整性管理,对管道的安全运行具有十分重要的意义。
本文首先分析了国内外油气长输管道完整性管理的进展和现状,然后探讨完整性管理概念的起源和历史沿革,最后提出油气长输管道全寿命周期完整性管理技术方法,以保障油气长输管道安全、高效运行。
关键词:油气管道;完整性管理;全寿命周期中图分类号:TE973.3文献标识码:A文章编号:1003-5168(2018)23-0130-03 Life Cycle Integrity Management of Long Distance Oil and Gas PipelinesJING Xiao(Central China Petroleum&Natural Gas Group co.,Ltd.,Henan Province Henan Zhengzhou450002)Abstract:The development of long-distance oil and gas pipelines has made the problem of safety and reliability in⁃creasingly prominent.It is of great significance to manage the life cycle integrity of long-distance oil and gas pipe⁃lines for the safe operation of pipelines.This paper first analyzed the progress and status quo of integrity management of long-distance oil and gas pipelines at home and abroad,then discussed the origin and historical evolution of the concept of integrity management,and finally put forward the life cycle integrity management technology for long-dis⁃tance oil and gas pipelines to ensure the safe and efficient operation of long-distance oil and gas pipelines. Keywords:oil and gas pipeline;integrity management;life cycle1研究背景石油天然气作为国民经济的“血液”,是我国一次能源使用量仅次于煤炭的重要物质,在国民经济建设和人们日常生活中发挥着越来越重要的作用。
製造業產品碳足跡生命週期盤查表(含使用說明)copyright 2013 MOEAIDB & ITRI一. 表單設立目標1. 建立符合ISO國際標準精神及執行程序的產品碳足跡生命週期盤查表。
2. 建立統一執行的盤查表標準,以供業界參考執行,避免多種表格降低執行效率。
3. 統一收集執行意見及建議,持續改進盤查表。
二.填表目的1.節能減碳已成為國際環保趨勢2.歐盟EuP指令[1]於附錄四(Annex IV)中對「符合性技術文件」應準備的一項重要內容,即當實施方法(Implementing measures)要求時,應提供Ecological profile(生態特性說明)。
此時,該產品零/組件之供應商須提供該零/組件之材料組成、製造過程之能資源耗用及污染物產出等資訊,以利產品製造商完成產品之Eco-profile,因此茲以本表單協助進行產品生命週期盤查工作。
3. 此表的相關應用有:a.進行生命週期評估,鑑別重大環境考量面b.產品環境資訊揭露,如產品的環境宣告(EPD)、生態特性說明書(Eco-profile)、碳足跡(Carbon footprint)資訊揭露等。
三. 技術根據應用ISO14040:2006[2] & ISO14044:2006[3]&ISO14064-1[4]之原則與指引,建立本「產品生命週期盤查表」,以符合生命週期評估的精神,也呼應EuP指令中對產品設計應具備生命週期思維的精神。
四、填寫原則1. 本表單共分為基本資料、生產流程_投入產出表、溫室氣體調查、運輸、能資源使用、主要原料、輔助原料、包裝、廢氣、廢水、廢棄物、化糞池等共11頁表單,敬請依表單順序由左至右,由上至下填寫2. 部份表格中提及之數據品質說明,其意指數據資料品質屬性,項下共分為4種:a. 量測值:實際量測數值,如電表、水表、領用紀錄、採購單據等紀錄之實際使用數值或有依據之分配值b. 工程師推估值:以某合理方法進行推估之數值(如有紀錄之數據經數據有關人士推估(計算、分配)後之數值,然此推估無明確依據)。
生命周期管理——筑就可持续商业之道Life cycle management- the road to business sustainability龚万彬环翼环境科技写在中国国际绿色产品论坛前面的话。
关于可持续发展的话题已经屡见不鲜了,在资源与生态日益遭受不可逆转的破坏的今天,人们的环保及可持续人文关怀意识已经提高到对现存商业发展模式产生怀疑甚至抵触的程度,对于企业生产所造成的污染的斥责之声自上个世纪以来不绝于耳,随着20世纪60年代美国作家Rachel Carson发表的《寂静的春天》的出版,社会公众的环保意识日益觉醒,商业社会面临着自工业革命以来源自资本市场以外的一场前所未有的考验,这场考验从污染排放的日趋严格的技术控制起始,如美国70年代后期颁布的资源节约与恢复法案(RCRA),中国80年代末期制定的《中华人民共和国环境保护法》等等。
国际社会也在1987年的布鲁特兰委员会报告《我们共同的未来》(Our Common Future)中赋予可持续发展以‘兼顾当代需求的同时又不损害后代的生存权利的发展模式’的定义。
衡量商业模式的健康与否不再只是单纯的盈利能力指标的高低,而是一个企业在经济,社会和环境(PROFIT,PEOPLE,PLANET, 3P)三个方面效益的综合指标表现。
如何在可持续发展呼声日益强烈的当下通过实施生命周期管理(LCM)筑就企业的可持续发展之路,这将是本文浓墨重笔所在。
在正式切入生命周期管理这一定义之前,我们有必要对其来龙去脉做一个简要的了解。
如前所述,上个世界60年代到80年代晚期,环境及健康安全等问题逐渐成为影响商业社会的关注因素,伴随诸如62年《寂静的春天》的出版,71年绿色和平组织的成立,74年海洋生命安全公约(SOLAS)的签署,商业社会开始主动或被动的寻求应对的策略,于是从80年代到90年代早期,陆续成立了一些组织机构和倡议,比如80年美国应对环境污染修复的超级基金(Superfund)的建立,86年化学品行业责任关怀(Responsible care)组织及倡议的成立,87年《我们共同的未来》宣言,同年的蒙特利尔协议,89年成立的自然进程组织(Nature Step),同年成立的环境责任经济联盟(CERES)等等。
全生命周期流程英文Title: The Lifecycle Process: Understanding Every Stage Introduction:The lifecycle process is a crucial concept in various domains, encompassing diverse fields such as software development, project management, product design, and biological sciences. This comprehensive process involves multiple stages from inception to conclusion, each with its distinct characteristics and objectives. In this exploration, we delve into the intricacies of the lifecycle process, examining its significance, key stages, methodologies, and real-world applications.Stage 1: InceptionInception marks the initial phase of the lifecycle process, where the idea or concept is conceived. This stage involves brainstorming, research, and ideation to identifyopportunities, challenges, and potential solutions. Stakeholder involvement is crucial during this phase to ensure alignment with organizational goals and objectives. Key activities include market analysis, feasibility studies, and concept validation to assess the viability of the idea.Stage 2: PlanningPlanning is a fundamental stage where detailed strategies and roadmaps are developed to guide the project or product throughout its lifecycle. This phase involves defining goals, scope, timelines, resources, and budgets. Project managers or product owners work closely with stakeholders to establish clear objectives, define deliverables, and allocate resources efficiently. Risk assessment and mitigation strategies are also addressed during the planning phase to minimize uncertainties and maximize project success.Stage 3: DevelopmentDevelopment is the stage where the project or product is created, designed, and implemented according to the defined specifications and requirements. This phase typically involves collaboration among multidisciplinary teams, including designers, developers, engineers, and quality assurance professionals. Agile methodologies such as Scrum or Kanban are commonly employed to facilitate iterative development and adaptive planning, enabling rapid iterations and continuous improvement.Stage 4: TestingTesting is a critical phase where the functionality, performance, and quality of the project or product are evaluated rigorously. Various testing methodologies,including unit testing, integration testing, system testing, and user acceptance testing, are conducted to identify defects, bugs, and inconsistencies. Test automation tools and frameworks are often utilized to streamline the testingprocess and enhance efficiency. Feedback from testing informs refinements and adjustments to ensure the final deliverable meets stakeholder expectations.Stage 5: DeploymentDeployment involves the release and implementation of the project or product into the production environment. This stage requires careful planning, coordination, and execution to minimize disruption and ensure a smooth transition. Deployment strategies may vary depending on the nature of the project, ranging from phased rollout to continuous delivery. Post-deployment monitoring and support are essential to address any issues or concerns promptly and ensure optimal performance and user satisfaction.Stage 6: Operation and MaintenanceOperation and maintenance represent the ongoing phase of the lifecycle process, where the project or product is actively utilized, monitored, and supported. This stageinvolves routine maintenance, updates, and enhancements to address evolving requirements, technology advancements, and user feedback. Continuous monitoring and performance optimization are essential to sustain operational efficiency and effectiveness over time. Additionally, customer support and troubleshooting services are provided to address user inquiries, issues, and concerns promptly.Stage 7: DecommissioningDecommissioning marks the final stage of the lifecycle process, where the project or product reaches the end of its useful life or becomes obsolete. This phase involves the orderly shutdown, disposal, or transition of assets, resources, and data. Proper decommissioning procedures are essential to mitigate risks, ensure compliance with regulatory requirements, and minimize environmental impact. Knowledge transfer and documentation are also conducted to capture lessons learned and facilitate future endeavors.Conclusion:The lifecycle process is a dynamic framework that guides the development, management, and evolution of projects and products across various domains. Understanding the key stages, methodologies, and best practices is essential for stakeholders to navigate challenges, mitigate risks, and maximize outcomes throughout the lifecycle. By embracing a holistic approach and leveraging appropriate tools and techniques, organizations can enhance efficiency, innovation, and competitiveness in today's rapidly evolving landscape.。
1、Chapter 11.1 What is Software Engineering? Software engineering is the application of engineering principles and techniques to the development, operation, and maintenance of software systems. It is a discipline that involves the application of scientific and mathematical principles to the design, development, and maintenance of software products. Software engineering focuses on the development of efficient, reliable, and maintainable software systems thatmeet the needs of their users.1.2 What is the Software Life Cycle? The software life cycle is the set of stages that a software product goes through from its conception to its retirement. It typically consists of the following stages: Requirements Analysis, Design, Implementation, Testing, Deployment, Maintenance, and Retirement. Requirements Analysis involves gathering information from stakeholders and users to determine the needs of the software. Design involves creating a plan for the software thatmeets the requirements identified during Requirements Analysis. Implementation involves coding the software according to the plan created during Design. Testing involves verifying that the software works as expected. Deployment involves making the software available to its users. Maintenance involves making changes to the software to fix any bugs or to add new features. Retirement involves removing the software from use and archiving any important data or documents associated with it.1.3 What is the Difference Between Software Engineering and Computer Science?Software engineering and computer science are related disciplines, but they are not the same. Software engineering focuses on the development of software products, while computer science focuses on the study of computers and computing. Software engineering involves the design, development, and maintenance of software systems, while computer science involves the study of algorithms, data structures, and programming languages. Softwareengineering focuses on the practical application of engineering principles and techniques to the development of software products, while computer science focuses on the theoretical aspects of computing.2、Chapter 22.1 What is the System Development Life Cycle?The system development life cycle (SDLC) is a process used by software engineers to develop software products. The SDLC consists of six stages: planning, analysis, design, implementation, testing, andmaintenance. During the planning stage, the software engineer collects information from stakeholders and users to determine the scope and requirements of the software product. During the analysis stage, the software engineer analyzes the gathered information to determine the user’s needs and the software’s requirements. During the design stage, the software engineer creates a plan for the software product. During the implementation stage, the software engineer codes the software according to the plan created during the design stage. During thetesting stage, the software engineer verifies that the software works as expected. During the maintenance stage, the software engineer makes changes to the software to fix any bugs or to add new features.2.2 What is the Waterfall Model?The waterfall model is a software development process that follows a linear approach. It is a sequential process where each stage must be completed before the next stage can begin. The stages of the waterfall model are: requirements analysis, design,implementation, testing, deployment, and maintenance. During the requirements analysis stage, the software engineer collects information from stakeholders and users to determine the scope and requirements of the software product. During the design stage, the software engineer creates a plan for the software product. During the implementation stage, the software engineer codes the software according to the plan created during the design stage. During the testing stage, the software engineer verifies that the software works as expected. During thedeployment stage, the software engineer makes the software available to its users. During the maintenance stage, the software engineer makes changes to the software to fix any bugs or to add new features.2.3 What is the Spiral Model?The spiral model is a software development process that follows a cyclical approach. It is an iterative process where each stage is repeated multiple times until the desired result is achieved. The stages of the spiral model are: requirements analysis, design,implementation, testing, deployment, and maintenance. During the requirements analysis stage, the software engineer collects information from stakeholders and users to determine the scope and requirements of the software product. During the design stage, the software engineer creates a plan for the software product. During the implementation stage, the software engineer codes the software according to the plan created during the design stage. During the testing stage, the software engineer verifies that the software works as expected. During the软件工程第四版齐治昌课后答案deployment stage, the software engineer makes the software available to its users. During the maintenance stage, the software engineer makes changes to the software to fix any bugs or to add new features. The spiral model allows the software engineer to quickly make changes and adjustments to the software product as needed.。
IEEE/EIA GuideIndustry Implementation ofInternational Standard ISO/IEC 12207 : 1995 (ISO/IEC 12207) Standard for Information Technology—Software life cycle processes—Life cycle dataApril 1998THE INSTITUTE OF ELECTRICALELECTRONIC INDUSTRIES ASSOCIATIONENGINEERING DEPARTMENT AND ELECTRONICS ENGINEERS,INC.IEEE/EIA GuideIndustry Implementation ofInternational Standard ISO/IEC 12207: 1995(ISO/IEC 12207) Standard for Information Technology—Software life cycle processes—Life cycle dataApril 1998Abstract:ISO/IEC 12207 provides a common framework for developing and managing software. IEEE/EIA 12207.0 consists of the clarifications, additions, and changes accepted by the Institute of Electrical and Electronics Engineers (IEEE) and the Electronic Industries Association (EIA) as formulated by a joint project of the two organizations. IEEE/EIA 12207.1 provides guidance for recording life cycle data resulting from the life cycle processes of IEEE/EIA 12207.0.Keywords: acquisition process, audit, configuration management, development process, maintenance process, operation process, quality assurance, supply process, tailoring process, validation, verificationThe Institute of Electrical and Electronics Engineers, Inc.345 East 47th Street, New York, NY 10017-2394, USAISBN 1-55937-990-1Copyright © 1998 by the Institute of Electrical and Electronics Engineers, Inc.All rights reserved. Published 1998. Printed in the United States of America.No part of this publication may be reproduced in any form, in an electronic retrieval system or otherwise, without the prior written permission of the publisher.April 1998SH94596IEEE/EIA 12207.1-1997© IEEE NOTICEIEEE and EIA Standards and Publications are designed to serve the public interest through eliminating misunderstandings between manufacturers and purchasers, facilitating interchangeability and improvement of products, and assisting the purchaser in selecting and obtaining with minimum delay the proper product for his particular need. Use of such Standards and Publications is wholly voluntary. Existence of such standards and Publications shall not in any respect preclude any member or nonmember of IEEE and EIA from manufacturing or selling products not conforming to such Standards and Publications, nor shall the existence of such Standards and Publications preclude their voluntary use by those other than IEEE and EIA members, whether the standard is to be used either domestically or internationally.Standards and publications are approved by IEEE and EIA in accordance with the American National Standards Institute (ANSI) patent policy. By such action, IEEE and EIA do not assume any liability to any patent owner, nor do they assume any obligation whatever to parties adopting the Standard or Publication.Note: Attention is called to the possibility that implementation of this standard may require use of subject matter covered by patent rights. By publication of this standard, no position is taken with respect to the existence or validity of any patent rights in connection therewith. IEEE and EIA shall not be responsible for identifying all patents for which a license may be required by an IEEE and EIA standard or for conducting inquiries into the legal validity or scope of those patents that are brought to their attention.Authorization to photocopy portions of any individual standard for internal or personal use is granted by the Institute of Electrical and Electronics Engineers, Inc., provided that the appropriate fee is paid to Copyright Clearance Center. To arrange for payment of licensing fee, please contact Copyright Clearance Center, Customer Service, 222 Rosewood Drive, Danvers, MA 01923 USA; (508) 750-8400. Permission to photocopy portions of any individual standard for educational classroom use can also be obtained through the Copyright Clearance Center.ii© IEEE IEEE/EIA 12207.1-1997 Contents Introduction (v)1.Scope (1)2.Normative references (1)3.Definitions (1)4.Life cycle data (2)4.1 Overview (2)4.2 Life cycle data objectives (2)4.3 Information item matrix (6)4.4 Compliance (11)5.Generic information item content guidelines (12)5.1 Description—generic content guidelines (12)5.2 Plan—generic content guidelines (12)5.3 Procedure—generic content guidelines (12)5.4 Record—generic content guidelines (13)5.5 Report—generic content guidelines (13)5.6 Request—generic content guidelines (13)5.7 Specification—generic content guidelines (13)6.Specific information item content guidelines (15)6.1 Acquisition plan (15)6.2 Change request or modification request (15)6.3 Concept of operations description (16)6.4 Database design description (16)6.5 Development process plan (16)6.6 Evaluation records (17)6.7 Executable object code record (17)6.8 Maintenance process plan (17)6.9 Operation process plan (18)6.10 Problem report and problem resolution report (18)6.11 Project management plan (18)6.12 Software architecture description (19)6.13 Software configuration index record (20)6.14 Software configuration management plan (20)6.15 Software configuration management records (20)6.16 Software design description (21)6.17 Software development standards description (21)6.18 Software integration plan (22)6.19 Software interface design description (22)6.20 Software quality assurance plan (22)6.21 Software quality assurance records (23)6.22 Software requirements description (23)6.23 Software verification results report (24)6.24 Source code record (24)iiiIEEE/EIA 12207.1-1997© IEEEiv 6.25 System architecture and requirements allocation description (25)6.26 System requirements specification (25)6.27 Test or validation plan (26)6.28 Test or validation procedures (26)6.29 Test or validation results report (27)6.30 User documentation description (27)Annexes A—References (28)© IEEEIEEE/EIA 12207.1-1997vIntroduction(This introduction is not a part of IEEE/EIA 12207.1-1997, Guide for ISO/IEC 12207, Standard for information technology—Software life cycle processes—Life cycle data .)This guide provides guidance on life cycle data resulting from the processes of IEEE/EIA 12207.0. It describes the relationship among the following: the content of the life cycle data information items, references to documentation of life cycle data in IEEE/EIA 12207.0, and sources of detailed software product information.This part of IEEE/EIA 12207 provides guidelines for recording life cycle data of IEEE/EIA 12207.0. Where text has been quoted from IEEE/EIA 12207.0, that text is enclosed in a box, for ease of identification.At the time this guide was completed, the Joint Industrial Standards Working Group had the following membership:Leonard L. Tripp , IEEE Co-chairPerry DeWeese , EIA Co-chairExecutive Committee MembersDennis Ahern Richard Evans Lewis Gray Robert HeglandDorothy Kuckuck David Maibor James MooreGeorge Newberry Adrienne Scott Raghu SinghNorma A. StopyraJoint Industrial Standards Working Group MembersChuck BakerBarbara Bankeroff Johnny Barrett Ron Berlack Barry Boehm John Bolland John Bowers Max Brown Don Calvert Quyen Cao Bruce Capehart Dennis Carter Myra M. Chern John P. Chihorek Jack Cooper Raymond Coyle Paul CrollChris Denham Robert Didrikson Jim Dobbins Merlin Dorfman Cheryl DorseyBernadette Downward Peter Eirich Bob ElstonDennis Faulkner Marv Gechman William Gess, Jr.Marilyn Ginsberg-Finner John Halase John Hamlin Rick Hefner James H. Heil Mark Henley Doug Hewett John Hoover Helmut Hummel Allan Jaworski Larry KlosRobert Knickerbocker Richard Kreke Jerome Lake Doug Lange Amy Laughlin Milton Lavin Jonathan Liles Joan Lovelace Marv Lubofsky Ed MartinZyggy Martynowkcz Richard McClellen Judy McCloskey Sandy McGill Fred Mintz Aretha Moore Jackie Morman Gary MotchanBart NigroGeorge Nowinski Al OlsenMyrna L. Olson Sherry Paquin Alex Polack Ken Ptack Ralph Randall Paul Reindollar Walter Richter Bill SchunkKeith Shewbridge Carl A. Singer Terry Snyder Reed Sorensen Don SovaJohn Stolzenthaler Richard F. Storch Duane Stratton Robert Tausworthe Booker T. Thomas Frederick Tilsworth Ann Turner Howard Verne Ronald L. Wade David Waxman Charles Wilson Grady WrightIEEE/EIA 12207.1-1997© IEEEviThe following persons were on the balloting committee:Mikhail Auguston Leo Beltracchi H. Ronald Berlack Juris Borzovs Alan L. Bridges Kathleen L. Briggs M. Scott Buck David W. Burnett Leslie Chambers Keith ChanAntonio M. Cicu François Coallier Rosemary Coleman Virgil Lee Cooper W. W. Geoff Cozens Bostjan K Derganc Audrey DorofeeCarl Einar Dragstedt Leo EganRichard L. Evans William EventoffJonathan H. Fairclough John W. Fendrich Julian Forster Kirby FortenberryMarilyn Ginsberg-Finner John Garth Glynn Julio Gonzalez-Sanz L. M. Gunther Jon D. Hagar John Harauz Robert T. Harley Herbert Hecht William Hefley Manfred Hein Mark HeinrichMark HenleyUmesh P. Hiriyannaiah John W. Horch Jerry Huller Peter L. Hung Fabrizio Imelio George Jackelen Frank V. Jorgensen Vladan V. Jovanovic William S. Junk George X. Kambic Judith S. Kerner Robert J. Kierzyk Dwayne L. Knirk Thomas M. Kurihara John B. LaneJ. Dennis Lawrence Randal Leavitt Michael Lines Dieter Look John Lord M. Lubofsky David Maibor John R. Matras Tomoo Matsubara Patrick McCray Sue McGrathJerome W. Mersky Alan MillerJames W. Moore Pavol Navrat Myrna L. Olson Mike OttewillGerald L. Ourada Lalit M. PatnaikMark PaulkJohn G. Phippen Alex Polack Peter T. PoonLawrence S. Przybylski Ann ReedyAnnette D. Reilly Dennis RillingPatricia Rodriguez Andrew P. Sage Helmut Sandmayr Hans Schaefer Robert W. Shillato Katsutoshi Shintani Carl A. Singer Raghu P. Singh Luca Spotorno Norma Stopyra Fred J. StraussChristine Brown Strysik John Swearingen Toru Takeshita Douglas H. Thiele Booker Thomas Patricia TrellueTheodore J. Urbanowicz Glenn D. Venables Charles J. Wertz Scott A. Whitmire P. A. Wolfgang Paul R. Work Weider D. Yu Janusz Zalewski Zhi Ying ZhouGeraldine Zimmerman Peter F. ZollWhen the IEEE Standards Board approved this standard on 9 December 1997, it had the following membership:Donald C. Loughry, ChairRichard J. Holleman, Vice ChairAndrew G. Salem, Secretary Clyde R. CampStephen L. Diamond Harold E. EpsteinDonald C. Fleckenstein Jay Forster*Thomas F. Garrity Donald N. Heirman Jim IsaakBen C. Johnson *Member EmeritusLowell Johnson Robert Kennelly E. G. “Al” KienerJoseph L. Koepfinger*Stephen R. Lambert Lawrence V. McCall L. Bruce McClung Marco W. MigliaroLouis-François Pau Gerald H. Peterson John W. Pope Jose R. Ramos Ronald H. Reimer Ingo Rüsch John S. Ryan Chee Kiow TanHoward L. WolfmanAlso included are the following nonvoting IEEE Standards Board liaisons:Satish K. Aggarwal Alan H. Cookson© IEEE IEEE/EIA 12207.1-19971Information technology—Software life cycle processes—Life cycle data1 ScopeThis guide provides guidance for recording life cycle data resulting from the life cycle processes of IEEE/EIA 12207.0.NOTE—For informative references, see annex A.2 Normative referencesThe following standards contain provisions that, through reference in this text, constitute provisions of this guide. At the time of publication, the editions indicated were valid. All standards are subject to revision, and parties to agreements based on this guide are encouraged to investigate the possibility of applying the most recent editions of the standards indicated below. Members of IEC and ISO maintain registers of currently valid International Standards. When the following standards are superseded by an approved revision, the revision shall apply. This guide shall be used in conjunction with the following publications:IEEE/EIA 12207.0-1996, Information technology—Software life cycle processes .1IEEE Std 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology (ANSI).ISO 8402: 1994, Quality management and quality assurance—Vocabulary .23 DefinitionsFor the purposes of this guide, the definitions given in IEEE/EIA 12207.0, ISO 8402, and IEEE Std 610.12apply, in the order cited in this clause.1This joint standard is available from the Institute of Electrical and Electronics Engineers, 445 Hoes Lane, P.O. Box 1331,Piscataway, NJ 08855-1331, USA and from the Electronic Industries Association, 2500 Wilson Blvd., Arlington, VA 22201-3834, USA.2ISO publications are available from the ISO Central Secretariat, Case Postale 56, 1 rue de Varembé, CH-1211, Genève 20, Switzerland/Suisse. ISO publications are also available in the United States from the Sales Department, American National Standards Institute, 11 West 42nd Street, 13th Floor, New York, NY 10036, USA.IEEE/EIA 12207.1-1997© IEEE24 Life cycle data 4.1 OverviewMany of the clauses in IEEE/EIA 12207.0 require life cycle data to be produced. This guide assumes an organization has implemented an IEEE/EIA 12207.0 compliant process(es). Based on the organization’s compliance to IEEE/EIA 12207.0, life cycle data will be generated. Further guidance on life cycle data may be found in guidance to 5.1.2.2 of IEEE/EIA 12207.2. The life cycle data information results from the execution of the activities and tasks of the standard. The clauses of IEEE/EIA 12207.0 do not, however, dictate the content,location, format, or media to be used to record the data. IEEE/EIA 12207.1 provides guidance on what data might be recorded. When choosing appropriate data to be recorded, readers should also determine where within the organization’s or project’s records the data should be recorded. This guide lists other standards and guides readers might consult for helpful suggestions on choosing appropriate data records, data formatting, and data packaging.This guide defines the life cycle data of IEEE/EIA 12207.0 by relating the tasks and activities defined in IEEE/EIA 12207.0 with the following kinds of documentation: description, plan, procedure, record, report,request, and specification. Table 1 lists the life cycle data information items of IEEE/EIA 12207.0. Clause 5provides generic content guidelines for the seven kinds of documentation listed above. Clause 6 provides specific content guidelines for the life cycle data information items that typically occur during acquisition or regulatory oversight of a software product. References that may be used to obtain details for a presentation view of data are listed in table 1.The information item content descriptions in clause 6 consist of the information item name followed by four keywords and commentary:6.x Name of information item.6.x.1Purpose: A brief description of the information item.6.x.2IEEE/EIA 12207.0 reference: A listing of the task(s) in IEEE/EIA 12207.0 that define and use the information item.6.x.3Content: An itemized listing of the minimum content elements that should be considered in constituting the information item.6.x.4Characteristics: A declaration of life cycle data characteristics that should be considered in the preparation and use of the information item.For information on documentation planning, see ISO/IEC 6592 and ISO/IEC TR 9294.34.2 Life cycle data objectivesAnnex H of IEEE/EIA 12207.0 describes the basic principles to be considered in preparing data during the execution of the software life cycle processes of IEEE/EIA 12207.0.3See annex A.© IEEE IEEE/EIA 12207.1-19974.2.1 Purpose of software life cycle dataH.1 Purpose of software life cycle dataThe life cycle data should support the following actions:a)Describe and record information about a software product during its life cycle;b)Assist usability and maintainability of a software product;c)Define and control life cycle processes;d)Communicate information about the system, software product or service, and project to those who needit;e)Provide a history of what happened during development and maintenance to support management andprocess improvement;f)Provide evidence that the processes were followed.GUIDANCE:Additionally, the life cycle data should support the following actions:g)Assist the software logistics planning (i.e., replication, distribution, installation, training) for a softwareproduct;h)Provide data change history.4.2.2 Operations on software life cycle dataH.2 Operations on software life cycle dataThe life cycle data should be supported by the following operations:a)Create;b)Read;c)Update;d)Delete.GUIDANCE:Additionally, life cycle data should be supported by the following operations:e)Archive;f)Distribute;g)Transition (transfer of data and ownership/usage rights).34.2.3 Characteristics of software life cycle dataH.3 Characteristics of software life cycle dataThe life cycle data should adhere to the following characteristics:a)Unambiguous: Information is unambiguous if it is described in terms that only allow a singleinterpretation, aided, if necessary, by a definition.b)Complete: Information is complete if it includes necessary, relevant requirements and/or descriptivematerial, responses are defined for the range of valid input data, and terms and units of measure are defined.c)Verifiable: Information is verifiable if it can be checked for correctness by a person or tool.d)Consistent: Information is consistent if there are no conflicts within it.e)Modifiable: Information is modifiable if it is structured and has a style such that changes can be madecompletely, consistently, and correctly while retaining the structure.f)Traceable: Information is traceable if the origin of its components can be determined.g)Presentable: Information is presentable if it can be retrieved and viewed.GUIDANCE:1—Additionally, life cycle data should adhere to the following characteristics:h)Secure and private: Information is secure and private if there is controlled access to the information.i)Protected: Information is protected if there is persistence in data backup and protection from loss ordamage.j)Accurate: Information is accurate if it is correct and adequate.2—“Unambiguous” and “Presentable” imply having the characteristic of being understandable by intended users.3—“Consistent” should include consistency between related data and conformity of data.44.2.4 Basic types of software life cycle dataH.4 Basic types of software life cycle dataThe life cycle data should contain content in the following areas:a)Requirements data: Expected functionality, operational context, performance constraints andexpectations, basis for qualification testing, and key decision rationale.b)Design data: Architecture, algorithms, design constraints, mapping to requirements, and key decisionrationale.c)Test data: Test strategy and criteria, cases (what to test), procedures (how to carry out tests), testresults, and key decision rationale.d)Configuration data: Configuration description, build instructions, reference to source code, reference toobject code, data integrity approach, description of development environment, and key decision rationale.e)User data: Software overview, system access information, commands and responses, error messages,operational environment, and key decision rationale.f)Management data: Management plans, status reports, management indicators, criteria and key decisionrationale, and contract and other procurement information.g)Quality data: Quality plans and procedures, corrective action status, root cause analysis, product qualitycharacteristics and process measurement data, and criteria and key decision rationale.GUIDANCE:1—For H.4 c), Test Data should include “mapping to requirements.”2—For H.4 e), User Data should include “help systems, training material, and operational logs.”3—For H.4 f), Management Data should include “management and technical risks.”4.2.5 Presentation form of software life cycle dataH.5 Presentation form of software life cycle dataThe presentation form of life cycle data shoulda)Be appropriate to support the purpose of the life cycle data;b)Support the retrieval and review of data of a software item during its life cycle;c)Support the basic operations on data of a software item during its life cycle;d)Be selected subject to concurrence of the users of the data.NOTE—In preparing or finalizing the contract, the acquirer should specify the requirements for data delivery, taking into account the maintenance strategy. Some of the choices are1)Raw data—Repositories of the development tools such as CASE tools, databases, file systems, and othertool repositories.2)On-line publishing systems—Data assembled and formatted for presentation by systems such as: wordprocessors, World Wide Web publishing and display systems, SGML viewers.3)Hard copy print—Traditional paper document form.54.3 Information item matrixThe following information item matrix, table 1, identifies the information item (i.e., output or artifact) that IEEE/EIA 12207.0 requires or recommends to be produced as part of the life cycle process, activity, or task. Table 1 contains the name of the information item(s), the corresponding IEEE/EIA 12207.0 clause number citing documentation of life cycle data, the kind of documentation to be produced (as described in clause 5 of this guide), the IEEE/EIA 12207.1 clause containing specific content guidelines, and available standards/guides/technical reports published by IEEE, ISO/IEC JTC1/SC7, and other organizations. The references are provided to assist the users of the guide in formulating information items. Some of the references provide examples of information items; others address related topics.NOTES1—The standards/guides/technical reports listed in the References column of table 1 were developed by various standards groups at different times and according to different underlying principles of software development. Consequently, many of the references will not completely satisfy the generic or specific information item content guidelines in clauses 5 and 6. Care must be exercised when using the references to identify missing, conflicting, or unnecessary information not called for by this guide.2—Throughout IEEE/EIA 12207.0, there is reference to “the contract” and a “Request For Proposal” (RFP). Table 1 includes some information items that would typically be part of “the contract” and the “Request For Proposal” (e.g., Acceptance strategy and conditions), but the full contents of these items are beyond the scope of this guide. Some of the key information items that are not included in the table include Statement of Work, Contract Data Requirements List, Contract Line Items, and Contract Clauses.Table 1—Information item matrixInformation item(s)IEEE/EIA 12207.0ClauseKind ofdocumentationIEEE/EIA12207.1ClauseReferences(See annex A.)Acceptance strategy andconditions record5.1.1.9Record (5.4)—IEEE 1062Acquisition plan 5.1.1.8Plan 6.1ASTM E731, E1206,IEEE 1062 Acquisition requirementsrecord5.1.2.1Record (5.4)—IEEE 1062, 1220 Audit agenda record6.7.1.4Record (5.4)——Audit procedure 6.7.1.4Procedure (5.3)——Change request 5.4.4, 5.5.1, 6.2.3Request 6.2—Concept of operations description 5.1.1.1Description 6.3IEEE 1362,EIA/IEEE J-STD-016 F.2.1.Also see ISO 5806, 5807,8631, 8790, and 11411 forguidance on use of notations.Concept/needdetermination record5.1.1.1Record (5.4)—IEEE 1062, 1220Database design description 5.3.5.3, 5.3.6.3,5.3.7.1Description 6.4IEEE 1016,EIA/IEEE J-STD-016 G.2.3Detailed designevaluation record5.3.6.7Record 6.6—Development process plan 5.3.1.4Plan 6.5ASTM E622, E1340,EIA/IEEE J-STD-016 E.2.1,IEEE 1074, 1074.16Information item(s)IEEE/EIA 12207.0ClauseKind ofdocumentationIEEE/EIA12207.1ClauseReferences(See annex A.)Documentationevaluation record5.3.9.3Record6.6—Documentation plan 6.1.1.1Plan (5.2)—ASTM E627, E919,IEEE 1063,ISO/IEC 6592, 9294 Executable object coderecord5.3.7Record6.7—Historical data record7.3.3.2Record (5.4)—IEEE 730.1Joint review agendarecord6.6.1.3Record (5.4)——Joint review procedure 6.6.1.3Procedure (5.3)——Joint review resultsdocumentation record6.6.1.5Record (5.4)—IEEE 1028Maintenance interactionprocedure5.4.1.3Procedure (5.3)——Maintenance plan 5.5.1.1Plan (5.2)—EIA/IEEE J-STD-016 E.2.4,IEEE 1219Maintenance procedure 5.5.1.1Procedure (5.3)——Maintenance process plan 5.5Plan 6.8IEEE 1219,EIA/IEEE J-STD-016 E.2.4Management processplan7.1.2.1Plan (5.2)—IEEE 1058.1Migration plan 5.5.5.2Plan (5.2)—IEEE 730.1,EIA/IEEE J-STD-016 E.2.4,E.2.3Migration plan report 5.5.5.3Report (5.5)—IEEE 730.1, 1062 Modification records 5.5.3.1Record (5.4)——Modification request 5.5.2.4Request 6.2—Operation process plan 5.4Plan 6.9EIA/IEEE J-STD-016 E.2.4,J.2.3, J.2.4 Organizationalprocesses record7.3.1.1Record (5.4)——Policy record—Line of responsibilitymust be clearlydocumented7.1.1Record (5.4)—ISO 9001, 9000-3Problem categories description 6.8.1.1Description(5.1)—IEEE 1044, 1044.1Problem report and problem resolution report 6.8Report 6.10IEEE 1044,IEEE/EIA 12207.2 annex JProblem resolutionprocedure5.4.1.2, 5.5.1.2Procedure (5.3)——Process assessmentprocedure7.3.2.1Procedure (5.3)——Project management plan 5.2.4.3, 5.2.4.4,5.2.4.5Plan 6.11IEEE 1012, 1058.1, 1059,1074, 1074.1, 1220, 1228,EIA/IEEE J-STD-016 E.2.1,ISO/IEC: 9126, 12119,SEI Continuous RiskManagement GuidebookQuality cost data record7.3.3.3Record (5.4)—ISO 90017Information item(s)IEEE/EIA 12207.0ClauseKind ofdocumentationIEEE/EIA12207.1ClauseReferences(See annex A.)Retirement plan 5.5.6.1Plan (5.2)—IEEE 730.1, 1219 Retirement plan report 5.5.6.2Report (5.5)—IEEE 730.1, 1219 Review of requirementsin RFP record5.2.1.1Record (5.4)—ISO 9001, 9000-3Software acquisitiondecision rationalerecord5.1.1.6Record (5.4)—IEEE 1062Software architecture description 5.3.5.1, 5.3.5.6Description 6.12IEEE 1016, 1016.1,EIA/IEEE J-STD-016 G.2.4.Also see ISO/IEC 5806,5807, 6593, 8631, 8790, and11411 for guidance on use ofnotationsSoftware architectureevaluation record5.3.5.6Record6.6—Software code and testresults evaluationrecord5.3.7.5Record6.6—Software configurationindex record6.2Record 6.13EIA/IEEE J-STD-016 I.2.2Software configurationmanagementinteraction procedure5.5.1.3Procedure (5.3)——Software configuration management plan 6.2.1.1Plan 6.14IEEE 828, 1042,ISO 10007Software configuration management records 6.2Record 6.15IEEE 828, 1042,ISO 10007Software design description 5.3.6.1, 5.3.6.7Description 6.16IEEE 1016, 1016.1,EIA/IEEE J-STD-016 G.2.4,MIL-STD-961D.Also see ISO/IEC 5806,5807, 6593, 8631, 8790, and11411 for guidance on use ofnotationsSoftware developmentstandards description5.3.1.4Description6.17—Software engineering methods/procedures/ tools description 5.3.1.3Description(5.1)——Software installationresults record5.3.12.2Record (5.4)—IEEE 730.1Software installation plan 5.3.12.1Plan (5.2)—IEEE 730.1,EIA/IEEE J-STD-016 E.2.3Software integrationaudit report5.3.9.4Report (5.5)—IEEE 730.1Software integrationevaluation record5.3.8.5Record6.6NoneSoftware integration plan 5.3.8.1, 5.3.8.5Plan 6.18IEEE 829,EIA/IEEE J-STD-016 E.2.2Software interface design description 5.3.5.2, 5.3.6.2Description 6.19IEEE 1016,EIA/IEEE J-STD-016 G.2.2Software life cycle model description 5.2.4.2, 5.3.1.1Description(5.1)—IEEE 10748。
全生命周期流程英文English:The concept of a full lifecycle process refers to the complete journey of a product or service from its initial conception, through development, production, distribution, consumption, and eventually disposal or recycling. This approach encompasses all stages of a product, including design, manufacturing, marketing, sales, use, and end-of-life management. By considering the entire lifecycle of a product, businesses can identify opportunities for improvement, cost reduction, sustainability measures, and risk mitigation. This comprehensive view allows organizations to make informed decisions that benefit not only their bottom line but also the environment and society as a whole. Embracing a full lifecycle process involves assessing the environmental and social impact of every stage, from raw material extraction to waste generation, to ensure a more sustainable and responsible approach to business operations. It also involves engaging stakeholders, including suppliers, customers, regulators, and communities, in the decision-making process to foster transparency, accountability, and collaboration.中文翻译:全生命周期流程的概念指的是产品或服务从最初构思到开发、生产、分配、消费,最终处理或回收的完整过程。
Canberra, Australia, ASMA (1997) 22-35GQM++ A Full Life Cycle Framework for the Development and Implementation ofSoftware Metric ProgramsAndrew Gray and Stephen G. MacDonellSoftware Metrics Research LaboratoryDepartment of Information ScienceUniversity of OtagoDunedin, New ZealandAbstractOne of the more challenging aspects concerning the development of a sound and maturing software process is the determination of an appropriate and relevant supporting measurement program. At one time process and product measurement was a fantasy, something that was undertaken by other organisations. With the advent of process improvement models, metric program development has now gained extensive support. Moreover, the use of frameworks such as the Goal/Question/Metric (GQM) approach has enabled managers to more effectively and confidently select candidate metrics or measures. It is our contention however, that GQM only takes us some way to the development of a feasible program, and that there are other considerations that should be made before embarking on organisation-wide collection schemes. These considerations include in particular an explicit acknowledgment of the costs and benefits of data collection, the specification of potential modelling and analysis methods, and the determination of how any results might be ‘fed back’ into the process. We therefore propose an extension to the GQM framework, which we have called GQM++, to enable the more formal consideration of such issues. Although as yet untested, it is our opinion that explicit specification of these other metric program characteristics will result in the development of more comprehensive, pragmatic and feasible data collection and analysis processes.IntroductionModern software development has become increasingly complex and difficult to manage as the size and functionality of systems have grown and as increasing numbers of competing and co-operative development tools and methodologies have become available. Such circumstances make the use of software metrics even more crucial than in the past. Software metric models can be used to predict, classify or analyze the effects of aspects of the software development process on other aspects. For example, development effort may be predicted based on a set of size and complexity measures, modules may be classified into those suitable for reuse and those that are not, and a particular methodology may be analyzed in terms of its effect on developer productivity as compared to another methodology. Metrics can be used at various stages of the software process – before development as part of project planning, during development to monitor and control, and after development is completed to assess the project’s ‘success’.One major difficulty associated with the adoption of a metrics program is in the determination of the particular metrics that should be collected. All data collection has associated costs, both direct (as in terms of people employed and software purchased) and indirect (as in the costs of interruptions and delays as metrics are analyzed). For this reason, a commercial metrics program should be treated as an investment in the development process, requiring justification for expenditure and providing some quantification of the resulting benefits. For researchers in the metrics field similar concerns arise – data collection still generally incurs costs and the metrics selected must be capable of producing the desired outcome. Organizations are faced with a wide range of software metrics in both the research literature and as promoted by metrics consultants. This can lead to difficulties in the selection of the appropriate metrics to collect for a particular organization with particular goals in mind. Given the uniqueness of each organization, the application of some generic set of metrics is unlikely to be as effective as a more tailored approach. Similarly within a research context, a custom set of metrics, possibly including metrics that have not been used before, will generally provide more meaningful results and at the very least should advance the discipline into new areas.When developing a set of software metrics, whether the purpose is for the actual management of a commercial software development project or as part of a research program, it is important to ensure that the optimal set of metrics is chosen. By optimal it is not just meant that the metrics should be those that would provide the greatest predictive power for the desired purpose. It is also important that the cost of data collection is minimized (or balanced with the benefits to be gained from the accuracy of the model). The possibility for reusing metrics collected for other purposes should also be considered as part of the collection cost. The data collected should of course be useful from the perspective of enabling appropriate models to be developed. Even more important however, is that the metrics should provide information that will enable progress towards some improvement-oriented goal or goals. As can be seen, there are several separate dimensions to the suitability (or optimality) of a given set of metrics for a particular organization or research program.In order to develop a set of metrics that is optimal in this sense it seems useful to work within a framework that will assist with the decomposition of goals into the metrics that should be collected, that will identify the costs and benefits of the program, and ensure that the entire process is indeed feasible. This paper outlines the currently most popular such approach to selecting suites of metrics with some goal in mind, the Goal/Question/Metric (GQM) framework, and attempts to resolve some of its weaknesses through additional stages. Since the GQM framework is already widely used, it is hoped that these incremental changes will be comparatively simple for many organizations and researchers to use where appropriate.The Goal/Question/Metric FrameworkOne method for selecting a suite of metrics to be captured with a goal (or set of goals) in mind is the Goal/Question/Metric (GQM) framework. GQM was proposed by Basili and others (Basili and Weiss 1984; Basili and Rombach 1988) with the aim of providing a systematic approach to the determination of project goals that can be refined into questions that can in turn be answered in a quantifiable manner by certain software metrics (Figure 1, with an example in Figure 2). A goal is usually defined in terms of a particular purpose (e.g. to evaluate, predict, classify) from a certain perspective (e.g. the manager, customer, developer) for a given object (e.g. specification correctness, code modularity), within a particular environment (e.g. the people, tools, methodologies).Figure 1 The GQM FrameworkFigure 2 An Example of a GQM FrameworkThus, the effective application of GQM helps to ensure that the metrics collected will indeed be useful for the purposes of achieving certain goals. It also assists with the conceptual understanding of those goals and metrics by providing a hierarchical framework within which the goal(s) can be broken down into questions, that then in turn determine the actual metrics.GQM has been extended from this basic model by several authors. Extensions include those shown in MacDonell (1993) where the basic framework is extended into a hierarchy of goals, subgoals, domains, subdomains, questions, subquestions, characteristic measures, and finally measures at two separate levels appropriate to his domain of CASE and 4GL effort prediction (Figure 3, with an example adapted from MacDonell in Figure 4). While these extensions of GQM apparently reduce some of the simplicity and ease of use inherent in the original technique, it is felt that as long as these extensions are seen as optional, and therefore only used when necessary, they actually reduce the complexity of the hierarchy by enabling a more consistent and systematic breakdown of the components. For example, by breaking a goal into separate sub-goals the essential differences between metrics needed for each sub-goal can be identified, while still identifying the common measures used for both (Figure 5). This may be important if only one sub-goal is ultimately pursued, and assists with matching the costs and benefits of parts of a metrics program.Figure 3 The Extended GQM FrameworkFigure 4 An Example of the Extended GQM Framework (Based on MacDonell, 1993)Figure 5 Common Versus Single-Use Measures in a GQM FrameworkHowever, such extensions do not seem to go far enough. One criticism of GQM is that while it is useful for identifying objectives for measurement, it does not address the actual problems of measurement (Fenton and Pfleeger 1997). While Fenton’s focus is more on the technical aspects of measurement, such as appropriate data scales, the criticism can be extended to the absence of any feasibility, economic, or correctness checks in GQM. It is not merely that GQM does not enforce these checks, but in its simple and intuitive nature, it can actually lead to these problems, as Fenton points out with respect to problems of measurement.Other Issues in Developing a Suite of Software MetricsWhile GQM provides an efficient means of selecting software metrics based on organizational goal(s), many other factors need to also be considered. These include the cost of data collection, the expected benefits of the metrics program, the type of modeling to be used, and the manner in which the program will affect the software development process (see also Card (1993) and Roche et al. (1996)).Cost of Data CollectionIn order to assess the actual worth of a metrics program it is first necessary to determine and associate the costs involved with each measurement recorded. While allocating costs at the individual measurement level may seem unnecessary, it allows for a more accurate matching of measurement costs to each particular goal or sub-goal. In the case of measurements where costs are not separable, some equitable division (usually shared evenly) can be used.Costs should be estimated initially as with any investment, and compared with the expected revenues (as discussed in the following section). The actual costs should be monitored as they are incurred, allowing for corrective action if the estimates appear to be incorrect. Expected Benefits of the Metrics ProgramThe benefits of a metrics program are much more difficult to quantify than the costs. Despite this, some form of estimation is important, and while the values may be g uesstimates this should not be problematic, providing this fact is acknowledged. Since software metrics are similar to security and insurance in the sense that they are often regarded as only possibly necessary, until their absence incurs some substantial cost, this is a good opportunity for those involved in metrics to list the benefits that their services provide. While the aim of a metrics program will usually be to achieve some particular goal, it remains necessary to ensure that the benefits of achieving that goal will indeed surpass the costs.Modeling TechniquesWhen developing a model using software metrics a large number of techniques are available. These include the more traditional regression and ANOVA approaches as well as some more recently adopted techniques such as neural networks, fuzzy logic, case-based reasoning, and more advanced statistical techniques (clustering, factor analysis, and robust estimators). Given the fact that each technique has its own requirements in terms of, for example, the size of the data set and the distribution assumptions of the data, it is important that the correct technique is selected. In many cases, a single technique may not be sufficient and several models may be developed simultaneously. It is important that all of the techniques chosen will remain effective under the data and operating conditions.Each type of technique also provides different benefits. The worth of a technique depends on the accuracy required and the desired amount of interpretability in the final model. While it may appear trite, it is also important that an organization has available the required expertise to implement the model(s). It is often the case that the more advanced modeling paradigms,such as neural networks, are adopted on the (unfounded) assumption that they are inherently better, even when the expertise to use them correctly is not available. Gray and MacDonell (1997) provide a summary of the worth of various techniques for software metric applications and MacDonell and Gray (1996a) illustrate the effectiveness of some techniques on software metrics data.Effect of Metrics on Software DevelopmentOnce the models have been developed it is essential that the benefits are then realized. Quantifying the potential benefits, as discussed above, and actually achieving these benefits are sufficiently different that the implementation of the metric models is regarded here as deserving special attention. A number of qualities of successful metrics programs are discussed in MacDonell and Gray (1996b):•user involvement•management support•clear requirements•proper planning•realistic expectations•smaller project milestones.The effective implementation of the software metrics program will require all of these characteristics. As user involvement and management support are essential components of a successful metrics program, all stakeholders should be involved in determining which metrics should be collected and how they should be used. In other words, the use of a technique like GQM cannot (or at least should not) be carried out by project managers in isolation from the rest of the organization.The implementation plan for the program should cover such issues as how the models will be used to plan, monitor, control, or evaluate the development process. The allocation of responsibilities for who will interpret the models’ results is also important.GQM++We propose here an extension to GQM that adds a further three layers to the model proposed in MacDonell (1993), for data collection, modeling, and implementation. The extension also captures cost/benefit information and assesses the program in terms of economic justification and feasibility. These additional layers, while involving actions to be taken in phases subsequent to planning, are important to consider as early as possible since they involve the creation of a series of steps that will achieve the goals of the metrics program. If some of these steps are not feasible, due to measures not being available, costs of gathering those measurements exceeding some budget, or expertise with the analysis techniques being outside the model developer’s range of skills, then this is the time to make adjustments to the program. The sooner that the entire project is planned in a feasible manner the lower the costs of plans committed to but found impossible. These additional layers should therefore be filled in tentatively, not as contracts to be fulfilled. Changes can be made at any stage, but the metrics program as a whole must remain feasible in technical, economic and managerial senses.The additional layers incorporate the data collection method, the data analysis method, and finally the method used for the model’s implementation into the organization’s future software development processes. Thus, the extended model could be referred to as the Goal/Question/Metric/Collection/Analysis/Implementation (GQMCAI) framework or more simply as GQM++. Further extensions as used in Shepperd (1990) and MacDonell (1993) for sub-goals, questions, and metrics are encouraged and discussed here. This leads to a total of up to eleven layers, although some of the sub-layers may not be necessary for all problems. Model stages are discussed below, and are shown in Figure 6 with an example in Figure 7.GoalThe goal is a broad level specification of what the program hopes to achieve. For example, a goal may be to enhance productivity of developers. Such a goal needs to be consistent with the organization as a whole. Goals for commercial organizations seeking an improvement in their development process should not be specified in vague terms, such as to improve productivity, although such goals may be suitable for research studies. Instead, such organizations should use precise, albeit flexible, goals such as to enhance developer productivity by five to ten percent over the next two years. These details could be contained in a sub-goal as described below.A goal of this nature is both visible (which makes achievement more likely) and measurable (which allows for recognition of how well the goal was in fact achieved). Some assessment of the benefits of achieving the goal is also important. While quantifying the benefits from, for example, a five-percent increase in developer productivity as measured in function points is very difficult, it is none-the-less essential that some estimation is made. If the uncertainty attached to the estimate is recognized, a realistic comparison between the expected benefits and actual benefits can be performed. Capital budgeting techniques, such as net present values and sensitivity analysis, can be used to assess the overall profitability of the program. Sub-goalThis is an optional step mentioned in Shepperd (1990) and MacDonell (1993) that can be used to break the goal, which in the above example is rather broad, into smaller, more manageable, sub-goals. For example, productivity measurement could be broken into measuring productivity for analysis and design, coding, and testing. Each of these would be a sub-goal, and while some overlap may exist between questions, metrics, collection procedures, analysis techniques, and implementation methods, for each of these goals it may be useful to treat each separately, while still providing some indication of commonalties. As with the goal above, the sub-goals for an organization seeking improvement of its development process should be realistic and clearly specified. Assessing the benefits of sub-goals can be accomplished, and in fact may be even easier to perform, in the same manner as for goals presented above. DomainThe domain provides the context for the sub-goal or goal above. This is another optional stage that allows different collection and analysis approaches to be taken for different types of system. So, as an example, a goal of improving testing productivity may be implemented differently for CASE-built systems than for systems constructed with a third-generation language such as C++.Sub-domainThis optional stage enables the further refinement of the domain above. Following on from the testing productivity example, the C++ testing productivity improvement goal may be implemented differently for libraries that are intended to be reused than for specialized, one-off use routines.Figure 6 The GQM++ FrameworkFigure 7 An Example of a GQM++ FrameworkThis level in the framework provides a number of questions for each (sub-)goal. These questions are selected in such as way as to make their answers sufficient, and ideally also necessary, in order to achieve the goal. Continuing the above example, questions may be proposed along the lines of1.How do tools (such as editors and debugging utilities) affect productivity?2.What effect do fourth-generation languages and CASE tools have?3.Are visual programming environments assisting productivity?4.Does team size affect productivity?5.What effect does training for developers have on their productivity?Sub-questionThese, if necessary, allow the questions to be further broken down. The second question above (fourth-generation languages and CASE tools) could then be broken into specific questions on the individual effects of fourth-generation languages and of CASE tools. This may appear somewhat simplistic, and unnecessary, since we could have skipped the higher step and gone straight to the two sub-questions. While this can be done, it is considered useful to be able to recognize that the effects of fourth-generation languages and CASE tools, in this example, are likely to share considerable overlap in metrics used, but will probably also differ in some important ways depending on the particular processes employed. Characteristic MetricsThis is the set of metrics that will be used to answer the (sub-)questions above. Examples for our scenario in terms of CASE productivity would be to measure the size of the project, its complexity, and the effort expended on it.Sub-metricsThis is another optional step, used in Shepperd (1990) and MacDonell (1993), since we could just provide the metrics at the higher stage. However, a number of size metrics exist (the data model size as measured by the number of entities or by the number of attributes, or the process model size as measured by the number of levels in the data flow diagrams, for example). We may therefore wish to look at using more than one metric of each type to reduce problems with contaminated data.Data CollectionThis is one of the additional layers proposed here. The data collection layer should state the time at which the data will be available, the way in which it will be obtained and the personnel responsible for this, and finally the cost associated with collection. The importance of this layer is in forcing the program to only use information that will actually be available. The potential exists for a metrics program to be created, only to find that some of the data cannot be collected, or not in sufficient quantities. A possible decomposition here is to separate this into a temporal source (for example, after analysis and after coding) and then the source itself (such as specification documents and the source code). However since we will normally use the most recently produced data source, for example measures from the code will supersede any from the specification, this option is not explored further here.This is where the analysis procedures to be used will be specified. Since the quantity and nature of data actually collected will largely determine which techniques are suited to the particular analysis planned, this layer is relatively more likely to change. Some options here are for regression-based modeling, neural networks, fuzzy logic models, and case-based reasoning. At this level, it is important that the feasibility of the technique is examined, in terms of the data that will be available, the required characteristics of the model, and the technical expertise available. Since many measures may be used in one model, there will generally be far fewer models than metrics even with considerable sharing of measures between models.ImplementationThis layer describes how the models obtained will be implemented in order to achieve the goal(s) stated. For example, the selection of tools to be used by programmers may be made after investigating the impact of each. At this stage the benefits expected from the metrics program should be quantified as accurately as possible in relation to the benefits of the goals already estimated. This allows for a check that the implementation does in fact correspond to the goals in terms of benefits achieved. Specifying benefits from each measure may not always be practical, especially where several compound measures will be used together (such as several defect-tracking measures). Again, as above the models may be used in combination or in a single-shot manner.AssessmentWhile not a layer in the hierarchy itself, this stage can be seen as the single point into which the entire framework is fed. This provides the opportunity to combine the costs and benefits from the program and to determine the parts of the program that should be proceeded with and those that will require adaptation or abandonment. The GQM++ process should be seen as iterative, with the possibility of working back up the hierarchy if some lower level cannot be sufficiently specified.ConclusionsIn this paper, an extension of the GQM framework that takes into account the data collection, model building, implementation, and program assessment stages has been presented. While not all of these stages will be required, or will even be desirable, for all metrics programs it is felt that many organizations would benefit from a more holistic approach to their selection of software metrics. The GQM++ framework encourages the hierarchical specification of software metrics, with the involvement of all stakeholders used to assess the profitability and feasibility of the metrics program.ReferencesBasili, V.R. and Rombach, H.D. (1988), ‘The TAME Project: Towards Improvement-Oriented Software Environments’, IEEE Transactions on Software Engineering 14(6),pp. 758-773.Basili, V.R. and Weiss, D.M. (1984), ‘A Methodology for Collecting Valid Software Engineering Data’, IEEE Transactions on Software Engineering 10(6),pp. 728-738.Card, D. (1993), ‘What Makes for Effective Measurement?’, IEEE Software November, pp. 94-95.Fenton, N.E. and Pfleeger, S.L. (1997), Software Metrics – A Rigorous and Practical Approach, Chapman and Hall, London.Gray, A.R. and MacDonell, S.G. (1997) ‘A Comparison of Techniques for Developing Predictive Models of Software Metrics.’ Information and Software Technology 39(6), pp. 425-437.MacDonell, S.G. (1993), ‘Deriving Relevant Functional Measures for Automated Development Projects’, Information and Software Technology 35(9), pp. 499-512.MacDonell, S. G. and Gray, A. (1996a), ‘Alternatives to Regression Models for Estimating Software Projects’, Proceedings of IFPUG1996 Fall Conference, Dallas TX.MacDonell, S.G. and Gray, A. (1996b), ‘Software Process Engineering for Measurement-Driven Software Quality Programs - Realism and Idealism’, Proceedings of ACOSM’96, Melbourne.Roche, J.M., Jackson, M. and Shepperd, M. (1996), ‘Improvement of the Goal-Question-Metric Method’, in Proceedings of the Software Process Improvement Conference (SPI’96), Brighton UK.Shepperd, M. (1990), ‘Design Metrics: An Empirical Analysis’, Software Engineering Journal, January, pp. 3-10.。