软件过程管理

2024-07-28

软件过程管理(共12篇)

软件过程管理 篇1

1 概述

软件产品的生产过程是软件质量的形成过程, 所以只有在过程中实现良好的管理和质量控制, 才能得到一个质量合格的软件产品。软件缺陷就是其中的软件质量的负面影响因素。虽然所有的软件系统都不是尽善尽美的, 但是严重的质量问题会危及用户的使用, 从而危及企业的软件生产。

软件的开发阶段的缺陷管理和预防是非常重要的, 因为一旦制定了有问题的软件的设计方案, 会直接导致软件的质量隐患, 所以, 我们在研发阶段要尽可能的防止这种情况的发生, 将隐患扼杀在初始阶段。一般的做法是, 在软件研发的过程中要形成一个严谨的缺陷分析报告, 将关于软件的性能的各个方面的具体数据和资料综合整理出来, 对于存在安全隐患和易出现问题的环节做好一定的预防措施和预防方案。

2 问题描述

缺陷度量的技术的一个重要的指标和重要的作用就是对于软件系统中存在的问题的显示, 也就是对具体问题的描述。一般情况下, 软件的缺陷会分为大致的几种常见类型, 我们也可以根据这些类型, 做出不同的缺陷显示方法。正交分类方法ODC (Orthogonal Defects Classification) 作为一种常见的问题显示方法, 能够准确的显示问题, 一直被业内广泛的使用, 但是它也存在着技术上的缺陷, 就是解读方式比较复杂。另一种常见的方式是Thayer, 有点是比上一种方式的结果更精确, 但是解读起来也更加复杂。这两种方式的共同点在于都忽略了对于软件的过程的监控和分析, 这是一个非常严重的技术问题, 因为软件的研发过程才是质量问题的形成的重要阶段, 要控制质量问题, 就必须控制软件的研发过程, 所以, 我们想要找出新的监管和缺陷度量方法, 就要从控制过程的角度来分析。现在市场上的已经开发了几种缺陷管理系统工具, 例如Mercury公司的Quality Center, IBM公司的Rational系列管理工具, 微软公司的VSTS等。上述的几种技术都没有解决缺陷的分类问题, 导致了在软件过程的管理中的缺陷分类的薄弱。也直接导致了现有的缺陷管理工具在实用性和综合性方面的不完善, 上述的两种管理工具只是提供一些缺陷属性数量的简单统计结果, 要想得到一些更精确和更综合全面的分析结果, 用户不得不借助其他的统计方式。基于该目前市面上的工具的这样一种缺陷, 和软件过程管理的实际需要的不协调, 笔者制定了一种新的管理模型, 如图1。该模型可根据需要设计缺陷属性度量分类标准。在软件开发过程中通过缺陷管理系统采集缺陷数据, 运用缺陷分析方法实施缺陷分析, 把握缺陷发展趋势, 对软件项目开发过程进行综合评价。实施缺陷预防方案, 提高软件产品的开发质量。通过缺陷分析结果的反馈, 改进缺陷度量分类标准和分析目标, 提高缺陷分析结果的准确性。本文重点研究了缺陷分类方法和缺陷数据的分析方法, 并结合某项目中的缺陷数据实例进行了分析。

3 缺陷分类方法研究

3.1 缺陷分类的目的和原则

将软件的缺陷问题分类, 可以更好的管理和击破软件的缺陷问题。并且有益于分析缺陷产生的原因, 可以早到有计划的预防。缺陷分类方法应满足以下要求:准确地对发现的缺陷类型进行分类;缺陷分类类型之间应无重叠, 并尽可能多的覆盖开发过程中出现的分类;分类要与软件生命周期有机结合, 从软件过程的角度对软件缺陷进行分类。

3.2 缺陷度量属性分类

实施度量分析的最终目的是为了服务软件的研发和试验的各个阶段的顺利进行, 一旦发现问题可以及时纠正, 以免影响软件的研发和生产。在引言中曾提到, 软件缺陷的范围很广, 它贯穿于整个软件研发和生产试验的各个阶段, 是一种伴随着软件的整个过程的始终的应用, 所以它的重要程度也可想而知。一个缺陷需要记录许多相关的度量属性, 如何划分这些度量属性也是缺陷分类研究领域的一个热点。传统的分类方法主要目标是消除软件缺陷, 而不是对缺陷出现的原因进行一个正确的评估和解决方案的分析, 这样的分类方法是不利于软件的完善和发展的。所以, 一个全方位多角度的缺陷度量方式就应运而生。下面本文中将从缺陷度量属性设计的三个方面, 即描述属性、统计属性和控制属性来进行具体阐述。a.缺陷描述属性。缺陷描述属性是指:缺陷信息描述, 对于缺陷的各个方面和各个角度的描述, 既包括缺陷的时间, 产生原因也包括具体的解决方案的策划。b.缺陷统计属性。缺陷统计属性是指:缺陷生命周期状态, 缺陷流出的开发阶段, 缺陷流出的部门, 缺陷流出的功能模块, 缺陷表现类型, 缺陷的严重等级等基于缺陷数量统计其分布的属性。并且缺陷统计属性参考正交缺陷分类方法划分, 属性间没有相关性。c.缺陷控制属性缺陷控制属性是指:处理缺陷的角色, 缺陷的分配, 处理缺陷的时间, 缺陷数据之间的关联关系等基于缺陷分配流程管理的属性。

4 缺陷度量过程管理

4.1 处理缺陷的角色

在软件开发过程中处理缺陷的四个负责人和所负责的任务的具体情况:报告人:将发现的缺陷登录到缺陷管理系统, 描述缺陷的表现形式和再现方法, 对缺陷进行简单分类, 由项目经理、组长对缺陷进行再分配, 缺陷修正完成后, 对其进行回归测试审核。负责人:负责缺陷的调查和修正工作, 分析缺陷引入的原因。组长:分配缺陷到负责人, 并对负责人已修正缺陷进行复查, 确保不会因为修正而引入新的缺陷产生, 分析缺陷流出原因。项目经理:分配缺陷到项目组, 定期总结缺陷分析报告, 把握缺陷发展趋势, 采取应对措施保证项目的进度及开发质量, 根据缺陷分析结果改进缺陷度量属性分类。

4.2 缺陷生命周期

缺陷生命周期是指缺陷从被报出之后, 到开始修正, 再测试直到该缺陷被完全消除的时间段。缺陷生命周期是影响软件研发的一个重要的指标和因素, 定期对缺陷各种状态信息的变化趋势进行总结, 是项目经理计划开发周期, 调整开发进度的重要依据。

4.3 缺陷分配管理流程

整个的缺陷的周期主要是指从发现到完全消灭的时间, 在这个时间内, 缺陷的分配管理流程主要包括:a.报告人登陆缺陷;b.管理人员分配缺陷给相关责任人;c.责任人调查并修正缺陷, 分析缺陷引入的原因;d.管理人员对修正结果进行复查, 分析缺陷流出的原因;e.报告人验证缺陷是否被正确。

结束语

软件的研发是一项非常复杂和严谨的工程, 所以在这个阶段要对软件的质量作出各个方面的监测和试验, 这样才能最大程度上减少软件的质量问题的发生概率, 而软件缺陷度量作为软件质量监测的一个重要方式, 应该引起我们有关的工程人员的足够重视, 不断在缺陷度量的技术上提升, 这样才更好的服务于我们的软件研发工作。

参考文献

[1]何荣勤.CRM原理.设计.实践[M].北京:电子工业出版社, 2006.

[2]肖阳春.计算机网络与多媒体技术[M].北京:中国铁道工业出版社, 2008 (6) :81-82.

软件过程管理 篇2

班级:——

学号:——

姓名:——

软件项目管理是为了使软件项目能够按照预定的成本,进度,质量顺利完成,而对人员,产品,过程和项目进行分析和管理的活动。根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析,设计,编码到测试,维护全过程)都能在管理者的控制之下,以预定成本按期,按质完成软件交付用户使用。

——序

当今世界,IT技术对于一个企业的重要性是毋庸置疑的。在很多领域,计算机技术都得到了非常广泛的应用,IT技术已经普遍地服务于社会的各行各业,在很多的领域都形成了推动力。但同时我们也看到一个非常严重的问题,那就是软件危机。为什么会发生“软件危机”。据总结,主要产生的原因是:(1)由于缺乏软件开发的经验和有关软件开发数据的积累,以致经常出现超出经费预算,无法遵循进度计划。(2)软件需求在开发的初期阶段不够明确,或是未能得到确切的表达。开发工作开始后,软件人员和用户又未能及时交换意见,造成矛盾在开发期几种暴露。(3)未能在测试阶段做好充分的检测工作,提交至用户的软件质量差,在运行过程中暴露出大量的问题。归结起来,我们说的软件危机是一种矛盾,就是弱的软件生产力能力与强的业务发展需求之间的矛盾。要能够迎接业务发展所带来的挑战,从事软件生产的组织迫在眉睫要去做的一件事就是软件生产力的改造。在“应用就是业务”的今天,软件生产力的改造是决定企业能否获得并长久保持竞争优势的一个决定性因素,所以,关注并启动软件生产力的提升是一项战略性的决策,是一个系统工程,它将决定企业能否获得并长久保持竞争优势。而项目管理则是提升生产力的一项重要任务。

然而,项目管理在我们的软件生产中的应用是那么的重要。那么我们应该怎么样才能更好的掌握项目管理,我们的项目流程是怎么样的。

首先,项目管理的第一流程是项目的启动。

项目的启动就是确定项目的目标范围,它主要包括开发和被开发双方的合同(或是协议),软件要完成的主要功能以及这些功能的量化范围,项目开发的阶段周期等。尤其是启动信息技术(IT)的项目,我们做软件的必须了解企业组织内部在目前和未来主要业务发展方向,这些主要业务将使用什么技术及相应的使用环境是什么。启动信息技术(IT)的项目的理由很多,但能够使项目成功的最合理的理由一定是为企业现有业务提供更好的运行平台,而不是展示先进的IT技术。在项目启动的过程中,我们还要注意将项目的范围进行明确定义才能进行很好的项目规划。项目目标必须是可实现可度量的。如果这一步管理得不好或是做得不好,直接导致的是项目的最终失败。

其实,第二就是项目的规划

项目的规划其实就与项目的计划意义差不多。它是一项复杂的,自始至终不断迭代的一个过程。而且为项目的运作提供可靠的实施基础。在整个项目中,项目规划是指项目的估算,风险的分析,进度的规划,人员的选择与配置,产品质量的规划等。然而,在项目管理的过程中,计划的编制是整个项目规划中最为复杂的阶段。项目计划工作涉及九个项目管理知识领域。也就是说我们要知道九个项目管理知识领域中哪些是重要的,哪些是必要的和熟悉它们之间的关系。而且在计划编制的过程中,我们还可看到后面各阶段的输出文件。所以说它是指导项目的进程发展。规划建立软件项目的预算,提供一个控制项目成本的尺度,也为将来的评估提供参考,它是项目进度安排的依据。最后,形成的项目计划书将作为跟踪控制的依据。

第三:项目的实施及控制

一旦建立起基准计划就必须按照计划执行,这包括按计划执行项目和控制项目,以使项目在预算内,按进度,使顾客满意的完成。在这个阶段,项目管理过程包括:测量实际的进程,并与计划进程相比较。同时,发现计划的不当之处。为了测量实际的进程,掌握实际上已经开始或结束的是哪些任务,已经花了多少钱,这些都是很重要的。如果实际进程与计划进程的比较显示出现项目落后于计划,超出预算或是没有达到技术要求,就必须立即采取纠正措施,以使项目能恢复正常轨道,或是更正计划的不合理之处。然而,项目的监控,也是为项目能正常回到轨道上的一个重要步骤。俗话说:“没有跟踪就不算完成”,在软件项目中,有太多的工作需要我们去完成,如果有时计划做得不够周密,或是计划赶不上变化。我们怎么办,置之不理?还是去跟踪监控一下,然后及时改正错误。为什么我们用的那么多的软件是要不定时的安装补丁,原因也就是因为这个。在跟踪监控中我们发现问题,然后去修补它,使得软件的性能,功能更好。总得来说。项目的实施及监控最终的目的就是保证项目能够安装预先设定的计划轨道上行驶,使得项目不要偏离预定的发展进程,尽快完成软件项目。

最后就是软件的项目结束

项目管理的最后环节就是软件项目的结束过程。因为项目的特征之一就是它的一次性。有起点也有终点,进入项目结束期的主要工作是适当地做出项目终止的决策,确认项目实施的各项成果,进行项目的交接和清算等,同时对项目进行最后评审,并对项目进行总结。这个也代表着项目将进入后续的维护期。项目最后执行的结果是有两种状态,要不就是成功要不就是失败。然而,一旦我们决定终止一个项目,项目就要有计划,有序的分阶段停止。当然,这个过程可以简单地执行也可以详细认真的执行。在这里项目总结是项目结束中的最后一个环节也是一个我们不能忽视的一个环节。很多项目没有能进行很好的总结,比如说项目总结时项目人员已经不全了,有新的项目要做,没有时间去写等等的理由让项目的总结没做好。所以,这也是软件项目那么多漏洞的原因之一。所以,项目的结束之前的工作我们也要好好认真的完成。

软件开发不同于其他产品的制造,软件的整个过程都是设计过程(没有制造过程)。另外,软件开发不需要使用大量的物质资源,而主要是人力资源;并且,软件开发的产品只是程序代码和技术文件,并没有其他的物质结果。基于上述的特点,软件项目管理与其他项目管理相比,有很大的独特性。所以,软件项目开发管理过程中,不仅要努力实现项目的范围、时间、成本和质量等目标,还必须协调整个项目过程,以满足项目参与者及其他利益相关者的需要和期望;随着软件规模和所涉及的领域不断地扩大,软件项目的管理越来越困难。纵观所有失败的软件项目,基本原因是不能管理其软件过程,在无纪律的、混乱的项目状态下,组织不可能从较好的方法和工具中获益。严谨的软件过程控制与管理不仅可以在每个阶段回顾和纠正项目的偏差,识别软件项目的风险甚至果断中止项目,而且可以将人才流动所带来的不利影响减少到最小。要进行有效的过程控制,必须明确软件项目管理流程。

最后,总结一下项目管理过程。软件项目管理不同于其他的项目管理,它有很多的特殊性。软件是一个特殊的领域,远远没有建筑工程等领域那么规范化、软件目前有很大的发展空间,经验在项目管理中发挥着很重要的作用,理论和标准还在发展中,它体现软件的“软”的特殊。合同启动了一个软件项目,同时贯穿项目的始终;根据合同进行软件的需求分析,获得需求规格;根据需求规格进行任务分解,任何分解的目的是可以很好得规划和管理项目;根据任何分解的结果,给出项目需要的资源,以便于估计活动的历时,最终编制项目计划以及项目的预算等。这样便可以形成项目的三个核心的基准计划:项目范围基准,成本基准,时间基准计划等。

软件过程管理 篇3

关键词:软件项目;设计与开发;过程管理;有效性

中图分类号:TP311.52 文献标识码:A 文章编号:1674-7712 (2012) 14-0057-01

对软件项目设计与开发的全过程进行有效的管理,不仅是要为了顺利实现软件的特定功能与性能,还要确保能够保质、保量、低成本的完成软件开发的任务,使软件在投入使用后也能够保持稳定性、可靠性、实用性和经济性。简单的说,软件设计与开发的过程就是要将需求转变为软件表达的过程,要想切实提高软件项目设计与开发过程管理的有效性,不仅要坚持正确的软件项目设计原则,还要明确软件的设计流程,在设计与开发的各个过程都采取行之有效的管理对策。

一、软件项目设计与开发的基本原则

(一)实用性

实用性指的是软件项目的设计与开发一定要能够满足现代企业经营管理的需求,能够促进企业的不断发展,要避免“形式主义”、“中看不中用”等问题,否则有可能导致企业软件开发资金的浪费,难以取得良好的投资回报效果。因此,在选择软件设计与开发技术时,不能过度追求先进性和高投入,而是应当在充分了解企业实际需求的基础上,结合企业的发展方向,充分满足企业在不同层次和环节上的管理需求,这也是决定软件开发项目成败的关键因素。

(二)先进性

毋庸置疑,在信息技术不断变化发展的时代背景下,先进性是软件项目设计开发过程中必须充分考虑的问题,这可以有效降低企业在未来的投入,避免未来在软件项目开发中的重复建设和系统升级等问题。因此,企业在进行软件项目的开发设计时,一定要面向社会经济的未来发展方向和人民生活需求的变化趋势,紧跟社会步发展的步伐,与信息技术、计算机技术、通信技术以及相关学科的发展方向保持一致,这样才能不断推动社会的进步。

(三)经济性

任何一个软件项目的设计与开发,都必须充分考虑到投入产出比的问题,力争用最小的经济投入获取最大的投资回报,实现最好的软件开发设计效果和更高的经济效益,这也是软件开发企业的主要目标。因此,在保证软件开发质量的前提下,软件的开发费用需要控制在合理的预算范围之一,并尽量压缩,在设计开发过程中必须要考虑到软件在后期运行维护过程中的费用投入,实现软件项目设计与开发全过程费用的节约。

(四)系统性

在软件项目的开发设计中,一定保证其整体功能的完整性,既能满足企业在整体上的管理需要,设计与开发的系统必须能够全面、完整覆盖企业管理的软件信息系统,又要能够满足采购、生产、销售等个别部门的管理需求,便于各个部门之间信息数据的传递和衔接。此外,还应当制定系统的软件项目设计与开发的管理规范,如开发文档的管理规范、报表文件规范、数据格式规范等,这是确保软件系统开发和操作水平的重要条件。

(五)可靠性

为了充分保证软件项目系统运行的高效、平稳和准确,不仅要保证软件系统在正常运行状况下数据传递的准确性和系统运行的可靠性,还需要确保软件系统项目在非正常状态下的可靠运行,因此在软件项目的开发设计过程中要提前针对一些紧急情况制定相应的应对策略。一个优秀、可靠的软件系统,必然是一个灵活的系统,即使在软、硬件环境发生故障时,仍旧能够保持部分使用或正常运行。

二、软件项目设计与开发的全过程管理

(一)软件项目设计与开发的启动

在软件项目的设计与开发过程中,实施全过程管理的第一个阶段就是项目的启动。在软件项目的启动阶段,首先,要明确软件项目设计与开发的目的,并在软件开发与软件使用的双方协议或者合同中进行约束,并对软件设计的主题、工程量进行量化,合理确定软件项目开发和设计的阶段目标和周期。其次,要加强同软件用户的充分沟通,了解用户的软件使用需求,理清软件记录的关键点,制定出完整的软件设计与开发流程;再次,对于在调研过程中所获取的原始资料,一定要进行加工处理,理清相关的约束条件和非功能性的客户需求,确保软件开发与建设项目具有很强的可实现性。

(二)软件项目设计与开发的规划

软件项目的规划,是软件设计与开发过程中比较复杂的阶段,也是决定软件开发质量和开发水平的关键,做好软件项目的整体规划将会为整个软件项目的运行奠定良好的基础。具体说来,软件项目规划主要包括项目预算、风险分析与预测、进度管理、质量控制等内容,在编制软件项目的开发计划时,一定要理清各个开发环节之间的关系,并制定出完整、科学的项目计划书,以期为软件项目设计与开发的全过程管理提供相应的参考依据。

(三)软件项目设计与开发的实施

软件项目实施阶段的有效管理,其目的就是要保证软件项目安装在预先设置的计划上正常运行,确保项目不要偏离预定的开发进程和设计目标。在软件项目的实施阶段,一定要按照软件项目的初步规划进行,并在实施过程中,增强对软件项目开发的有效控制,确保成本支出控制在相应的预算定额之内。同时,要对软件项目开发的成果进行动态的监控,随时与原先的计划过程进行比较,对于出现的偏差或缺陷要及时进行调整,确保各项软件开发指标和系统功能的顺利实现。

(四)软件项目设计与开发的结束

一个完善的软件项目管理过程,必然离不开软件项目的结束,这时相关人员要进一步确认软件项目在设计与开发过程中取得的成就,做好软件项目的交接、评审等工作。

三、结语

总之,为了提高软件项目设计与开发的质量和水平,软件设计人员需要首先认识到软件质量的重要性,树立应有的软件项目质量管理意识,要坚持正确的软件设计与开发原则,懂得加强过程管理与控制,同时还要对风险控制、配置管理等环节给予足够的重视,采用科学的技术方法和先进的管理技术来提高软件项目质量管理的有效性。

参考文献:

[1]李勇华,骆启武,付春燕.基于问题管理提升软件项目过程质量的实践[J].计算机与现代化,2007,4.

[2]商惠华.基于过程改进的软件质量管理模型[J].计算机工程与设计,2011,5.

软件过程管理 篇4

1 中小软件企业软件过程管理概述

1.1 中小软件企业特点分析

在我国软件产业中, 中小软件企业占据着较大的比例, 其主要特点是熟悉行业需求, 能够对优势业务领域加以有效把握, 执行力高, 管理快捷清晰, 组织结构简洁, 响应速度快等。但是中小软件企业也存在一定的劣势, 其具有较高的维护成本, 总收入中软件销售收入占据的比例低, 经验到制度的转化程度不高, 依赖性强, 制度约束力不高, 人员流动性高以及人力资源不足等。

1.2 软件过程概念

软件过程主要指的是软件开发人员在对软件以及相关的产品进行开发与维护时, 其形成的方法、实践、行为以及变化过程。一般在对软件过程进行管理时, 必须要确保软件产品的质量, 加强其开发与维护过程的质量, 将方法, 工具以及人员进行有机结合, 从而确保软件产品的质量, 提高管理的水平。

2 中下软件企业软件过程管理的改进方法

2.1 加强质量保证与配置管理

一个软件项目的配置项包括该项目的所有相关资料, 如安装程序、工具、代码以及文档等, 配置管理良好是保证软件一致性的重要前提。因此对配置管理进行合理计划, 并对配置管理软件进行恰当选择, 统一管理软件版本, 制定基线配置项变更控制流程, 能够确保软件开发与管理过程的合理性, 提高软件过程管理以及软件产品的质量。在改进软件过程时, 中小软件企业可以从以下几个方面进行考虑:一是在对软件进行测试时, 侧重于控制和检查软件产品的质量, 并且在保证质量的同时, 严格检查和控制软件过程。二是质量保证由专人进行, 从项目计划以及阶段成果等方面进行检测, 对质量问题进行跟踪和记录, 从而有效提高软件产品的质量, 确保产品质量的维护性以及延续性。

2.2 选择重点, 优先突破

在对软件过程进行改进时, 必须要对其重点领域进行选择, 循序渐进。由于软件过程改进是对现有的软件开发与管理过程进行改善, 这对于企业管理人员以及开发人员而言, 具有较大的难度。因此在软件过程改进过程中, 企业可以有针对性地选择改进重点, 逐渐突破, 从而确保软件改进过程的合理性以及科学性。此外, 从软件开发过程而言, 软件企业不同, 使得软件项目开发的过程也不尽相同, 在软件开发过程中, 其编码、设计以及需求等阶段受企业开发人员的综合能力、知识经验以及企业自身的技术水平的影响, 因此必须要对软件过程的相关部分进行重点选择, 有效突破。

2.3 加强自评估

中小软件企业为了保证软件过程的完整性以及规范性, 往往会对软件过程进行盲目改进, 无法对自身软件过程的阶段和水平进行全面清晰的分析, 导致实施的效果低下。因此, 中小软件企业在对自身的软件过程进行改进时, 必须要加强自评估, 有效采用某磐软件度量方法, 利用定量和定性相结合的方式, 提高软件过程状态的评价。此外, 中小软件企业可以在组织内部对岗位的人员进行不同选择, 确保全体人员能够参与到软件的评估过程中, 从而保证软件过程的合理性和准确性。

2.4 重视个体软件过程改进

开发人员作为软件企业中的主体, 其工作计划的恰当性、缺陷率、时间利用率和编码质量的高低等都会影响组织软件过程和软件质量。因此为了提高开发人员的工作效率, 确保软件过程的管理质量, 必须要重视个体软件过程的改进工作。一般个体软件过程具有完整的规程、表格以及方法, 其能够对软件开发人员的工作方式进行改进、管理和控制, 对开发人员计划、管理和度量自身的工作具有指导作用。个体软件过程改进能够对时间利用的情况进行记录, 从而有效掌握时间利用率以及工作的效率;同时能够利用管理缺陷, 有效控制软件缺陷, 并提高相关人员的工作能力。

2.5 合理利用辅助工具

一般而言, 软件过程管理及其改进在很大程度上属于管理的过程, 需要遵守一定的规则, 充分合理利辅助工具, 能够有效提高软件过程管理的水平和质量。就目前而言, 软件企业常用的软件类别包括缺陷管理工具、软件测试工具、配置管理工具以及项目管理工具等, 这些工具具有完善和强大的功能。因此企业能够从自身的实际情况出发, 对这些软件工具进行合理选择与利用, 从而提高软件过程管理的水平, 增强企业的综合竞争实力, 实现企业的可持续发展。

3 结束语

一般来说, 软件过程改进是一个循序渐进的过程, 中小软件企业必须要不断积累和丰富自身的经验, 对软件过程管理进行持续改进。同时, 中小软件企业在对软件过程进行管理和改进时, 必须要加强质量保证与配置管理, 选择重点, 优先突破, 加强自评估, 重视个体软件过程改进, 合理利用辅助工具, 从而提高软件过程管理的水平, 实现自身的可持续发展。

参考文献

[1]楚书来, 于文新.小规模软件企业软件过程管理与改进策略研究[J].黑龙江科技信息, 2012, 02:199-200.

[2]田丽从, 李铁牛, 彭宏.中小型企业软件过程改进方法研究[J].计算机应用与软件, 2011, 04:208-211.

[3]李楠.我国中小软件企业实施CMM改进软件过程的研究[J].中国城市经济, 2011, 26:129-130.

软件过程改进 篇5

过程改进的实施保证了一个项目软件研发能够达到较高水平,其意义不仅仅是对软件开发的过程进行管理,同时也最大程度地降低了企业的成本,产品质量和用户满意度也有所提高,是一种高效的管理方法。

介绍了软件过程改进的基本理念,对sPI中的CMM和CMMI进行了阐述,同时作了简单的对比。

关键词:软件过程;过程改进;CMM;CMMI

1、过程概念

要想开发出客户需要的产品,就必须使用合适的方法、技术以及工具。

过程即是人、方法、技术和工具这4项关键因素的集合。

过程它不单单是一堆文档,有效的过程环境还包括了过程的定义、过程的培训、过程的监控与强制三个方面。

人们用以开发和维护软件及其相关产品的一组活动、方法、实践和变换被定义为软件过程。

过程改进(Process Improvement):是指根据企业的现状及发展需求,优化流程制度,努力提高人们在过程中的工作能力,最终“提升产品质量、生产率并降低成本”。

过程改进是企业谋求进步的需要。

软件过程改进(SPI)是一个长期的投资。

定义清晰的、可测量的目标,对提供指导和帮助改进开发的策略来讲是必要的,也为改进结果的客观测量提供了可能。

SPI的基本理念是质量形成于过程。

过程改进能够带来效益。

节省资金和商业改善措施可以将软件过程改进和商业结果联系起来,这些改进又可以融合到软件过程改进中。

这些因素包括:产品质量的提高、上市时间的缩短和生产率的提高。

从改进后的过程对软件质量的影响可以看到软件质量的提高,从而导致使用该软件的产品或服务质量的提高。

产品质量的提高最终可以减少产品的缺陷、提高满意度、减少退货以及避免媒体舆论的压力等。

成熟的过程有助于采用有效的方式引进新技术,利用这种方式可以更快地把新技术引入到产品中,从而获得竞争上的优势。

2、核心原则

软件过程可以定义为对整个软件生命周期的管理与工程化过程及支持进程的规范说明。

过程的使用者为软件工程师和项目经理,过程的结果则是软件程序、系统以及文档。

软件过程改进的要求导致了软件过程重要性的提高,从而产生过程分析和评估的方法。

注重问题、强调知识创新、鼓励参与、领导层的统一和计划不断地改进是SPI的5条核心原则,是从实践中发展而来、相互关联的SPI哲学,对SPI工作具有非常重要的指导作用。

软件过程改进成功的关键因素在于我们应当像对待真正的“项目”一样去看待软件过程改进计划,也就是说,我们要为其分配资源、进行管理、编写阶段性的计划、制定质量以及配置管理计划等。

过程改进的核心是解决问题,它为过程改进人员指明了目标、明确了方法。

“改进是一种知识的创新,而SPI是受知识驱动的”。

它强调了知识创新在SPI中的重要性,同时也指出注重知识创新的同时对知识的传播和扩散也不容忽视。

改进活动可以用作一个模型和一个机制,用来试验所期望的各种不同的过程和行为。

一个典型的原则是运用改进尘埃来试验修订的管理过程,如新版的计划、跟踪等等。

新的方法可能因为影响太小而“失败”。

这种意义上的失败意味着新的过程不如预期的那样好,这是第一次试验一个新的或修订的过程时一个共同缺点。

任何这样的指导原则应该被文档化,以改进活动战略行动计划中的指导部分。

3、软件能力成熟度模型(CMM)

CMM——能力成熟度模型,最早的前身是1986年由美国卡内基一梅隆大学的软件工程研究所(Software En-gineering Institute,SEI)受美国国防部委托研制的一种评估软件承包商能力的办法。

在SEI中,CMM被定义为:对于软件组织在定义、实现、度量、控制和改善其软件过程中各个发展阶段的描述。

它的意义不仅仅是对软件开发的过程进行管理,更重要的是它还是一种高效的管理方法,有助于组织最大程度地管理和降低开发成本,提高软件质量和用户满意度。

软件过程的不断改进是基于许许多多小的、不断进化的步骤,并不是一次革命性的创新且能在较短时间内实现的。

CMM主要用于软件过程的改进(SPI)、软件过程的评估(SPA)和软件能力评估(SCE)。

CMM组织如图1所示,有5个等级,旨在增加软件过程成熟度行动按优先级排序。

CMM由低到高分为5个级别,分别是初始级、可重复级、定义级、管理级和优化级。

成熟度等级是向成熟软件组织前进途中的阶梯,每一个成熟度等级都为过程继续改进提供一个基石。

在每一级中,定义了达到该级过程管理水平所应解决的关键问题和关键过程。

每一较低级别是达到较高级别的基础。

每个成熟度等级都刻画了不同软件组织所处特定过程的本质或关键属性。

4、能力成熟度模型集成(CMMI)

CMMI是CMM模型的最新版本。

1981年,美国卡内基一梅隆大学软件工程研究所(SEI),应美国联邦政府的要求开发一种用于评价软件承包商能力并帮助其改善质量的方法。

软件过程评审的轻量级实践 篇6

关键词:软件质量;评审;度量;持续改进

1引言

软件评审是软件质量管理中的关键一环,而在实际的评审过程中,常常出现因为参与评审的专家不能全部到位而在评审时拉壮丁,评审先变科普会、再变批斗會,以及其他一般会议中常见的如迟到、议题偏离等原因,导致评审会议效率不高。

如何提供评审的效率?以下跟大家分享软件过程评审的轻量级实践。

2评审定义

软件评审,是指在软件开发过程中,由参与评审的人员对软件开发文档或代码进行评审或检查,目的是帮助查找缺陷和改进点。

根据评审的内容特点,评审活动可分为管理类评审和技术类评审。

管理类评审:与管理相关的评审活动,如立项评审、项目计划评审、里程碑评审、结项评审等。管理评审方式包括:会议、会签、审批三种;

技术类评审:与技术相关的评审活动,如需求评审、概要设计评审、详细设计评审、代码走查、测试用例评审等。技术类评审主要方式为技术评审会议和组内会议两种方式。

3评审角色

参与评审会的主要角色:被评审人、评审组织者、评审组长、会议记录人、公司归档人。

评审组长一般由领导和专业负责人组成,评审组长需提供明确的评审结论。会议记录人一般由项目组内及组外(如测试负责人)两人承担,以上人员如有无法参加的情况,需指明代理人,代理人承担相应职责。

4评审流程

软件评审内容:

1)检验产品是否满足以前的规范,如需求或设计文档;

2)识别产品相对于标准的偏差;

3)向作者提出改进建议;

4)促进技术交流和学习。

下表为轻量级评审实践中总结的一页纸规程。

1)必须评审的阶段/文档:需求、设计。

2)评审项说明:需求须是需求说明书;设计包括原型设计,概要、详细和数据库设计说明书。

3)评审约定:文档以公司的组织财富库中的模板为基准。

4)主要参会角色:领导、专业负责人及项目相关人员。

5)所有参会人员须签到。会议纪要发送前需抄送给项目负责人及QA审核。评审组织者审核会议纪要时,需提供发现缺陷数、会议时间等量化数据,并负责将会议结论发送参会人员及抄送领导。评审结果为有条件通过的,需一周内修改完成再次发邮件给参会人员确认;对于评审不通过的,项目组须两周内发起复审申请。

6)对于评审发现的问题,会议记录人需跟踪问题状态直到关闭。

7)对于质量专委会工作中发现的典型事件,公司实行奖惩。

5评审要点

在评审时,对如下评审要点会重点关注,也往往在这些评审点更容易发现较多的问题:

1)使用了新技术,方法,工具的组件

2)关键的架构性的组件

3)难以理解,却又必须准确和优化的复杂逻辑或算法

4)具有危险失败模式的组件,而且是任务、可靠性、安全性关键的

5)具有多个异常条件或失败模式的组件

6)不易测试的异常处理代码

7)打算复用的组件

8)将作为其他组件的模型或模板的组件

9)影响产品多个部分的组件

10)复杂的用户界面

11)由缺乏经验的开发者创建的组件

12)具有高复杂度的代码模块

6结束语

对于智力高密集型的企业来说,最大的成本是人力成本。在评审实践中,我们还注重采用多种实际工具和手段,如针对阶段评审的注意积累检查清单;还有些评审是以在线的形式进行的,对于评审中量化项,可通过系统平台进行在线确认;对于代码评审,先利用一些业内工具进行预审;对于存在严整分歧的问题,会另外组织小型的专题会议进行讨论以便解决问题。通过以上轻量级的实践,提供人员利用效率,做好项目成本管控。

通过提高评审会的效率,不但确保了软件的质量,而且实施成本较低,在团队实施中非常容易推广。

通过提高评审会的效率,也加强了组织的度量,包括项目及项目团队的数据度量,为组织升级到CMMI4、CMMI5级的高成熟度奠定了数据和质量的基础。

当然,在以上的评审实践过程中,我们还在不断积累的评审专家信息、评审高风险点、评审度量项以及最佳实践场景等组织资产财富,为组织的持续改进保驾护航。

参考文献

[1]项目管理协会,《项目管理知识体系指南》,2009

[2]CMMI Product Team,《CMMI? for Development, Version 1.3》,2010

[3]Mark C. Paulk,《A Comparison of ISO 9001 andthe Capability Maturity Model forSoftware》,1994

作者简介:张萍,信息系统项目管理师,多年软件开发、质量管理经验,目前在福建国源通信技术有限公司南京分公司负责质量管理工作。

夏仲钟,多年项目管理经验,目前在福建国源通信技术有限公司南京分公司负责项目管理工作。

张坤,多年软件开发与设计经验,目前在福建国源通信技术有限公司南京分公司负责软件的设计和开发工作。

软件过程管理 篇7

软件配置管理(SoftConfigureManagement,SCM),简单而言就是对软件及相关内容的变化进行规范和高效管理。软件配置管理贯穿于整个软件生命周期,为软件研发提供了一套管理办法和活动原则。[1]它提供了工作空间管理、并行开发支持、权限控制、变更管理等一系列管理模式,贯穿于整个软件产品开发生命周期,成为软件质量保证、过程改进和项目管理的基础,是软件产品开发企业不可或缺的重要管理手段。但是如何针对某类项目具体实施配置管理,将现有配置管理相关理论和软件开发过程有机结合在一起,实现贯穿软件开发过程的配置管理实施方法是一个需要深入研究的问题。

1软件配置管理概述

1.1软件配置管理的内容

随着计算机应用的深入,软件项目的需求日益复杂且变更频繁。配置管理逐渐成为软件生命周期中的重要控制过程,在软件开发过程中扮演着越来越来重要的角色。

在整个项目的软件生存周期内,软件配置管理记录了软件产品的整体演化过程,是对处于不断变更、完善过程中的软件产品进行跟踪和管理的过程。整个管理过程包含版本控制、建立软件配置库、配置项变更控制、软件基线记录报告、配置审计与追踪、配置状态报告等多项活动,它通过控制、记录、追踪对软件的修改和每个修改生成的软件配置项来实现对软件产品的管理,完成对软件产品及其开发过程、生命周期的控制和规范,实现软件产品完整性、一致性、可控性。

站在整个开发过程的高度,一个完整、优秀的配置管理过程能够覆盖整个系统软件开发、测试、变更、维护的各个方面,同时对软件开发过程进行宏观管理和控制,使软件开发过程具备更好的可预测性,软件产品具有可重复性和可追溯性,从而大大提高软件开发的效率和质量,建立和维护软件项目产品的完整性,保障所有软件开发资源的维护和集成。[2]1.2配置管理在软件开发过程中的重要性

对于大型软件开发项目来说,在技术日新月异、人员流动频繁情况下,对软件开发过程中的大量文档、数据和代码进行统一管理、维护,建立相应的知识产权库,把个人的零散研发积累转化为项目共有的知识产权,这对于提高工作效率,缩短产品研发周期,增强软件可维护性和产品核心竞争力具有至关重要的作用。

配置管理与项目开发的成功与否息息相关。众所周知,软件配置管理的最终目标是管理软件产品。由于软件产品是在用户不断变化的需求驱动下不断变化的。为了保证对产品进行有效的控制和追踪,配置管理过程不能仅仅对静态的、成形的产品进行管理,而必须对动态的、成长的产品进行管理。由此可见,配置管理同软件开发过程紧密相关。配置管理必须紧扣软件开发过程的各个环节:管理用户所提出的需求,监控其实施,确保用户需求最终落实到产品的各个版本中去,并在产品发行和用户支持等方面提供帮助;响应用户新的需求;推动新的开发周期等。通过配置管理过程的控制,用户对软件产品的需求如同普通产品的订单一样,遵循严格的流程,经过受控的生产流水线,最后形成产品,发售给用户。各个角色间职责明确,泾渭分明,又前后衔接,相互协调。

软件配置管理是软件开发的基石,它为软件研发提供协作开发的环境,规范了开发流程,大大提高了研发效率,确保了研发过程中的可追溯性,使整个软件研发过程成为相互协调、相互促进的有机整体。

2软件配置管理的实施

2.1软件的开发过程

软件开发过程包含软件需求分析、体系结构设计、代码开发和变更、软件集成、各级测试、产品交付等所有活动和任务的全过程。[3]项目开发和维护阶段是实施配置管理主要活动的阶段。软件开发过程中的配置管理如图1所示。

(a)软件部分开发全过程(b)配置管理的实施过程

图1(a)描述了软件部分开发全过程,图1(b)描述了配置管理的实施过程。二者有机结合形成了实施配置管理的软件开发模型。

在项目计划阶段,配置管理的主要活动是制定配置管理计划。项目开发维护阶段是项目研发的主要阶段,包括设计、软件研发、测试和产品发布等活动。而软件配置管理的实施贯穿于整个项目的开发和维护。

1.3配置管理工作流程

在项目开发和维护阶段,配置管理活动主要分为以下几个方面:

(1)配置管理人员完成的管理和维护工作。

(2)集成人员和开发人员执行的软件配置管理策略。

(3)变更流程。

这几个方面彼此独立又相互联系。

2.3实施软件配置管理的关键活动

在一个完整的软件开发过程中,实施软件配置管理活动包括配置标识、版本控制、变更管理、状态统计、配置审计等概念。其中,配置标识定义了配置项名称;版本管理跟踪了开发过程中变更行为和版本信息;变更控制管理、记录不同配置项间执行更改的过程;状态统计则在版本控制和过程管理的基础上,量化软件开发的进度;而配置审计通过功能和变更审计,对软件实施过程及信息项的完整性、正确性进行检验。软件开发过程中软件配置管理的各项关键活动如图2所示。

3软件配置管理策略

3.1版本管理策略

版本控制是配置管理的一个关键问题。[4]版本通过记录配置项的当前状态,为后续开发提供依据;而且还可以追溯版本以前的状态。而版本管理的主要功能就是对软件生存期内各种软件实体、文档等信息项的修改和变化的管理。此外,版本管理支持并行开发,能够有效地解决版本的同步以及不同开发者之间的交流问题,减少编码错误和重复劳动。序列化开发和并行开发的对比如图3所示。

软件配置管理策略分为基于构件策略、可变粒度策略、面向任务策略、并行开发策略多种管理策略。其中并行开发策略被广泛应用于不同用户、需求多变、更改频繁的大型软件研发项目。

并行开发策略采用团队模式对整个软件项目进行同步变更,实现了开发人员同时在同一软件模块上工作,同时对同一代码部分做不同修改,互不干扰,协同工作而又不失去控制,并支持变更内容合并,最大限度地调动资源,在较短时间内完成更多功能的研发,缩短产品发布时间,使软件研发过程规模化、规范化、成熟化。

3.2配置项标识策略

在配置管理中,配置项就是受软件配置管理控制和管理的工作单元。[5]需要记录变更或状态的所有元素都可以纳入配置项管理。例如:开发及维护环境中开发工具和项目管理工具;设计产品中的规格说明、测试计划、用户手册等文档;编码产品中的源代码、执行程序等元素,都可作为配置管理的配置项。

配置项可以是大粒度的,也可以是小粒度的。可以是多个元素,也可以是元素的集合。粒度越小,管理成本越高,配置进度也越高。配置项集合如图4所示。

通常把同一工作任务下的1组元素定义为1个配置项,而不针对一个个元素进行单独管理,以节约管理成本。变更控制的对象如图5所示。

3.3发布策略

发布过程的系统目标码版本包括系统执行码、系统参数及相关文档等。版本发布策略构建了统一的发布环境,保障了软件的正确集成,为开发人员的后续工作提供了稳定的基础。软件发布版本树如图6所示。

当项目经理确定需交付软件版本时,配置管理人员需为新的软件版本建立发布标签,标识发布版本的开发环境。从上一版本中检出发布版本,进行编译链接,生成可执行代码提供给测试人员测试,完成测试后,配置管理委员会(CCB)成员对该版本发布进行审核,审核通过后,配置管理人员按照要求生成发布文件并冻结开发权限。发布策略流程如图7所示。

4结束语

我国软件配置管理的发展相较于西方发达国家落后了几十年时间,存在着很大差距。未来的软件配置管理将被置于更重要的位置,集自动化、规模化、多功能于一体,且具备持续改进、富有针对性的管理模式将成为今后的主要研究方向。如何切实提高过程管理质量,规范软件配置管理,设计通用、接口简单、可扩展的软件配置管理模式,促进我国软件产业的飞速发展,将在未来很长一段时间需要持续关注和不断探索。

摘要:软件配置管理贯穿于整个软件生命周期,为软件研发提供了一套管理办法和活动原则。文章描述了软件配置管理的重要性,针对软件开发过程中配置管理的实施过程、变更控制进行了详细阐述,提出包括版本管理策略、配置项标识策略、发布策略在内的软件配置管理策略。

软件过程管理 篇8

“精简并行过程” (Simplified Parallel Process, SPP) 是基于CMM以及软件工程和项目管理知识而创作的一种“软件过程改进方法和规范”, 它由众多的过程规范和文档模板组成。SPP主要用于指导国内IT企业持续地改进其软件过程能力。

此处“精简并行”的含义是:

(1) 对CMMI 3级以内各过程域的内容和要求作了“精简”处理。

(2) 在产品生命周期之内, 项目管理过程、项目研发过程和机构支撑过程“并行”开展。

SPP模型把产品生命周期划分为6个阶段, 分别为:产品概念阶段, 记为PH0;产品定义阶段, 记为PH1;产品开发阶段, 记为PH2;产品测试阶段, 记为PH3;用户验收阶段, 记为PH4;产品维护阶段, 记为PH5。

在SPP模型中, 软件项目的过程有3大类:项目管理过程、项目研发过程和机构支持过程。上述3类过程可以细分为19个主要过程域, 分布在PH0到PH5的各个阶段。

项目管理过程包含6个过程域, 分别为:立项管理、结项管理、项目规划、项目监控、风险管理、需求管理。

项目研发过程包含8个过程域, 分别为:需求开发、技术预研、系统设计、实现与测试、系统测试、Beta测试、客户验收、技术评审。

机构支撑过程包含5个过程域, 分别为:配置管理、质量保证、培训管理、外包与采购管、服务与维护。

2 基于SPP的软件过程管理实践

2.1 项目案例

项目名称:云南某糖业集团综合管理信息系统。

项目概况:本项目主要内容为在充分分析用户实际需求基础上, 采用面向构件的设计方法, 基于J2EE系统架构, 开发并实施“云南某糖业集团综合管理信息系统”, 实现该糖业集团从甘蔗原料的种植、运输、生产到成品糖的销售全面的信息化管理。包括以下子系统:财务管理、农务管理、OA系统、生产管理、采购管理、库存管理、供应商管理、销售管理、人力资源管理。

2.2 过程模型定义

SPP模型的3类过程贯穿了产品的整个生命周期, 19个最常见的过程域都合理地安排在产品生命周期中的某些阶段。用户可以根据自己产品的特征, 适当地裁剪或扩充SPP的过程域, 很容易制定出最适合于本产品的过程模型。

我们根据项目系统功能较多, 涉及面较广、项目开发时间较紧等特点, 对SPP进行裁剪, 定义了如表1所示的过程模型。

2.3 软件项目过程管理实施过程

2.3.1 项目计划

(1) 由项目经理组织项目计划讨论会, 在讨论会上各开发负责人对自己所负责的模块所需要的工作量进行评估, 根据工作量和工程需求初步确定总体开发计划和发布时间;

(2) 写完成后发送给项目经理、相关的开发人员和测试人员;

(3) PPQA确认所有相关文档经过了评审并都已经commi到CVS。

2.3.2 需求开发与管理

(1) 由需求分析负责人统一接收糖业集团客户的相关规范和新需求, 需求分析负责人将规范和新需求转发给项目经理、相关的开发人员和测试人员, 同时commit到CVS;

(2) 需求分析负责人、项目经理仔细阅读规范与需求后, 对规范和新需求进行研究, 并就难点和疑点进行讨论, 整理出重点内容, 并将重点内容发给项目经理、相关的开发人员和测试人员, 同时commit到CVS;

(3) 项目经理、测试负责人、需求分析负责人、相关的开发人员与测试人员开会对规范、需求和重点内容进行讨论, 确定需求的具体含义以及最终实现的需求和功能点;

(4) 项目经理根据规范、需求和开会讨论结果编写出《需求规格说明书》与《功能列表》, 测试负责人 (或专门的需求分析负责人) 对文档进行检查并修改完善, 然后commit到CVS;

(5) PPQA (文档管理专员) 确认所有相关文档经过了评审并都已经commit到CVS。

2.3.3 设计与实现阶段

(1) 技术经理构思系统设计, 项目组开发成员一起讨论系统的设计, 对设计形成较为清晰的思路;

(2) 技术经理负责编写概要设计文档, 与开发团队成员与测试负责人一起讨论概要设计;

(3) 概要设计完成后, 技术经理编写详细设计文档、数据库设计文档和编码规范, 各模块负责人负责编写所负责的模块进行详细设计;

(4) 设计文档编写完成后, 发邮件通知项目经理、测试负责人、相关开发人员和测试人员;

(5) 技术经理、项目经理、测试负责人、相关开发人员和测试人员对所提交的概要设计文档、详细设计文档进行审查, 将建议和意见以邮件的形式反馈给模块负责人;

(6) 模块负责人收集邮件中的修改建议并对设计文档进行修改, 同时回复邮件说明详细设计修改情况, 修改后的详细设计commit到CVS;

(7) 对设计存在争议或出现明显不合理的设计, 召开一个小型会议对异议进行讨论, 有效解决设计所出现的分歧;

(8) PPQA对开发最终修改的详细设计计划进行检查, 并确认所有文档都已经commit到CVS。

2.3.4 系统测试阶段

(1) 在项目的设计阶段, 测试负责人根据规范文档、功能列表和概要文档编写总体测试方案与性能测试方案;

(2) 测试方案编写完成后, 发邮件通知技术经理、项目经理、相关开发人员和测试人员;

(3) 技术经理、项目经理、测试负责人、相关开发人员和测试人员对所提交的测试方案进行审查, 技术经理和项目经理对测试方案进行总体性的审查, 而各模块负责人则负责相关模块或功能的测试方案的审查, 将建议和意见以邮件的形式反馈给测试负责人;

(4) 测试负责人收集邮件中的修改建议并对测试方案进行修改, 同时回复邮件说明测试方案修改情况, 修改后的测试方案commit到CVS;

(5) PPQA对最终修改的测试方案进行检查, 并确认所有文档都已经commit到CVS。

2.3.5 系统部署及试运行阶段

(1) 编制计划。与用户方项目实施负责人商议具体测试及试运行时间, 地点, 人员等安排, 项目组编制《测试及试运行计划》。

(2) 签署计划。用户签署《测试及试运行计划》, 进一步确认测试及试运行安排。

(3) 发测试及试运行通知。在测试及试运行开始前2天, 按照签署的《测试及试运行计划》, 将时间, 地点, 人员等信息通知用户实施负责人。

(4) 搭建环境及数据准备。在试运行开始前搭建好软件环境、硬件环境、网络环境、调通线路;检查软件、硬件、网络、线路等各个环节是否有问题;

(5) 组织测试及试运行。用户相关各级领导给予全面配合, 组织相关人员进行测试及试运行。

(6) 测试及试运行总结。测试及试运行完成, 总结试运行中设备、软件的运行情况, 总结试运行中业务流程和操作环节的情况, 以书面总结形式将测试及试运行结果通知相关负责人。

2.3.6 系统培训阶段

系统使用人员计算机应用水平较低, 有部份人员还不会使用电脑, 系统培训阶段工作是整个项目实施工作中比较重要的工作, 此阶段的培训工作中将用户参加产品培训的人员划分为3个层次:决策层、技术层、操作层。

3 结束语

“云南某糖业集团综合管理系统”应用范围包括集团总部、8个分公司和子公司, 具有系统功能较多, 涉及面较广、项目开发时间较紧等特点, 严格、合理的项目过程管理将是项目成功的关键, 我们采用了上述基于SPP的软件项目过程模型, 结合该项目特点进行适当裁剪, 并创建了一套符合实际情况的实施方法, 有效地对软件项目过程进行了管理, 确保项目质量及进度, 成功开发出一套糖业集团综合管理系统。

摘要:对CMM及CMM精简并行过程进行了分析, 结合具体的项目案例, 在基于CMM精简并行过程模型基础上进行裁剪, 建立了符合项目实际情况的过程管理模型, 提出了一套符合项目实际情况的软件过程管理实施方法, 有效地对软件项目过程进行了管理, 保证了项目的质量及进度。

关键词:CMM,SPP,软件过程管理

参考文献

[1]RUZHI.http://www.mypm.net/blog/user1/runzhi/archives/2006/1256.html, 2006.

[2]霍英.面向小型软件企业/小型软件项目的CMM应用研究[J].计算机应用研究, 2007 (2) .

[3]林锐.软件项目管理与精简并行过程[J].计算机系统应用, 2004 (8) .

[4]SELIYA, N1, KHOSHGOFTAAR, T1M1, ZHONG, S1Analyzing soft-ware quality with limited fault-p roneness defect data[C].1Ninth IEEE International Symposium on High-Assurance Systems Engi-neering, 2005.

软件过程管理 篇9

软件管理工程的发展, 经历了从20世纪70年代开始以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征的结构化生产时代, 到20世纪90年代中期, 以CMM模型的成熟和日益为市场接受为标志, 已经进入以过程成熟度模型CMM、个体软件过程PSP和团队软件过程TSP为标志的以过程为中心的时代, 而软件发展第三个时代, 即软件工业化生产时代, 以20世纪90年代中期软件过程技术的成熟和面向对象技术、构件技术的发展为基础, 已经渐露端倪。

1 小规模企业软件过程管理现状

1.1 小规模软件企业特点。

小规模的软件企业或软件开发机构的数量在我国软件产业中占据很大的比重, 其突出的特点主要表现在具有灵活机动、响应速度快, 组织结构简洁、管理清晰快捷、执行力高, 把握优势业务领域、熟悉行业需求等方面。但具备这些优势的同时, 兼具有人力资源不足、人员流动性高, 规范程度不高、制度约束度低, 对于人的依赖性较高, 经验到制度的转化程度较低, 软件销售收入占总收入的比重较低、维护成本较高等缺点, 这也是小规模软件企业在管理过程中不容忽视的重要问题。

1.2 小规模软件企业应对策略。

如何最大限度地避免这些问题的产生呢, 除了一些不能改变的客观因素外, 软件过程管理与改进策略研究在其中占得分量也越来越重, 也越来被人重视和研究。提升软件过程的管理水平日益成为工业界和学术界共同的关注点, 软件过程管理是提高生产效率和保证软件质量的一个重要方法。在产品开发的整个生命周期中包括一系列复杂的活动, 和其他管理过程类似, 现代软件过程管理工作也逐渐趋向复杂。根据企业的实际情况和发展需求, 优化流程, 努力提升人们在过程中的工作能力, 从而提升产品质量、提高生产率并降低成本, 这是软件过程改进的目的。

具体到软件过程来讲, 软件开发组织经常会遇到诸如项目经常会延期, 任务完成进度难以控制、开发人员不会编写和利用软件文档、需求难以控制, 疲于应付需求的变更、软件质量难以保证、软件版本混乱、没有有效的项目管理方法和实践指导等问题, 从而影响软件质量与交付, 引发客户抱怨, 满意度降低。针对普遍存在的这些管理与技术问题, 大多数软件开发组织已意识到应当在软件过程规范、管理、改进方面采取一系列改进措施和辅助手段, 如当前业界比较流行的建立质量管理体系、进行CMM/CMMI认证等。

1.3 我国小规模软件企业的现状。

目前国内专门从事软件开发的企业有数千家, 而这些软件企业主要以中小规模为主。根据有关统计数据结果分析, 主要组成结构为:50人以下的企业占55%;50~200人的企业占42%;1000人以上的企业为数不到3%。这些中小软件企业一般具有一些共同的特点, 这些特点将直接影响中小软件企业采取什么样的方式来实施软件过程改进活动。软件过程是指软件开发人员开发和维护软件以及相关产品 (如项目计划、设计文档、代码、测试用例和顾客手册) 的一套行为、方法、实践以及变化过程软件过程管理的重要前提是:软件产品质量的好坏主要取决于开发和维护该产品所使用的软件过程质量。有效的软件过程可将人员、工具和方法进行有机结合。作用对象:软件及其相关产品包括:活动、方法实践和革新。

2 软件过程管理及其改进策略

2.1 选择重点, 优先突破。

软件过程改进应选择重点领域, 循序渐进。因为软件过程改进是要在一定程度上颠覆软件企业现有的软件开发和管理过程, 因此对于已经习惯了固有的工作模式的项目经理、开发人员甚至是企业管理者来说, 大规模的改动相反会起到适得其反的效果。因此应该从企业的软肋出发, 逐渐突破, 在一些重点领域, 让企业尝到过程改进的“甜头”, 从而更好的推进组织级的软件过程改进。

从软件开发过程的角度来讲, 不同的软件企业都有不同的开发过程, 而且不同的软件项目也会采用不同的开发过程, 而开发过程中的需求、设计、编码等阶段, 较大程度上依赖于企业自身的技术实力和开发人员的知识、经验及综合能力。而软件过程改进的核心和重点在于管理, 因此本文建议将以下几个方面作为软件过程改进的重点领域。

2.1.1 注重项目计划与软件测试工作。

项目计划是项目成功的关键, 许多项目的失败都是由于计划制定得不合理或者计划执行不到位而引起的。项目计划应对项目进行合理的规模、成本、工作量等方面的估算, 正确的估算是制定项目计划的前提;根据项目自身特点与项目组人力资源状况进行一定粒度的分解。确保每项分解后的任务均可对应到相对比较适合完成这项任务的项目成员;项目任务要充分并行, 提高人力资源的利用率;计划安排应留有一定余地, 避免出现前松后紧的情况;面对项目计划变更应进行合理评估, 考虑到所有可能会受到影响的因素。

软件质量是软件企业核心竞争力的首要体现, 而软件测试则是软件质量的重要控制措施。规范软件测试过程, 将对软件质量的提高起到重要作用。软件测试应由独立的软件测试团队执行, 只有这样才能保证软件测试的公正与客观;软件测试计划应尽早制定, 软件测试应尽早进行, 软件需求确定之后, 就应该开始制定软件测试计划;软件缺陷应规范管理, 确保所有缺陷都分配到人;结合使用各种软件测试方法;不应忽视软件性能方面的测试与调优。

2.1.2 注重配置管理与质量保证。

一个软件项目的所有相关资料, 如文档、代码、工具、安装程序等均可作为该项目的配置项。良好的配置管理可以确保软件的一致性。而对于规模较大的并行开发项目来讲, 配置管理尤为重要。应做好配置管理计划, 选择合适的配置管理软件;对于软件版本进行统一管理, 确保多个开发人员协同开发不发生冲突;对于基线配置项的变更应制定变更控制流程, 使整个开发与管理过程可追溯可跟踪。

软件测试侧重于对软件产品的质量检查和控制, 质量保证则侧重于对软件过程进行质量检查和控制。产品和过程是一个软件项目成功的必不可少的两个重要因素, 其中产品质量是短期、项目级的影响因素, 而过程质量是长期、组织级的影响因素。质量保证也应由专门的人员进行;主要对项目计划、项目里程碑、阶段成果等进行质量检查, 记录和跟踪质量问题;质量保证人员可以由软件测试人员兼任, 以平衡人力资源的使用;质量保证人员应客观、公正的进行工作。对于以上四个过程领域的改进方法, 本文建议首先从建立规范人手, 然后在规范的实施过程中, 逐步进行修订和完善。一个规范通常由角色职责、工作流程、文档模板、工具支持等四部分组成:具有不同职责、权限的执行人员, 按照既定的工作流程进行相关的工作活动, 并将T作过程记录以文档的形式保存下来, 辅以一定的管理工具, 方可保证其工作产品的质量并使其具有延续性和可维护性, 这也正是建立规范的主要目标。同时, 在规范的范畴内, 所有人员遵循同样的行为准则, 能够更好的进行沟通。

2.2 结合优秀的软件过程元素。

CMM/CMMI是目前业界进行软件过程改进的首选模型, 其实CMM/CMMI已成为事实上的标准。世界各国的软件企业纷纷遵循CMM/CM-MI建立起软件过程规范, 积极进行CMM/CMMI的认证。然而如前文所述, 我国的中小软件企业未必适合完全按照CMM/CMMI来进行软件过程改进, 反而可以结合众多软件过程模型, 从自身的实践中总结出一套适合自己的软件过程改进模式。RUP (Rational Unified Process, 统一过程) 的迭代思想和XP (eXtreme Programming, 极限编程) 的测试驱动开发方法即可以尝试引用到企业当前的软件过程中来。

2.3 重视个体软件过程改进。

开发人员是一个软件企业组中最小的开发主体, 开发人员编码质量的高低、工作计划是否恰当、时间利用率的高低、缺陷率的高低等均会对软件质量以及组织的软件过程产生重要影响。因此, 个体软件过程 (PSP, Personal Software Process) 的概念被提了出来, 相应的也出现了个体软件过程改进这一概念。

PSP是一种用于控制、管理和改进软件开发人员的个人工作方式的过程, 它包含一套完整的方法、表格和规程, 用来指导开发人员如何计划、度量和管理自己的工作。个体软件过程改进可以首先从计划管理、缺陷管理、时间管理等几个方面入手, 同时可以配合任务检查单等工具。通过锻炼个人工作估算和计划能力, 提高对工作任务的驾驭程度;通过管理缺陷, 提高个人以及整个项目对于软件缺陷的控制程度;通过记录和分析时间利用情况, 来掌握工作效率以及时间利用率等方面的一些基础指标;任务检查单, 则可以与计划管理和缺陷管理搭配使用, 有利于个人工作任务的管理。

2.4 重视自评估。

软件企业经常会盲目地进行软件过程改进, 在没有明确自身软件过程处于何种阶段、何种水平的情况下, 贪大求全地建立了一整套软件过程规范, 而实施效果却差强人意。因此, 在进行软件过程改进之前, 以及在进行持续改进的过程中, 对自身软件过程进行自评估是非常必要的。软件过程自评估主要采用调查问卷的方式, 另外可以结合某磐软件度量的方法, 通过定性和定量相结合的方式, 形成当前软件过程状态的评价。调查问卷方式, 需要设计关于软件过程现状的调查问卷, 这些问卷可以是针对某个过程领域的, 也可以是针对整个软件过程的。然后在组织内部选择不同岗位的人员参与一次评估, 根据问卷调查结果, 得出相应的结论。

2.5 适当利用辅助工具。

软件过程管理与改进的本质是一个管理的过程, 管理就需要遵守规则。利用软件工具进行软件过程管理是软件企业普遍采用的方式。目前在软件企业应用较多的软件类别有项目管理工具、配置管理工具、软件测试工具、缺陷管理工具等, 这些工具一般都是针对某一个过程领域, 具有强大、完善的功能, 企业可以根据自身需要选择相应的工具进行辅助管理。但美中不足的在于, 适合于中小软件企业进行整个软件过程管理的轻量管理工具还不多见, 有些厂商的工具配置复杂、价格高昂, 令中小企业望而却步。

结语

软件过程改进不是一蹴而就的过程, 软件企业需要在不断的积累中持续改进。通过实践总结, 本文提出了几点通用的软件过程管理与改进策略, 旨在为我国中小软件企业的软件过程改进工作提供参考。当然, 对于每种策略的具体实施, 本文并未提出深入的方法, 如基于RUP、XP、CMMI等软件过程模型相结合的软件项目实践、PSP中的软件度量方法、软件过程管理与评估系统的试用与持续完善等, 均是我们下一阶段的重点研究和实践方向。

参考文献

[1]郭莹, 杨美红, 杨萍, 等.中小软件企业软件过程管理与改进策略[J].计算机与数字工程, 2009 (2) .

[2]刚家林, 崔巍.中小软件过程管理模型的研究[J].中国科技博览, 2010 (31) .

[3]闫振兴, 郑骏.软件缺陷度量与软件过程管理方法研究[J].计算机与数字工程, 2010 (8) .

[4]王海阳.软件过程管理及其成本的平衡[J].计算机系统应用, 2005 (3) .

[5]钱懿, 庄长远.软件企业过程管理支持系统的研究[J].电脑知识与技术, 2010 (1) .

软件过程管理 篇10

本文将以软件需求工程为侧重点、从软件需求变更的原因、影响、原则及管理方案为研究领域进行分析和讨论。

一、软件需求变更的主要原因分析

1、客户需求因素。

在软件的开发过程中, 客户会随着项目开发的进程逐渐达成对软件系统的深入了解和认识, 在不断的思考过后形成了新的需求信息或改进的需求信息, 进而会提出满足其新需要的软件变更条款。2、系统内部因素。在软件开发过程中, 计算机外部硬件设备、系统软件、系统数据等内部系统之间的相互适应要求都会引起软件需求的变更。这种需求变更将会以硬件设备、操作系统、系统软件等原始系统因素为基础进行更新、升级、换代, 以此确定软件设计的安全性、兼容性和准确性。3、业务环境因素。在软件开发过程中, 与软件开发相关联的制度、规范、政策等的重新改写与设定, 或是软件开发业务要求的不断改变都将会引起软件需求变更。例如, 软件的需求会随着保险制度的变化而变更, 会随着交通制度的变化而变更等等。4、需求开发缺陷因素。在软件需求开发过程中, 需求信息调查研究、需求文档的编写及评审等工作的不足都是影响软件需求变更的主要原因。

二、软件需求变更的主要影响分析

1、影响软件开发的实际进度。

频繁的需求变更不仅需要大量项目人员的支持, 还需要投入大量的经费, 如果投入的力度过大, 将会导致软件开发项目超过预期甚至导致失败。

2、影响软件开发质量的优良。

在软件开发过程中, 需求的不断变更将会导致原有的需求链断裂, 对原定需求的部分环节造成影响, 而这些影响又将导致软件开发项目设计的改变, 最终导致系统质量的下降, 开发效率的降低。

3、影响客户与开发者之间的相互合作。

软件开发是客户与开发者之间的一种相互信任、相互合作的过程。如果二者之间在软件需求变更上产生不同意见, 而且没有得到妥善的处理, 将会导致二者之间的合作关系破裂, 甚至造成软件开发中断等严重后果。

三、软件需求变更的处理原则

1、完整性原则。

完整性是软件安全的基本要点。在软件开发过程中, 要保证需求变更信息的采纳收集、汇总整理、评判审核、监视追踪等环节的完整性, 保证软件需求变更能够按照规范的流程进行操作。

2、合理性原则。

在软件开发过程中, 客户与需求分析人员将会以不同的视角、不同的态度评估需求变更条件, 要想达成软件开发的精确性, 就需要在用户需求、软件技术和整体开发能力的基础上, 达成需求变更的合理性, 实际性。

四、软件需求变更的有效管理方案

1、达成开发者与客户之间的有效沟通。

在发生软件需求变更时, 需求分析人员要与客户进行及时有效的沟通和反复的确认, 向客户说明开发建议和解决方案并制定相应的合同规范, 以此来达成对客户的承诺和软件修改后的满意度。2、制定软件需求变更信息的整理报告。在软件需求变更过程中, 要对客户需求的规范、变更后的功能、软件质量目标、变更解决方案等信息进行整理、分析和记录, 制定明确的需求分析整理报告, 以此来确保需求变更的准确性、实际性与科学性。3、进行明确、合理的人员分工。在需求变更达成协议后, 就需要对开发人员进行合理的安排和组织, 对操作人员和测试人员进行明确的分工;利用合理的需求变更管理工具, 达成整体软件项目开发的高效和优质。4、做好需求和产品特性的评审和测试工作。做好需求变更相关信息的记录后, 需求分析人员要组织开发、测试与客户等相关人员对更改后的需求进行评审和测试, 筛出掉不符合实际的变更需求, 确保需求变更流程的顺利进行。在软件变更实施的最后阶段, 要对软件产品系统进行测试, 以检验其是否满足客户的原定需求、是否达到了预期的效果和期望, 以保证更改后产品系统的基准性和安全性。

总之, 在出现软件需求变更状况时, 首要的就是与客户做好沟通和协商, 其次要做好需求变更信息的详细记录, 最后做好软件需求变更后的测试。只要做好这关键的三部, 就能够充分确保软件开发的规范化和优质化。

参考文献

[1]李厚明.软件项目需求变更风险管理[D].山东大学2012

软件开发方法的创新发展过程研究 篇11

【关键词】软件开发方法;结构化;面向对象;创新发展过程

1.软件开发方法概述

作为软件工程理论的基础和关键内容的软件开发方法,对于软件行业的发展进步具有重要推动作用。软件开发方法在进行实际软件开发时需要对即将要开发软件的功能了解清楚,明确该软件要“做什么”,然后制定具体计划来实现“如何做”。在不同时期,软件需求也会不同,为了满足不同的软件需求,软件开发方法也在不断创新和改变,并且每种开发方法也会存在灵活多样的表现形式。从软件工程发展的历程来看,软件开发方法不断创新发展才能有今天的辉煌结果,在接下来的软件工程发展过程中,软件开发方法仍会为了适应要去而不断创新发展,不断实现新的突破。

2.结构化和面向对象方法的创新发展过程

软件工程发展至今仅有40余年的时间,其何以在40年的时间内达到今天的程度,其中主要的原因便是创新。创新在软件开发方法的发展过程中起到了重要作用,下面笔者就以结构化和面向对象方法为例进行软件开发方法的创新发展过程研究。

2.1 结构化软件开发方法的创新发展过程研究

结构化方法共包括三个部分:结构化分析、结构化设计以及结构化实现,其核心和重点是结构化设计及其方法。整个结构化软件开发方法的实现就是在结构化设计的基础上进行的。

软件工程兴起初期,大多数软件开发方法和技术人员都过分追求软件开发技术技巧性,对于程序的清晰性、简便性没有重视,往往造成设计出的程序可读性和理解性差,使得开发过程简单但是软件维护十分艰难。对于早期常常使用的goto语句,于1968年展开了一场是否取对其进行取消的激烈争论,经过激烈争论软件开发人员认识到软件开发方法的进步并不是仅仅取消goto语句就可以实现的,这是事关如何编写程序的一个大问题。并且人们认识大编写程序时不能仅仅追求技巧,还要注意软件的后期维护。

经过激烈争论,人们开始需求一种具有良好清晰性、可读可理解性并且易于维护的软件开发方法,最终经过大家的共同努力发现由顺序、选择、循环三种基本结构组成的程序具有上述优点,并且经过研究发现任何程序都可由那三种结构实现,这变产生了一种新的软件开发方法—结构化软件开发方法。

结构化软件开发方法的出现时软件工程发展史上一次里程碑事件。1971年和1973年结构化设计语言Pascal语言和C语言问世,1972年结构化的程序设计工具N—S盒图问世,这些计算机语言和工具的出现大大提升了结构化开发方法的高度,对软件工程发展具有重大影响。

2.2 面向对象法的创新发展过程

使用计算机技术是为了将现实世界的实体通过某些技术方法使其反映在计算机中,并使现实世界和计算机世界尽量吻合相近,但是传统软件开发方法往往是面对过程的,将不能将现实和计算机很好的结合,为了解决这个问题,面向对象的软件开发方法问世了。1983年和1995年问世的C++语言和Java语言是面向对象方法的典型代表。采用面向对象的程序设计语言能够将各种数据和操作结合起来,咋计算机模块中衍生对象和类的概念,从而形成了面向对象的软件开发方法,使得现实世界和计算机的结合更加紧密。后来,人们在面向对象软件开发的基础上进行再创新,并且引入了软件生命周期概念,形成了OOA面向对象分析和OOD面向对象设计方法,至此,面向对象的软件开发方法得以全面形成。

3.结构化和面向对象方法的创新发展过程分析

通过对结构化和面向对象方法的软件开发方法的创新发展过程进行简单的阐述,可以从中分别总结出结构化和面向对象方法在创新发展过程中的四个重要环节。

3.1 结构化开发方法创新发展过程中的四个重要环节

(1)发现软件开发过程中存在的问题

在结构化方法问世之前,软件开发人员的个人随意性比较严重,进行开发过程中追求技巧性,个人随心所欲,软件开发行业没有一个确定的标准和制度。

(2)方法创新之前先创新思维理念

后来,人们认识到软件开发不能只一味追求技巧,必须将软件的可读性、可理解性、可维护性作为新的开发指标,要使用顺序、选择、循环三种基本结构自顶向下的设计软件,改变传统设计理念。

(3)用新的思维理念开发结构化软件的核心部分

结构化程序设计方法是结构化软件开发方法的核心,其开发需要使用Pascal语言和C语言技术和N—S图和PAD图两种开发工具结合进行。

(4)采用新的思维理念完善结构化开发方法

将新的思维观念引入结构化方法的完善过程中,在结构化设计方法的基础上,发展结构化分析技术,并将两者结合进行使用。

3.2 面向对象开发方法创新发展过程中的四个重要环节

(1)发现问题

传统软件开发方法将数据和操作分离,现实问题在计算机内不能直观显示,从而使系统分析和系统设计的衔接不自然。同时,面向过程的软件开发方法模块重复利用度小,不利于软件开发方法的发展。

(2)创新思维理念

将客观数据及其操作通过封装固定在一起,在设计中形成对象和类的概念,并且根据等级形成不同的类,通过父类和子类之间的继承关系,实现对象间信息传递。

(3)用新的思维理念开发面向对象软件的核心部分

C++和Java工具以及Smalltalk语言的问世,面向对象的软件开发方式开始形成并且逐渐完善。

(4)采用新的思维理念完善结构化开发方法

将新的思维观念引入面向对象方法的完善过程中,在面向对象设计方法的基础上,通过面向对象分析和设计方法以及UML的问世,使得面向对象的设计和分析不断改善,面向对象软件开发方法不断成熟。

通过对两种典型软件开发方法创新发展过程的细致研究可以发现其发展过程具有四个相似环节,这不是巧合,这是所有软件开发方法创新发展的必由之路。这四个环节可以总结为:

(1)发现软件开发过程在的问题;

(2)为了解决发现的问题开始创新思维理念;

(3)根据新的思维理念构建新的软件开发方法的核心部分;

(4)利用新的思维理念完善出现的新的开发方法。

4.结语

作为软件工程的重要组成部分,软件开发方法的创新发展对于软件工程的发展进步具有重要推动作用。本文以结构化方法和面向对象方法对软件开发方法的创新发展过程进行了深度研究,总结了软件开发方法的发展规律,对于解决新时期越来越明显的软件危机问题具有重要指导作用。

参考文献

[1]贾蓓,王才.软件开发方法分析和探讨[J].太原理工大学学报,1998(4).

软件项目管理项目教学过程研究 篇12

随着软件产业及信息服务外包产业在全球范围内的迅速兴起与发展, 如何培养高素质软件工程人才, 实现高校软件工程专业人才培养与社会需求无缝对接, 已经成为目前各高校软件工程专业人才培养体系所亟待解决的重大问题。“软件项目管理”课程作为各高校计算机软件工程专业的一门重要的专业必修课程, 对于奠定培养软件工程专业技术与管理复合型人才的理论基础起着重要的作用。然而, 软件项目管理课程知识点繁多, 概念、运算枯燥难懂, 学生学习兴趣不足, 难于找到成就感;此外, 由于学生没有工作经验, 对于课堂中学到的理论不知如何在项目中运用。基于以上的问题, 笔者根据多年的企业工作经验, 经过多轮教学的磨合, 总结出一套项目教学的方法。通过教师扮演软件项目的甲方, 学生分组扮演软件项目开发的乙方, 共同完成软件项目的开发管理工作。在项目中, 融入理论讲解, 理论指导实践, 融会贯通。让学生对课程内容产生兴趣, 主动自发的学习课程知识。

2 项目教学过程

课程在介绍项目管理的理论知识的同时, 通过一个《信息管理系统》贯穿始终, 让学生对每个理论知识有个直观的认识, 知道这些理论知识在项目中是如何实际运用的。然后通过8个子项目的实验, 让学生分组合作, 在组中模拟项目中的项目经理, 需求分析人员, 设计编码测试人员, 质量管理人员, 配置管理人员等角色。并在老师指导下, 独立完成项目《图书借阅系统》从启动到结束的全部管理控制过程。8个子项目的内容, 具体如下:

接下来对每个子项目的过程设计如下:

2.1 项目启动。

项目提出:教师模拟项目甲方, 基于学校的信息数字化和现代化的管理需求, 提出《图书借阅管理系统》的项目需求, 给出项目招标书, 希望能在半年的时间内, 由乙方完成该系统的开发工作。由学生自由成组, 模拟乙方, 分析项目后, 写出项目建议书, 参与竞标, 中标后, 即可启动项目。项目知识准备:项目基本概念、项目初始过程、项目授权、生存周期模型。任务实施:a.乙方分析项目b.竞标竞演c.项目立项

2.2 进度管理。

项目提出:项目启动, 项目范围确定后, 接下来我们想想, 我们多长时间能做完这个项目呢?怎么估算和实际情况更接近呢?项目进展过程中, 如果时间上或延迟, 或提前了, 那我们如何把控我们的项目呢?项目知识准备:a.进度管理图示b.进度估算方法c.进度编排方法。任务实施:a.估算项目进度b.关键路径法进行项目进度编制c.会用ms project绘制工程表, 实施进度管理。

2.3 成本管理。

项目提出:我们的项目的报价是怎么产生的?我们项目有哪些成本, 利润又是多少?我们给客户报多少钱, 才不会赔钱?在项目中, 如果钱比预计的花的多, 怎么办?项目知识准备:成本估算方法、成本预算方法、成本控制方法。任务实施:a.成本估算b.成本预算c.成本管理。

2.4 质量和风险管理。

项目提出:项目做完, 进度没有延迟, 花销没有超支, 但客户仍然可能不满意, 为什么呢?因为项目的质量没有达到客户满意的标准。项目中可能存在哪些风险导致项目失败呢?项目知识准备:a.制定质量标准b.进行质量保证工作c.进行质量控制工作d.识别风险e.评估风险f.规划风险g.控制风险。任务实施:a.完成质量计划, 会对质量进行控制b.完成风险计划, 并能对项目中的风险进行应对。

2.5 人力资源和沟通管理。

项目提出:项目中最大的资源是什么资源?是人。每个人都是一个个体, 想让一群人, 高效, 目标一致的做好一个项目, 是个很困难的事。那我们会做哪些工作去建设好一个团队呢?人和人之间需要沟通, 怎么沟通才更有效呢?项目知识准备:a.项目组织结构b.责任分配矩阵c.人员管理计划d.团队管理e.沟通方式f.项目沟通计划。任务实施:a.人力资源管理b.沟通管理。

2.6 配置管理。

项目提出:项目中产生很多代码和文档, 放哪好?代码和文档会多次修改, 有时候想找以前的版本怎么办?多人合作共同开发一个功能, 能不能各自开发各自的, 然后自动整合?其他开发人员未经允许修改了你的代码怎么办?项目知识准备:a.配置管理过程b.配置管理工具VSS的使用方法。任务实施:用VSS进行项目配置管理。

2.7 合同与集成管理。

项目提出:项目最初我们签订了项目合同, 在我们做项目的过程中, 有没有可能去修改合同呢?要修改的话, 如何操作呢?前面我们学习了项目的范围管理、进度管理、成本管理、质量管理、风险管理、人力资源管理、沟通管理、配置管理, 合同管理, 这些管理之间必然有着这样那样的联系, 管理不好, 可能会互相牵制, 互相矛盾。那如何让这些管理相辅相成呢?项目知识准备:a.合同管理b.集成管理。任务实施:a.将《图书借阅系统》的一部分功能外包, 作为合同的甲方写一份合同。b.整理之前的所有项目计划, 形成集成计划, 注意各个计划之间的协调性。

2.8 项目结束。

项目提出:项目最后, 编筐编篓都在收口, 收口阶段要做哪些事呢?项目知识准备:a.合同结束b.项目结束。任务实施:a.乙方整理所有项目成果物, 甲方验收乙方的成果, 验收通过, 宣布合同终止。b.项目提交后, 写项目总结。

3 项目验收与评价

老师 (甲方) 和项目经理共同验收子项目, 评价包括甲方评价, 项目经理评价以及组内成员互评。最终通过答辩的方式, 教师根据学生在组内担当的角色, 以真实项目中的问题提问, 让学生根据所学知识做出案例的分析。

结束语

笔者结合多年的企业工作经验, 将实际的项目开发管理过程贯穿到课堂当中, 通过软件项目开发过程中涉及的管理问题, 一步步引导学生学习软件项目管理知识, 并把理论知识根据自身担当角色, 应用到项目中去。笔者已申报了校级项目教学示范课, 并取得了初步成果, 笔者会在实践中不断完善项目教学过程。

参考文献

[1]李蓉, 叶俊民, 杨艳.基于案例任务驱动的软件项目管理课程实践[J].计算机教育, 2014, 7.

[2]韩万江, 姜立新.软件项目管理案例教程[M].2版.北京:机械工业出版社, 2011.

[3]夏辉, 范书国.基于项目导向和实践考核体系的软件项目管理课程教学模式的研究[J].沈阳师范大学学报·自然科学版, 2014, 1.

[4]刘海, 周元哲.面向专业能力培养的软件项目管理教学研究[J].计算机教育, 2013, 9.

上一篇:阳光管理课程下一篇:高速公路运营