欢迎访问发表云网!为您提供杂志订阅、期刊投稿咨询服务!

软件项目管理论文大全11篇

时间:2023-03-16 15:54:02

软件项目管理论文

软件项目管理论文篇(1)

2、工程项目管理软件

2.1概念的界定

工程项目管理软件(以下简称为项目管理软件)是指以项目的施工环节为核心,以时间进度控制为出发点,利用计划技术,对施工过程中的进度、费用、资源等进行综合管理的一类应用软件。它包括五个主要功能模块:进度计划管理功能、资源管理功能、费用管理功能、报告生成与输出功能、辅助功能(主要指与其他软件的接口、二次开发、数据保密等)。这种概念源于对国外类似产品的概括,如P3(PrimaveraProjectPlanner)、MicrosoftProject、HarvardTotalProjectManagement、HarvardProjectManager.从广义上看,项目管理软件包括了与项目管理工作相关的各种应用软件,可以涉及进度、费用、资源、质量、风险、组织等各个方面,是项目管理相关软件的总称。

2.2发展概述

国内项目管理软件的研究开发始于20世纪70年代,至今经历了两次重大转变(见图1)。

第一次,90年代初,标志是研发主体由用户本身转变为专业化的软件。在70、80年代多是各用户单位自行研制的单项功能的初级产品,即自己提出需求、自己研究、自己开发、自己使用,是一种完全的小生产方式,在近二十年中发展缓慢。90年代初,市场带动出几十家专门从事建筑管理软件开发的高民营企业,软件开始走上化、专业化、商业化的快速发展道路。

90年代是国内建筑管理软件迅猛发展的十年,工程造价、工程量、钢筋配料、平面图制作、标书制作软件等新产品大量涌现,价格逐渐降低、功能不断完善,界面友好、操作方便,通用性、实用性增强。

第二次,90年代末,标志是产品由单机版转向系统集成。如将项目施工方案的设计、概预算、工程量计算、进度计划、资源计划、费用管理、事务性管理等综合起来形成一个有机的整体。运行环境由单机用户拓展到网络多用户,一定程度上实现了企业内部的数据共享。

进入2000年来,项目管理软件的研发出现了滞缓现象。究其原因是多方面的,既有市场因素又有技术因素,既有外部环境的又有自身条件的制约,如加入WTO的影响、用户需求的变化,网络技术、数据库技术、通讯技术的进步等。项目管理软件发展的方向在哪里?必然趋势如何?怎样应对?这些摆在众多业内人士面前。

3、国内项目管理软件的现状

3.1外部环境分析

3.1.1机遇

(1)积极的政策环境。2000年7月国务院了《鼓励软件产业和集成电路产业发展的若干政策》在投资融资、税收、产业技术、出口、收入分配、人才吸引与培养、知识产权保护等方面,给予优惠政策。建设部正在领导制定《建设企业管理信息系统软件通用标准》和《建设信息平台数据通用标准等通用标准,以规范建设领域信息市场行为。各省市地方的建委、定额站以及高新技术开发区,积极贯彻党和国家方针政策,制定一系列的优惠办法,培育扶植当地软件企业的发展。

(2)巨大的市场需求。项目管理软件作为一种行业专用软件,其发展与建筑行业自身的兴衰息息相关。据统计,我国现有各类施工企业10多万家,项目经理部几十万个,除此之外工程监理、审计、建行、甲方等单位也都是管理软件的用户,远期软件需要量应在100万套,但现在软件总的销量不足2万套。加入WTO以后,受各方面因素的影响,经济将呈现快速增长的态势,国内总体建设投资规模扩大,这将会为建筑业创造一个良好的发展机遇,也必将拉动行业软件市场需求的增长。

(3)信息技术在建筑业的广泛应用。20世纪90年代以后,我国建筑业应用信息技术取得了突飞猛进的发展,为项目管理软件的普及推广提供了必要的条件。主要表现在:1.网站建设从无到有,形成了政府网站、行业网站、企业网站三个层次。2.广泛应用计算软件和工具软件。3.在施工中推广应用以信息技术为特征的自动化控制技术,取得了较好的效果。

3.1.2挑战

(1)项目管理的基础工作薄弱。软件的应用要有一定的条件,目前我国项目管理中影响软件应用和开发的主要问题有:1.管理工作尚未标准化。例如各种报告、信息、数据及各种费用项目的划分,各种文本等的标准化程度不高。2.工作过程中的随意性,非程序化工作和干扰,使先进的计划、控制方法和程序难以使用,难以显示出它们的效果。3.整体管理水平低,各层次的管理人员尚不能掌握的管理手段和方法。管理的基础工作薄弱不仅限制了对软件应用的需求,而且进一步拉大了国内项目管理与国际水平的差距。

(2)国外竞争者的挑战。目前,打进中国建筑市场的国外软件有MS-Project、P3等。这些软件功能强大、专业性强、知名度高、营销方式灵活。如P3软件在国际上具有极高的知名度,逐渐成为工程项目管理行业的标准软件。世行也在大型项目上推荐使用P3软件。加入WTO后,外国软件企业将享受国民待遇,出口补贴政策、政府采购将受到限制,我国的产品市场不仅要开放,服务市场也相应开放,软件市场从而将完全开放,国内软件市场竞争日趋激烈。而且,加入WTO后,外资建设项目增多、建筑市场逐步放开,国外工程设计、承包、咨询单位的大量涌入会加大MS-Project、P3等的市场份额。

国产软件一般在功能设置和运行机制上更符合国内用户的需求和习惯,如有双代号网络图、前锋线功能等。但在用户界面、报告生成与输出、数据交换、二次开发等方面还存在着较大的差距,而且这些软件目前还不可能用于国际工程项目。

3.2内部条件分析

3.2.1优势

(1)技术成熟。国内项目管理软件经过近30年的发展,已经研制出适用于公司和项目两个层次的产品,而且部分软件的技术水平达到新的高度,令外国同行刮目相看,为发展适合国情的信息产品奠定了技术基础。如北京梦龙公司的智能管理系统Pert、大连同洲公司的项目计划管理系统TZ-Project.

(2)市场占有率高。初步估算,国产软件的市场占有率在三分之二以上。此外,用户购买软件后,需要经过培训,才能掌握运用。一旦熟练使用后,就倾向于继续购买后续产品,而不愿转购其他公司的同类产品。这一消费特征有利于率先占有市场的软件。多种原因造成国内软件企业已抢先一步占领市场,建立起销售渠道和用户对它们的信任。

(3)服务本土化。软件的价值归根结底表现在对传统行业的服务上,软件行业竞争的核心是服务的竞争。国内的软件企业经过十多年的市场开拓,已在全国的数十万用户中建立起较为完善的服务体系,深入到公路、港口、建筑、市政、铁路、水利、电力等各个领域,能够快速响户要求,提供全面的咨询培训维护服务,这是外国公司在短期内无法做到的。

(4)人才优势。国内软件开发人员的薪酬平均低于国际水平,是美国的1/30~1/20,可大大降低软件研发成本。此外,国内建筑市场运作不规范,用户需求差异大,而国内研发人员熟悉行情,与用户容易沟通,开发的产品更符合“国情”。

3.2.2劣势

(1)品牌与质量。国产项目管理软件数量不少,但没有一个能够像P3那样知名的品牌。几十家软件研发单位“各占一个山头”,国内市场呈现小而散、四分五裂的格局。在研发过程中普遍缺乏严格的测试环节,软件的改动和版本的升级频繁,造成成本的增加和维护上的难度,带给用户许多不必要的麻烦。而且,由于缺乏行之有效的软件开发管理体制,一个关键性设计人员的变动往往会严重软件产品的整个生产过程。在功能模块上,国产软件偏重进度计划管理,在资源管理、费用管理方面远远落后与国外软件。此外,国产软件都无法实现环境下异质数据库的互连、没有对用户开放二次开发的接口。

(2)规模小、开发资金不足。国内软件企业的资金来源主要以企业自主投资、风险投资和政府投资三种为主。大部分企业缺乏正常的融资手段,只是依靠经营利润的积累。企业规模小、缺乏“重量级”企业,、设计、开发和市场开拓能力有限。据统计,50人以下的企业占40%左右,50~100人的企业占50%左右,100~200人的企业仅2家,200人以上的为零。

(3)缺乏统筹规划。由于没有明确的行业标准和方向引导,软件开发只能根据客户要求,由软件技术人员,凭自己的理解和能力进行设计、编程,造成软件开发选题雷同,而且多属低水平重复开发。企业在技术、研究、开发等方面存在很大的盲目性,力量分散,造成大量资源浪费,也延误了发展的时机。

(4)人才流失。由于缺少合理的收入分配激励机制,大量软件开发人员流向高收入的电信、、商业领域,国内从事工程管理软件开发的人员不足千名,其中懂工程、懂机、懂管理的复合性高级人才更是少之又少。

4、国外项目管理软件的发展及启示

4.1发展概述

国外项目管理中的计算机应用可以追溯到50年代中后期网络计划技术的出现,到了60年代中后期网络程序已经十分成熟。整个70年研究的重点是完善和扩展网络模型分析软件的应用功能,如成本和资源的平衡优化;同时提出并研究了项目管理信息系统。进入80年代以后,PC机的普及和项目管理工作的化、标准化,使一般中小型企业、中小型项目也可用计算机进行管理,网络技术才真正普及。90年代后,项目管理软件发展迅速,不断有功能强大、使用方便的软件推出,在项目管理中发挥了重要作用,计算机的应用已经成为项目管理必不可少的一个组成部分。

项目管理软件的功能层次不断提高,对应着三个显著阶段:

第一层次,也称基本功能,如进度控制、质量管理、资源管理、费用控制、采购管理等,是对基层工作流程的模拟,在一定程度上实现数据共享,减轻了基层项目管理人员的工作强度。在80年代已基本完成这方面的功能开发并在基层项目管理中广泛应用。

第二功能层次有两个特点:一是分析和预测功能,包括工期变动分析、不可预见事件分析(如恶劣气候、汇率变动、市场物价变动、分包商情况变动等)。在分析基础上产生预测功能,主要包括进度预测、投资预测、资金需求预测等,并有相应的数学模型。二是计算机网络的使用和通讯功能,主要是局域网上的多用户操作和多项目管理,以及借助Internet、Intranet,邮件、电子信箱等先进的通讯工具和手段,减少项目管理班子的工作所受的地域限制。P3及MS-Project都是这一层次的产品。

第三层次是基于因特网的项目管理,使整个项目管理业务与因特网结合,具有跨平台兼容、交互性和实时性,项目成员可以协同工作,实现在线文档管理、在线讨论、视频会议等。到目前为止尚无完善的产品出现,但有两个软件Mesa/Vista,WebProject已初具雏形。

4.2发展启示

目前国内项目管理软件的发展还处在第一阶段。某些软件具备或正向第二功能层次发展,没有基于因特网的第三阶段软件。国外同类软件的发展历程可以得到启示:数据通讯、多项目管理、多用户环境、多系统兼容和与Web技术集成、增强用户自定义功能,这代表着项目管理软件的新发展。客户机(Client)/服务器(Server)模式向浏览器(Browser)/服务器(Server)模式转变将是必然趋势。

5、对策

5.1我国项目管理软件SWOT分析

基于上述分析,可归纳出我国项目管理软件SWOT矩阵。

5.2政府和行业协会

(1)规范项目管理,实现与国际接轨。推进《施工项目管理规程》、《工程网络计划技术规程》、《建设工程质量管理条例》、《建筑工程施工合同(示范文本)》等的制订和落实,严格按规程、规范和标准进行项目管理。在项目管理中推广使用WBS(项目结构分解)等,保证数据采集的完整与统一。加强信息技术标准研究,积极参与国际标准的制订,利用标准来占领市场。

(2)统筹规划,抓大放小,分类指导。制定建筑业信息化发展规划和技术政策,确定产业升级目标,合理选择主导产业、战略产业。对各省市地方的造价、钢筋、工程量等单机软件鼓励自由竞争,让市场来决定优胜劣汰,同时强化行业管理,维持公平、有序的竞争环境。对项目管理软件的研发加强扶植力度,增强国产软件自主发展的能力,重点扶植、推广一批具有自主知识产权的产品。

(3)发挥行业组织的作用。行业协会加强与政府和企业的联系,为企业在技术、管理、市场信息、人才培训等方面提供指导和帮助。

5.3软件企业

(1)利用政策,把握机遇。认真研究、充分利用国家为产业发展提供的政策环境,要充分利用加入世贸组织的过渡期,力争在三、五年内完善项目管理软件并实现产业化。

(2)调整产品结构,培育自主品牌。推进产品创新和产品重组。拥有自主知识产权的,要强化知识产权管理,积极实施信息技术专利战略,按国际项目管理要求进一步完善产品,争取在国际市场占有一席之地。正在研发之中的,要多研究国内外同类软件,合理选择细分市场,采取产品差异化战略或市场跟随战略。

(3)规范企业管理。积极参与ISO9000,CMM,ISO14000等国际质量保证体系认证和国际安全认证,加强软件企业的规范化管理。建立有效的激励和约束机制,充分调动员工积极性,吸引并留住各类优秀人才。

(4)服务创新。推动软件售后服务的化,建立专业的咨询服务机构。不具备持续开发能力的公司应向增值服务的专业服务公司转变。从目前发展趋势看,软件的升级、维护、咨询活动的利润比销售的更可观。

6、结论

我国工程项目管理软件研发的整体水平较低,实际应用情况不容乐观。要改变这一局面,政府和企业都要付诸努力。政府和行业协会要规范项目管理,实现与国际接轨;统筹规划,抓大放小,分类指导。软件企业调整产品结构,培育自主品牌,规范企业管理及建立服务创新的体制。

参考

[1]MatthewJ.Liberatore.ProjectManagementInConstruction:SoftwareUseAndResearchDirections[J].JournalOfConstructionEngineeringAndManagement,2001,(March/April)。

[2]成虎。工程项目管理[M].中国建筑出版社,2001.

[3]陈昌柏。WTO-ITA与中国IT产业发展[M].北京邮电大学出版社,2001.

软件项目管理论文篇(2)

项目管理技术是软件工程专业的一门重要专业课。其教学任务是使学生了解和掌握项目管理的基本概念、基本原理和工程化方法。内容涉及项目管理知识体系(PMBOK)九大知识领域和五个标准化过程组,几乎涵盖了软件项目从立项到结束的方方面面,是一门具有相当广度的课程。然而,该课程的教学效果却不容乐观。

其一、项目管理技术的理论知识多脱胎于工程管理领域,由于国内软件工程专业建设刚刚起步,相关教材往往照搬工程管理理论,缺乏完全针对软件开发的必要整理和筛选。因此同软件开发实践结合并不十分紧密。

其二、而传统的教学方式往往重理论而轻实践,教师将理论知识“满堂灌”给学生,学生“死记硬背”理论条文,并不懂得如何将理论用于实际软件开发。这种仅以理论的多寡深浅作为对学生评价激励唯一标准的教学手段,必然导致培养的人才实用性不强,职业能力较差,工程化程度较低。达不到项目管理技术的教学要求。

因此,需要对软件项目管理技术的教学进行改革。二基于具体项目的软件项目管理教学软件工程项目相比一般工程项目具有更强的复杂性和更多的不可控因素,传统的项目管理教学所传授的知识常常不易使理论知识和实际开发吻合,给学生造成“学习无用之感”;课程本身也难以完全包括软件开发过程的全部情况。最好的方法是通过一个具体软件项目的开发过程,使学生接受项目管理的理念,而软件项目的开发设备相对单一,团队人数相对较少,相比一般工程项目更易进行实践演练。

可以看出,项目管理进行过程将根据实际情况不断进行计划变更、计划控制和计划执行的搏弈和循环。由于软件项目有以下特点:

(1)软件产品是无形的,不可捉摸的,无法感觉形状,设计也难以直观表示,很难确定产品质量或估计开发工作量。

(2)由于软件的拷贝生产轻而易举,因此,几乎全部的软件项目成本在开发过程中,而不是在制造过程。

(3)软件开发过程属于劳动密集型过程,尚未实现完全自动化,因此对软件项目开发进度的计划和控制比对一般工程项目更加复杂。

(4)软件是逻辑实体,本身很容易修改,但由于其复杂性,又很难正确地修改,在缺乏沟通的情况下,对个别模块的修改可能会带来新的错误。

(5)软件不像其他产品会因使用而磨损,和一般工程产品不同,软件产品的维护常常通过增加新模块功能完成升级。为保证新版本的稳定性,常常需要对新版本的重新设计因此,软件过程主要集中于软件项目的开发过程,而在这一过程中,相比一般工程项目,项目管理过程组的核心循环表现得更加突出。基于具体项目对软件开发过程进行阐述将更有利于学生理解软件开发过程中的项目管理。由于课程目标并不在于具体技术细节的学习,而在于体会软件开发过程中的项目管理。因此在项目选择中,不能使学生投入过多精力在技术细节上,而应更多的关注软件项目管理的沟通、计划和控制。我们选择计算机学院行政管理系统网站作为实践项目让学生组队开发,这一项目属于MIS(信息管理系统)项目类,难度不大,且能充分体现软件项目需求不明确、多变、沟通复杂等特点。作为计算机学院的学生,学生对项目的需求的理解也将更加实际。

2.1基于项目驱动的评价体系“为了解决软件问题,重要的第一步就是将整个软件开发任务看做一个可控的、可度量的以及可改进的过程。”将项目管理方法运用于具体软件项目开发的实践或在实践中改进现有方法,能够帮助学生更好的掌握项目管理技术。在实际教学中,我们将学生分成若干团队,每个团队8~13人,充分使学生体会到团队感,增加管理意识。项目经理是靠干出来的,不是靠背出来的。为使学生在具体项目实践中更加投入,必须改革原有的基于卷面成绩的评价体系。我们提出基于项目驱动的评价体系,使学生自觉将课堂所学的理论知识及时用于项目。学生的总评成绩将由团队项目评分、演练与总结评分、期末论文评分三部分组成:

(1)团队项目评分:60%其中20%由教师根据团队分阶段提交的项目资料给出;剩下40%由每个团队的“项目经理”根据团队的成员的表现给出。而项目经理的打分权限则取决于项目完成时专家对项目的评审得分。

(2)演练与总结评分:20%项目结束后各个团队成员对整个项目管理过程进行总结,评价和反思项目经理的管理过程,教师根据学生个人上课时有关项目的各种演练表现以及项目总结报告进行评分。

(3)期末论文评分:20%要求学生对项目管理九大知识领域进行一定深度的论述。为确保评价体系更加公平、公开、公正,我们规定:

(1)项目经理享有计划和分配项目团队资源,为项目组成员进行打分的权利,同时具有带领项目组完成所有课堂演练环节,完成项目开发的义务。作为奖励,项目经理可以直接获得满分的演练与总评成绩;作为制约,项目经理为自己所打分数只得在项目评审得分5%上下浮动,如果项目经理引起过团队半数以上成员不满,将被弹劾,一旦弹劾,相应权利和奖励同时消失。

(2)项目评审后,项目经理将得到“项目评审得分*团队开发人数”的可分配分数,项目经理根据项目组分数分配方法给团队成员打分,上限为40。

(3)项目评审时将邀请学院软件工程专家、需方代表不少于5人组成专家组对各团队项目进行公开评审,评审将从需方满意度、项目开发文档、项目开发过程三个角度进行打分。团队最终得分通过delphi法得到。可以看出,在以上的评价体系中,基于项目驱动的评分所占比重相当大,不仅注重项目的结果,同时注重项目开发过程。学生的分数在一定程度上模拟了现实生活的“奖金”,而项目团队则更加贴近现实生活中的软件开发公司。为了使项目成功,学生必须自觉地实践和探索科学的项目管理方法,不论成功与失败都将成为学生宝贵的经验和教训。评分中,由于个体学生所能获得的成绩与其所在团队成绩紧密相关,因此,为整个团队获得高分而努力的开发过程极大地培养了学生的团队协作精神。通过教学实践,这一评价体系调动了学生的学习主动性,起到了较好的作用。超级秘书网

2.2基于项目过程的知识传授和情景演练表1显示了项目管理九大知识领域在五个标准化过程组中的作用。可以看出在不同的过程组中,各知识领域所起的作用是不同的。配合实际项目开发的过程,为使所传授的知识能够及时用于实际项目,我们颠覆了原有教材顺序,按软件项目五个过程组所涉及的知识领域对教学顺序进行重新安排,基本做到项目进行阶段与所传授的相关知识同步。每次课程教学前后都及时安排对相关内容的情景演练。由表2所示教学实施安排表可以看出,项目管理的九大知识领域几乎都能做到安排于项目情景中进行传授,起到了理论对实践的指导或总结作用。可以看出,每次演练环节一般都是对上次所本传授知识的总结或当次所传授知识的及时操练,知识点覆盖较全面。通过设身处地去当一名项目经理或软件工程师,增加了学生对软件开发项目的感性认识和兴趣,提高了他们的管理才能。通过知识传授和情景演练的密切配合,使学生对软件项目的管理过程理解得更加深刻。

二结论

基于具体项目的项目管理教学使学生能够体会项目管理各知识领域的作用,领会各种方法、规范所适用的环境。通过实际开发后自己总结提炼的经验和教训,学生将更加接受项目管理的理念和知识,培养了团队合作精神。在学期末进行的教学效果调查中,83%的学生认为这种教学方法效果良好。学生普遍反映“项目管理枯燥的理论知识变活了,知道怎么用了,印象更加深刻了。”

项目管理是软件工程重要的专业课,在今后的教学实践中,我们将继续改进教学方法,做到量体裁衣,因地制宜,加强教学效果。

参考文献:

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

软件项目管理论文篇(3)

一、引言

项目管理(PM,projectmanagement)是指利用现有的知识、方法和技术手段,有效地计划、调度、控制和跟踪项目的开始、执行、直止终止的过程,是项目顺利实现的有效手段。软件项目管理则是在项目管理的基础上,结合软件产品的实际,利用工程的概念和方法来开发与维护软件,对成本、风险、时间、质量、过程、配置等进行分析、管理、控制,最终目的是为了让软件项目的整个生命周期都在管理者的控制范围内,以预定成本按期、按质完成软件的开发并交付用户使用。目前,软件产品已广泛应用于各个领域,但是很多软件项目的成功率并不高.虽然有些公司根据软件工程理论建立了一些软件开发管理规范.但并没有从根本上提高软件项目管理问题,这就导致软件产品质量不稳定甚至是项目的失败,同时也损害了用户的利益。本文结合我国软件项目管理的特点并经实践应用.以提高软件质量、降低成本、加强软件项目的可控性为目标,通过对CMM的研究和改进,给出了一个基于CMM加强软件项目管理的实践模式,在这个模式中对目前CMM中的KPA做适当的裁减,定义了6个关键过程域和3个工作组。

二、软件项目管理中目前存在的问题

影响软件项目成功率的因素主要是软件质量问题,而在整个软件项目的实施过程中需求不明确、跟踪和监督不力、缺乏客观的软件评审和软件配置以及风险管理意识不足等都阻碍着软件质量的提高。

2.1需求不明确

需求管理是软件项目管理中非常关键的一个步骤.需求分析的完整与否可以降低软件质量、延长项目周期、加大成本。由于用户对计算机系统认识的不足,对于系统的需求往往比较模糊,遗漏甚至是错误的问题经常出现(包括管理流程、业务流程、数据或报表的分析处理等),但这些问题往往没有暴露给开发人员,而是随着项目的进展才逐渐明确。对于开发人员来说,需求的变更意味着软件产品的部分内容必须重新开发,而对于整个软件项目管理而言,势必要重新分配资源、调整计划、估算成本等等,导致软件产品质量下降。

2.2跟踪和监督不力

跟踪和监督主要针对过程而言,也是项目管理中最容易被忽视的环节。软件项目过程由多个任务构成,大部分任务都有前置任务和后置任务,这就要求项目管理者要严格跟踪和监督每一个任务。任务的完成主要从时间进度和质量两方面来衡量,还要充分考虑因客户方引起的一些客观因素(更改需求分析等)。项目管理者虽然制定了具体的项目进度内容,但如果缺乏有效的跟踪和监督机制,对于每一个阶段所要完成的任务疏于评价,就会影响下阶段软件产品的质量,有时甚至是软件产品的重新开发,最终影响整个软件项目。

2.3缺乏客观的软件评审

客观的软件评审是软件产品质量的直接保障,软件评审一直贯穿于整个软件项目的过程中,对软件产品的评审应有客户使用人员和软件业中的同行来进行。客户使用人员对软件产品做阶段性的评审可以及时发现软件产品功能方面的不足,同行评审可以从软件业的规范及标准去发现问题.软件评审可以降低软件开发的成本提高软件产品的质量。大多情况下项目管理者没有做任何阶段性的评审,通常只是在软件产品开发基本完成之后来组织评审,果发现了很多问题,但要修改已经非常困难.要花费很长的时间甚至从头再来。

2.4软件配置混乱

软件配置是指软件产品在各个阶段各种版本的文档、程序及数据的集合,贯穿于整个软件项目的始终。随着软件产品开发的进行,由于各种客观原因,其中的预算、设计方案、进度等内容都有可能需要大大小小的更改(这些改动可能是合理的),整个改变的过程对软件项目的参与人员来说必须是可视的,以便提高软件的可靠性和质量,而这一切都应该有正确的软件配置来控制如果失去正确的软件配置管理,那么针对软件产品发生的任何更改或者是维护都会给软件项目带来混乱甚至是失败。

2.5风险管理意识不足

风险管理是软件项目中防止失败的一种重要手段,软件项目不同的阶段存在着不同的风险,并且风险会随着项目的进展而变化,目前国内的软件企业大都不注意软件项目的风险管理。除了社会环境风险、商业风险等这些客观风险之外.可控的软件项目风险主要指技术风险。技术风险主要是指与软件项目本身相关的的技术因素变化带来的风险,如果在一定的条件下达不到技术条件能够实现的目标,不但延缓项目的进度而且会增加项目的成本.继而使整个项目受到影响。

三、通过过程管理加强软件项目管理的实践模式

利用cMMfCapabilityMaturityModeforSoftware)的核心思想把软件项目管理看作一个软件过程,并根据这一原则对整个软件项目的开发和管理进行过程监控,监督发现过程中影响项目的关键问题并予以解决。软件过程是指软件开发人员开发和维护软件及相关产品的一套行为、方法、实践及变换过程,包括软件开发过程和软件管理过程。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.1开发时间

软件开发由需求分析、概要设计、详细设计、编码、软件测试、项目维护和软件集成几部分内容组成,在需求分析和设计阶段采用CMM框架实施过程管理所花费的时间要多于没有实施过程管理花费的时间。首先对项目做大量分析,论证项目的可行性。然后在和用户做良好沟通、反复论证的基础上做需求分析,形成文档资料。这种模式下花费在需求分析和设计上的时间大约占项目总开发时间的40%,但这两个阶段完成了数据流程、算法描述、详细的规格说明等内容,为代码编写、软件测试、软件维护等后续内容的工作节省了时间,软件项目的开发周期大大缩短。经过评估,采用该实践模式实施软件过程管理的软件项目开发周期比没有实施软件过程管理的软件项目开发周期缩短20%。:

4.2开发质量

软件项目管理论文篇(4)

关键词:软件项目管理软件产品质量因素

在软件和信息科技行业,项目管理经常决定了一个产品或者企业能否成功。项目管理得到越来越多的企业和政府部门的重视,例如中国于2002年4月召开了有关项目管理的首次国际研讨会。具体操作与项目最根本的不同在于具体操作是具有连续性和重复性的,而项目则是有时限性和唯一性的。本文由中国收集整理。项目是一项为了创造某一唯一的产品或服务的时限性工作。所谓时限性是指每一个项目都具有明确的开端和明确的结束;所谓唯一是指该项产品或服务与同类产品或服务相比在某些方面具有显著的不同。各种层次的组织都可以承担项目工作。项目有时只涉及一个组织的某一部分,有时则可能需要跨越好几个组织。项目是执行组织商业战略的关键。

一、软件产品项目管理的重要性

20世纪80--90年代,许多大型企业管理信息系统MIS的开发都以失败而告终。这是为什么?一个重要原因是软件项目管理水平上不去,尤其是需求分析管理水平上不去,使得项目快要验收或交付时,却出了大问题:要么发现用户需求获取不准确,要么发现用户需求变了,致使做好的系统不能用或不好用。20世纪90年代初,上海一家公司在青岛做一个港口MIS项目,北京有一个单位在天津做一个港口MIS项目,都是因为甲乙双方软件工程基本知识不具备,使得项目管理不到位,导致2个大型项目不成功。现在软件应用领域空前广阔,深人到社会和科学研究等领域的各个方面。软件的需求也比以往更加多,软件系统设计也空前复杂。软件的项目管理问题也就因此而产生了。90年代中期,软件项目管理不善的问题仍然严重。据美国软件工程状况调查,只有10%的项目能够在预定的费用和进度下交付。于是软件项目管理成为软件项目发展中最重要的核心问题。为了使软件项目开发获得成功,必须对软件开发项目的工作范围、可能遇到的风险、需要的资源(人、硬件、软件)、要实现的任务、经历的里程碑、花费的工作量(成本),以及进度安排等做到心中有数。软件项目管理的目的就是提供这些信息,分析信息,并根据分析结果对项目做出调整。软件项目管理开始于技术工作之前,在软件开发的整个过程中持续进行,最后中止于软件过程结束。

二、软件项目管理体系

随着软、硬件技术以及通信技术的日益成熟,软件技术可以与所有的传统产业相结合,促进产品的更新换代,大幅度提高产品的附加值,提高劳动生产率,推动产业结构与产品结构的调整。因此,软件的开发以及应用不仅仅是软件开发机构的任务,更深地涉及软件使用者的切身利益,尤其像管理信息系统MIS(ManagcmentInformationSystem)、计算机集成制造系统CIMS(ComputerIntegrationManufacturingSystem)、企业资源计划ERP(EnterpriseResourcePlanning)及商业智能BI(BusinessIntelligence)等大型的复杂软件更是综合了管理科学、计算机科学、通信技术以及数学等各方面的知识,需要各类人员的协调工作才能完成。因此也就有必要从项目管理的角度去管理软件的开发和运行。从用户的角度来看,软件项目的生命周期应该包括项目前期的论证工作、项目计划、软件开发、运行、维护以及项目后评价。由此可见软件项目管理的范围不仅包括传统的软件开发过程,还应该包括开发之前的准备工作以及运行中的维护工作和对项目的总结工作。同时,在软件项目生命周期中存在着许多活动。根据活动之间的相关性,可以将软件项目的各种活动分为九大类。

(1)战略管理。根据用户的经营目标制定软件项目的策略,以便为其他各方面的活动提供指导。在制定项目策略的时候应该充分考虑用户和其他利益相关者的实际需求和市场因素。另外创造和谐的项目环境和连续改进也是战略管理的重要任务

(2)范围管理。其目的是控制软件项目的全部活动过程都在需求范围内,以确保项目各种资源的高效利用。成功的项目管理离不开用户、软件开发队伍和项目经理的一致理解和协调配合

(3)成本管理。软件项目的成本不仅包括开发成本,也包括开发之前立项阶段以及软件在运行中的费用。操作者的培训费用和项所使用的各种硬件设施费用也都是整个项目成本的一部分。这些成本都需要很好地计划和控制。

(4)时间管理。其内容有确定各项活动之间的时间相关性;估计各项活动的持续时间,跟踪各项活动的进展情况,动态调筷各项活动之间在时间上的协调。本文由中国收集整理。

(5)人力资源管理。在软件项目中应该为软件开发人员和管理人员等各类项目人员创造一个和谐良好的工作氛围。使他们能感到项目成功的把握和积极的工作心态,确保项目队伍的稳定性和连续性。

(6)沟通管理。沟通管理是一个收集、存储、配置和项目生命周期内所形成的各种信息的过程为了让每个项目相关人员及时得到所需的信息,需要很好地解决“什么时候、向什么人礼报什么的”的问题,此外软件开发队伍和用户之间的沟通也是沟通管理中的一项重要工作。

(7)风险管理。由于软件项目中存在着很多的不确定因索,也就必然存在着各种风险而且风险有可能造成不良的结果,对风险进行分析和监控贯穿于整个软件项目生命周期。

(8)质量管理。目前软件的质量还是一个模糊的概念并且难以衡量由于软件质量主要是在开发阶段形成的,因此软件项目质量管理的重点应放在系统分析、系统设计和编码阶段,走查、评审、调试和测试是保证软件质量的重要手段软件工程能力成熟度模型CMM(CapabilityMaturityModel)较好地解决了软件开发过程中的质量管理问题。

综合管理。综合管理的任务是对前面讨论的各类管理活动进行协调和控制,使这些活动相互配合。其核心任务是对各种方案进行评价,协调各方面的利益冲突确保项目总体标的最终实现。

三、软件项目管理的核心是全面客户满意

当前,不少软件业管理人上认为,软件开发的问题主要在软件开发的工程化、规范化和软件开发管理体制。他们按照CMM(CapabilityMaturityModel),IS09002的标准来建立他们的管理体系。这里有商业竞争的因素在起作用。但是,他们忽略了商业竞争中取胜最重要的因素—客户满意。他们没有考虑到他们的管理方法能否满足客户不断变化的需求。从长远来看,软件项目真正的成功是客户的全面满意。以客户满意为中心的质量是必需的。漠视质量或只关心产品/服务是否符合需要的方法再也不足以留住和获得客户。因此,软件开发项目组织必须先确定什么产品/服务可以让顾客满意,然后再努力满足客户的需求和期望。要实现此目标,组织必须识别对软件产品的各种特性中哪些是对客户的满意起决定作用的要素。例如,服务器操作系统软件,需要长时间稳定连续工作。稳定性则是该软件产品的关键要素。因此系统的开发管理围绕着这一关键要素来展开。尽管不少的组织明白没有客户一个组织就不能生存和发展,或者说没有客户就没有组织,但在项目实施过程中,仍然存在着客户满意的障碍:

(1)项目管理组织没有发展和完善对客户不断变化的需求和期望作出快速响应的能力。

(2)项目管理组织没有听取客户意见和建议的能力。

软件项目管理论文篇(5)

一、引言 随着信息技术的飞速发展,软件产品的规模也越来越庞大,个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。我公司是西安一家中型软件企业,在公司中已经实行了项目管理制度,软件项目管理是整个项目管理中的一个重要组成部分。 从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。 软件开发不同于其他产品的制造,软件的整个过程都是设计过程(没有制造过程);另外,软件开发不需要使用大量的物质资源,而主要是人力资源;并且,软件开发的产品只是程序代码和技术文件,并没有其他的物质结果。基于上述特点,软件项目管理与其他项目管理相比,有很大的独特性。 二、软件项目管理的组织模式 软件项目可以是一个单独的开发项目,也可以与产品项目组成一个完整的软件产品项目。如果是订单开发,则成立软件项目组即可;如果是产品开发,需成立软件项目组和产品项目(负责市场调研和销售),组成软件产品项目组。 公司实行项目管理时,首先要成立项目管理委员会,项目管理委员会下设项目管理小组、项目评审小组和软件产品项目组。 1、项目管理委员会 项目管理委员会是公司项目管理的最高决策机构,一般由公司总经理、副总经理组成。主要职责如下: (1)依照项目管理相关制度,管理项目; (2)监督项目管理相关制度的执行; (3)对项目立项、项目撤消进行决策; (4)任命项目管理小组组长、项目评审委员会主任、项目组组长. 2、项目管理小组 项目管理小组对项目管理委员会负责,一般由公司管理人员组成。主要职责如下: (1)草拟项目管理的各项制度; (2)组织项目阶段评审; (3)保存项目过程中的相关文件和数据; (4)为优化项目管理提出建议。 3、项目评审小组 项目评审小组对项目管理委员会负责,可下设开发评审小组和产品评审小组,一般由公司技术专家和市场专家组成。主要职责如下: (1)对项目可行性报告进行评审; (2)对市场计划和阶段报告进行评审; (3)对开发计划和阶段报告进行评审; (4)项目结束时,对项目总结报告进行评审。 4、软件产品项目组 软件产品项目组对项目管理委员会负责,可下设软件项目组和产品项目组。软件项目组和产品项目组分别设开发经理和产品经理。成员一般由公司技术人员和市场人员构成。主要职责是:根据项目管理委员会的安排具体负责项目的软件开发和市场调研及销售工作。 三、软件项目管理的内容 从软件工程的角度讲,软件开发主要分为六个阶段:需求分析阶段、概要设计阶段、详细设计阶段、编码阶段、测试阶段、安装及维护阶段。不论是作坊式开发,还是团队协作开发,这六个阶段都是不可缺少的。 根据公司实际情况,公司在进行软件项目管理时,重点将软件配置管理、软件质量管理、软件风险管理及开发人员管理四方面内容导入软件开发的整个阶段。 在八十年代初,著名软件工程专家B.W.Boehm总结出了软件开发时需遵循的七条基本原则,同样,我们在进行软件项目管理时,也应该遵循这七条原则。它们是: (1)用分阶段的生命周期计划严格管理

软件项目管理论文篇(6)

1软件和软件业现存问题

1.1软件项目的特点软件项目是以软件为产品的项目。软件产品的特质决定了软件项目的管理和其他领域的项目管理有着截然的不同之处。

1.1.1抽象性软件是脑力劳动的结果,是一种逻辑实体,具有抽象性。在软件项目的开发过程中没有具体的物理制造过程,因而不受物理制造过程的限制,其结束以软件产品交付用户为标志。软件一旦研制成功,就可以大量复制,因此软件产品需要进行知识产权的保护。

1.1.2缺陷检测的困难性在软件的生产过程中,检测和预防缺陷是很难的,需要进行一系列的软件测试活动以降低软件的错误率。即使如此,软件缺陷也是难以杜绝的。这就像一些试验科学中的系统误差,只能尽量避免,但不能够完全根除。

1.1.3高度的复杂性软件的复杂性可以很高。有人甚至认为,软件是目前为止人类所遇到的最为复杂的事物。软件的复杂性可能来自实际问题的复杂性,也可能来自软件自身逻辑的复杂性。

1.2我国软件行业软件项目现存问题

1.2.1项目管理人才匮乏分析我国的软件产品,可以发现我国真正生存期比较长的成功产品为数不多,很多开发人员甚至项目管理人员多年下来,也没有参与过一次真正意义上成功产品的项目运作。这种现状反过来又导致我国软件企业项目管理缺乏项目经验积累,产业项目运作长期无法规范化。造成我国虽然有大批具有优秀基础的软件工程师人才,却开发不出高质量的产品,大批软件人才外流的现实情况。

1.2.2管理制度不健全随着我国软件行业的日益发展和不断进步,企业开始陆续引进并实施了“事业部制/项目制”等专业划分,即:按照其所负责行业或业务系统的不同,成立多个事业部,各个事业部只负责其所属行业内的项目和工程。每个事业部内部按照不同的产品和项目划分产品线和项目组,并且会确定相应的产品经理、项目经理,以对其所负责的整个项目的全过程负责。但实际情况是,由于大型软件系统项目过大,开发时间过长,参与单位和人员过多,最终出现以下问题:

(1)组织构架不合理,项目管理、质量管理、职能管理划分混乱。项目经理与项目严重脱节,导致项目实施失控,项目经理、质量经理等众多头衔,职责不清甚至很多项目经理都成了虚设的行政头衔,管理协调行政事物,脱离项目。

(2)项目管理和质量保证体系使用棍乱,项目组无统一目标、方针、流程,导致项目工作效率低下。多套项目流程混杂不清,实施人员面对多种要求和多种流程疲于奔命,多个部门无法按照规范协同合作,项目经理和实施人员陷入混乱的流程漩涡,导致项目停工或工期延误等后果。(3)项目团队尤其是项目经理的责权不清,授权不合理,导致其工作无法开展。尤其是一些规模较大的企业多个项目存在耦合,项目内又划分子项目的情况下,项目经理的责权划分经常很难清晰。

2项目管理和大型软件系统项目管理

2.1主流管理体系

2.1.1项目管理所谓项目管理,就是项目的管理者在有限的资源约束下,运用系统的观点、方法和理论,对项目涉及的全部工作进行有效地管理。即从项目的决策开始到项目结束的全过程进行计划、组织、指挥、协调、控制和评价,以实现项目的目标。

2.1.2项目管理的基本内容划分(1)项目质量管理。项目质量管理包括保证项目满足其需求所需要的过程。包括确定质量方针、目标和职责并在质量体系中通过诸如质量计划、质量控制、质量保证和质量改进使其实施的全面管理职能的所有活动。(2)项目时间管理。项目时间管理包括为确保项目按时完成所必要的过程。包括工序定义、工序排序、工序工期估计、制定进度计划、进度控制等。(3)项目成本管理。项目成本管理包括确保在批准的预算内完成项目所需要的诸过程。包括成本管理主要过程:资源规划、费用估算、费用预算、费用控制等。(4)项目采购管理。项目采购管理包括需要从执行组织以外获得货物和服务的过程。包括采购计划编制、招标计划编制、招标、选择来源、合同管理等。(5)项目人力资源管理。项目人力资源管理包括需要最有效地利用涉及项目人员的过程。包括所有项目受益者、组织的计划编制、人员招聘、队伍开发等。(6)项目沟通管理。项目沟通管理包括保证及时、适当地产生、收集、、储存和最终处理项目信息所需的过程。以下为主要过程:信息计划编制,信息,执行情况汇报,行政收尾。(7)项目风险管理。项目风险管理包括对项目风险的识别、分析和应对过程。包括风险识别、风险量化、风险应对措施开发、风险应对控制。

2.1.3大型软件系统项目管理阶段划分大型软件系统项目管理阶段按照定义项目分为以下六大阶段:项目需求阶段;项目选择阶段;项目计划阶段;项目执行阶段;项目控制阶段;项目收尾阶段。

2.1.2大型软件系统项目管理

2.2.1大型软件系统项目概念大型软件系统是指基于大中型计算机、通信网络等现代化的工具和手段,收集、储存、处理和输出信息,以提供信息服务为主要目的的数据密集型、人机交互的计算机应用系统。

2.2.2大型软件系统项目的特点(1)项目持续时间较长和阶段交叉性相结(2)项目成员复杂。参与项目实施的成员虽然主要来自承包商的多个职能部门的人员,还包括来自用户不同部门或下属结构的业务人员,还有一些分包商和供货商的人员参与。参与项目的人员通常要由计算机、网络、通信、电子、管理等不同专业背景的专家、工程技术等人员共同合作,才能保证项目的实施。由于大型软件系统牵涉范围广,所以参与项目的成员全部集中在某一地区不是很现实的事情,而是往往分布在全国各地,甚至需要在国外人员的合作参与。

2.3大型软件系统项目的管理问题

2.3.1项目责任范围界定不清一是项目初期客户对自身需求不清晰;二是项目实施过程中客户需求自身发生变动;三是需求分析人员和客户对需求的理解有误;四是缺少客户业务部门参与。

2.3.2项目团队缺少有效管理一是团队沟通意识差;二是团队欠缺分工合作;三是项目成员的流动频繁。

3提高大型软件系统项目质量的具体方法

3.1真实需求的获取最终用户真实需求的获取就是需求分析的过程,它是一个项目的基石。在以往信息系统集成项目失败的案例中,大部分是由于需求分析的不明确而造成的,因此对于一个信息系统集成项目成功的关键因素之一,就是对需求分析的把握程度。只有确确实实地把握客户的需求和方向,才能做好后续的工作,这也是项目范围管理的重点。需求分析需要安排专门的人员组成项目需求分析小组,这个小组员的组成除了要有专业的需求分析人员和系统设计人员外,还必须包括用户方代表。用户方代表应为用户各项业务的代表,他们能够提出用户的一些真实需求,或者通过他们能够了解到最终用户的真实需求。需求分析小组要制定详细的需求调研计划,确定需求调研的方法。为了便于需求调研双方的充分合作理解,在需求调研开始前进行一些培训工作是必要的,这些培训包括调研方法的培训、用户业务流程的培训等。

3.2利用WBS分解项目工作分解结构(WorkBreakdownStructure,WBS),是一种面向可交付成果的项目元素分组,这个分组组织并定义了全部的项目工作范围;每下降一级都表示一个更加详细的项目工作的定义。分解是指把主要可交付成果分成较小的、便于管理的组成部分,直到可交付成果定义明晰到足以支持各项项目活动(计划、实施、控制和收尾)的制定。使用WBS的最大优点是可以监控以及预测成本、进度等不同的项目信息,并且给所有的项目参与者员提供了一个均可与之作对比的一致基准。

3.3范围的验证项目范围验证不应该仅仅发生在项目结项的时候,这样做往往会流于形式。比较理想的做法是在项目各个阶段,至少是里程碑的阶段,由项目需求分析小组的成员(特别是用户方代表)、项目经理、该阶段可交付成果的负责人组成评估小组,由阶段工作成果的负责人进行宣讲,评估小组一起进行评审和验证。

3.4项目团队管理对于大型信息系统集成项目而言,项目团队组建是由项目主要干系人采用协商方式来完成,而不是由单方指定的;而项目的管理采用的是项目管理委员会领导下的项目经理负责制,而不是项目经理个人责任制。项目管理委员会一般是由项目各主要干系方指派的项目负责人组成,项目经理由项目管理委员会成员通过充分的沟通协商指定。这样做的主要目的是平衡项目干系方的满意度,保证项目目标的实现。

3.5项目团队的成长项目团队要建立起整体形象,需要明确方向,并且试图对要完成的工作明确划分和制订计划。项目经理对于项目成员要采取预期激励、信息激励和参与激励的激励方式。项目团队成长与激励关系示意图3.6软件项目的估算在项目计划阶段或项目进度调整时,对项目的规模、工作量、进度和费用进行估算,便于掌握项目的进度,控制项目的成本。而且这些估算的数据可作为其他项目估算的参考,同时也将作为项目跟踪与监控的度量基准。估算主要包括规模和工作量的估算。首先要进行的就是规模估算,规模估算应该与项目需求一致,以便确定该项目的工作量、成本和进度。每个规模属性应附上有关的难度和复杂度,然后结合项目成员的平均生产性,进行工作量估算,进而安排任务的时间进度。超级秘书网

4结语

当今我国软件企业实施软件项目管理的许多技术还不成熟,软件项目延期、超出预算、品质低劣甚至项目失败等现象十分严重。在大型软件系统开发过程中,做好项目管理是软件开发能否成功的核心问题之一。笔者希望通过对大型软件系统项目的项目管理进行的研究,为项目管理者对项目的评估、计划、控制提供一套标准化、系统化、定量化和切实可行的方法体系,为国内软件企业的软件项目管理在实际中的应用提供参考。

参考文献

[1]美国项目管理协会.项目管理知识体系指南[M].2版.卢有杰,王永,译.北京:电子工业出版社,2005.

软件项目管理论文篇(7)

软件工程是一门工程性的学科,其目标主要是成功地建造一个大型软件系统。包括:付出较低开发成本;达到要求的软件功能;取得较好的软件性能;软件易于移植;维护费用较低;能按时完成开发任务;软件可靠性高等。在软件工程开发中遇到的具体问题可以总结为如下几点:

(1)软件模块开发过于独立,各模块没有统一的开发标准,造成系统功能重复,开发平台不统一,系统整合难度大;

(2)系统开发往往针对某一特定功能,没有形成一个完整的系统结构;

(3)总体设计不够细致,各个子系统功能模块风格不统一;

(4)开发人员技术水平、开发能力和时间有限,开发手段相对原始,代码的可重用性低、可读性差;

(5)缺乏有效的软件文档管理。这些问题集中体现在软件项目开发的每一模块中,导致整个项目开发过程中,开发费用超出原定计划,生产的软件系统不能满足用户需求,系统难以简易维护,系统无法高效运行等问题。这里既有技术层面的因素,即开发平台不统一;也有软件开发的组织与管理层面的因素,即程序员对系统功能的定义、规划和设计不明确,往往是开发人员摸着石头过河,仅仅从自己开发的这部分模块来考虑问题,另外开发人员和测试人员不能很好的协调,这些都说明了软件项目管理这一角色的欠缺。

二、项目管理针对软件工程开发的优势

项目管理包括时间、质量、成本三大要素,三者相辅相成,相互制约。时间可等价于软件项目开发中的开发生命周期,即在最终达到开发目标前的各个阶段的总用时。质量可等价于最终开发软件系统的功能性,可用性与达到的客户满意度。成本相当于软件项目开发中的费用,包括人力、地点、工具、系统故障处理等方面的开销。统筹时间、质量、成本三要素,即统筹软件项目开发周期、软件使用客户满意度和开发费用之间的平衡关系,不因忽略某一项指标而导致项目开发目的实现不了或中途中断,也不会为了实现较高的效率,而忽略成本的牺牲,让所有项目开发过程中,所涉及到的因素都可有条不紊地进行。

SPPT是项目管理另一层面上概括的四要素,分别为:战略(Strategy)、人(People)、次序和安排(Process)、工具(Tool)。战略对于软件项目来说,主要概括为模块开发的开发方式,配合方法等;人,毫无疑问,指的是项目开发中的参与者;次序则是项目如何划分模块,以及模块开发的先后次序;工具,即使用工具,包括:辅导设计程序系统、文档编写系统、资源管理系统等。对这四要素的稳定地统筹把握,能更好的协调好项目开发过程中涉及的多个方面,而又不造成某一方面的缺失,导致项目最终目的实现不了或效果不明显。

三、项目管理思想与软件工程开发的结合

根据上述项目管理要素与软件工程开发要素的结合,平衡项目开发过程中的开发要素,能更加简洁高效地完成项目开发目标。IT软件企业处于项目为主导的环境中,每天所面对的将是成百上千不断发生、进行的项目。在这种多项目并发、高技术、快速变化、资源有限的环境下,为了试图满足不断变化的市场需求及应对各种挑战,必须考虑改进项目管理。

软件项目管理论文篇(8)

1.1软件项目功能的识别和度量依据软件项目的开发特点,软件项目功能模块包括基本功能和扩展功能,根据需要还会有衍生的附加功能。它在产品中的作用和价值有很大差异。对整体的投入/产出有很大的影响。如何定义这些功能,并进行合理的功能划分,包括其必要性和可能性、以及交付的时间节点,需要充分考虑用户需求、开发成本、时间因素、质量要求,将这些基本需要和用户真实需求进行匹配和对接,体现价值工程思想在软件项目中的应用和契合。

1.2软件项目成本的识别和度量软件项目成本是指为获取软件功能而付出的成本,主要体现为人力、物力、财力和时间的投入。相应的成本和出,最终都可以从价值论的角度用统一的度量标准、度量方法和度量单位进行分析和度量。在项目生命周期中,启动、规划设计、结束阶段相应的成本较低,实施阶段的成本最高,应该进行有效的评估和设计。通过挣值管理(EVM),了解项目成本、进度的偏差,及时进行纠偏或变更管理。

1.3软件项目价值的识别和度量在价值工程中,价值、功能和成本三者之间的关系应该是:价值=功能(或效用)/成本(或生产费用),用公式可表示为:V=F/C。V代表Value,即为价值;F代表Function,即为功能,C代表Cost,即为费用。从项目管理的角度出发,影响产品的价值不仅是功能和费用,还需要考虑相应的时间成本以及质量要求所带来的成本,综合以上因素,有学者提出其价值可用公式表示为:V=(F+Q)/(C+T)。上式中增加了质量(Q代表Quality)因素和时间(T代表Time)因素在价值中的作用。在实际的操作中,其具体的核算指标依据项目特点会有很大差异。影响价值的因素,除了以上各项,还包括用户体验、供需关系和认可度等诸多方面。

软件项目管理论文篇(9)

软件行业是一个极具挑战性和创造性的行业,软件开发是一项复杂的系统工程,牵涉到各方面的因素,在实际工作中,经常会出现各种各样的问题,甚至面临失败。如何总结、分析失败的原因,得出有益的教训,对一个公司来说,是在今后的项目中取得成功的关键。

1.项目管理在软件开发中的应用的成因

目前我国大部分软件公司,无论是产品型公司还是项目型公司,都没有形成完全适合自己公司特点的软件开发管理模式,虽然有些公司根据软件工程理论建立了一些软件开发管理规范,但并没有从根本上解决软件开发的质量控制问题。这样导致软件产品质量不稳定,软件后期的维护、升级出现麻烦,同时最终也会损害用户的利益。

随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,应用开发的项目管理日益受到重视。

2.软件项目管理常见问题及解决方案

(1)缺乏项目管理系统培训

在软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经理,被任命的项目经理主要是因为他们能够在技术上独当一面,而管理方面特别是项目管理方面的知识比较缺乏。

解决方案:项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。

(2)项目计划意识问题

项目经理对总体计划、阶段计划的作用认识不足,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。

解决方案:计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。

(3)管理意识问题

部分项目经理不能从总体上把握整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。有些项目经理没有很好的管理方法,不好安排的工作只好自己做,使项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。

解决方案:加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。

(4)沟通意识问题

在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有每天定时收邮件的习惯,以至于无法及时接收最新的信息。解决方案:制定有效的沟通制度和沟通机制,提高沟通意识;采取多种沟通方式,提高沟通的有效性。通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如:除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。

(5)风险管理意识问题

有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。

解决方案:通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法,掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。

(6)项目干系人问题

在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、工作职责等没有足够了解以至于无法得到完整需求或最终经权威用户代表确认的需求;或者是多个用户代表各说各话、昨是今非,但同时又要求项目尽早交付;项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。超级秘书网

解决方案:项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。

(7)项目团队内分工协作问题

项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任分工不够清晰而造成工作互相推诿、责任互相推卸的现象;有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰,但是各项目成员只顾完成自己那部分任务,不愿意与他人协作。这些现象都将造成项目组内部资源的损耗,从而影响项目进展。

软件项目管理论文篇(10)

中图分类号:G642 文献标识码:B

1引言

在普通高等学校软件工程本科专业的教学中,“软件项目管理”课程通常作为一门核心的必修主干专业课程。该课程主要通过学习软件项目管理的各种基本理论、方法以及技巧,让学生可以在短时间内掌握软件项目管理的基本知识和实践能力,培养学生在大型软件开发中管理软件项目的基本能力,使学生掌握规范化的软件开发和质量控制过程。

然而,由于软件项目管理过程本身就是一个复杂的系统工程,使得“软件项目管理”课程存在许多问题,主要如下:

(1) 软件项目管理的基本理论源自于上世纪50年代出现的近代项目管理学,软件项目管理还处于一个较新的阶段,其发展迅速且不成熟。

(2) 软件开发是一种“人本经济”,生产中人力资本起决定性作用。早期开发中个人单打独斗的软件开发方式导致软件项目管理执行困难。

(3) 软件项目管理内容抽象,其主要包含大量指导软件项目开发过程的思想、原则和方法等,学生理解困难。

(4) 软件项目管理课程实践主观性太强,方案设计以电子版为主。除部分学生外,不少学生拷贝严重,实验效果难以得到保证。

针对这些问题,笔者认为对“软件项目管理”课程进行相关的教学改革是必要的。过去的一学期中,我们针对南京邮电大学计算机学院软件工程专业的“软件项目管理”课程进行了相应的教学改革实验。结合这次的教学经验,本文从软件项目管理的教学内容组织、教学方法等方面进行了较为深入的研究与分析,提出了多媒体课件、小组讨论、仿真演示相结合的综合教学方法;对课程实验采用结合软件工程课程的实验,以小组为组织对象。

整个课程教学表明,这次课程实践有助于学生理解软件项目管理中的各种理论和方法,激发学生对“软件项目管理”课程的学习热情,有助于对学生实行创新性人才培养。

2教学内容

在理论教学方面,我们“软件项目管理”课程的教材选用由Bob Hughes,Mike Cottrell著,周伯生等翻译的《软件项目管理》(第三版)。

我们此次教学实践选取了其中部分内容作为理论授课内容,主要设置包括包括:软件项目管理引言2学时、步进式方法:项目策划概述2学时、项目评价2学时、选择合适的项目方法2学时、软件工作量估计4学时、活动策划3学时、风险管理2学时、资源分配2学时、监督与控制3学时、管理合同4学时、管理人员与组织群组2学时、软件质量控制4学时。理论课时总计32学时。整个“软件项目管理”课程的重点是项目方法与过程模型、软件工作量的估计、活动策划、风险管理、软件质量控制等。

在软件项目管理实验教学部分,我们课程规划8个课内学时,另外配以8个课外学时,总共16学时,完成4个实验。根据理论教学内容,从培养学生掌握重要理论方法实际应用能力的角度,实验具体设置为:项目方法及过程模型分析4个学时、软件工作量估计模型的建立4个学时、网络策划模型4个学时、软件质量度量方法4个学时。

3教学方法

3.1理论教学

相比于其他软件工程专业主干课程,“软件项目管理”课程显得更加抽象,这样导致学生在学习的过程中难度较大。加上软件项目管理主观性强,需要理论和实践相结合。因此,“软件项目管理”课程往往对任课老师提出了更高要求。为了提高教学效果,我们精心设计和调整了软件项目管理理论教学方法,提出了一种多媒体课件、小组讨论和仿真演示相结合的理论教学方法。

(1) 多媒体课件

使用多媒体课件,可以将软件项目管理中的一些基本理论、原则和方法通过文本、图片等展示出来,弥补传统黑板板书的不足之处,使老师有更多的精力和时间集中在授课内容之上。在多媒体课件的制作过程中,我们要求对学生形成较好的视觉效果,选择适当的多媒体元素,以便集中学生的注意力。同时,也不能完全用多媒体课件替代板书,导致学生对知识的系统性了解不够,需要对两者形成较好地结合。

(2) 小组讨论

“软件项目管理”是一门主观性很强的课程,其基本理论和原则大多属于指导性,导致不同的学生面对同一问题时可能会形成不同见解。为了充分发挥学生的主观性,课程上我们将学生以3~5人为组,对不同的问题进行分析,小组内部通过讨论形成统一观点,然后选择代表将观点展示给全班同学,接受其他同学对小组观点的质疑和评分。

(3) 仿真演示

软件项目管理过程中存在大量的过程演示,如工作量的估计、项目活动策划、质量控制过程等,我们将这些过程通过仿真动画展示出来。如针对工作量估计中的COCOMO模型,我们可以通过一个项目的工作量计算过程的仿真动画,展示该模型的关键点,从而提高学生的学习兴趣和掌握其中关键的知识点。

3.2实验教学

“软件项目管理”课程中的实验主要是设计类型实验,为软件开发中的不同过程设计其评估、管理和控制方案。我们所设计的软件项目管理实验具有如下特点:

(1) 结合软件工程实验的项目管理实验

在实验中,项目管理往往需要针对具体的软件开发项目展开,而软件项目的开发需要较多的时间和精力。为了避免学生将过多的精力集中在项目开发上,我们要求学生针对软件工程实验中软件项目展开项目管理设计。这样一方面减轻学生工作量,提高实验效果;另一方面通过对有无项目管理的软件开发的对比,让学生理解和意识到软件项目管理的重要性。

(2) 基于小组的项目管理实验

我们在实验中打乱原来在软件工程实验中的小组分配,每个小组只保留一个原来实验的开发人员。避免原来项目开发中不规范的管理对设计软件项目管理方案时的影响,也保证整个小组对项目具体内容有一定的熟悉程度。

3.3学生成绩考核

教学实践的效果不但取决于教学内容,还受到教学中激励、过程控制以及学生成绩考核等的影响。整个学生成绩考核主要由两部分组成:平时成绩和期末成绩,两者分别占最后总评成绩的30%和70%。平时成绩中主要考核包括三项:平时上课随机点名时的出勤率、学生完成作业情况、课堂小测验或提问情况。根据“软件项目管理”课程在我院软件工程专业属于专业必修课程的性质,期末成绩由两部分组成,一部分是闭卷考核成绩,另一部分是项目管理实验。其中前者主要考核学生对基本理论、原则方法和技巧的掌握,同时也通过分析题和论述题检查学生在项目管理中的主观观点。后者主要考核学生对这些知识在项目管理实践中的应用程度。

4实施效果与经验教训

4.1实施效果

在这次教学实践过程中,相当部分同学的积极性被调动起来,取得了较好的效果。学生对此次教学时间的评价也处于较好状态。整个计算机学院软件工程专业4个班级127名学生被分为了29个小组,均完成了软件项目管理中四个关键控制过程的报告。通过教师主导,学生参与评分的模式,较好地调动了学生上课的主动性和积极性,出勤率平均超过97%。全学期下来,全班平均成绩达到83分,不及格人数仅4人。

4.2经验教训

(1) 课程内容还需调整,软件开发过程是以人为本的系统工程,其项目管理相当复杂。作为一门仅40课时的专业课程,这次课程实践选择内容较多,过于强调覆盖面,对重点内容不够突出。以后的实践中应该对课程重点进行突出。

(2) 课程实验基于软件工程课程实验,实验效果在一定程度上受到其影响。由于部分同学软件工程实验过于简略,对这些软件开发实施项目管理难以展开,下一次实践可以考虑对一些其他的软件开发过程进行项目管理。

(3) 为了组织好项目管理评比和课堂讨论的内容,对项目小组中每次主讲成员没有进行随机抽取,导致部分项

目小组过于依赖某个能力较为突出的成员,难以有效地提高所有小组成员的主动性。下次教学中可以采用随机抽取的方式。

5结束语

软件项目管理课程知识较为庞杂,主观性强,如何提高其教学效果需要多方面的改进。本文从教学内容和教学方法等多方面对此次“软件项目管理”课程教学实践进行了总结和分析。同时,这次教学实践中也暴露出一些问题,这将是我们进一步教学改革的重点。

参考文献:

[1] 陈云芳,丁亚菲. 软件工程专业双语教学的实践与思考[J]. 计算机教育,2008(24):126-128.

[2]Bob Hughes, Mike Cottrell. 软件项目管理[M]. 周伯生,译. 3版. 北京:机械工业出版社,2004.

[3]Pankaj Jalote. 软件项目管理实践[M]. 北京:清华大学出版社,2005.

软件项目管理论文篇(11)

中图分类号:G642 文献标识码:B 文章编号:1673-8454(2012)07-0061-04

一、引言

随着远程教育需求的日益增长和网络教育支撑技术的飞速发展,设计适用于网络上教学的高质量课程已经成为网络教育发展的一项重要课题。

“软件工程”课程的目的是使学生能够系统地掌握软件工程的基本概念和原理,以及实用的开发方法和技术,了解软件工程各领域的发展方向,学习用工程化的思想和方法开发和管理软件项目,了解软件开发过程中应遵循的流程、准则和规范,为从事软件工程研究或应用开发工作打下坚实的基础。[1-3]考虑到软件工程是一门注重工程实践能力的课程,课程的学习既要求要掌握软件工程基本理论,又要求锻炼运用这些理论知识解决实际问题的能力,做到理论与实践相结合。

当前“软件工程”网络课程的设计日益受到重视,但在实际教学中还存在着一些问题,包括:在理论课程中贯穿整个软件工程过程的系统化案例不多,以及实践课程中项目开发实践平台不完善等。[4-6]这些缺陷都影响了学生对于软件工程整体思想的理解与实践。

解决上述问题已成为当前“软件工程”网络课程设计的迫切需求。因此,本文以理论结合实践的方式将IBM公司的下一代软件开发协作平台Jazz整合到课程的设计中:使用基于Jazz平台的工具集(尤其是其中的RTC、RRC、RQM,以及ClearCase和ClearQuest),提供对软件工程生命周期各阶段任务的支持,并将Jazz平台跨地域的团队协作能力和适用于敏捷软件开发的特点充分利用到学生的工程实践中,具有一定的创新性,取得了良好的效果。

二、“软件工程”网络课程的总体教学设计

本文在“软件工程”网络课程的教学设计中注重理论知识的掌握,同时以培养工程实践能力为导向, 强调学生能力的培养。通过对该课程的学习,让学生理解工程化方法在软件开发中的应用,以理论结合实践的方式进行同步教学:理论讲授部分采用网络多媒体教学模式,辅之以课后测验和课后作业,课程实践部分采用学生分组完成一个中小规模软件项目开发的教学模式。

在课程开展的可行性方面,苏州大学计算机科学与技术学院在与IBM公司的合作框架下,能够获取学生课程培训与实践所需要的工具和相关电子资源。此外,通过校、院或系一级的教学管理系统和FTP服务器建立教师与学生的互动平台。教师可以通过网络教学课件和案例分析等电子资源,还可以布置课后测验、课后作业以及实践项目;学生则可以通过网络下载教学资源进行课程学习,也可以通过网络进行课后测验、提交课后作业以及参与实践项目的开发。

该课程的教学设计分为两个部分:授课部分和学生工程实践部分,其中授课部分又可进一步分为理论知识授课部分和工具培训授课部分。这两部分的结合能达到配合理论教学,进行工具使用能力训练,并提高学生工程实践能力的目的。

1.授课部分

(1)理论知识授课:本部分由主讲教师完成,提供网络多媒体教学课件。理论知识授课部分主要介绍软件工程的历史、现状,以及发展趋势,以软件工程发展历史上的两个主流方法学(结构化软件工程和面向对象软件工程)为基础,深入讲解软件工程的基本原理、方法和技术,并涉及软件工程的管理话题,如软件质量管理、配置管理、过程管理、项目管理等。该课程的理论知识授课内容可以划分为结构化软件工程,面向对象软件工程,软件过程管理与质量这三个主要部分。在课程教学中,注重提供贯穿整个软件工程过程的系统化案例,使得学生能够对于软件工程的理论知识有一个全面、直观、感性的认识。

(2)工具培训授课:本部分由辅讲教师和工具提供商工程师完成授课和辅导,与理论授课部分同步进行,采用专题讲座方式进行相关工具的使用培训。工具培训授课部分主要针对IBM公司新一代的软件开发协作平台Jazz,采用IBM公司Jazz平台系列集成工具的培训教材和教学资源,对学生进行Jazz平台及相关工具体系的使用方面的培训,并对工具使用的实验进行指导,该实验也可通过网络完成。

2.学生工程实践部分

本部分由辅讲教师和助教完成,指导学生分组完成软件项目的开发。学生工程实践部分主要参考IBM公司的Jazz平台实验方案,选用一组典型的中小规模软件项目,由学生分组并选择适当的项目进行开发。在软件开发过程的不同阶段中,学生项目组需要展示对理论课程内容的掌握程度和工具使用的熟练程度,每周就项目进行进展报告,并提交各阶段相应的成果。教师需要对学生项目组进行过程管理和技术辅导,并对集中的问题进一步进行辅导。

三、IBM-Jazz平台简介

Jazz平台是IBM推出的面向跨地域团队的下一代团队协作平台,也是一个整合软件工程生命周期各阶段任务的软件开发平台。[7]

1.Jazz平台的特点

Jazz平台的主要特点包括下述三项,这些特点使得Jazz平台能够提供对于“软件工程”网络课程工程实践的支持:

(1)跨地域的开发团队实时协作能力。Jazz平台支持Web2.0技术,能帮助分散的软件开发团队克服地域障碍,搭建实时协作的平台。Web2.0技术支持实时的信息和信息反馈,通过网络,分布在各地的开发团队成员都可以在Jazz上了解最新的开发进度,提交最新的开发和测试结果,找到应遵循的工作流,在该工作流的指引下循序渐进地工作,而不必担心偏离了开发目标。项目的管理者也能够在Jazz上找到需要了解的信息,包括团队的进度、每位开发者的现状,以及资源的配置等,从而帮助其配置资源,确保开发按时按目标完成。这种通过网络提供的协作能力很适合网络课程中工程实践部分的团队协作工作,包括了学生的参与和教师的管理。

(2)支持整个软件生命周期各阶段任务的无缝集成。Jazz平台提供了对于软件开发和管理流程的定义和执行能力,在这些自定义流程的基础上,能够跨越包括需求、设计、编码、测试、配置与交付等软件生命周期的各个阶段,对各阶段的任务进行无缝集成。Jazz平台对软件工程生命周期各阶段任务的支持,符合“软件工程”课程的工程实践要求,使得学生能够对于软件工程过程有一个全面和系统的理解和实践。

(3)支持敏捷软件开发。Jazz平台还预定义了一些适用于敏捷软件开发的流程,对RUP的支持使得最新的需求能及时交付给软件开发项目的提出者,并且能很快得到最新的反馈意见。Jazz平台对于敏捷软件开发提供了支持,符合“软件工程”网络课程的工程实践部分中“开发中小规模软件项目”的要求。

2.Jazz平台工具集

从2008年开始,IBM陆续推出了基于Jazz平台的工具集,这些工具都是以与Jazz平台集成的插件或连接器的形式的。主要的工具包括:

(1)Rational Team Concert(简称RTC):RTC是IBM推出的第一个基于Jazz平台的产品。作为一个协作软件交付平台,RTC通过提供整合的项目计划、工作管理、配置管理、团队构建、版本构建、报告能力等,为整个开发团队提供了协作的基础。RTC还能够帮助开发团队简化、自动化和监管整个软件交付过程。

(2)Rational Requirements Composer(简称RRC):RRC是基于Jazz平台的需求开发管理平台。辅以Rational DOORS Requirements Professional,RRC将各种需求定义手段和需求相关人员有机地结合在统一的集成协作平台上,实现协作化的需求定义与需求管理。RRC采用多种需求开发方法和协作技能,使需求相关人员能更好地进行需求的获取、分析、精化、管理、评审以及验证。使用RRC能够尽量确保在开发之前将需求定义清楚,减少因为需求定义不良为后续开发带来的问题。

(3)Rational Quality Manager(简称RQM):RQM是基于Jazz平台的全生命周期质量管理协作平台。RQM在整个软件工程生命周期中提供了从测试需求管理、测试计划、测试用例设计、测试执行、测试评价和缺陷管理等完整的测试生命周期管理方法,能够简化和自动化繁杂的测试任务,支持手工测试以及自动测试。通过与其扩展组件Rational Test Lab Manager的集成,RQM还能提供自动化的测试环境和测试资源的管理,从而提高测试的效率。

(4)Rational Project Conductor(简称RPC):RPC是基于Jazz平台的项目及资源管理平台。RPC可以帮助项目经理进行项目计划、制定项目进度,为项目和任务安排合适的资源。RPC还提供了对项目状态和进度进行管理监控和可视化的功能,可以作为项目开发的核心数据库。

(5)Rational Insight:Insight可以帮助获取关于开发团队的度量数据,客观地度量开发的状态和进度。Insight能够提供关于系统和软件交付准确的深入信息,确认高优先级的业务目标,并给出软件交付的最佳实践,从而更好地定位开发团队的目标、度量最佳实践和业务成果。

(6)Rational Build Forger(简称RBF):RBF是基于Jazz平台的过程执行框架,可以对软件工程生命周期中重复的开发任务和构建过程进行自动化的安排、管理和追踪。RBF支持主流的开发语言、工具及平台,能够在沿用现有开发资源的同时,增加有价值的自动化、加速、通知和日程安排等功能。

(7)Rational Asset Manager(简称RAM):RAM可以帮助组织了解所拥有资产的状况,资产之间的关系,以及资产所交付的业务价值,从而使组织能够基于一致的可重用资产更快地向市场交付高品质的软件解决方案,并减少解决方案实现和维护的成本。

除了上述工具外,IBM还将陆续基于Jazz平台推出相关工具,并进行众多上一代Rational工具的Jazz化过程,已完成的包括ClearCase和ClearQuest等。

在“软件工程”网络课程中,主要涉及的基于Jazz平台的工具是:Rational Team Concert、Rational Requirements Composer、Rational Quality Manager,以及ClearCase和ClearQuest。

四、“软件工程”网络课程的工程实践部分设计

“软件工程”课程具有实践性强的特点,其工程实践环节既重要又困难,需要深入研究该课程整个工程实践环节的教学内容和方法,确保相关实践平台,设计完整的实践体系,包括:实验大纲、计划、教材等。本章中对于“软件工程”网络课程,即所述“学生工程实践部分”做进一步研究。

1.工程实践部分的目的

(1)让学生在实践环节中加深对软件工程课程理论知识的理解,通过让学生参与一个中小规模软件开发的完整过程,建立对软件开发过程各阶段活动的全面、直观、感性的认识。

(2)要求参与的学生在实践环节中分成若干个项目组,并以项目组为单位完成软件系统从需求分析到测试交付的完整过程,在该过程中学习有效的沟通方法,培养团队合作精神,为将来进入软件工程行业做好准备。

(3)让学生通过实践环节掌握Jazz平台系列工具的使用方法,培养学生灵活运用所学理论知识分析和解决问题的能力。

“软件工程”网络课程的工程实践部分的总体要求包括:遵循敏捷软件开发的定义,各个学生项目组独立完成从需求获取与分析、设计与建模、编码、测试、配置与交付、过程管理等软件工程关键活动,熟练使用各种工具完成上述活动,养成规范化软件开发的习惯,并根据国标版软件开发文档模板最终提交相应的软件制品与规范化文档。

2.工程实践部分的具体要求

(1)项目管理与计划。根据实验课程的安排,各学生项目组首先进行的是基于项目管理知识使用Jazz-Rational Team Concert进行所选项目的开发过程管理,使用Jazz-ClearCase实施配置管理,基于Jazz-ClearQuest进行缺陷与变更管理。需要学生项目组制定项目计划,包括过程计划、开发计划、测试计划、配置管理计划等,在网上提交相关文档和进展报告。

(2)需求获取与分析。在该阶段中要求各学生项目组获取并分析目标软件项目的需求,采用用例模型描述系统的需求规约,使用Jazz-Rational Requirements Composer管理需求分析阶段的结果并进行需求评审。需要学生项目组给出需求规约文档,在网上提交相关文档和进展报告。

(3)设计与建模。在该阶段中要求各学生项目组以需求阶段的结果为基础,使用工具Rational Software Architect为目标软件项目进行设计和建模(注:IBM尚未为该阶段提供基于Jazz平台的工具),基于模型描述系统的设计规约。需要学生项目组给出设计规约文档,在网上提交相关文档和进展报告。

(4)软件编码。在该阶段中要求各学生项目组以设计阶段的结果为基础,完成目标软件项目的最终编码过程,并对软件产品进行评审。需要学生项目组给出源代码和可执行的系统,在网上提交相关软件制品和进展报告。

(5)软件测试。在该阶段中要求各学生项目组使用Jazz-Rational Quality Manager及其他测试工具完成测试:设计测试用例,完成测试脚本的编制,实现自动化测试执行,进行测试结果的收集和分析,进行测试评估,将确认的缺陷提交到缺陷追踪系统中。需要学生项目组给出测试文档,在网上提交相关文档和进展报告。

(6)软件部署与项目总结。在该阶段中要求各学生项目组结合实际运行环境,完成目标软件项目的部署,并对各个阶段的执行情况进行总结,必要时可录制系统演示。需要学生项目组在网上提交报告和相关资料。

五、结束语

针对当前“软件工程”网络课程的现状,本文在对该课程的设计中整合了IBM公司的下一代软件开发协作平台Jazz,利用该平台对软件工程生命周期各阶段任务的支持,及其跨地域的团队协作能力和适用于敏捷软件开发的特点,以理论结合实践的方式设计了该课程的总体教学计划:着眼于培养学生的工程实践能力,从授课部分(包括理论知识和工具培训)以及学生工程实践部分两个方面展开,在实践中取得了良好的教学效果。

参考文献:

[1]Roger S. Pressman. Software Engineering: A Practitioner's Approach, 7th edition[M]. McGraw-Hill,2009:928.

[2]Ian Sommerville. Software Engineering, 9th edition[M]. Addison Wesley,2010:792.

[3]Shari L. Pfleeger, Joanne M. Atlee. Software Engineering: Theory and Practice, 4th Edition[M]. Prentice Hall,2009:792.

[4]许家,白忠建,吴磊.软件工程――理论与实践, 第2版[M].北京:高等教育出版社,2009:399.