软件过程改进与管理

软件过程改进与管理
软件过程改进与管理

软件过程改进与CMMI

第一章绪论

1.1本课题研究的背景

21世纪是信息社会高速发展的世纪,软件作为信息技术的核心,将在其中起着至关重要的作用。随着信息经济、网络经济和科学技术的发展,各行各业已经越来越离不开软件的支持,软件产业的发展,各行各业已经越来越离不开软件的支持,软件产业的发展水平已经成为衡量信息技术发展水平的一个重要因素。

自出现软件危机以来,学术界和企业界对软件工程的研究都倾注了大量的人力、物力和财力,多年来也取得了一些成效。但就全世界而言,软件质量问题仍然非常严重,特别对于军方来说,更是一个致命的问题。正因为如此,美国国防部不惜花费重金,委托美国卡基梅龙软件工程学院(SEI)研究制定软件质量保证规。1991年,第一个软件保证规能力成熟度模型(CMM:Capabiliy Maturity Model)制定完成并在美国应用,随后CMM作为一种软件能力成熟度评估标准在全世界推广实施,主要用于指导软件开发过程改进软件管理能力的提高,从而极提高了软件项目的控制能力和软件产品的质量,促进了全世界软件产业的健康发展。

CMM的应用虽然得到了很好的成效,但也存在一些缺陷,能力成熟度模型集成(CMMI:Capability Maturity Model Integration)应运而生,它是在CMM基础之上的发展和完善,2002年SEI正式推出CMMI,2005年开始逐步取代CMM.

从我国软件产业的发展现状来看,企业管理软件过程的能力还比较弱,过程混乱使得新技术、新工具的优势难以体现。究其原因,是因为我国的软件过程管理缺乏规化和标准化。于是,越来越多的软件企业开始关注软件过程能力的提高,我们把这种用于提高软件过程能力的实践称为软件过程改进。有人将软件过程改进比喻成“练功”,作为软件企业,只有通过苦练功,加强软件过程改进,才能够参与到国际化的竞争中去。CMM和CMMI是软件过程改进领域的重要成果,也是适用于软件企业质量管理和过程改进的重要标准。近年来,国软件企业也兴起了认证热潮,CMM受欢迎的程度远远超过了ISO同类标准。

中央和地方政府也出台了一些优惠政策支持软件企业的CMM认证:国务院出台了《鼓励软件产业和集成电路产业发展若干政策》,第十七条鼓励软件企业出口型企业通过GB/T19000-ISO9000系列质量保证体系认证和CMM认证的软件出口企业,可向外经贸主管部门申请认证费用资助。

本论文正是在这样的背景下,研究分析了软件过程改进的CMM/CMMI理论,并理论联系实际,以某公司为对象,对软件企业基于CMMI的过程改进实践作了更为深入的研究和分析,以期为国其他软件企业实施软件过程改进、提高软件质量、提高企业管理水平提供思路和借鉴。

第二章软件过程与软件过程改进

2.1软件过程

2.1.1软件过程概念

1993年,过程理念的倡导者Hammer和Campy指出,过去200年来,人们所熟知的面向任务的思维方式正面临着挑战,未来所有的商业运作都将以过程的方式来对待。在软件领域,软件过程理念的领袖Watts Humphery领导并完成了软件过程改进领域的巨大成果CMM,他认为要解决软件危机,首要的是把软件活动看作可控的、可度量的和可改进的过程。

不关注和关注过程的组织有着明显不同的文化。前一种组织里,人们期望活动都能产生出实在的“东西”,比较关注活动的短期效果,认为与过程相关的是一些低优先级的活动;在后一种组织里,认为生产的“东西”只是过程的一个节点,只是全局的一部分,过程文档只被看作一个帮助过程执行的工具,而不是被看做最终的目标。实际上,在以过程为核心的组织里,过程并不是一成不变的经典,它本身会通过反馈、评估等一系列活动不断取得改进。

当然并不是说不关注过程的组织没有过程,只是这些组织的过程可能并不一致、协调,每个人都有自己的过程;过程可能是随机并且在无规则的改进着。对于软件团队而言,具体例子就是成员采用不同的编译规和开发语言变可以变更任何程序而不考虑他人等。当然这是当前盛行面向客户的小组协作所不期望的。

过程理念还在快速发展,2000年版的ISO9000的一大变化要求以过程为中心描述活动,而CMM的最新版本CMMI已超越软件的行业局限,成为可以适合多种行业的过程改进模型。

2.1.2软件过程定义

由于不同的人和不同的软件开发组织关注点不一样,因此可能会给软件过程下不一样的定义,这些定义往往会强调了过程的某个方面而忽略了其他方面。美国卡耐基梅隆大学软件工程研究所(SEI)在CMM模型中给过程的定义是:“过程就是指用于生产以及软件进化的一系列的活动、方法及实践。”软件过程:就是指将用户需求转化为可执行系统的的开发和演化过程中所进行的软件工程活动的全体,是用于生产软件产品的工具、方法和实践的集合。这可以说是关于过程的经典的、全面的定义,它包含了过程的三个方面的特性(过程定义、过程活动、过程结果):

第一,过程应该被定义。通常情况下,是指将过程所包含的活动及程序文档化(可以采用保存于纸介质上也可以采用电子文档的形式);

第二,执行过程的每一个人都要学习过程的知识。即让每个过程执行者的头脑中都有对过程知识的深刻认识,且以此来驱动他们的行为活动;

第三,通过执行过程中的活动,获得最终预期的过程结果。

该过程定义的三个方面都很重要,它们之间的关系是相辅相成的;

第一,任何过程只有被大家学习、理解并且执行,才能解决实际问题。如果一个过程只停留在定义阶段,那么这个过程只能永远停留在文本阶段。

第二,在过程进行了明确的定义之后,如果过程的参与者接受了关于过程的培训、学习了过程相关的知识,但是却在实践中没有遵循过程,那么该过程也是

没有实际效果的过程。反之,如果参与过程的组织成员都理解了过程的定义,接受了与过程相关的培训,而且在实际的工作中都能按照过程的要求去规自己的活动,那么该过程就是一个真正的、完整的、有效的过程。

2.2软件过程改进

2.2.1软件过程为什么要改进

提高软件过程能力的实践称为软件过程改进。软件过程改进的根本目的是:提高质量、提高生产率并且降低开发成本。我们可以把软件组织的软件过程与人作比较,人在成长的过程中,存在不同的成熟状态。同样,我们也可以把软件过程分为不成熟的过程、成熟的过程和制度化的过程。

不成熟的软件过程一般具有以下特点:

?过程未被严格的遵循和实施;

?特别依赖于英雄人物,人离开了过程就丢了;

?过程是临时拼凑而成的;

?过程和质量的可见度低;

?质量难于预测;

?功能和质量为了满足进度而妥协。

?成熟的软件过程具有以下特点:

?很好地进行了文档化;

??持续地进行改进;

?正规、严格地使用;

?良好的控制;

?对产品和过程进行了度量;

制度化的过程具有的特点:

?过程成为人们的做事方法,即使最初定义过程的人员离开也不会改变。

从以上的比较可以看出,成熟的过程对于开发出良好的产品显然是有利的,然而,软件组织的过程成熟如同人一样,并不是一生下来就是成熟的,因此需要对软件过程进行改进。软件过程的改进并不是非正式的、随机的改进,不是只改进一次就够了,而是要持续不断地进行改进。这是因为:首先,人们对事物认识需要循序渐进,要经过理论和实践相互作用的循环上升的过程;其次,过程是与人相关的,过程的成熟有赖于人的成熟,而人的成熟是缓慢的;第三,在知识经济时代,企业所处的商业环境已经发生了根本性的变化。顾客需求瞬息万变,技术创新不断加速,产品生命周期不断缩短,市场竞争日趋激烈。

2.2.2软件过程改进的基本思路

软件开发组织的软件过程能力,体现了软件开发组织的实力。这种实力的提高,同样是需要一个逐渐提高的过程。对于软件开发组织的管理人员,软件过程能力的提高同样是一个需求认真策划的复杂过程。

由前面的论述可知,软件过程能力是是指把企业从事软件开发和生产的过程本身透明化、规化和运行的强制化,描述了在遵循一个软件过程后能够得到的预期结果的界限围。简单来说,就是指一个过程在的生产软件产品的能力。该指标是对能力的一种衡量,用它可以预测一个组织在承接下一个软件项目时,所能期望得到的最可能的结果。那么软件过程改进的基本思路就是首先形成一定的软

件过程;然后,对其不断进行调整、优化,使得过程能力不断提高。

目前流行的过程改进模型是IDEAL模型。IDEAL模型以过程改进环的形式表示,如图2-2所示。IDEAL模型将软件过程改进的过程分为五个阶段:初始化、诊断、建立、行动、改进。IDEAL取自五个单词的缩写。通过该模型,我们可以清楚地看到软件过程改进的基本思路与主要流程。

准备阶段为IDEAL模型的起点,主要为软件过程改进提供准备,包括建立初始的过程改进组织结构和基础,制定战术计划和改进目标等。

诊断阶段为组织走上持续软件过程改进循环奠定基础。此阶段的任务是根据企业远景目标和当前的软件过程能力,完善软件过程改进行动计划草案。

建立阶段为当前过程能力中存在的问题划分处理优先等级。制定整体战略行动计划,用于指导软件过程改进的活动;此阶段的任务是制定可度量的目标、定义度量标准、分配必要的资源。

行动阶段的任务是创建、指导、实施行动计划。

改进阶段的任务是通过实践、收集有用数据、完善度量和评价本次软件过程改进过程中使用的策略、方法和架构是否合理、完善。为IDEAL模型的下一次循环奠定良好的基础。

2.3过程改进的方法

软件过程改进是软件过程管理不断改进和不断完善的过程。它是一项综合

并且需要持续开展的活动,它面对的既是软件开发的过程模型,同时也是针对每一个具体软件项目的过程实例。20世纪90年代前后,软件界针对如何进行软件过程管理和改进,提出了各种方案及适用于软件企业的质量标准和过程改进模型。

其中,ISO9001,SPICE,CMM/CMMI使用广泛,具有一定代表性。所以在这里,对这些标准和模型作简要介绍。

2.3.1 ISO9001

ISO9000族标准是目前国际上影响最为深远的质量管理标准。它是国际标准化组织(ISO)于1987年公布的,最初针对制造行业,但现在已经面向更为广阔的领域。ISO9001是ISO9000族中一个重要的质量标准,是一个符合软件开发与维护的标准。它于1994年由ISO公布,明确规定了质量体系的要求。如果软件企业开发方能够达到这些要求,表明它具备了质量保证能力,从而在从产品设计到售后服务的所有阶段,可防止出现不合适格的产品,使用户对产品满意。

ISO9001标准已有了新的版本ISO9001:2000,在2000版本中,标准所重点关注的不是“产品质量”而是“过程质量”。它强调以顾客满意为目的,以过程管理为导向,鼓励组织在建立、实施和改进质量管理体系及提高有效性时,采用过程方法,通过满足顾客要求,增强顾客满意度。它还把94版的20个要素分别归类于管理职责、资源管理、产品实现及测量、分析和改进四大类,构成一种过程方法模式的结构,实现了以过程的连续性替代了20个要素的不连续,符合PDCA循环规则,且通过持续改进的环节使质量管理体系的水平达到螺旋式上升的效应,这使得任何采用标准的组织都能方便地理顺其质量管理体系,而无须花很大气力去识别质量活动与要素的对应关系。

ISO9000-3是软件企业实施ISO9001的指南,它从软件的角度对ISO90001的容进行具体解释。ISO9001标准规定了20个质量体系要素,而ISO9000-3则对每一个要素进行逐一说明。ISO9000-3叙述了需方和供应方应如何进行有组织的质量保证活动,才能得到较为满意的软件:规定了双方签订开发合同到设计、实现以至维护整个软件生存期中应当实施的质量保证活动,但并没有规定具体的质量管理和质量检验方法和步骤。为使软件产品达到质量要求,ISO9000-3要求软件开发机构建立质量保证体系。首先要求明确供需双方的职责,针对所有可能影响软件质量的各个因素都要采取有力措施,做出如何加强管理和控制的决定。对与质量有关的人员规定其职责和职权,使之责任落实到人,产品质量真正得到控制。

2.3.2 SPICE

20世纪90年代初,ISO/IEC第一联合技术委员会注意到软件过程改进和评估的重要性以及由于缺乏统一的国际标准给软件产业造成的困境,于1993年设立第十工作组,发起了制定ISO/IEC15504系列标准的前期工作。项目名称是“软件过程改进和能力测定”,简称SPICE。项目旨在协调制定一系列软件过程标准。1998年出版了ISO/IECTR15504《信息技术软件过程评估》,它规定了软件过程评估的框架,供从事软件策划、检验、控制以及软件改进软件的获得、提供、开发、运行、进化及支持的组织所使用。

SPICE面向的评价对象也是软件企业,其目标是通过对企业的软件过程的评价达到两个目的:其一,确定被评价企业的软件过程能力;其二,对被评价的软件过程加以改进。

为了实现上述目的,人们要求该标准提供国际公用的过程评估模型,使大家能够通过过程评估进行过程改进和能力评定有共同的理解,并且便于使用和管理:使基于互有差异但相容的具体过程评估模型和方法得到的评估结果在某种程

度上可以比较。

ISO/IEC TR 15504标准包含9个组成部分,包括:概念和介绍性指南、过程和过程能力的参考模型、实施评估、实施和指标指南、过程评估模型、评估员资格指南、用于过程改进指南、词汇

第三章软件过程改进模型分析

实施软件过程改进,第一步是要选择一个合适的过程改进模型。目前,较多采用的软件过程改进模型有CMM、ISO9000-3、ISO/IEC15504、SPICE以及CMMI 等。本次我们选定CMMI作为本次工作的指导模型,本章将简要介绍CMMI以及CMMI所涉及的度量分析。

3.1CMMI模型概述

3.1.1CMMI的发展概况

在20世纪70到80年代,软件工程的研究重点是需求分析、设计、编程、测试、维护等领域的方法技术和工具,我们称之为经典软件工程。从20世纪90年代至今,人们逐渐意识到,由于软件组织管理软件过程的能力比较弱,常常导致项目处于混乱状态,使得新技术、新工具的优势难以体现,经典的软件工程已明显不够用。因此,软件过程改进成为软件工程学科的一个主要研究方向。软件过程技术为开发人员提供一个标准的无歧义的软件开发规,使得软件开发生产率得以提高。

CMMI模型是CMM模型的替代模型,1998年美国卡基-梅陇大学软件工程研究所(SEI)启动的CMMI计划,目的在于用一个统一的框架协调和集成SEI已经存在的各种模型。CMMI模型目前已经成为业界主要的过程管理模型。CMMI被看作是把各种CMM集成为一个系列的模型中,以更加系统和一致的框架来指导组织改善软件过程,提高产品和服务的开发、获取和维护能力,同时为企业评审自己的过程提供了可参照的行业基准。2000年CMM演化成CMMI,CMM2.0成为CMMI1.0的主要组成部分。

3.1.2 CMMI的基本容

CMMI是一套融合多学科的、可扩充的产品集合,其研制的初步动机是为了利用两个或者多个单一学科模型实现一个组织的集成化过程改进。从长期考虑,CMMI产品开发群组建立了一个自动的、可扩充的框架,以便于以后将其他一些学科的过程改进模型也逐步添加到CMMI产品集中。总的来说,以便于以后将其他一些学科的过程改进模型也逐步添加到CMMI产品集中。总的来说,CMMI集成达到了两个目的:一是提炼出了学科之间的一些公共过程域,另一方面就是减少了过程域的总数量。

①CMMI模型系列

现在业界使用的CMMI最新模型是2002年发布的1.1版本系列,它们是CMMI-SE/SW/IPPD/SS、CMMI=SE/SW/IPPD、CMMI-SE/SW、CMMI-SW.由于CMMI是可扩充的产品集合,因此今后可能还会有新的学科模型出现。这也正好说明了CMMI 模型生命力的强大。

CMMI-SW是软件工程能力模型集成,该模型中对于软件开发过程中需求的建

立、项目计划的制定和实施,以及对软件的测试等过程都有详尽的描。CMMI-SE/SW,是系统工程和软件工程能力模型集成,该模型中对于四通八达工程和软件开发过程中需求的建立、项目计划的制定和实施,以及对软件的测试等过程都有详尽的描述。CMMI-SE/SW/IPPD是系统工程,软件工程,集成化产品和过程开发能力模型的集成,该模型为在项目开发中需要使用交叉学科群组,需要解决对项目群组的使用、计划和组织,需要解决学科或组之间的沟通以及与集成化产品和过程开发能力模型相关的集成,该模型为在项目开发中需要使用交叉学科群组,需要解决对项目群组的使用、计划和组织,需要解决学科或组之间的沟通以及与集成化产品和过程开发相关的一些问题提供了解决方案模型。CMMI-SE/SW/IPPD/SS是系统工程,软件工程,集成化产品和过程开发,供应商管理能力模型集成,该模型中对于供应商的选择和监督,集成化供应商管理以及供应商定量管理等方面给出了详尽描述。

在上述4个CMMI模型中,它们之间是有关系的。CMMI-SE/SW是CMMI-SW

的扩充,CMMI-SE/SW/IPPD的扩充。

②CMMI模型的过程域

CMMI模型中,最基本的概念是“过程域”。与以前的一些过程改进模型一样,CMMI模型也只是选择对过程改进最重要的一些题目,并将其编组到“域”中。

在CMMI中,CMMI-SW共有22个过程域,CMMI-SE/SW共有22个过程域,CMMI-SE/SW /IPPD共有24个过程域,CMMI-SE/SW/SS共有25个过程域。

CMMI-SW和CMMI-SE/SW的过程域数量和名称均相同,仅在某些过程域中所提供信息材料有所不同。CMMI-SE/SW/IPPD比CMMI-SE/SW增加了2个过程域,并扩充了CMMI-SE/SW的一个过程域,所以CMMI-SE/SW/IPPD共有24个过程域。CMMI-SE/SW/IPPD/SS比CMMI-SE/SW/IPPD增加了一个过程域,所以

CMMI-SE/SW/IPPD/SS共有25个过程域。

3.2 CMMI的表示方法

CMMI是以过程域PA为纲,以特定目标SG、特定实践SP、共性目标GG、共性实践GP为目,分阶段式模型和连续式模型两种方式来定义的。在CMMI模型中,软件能力成熟度模型(SW-CMM)是“阶段式”模型,系统工程能力模型(SE-CMM)是连续式模型,而集成化产品开发(IPD-CMM)是“混合”模型,组合了连续式表示和阶段式表示的特点。

3.2.1CMMI的阶段式表示

1、模型部件结构

在阶段式表示中,过程域的组织方式是成熟度等级,其中每个过程域包含共性目标和特定目标,以及共性实践和特定实践。成熟度等级提供了组织围改进过程的阶段性实现“路标”,总共包含5个成熟度等级,分别是初始级、已管理级、已定义级、定量管理和优化级。图3-1描述了CMMI阶段式模型的部结构。

2、成熟度等级

本表示法集中于组织可以用于改进过程的最佳实践。在开始使用CMMI模型来改进过程之前,你必须首先把自己的过程映射到相应的CMMI过程域。通过跟踪与CMMI模型的对应关系,这种映射使得你可以控制组织的过程改进。但是,不要求每个CMMI过程域都逐一映射到组织过程。

成熟度等级提供了在特定学科或者学科集合中预测组织未来性能的手段,是使组织成为成熟组织定义良好的改进路径。阶段式成熟的每个等级都是相互依赖的,上层包含下层的目标和实践。每个等级是连续的,不存在隔阂,进行连续过程改进的组织不能跨级进行,也就是说,不能不经过成熟度等级2直接跳到成熟度等级3,这样就给组织进行过程化改进提供了“路标”。图3-2是阶段式成熟度等级的结构图。

3、成熟度等级和过程域

下表3-1是每个成熟度等级所包含的过程域。

熟读等级包含固定数量和名称的过程域,而过程域只属于特定成熟度等级,而同一个过程域不能在多个成熟度等级中重复出现。

3.2.2CMMI的连续式表示

1、模型部件结构

连续式表示使用6个能力等级、能力剖面、目标等级和等价等级作为模型部件的组织原则。连续式表示根据亲和关系对过程域进行分组,并指定每个过程域中过程改进的能力等级。能力剖面确定过程的路径,说明每个过程域的改进变化。等价等级可以把过程域的能力等级与阶段式表示的成熟度联系起来。图2.3描述了CMMI连续式模型的部结构。

由图可以了解到,特定目标组织特定实践,共性目标组织共性实践。每个特定实践和共性实践对应一个能力等级。特定目标和特定目标实践应用于单个过程域。

2、能力等级

能力等级有6个,编号从0到5,分别是完成级、已执行级、已管理级、已定义级、定量管理级和优化级。能力等级由能够改进组织过程的过程域的相关特定实践和共性实践组成。能力等级用适用于一个过程域的特定目标和共性目标的实现程度来度量。图3-4是CMMI连续式表示的能力等级(CL)的顺序图。

3、过程域能力剖面

在连续式表示中,能力等级剖面是过程域及其对于能力等级的列表。该剖

面是组织根据过程与跟踪其能力等级的方式。当与能力等级结合,且该剖面表示每个过程域的组织成就时,过程域能力剖面是成绩剖面。同样,当该剖面代表组织的过程改进目标时,过程域能力剖面是目标剖面。当目标与剖面比较时,成绩剖面使你不仅可以跟踪组织的过程改进进度,而且可以验证组织的管理成绩。

过程能力剖面可以表示成两维的点集,其中两维分别是过程维和能力维,如图3-5所示。

其中过程维描述了组织实施了哪些过程域。能力维描述了实施某过程的程度。(称作能力等级)。

第四章总结

全世界软件需求的飞速发展使得软件开发活动急剧增长。为了在日益激烈的竞争中处于有利位置,软件组织都在努力提高软件产品的质量和开发效率。提高质量和效率最行之有效的方法是不断改进组织的过程能力。于是,软件过程改进相应地成为人们关注的焦点。

本文从了解国外研究动态出发,查阅了大量相关方面的文献资料,结合现有研究成果,并在充分考虑了国软件企业的实际情况的基础上,提出了一种基于CMMI的软件过程改进实施模型。该实施模型由前期准备阶段和过程改进循环两

部分组成。在前期准备阶段,强调高层管理者的支持、强调建立支持软件过程改进的组织机构和技术架构、强调教育和培训以及思想观念的转变。在过程改进循环中强调以当前软件企业的实际情况为基础进行过程改进,强调循序渐进、小步快进、持续改进,强调部评估的作用,强调先试点后推广。

CMMI是目前国际上最流行、最实用的软件过程改进标准,它的目的是帮助

软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发高质量的软件。本文通过介绍CMMI的基本容以及CMMI的表示方法以及CMMI过程的实践分析,作者认为中国的软件企业实施基于CMMI的过程改进能够有效地提高软件过程能力,改善软件质量水平。

参考文献

[1]邢敏.中小软件企业基于CMMI的软件过程改进研究[D].西北工业大学,2007.

[2]朱卫平.基于CMMI的国中小型软件企业软件过程改进研究[D].中南大学,2006.

[3]罗军.基于CMMI软件过程改进度量模型研究与应用[D].工业大学,2014.

[4]黄晓波.基于CMMI的软件过程改进的研究[D].暨南大学,2007.

[5]王云鹏.基于CMMI软件过程改进的过程度量模型研究[D].海事大学,2008.

[6]云凌.基于敏捷与CMMI的安全关键软件过程管理应用研究[D].电子科技大学,2013.

[7]周伟良.软件开发过程质量与产品质量度量方法研究[D].工业大学,2012.

[8]湘静.基于CMMI的过程改进实践与分析[D].理工大学,2005.

[9]秀娟.基于CMMI的软件过程改进实施模型研究[D].大学,2006.

[10]郭英君.基于CMMI的软件过程质量度量的研究[D].大学,2009.

[11]健.基于CMMI的软件过程改进及风险管理研究[D].大学,2009.

[12]梁君霞.基于CMM的软件过程改进研究与配置管理实施[D].大学,2004.

[13]周金陵,鹏.基于CMMI的软件过程改进研究[J].计算机工程与设计,2003,11:60-62.

[14]黄旭阳.基于CMMI的嵌入式软件过程改进模型的研究与应用[D].大学,2011.

[15]方媛.基于CMMI的软件过程改进研究[J].计算机光盘软件与应用,2014,09:59-60.

[16]纯军.我国中小软件企业基于CMM/CMMI的软件过程管理研究[D].暨南大学,2005.

[17]吕松涛.基于CMM的软件项目管理模型研究[D].工程大学,2009.

[18]邓普德.基于CMMI的SF公司软件开发过程管理改进研究[D].电子科技大学,2008.

[19]王云鹏.基于CMMI软件过程改进的过程度量模型研究[D].海事大学,2008.

[20]晓龙.基于CMMI的软件敏捷开发研究[D].理工大学,2013.

[21]罗军.基于CMMI软件过程改进度量模型研究与应用[D].工业大学,2014.

[22]于海.基于CMMI的软件度量过程的研究与应用[D].大学,2006.

[23]邢敏.中小软件企业基于CMMI的软件过程改进研究[D].西北工业大学,2007.

[24]王常锐.基于PSM的CMMI软件过程度量环境的研究及工具实现[D].工业大学,2007.

[25]万邦睿.基于CMMI的软件测试过程度量研究[D].西南大学,2007.

[26]朱卫平.基于CMMI的国中小型软件企业软件过程改进研究[D].中南大学,2006.

[28]吴洪丽.支持软件过程改进的软件过程度量研究[D].大学,2004.

[29]彬.基于CMMI软件过程改进的度量及支持环境研究[D].工业大学,2005.

[30]甘晓龙.基于CMMI的中小软件企业软件过程改进研究[D].西南交通大学,2006.

[31]斌.CMMI软件过程的低成本化研究与实践[D].电子科技大学,2006.

[32]秀娟.基于CMMI的软件过程改进实施模型研究[D].大学,2006.

[33]周伟良.软件开发过程质量与产品质量度量方法研究[D].工业大学,2012.

[34]王海波.基于度量的软件过程改进的研究[D].大学,2008.

[35]何小丽.面向中小企业的CMMI研究及其实施[D].电子科技大学,2008.

[36]健.基于CMMI的软件过程改进及风险管理研究[D].大学,2009.

[37]周金陵,鹏.基于CMMI的软件过程改进研究[J].计算机工程与设计,2003,11:60-62.

软件项目总结报告

软件项目总结报告范文 1引言 1.1编写目的 XXX公司业务管理系统的开发已经基本完成。写此项目开发总结报告,以方便我们在以后的项目开发中来更好的实施项目的订制开发; 让我在今后的项目开发中有更多的有据的资料来规范我们的开发过程和提高我们的开发效率,从而创造更多公司效益。 1.2背景 项目名称:XXX业务管理系统 软件名称:XXX业务系统 客户:XXX 用户:XXX员工 1.3参考资料 项目开发文档: 1.软件开发数据模型:PDM_OperationSystem20070831.pdm 2.数据库开发文档: XXX业务管理系统数据库设计说明书2.0.doc 3.软件业务流程参考:XXX业务管理系统流程说明.doc 4.软件使用手册参考:XXX业务管理系统功能说明3.0.doc 5.软件业务流程参考:XXX业务管理系统流程说明.doc 6.软件中使用到的第三方控件:ComponentArt Web.UI 2006.1252 for https://www.360docs.net/doc/599331397.html,2.0.rar 7.软件中使用的安全Ikey驱动:Ikey Driver.rar 以上参考资料是截止2007-08-31是最新的资料文档。如有修改,即使修改此处的参考文档名称。 2开发工作评价 2.1对生产效率的评价 1.系统开发已历时快1年的时间了 2.开发的反复性比较多。 3.对客户的需求理解不是很透彻。

综合以上,此项目的开发效率不是很高,相反有相当一定时间的浪费。 2.2对产品功能的评价 经过我们公司各位同事的共同努力协作,XXX业务管理系统已经很好的完成了客户的业务流需求。经过对客户使用过程的观察,此项目开发的还是比较成功,但是还是存在着一些问题,造成这些问题的原因是多方面的。如:前期系统数据库的设计缺陷和部分代码的构建缺陷、客户需求的理解上也存在一定问题,这就需要我们用一定的时间来维护客户使用过程中提出的新问题和存在的debug。总的来说,此系统的功能开发还是一个比较成功的案例。 2.3对技术方法的总结 在此项目中使用到技术和工具: 1.使用代码生成器:使用代码生成器 [动软.Net代码自动生成器],此工具在很大程度上提高了编码效率,从而加快了项目的开发进程。在以后的项目中,我们要尽量的来使用一些类似的工具来在最短的时间内完成工作。在今后的项目开发中,我们最好是能开发出适合自己的代码生成工具,更大限度的节省开发周期和开发费用。 2.使用数据库建模工具;PowerDesigner 工具来建立系统数据库模型,以方便程序员很好的理解业务流和掌握系统架构者的架构思想,更好的满足客户的功能需求。在今后的项目开发中,我们要更好的来完成系统的前期数据库模型的建立,最大的来优化系统功能。 3.使用第三方控件:此系统中使用了ComponentArt Web.UI 第三方控件。此控件在很大程度上满足了客户对软件界面的需求,从而也给软件的操作带来了方便。本项目中只使用了ComponentArt Web.UI一种第三方控件,在今后的项目开发过程中,要继续使用第三方的控件。这样以来,无论是针对软件界面的美观性、友好性来说、易操作性而言,还是针对系统开发效率而言,这都是很好途径。但需要意的是:在是使用第三方控件时,要谨慎的选择一些网络中的比较常见的第三方控件。 4.使用自定义控件:此系统中使用了自定义控件(GhdGridView),此自定义控件可以很好的统一系统中的所有信息显示表格样式。如客户对数据显示样式有什么新的意见,我就不需要修改每一个页面的表格样式,我们只需要修改GhdGridView控件的样式,系统中的所有继承自GhdGridView的表格样式都可以改变。 5.系统开发框架:此系统的框架使用的是简单三层结构,此框架在开发一些中小软件是比较实用的。但是我们要是可以开发出自己的框架,把一些通用的功能开发到框架中。这样以来,在以后的系统开发中,针对系统中一些通用的功能就不需要再开发,从而也可以很好的提高我们的开发效率;减少很多维护费用。使我们的技术不断的更加成熟。 6.系统安全加密:此系统中针对客户提出的系统安全问题,我们采用了Ikey加密硬件钥匙来验证客户端登陆客户的合法性,此Ikey钥匙可以绑定到一个系统使用用户,也可以让多个用户来使用一个加密钥匙来验证登陆系统的合法性。这样以来,即使用户的密码不慎丢失,或者被不法人员取得(不法人员他也是无法登陆到我们的系统中来),这样就最大的提高了我们系统的安全性。Ikey加密钥匙是很好的加密B/S架构软件的硬件工具,在以后的软件安全方面可以借鉴。

软件过程与管理

软件工程是①将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护,即工 程化应用到软件上;②对①中所述方法的研究。 软件工程以关注软件质量为目标,包括过程、方法和工具三个要素。 过程:支持软件生命周期的所有活动。 方法:为软件开发过程提供“如何做”的技术。 工具:为软件开发方法提供自动或半自动的软件支撑环境。 软件产品目标的三要素: 时间成本 软件工程:用工程化的思想来管理软件开发 软件过程管理是软件工程的方法之一 软件过程管理的思想:产品的质量取决于过程的质量,采用规范化的软件开发过程。 软件过程是用于软件开发及维护的一系列活动、方法及实践。 管理过程:分项目管理、质量管理、风险管理、子合同管理 工程过程是软件系统、产品的定义、设计、实现以及维护的过程。

开发过程:定义并开发软件产品的活动过程,包括需求分析、软件设计和编程等。 运行过程:在规定的环境中为其用户提供运行计算机系统服务的活动过程。 维护过程:提供维护软件产品服务的活动过程,也就是通过软件的修改、变更,使软件系统保持合适的运行状态,这一过程包括软件产品的移植和退役。 支持过程:文档编制、配置管理、质量保证、验证、确认、联合评审、审核、问题解决 管理过程是在整个软件生命周期中为工程过程、支持过程和客户-供应商过程的实践活动提供指导、跟踪和监控的过程。 项目管理过程是计划、跟踪和协调项目执行及生产所需资源的管理过程。项目管理过程的活动,包括软件基本过程的范围确定、策划、执行和控制、评审和评价等。 主要关注:时间和成本 质量管理过程是对项目产品和服务的质量加以管理,从而获得最大的客户满意度。此过程包括在项目以及组织层次上建立对产品和过程质量管理的关注。 主要关注:质量 风险管理过程,在整个项目的生命周期中对风险不断的识别、诊断和分析,回避风险、降低风险或消除风险,并在项目以及组织层次上建立有效的风险管理机制。 子合同商管理过程,选择合格的子合同商并对其进行管理的过程。 组织过程: 业务规划过程是为组织与项目成员提供对愿景的描述以及企业文化的介绍,从而使项目成员能更有效地工作。 定义过程是建立一个可重复使用的过程定义库,从而对其它过程等提供指导、约束和支持。 改进过程是为了满足业务变化的需要,提高过程的效率与有效性,而对软件过程进行持续的评估、度量、控制和改善的过程。 人力资源和培训过程,为项目或其它组织过程提供培训合格的人员所需的活动。 基础设施过程是建立生存周期过程基础结构、为其他过程建立和维护所需基础设施的过程。 客户-供应商过程是内部直接影响到客户、外部直接影响开发、向客户交付软件以及软件正确操作与使用的过程,包括软件获得、客户需求管理、提供软件、操作软件以及提供客户服务等5个子过程。 软件过程管理:借鉴传统行业的管理方法对软件开发中的过程进行管理。 PDCA循环(戴明环) 过程优化和改进的过程

软件项目管理经验总结

软件项目管理经验总结 管理分为实行计划、组织、指挥、协调、控制。优秀的管理者是可以通过努力达到的。下面是X整理个人管理经验 总结的范文,欢迎阅读! 个人管理经验总结篇一 各位领导: 今天我就自己在广利工作2个月以来的心得和体会来跟大家进行探讨和研究,在我这2个月的工作中,得到了站内各级领导的大力支持,在此深表感谢!也从公司各位领导身 上学到了很多经验和做法,比如王秀涛站长、张盛聪副站长、冯汉彪经理等,因为我觉得这些领导在各自的岗位上都有一套独特的管理方法和管理理验,而且是比较成功的,我们中国有句古话叫做“有容乃大”你们的方法与经验也是我将后工作中不断学习与总结的借鉴,“他山之石,可以攻玉”。作为广利公司管理层中的一员,我将我的管理思路和方向向各位领导作简明扼要的阐述,不周之处,望各位领导见谅指 '[正O 一、树立正确的领导管理心态,严格要求。 作为一名领导者,对每一个员工都应该做到公平、公正、客观。能够听取下属员工不同的意见,工作中的分歧不能掺杂个人感情。对下属员工的严格要求,在我看来,并不是对

他们苛刻,而是在真正的帮助他们,逼迫他们进步,能适应社会残酷的竞争,我在给机修班开会时说过:每一个行业 都逃不过市场经济发展的潜规则,高速发展期(目前混凝土行业就是这个阶段),市场饱和期、优胜劣汰期。在不久的将来,混凝土行业就会进入市场饱和期和优胜劣汰期,那时就会有部分企业被市场淘汰,行业从业人员就会超过市场需求,岗位竞争会越来越激烈,如果没有过硬的工作作风和技术,就会被市场所淘汰。而我们都是男人,男人最基本的要求是应该有种家庭责任感,要有能力养活妻子,抚养孩子,照顾父母,这些能力需要我们有较强的社会竞争力,社会竞争力要靠我们积极的心态,努力工作,不断的学习,不断的进步,跟上社会发展的步伐。我们也更应该抓住现在行业的高速发展期这个机遇,通过不断的努力进步把自己提升到一个更高的层次,我不希望你们在我手下干了三年或者五年后还是一个机修,希望你们都能有独挡一面的能力,如果你们现在都不能严格要求自己,自己范围的事都做不好,怎么能进步,又会有哪一家企业、有哪一个老板会放心让你们去带一个团队。 二、营造良好的团队工作气氛。 在我的工作中,我积极主张这样一个理念:积极的人象太阳,照到哪里哪里亮;消极的人象月亮,初一十五不一样。在团队管理中,我会通过各种途径树立一个积极的榜样,让 每个员工都有一把衡量自己的标尺,都有一个努力的方向。 在这次的员工评级制度中,我极力主张过往不究,不追究员工以往

软件项目变更管理流程

变更管理流程 1概述 .......................................................................................... 错误!未定义书签。2变更流程 .. (2) 2.1摘要 (2) 2.2提交变更申请 (4) 2.3审核变更申请 (4) 2.4识别变更可行性 (4) 2.5批准变更申请 (4) 2.6实施变更申请 (5) 3变更任务 (5) 3.1变更申请人 (5) 3.2变更经理 (5) 3.3变更可研小组 (5) 3.4变更审批小组 (5) 3.5变更实施小组 (6) 4变更登记 (6) 5变更模板 (6)

1 概述 描述变更管理的目的。就项目中变更管理的总体流程提供一份概述,如: 变更管理流程是成功交付项目的基础。变更管理流程确保对在项目环境中的每个变更在实施以前都得以恰当的定义、评估和审批。 对项目的变更管理是通过对以下五个关键步骤的实施引入的。,: ?提交和接收变更申请 ?审核和记录变更申请 ?确定变更申请的可行性 ?批准变更申请 ?实施和结束变更申请 2 变更流程 对将要执行的流程和程序做一个图表概述,以启动、实施项目中的变更并审核其效果。例如:Provide a diagrammatic representation of the processes and procedures to be undertaken in order to initiate, implement and review the effects of changes within the project. An example follows: 2.1 概要 下图对将要执行的变更流程和程序做了一个概述,以有效地管理与项目相关的变更。同时也明确的变更管理中的职责分工。

软件项目工作总结

软件项目工作总结 自2月份开始,我一直在跟进xx银行项目的测试工作,至此为止已近6个月时间,从公司内部系统测试、验收测试,再到uat测试,以及投产前的系统压力测试等等。从开始到项目即将结束,一步步走过来。本次项目中,我作为测试环节的主力人员之一,仅对此项目中测试工作进行总结。 一、项目测试进度控制。 项目的测试进度主要是按照项目计划进行的,完全按照项目组计划要求完成测试任务、提交测试类相关文档,包括测试案例的完善、制定测试计划、执行测试、缺陷跟踪以及bug回归测试等。协调项目的内部测试工作,本此项目中测试小组一共组织了四轮次系统全面测试工作,认真配合项目工作,共同保证项目质量。项目测试的问题跟踪及处理采用每日进行修改问题回归测试工作,每日同步更新问题跟踪单的模式,按照规划时间完成系统更新测试。 二、项目组内部成员关系处理。 在项目工作的这几个月里大家相处融洽,项目组内部共同探讨解决问题的方法,向各模块负责人学习模块功能处理方式,向业务人员了解系统中涉及的业务知识点,两者结合起来进行模块功能测试。鉴于之前辖内对公交易系统和中行对公项目的经验,也向项目组提出了一些完善性意见。

三、协调用户测试方面。 用户验收测试是项目测试工作的重要组成部分之一,是项目验收阶段的最终把关阶段,业务人员结合日常业务处理情况对系统进行的尝试性使用过程。本次项目客户测试方面也是我个人觉得不够安全感一个主要方面,客户测试介入力度太小,尽管我们已经很多次电话催促业务人员测试,每次联系相关业务人员进行测试,他们来到项目组开发现场测试,也仅仅一两个小时时间,简单的进行验证操作即可。xx银行利用两批系统培训的时间安排了两次分行集中测试,也算给项目进行了一次全面的测试,从中也暴露出不少系统存在的问题,目前项目组均已解决。 四、测试成效方面。 中信系统测试中,共记录问题及客户新增需求825个,其中bug数量512个、系统完善类问题225个,新增需求类问题88个。组织了四轮次内部系统全面测试工作,兼顾日常系统更新测试工作,最大限度的进行了内部质量把关。配合外包公司一同进行系统压力测试及稳定性测试,测试结果符合客户要求。现中信系统临近投产实施工作,测试组还将继续配合配合项目投产工作及投产后的补丁更新测试工作。 五、个人得失方面。 作为此次项目测试的负责人,对于日常的测试流程、测试任务分配、测试执行、缺陷跟踪、协调内部测试及协调客户测试方面能力均得到了进一步提高,理清了项目整个过程中测试小组的

最新软件工程与项目管理 作业五资料

软件工程与项目管理作业五 1.解释以下概念并通过一个例子加以说明: 对象;类;继承;多态性 对象是客观世界中事物的抽象表示;是其属性(状态、数据)和相关操作(行为、方法或服务)的封装体;对象之间靠消息传递相互作用。例如汽车、一个圆、等类是对具有相同属性和相同操作的一组相似对象的抽象描述。例如:学生类的属性:学号、姓名、专业、班级、电话、…… 继承是子类自动地共享基类(已有类)中定义的数据和操作的机制。例如:汽车、船都是交通工具类的子类,它们都可以继承交通工具类的属性和操作。 多态性是在一个类层次中,不同对象对相同消息做出不同的响应。例如:成员函数的重载, 2.为什么面向对象方法要从多个侧面(对象模型、动态模型、功能模型)建立系统模型? 这三种模型都涉及数据、控制、操作等共同的概念,只不过每种模型描述的侧重点 不同。这3中模型从三个不同但又密切相关的角度模拟目标系统,它们各自从不同侧面反映了系统的实质性内容:它使用的数据结构(对象模型),执行操作(动态模型),并且完成数据值的变化(功能模型)。 对任何大型系统来说,这3中模型都是必不可少的。在不同的应用问题中,相对的 重要程度也有所不同。但是在任何情况下,对象模型始终是最重要、最基本、最核心的。 三种模型是有区别的,各自的侧重点也不同 (1)功能模型指明了系统应该“做什么”; (2)动态模型明确规定了什么时候(即何种状态下接受什么事件的触发)做; (3)对象模型则定义了做事情的实体。是最基本最核心的模型。 3.建立符合下列陈述的对象模型 某图书馆有许多名职员为之工作,职员又进一步划分为馆长和管理员两类;馆长可对图书借阅工作进行管理,每名管理员可管理多本图书,每本图书可由多名管理员管理;图书拥有许多读者,借书证号惟一地确定一个读者;读者又可分为教师和学生两类,每名教师或学生可以借阅数本图书,每一种图书可供多名教师或学生借阅。

软件项目总结报告.doc

软件项目总结报告4 XXXXXXXXXXXXXXXXXXXXXXX系统 项目总结报告 精品文档,你值得期待 XXXXXXXXX 2017/7/27 1项目概要信息 XXXXXXXXXXXXXXXXXXXXXXX系统的技术团队由11人组成,其中项目经理1人,需求分析师1人,UI设计师1人,开发人员6人,测试人员2人。 本项目的前期工作从2017年5月19日开始,历时16个工作日,于6月9日完成需求分析等准备工作。开发阶段从2017年6月12日开始,历时22个工作日,于7月10日完成全部开发工作,进入外部业务人员验证测试阶段,目前,可使用XXXXXXXXXXXXXXXXXXXXXXX的二级域名进行访问,详细信息如下:用户资助申报地址:XXXXXXXXXXXXXXXXXXXXXXX 用户审核管理地址:XXXXXXXXXXXXXXXXXXXXXXX 本项目的开发过程有5个关键的里程碑,具体时间及内容如下: 2017年06月21日:项目初次全新功能开发完成; 2017年06月29日:项目初次内部功能测试、安全测试、性能测试完成;

2017年07月04日:需求变更,准备进行二次开发; 2017年07月10日:项目二次开发全部完成; 2017年07月11日:项目二次内部测试完成,等待外部业务人员验证测试。 2项目经验 因为是初次担任项目经理的角色,我最初找不到切入点,领导和同事在整个的过程中给了我很多的指导和建议。实际的项目管理工作使我对自己已学的理论知识有了更深刻的体会。所谓理论指导实践,实践验证理论,回想整个项目开发过程,至少可以总结了以下几点经验: 2.1沟通讨论信息交换要及时 沟通讨论是贯穿整个项目生命周期的活动,团队成员间信息交换是否及时,更是项目成功的关键。虽然不同角色承担不同工作,但都是以达成项目目标为指导的,团 队成员只有始终保持沟通讨论,保证接收到最新的、一致的项目需求信息,才能使得开发工作顺利进行,避免出现信息交换不及时而导致的返工。 对于沟通,结合实际来说,如果需求分析师不能将变更的需求信息及时传递给UI设计人员,就会导致不符合用户需求的设计,更会使开发人员写出无用的代码,这必然导致重设计、重编码,甚至会延误整体项目进度。 对于讨论,尤其是像我这样缺少经验的项目经理,不论是制定计划,还是工作量识别,都必须向有经验的同事请教,接受正确的建议,才能得到合理的安排。 2.2项目范围功能边界要清晰

软件项目开发过程管理

软件项目开发过程管理 计算机软件尤其是数据库软件,成为了当代计算机应用的主流。因此软件开发人员就必须掌握正确的开发手段,了解软件开发的主要过程,这样心中对软件项目才有清醒的认识,才能达到事半功倍的效果。本文就软件开发过程中的一些方法,结合本人开发过的一些软件项目做一些详细论述。 1 开发前的准备工作 一般软件项目在开发前都有系统任务书,主要规定软件的开发目标、主要任务、功能、性能指标及研制人员和经费、进度等安排,作为系统设计开发和检验的基本依据。 系统任务书的基本框架如下: (1)引言 包括编写目的,背景,参考资料。 (2)系统的目标及任务 包括系统建设目标,系统的主要任务,系统性能指标,系统标准化要求。 (3)系统的结构及功能 包括系统应用组成及结构,系统主要功能。 (4)系统的规模及进度要求

包括系统规模,系统研制进度,人员计划。 但是系统任务书只是这个软件项目的一个基本要求,针对具体情况,软件开发人员和需求分析人员就要联合对软件项目的细节进行具体分析,必要时还要进行实地调研,然后共同商讨写出系统的需求分析,需求分析的编写目的在于: a. 说明系统在军事方面、技术方面、经济方面和社会条件方面实现的可行性和必要性; b. 分析原系统(工作环境)现状,描述待开发系统的详细需求,提供用户和开发人员之间沟通的基础,提供项目设计的基本信息。 需求分析报告的基本框架如下: (1)概述 包括编写目的,背景,参考资料,术语及缩写词。 (2)对现有系统的分析 (3)待开发系统的详细需求 包括功能需求,使用范围,业务流程,用户界面,输出要求,故障处理。 (4)使用环境 包括网络环境,硬件环境,软件环境,与其他系统的关系,安全与保密。 (5)可行性分析 包括技术可行性分析,经济可行性分析,人员可行性分析,影响待开发系统的主要因素。 (6)结论意见

软件项目管理总结

软件项目管理过程的简单总结 学院:计算机学院 班级:软件11 姓名:雷莉莎 做任何事情都需要管理,好的管理出好的效益,开发软件项目也不例外。随着信息系统工程、网络工程、软件工程的发展,项目管理和软件工程的交汇越来越多,从而使“软件项目管理”发展起来,一个项目的成功与否,关键一点就是,看项目管理是否得当。所以,项目管理是项目的核心部分,是项目的灵魂。 软件项目管理的概述 所谓项目,就是在特定条件下,具有特定目标的一次性任务,是在一定时间内,满足一系列特定目标的多项相关工作的总称.项目具有一次性、独特性、目标的确定性、组织的临时性和开放性以及成果的不可挽回性等基本属性。 而软件项目管理是为了使软件项目能够按照预定的成本,进度、质量顺利完成,而对人员,产品,过程和项目进行分析和管理的活动。根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析,设计,编码到测试,维护全过程)都能在管理者的控制之下,以预定成本按期,按质完成软件交付用户使用。 软件项目的管理过程详解 在软件项目开发管理过程中,不仅要努力实现项目的范围、时间、成本和质量等目标,还必须协调整个项目过程,以满足项目参与者及其他利益相关者的需要和期望。随着软件规模和所涉及的领域不断扩大,软件项目的管理越来越困难。纵观所有失败的软件项目,基本原因是不能管理其软件过程,在无纪律、混乱的项目状态下,组织不可能从较好的方法和工具中获益。严谨的软件过程控制与管理不仅可以在每个阶段回顾和纠正项目的偏差,识别软件项目的风险甚至果断中止项目,而且可以将人才流动所带来的不利影响减少到最小。要进行有效的过程控制,必须明确软件项目管理流程。 下图即为软件项目管理流程: 接下来详细介绍项目管理过程的步骤包括: 项目立项——启动——规划——执行和控制——收尾阶段 1.软件项目立项包含5个环节:发起、评估、申请、审核、立项。 立项流程图 2. 项目的启动就是确定项目的目标范围,它主要包括开发和被开发双方的合同(或是协议),软件要完成的主要功能以及这些功能的量化范围,项目开发的阶段周期等。 PMBOK中明确指明项目启动阶段主要的工作是制定项目章程和识别项目干

软件工程与项目管理考试题(学生)资料讲解

第一章练习题 一、单项选择题 1、软件是()。 A.处理对象和处理规则的描述 B.程序 C.程序、数据及文档 D.计算机系统 2、下列选项中()是软件开发中存在的不正确的观念、方法。 A.重编程、轻需求 B.重开发、轻维护 C.重技术、轻管理 D.以上三条都是 3、下列哪个阶段不属于软件生存周期的三大阶段()。 A.计划阶段 B.开发阶段 C.编码阶段 D.维护阶段 4、计算机系统就是()。 A.主机,显示器,硬盘,软驱,打印机等 B.CPU,存储器,控制器,I/O接口及设备 C.计算机硬件系统和软件系统 D.计算机及其应用系统 5、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( )。 A.软件工程 B.软件周期 C.软件危机 D.软件产生 6、以下属于软件危机现象的是()。 A.软件开发进度难以预测 B.软件产品难以维护 C.软件缺少适当的文档资料 D.以上三条都是 7、软件工程的出现主要是由于()。 A.程序设计方法学的影响 B.其它工程科学的影响 C.软件危机的出现 D.计算机的发展 8、以下哪一项不属于项目成功要考虑的因素()。 A.工作范围与成本 B.进度计划 C.客户满意度 D.全都属于 9、以下对软件工程的解释正确的是()。 A.软件工程是研究软件开发和软件管理的一门工程科学 B.软件工程是将系统化的、规范化的、可度量化的方法应用于软件开发、运行和维护的过程C.软件工程是把工程化的思想应用于软件开发 D.以上三条都正确 10、一个项目是否开发,从经济上来说是否可行,归根结底是取决于()。 A.成本估算 B.项目计划

C.工程管理 D.工程网络图 11、软件生存周期包括可行性分析、需求分析、系统设计、编码、()、维护等活动。 A.应用 B.检测 C.测试 D.以上答案都不正确 12、一个软件从开始计划到废弃为止,称为软件的()。 A.开发周期 B.生存周期 C.运行周期 D.维护周期 13、软件计划时期的主要任务是:分析用户要求、新系统的主要目标以及()。 A.开发软件 B.开发的可行性 C.设计软件 D.运行软件 二、判断题 1、软件就是计算机系统中的程序、数据及其文档()。 2、程序是指计算机为完成特定任务而执行的指令的有序集合()。 3、数据是指被程序处理的信息()。 4、软件工程与项目管理是为研究克服软件危机应运而生的()。 5、软件危机是20世纪60年代以前产生的()。 6、软件缺少适当的文档资料属于软件危机现象之一()。 7、软件工程是把工程化的思想应用于软件开发()。 8、软件工程是研究软件开发和软件管理的一门管理科学()。 9、一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力()。 10、软件工程学是理论研究,没有实际用途()。 11、项目管理过程就是制定计划然后按计划工作()。 12、软件生存周期包括需求分析、系统设计、程序设计、测试、维护,五个阶段()。 13、软件生存周期是指根据某一软件从被提出并着手开始实现,直到软件完成其使命被废弃为止的全过程()。 第二章练习题 一、单项选择题 1、以下哪个不属于问题定义的步骤()。 A.调查和调研 B.形成高层逻辑模型 C.沟通和交流 D.问题定义报告 2、以下哪个不属于问题定义的内容()。 A.问题的背景 B.开发的条件、环境要求 C.实现目标的方案 D.体系结构的设计 3、可行性分析是在系统开发的早期所做的一项重要的论证工作,它是该系统是否开发的决策依据,因此必须给出()的回答。 A.确定

软件项目管理实例分析

软件项目管理实例分析 软件项目管理实例分析 1引言 随着信息技术产业的迅速发展,软件越来越受到了人们的关注与重视,越来越多的人把目光投到了充满风险与利益的软件行业。 但据资料载,软件业的发展却存在如下的关键性问题:⑴ ①大的系统,一般常滞后于计划; ②只有10%勺软件能按时完成并交付使用; ③需求比较高的软件有25%£法完成。

仅英国,这些原因造成的损失约有20亿英镑之多。实际上,这些问题的出现在很大程度上足由于没有有效地进行软件项目的管理造成的。 如果把软件项目的实施简单的认为是把工作分发给每个人员,然后幻想他们将会取得一个预期的结果的话,许多本可能成功的项目也会走向失败!

但如果重视项目管理、有效的实施项目管理,即使更复杂的项目也可能成功。早在70年代,“阿波罗”登月计划就采纳并应用了有效的项目管理方法,结果取得了巨大的成功[2]。 软件项目管理是传统意义上项目管理的一个应用领域。美国著名杂志《Fortune》(即《财富》)预测,项目管理将是后工业时代的首选职业。这对软件业来说更是如此了⑷。 但目前,软件行业的项耳管理方法还欠规范且专业化程度不高。 本文将探讨如何有效运用传统项目管理的科学方法进行软件项目管理,并将给出一个作者亲历的实例。 2项目管理与软件项目管理 软件的项目管理在一定程度上借鉴了传统意义上项目管理科学,但又在一定程度上不同于后者。本部分将介绍这方面的理论。 2.1项目管理 2.1.1 项目 什么是项目?我们知道,社会的各种工作可分为两大类:一是重复性、持续性的工作,可称为运

作,譬如火车的往返运行,在运作中存在若大量的常规性劳动;二是独特性、一次性的工作,可称为项目,譬如高速铁路的研制和建设,每条高速铁路都会有自己独特的地理位置和技术创新,并日只需研制和建造一次,在项目中则存在较多的创新性劳动。由此可知,项目就是以一套独特而相互联系的任务为前提,有效的利用资源,为实现一个特定的目标所作的工作[3]。 由于项目的独特性和一次性特征,引伸出它的其他特点,如目标的确定性、过程的渐进性、成果的不可挽回性、组织的临时性和开放性等。 一个项目的成功实现通常受4个因素的制约:技术范围、成本、进度控制、客户满意度。对此的可视化说明见图1。人们也通常称其中的时间、费用和范围因素为项目三角形,如图2示。

软件项目管理学习心得体会

软件项目管理学习心得体会篇一:项目管理学习心得体会范文两则 项目管理学习心得体会范文两则 最近两周通过听胡百师老师的讲课和公司同事关于项目管理经验的交流会议,在项目管理上学到不少东西,感受最深的是项目管理就是要合理的利用资源,而人无疑是一切资源中最重要的一环。 我们做任何工作都不是孤立存在的,工作不论繁复,都可以看作是一个项目。而要完成一个项目就需要各式各样的人员整合到一起,扮演不同的角色。如何发挥这些人的特色,分配适合的角色,从而更快更好的完成各自的分工,就是项目最需要考虑到问题了。但要真正发挥每个人都特色却不是这么容易就能做到的。因此就需要我们不断的学习,培养自己的思考力。思考力提高了观察敏锐了,才能发掘出他人的特色,并善加利用。 发掘出每个人都特色并分配好各人在项目中所处的职位后,就需要采取有效的管理来监督把控每个环节,以确保项目能够按照计划执行。以往我们在工作中都接触过各式各样的表格,说起来各个环节似乎都有表格可以监控。可是由于这些表格都是分散开来,针对单独某一个环节的,结果就使得整体管理上缺乏统一性,实施起来难免会出现混乱的感觉。经常出现一个人只着眼自己负责的某一环节,却忽视了

整个项目的情况。一旦某一环节上出现了调整,其他人员却无法第一时间得到消息,无法及时作出调整。结果就使得整个项目的工作节奏都被打乱了。 因此就像项目管理经验交流时有人说到的:“表格需要做减法”,我们首先应该以项目为单位,将涉及到的所有环节和资源都整合到一起,这样大家就可以知道自己在这整个项目中所处的位置,了解在项目中于自己相关的前后环节的进展情况,这样执行起计划来就更有依据了。 通过这两次项目管理的经验交流,大家准备已一本书作为一个项目,进行项目管理,设计出适合我们用的项目管理表格。这是与各个部门都相关的工作。一旦做好了,将会大大减少进度管理上的时间成本。使得管理更简单化也更人性化。 希望这项工作能够尽快的展开,尽早制作出适用于我们公司的项目管理表来,相信所有人都会尽力配合的。 项目管理学习心得(2): 项目管理,正确理解应该是以项目为对象的系统管理方法,通过一个临时性的专门的柔性组织,对项目进行高效率的计划、指导和控制,以实现全过程的动态管理和项目目标的综合协调与优化。然而,初次接触“项目管理”这个名词时,我很片面的将其理解为是一个项目的项目管理者对项目所要涉及到的全部工作、资源等进行有效地管理。学了《现

软件项目管理试题与答案

16.2.1 填空题 1.在软项目管理中,控制包括,,和。 2.软件项目计划是由和共同经过阶段后制定的。 3.能协调软件开发,使得混乱减少到最小的方法是使用。 4.在软件的生产过程中,总是有大量各种信息要记录,因此,在产品的开发过程中起着重要的作用。 5.成本估算是在软件项目开发之前,估算项目开发所需的,和。6.软件工程管理不同于其他过程管理,它对保证高质量的产品更具有极为重要的意义。7.成本估算方法中,有自顶向下估算方法,自底向上估算方法和方法。 的制度突出了主程序员的领导,责任集中到少数人身上,有利于提高软件质量。 9.基线的作用是把各阶段的开发工作划分得更加明确,便于检查与确认阶段成果。因此,基线可以作为项目的一个。 10.在一个大系统的开发过程中,由于失误造成的后果要比程序错误造成的后果更为严重。 11.软件工程包含和两大部分内容。 12.在软件开发和维护过程中一个软件往往有许多版本,版本控制工具用来存储,更新,恢复和管理一个软件的。 13.参照以前完成的项目所耗费的总成本,来推算将要开发的软件的总成本,然后把它们按阶段,步骤和工作单元进行分配,这种方法称为方法。 14.软件工程管理的具体内容包括对开发人员,组织机构,用户,等方面的管理。15.差别估算的缺点是不容易明确“差别”的界限,但它的优点是可以提高。16.在一个软件项目的开发过程中要自始至终得到的密切合作与支持。 17.风险分析是实际上就是贯穿在软件工程中的一系列风险管理步骤,其中包括,,,和。 18.软件开发项目生存期详细实际阶段应包括的文档。 19.软件项目计划的第一项活动是确定() 20.行业标准是由行业机构学术团体或国防机构制定的适合某个行业的标准。IEEE指(),GIB指();DOD_STD指()。 21.工程网络图是一种()图,该图中用()表示事件,有向弧或箭头表示子任务的进行,箭头上的数字称为(),箭头下面的括号中的数字表示该任务的()。 22.软件配置管理。简称SCM,它用于整个软件工程过程。其主要目标是(),(),()和()。SCM是一组管理整个软件生存期各阶段中()的活动。 23.软件配置项(SCI)是软件工程中产生的(),它是配置管理的()。 24.国家标准由政府或国家级的机构制定或批准,适合于全国范围的标准。中华人民共和国国家集注监督局是中国的最高标准化机构,它所公布实施的标准简称为(),用()标识;NSI是指(),BS是指(),IN是指(),JS是指()。 25.软件项目计划包括()与()两个任务。 26.软件工程过程中某一阶段的变更,均要引起()的变更,这种变更必须严格加以控制和管理,保持(),并把精确,清晰的信息传递到软件工程过程的()。 27.变更控制包括建立()和建立()。 28.软件配置管理,简称()。软件配置项简称()。 29.根据软件工程标准制定的机构与适用范围,它分为(),(),(),()和()

软件项目研发管理流程图

流程图就是用一些规则的符号及连线来表示某个具体事务处理的进程。它能够用于描绘体系内各职工、单位之间事务关系、作业顺序和办理信息流向。事务流程图适用于各类行业,描绘的是完整的事务流程一般没有数据的概念。 无需绘图技巧 使用这个功能丰富的流程图软件,您就不必在如何才能创建视觉上很有吸引力的流程图问题很专业了。您只需输入您的数据,剩下就交给亿图就行了,亿图会自动为您排列所有形状,为获得专业设计应用专业设计主题等。这个软件让任何层次的用户都能用更短的时间创建更好的流程图。此外,亿图为您节省更多资金,免费为您进行科技支持和升级。 智能地创建视觉流程图

亿图也可以帮助您将文本和图表中的复杂信息翻译成为视觉图表。用这种方式用户就能够识别 瓶颈和低效现象,这些也是过程需要精简的地方。亿图提供智能连接线和高级的文本设计和矢量符号,通过显示浮动对话框告诉你该怎么做。 几分钟获得一个专业的流程图 亿图赋予您能力,简简单单,有效地使用特殊工具,免费的模板和精简的工作流示例就能够创 建出有专业水准的流程图,帮助您快速建立新的流程图、工作流程图、NS图、BPMN图、跨职能 流程图、数据流图和高光流程图等。所有这些图形的绘制仅需短短几分钟即可。 轻松创建交互流程图 插入超链接和插画功能同样包括在内。您可以将图表和基础数据连接起来展示更多地细节信息,这样能够增强效率、影响和交流。为了更加具体一些,你可以通过增加链接到网站、插入附件、添 加注释或者链接到亿图其他视图工具等方式把任何图表转换成信息关口。它们是交互图形,任何人 都可以轻松使用亿图轻松创建。 无缝地分享与合作

亿图流程图软件能够与其他程序无缝地合作。亿图与微软 Office 兼容,并且亿图的文件可以一键导出成 Word、Excel、PDF 和其他多种图形格式。您可以几秒钟将亿图文件导入到其他文件中。所以您的作品就可以和更多的人分享,获得更合作。 亿图图示软件(EdrawMax),作为一款国产软件,无论是功能还是操作上都丝毫不输国外的同类型软件。恰恰相反的是,亿图图示软件凭借模板丰富、操作简单、页面精美等特点,捕获众多使用者的芳心。亿图图示软件是一款专业的流程图绘制软件,不仅仅可以绘制工作流程图,还能够绘制跨职能流程图(泳道图)、业务流程图、数据流程图、事件流程图等。

[项目管理]项目管理的五大过程

(项目管理)项目管理的 五大过程

人堆里,搞不好你会把他当成民工。因为到他们所处的社会地位,已经不需要任何华丽的外表来衬托自己的身份,他们有的是底气。对P M来说,这是个非常危险的挑战。虽然说项目在初期有意向时会对对方的人事和关键人物有一定的了解,然而大项目里能说的上话的人太多了。上海人最瞧不起的就是土气,很多人谈项目的时候看到民工或很俗气的表现不免会皱皱眉头,往往在皱眉头的时候就失去了项目,也就是失去了市场和金钱。PM必须作到能与每一个层次的人交谈,尤其是看起来比自己层次要低的群体,哪怕是公司里扫地的阿姨。只有作到谦虚谨慎,不摆架子,尊重别人,才会得到别人的尊重,才有机会赢得项目。鼻子比眼睛高的人只会把自己的鼻子撞扁。 2.丰富的知识面 光尊重别人还不足以赢得项目,准确的说是赢得对方关键人物的信赖。PM一般用不着陪客户喝酒吃饭,那是销售们的事情,但是PM 和客户讨论问题可能是最多的。讨论问题的时候就是机会,如何投其所好,是一大关键。金钱与美女依然是常规的敲门砖,然而这种傻瓜也知道的办法人人都会去做。老板的关系也只是一个方面,如今的大老板,哪个没有关系?同等条件下PM凭什么去胜过别人一筹?我一个朋友(PM)打一个单子时,发现对方对什么都不太感兴趣,费了很大力气也找不到突破口。对方这个人非常顺利,金钱地位美女样样不缺。他花了好多天和对方交谈,以自己的博学逐渐取得了对方的信任。后来他隐约发现对方对数学和天文学的发展史有所涉猎,如获至

宝,回家花一个通宵的时间在网络上搜索相关资料。第二天他根本不谈项目的事情,只跟对方大谈特谈哥白尼,布鲁诺,伽利略这些人的生平,整整吹了一天。对方点头如捣蒜泥,态度和热情都来个一百八十度转弯,隔天他就拿到了单子。这是个经典的战例,谁能事先想到哥白尼会来帮助IT的人赚钱?这个PM靠的就是博学和由博学引申出的敏锐的感觉抓住了机会,让客户产生共鸣。客户感觉他层次也很高,而且和自己有共通之处,信任度大大增强,把项目交给他放心。如今这种例子在商务谈判中已经屡见不鲜了。对PM来说,并不要求在各个方面都很精通,那是不可能的事情,只要PM对一些流行的话题和天文地理历史各方面的知识有个大概的了解,在需要的时候能尽快的掌握,才有机会创造机遇和把握机遇。 3.强大的沟通能力 胸中有万千墨水却不知如何表达其实是比较少见的,但并非绝对没有。每个人的人生轨迹都有所不同,思维受环境的影响也各有差异。包括象我们目前这个班级里的一些未来的MSE们,一定有比较内向或者不太爱表达自己观点的人,这些人比较被动,往往很难承担起谈判的重任。从今天开始,这类人就必须重新学习如何说话,如何大声的争论。沟通,并不仅仅是大声说话,而是在表达自己观点的同时发现问题并综合整理加以解决。除此之外,沟通的能力与社会经验息息相关,与PM的见识联系紧密。在日常生活中,PM就要多留心,多思考,当别人想到某个层次的时候要争取比别人考虑的更深。当然,

软件项目工作流程管理

软件项目工作流程管理 软件项目管理是指在软件项目研发过程中,对软件项目进行高效率的计划、组织、指导和控制,将研发任务与公司有关部门和相关人员紧密关联起来,使部门和工作人员目标明确、业绩清晰。项目管理更强调项目负责人的作用和团队的协作精神,其组织形式灵活,更加关注人的因素,关注客户和服务客户,着重于提高软件项目研发的效率和质量,体现为一种工作流程管理。 一、项目启动阶段 项目启动阶段的任务是识别客户需求内容,对客户提出的需求内容进行可行性分析、评估和立项。 (1)项目识别。科技部门接到业务部门提出的业务需求后,对业务需求内容进行确认,对业务需求做可行性研究分析,通过与业务部门进行交流沟通、分析评估后,对需求的可实现内容和不能实现的内容达成一致意见,科技部门对于确认的需求内容纳人公司整体项目管理体系中管理,并配合与业务部门撰写出详细的项目需求说明书。 (2)项目立项。软件项目通过评审后就可以进行立项,编制需求开发任务书。软件公司接到项目任务后,首先由公司项目管理办公室按照公司IT项目管理流程,为新项目建立信息档案,编制项目代码,启动项目开发工作。

二、项目规划阶段 项目规划阶段的任务是为拟研发的软件项目制定一个详细的解决方案,为各种可交付成果准备工作计划。 1.项目范围规划 (1)项目背景描述。通过对项目实施背景的分析,了解业务需求提出的背景,便于更好地掌握需求可能涉及的利益相关者。 (2)项目目标描述。主要包括三方面的内容:一是成果目标,即要开发一个怎样的系统(如开发一个成本软件管理系统);二是工期目标,即项目预计完成的时间(例如:2007年4月1日一2007年6月30日,为期3个月);三是成本目标,即预算项目总投资金额(如项目成本30万元)。 (3)项目工作结构分解(WBS)。WBS的作用是把安排与定义项目范围的各组成部分,按可交付成果进行组合。项目经理根据团队成员职责分工,把复杂的工作逐步分解成要素工作,使得项目成员的工作具体明确、易操作和易控制。通常软件项目采用基于可交付的成果为第一层次,具体的工作任务为第二层次,每下降一个层次意味着对项目可交付成果有更详尽的描述。遵循以目标体系为主导、以项目系统说明为依据,自上而下,由粗到细,如图1所示。

软件项目管理小结篇

软件项目管理小结2篇 软件项目管理已经到了学期的最后,我们seed小组的软件项目也已完工,这一个学期真的是获益匪浅! 礼平老师曾经说我既可以走技术路线也可以走管理路线,一切都看我自己。真的很是佩服老师的看人眼光,很犀利。我知道,现在的我不是没有能力去做好,只是自己没有去做,一直在殿外徘徊,不肯付出努力向前迈进。从大一到现在,我的专业技术一直都是我的短板,理由么,很简单,就是因为自己懒,不肯花时间去做。从以前不知道自己想做什么,到现在明确目标,可以说,软件项目管理课程给了我很多灵感,让我从自己纷乱的思绪中看清楚了自己最想要的东西。一直自己很喜欢管理,我会花费很多时间在这上面,从大一到现在一直都是,一直没有改变过。在技术上,我总是给自己找借口,总是偷懒,但我现在明确了一点,没有技术,就没有管理!脱离技术的管理是不可能的,也是不现实的。在这个行业里,技术是一切的基本,想作工程师也好,想作管理者也好,技术都是起步的根基。而我这次所经历的项目更让我明确了这一点。在这个小项目里,虽然我们两个星期就开发完成了这个软件,并交付使用,但是问题还是很多的。在这么一个小项目里,由于需求、设计、代码、文档产生的问题,每一个看似容易,却都需要实实在在的经验在里面,都需要对业务的熟悉,有语言功底作根基。 在这个项目里,我负责软件配置管理工作,在文档的整理过程中,我仔细看了他们的需求分析,概要设计,数据库设计,模块设计等文档,也参与了风险分析文档的编写,承担了用户手册和项目成本估算的编写。在这个过程中,我明确了技术的实在意义,明确了技术对我的指导作用,同时也明确了自己的学习道路应该怎么走下去! 整个项目进行的过程中,我一直在努力从中学习,我旁听开发组的会议,为组长提供管理意见,为会议、文档制定标准,整个过程我收获了很多。 1、软件项目小组中的人员安排要职责明确,并有配套的管理记录,整理每个人的工作进度,随时更新,以方便开发人员、测试人员之间的沟通。 2、会议、文档、代码都要有相应的“纪律”,否则整个小组的开发效率会大打折扣。

相关文档
最新文档