本文认真分析了目前国内软件项目管理中出现的问题,以提高软件质量、降低成本、加强软件项目的可控性为目标,在深入研究和探讨CMM的基础上结合软件过程.给出了一种加强软件项目管理的实践模式。该实践模式定义了CMM中的6个关键过程域和3个工作组.并从项目的开发时间和质量方面做效率分析,强调了软件过程对软件项目管理的重要性。
论文关键词:软件项目;软件过程;CMM;KPA
1.引言
项目管理(PM,projectmanagement)是指利用现有的知识、方法和技术手段,有效地计划、调度、控制和跟踪项目的开始、执行、直止终止的过程,是项目顺利实现的有效手段。软件项目管理则是在项目管理的基础上,结合软件产品的实际,利用工程的概念和方法来开发与维护软件,对成本、风险、时间、质量、过程、配置等进行分析、管理、控制,最终目的是为了让软件项目的整个生命周期都在管理者的控制范围内,以预定成本按期、按质完成软件的开发并交付用户使用。目前,软件产品已广泛应用于各个领域,但是很多软件项目的成功率并不高.虽然有些公司根据软件工程理论建立了一些软件开发管理规范.但并没有从根本上提高软件项目管理问题,这就导致软件产品质量不稳定甚至是项目的失败,同时也损害了用户的利益。本文结合我国软件项目管理的特点并经实践应用.以提高软件质量、降低成本、加强软件项目的可控性为目标,通过对CMM的研究和改进,给出了一个基于CMM加强软件项目管理的实践模式,在这个模式中对目前CMM中的KPA做适当的裁减,定义了6个关键过程域和3个工作组。
2.软件项目管理中目前存在的问题
影响软件项目成功率的因素主要是软件质量问题,而在整个软件项目的实施过程中需求不明确、跟踪和监督不力、缺乏客观的软件评审和软件配置以及风险管理意识不足等都阻碍着软件质量的提高。
2.1需求不明确
需求管理是软件项目管理中非常关键的一个步骤.需求分析的完整与否可以降低软件质量、延长项目周期、加大成本。由于用户对计算机系统认识的不足,对于系统的需求往往比较模糊,遗漏甚至是错误的问题经常出现(包括管理流程、业务流程、数据或报表的分析处理等),但这些问题往往没有暴露给开发人员,而是随着项目的进展才逐渐明确。对于开发人员来说,需求的变更意味着软件产品的部分内容必须重新开发,而对于整个软件项目管理而言,势必要重新分配资源、调整计划、估算成本等等,导致软件产品质量下降。
2.2跟踪和监督不力
跟踪和监督主要针对过程而言,也是项目管理中最容易被忽视的环节。软件项目过程由多个任务构成,大部分任务都有前置任务和后置任务,这就要求项目管理者要严格跟踪和监督每一个任务。任务的完成主要从时间进度和质量两方面来衡量,还要充分考虑因客户方引起的一些客观因素(更改需求分析等)。项目管理者虽然制定了具体的项目进度内容,但如果缺乏有效的跟踪和监督机制,对于每一个阶段所要完成的任务疏于评价,就会影响下阶段软件产品的质量,有时甚至是软件产品的重新开发,最终影响整个软件项目。
2.3缺乏客观的软件评审
客观的软件评审是软件产品质量的直接保障,软件评审一直贯穿于整个软件项目的过程中,对软件产品的评审应有客户使用人员和软件业中的同行来进行。客户使用人员对软件产品做阶段性的评审可以及时发现软件产品功能方面的不足,同行评审可以从软件业的规范及标准去发现问题.软件评审可以降低软件开发的成本提高软件产品的质量。大多情况下项目管理者没有做任何阶段性的评审,通常只是在软件产品开发基本完成之后来组织评审,果发现了很多问题,但要修改已经非常困难.要花费很长的时间甚至从头再来。
2.4软件配置混乱
软件配置是指软件产品在各个阶段各种版本的文档、程序及数据的集合,贯穿于整个软件项目的始终。随着软件产品开发的进行,由于各种客观原因,其中的预算、设计方案、进度等内容都有可能需要大大小小的更改(这些改动可能是合理的),整个改变的过程对软件项目的参与人员来说必须是可视的,以便提高软件的可靠性和质量,而这一切都应该有正确的软件配置来控制如果失去正确的软件配置管理,那么针对软件产品发生的任何更改或者是维护都会给软件项目带来混乱甚至是失败。
2.5风险管理意识不足
风险管理是软件项目中防止失败的一种重要手段,软件项目不同的阶段存在着不同的风险,并且风险会随着项目的进展而变化,目前国内的软件企业大都不注意软件项目的风险管理。除了社会环境风险、商业风险等这些客观风险之外.可控的软件项目风险主要指技术风险。技术风险主要是指与软件项目本身相关的的技术因素变化带来的风险,如果在一定的条件下达不到技术条件能够实现的目标,不但延缓项目的进度而且会增加项目的成本.继而使整个项目受到影响。
3.通过过程管理加强软件项目管理的实践模式
利用cMM fCapabilityMaturityModeforSoftware)的核心思想把软件项目管理看作一个软件过程,并根据这一原则对整个软件项目的开发和管理进行过程监控,监督发现过程中影响项目的关键问题并予以解决。软件过程是指软件开发人员开发和维护软件及相关产品的一套行为、方法、实践及变换过程,包括软件开发过程和软件管理过程。CMM把软件开发机构按照不同开发水平划分为5个级别。每个等级被分解为几个KPA(关键过程域),KPA是指在某个成熟度等级应重点关注的区域,也是达到此成熟度等级必须解决的关键点。①初始级,无过程意义。软件过程是无序的、随机的、缺乏总计划,无预见性,大多数活动是应付危机,经常超期超支,成功取决于个人。②可重复级,具备基本的项目管理。KPA分别是:需求管理、软件项目计划、软件跟踪与监督、软件子合同管理、软件质量保证、软件配置管理;③已定义级,已定义软件过程。已将软件管理和软件工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。KPA分别是:组织过程焦点、组织过程定义、培训大纲、集成软件管理、软件产品工程、组间协调、同行评审;④可管理级,过程可度量。已收集了软件过程和产品质量的详细度量方法,软件过程和产品均可被定量地理解和控制。KPA分别是:定量过程管理、软件质量管理;⑤优化级,过程控制。通过过程的量化反馈以及新技术、新方法促使过程不断改进。KPA分别是:缺陷预防、技术更新预防、过程更改管理。
CMM只是一个过程改进的框架.并没有给出具体实施的办法。在该模式中对目前CMM中的KPA做适当裁减.定义了6个关键过程域:软件项目计划(SPP)、需求管理(RM)、软件项目跟踪和监督(SPTO)、软件质量保证(SQA)、软件配置(SCM)、同行评审(PR),设置了三个工作组:软件项目过程组(SPPG)、软件工程组(SEG)、软件质量保证组(SQAG)。通过工作组对关键过程域的操作来加强软件项目的管理。
3.1定义KPA
3.1.1软件项目计划(SPP)
软件项目计划是为要实施的软件项目编制软件过程活动的安排,包括进度控制、成本控制、质量控制、风险控制等,也是实施CMM2的核心此阶段在安排过程活动的同时开展项目设计的前期工作,设计和界定在整个项目中各阶段所需的开发、质量、跟踪、评审、风险、成本等工作。项目计划是指导项目过程的具体措施,要在有软件项目实施经验的人员领导下投人大量的时间和人力资源来完成。制定项目计划应注意7个问题。①在科学论证的基础上制定过程,充分调动人员积极性合理地确定项目组的参加人员;②对软件项目各程中的任务进行分解,明确项目的里程碑和检查点;③正确估计软件项目中的软件资源、硬件资源、人力资源及其它费用;④正确估计各方面因素带来的风险并制定应对措施;⑤制定项目实施过程中的跟踪和监督措施;⑥确定软件的评审和测试方法;⑦详细的文档资料。
3.1.2需求管理(RM)
需求分析主要包括面向用户的用户需求和面向开发人员的系统需求.是整个软件工程的第一步.也是非常关键的一个环节。需求分析主要针对用户的业务流程、系统功能、性能、数据分析进行严格的定义.是设计一个软件应用系统的起点与基本依据,通过它来评判软件产品是否能够解决用户问题,也是项目成功与否的标准。就目前国内现状来讲,一般签定软件项目合同的用户是主管信息技术的负责人,它所关心的可能是整个系统的目标需求,用户方中层管理人员关心的是业务流程需求.终端操作人员则注重软件本身的易操作性和功能特性,因此.面向用户的需求一定要和用户多方人员多沟通、交流.最终通过双方有关部门人员的论证以文档资料的形式确定下来。任何一个需求分析因客观原因可能存在着需求更改的现象,对于这种情况一定要注意需求更改的可控性.要建立需求的基准版本和更改版本控制文档资料.使受需求变化影响的产品与需求变更一致。但要注意在更改需求的同时要衡量需求的稳定性,如果一个需求的变更比较频繁,意味着本项目并没有真正了解用户想要解决的实际问题。可以说需求分析的完整性和变更可控性直接影响到软件过程的改进,它可以降低软件质量、加大软件开发的成本、甚至是导致项目的失败。软件工程组(SEG)中要明确定义一个需求管理员。
3.1.3软件项目跟踪和监督(SPTO)
软件项目的跟踪和监督始终贯穿于整个软件项目的过程中,是项目得以控制的前提和条件、是软件质量的根本保障,其目的是增加软件过程中进度、成本、工作量、质量、风险等内容的可视性,也是实施CMM2的核心。除去市场、法律等不可控制因素外,根据项目计划对项目进展的有关情况及影响项目实施的相关因素进行及时、客观、准确的信息采集,将采集到的需求、成本、进度、风险等内容形成文档并建立一个项目跟踪信息平台。项目负责人定期召集软件过程人员、开发人员、质量保证人员、用户方有关人员召开开放式的例会,例会的主要内容是检查项目进展、数据的分析、认识的偏差、资源的搭配、相关的风险等问题并讨论确切的解决办法,通过跟踪和监督使项目始终处于可视化的受控状态。
3.1.4软件质量保证(SQA)
软件质量保证是与软件产品满足规定的和隐含的需要能力有关的特征或特性的组合。对用户来讲主要体现在软件产品的有效性、一致性、完整性、可靠性和可操作性等方面,对于软件产品本身来讲体现在软件产品的可移植性、易维护性、健壮性、可重用性等方面。具体实践中.软件质量保证应在软件项目计划、需求分析、跟踪和监督、软件配置和软件评审的相互配合下完成.软件质量保证要做到以事先预防和跟踪为主,事后纠偏为辅。
3.1.5软件配置(SCM)
软件配置是针对软件产品的跟踪和控制活动.贯穿于整个软件项目的过程中.目的是建立和维护在整个生命周期内软件产品的完整性和一致性,使整个软件产品的演进过程处于可控的状态,继而提高软件的可靠性和质量。在实践应用中主要做到五个子项的配置①配置项的标识。标识做到唯一性。便于跟踪和管理。②版本管理。对整个软件过程中的文件和目录提供有效的跟踪手段。③变更控制。保持并传递修改信息。④配置审计。确定整个项目生产周期中产品在技术和管理上的完整性。⑤系统整合。把系统的不同部分集成后完成一组特定的功能。
3.1.6同行评审(PR)
同行评审是根据预定的规范和标准对软件产品进行评审。评审的结果是衡量软件产品质量的依据。在整个软件过程中对详细设计和软件综合测试作为两个关键评审点来进行评审,评审的过程中注意要结合本软件项目的具体要求和标准。
3.2组的定义
在具体的实践应用中设置了三个组,在降低了人员成本的同时提高了软件过程改进能力和软件质量。
软件项目过程组(SPPG)组织具体的项目实施活动,管理并协调整个软件项目的过程,主要完成SPP和SPTO。
软件工程组(SEG)负责软件工程的需求分析、概要设计、详细设计、编码、测试、维护工作。
软件质量保证组(SQAG)主要完成SPTO、SCM、PR、SQA等工作。
4.实践模式效率评估
4.1开发时间
软件开发由需求分析、概要设计、详细设计、编码、软件测试、项目维护和软件集成几部分内容组成,在需求分析和设计阶段采用CMM框架实施过程管理所花费的时间要多于没有实施过程管理花费的时间。首先对项目做大量分析,论证项目的可行性。然后在和用户做良好沟通、反复论证的基础上做需求分析,形成文档资料。这种模式下花费在需求分析和设计上的时间大约占项目总开发时间的40%,但这两个阶段完成了数据流程、算法描述、详细的规格说明等内容,为代码编写、软件测试、软件维护等后续内容的工作节省了时间,软件项目的开发周期大大缩短。经过评估,采用该实践模式实施软件过程管理的软件项目开发周期比没有实施软件过程管理的软件项目开发周期缩短20%。
4.2开发质量
采用CMM标准通过软件过程管理加强软件项目管理的实践模式使软件质量明显提高、需求分析周密、代码错误率明显降低、软件产品完整性好、功能齐全、维护量下降,软件项目最终得以顺利实现。
5.结语
本文给出的通过软件过程管理加强软件项目管理的实践模式优点非常明显.软件过程改进目标明确,可以有效地提升软件产品质量、节省开发时间、降低成本。同时该模式更能体现团队精神,摆脱了软件开发中的个人主义,从整体出发,在强调过程对整体重要性的同时,进一步降低了软件过程中的各种风险,使软件项目始终处在可视化的优良受控状态中。
[摘要]推进产业链现代化是构建新发展格局的战略支点,而以跨境电商为代表的贸易新业态,为产业链整合提供了重要的制度动力。本文基于2011—2023年A股上市公司面板数据,将跨境电商综合试验区设立视为一项准自然实验,构建双重机器学习模型,系统识别综试区对产业链整合的因果效应及作用路径。研究发现:第一,综试区显著促进了企业产业链整合,该结论在经过时间窗口调整、更换计量模型、控制并行政策、工具变量法等一系...
网络信息安全中防火墙扮演着重要角色,而硬件防火墙对大型网络安全更是至关重要,研究硬件防火墙将为大型网络的安全增加砝码。通过对硬件防火墙工作原理的研究,明白为何大中型网络要使用硬件防火墙,理解硬件防火墙在网络中的工作原理和过程,知道硬件防火墙的基本配置考虑要素。了解硬件防火墙的选购标准,增强对硬件防火墙在网络信息安全中重要性的认识。 论文关键词:网络信息安全;大型网络;硬件防火墙;三次握手;过滤;...
针对复杂物流系统的复杂性,提出了一种分布式多代理仿真体系结构,阐述了该体系结构在复杂物流系统仿真中的应用过程,将复杂物流系统分布式多代理仿真体系结构和集中式仿真体系结构相结合,提出了集成的复杂物流系统仿真体系结构. 论文关键词:复杂物流系统;体系结构;分布式仿真;多代理仿真;集中式仿真 复杂物流系统的复杂性包括结构复杂性、不确定性、信息的失真与放大、组织机构的动态性等….对于各种...
在电子政务建设中,如何准确把握信息安全与应用建设的关系,既有效减小安全风险,又保证应用顺利开展,是许多信息系统建设者、使用者都会遇到的问题。对于这一问题的圆满解决,既需要有微观上的技术手段,又要宏观上的理论指导和观念更新,尤其是宏观方面的考量,在信息系统建设的整体把握和政策导向方面尤为重要。本文通过对应用与安全两者在信息系统中所处位置的形象比喻,试图理清应用与安全之间既相互矛盾、又互为依存的关系,...
摘要:本文简述了无线传感器网络的定义、组成及特点,并结合其特点介绍了无线传感器网络在各行各业广泛的应用价值和未来发展前景以及目前存在的技术问题。 关键词:无线传感器网络;组成;应用;发展 科技发展的脚步越来越快,人类已经置身于信息时代。而作为信息获取最重要和最基本的技术——传感器技术,也得到了极大的发展。传感器信息获取技术已经从过去的单一化渐渐向集成化、微型...
计算机基础课的教学不同于现代化教育体系中的那些传统的课教学,它的教学是一种极其复杂的过程。建构主义教学理论恰好提供了一种与传统的教学理论不同的学习理论;利用建构主义学习理论指导计算机基础课的实践教学我认为是现代化计算机教学的一个改革的方向。 论文关键词:计算机基础教学;传统教学;建构主义;意义建构;协作学习 0、引言 随着计算机科技遵循”摩尔定律”飞速发展的事实,以及...
网络安全的根本目的是防止通过计算机网络传输的信息被非法使用。信息和数据安全的范围要比计算机安全和网络安全更为广泛,它包括了信息系统中从信息的产生直到信息的应用这一全部过程。密码技术是保护计算机信息安全的主要手段之一,使用密码技术可以保证信息的机密性,还可以保证信息的完整性和确定性,防止信息被篡改、伪造和假冒。 论文关键词:网络;信息安全;密码技术 计算机网络信息安全的两个基本需求是保密性和完整...
针对网络化务件下涉密信息应用和管理中的保密需求,提出了一种涉密信息网络化集中应用模式,建立了相应的涉密信息网络安全应用系统框架,并对其体系结构进行了详细叙述,最后通过建立系统原型验证了该系统框架的可行性和实用性。 引言 计算机网络的运用给人们带来了极大便利,成为工作和学习不可或缺的重要工具,而与此同时也给计算机信息特别是涉密信息的管理和保密工作带来了新的挑战。尽管现在网络安全的研究和实践已经取...
随着网络技术的飞速发展和广泛应用,信息安全问题正日益突出显现出来,受到越来越多的关注。文章介绍了网络信息安全的现状.探讨了网络信息安全的内涵,分析了网络信息安全的主要威胁,最后给出了网络信息安全的实现技术和防范措施.以保障计算机网络的信息安全,从而充分发挥计算机网络的作用。 论文关键词:计算机,网络安全,安全管理,密钥安全技术 当今社会.网络已经成为信息交流便利和开放的代名词.然而伴随计算机与...
为提高软件企业的管理水平,对软件项目管理存在的一些问题进行了深入的分析,指出了软件项目管理中常见的不足之处:项目计划问题、管理意识问题、项目干系人相关问题、项目团队内分Z-协作问题、沟通意识问题、项目风险管理意识问题、项目收尾问题通过分析找出了原因.提出了改进措施 软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量风险等进行分析和管理的活动。软件项日管...
影响因子:0.000
影响因子:0.000
影响因子:0.510
影响因子:3.540
影响因子:6.709
影响因子:3.857
影响因子:2.719
影响因子:2.275