(研发管理)软件研发质量管理层次模型
软件项目管理案例教程(第三版)课后习题答案整理(最终版)(1)

项目管理案例教程(第三版)习题及答案第一章软件项目管理概述一、填空题1、实现项目目标的制约因素有(项目范围)、(成本)、(进度计划)、(客户满意度)等。
2、项目管理包括(启动过程组)、(计划过程组)、(执行过程组)、(控制过程组)、(收尾过程组)5个过程组。
二、判断题1、搬家属于项目。
(对)2、项目是为了创造一个唯一的产品或提供一个唯一的服务而进行的永久性的努力。
(错)3、过程管理就是对过程进行管理,目的是要让过程能够被共享、复用,并得到持续的改进。
(对)4、项目具有临时性的特征.(对)5、日常运作存在大量的变更管理,而项目基本保持连贯性的。
(错)6、项目开发过程中可以无限制地使用资源.(错)三、选择题1、下列选项中不是项目与日常运作的区别的是(C)A. 项目是以目标为导向的,日常运作是通过效率和有效性体现的。
B. 项目是通过项目经理及其团队工作完成的,而日常运作是职能式的线性管理。
C.项目需要有专业知识的人来完成,而日常运作的完成无需特定专业知识。
D.项目是一次性的,日常运作是重复性的.v2、下列选项中最能体现项目的特征(C)A.运用进度计划技巧B.整合范围与成本C.确定期限D.利用网络进行跟踪3、以下都是日常运作和项目的共同之处,除了(D)A.由人来做B.受限于有限的资源C.需要规划、执行和控制D.都是重复性工作4、项目经理的职责不包括(D)A.开发计划B.组织实施 C.项目控制 D.提供资金5、下列选项中属于项目的是(C)A.上课B。
社区保安C.野餐活动D。
每天的卫生保洁6、下列选项中正确的是(C)A.一个项目具有明确的目标而且周期不限 B.一个项目一旦确定就不会发生变更C.每个项目都有自己的独特性D.项目都是一次性的并由项目经理独自完成7、(B)是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力。
A.过程B.项目C。
项目群D。
组合8、(B)是一系列伴随着项目的进行而进行,目的是确保项目能够达到期望结果的一系列管理行为。
信息系统管理工程师复习重点

信息系统管理工程师复习重点软件工程及项目管理基础学问:信息系统工程质量管理:质量支配、质量保证、质量限制软件质量因素:正确性、健壮性、平安性、可用性、适应性、效率、风险、可理解性、可修理性、可测试性、可移植性、可再用性、互运行性。
项目进度限制的重要方法:规划、限制、协调进度限制所实行的措施如下:1 组织措施2 技术措施3 合同措施4 经济措施5 管理措施影响进度因素:1 人的因素2 材料和设备的因素3 方法和工艺的因素4 资金的因素5 环境因素成本管理由4个过程组成:1 资源支配过程2 成本估算过程3 成本预算过程4 成本限制过程影响工程成本主要因素:1 项目属性2 人员属性3 项目成果属性4 计算机属性5 其他因素影响工程变更的主要因素:1 工程的生命周期2 工程的支配、组织和管理3 客户需求变更4 新技术、新工艺的影响5 其他外部因素和不行遇见的突发事务何为风险?限制风险的方法:风险是指某种破坏或损失发生的可能性,风险管理是指识别,评估,降低风险到可以接收的程度并实施适当机制限制风险,保持在此程度之内的过程。
限制风险的方法:1 对动作进行优先排序,风险高的优先考虑2 评价风险评估过程中的建议,分析建议的可行性和有效性3 实施成本/效益分析4 结合技术、操作和管理类的限制元素,选择性价比最好的平安限制5 责任安排6 制定一套平安措施实施支配7 实现选择的平安限制项目支配内容:工作支配、人员组织支配、设备选购供应支配、其它资源选购支配、变更限制支配、进度支配、成本投资支配、文件限制支配、支持支配风险分析的方法和途径:定量分析和定性分析项目风险管理应当包括:1 一个风险管理支配,应强调主要项目风险、潜在的影响、解决方案、降低风险的措施2 一个风险预防支配或应急支配,包括降低风险所必需的资源、时间及成本概算3 一个在整个项目周期内自始至终对风险进行测定,跟踪及报告的程序4 应急费用,并将其列入预算。
软件开发各种模型

软件开发各种模型
以下是常见的软件开发模型:
1.瀑布模型:这是一种线性的软件开发模型,强调开发过程的阶段性和顺序
性。
它从系统需求分析开始,经过设计、编程、测试、发布和维护等阶段,最终得到软件产品。
瀑布模型的特点是每个阶段都有明确的任务和输出,并且前一阶段的输出作为下一阶段的输入。
2.迭代模型:迭代模型是一种非线性的软件开发模型,强调在开发过程中不
断迭代和精化的过程。
在迭代模型中,开发过程被划分为多个迭代周期,每个迭代周期都包括需求分析、设计、编程、测试等阶段。
通过不断地迭代和精化,最终得到符合需求的软件产品。
3.螺旋模型:螺旋模型是一种风险驱动的软件开发模型,强调在开发过程中
不断进行风险分析和应对。
螺旋模型的特点是在每个迭代周期中都包含四个方面的活动:制定计划、风险分析、实施工作和评审工作。
通过不断地迭代和风险分析,最终得到符合需求的软件产品。
4.敏捷开发模型:敏捷开发模型是一种以快速响应变化和客户需求为特点的
软件开发模型。
它强调团队合作、快速迭代和客户需求的重要性,通过不断地反馈和调整来应对变化。
常见的敏捷开发方法包括Scrum、Agile等。
5.V模型:V模型是一种测试驱动的软件开发模型,强调测试在软件开发过程
中的重要性。
V模型的特点是在开发过程中进行详细的测试和验证,以确保软件的质量和符合需求。
V模型包括需求分析、设计、编码、测试等阶段,每个阶段都有相应的测试和验证活动。
这些是常见的软件开发模型,每种模型都有其特定的适用场景和优缺点。
选择合适的开发模型取决于项目的具体需求和条件。
研发管理体系

一、研发管理体系研发管理是一个完整的管理体系,从结构上来讲,主要由四个方面的内容构架而成:组织结构与岗位设置,管理流程与工作流程、项目及管道管理(项目资源的优化与筛选),绩效管理。
如图1所示:所有的研发管理必须是在研发在战略的指导下进行,所有的工作必须符合企业的发展战略和研发管理战略。
在保证研发项目顺利进行的同时,项目管理、人员管理、资金管理、知识管理也是不可缺少的组成部分。
二、研发管理战略研发管理战略是研发项目管理体系建设的出发点和重要指导。
在制定研发管理战略时,除了要明确较长时间内(通常是3-5)年的研发管理战略规划之外,还需要建立研发项目选择和评价的体系和标准。
因此,研发管理战略对于科研机构能否选择适合自身能力和市场环境的研发项目有重要的影响。
三、团队在实际工作中,我们首先要明确,要建立进行高效的研发管理,需要建立怎样的一个管理团队和工作团队,彼此之间如何进行分工与协作,管理的层次关系是怎样的,以及以怎样的方式去组织每项研发项目等等。
明确分工,明确责、权,是进行工作的前提。
四、研发项目管理开发部门通过提高部门效率和优化流程已经有效性的减少了研发投入上的浪费。
研发人员比以前更接近市场,更注意使研发工作与公司业务战略协调一致。
1.流程其次,需要明确研发项目管理的各个阶段划分,明确工作的方式和步骤,建立工作规则和规范,建议相应的业务制度。
通过规范化的管理,建立适度的结构化工作流程。
然后,针对研发项目目前存在的普遍问题,强调根据项目的进展情况,在不同的阶段根据不同的情况和准则对项目进行重新评估和甄选。
进行有效的管道管理和实时的监控,避免资源的浪费,及时将不良项目进行终止或转移。
流程管理体系流程管理体系是研发项目运作和管理的手段。
一个良好的流程管理体系能有效地提高项目运作效率、降低项目成本、控制项目风险等等。
例如,通过流程设计和优化剔除冗余环节和不必要的步骤,或者将项目的串行流程改为并行流程等措施将提高项目效率,加快项目进度;而通过在流程中建立适当的关键控制点可以充分地降低项目决策、管理和执行等方面风险。
研发运营一体化(DevOps)能力成熟度

一、什么是DevOps?DevOps是一种在软件开发和交付过程中将开发和运维团队紧密结合起来的方法和理念。
它的目的是通过不断改进流程、工具和文化,实现开发和运维过程的高效协作,并快速交付高质量的软件产品。
二、什么是DevOps能力成熟度评估?DevOps能力成熟度评估是一种方法,用于评估组织的DevOps实践的成熟度。
它旨在帮助组织确定其当前的DevOps实践的强项和弱点,并提供指导和建议,以改进其DevOps实践,从而实现更高效的开发和交付。
三、DevOps能力成熟度模型DevOps能力成熟度模型是一种框架,用于描述和指导DevOps实践的成熟度。
它基于一系列最佳实践和指南,包括敏捷、持续交付、自动化、监控和反馈等方面。
它通过五个不同层次的成熟度来描述组织的DevOps实践:起步阶段、重复阶段、定义阶段、管理阶段和持续改进阶段。
四、如何进行DevOps能力成熟度评估?进行DevOps能力成熟度评估需要以下步骤:1.了解DevOps能力成熟度模型并选择评估工具。
2.评估组织当前的DevOps实践,包括其开发、交付、运维和监控等方面。
3.确定组织在DevOps实践中的强项和弱点,制定基于评估结果的改进计划。
4.执行改进计划并监控其效果,随着时间的推移对实践进行迭代和改进。
五、DevOps的优势和挑战DevOps的优势包括:1.提高软件交付速度,将软件产品更快地推向市场。
2.改进软件质量和可靠性,通过自动化测试、代码审核等工具降低错误率。
3.减少软件开发和运维成本,提高资源利用效率。
4.增强开发和运维团队之间的协作,改善团队文化和工作效率。
然而,DevOps实践也面临一些挑战:1.需要组织文化和管理的变革,包括企业文化、组织结构和流程等方面的变革。
2.需要团队具备一定的技术和工具的储备和使用水平。
3.需要适应不断变化的需求和市场竞争力。
六、结语DevOps是一种协同工作的理念,强调团队协作、自动化和持续改进。
2 CMM概述

6
什么是软件过程?
人们从开发到维护软件及其相关产品所 采取的一系列活动。其中:
活动包括: ① 软件工程活动 相关产品包括:
① 项目计划、
② 设计文档、
② 软件管理活动
③ 代码、
④ 测试方法 ⑤ 用户指南等。
7
什么是软件过程能力?
通过执行其软件过程能够实现预期结果的 程度。
软件过程本身具有的按预定 计划生产产品的固有能力。 一个软件开发组织的软件过 程能力,为组织提供了预测 软件项目开发的数据基础。
它们只描述“做什么”,不描述“怎么 做”。
KP (Key Practices/关键实践) SP (Specific Practices/特定实践)
GP (Generic Practices/共性实践)
14
什么是软件能力成熟度模型?
对软件组织进化阶段的描述。 主要是描述此模型的结构,并且给出该 模型的基本构件的定义。
第2章
软件能力成熟度模型概述
1
1、CMM的基本概念
什么是软件组织? 什么是软件过程? 什么是基线? 什么是软件产品? 什么是软件工作产品? 什么是软件过程能力? 什么是软件过程性能? 什么是KPA/KP ? 什么是软件过程成熟度?
2
什么是软件组织?
软件企业内部的一个软件研发部门。 组织内部有若干个项目和一个软件工程 管理部门。 如:公司的研发中心、软件中心、软件 事业部,它们均可称为 “软件组织”。
23
可管理级
特点:管理层是可预测的软件过程, 过程成为可度量的 关键问题:改善技术、 问题分析、 防止出错。 达标标准:为定义好的过程建立一套详 细的度量机制,为产品和过程设立质量 目标,度量软件过程和产品。
基于DevOps的软件开发管理模式

本栏目责任编辑:梁书计算机工程应用技术基于DevOps 的软件开发管理模式高丽娟(中海油能源发展股份有限公司工程技术分公司,天津300452)摘要:DevOps 是继敏捷研发后的又一个先进的研发理念,通过整合开发和运维,有效解决了敏捷研发中软件开发与运维之间的鸿沟,提升了软件开发效率和交付质量。
文章首先分析了DevOps 概念、优势和应用现状,接着研究了基于DevOps 的软件开发流程,最后以某公司安全软件开发为例,对基于DevOps 的软件开发管理模式进行深入探讨,以供参考和借鉴。
关键词:DevOps ;软件开发;管理模式中图分类号:TP311文献标识码:A文章编号:1009-3044(2021)04-0258-03开放科学(资源服务)标识码(OSID ):随着信息化网络时代的到来,海量的数据信息出现在人们的视野中,这给企业业务工作创新提出了更高的要求。
企业要想在这样的背景下获得稳定发展,必须借助高质量的软件开发,实现业务方面的创新应用。
对于现代化企业,特别是互联网企业而言,需要将有价值的信息快速准确地传递给用户,以便于用户做出及时的反馈,进而对产品进行修改和优化。
而对于这一过程的实现,必须要求开发团队与测试、运维团队相互配合,改变以往相互割裂的情况,这正是DevOps 理念的核心所在,可见运用DevOps 理念进行企业软件开发管理已经成为当前的一大趋势,这对于提升软件交付质量有着积极作用。
1DevOps 相关概述研究1.1DevOps 的概念DevOps 是集自动化、持续监控以及共享等元素于一身,将软件开发、运维以及测试紧密联系到一起,是三个部门进行沟通协作的重要方法和依据。
DevOps 最早出现在欧洲,主要以解决传统IT 在运维方面的问题而出现的,相关专家总结出一个能力环结构,以此更好的解释DevOps 内涵,详细如图1所示。
图1DevOps 概念图DevOps 的出现,让软件开发团队可以用同样的方式对开发、生产以及测试等环境进行有效操控,同时可以在任意情况下将数据包部署到相应环境中。
软件能力成熟度模型(精)

CMM的一些基本概念(3)
关键实践:对关键过程域的实践起关键作用的方针、规 程、措施、活动以及相关基础设施的建立。关键实践一 般只描述“做什么”而不强制规定“如何做”。整个软 件过程的改进是基于许多小的、渐进的步骤,而不是通 过一次革命性的创新来实现的,这些小的渐进步骤就是 通过一些着关键实践来实现。
CMM等级模型图
CMM的作用: 科学地评价软件开发单位的软件能力成熟 等级; 帮助软件开发单位进行自检,了解自己的 强项和弱项,从而不断完善和改进单位的 软件开发过程,确保软件质量,提高软件 开发能效率。
CMM的意义
迄今为止学术界和工业界公认的有关软件 工程和管理实践的最好的软件过程。 为评估软件组织的生产能力提供了标准。 为提高软件组织的生产过程指明了方向。
企业结构原则:商业结构,应用结构,技术结构,信息结构 应用开发原则:组队模型,开发模型,风险管理 组件设计原则:概念设计,逻辑设计,物理设计 基础开发原则:组队模型,开发模型,风险管理
CMM/CMMI本身是一套非常有价值的过程模型,但简 单的将其图腾化却是整个中国软件行业的悲哀,反观 CMM/CMMI的发源地——美国,除了和军方有业务往 来的软件企业会寻求通过CMM/CMMI评审外,其他多 数的企业并不怎么在乎是通过了CMM/CMMI的三级还 是四级,象是著名的微软、甲骨文等知名企业都没听说 过和CMM/CMMI沾过边,但这也丝毫不影响以他们为 代表的美国软件企业在整个行业中独领风骚。 只有有效的而不是最权威的,才是最好的。
链接3:软件市场的通行证——CMM
世界上第一家通过CMM5认证的并非美国公司, 而是来自印度的WIPRO。同时,WIPRO还是 全球第一个通过人力成熟度模型(PCMM)5级 认证的软件及服务公司。 据SEI统计,目前有大约300家印度软件公司通 过了CMM认证,其中通过最高质量等级CMM5 的有50余家,占全球的60%以上。高品质的管 理决定了高品质的产品,从而也确立了印度在 美国外包市场的垄断地位。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件研发质量管理层次模型摘要:本文对软件研发质量管理的层次进行了初步的划分,形成了软件研发质量管理层次模型,并对模型中的各个层次内涵做了简要说明。
关键字:质量管理、软件研发、层次。
正文:概述质量:一组固有特性满足需求的程度,指产品或服务满足规定或潜在需要的特征和特性的总和。
他既包括有形产品也包括无形产品;既包括产品内在的特性、也包括产品外在的特性。
即包括了产品的适用性和符合性的全部内涵。
软件质量:和软件产品满足明确或隐含需求的能力有关的特征和特征的总和。
有四个含义:1、能满足给定需要的特性之全体;2、具有所希望的各种属性的组合的程度;3、顾客或用户认为能满足其综合期望的程度;4、软件的组合特性,他确定软件在使用中将满足顾客预期需求的程度。
从用户最感兴趣的的角度来说,软件质量能从三个不同的角度来看待:怎么使用软件、使用效果怎么、软件性能怎么;从软件研发的团队的角度来说,不仅要生产出满足质量需求的软件,也对中间产品的质量感兴趣,也对怎么运用最少的的资源、最快的进度生产出质量最优的产品感兴趣;从软件维护者的角度看,对软件维护方面的特性感兴趣;对企业的管理层来说,注重的是总体效益和长远利益,就是说质量好的软件一般能帮助企业扩大市场;反之,质量差的软件一般会造成企业市场萎缩。
软件质量特性:根据《GB/T16260-1996(idt ISO/IEC9126:1991)信息技术软件产品评价质量特性及其使用指南》软件的质量特性包括功能性、可靠性、易用性、效率、可维护性、可移植性等六个方面,每个方面都包含若干个子特性:功能性:适合性、准确性、互操作性、依从性、安全性;可靠性:成熟性、容错性、易恢复性;易用性:易理解性、易学性、易操作性;效率:时间特性、资源特性;可维护性:易分析性、易改动性、稳定性、易测试性;可移植性:适应性、易安装性、遵循性、易替换性;质量管理:在质量方面指挥和控制组织的协调的活动,指对确定和达到质量所必须的全总职能和活动的管理,其管理职能主要包括制定质量方针和质量目标及质量策划、质量控制、质量确保和质量改进。
软件研发质量管理,就是为了研发出符合质量需求的软件产品,贯穿于软件研发生存期过程的质量管理工作。
软件研发质量管理层次初步划分如下:1、技术层次(数据、编程、文件)2、方法体系层次(措施、项目、过程)3、社会因素层次(质量环境、技术标准、业务标准、人员)软件研发质量管理层次模型如下图:技术层次1、数据质量管理层次多数情况下,软件系统的最终目的是对用户关心的各类数据(信息)完成各种各样静态或动态的处理或管理任务,为用户创造他们所期望和额外的价值。
因此数据质量是用户最为关心的,数据质量也反映了软件系统产品的质量。
数据质量是数据抽取、数据转换、数据整合、数据仓库及管理信息系统研发等项目中质量控制和质量确保必须考虑的主要工作。
数据质量管理可分为人工比对、程式比对、统计分析三个层次。
1.1 人工比对为了检查数据的正确性,测试人员打开相关数据库,对转换前和转换后的数据进行直接的比对,发现其不一致性,通知相关人员进行纠正。
1.2 程式比对为了自动化地检查数据的质量,更好地进行测试对比,程式员编写查询比对程式给测试人员使用。
测试人员使用此程式对转换前和转换后的数据进行比对,发现其不一致性,通知相关人员进行纠正。
1.3 统计分析为了更加全方面地从总体上检查数据的质量,需要通过统计分析的方法,主要通过对新旧数据不同角度、不同视图的统计对数据转换的正确程度进行量化的分析,发现其在某个统计结果的不一致性,通知相关人员进行纠正。
2、编程质量管理层次软件系统是靠“编”出来的,为了确保软件产品的质量,就必须确保软件程式代码的质量。
为了提高编程质量,应检查源码的逻辑、属性、对象命名标准、语言代码布局等内容;代码的编译、链接、集成和构建必须得到验证和确认。
编程质量管理层次可分为黑盒测试、灰盒测试、白盒测试、编译检查、编程规范、编程逻辑、编程优化。
2.1 黑盒测试黑盒测试检验是否符合系统需求,也称功能测试或数据驱动测试。
他是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。
在测试时,把程式看作一个不能打开的黑盆子,在完全不考虑程式内部结构和内部特性的情况下,测试者在程式接口进行测试,他只检查程式功能是否按照需求规格说明书的规定正常使用,程式是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
2.2 灰盒测试灰盒测试介于白盒和黑盒二者之间,关注输出对于输入的正确性,同时也关注内部表现,但这种关注不像白盒那样周详、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会非常低,因此需要采取这样的一种灰盒的方法。
2.3 白盒测试白盒测试也称结构测试或逻辑驱动测试,他是在知道产品内部工作过程的情况下,按照程式内部的结构测试程式,检验程式中的每条通路是否都有能按预定需求正确工作,而不顾他的功能。
白盒测试的主要方法有逻辑驱动、基路测试等。
2.4 编译检查使用研发工具所带的编译功能或专门程式对软件源码进行检查,分析和寻找源码存在的问题。
2.5 编程规范通过人工源码检查判断源码是否符合企业已制定的相关编程规范。
制定编程规范,在企业内形成一个研发约定和规则,有利于整体风格统一、代码的可读性、可维护性和可扩展性。
2.6 编程逻辑所编写的源码是否考虑周全,无矛盾或遗漏之处。
常见问题如:忘记定义变量就使用、变量没有赋值初就直接使用、输入输出的数据类型和所用格式说明符不一致、没有注意数据的数值范围造成数组越界或数据溢出、输入时数组的组织方式和需求不符、循环语句可能会造成死循环、条件语句只考虑符合的情况而没有考虑例外的情况、读取文件或数据库中的数据没有考虑例外情况,等等。
2.7 编程优化通过人工或软件检查判断是否可进一步提高源码总体性能和运行可管理性。
总体性能如内存管理、数据库组织和内容、非数据库信息、任务并行性、网络多人操作、关键算法、和网络、硬件和其他系统接口对性能的影响等等;运行可管理性如便于控制系统运行、监视系统状态、错误处理;模块间通信的简单性等等。
3、文件质量管理层次文件(包括模型)是软件研发过程中的中间成果,这些中间结果关系到软件需求的准确性完整性、设计的合理性,对软件系统的最终结果有决定性作用。
文件质量管理层次包括文件规范、文件语法、文件语义、文件逻辑、文件美学、文件优化。
3.1 文件规范文件成果符合企业或业界已制定的文件模板规范。
企业甚至行业应当制定统一的文件规范,形成一个文件约定和规则,以统一文件内容和风格。
3.2 文件语法文件成果正确使用通用的工具和术语、符合相关行业的技术标准。
所有语言都有他的语法,所有质量合格的文件(包括模型)都应该是语法正确的,不正确的语法会影响规格说明和可视化的质量。
3.3 文件语义文件成果表达正确、无歧义。
所有质量合格的文件(包括模型)都代表他期望代表的语义,而且应该在代表这些语义的时候具有一致性。
3.4 文件逻辑文件成果考虑周全,不矛盾,满足客户的关键需求,特别是要符合相关行业的业务标准。
3.5 文件美学文件成果是最佳表述,文字、图表是均衡和完整的。
就是追求平衡的美,每个组成部分应该不大不小,可解读、可变更、不同时代表太多的元素。
3.6 结果优化通过检查判断文件成果(如项目计划、需求规格、设计方案)是否更有改进的空间,以尽可能达到最佳方案。
所有一项设计,都能有许多不同的方案,通过“方案优化”选定一种最佳的方案。
所有一位设计师在做一项设计的时候总是选择他认为是最佳的方案,都有某种程度上的“优化”,因此他能说他的产品是经过“优化”的。
无论何种意义上的优化,都有一个一起的特点,就是相对性。
这个相对性有两方面的意义,一是优化是相对某种目标的,目标不同优化的结果不同。
另一方面是在大多数的情况下,优化的结果并不是最优的,只能是相对好的。
方法体系层次1、措施质量管理层次为提高软件质量企业所采取的相关措施。
决定成败的不是目标,而是措施。
所有好的规章制度或计划,最终都需要具体措施才能落到实处。
措施层次包括质量检查、质量确保、预防不合格品、完美无缺。
1.1 质量检查确保质量的方式是进行临时性的最后检查,然后消除次品。
软件测试是软件质量检查的具体实现环节。
把软件测试有效地组织进软件的生产流程,是软件质量控制规划的主要内容。
1.2 质量确保质量目标仍主要通过生产部门或企业进行生产过程的优化和稳定化来确保质量目标的达成。
从软件产业的发展初期到目前的大型软件研发过程,软件质量确保已成为研发中的一个不可分割的部分。
1.3 预防不合格品整个软件业项目属于需求分析和软件设计的错误和缺陷约占软件错误的64%,而属于程式代码的错误仅占36%。
软件错误具有随着阶段的进展而产生积累和放大效应,因此应当尽早消除错误,否则“差之毫厘,失之千里”。
所以在软件研发生命周期的前期就通过对关键过程成果的评审控制来预防不合格品。
1.4 完美无缺这一级上的企业都有一种内在的质量文化氛围,在此氛围下的方方面面工作都有助于质量的提高。
每个员工都意识到质量对企业成功的重要性,都在寻求提高质量的新途径,都在为达到完美无缺而奋斗。
同时,企业始终如一地面向外部客户,通过优越的设计质量来满足客户需要,并从供给商到客户形成一个优化的管理流程。
2、项目管理质量层次软件研发任务一般是以项目的形式完成,项目管理质量包括组织资源、组建团队、设定目标、确定范围、确定优先级、管理风险、建立沟通机制等内容,其层次分为通用术语、通用过程、单一方法、基准比较、持续改进。
科兹纳博士对项目成功的定义,不仅要满足传统的项目时间、费用和性能的三大目标及满足客户或用户定义的质量标准,还要满足具有最少的或双方同意的范围变更、没有干扰组织的企业文化或价值观、没有干扰组织的日常工作进程等条件。
2.1 通用术语企业了解了项目管理的重要性,并需要进一步了解对项目管理基础知识及相关的语言和术语。
在企业内部普及项目管理基础知识,使用业界通语言和用术语进行沟通,使大家形成对问题的正确理解。
2.2 通用过程企业认识到自己需要定义和建立通用过程,以便在一个项目上成功之后,还能将该过程及其成功经验重复地用于其他许多个项目。
在这一层次上,还包括理解项目管理原则对公司所用其他方法的应用和支持。
2.3 单一方法企业尽量通过单一的方法研发,而不是使用多个方法,能最佳地实现协同效应和控制,认识到了把公司所以方法结合成一个单一方法所产生的协同效应,其核心是项目管理。
和使用多个方法相比,只用一个方法所产生的协同效应使得程控更加容易。