《软件项目论文范文最新18篇》
《软件项目论文范文最新18篇》由精心整编,希望在【软件项目管理论文】的写作上带给您相应的帮助与启发。
内容导航
软件项目管理论文 1项目管理软件论文范文 2软件项目管理论文 3软件项目管理论文 4项目管理软件论文范文 5项目管理软件论文范文 6软件项目管理论文 7软件项目管理论文 8软件项目管理论文 9软件项目管理论文 10项目管理软件论文范文 11项目管理软件论文范文 12软件项目管理论文 13软件项目管理论文 14软件项目管理论文 15软件项目管理论文 16软件项目管理论文 17软件项目管理论文 18软件项目管理论文 1
[关键词]软件开发 项目管理 实施 方法
软件开发项目在一定意义上就是用户的需求,软件开发人员通过分析用户的需求,遵循一定的开发原理,采取相应的方法,最终开发出用户所需要的软件。软件开发是高风险的项目,Standish group报告表明80%以上的项目都是不成功的,或是因为超过预算或延期未完或缺失功能,或者几种因素都有。现在人们致力于应用有助于提高开发效率的开发方法和开发工具,但随着软件规模的不断扩大,人们认识到技术的改善只是促使项目开发成功的重要因素之一,规划、控制和协调变得越来越重要。因此,在计算机软件开发过程中引入与应用项目管理理论,已�
一、软件项目的危机与软件项目管理的意义
从20世纪60年代末开始,“软件危机”伴随着软件成本的日益增长、开发进度可控性不高、软件维护困难等一系列严重问题而到来。软件作为一种特殊的逻辑产品,软件项目危机主要来源于用户需求不明确、缺乏正确的理论指导、软件规模越来越大、软件复杂程度越来越高四个方面。用户需求不明确体现在用户在软件开发之前自己对软件的具体需求不清楚,对软件需求的描述不精确,甚至有歧义和错误,在软件开发过程中,不断提出修改软件功能、界面等方面的要求。软件开发过程是一个复杂的逻辑思维过程,需要有力的方法学与工具方面的支持,需要高度的智力投入,如果没有正确的理论指导,过分依靠程序设计人员在软件开发过程中的个性化与创造性,也容易导致软件危机的产生。大型的软件项目需要一定的人力齐心协力共同完成,但现行条件下,大规模软件开发中人力与管理中的问题日益暴露出� 随着软件规模的发展扩大,其复杂性也与日俱增,增加了软件项目开发的风险。
软件开发新技术与新工具的开发与利用,在一定程度上改善了软件开发现状,但人们也发现软件危机的解决不光是技术问题,更为重要的是管理问题。软件开发过程是设计过程,消耗的主要是人力资源,软件开发的产品是程序代码和技术文件,而没有其他物质结果。这一不同于制造其他产品的特性,使得管理在软件开发项目中的作用凸显出来。通过对成本、人员、进度、质量、风险等的分析与管理活动,使软件开发项目按既定计划顺利完成,通过管理使企业的软件生产趋于成熟。
二、软件开发过程中的管理
根据项目管理理论,所有的项目都要经历五个阶段:启动阶段、计划阶段、执行阶段、控制阶段和结束阶段。而计算机软件从其构思之日起,至开发成功投入使用,直到最后被另一项新软件所代替,其生存周期可以分成六个阶段:可行性与计划研究阶段、需求分析阶段、设计阶段、实现阶段、测试阶段、运行与维护阶段等。下面将主要从软件开发项目前期、项目准备、开发过程、项目后期这几方面分析软件开发项目中的管理。
软件开发项目前期包含可行性与计划研究阶段和需求分析阶段,这阶段工作的准确性直接关系到软件项目的成败。这一阶段首先确定该软件的开发目标和总要求,进行项目的可行性分析与投资-收益分析,编制开发计划,为领导层的决定提供依据。由领导层决定项目取消或者评审和批示,当项目确定实施以后,初步制定软件项目开发计划,进入下一个阶段。需求分析阶段要能确定被设计软件的各项功能、性能需求和设计约束,编写出软件需求说明书、数据需求说明书和初步的用户手册。需求的获取要求成立需求调研小组,在调研中将用户群体根据其差异性进行分类并归纳出各类的个性特点及任务状况,并在每类用户中挑选出一个典型代表作出决策。调研小组通过调研会、面谈、收集资料等多种方法收集需求,并在分析基础上编写需求文件,与用户一起对需求进行审核,并最终获得用户认可。优秀的需求文件要求具备完整性、正确性、可行性、必要性、无二义性和需求优先性。
项目准备中的管理涉及项目团队的组织、需求管理、方案设计、风险管理和开发计划。根据项目规模和特点组建开发团队,确定各类人员的职责与考核管理方法,以完成不同角色和不同阶段的任务。在完成需求调研和需求分析后,还会遇到项目需求的变更,要建立起良好的需求管理方法,对变更带来的潜在影响和可能的成本费用进行评估,跟踪每项需求的状态。在项目需求分析的基础上,进行系统方案的设计,确定开发中采取的技术方案、技术架构、开发标准规范和版本管理的方法。做好源自技术、需求、人员、管理中任何未预期的条件和事件的发生所引发的项目风险管理,及早发现风险、及时规避风险,减小项目失败的概率。之后便制定可实施的项目开发计划,制定详细的项目任务分解,大致估计每个任务的工作量,对工作量、资源状况、任务间的相互依赖关系进行全盘考虑后安排合理的工作计划,并对计划执行有效的监控。
项目开发过程管理主要是对项目的系统详细设计、编码、调试、测试、计划控制、质量控制、版本等方面进行的管理。对评审通过的系统设计进行编码工作,代码核验,由开发人员进行单元测试,监控项目执行情况,及时调整计划和任务安排,并按照质量标准对项目开发过程进行严格的流程控制与审核,通过对计划与质量的监控可以及时发现问题,调整计划,减少因延迟造成的损失。
项目后期管理是软件开发项目的最后环节,包含测试验收、试运行与软件维护。针对软件的需求和质量要求,按照可行的测试方案与计划对项目进行测试验收,以客观评价项目。开发方应及时做好与验收方的沟通,提供一系列的开发文档供测试使用,了解测试验收方案,这将有助于顺利通过软件项目验收。软件的后期维护包括纠错性维护、适应性维护和完善性维护,不仅需要纠正软件开发中的错误,修改和扩充程序以适应新的环境,还需要满足用户新的需求。这就需要在软件开发过程中,尽可能完善细致,为后期降低维护成本打下良好基础。
参考文献:
项目管理软件论文范文 2
论文摘要:软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到浏试、维护全过程)都能在管理者的拉制之下,以预定成本按期,按质的完成软件交付用户使用。目前,软件项目管理不善的新问题仍然存在。本文将在分析软件项目管理存在的新问题的基础上,探索时策办法。
随着计算机应用范围的日益广泛深人,应用软件的规模及复杂程度也日趋大型化、复杂化,这就导致软件开发的方式也从早期的单兵作战式或手工作坊式渐渐转变为集团化、工厂流水线式的团队协作开发方式。这种情况下,如何管理好项目的每一。步运作,及时解决出现的新问题是每一位项目主管责无旁贷的责任。
一、软件项目管理存在的新问题
(一)缺乏项目管理系统培训。项目经理在项目管理方面的培训较少或不够系统。项目经理或管理人员不了解项目管理的知识体系和一些常用工具和方法,所以在实际工作中没有项目管理知识的指导,完全依靠个人现有的知识技能,管理工作的随意性、盲目性比较大。在软件企业中,以前几乎没有专招收项目管理专业的人员来担任项目经理(甚至很少是管理专业的),被任命的项目经理主要是因为他们能够在技术上独当一面,而管理方面非凡是项目管理方面的知识比较缺乏。
(二)对项目计划熟悉不足。项目经理对总体计划、阶段计划的功能熟悉不足。项目经理认为计划不如变化快,项目中也有很多不确定的因素,做计划是走过场,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划和控制管理脱节,无法进行有效的进度控制管理。没有计划或者是随意的不负责任的计划的项目是一种无法控制的项目。
(三)管理意识存在偏差。部分项目经理没有意识到自己项目经理的角色,从总体上去把握管理整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。在软件企业中,项目经理大多是技术骨千,技术方面的知识比较深厚,但无论是项目管理知识,还是项目管理必备的技能、项目管理必备的素质都有待补充和提高,项目管理经验也有待丰富。有些项目经理对于一些不服管理的技术人员,没有较好的管理方法,工作不好布置的工作只好自己做。另外由于工作分解结构设计的合理性,项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。
(四)相互间缺乏沟通。在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术新问题或成果等方面和相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有天天定时收邮件的习惯,以至于无法及时接收最新的信息。
(五)缺乏风险管理意识。项目经理没有充分分析可能的风险,对付风险的策略考虑比较简单。项目经理在做项目规划时经常没有做专门的风险管理计划文档,而是合并在项目计划书中。有些项目经理没有充分意识到风险管理的重要胜,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的策略,对于后面的风险防范起不到什么指导功能。
(六)项目干系人相关新问题。在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、工作职责等没有足够了解以致于无法得到完整需求或最终经权威用户代表确认的需求。由于项目经理的工作新问题,客户参和程度部不高,客户方相关责任人不明确或对范围和要求责任心不强,提出的要求具有随意性,项目前期对需求的确认不吃积极;或者是多个用户代表各说各话、昨是今非但同时又要求目尽早交付;项目后期需求变化随意,造成项目范围的蔓延,无度的拖延,成本的扩大。
二、加强软件项目管理的办法
(一)加强项目经理的系统培训。项目经理接受系统的项管理知识培训是非常必要的,有了专业领域的知识和实践,再丈上项目管理知识和实践和一般管理的知识和经验的有机结合,组能大大提高项目经理的项目管理水平。应实行项目经理知识技育资格考核制度,让项目经理自觉补充学习项目管理的知识和一些常用工具和方法。
(二)提高项目经理对计划的熟悉。在高上术行业,日新月异是主要特征,因此计划的制定需要在一定条。的限制和假设之下采用渐近明细的方式进行不断完善。提高目经理的计划意识,采用项目计划制定相关各种知识、技术、具,加强对开发计划、阶段计划的有效胜进行事前事后的评估。超级秘书网
(三)加强项目管理方面的培训。加强项目管理方面的培训,实通过对考核乡勘际的合理设定和宣传引导项目经理更好地做好项仁管理工作。技术骨干在担任项目经理之前,最好能经过系统的目管理知识,非凡是其中的人力资源管理、沟通管理的学习,实且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。
(四)加强相互间的沟通。制定有效的择通制度和沟通机制,对由于缺乏沟通而造成的事件进行通报作夕教提醒,以提高沟通意识;沟通方式应根据内容而多样化,甘究有效率的沟通;通过制度规定对由于未及时收取邮件而造成壮失的责任归属;对于非凡重要的内容要采用多种方式进行有效通以确保传达到位。超级秘书网
(五)提高软件项目的风险管理意识。通泛学习项目管理知识把握风险识别、量化、策略探究、反应控制尔工具和方法把握项目风险管理所必备的知识。通过加强对项目知划中风险管理计划的审核提高项目组的风险管理意识。总结本表业项目中常见的风险及其策略作为风险管理计划中必要的风险详容,并切实评估相应策略的有效胜和可行险
(六)理清项目头系人。项目的目的就是实现项目干系人的需求和愿望。项目干弄人管理应当从项目的启动开始,项目经理及其项目成员就要分耀项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减刁琪对项目的阻力,以确保项目获得成功。
软件项目管理论文 3
有时即使不开展项目管理工作,软件开发项目也能取得成功。但是如果乏项目管理,则难以将成本控制在一定范围内,容易导致软件企业面临着亏损的风险。在开展项目管理工作的过程中,需要借助技术、方法等,管理软件开发活动,如此既有助于实现软件开发目标,又能够控制软件开发的进度以及开发成本。当前,虽然有部分软件企业依据软件工程理论,制定了管理软件开发的制度,但是却没有严格控制软件开发的进度以及成本。这种做法不仅会延长软件开发的时间,还会增加软件公司的经营风险,最终损害到相关用户的利益。而在软件开发过程中,开展项目管理工作,就有助于保证软件开发工作的顺利完成,同时提高软件企业的经营管理效率。
2项目管理在软件开发中的应用现状
在二十世纪六十年代中期,人们发现了在开发软件过程中存在着很多问题,具体的问题表现在以下两个方面:一方面,不规范的生产过程;另一方面,不重视管理工作。为了能够有效解决软件开发过程中存在的问题,人们开始尝试利用过程管理方法。但是到了二十世纪八十年代,还是没有制定管理软件开发过程相关标准。近几年来,在信息技术快速发展的背景下,人们采取项目管理来控制软件开发的质量、软件开发的成本等,以此确保软件开发的质量和成本等因素,符合当时的既定标准。在软件开发过程中,每一个项目组的不同成员都应该承担不同的任务,并且企业管理者应该要求他们要在规定的时间内完成自身的任务,这种明确分工制度,有助于提高员工的工作效率。
3项目管理在软件开发中的应用
每一个软件开发项目都要经过以下几个阶段:提出问题、研究可行性、分析需求、测试等。因此项目管理工作应该贯穿于软件开发的整个过程。
3.1可行性研究
无法开发哪一个项目,都需要进行可行性分析与研究。通过利用项目管理来研究软件开发项目可行性的目的在于:在最短的时间内确定软件开发项目是否具有开发的价值。其中可行性研究的内容包括:
1)、研究技术的可行性。其主要是指:要合理地分析开发项目的功能与性能,分析其中所隐藏的技术风险。
2)、研究经济的可行性。其主要是指:估计所开发的项目给企业带来的经济效益,然后依据所估算的经济效益,确定该项目是否具有投资的价值。
3)、研究社会的可行性。其主要是指:分析此项目的运行方式是否正确,分析当前的人员技术水平以及管理制度是否具有可行性。
3.2软件项目估算
在软件开发过程中,首先要规划软件开发项目,如此便于项目管理人员制定切合实际的估算方案。规划软件开发项目的内容主要包括:明确软件开发的目标、明确软件开发过程中需要用到的各种资源、明确软件开发的进度等。在软件开发过程中,估算起着非常重要的作用。通过估算可以保证软件项目在规定的时间内完成,也可以确保软件项目的成本未超出预算。在估算资源、成本以及进度的时候,要依据自身丰富的经验以及相关的数据。但是当前所使用的估算方法较为单一,此种估算方法容易增加估算风险。对此,研究人员应该努力研究出更多科学、有效的估算方法。
3.3软件项目开发人员的管理
在开展软件项目开发人员管理工作的时候,首先要合理安排人员。通常情况下,是由多个小组成员共同完成软件开发项目。在具体安排人员任务的时候,要依据每位人员的优势进行,并且要明确小组内每一位成员的工作任务以及工作目标。在软件开发过程中,要确定不同的责任人,比如:项目经理、开发经理,并且为每一个小组安排一名组长,如此有助于确保软件开发项目的顺利完成,同时保证所开发出来的软件属于高质量产品。
4结束语
软件项目管理论文 4
关键词:高职;软件工程;教学改革
1 软件工程课程教学中存在的问题
软件工程课程是高职计算机应用技术、软件技术等信息类专业的必修课程,该课程是指导软件开发与维护的一门实用性极强的课程,也是一门强调实践性的课程。该类专业的学生通过学习本课程,使其了解和掌握软件开发的方法和技术,具备作为软件开发人员所需的专业技能,为从事计算机软件开发和维护工作提供科学的方法。同时,软件工程教学内容除涉及计算机软件知识外,还涉及到项目管理、管理学、经济学、心理学、人机工程学等相关知识,因此,它也是一门综合性学科。而对于这样的课程若按照常规的教学方法在高职教育中很难开展教学,传统的高职软件工程课程教学中是以讲授为主,虽然也要求学生模拟编写一些软件项目若干开发文档。然而,由于所撰写的文档资料没有与实际项目结合起来,整个作业完成过程中学生不能很好了解撰写这些文档资料的实际意义,使得学生对学习该课程没有积极性,造成整个教学效果不理想,这也是高职学生不太愿意学习和学不好软件工程课程的主要原因。
2 课程教学改革内容及实践
2.1教学改革的思路
虽然软件工程课程在高职教育中存在一些难度,但作为今后要从事软件开发及维护工作人员来说该课程的内容重要性是不言而喻的。软件开发规范化是软件开发产业化发展的基础,由美国IEEE的计算机协会(IEEE―CS)和ACM联合公布的2004版《软件工程知识体系指南》将软件工程学科分解为10个知识域,它们是:Software Requirements(软件需求)、Software Design(软件设计)、Software Construction(软件构造)、Software Testing(软件测试)、Software Maintenance(软件维护)、Software Configuration Management(软件配置管理)、Software Engineering Management(软件工程管理)、Software Engineering Process(软件工程过程)、Software Engineering Tools And Methods(软件工程工具与方法)、Software Quality(软件质量),其对软件工程的知识体系做出了全面的解释,作为软件开发人员应关注和掌握这十个方面的知识,而作为高职学生虽然不能要求都掌握以上十个方面的知识,但是诸如软件工程中的相关知识,软件开发项目计划与管理、可行性分析、需求分析、概要设计、详细设计、代码设计与编码技术、软件质量与质量保证以及面向对象分析与设计方法的知识是应该要求掌握的。这些知识是从事软件开发和维护工作的基础,也是培养学生系统思考问题、解决问题的基础,因此,作为高职计算机信息类专业的学生应很好掌握这些知识,并会应用于实际工作中。
在高职信息技术类专业中如何开展软件工程教学,提高教学质量,使学生真正掌握软件工程的相关知识、掌握软件开发与维护的方法和技能,对培养应
用型的软件人才具有十分重要的意义。我们经过几年的教学改革研究认为高职软件工程课程要彻底改变以往以讲授为主而脱离项目开发实际的教学方法,改用开设该课程的同时,将我院已开设的项目开发实训课程纳入到软件工程课程教学中来,实现理论教学与实际能力培养同步进行。在我院计算机信息类专业人才培养方案中高年级学期中均开设有软件项目开发实训课程,要求学生在指导教师指导下完成软件项目开发,在该课程考核过程中我们发现学生对软件工程课程中所学的知识不能很好应用在项目开发中,特别缺乏系统思考和分析问题的能力,软件工程的基本思想和方法不能应用与项目开发中,因此我 为解决软件工程课程教学效果不好的问题,教师结合项目开发实训课程中学生开发项目的具体要求,上理论课的同时将软件工程的思想方法具体应用于项目开发中,达到在教学中理论联系实际,提高学生学习软件工程理论知识的兴趣,使学生能很好的掌握软件工程课程的相关知识,特别是能应用理论知识解决实际问题,培养学生系统分析和解决问题的能力。
2.2教学改革的主要内容
根据高等职业教育的教育规律和目标要求,以及软件工程课程特点和在计算机信息类专业中的定位,制订了相应的教学目标、教学内容以及考核办法。
1) 教学目标。根据培养应用型人才的需要,本课程的目标是使学生了解软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法,并通过实践确实掌握其方法的应用,培养其实践能力,为更深入地学习和今后从事软件开发和维护工作打下良好的基础。
2) 先修与后续课程。先修课程:SQL Server、JAVA或等课程。
要求学生在软件开发实训课程中开发应用软件,需要使用SQL Server、JAVA或等软件和开发平台,因此,需要先修过相关课程。后续课程:专业实训、毕业设计等
3) 教学课时。该课程的教学主要由软件工程课程和软件开发实训课程共同组成。软件工程教学课时为54学时,软件开发实训教学课时为72学时(每周4课时连排),建议学生每周有一天的时间在软件开发实训室集中开发项目。
4) 理论课程的教学要求。基本概念和基本知识:软件与软件工程,项目计划与项目管理,生存周期与软件开发模式,结构化分析、设计与编码,面向对象分析、设计与编码,软件的评审、测试与维护。
基本技能:能用软件工程的方法参与软件项目的分析、设计、实现和维护(通过软件开发实训课程来实现)。重点:系统分析、系统设计、系统实现、系统维护。难点:需求分析、软件测试。
5) 教学方法。软件工程课程以教师讲授为主,结合案例进行教学,要求学生将课堂理论教学与实践相结合。软件开发实训课程教师给予项目开发的指导和组织项目开发各阶段的评审工作,要求学生按7~10人为一项目组,每个项目组均要承担一个管理系统的开发项目,题目可以学生自己选定,也可由教师选定,但都要对其有要求,项目要有一定的难度。每个项目组选出项目经理一人,负责整个项目的开发管理工作,各成员均要按照软件开发的具体要求分配不同的角色,并要承担其角色的主要工作职责,在整个开发过程中各阶段的工作每个同学都要参与,并要进行考核。
6) 教学内容。主要分为软件工程课的教学内容和软件开发实训课程的教学内容。
(1) 软件工程课程教学内容及教学时安排,如表1所示。
(2) 项目开发实训教学。
① 教学方法。软件项目开发实训主要是针对高年级学生在学习软件工程课程时开展的专项实训。实训采取在学校内模拟IT企业环境下完成来自企业案例或开发一些具有应用价值项目或学校教师承担的开发项目的部分开发工作,也可是学生自选项目,整个实训过程严格按照工程实施的基本思想来实施,建议实施的进度与理论教学同步进行,要求学生按7~10人一组开发项目,并推选项目经理一人,根据项目的要求设立若干岗位开展工作。
② 实训教学考核方法,如表2所示。
项目开发实训考核是以阶段评审与项目验收相结合,重视阶段评审的成绩,即强调学生实训项目中间过程考核。
阶段性评审要求各项目组提交必要的工件,对工件进行评审,并最后给项目组和个人评分,评分标准按上表。
软件开发实训成绩=阶段评审×60%+项目验收×40%。
为提高整个实训工作的效益,在项目开发实训中需重视以下几个方面。
实训环境。要构建一个模拟IT企业的开发环境,如建设成工位式的开发环境,建立计算机辅助开发平台,搭建配置管理平台、案例库、源代码库等。让学生感觉到软件开发实训室与一般的计算机房不同,它是一个模拟IT企业环境的实训室,提高学生对IT企业的认同感。
实训管理。对学生的管理应参照企业对员工管理的模式进行管理,如要求学生按时上下班,强化考勤管理和任务管理,定期通报学生的出勤及任务完成情况,通过各种方法鼓励学生完成项目开发。
实训指导。软件开发实训课是学生第一次作为一个项目开发的人员进入实训室完成一个项目的开发,会有许多的不适应,此时需要指导教师给予耐心和充分的指导,指导工作主要有两方面,一是指导学生尽快结合软件工程课程内容掌握软件开发的流程,让每个学生了解整个流程中各阶段的主要工作和标志性的工件是什么?要怎样完成自己的工作。二是要在开发过程中做技术指导,让学生能独立完成软件开发工作。
实训项目。此阶段的实训项目应具有一定的实际意义,也就是说项目最好来自于企业的真实案例,实训项目开发难易程度对于学生在有限的时间内是可实现的。我们认为高职院校应积极开展校企合作,通过校企合作获得企业项目开发的案例,对这些案例进行必要的简化成为学生实训项目,也可通过整理学校自主开发的�
实训评审。实训过程中要严格进行项目开发阶段的评审工作,制订相应的评审条件和具体时间要求。每一阶段均要进行评审,只有评审通过才能进行下一阶段的工作,通过评审使学生更加了解IT企业的工作流程和工作要求,通过评审也能对每个项目组的开发工作和每个学生在项目中的工作进行评价。
实训资料。实训中需要产生许多文档资料,主要完成:项目计划书、需求规格说明书、概要设计说明书、详细设计说明书、用户使用说明书以及开发规范要求等相关文档资料。实训室应为学生提高各文档资料的模板,要求学生撰写的各类文档标准化和规范化,同时也要强调学生在实训中应遵照文档要求进行项目开发工作,并要对文档资料进行评审。
项目验收。项目验收是实训工作的最后一项工作,除要检查学生项目组的所有文档资料是否齐全、软件是否能正常运行外,还要考核每一个学生所作的工作量和质量,对每一个项目要给予一定的评价,给每个学生一个评定成绩,并将所开发的项目收入实训室的案例库中。
7) 课程考核。软件工程课程的最后成绩为:理论考试成绩×60%+软件开发实训成绩×40%。
3 结语
软件工程课程与软件开发实训课程相结合进行教学,主要是想通过在课程实训中的系统分析与设计、软件项目管理、合作与交流等方面的训练,使学生能很好的掌握软件工程课程的相关知识,培养学生综合运用软件工程的思想、方法及过程等知识开发实际项目的能力。在项目实践中要注重的是项目和过程管理、重视学生的组织和管理能力以及团队合作精神的培�
Researching and Practicing on Course Teaching Reform of Software Engineering
MA Yongtao, CHENG Jing
(School of Vocational & Technical, Yunnan Nationalities University, Kunming 650031, China)
Abstract: Based on the aim of the higher vocational education, this thesis expounds the teaching reform concerned about the course teaching and teaching methods of Software Engineering. This paper proposes some teaching methods that combine theoretical teaching with practical teaching, and then builds up the maneuverable system of teaching examination that can better evaluate the students’ knowledge and skill levels.
项目管理软件论文范文 5
论文关键词:软件项目;软件过程;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标准通过软件过程管理加强软件项目管理的实践模式使软件质量明显提高、需求分析周密、代码错误率明显降低、软件产品完整性好、功能齐全、维护量下降,软件项目最终得以顺利实现。
项目管理软件论文范文 6
关键词:实践教学;项目驱动;软件项目管理:软件工程
随着信息技术的飞速发展,软件产品的规模也越来越大,复杂程度越来越高,项目失败的概率也随之增长。研究表明,软件项目失败的原因主要有两个:一是错误的软件项目管理;二是应用项目的复杂性。实践证明错误的软件项目管理是导致软件项目失控的直接原因。各软件企业为了能高效高质地开发软件产品,都在积极将软件项目管理引入开发活动中。然而在“软件工程”的教学中,软件项目管理的教学效果却不尽人意。一方面,教材中的案例缺乏完整性、系统性和实用性;另一方面,软件项目管理的讲授方式不是十分合理,学生重视力度不够。作者将结合多年的软件工程教学经验,对软件项目管理的教学方法进行分析和探讨。
1软件项目管理的教学内容及特点分析
软件项目管理[1]是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员、产品、过程和项目等进行分析和管理的活动。软件项目管理是软件工程教学中的重要内容,它涉及了软件项目管理的五个标准化过程组和范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、风险管理、采购管理、项目综合管理九大知识领域,几乎覆盖了软件产品从立项到结束的整个过程。图1形象地展示了软件项目管理与软件开发过程在时间上的先后顺序。
大多企业的优秀管理者都是具有丰富经验的人员,同样,软件项目管理水平的高低偏重于软件项目管理经验的积累。软件项目管理的学习不仅仅是要掌
图1软件项目管理与软件开发过程的时序图
握基本的原理、方法和完成相关的设计文档,更重要的是将理论应用于实践,让学生真正理解理论的作用,体验在实际项目实施中理论知识的具体应用场景,培养学生的软件项目管理思想。立足于软件项目管理的教学目标和要求,结合软件项目管理自身的特点,分析研究认为,项目驱动的软件项目管理教学
方法能够充分调动学生学习的积极性,培养学生动手实践和主动探索的精神,提高教学的质量和水平。
2项目驱动的实践教学法
项目驱动教学法[2]是一种以建构主义为理论基础的教学方法,它以项目开发为主线展开教学,整个教学过程是一种在教师的指导下,以学生为主体的协作过程。这种教学法的主要特点是始终以项目中的任务展开教学,既注重最终的实践结果,又注重完成项目的过程。其中教师的职责在于使学习者置身于探索知识之中,通过具体项目的开发提供真实的“情境”,即实际项目中需要解决的问题。然后,通过教师的指导,学生之间的讨论来解决问题。这种模式旨在把学生融入任务完成的过程中,让学生积极地学习,自主进行知识的建构,以培养学生综合能力为最终目标。
2.1项目驱动教学对学生能力的培养
(1) 培养学生自主学习的能力。项目驱动教学法中任务的设定真正实现了以学生为主体的教学方针,学生为了完成任务就会主动去图书馆或相关的网站查阅信息,从而可以丰富知识,提高自学能力。
(2) 培养学生团队合作的能力。把全班学生分成几个小组,每组项目的完成情况,影响小组每个成员的评价,�
(3) 培养学生分析问题、解决问题的能力。任务设计后,让学生自己讨论,分析任务,提出问题,充分发挥了学生在学习过程中的主动性、积极性和创造性。这种分析问题和解决问题的能力同样可以应用到其它的领域。
(4) 培养学生实践创新能力。实践是创新的源泉。对于同一个任务,每个小组采用的解决方案不尽相同。他们可以根据自己的知识背景和对任务的认识,对任务的实现方法进行大胆的设计,从而培养学生的创新思维,提高学生的创新能力。
总之,项目驱动的任务式教学方法能够充分发挥学生的主观能动性,全面提高他们的综合素质。
2.2项目驱动教学法的操作过程
“项目驱动”教学模式是教学过程中诸要素相互作用而形成相对稳定的组织结构和操作程序。 采用“项目驱动”教学法,在软件工程项目实施的每个阶段,我们均采用“项目任务――分析任务――理论学习――完成任务――评价总结任务”的教学模式。学生在完成“项目任务”的操作过程中,发现问题、解决问题,通过对任务的剖析,丰富了学习的经验、提高了学生完成任务的能力。
3教学实施
从软件工程的角度讲,软件项目管理过程主要分为七个阶段[3]:可行性研究阶段、需求分析阶段、设计阶段、编码阶段、测试阶段、验收阶段和维护阶段。我们在“软件工程”的教学过程中,打破以往按教材编排顺序讲授知识的方式,以软件项目的管理过程为讲授顺序,并以一个完整的具体项目实施为依托进行“软件工程”教学。其中软件项目管理的教学内容将穿插到软件生存周期各个阶段进行讲授,各阶段将会不可避免地包含相同的管理内容,通过学生重复学习与实践,可以使其深刻体会软件项目管理的思想。本校计算机专业大三学生的“软件工程”课程共54课时,我们按照理论教学与实践教学1:1的比例,先进行相关理论知识的讲解,然后进行课程实验的具体实践,结合“PetStore电子商务网站”的建设,让学生及时运用所学内容来完成项目任务,通过将软件项目管理的教学内容贯穿到项目实施的整个过程来实施教学。
3.1教学准备
(1) 设置项目任务。在教学实施前,教师应根据教学进度、教学目标和要求制定教学计划,并将PetStore系统建设分成各个相对独立的子项目,将相关的理论知识分散在各个子项目中。学生应根据教师的安排认真阅读项目要求,查阅相关资料,对相关问题进行思考分析,并为课堂讨论做好准备。
(2) 建设团队。我们对学生按“项目小组”以自由组合的方式建立软件开发团队[4],每个团队不得超过6人,各组成员根据实际项目开发的过程进行分工。项目经理由小组成员讨论推荐产生,负责整个项目的规划、实施和控制。系统分析师、软件测试工程师和开发工程师通过自我推荐或项目经理指定产生。项目中的每项任务要落实到人且规定该任务的起止日期和时间。
(3) 建设规范的实验、实训室。根据项目驱动教学的特点,不仅需要学生提交书面的阶段性文档,还要通过具体的实践实现项目任务,提交项目作品。因此规范化的实验、实训室成为项目顺利完成的保障。
3.2教学内容
我们将从软件的生存周期着眼,利用阶段化的项目管理方法,结合项目实践,对工程化生产中的管理工作进行讲解。对于软件项目的每一个阶段均要做出工作计划,在阶段结束之后,要对该阶段的工作活动进行总结评价,并对后续阶段的时间、人员、资金方面的需求做出估计。下面按软件项目的开发阶段,以PetStore系统的建设为例,详细介绍软件工程中软件项目管理的教学内容及相关的项目实施任务。
3.2.1问题定义与可行性研究阶段
问题定义与可行性研究阶段主要涉及的项目管理教学内容包括:确定项目实施范围、项目目标、评估实施过程中主要的风险、制定项目实施的进度计划、成本和预算计划、人力资源计划等。
针对PetStore系统的开发建设,我们让老师模拟实际的用户,学生在对用户调查的基础上,结合软件项目管理理论知识,通过查阅资料、小组成员之间的讨论,编写详细的“系统目标与范围的说明书”。按照说明书的内容和要求,分析项目可能存在的风险,建立“风险项目检查表”。明确系统流程,建立系统逻辑模型,制定不同的解决方案。通过与用户的沟通,考虑经济上、技术上的可行性,比较选择一个较优的解决方案。在任务完成的过程中,学生可以真正感受到非文档所能体现的管理问题,如人力资源管理、沟通管理、风险管理等。
3.2.2需求分析阶段
本阶段将更加全面、准确地分析PetStore系统的需求,主要涉及的管理工作为需求管理、质量管理、沟通管理等。通过与用户的多次沟通,明确系统可以分为用户管理、商品管理和维护库存数据库三大功能模块,每个大的功能模块又可分为若干小模块,如用户的注册模块、登陆模块、修改模块等。为保证PetStore系统的开发质量,需要在此阶段制定软件质量标准,主要包括功能性、稳定性、经济性、适用性、可靠性、安全性、可维护性等指标。明确系统的各种需求后,编写“软件需求规格说明书”。
3.2.3软件设计阶段
软件设计是一个将需求转变为软件陈述(表达)的过程,程序的质量主要是由设计的质量来决定。本阶段主要包括范围管理、质量管理、时间管理、沟通管理等软件项目管理方面的内容。例如在PetStore系统设计的过程中,根据“需求规格说明书”中需求分析方法,确定所采用的软件设计方法及系统数据、软
件框架。软件设计阶段的任务主要包括PetStore系统界面设计、数据库设计、数据结构设计、编写设计文档等。在设计过程中始终要求按照质量标准予以实施,并及时进行质量评估。学生完成PetStore系统设计后,可以邀请用户或其他小组成员参与设计复审。复审时,设计人员要提出对设计方案的详细说明,答复与会者的问题,并记下重要的评审意见。
3.2.4编码阶段
编码阶段涉及的软件项目管理教学内容主要有风险管理、质量管理、进度控制、成本管理、时间管理、配置管理、项目度量管理等。针对PetStore系统,按照设计文档的要求,对系统的各个功能子模块采用自己熟悉的语言进行编码设计。在PetStore的功能模块开发过程中,并不能完全保证项目按照开发计划进行,为了能使项目进度和开发计划同步,软件管理者在项目开始后应时刻关注计划执行情况,随时进行风险分析,调整项目进度,使实际进度与计划进度保持一致。编码结束后,由项目小组的技术人员对代码是否按规范编写进行审核,以保证编码的质量。
3.2.5测试阶段
测试阶段主要涉及的软件项目管理教学内容有质量控制、配置管理等。针对PetStore系统,在编码阶段由项目开发者实现单元测试,测试阶段由独立于开发人员的测试人员进行“渐增式”的集成测试,最后,对照需求说明书,完成确认测试,并编写相应的测试报告文档。在测试过程中,学生利用配置管理的CASE工具,可以了解配置管理在软件开发中的具体应用及其所起到的重要作用。
3.2.6运行和维护阶段
运行和维护阶段的软件项目管理内容主要包括维护成本估算、配置管理、风险管理、维护管理文档的编写。在PetStore系统的维护中,加强文档的建设,做到任何事情均有记录,任何变更均可回朔,利用维护日志和软件修改报告记录维护过程中的具体实施情况,学生可以根据维护情况参照开发工作量来估计维护的费用。此阶段还可以让学生选择合适的自动配置管理工具来实施配置管理。
3.3教学总结
我们要求学生按PetStore项目生命周期的开发阶段进行阶段性项目总结。每个阶段的教学结束后,老师给学生一定的时间来实现PetStore 系统相关的内容,同时要求每个项目小组派一名代表在课堂上对阶段性的工作实施过程进行讲解,让全班学生共同讨论,相互交流不同的观点,以期从讨论中发现自己的不足和别人的优点,同时也能活跃课堂气氛,培养学生主动思考的意识。
在“软件工程”软件项目管理的教学过程中,我们注重的不是具体某一管理技术的学习,而是让学生深刻体会软件项目管理的过程,培养学生软件项目管
理的思想。
4结语
实践表明采用“项目驱动”的软件项目管理教学方式,可以将学习置于一个真实的软件项目开发环境中,让学生亲自动手操作来学习“死”的理论,加强理论与实际的联系,从而激发了学生的创新意识,调动了其学习积极性,培养了学习兴趣,提高了他们分析问题和解决问题的能力,达到了教学目标和要求,起到了良好的教学效果。
参考文献:
[1] 张建成。 周呜乐。 浅谈软件项目管理[J]. 信息技术与信息化,2008(5):84-86.
[2] 邓锐,佘维。 基于筛选机制的高职软件技术专业项目驱动教学探讨[J]. 计算机教育,2008(22):113-114.
[3]Php Metzger,John Boddie. 软件项目管理―过程控制与人员管理[M]. 北京:电子工业出版社,2002.
[4] 裴小兵。 基于软件开发团队的软件工程教学实践研究[J]. 计算机教育,2008(2):55-56.
Application of the Thinking of Software Project Management in "Software Engineering" Teaching
ZHANG Zhong-lin, WANG Jian-sheng, LAN Li
(School of Electronic and Information Engineering, Lanzhou Jiaotong University, Lanzhou 730070, China)
软件项目管理论文 7
相关热搜:项目管理 软件项目管理 项目管理工程
随着计算机硬件水平的不断提高,计算机软件的规模和复杂度也随之增加。软件项目中一些问题也应运而生:项目无法按期完成、项目合作方的工作难以协调、用户需求经常变动、工作质量难以保证。为了避免愈来愈多的“项目黑洞”给企业带来的损失,各个软件企业都将软件项目管理引入到开发活动中来,对开发实行有效的管理。
一、软件项目引入项目管理的必要性软件项目即软件开发项目,是一个用计算机程序和相关技术文档把思想表达出来的过程。软件项目所涉及到的内容大多是无形的东西,既看不到质,也看不到量,从而使软件项目的管理难度加大。
随着信息技术的飞速发展,软件产品的规模也越来越大,完全由个人完成一个软件项目几乎是不可能的,软件项目的开发都是以项目组为单位完成的,这必然涉及到对软件项目的管理。一个软件项目的成败,不在于其项目组的技术人员的技术水平,而在于是否采用合适的管理方式。好的管理方式不一定能使项目完全成功,但是一个不合适的管理模式肯定会导致软件项目的失败。
项目管理是指在一定资源如时间、资金、人力和设备等约束条件下,对一个有既定目标(质量、投资、进度)要求的任务进行计划和控制的过程。项目管理以系统的观点来对一个项目进行全程的控制,同样也可以用此来完成对软件项目的管理,而且由于软件项目的特殊性,项目管理在应用于软件项目的管理时,也会有其独特的一面。在项目管理应用于软件项目的管理方面,已经有了不少成功的案例。
二、影响软件项目管理的关键要素
(一)可靠的软件需求
软件需求是软件项目的根本所在,需求不明确,工作就没有方向,因此影响软件项目的第一个因素就是项目要有一个可靠的需求。软件需求应当是项目有关的人员一致同意的、清楚的、完整的、详细的、可实现的和可测试的。
需求的确定,开发者应该认真听取用户的意见,并进行记录,反复和用户沟通,不能想当然地把自己的想象当作用户的需求。在确定用户需求的时候,应该尽可能从专业的角度发掘用户的潜在需求,以达到最大限度地满足用户的目标,只有这样才能可能开发有价值的软件项目。一定要强调的是,在项目开始以后,应该尽最大可能不更改需求,要与用户进行很好地沟通,以确保开发工作能按照需求进行,也就是说,只有有了可靠的需求,项目开发才有基本保证。
(二)可行的项目计划
凡事预则立,不预则废。这里的预就是指计划。明确了项目目标,还必须有一个切实可行的计划。软件项目计划的目的是为完成软件工程和管理软件项目。制定合理的计划,它包括以下步骤:估计软件
产品规模及所需的资源,制定时间表,鉴别和评估软件风险和协商约定,而且要标志出几个阶段性的里程碑,这是极为关键的一点。对于软件企业来说,一个可行的计划的重要性是不言而喻的。但是在一些单位,很多人都听过这样的一句话一“计划赶不上变化”。这种变化对某些行业来说也许并不会产生太大的影响,但是对于软件企业来说,却会对软件产品的保证带来严重的负面影响。造成这种现象的原因很多,主要是因为对计划的重视程度不够,计划过于笼统、粗糙,导致可执行性差,再加上一些人为因素的影响,必然会产生一些不良的影响。因此,要想成功进行项目管理,就要对计划高度重视,周密制定,严格执行。只有严格进行计划,才能使项目管理得以成功实施。
(三)规范的操作流程
软件开发流程非常规范和系统化,其流程的可执行性很高,并且能在实践过程中不断改进。流程是保证项目成功的一个关键因素。由优秀的项目成员按照规范的操作流程进行项目开发,才能最大限度地保证项目的成功。一个规范的流程可以保证不是很出色的人开发出来的,产品不至于太差,但不能保证做出精品,而一个不规范的流程很难做出好的产品。
通过流程可以实现一种规范化、流水线、工业化的软件,从而最终实现成功的项目管理。对于软件项目的每一个阶段均要做出工作计划并交有关部门监督执行,在阶段结束之后,要对该阶段的工作活动进行评价,并对后续阶段的时间、人员、资金方面的需求做出估计。每个阶段的工作成果需经项目的技术管理部门审查合格后,方能开始下一阶段的工作。
(四)有效的人员沟通
软件项目的实施对人的依赖性比其他行业更为突出,它是一项知识性极强的工作,因此对人的管理相当复杂,如何加强人员之间的有效沟通,是软件项目成功的一个非常关键的因素。这里的沟通包括两个方面:一个是软件项目组开发人员与用户的沟通;另一个是软件项目组内人员的沟通。只有对用户的需求非常明确,软件项目的实施才有一个坚实的基础。对用户的需求不明确,开发出的软件根本没法用,所以这样的项目在一开始就是失败的。组内人员的沟通有助于在明确了用户需求后,使得项目能按计划进展,最后才有可能完成该软件项目。
没有最好的沟通方式,只有最有效的沟通。因此沟通因人因事而采用不同的沟通方式,才可以达到良好的效果。有时项目组需要和用户沟通,面谈是一种较为花时间的方式,而用户方常常以忙来说明自己没有时间,这时候可以采用电话沟通的方式,这样马上就可以得到答复。有时可以将项目进展情况用邮件的方式发给对方,使得软件开发的工作 而在内部的沟通形式就可以多样,如定期的项目沟通会议、项目进展文档等。
总之,只有加强沟通,才能使得软件项目顺利实施,沟通是成功软件项目管理的很重要的因素。
(五)健全的项目文档
软件项目的文档在整个生命周期中的地位和作用尤为重要,无论怎样强调都不过分。文档作为软件产品的主要形式,集中体现了软件人员的劳动成果,没有文档就称不上软件。但是实际情况是许多软件开发人员从一开始就不注重文档的写作,尤其是当软件项目的工期又很紧张时,在没有任何文档或只有少量文档的情况下就开始了具体的开发工作。有的写了文档,但是在开发过程中需求发生了变更,也没有及时在文档中体现出来,使得过一段时间后开发者对所开发的内容也记得不清了,当项目出现问题时,没有有效的文档可查,致使软件项目延期或失败。
软件开发过程中各阶段的文档不健全,往往在项目接近尾声时为了验收才补写文档。最常见的是有系统分析与概要设计文档,但是没有详细设计文档,在程序开发过程中,开发人员往往最大限度地发挥着自己高超的编程技巧,以至于在后期维护时,因为没有详细的设计文档,给项目的后期维护带来困难。
编写文档的工作量是很大的。有时会占整个项目的40%,所以文档的编写会花费大量的时间和精力,但是有了好的文档,会对后期的开发工作带来很多的便利。健全的文档管理是软件项目成功实施的一个重要因素。
三、软件项目管理的方法
软件项目管理有阶段化管理,量化管理和优化管理三个层面。
(―)阶段化管理
阶段化管理指的是从立项之初直到系统运行维护的全过程,将项目分成小的阶段。比如,通常分为问题定义、可行性研究、需求分析、总体设计、详细设计、编码、狈彳试和维护等几个阶段。每个阶段都有明确的目标和成果验收,以及必要的监督回馈,这样就能够很好地减少项目负责人和客户的分歧,增加项目风险的可控性。在项目负责人提交给客户的需求分析和初始报告里,就已经把每个阶段要完成的工作,可出的成果,甚至具体到有多少个界面,都能清晰的描述出来。这样,在每个阶段完成后,客户和项目负责人都能够比较清楚地了解项目的进展、完成情况,以及客户对项目完成部分的满意程度。同时,也方便进行项目组成员的绩效评估。
(二)量化管理
把项目的方方面面尽可能地进行数量化,做到责任清楚。给客户做软件,时常碰到这种问题:某阶段成果A(比如说,包括A1、A2、A3等不同部分)出来了,客户看了以后,可能认为A1完全符合要求,A2根本就不对,A3虽然有毛病但改改还可用,等等。那么,这其中的问题出在哪里?责任该由谁负?责任又有多大呢?为此,必须把各种目标、投入、成果等分类量化。比如,用明确的模块或子系统表达客户需求,精确计算A1、A2、A3每部分花费人工、物力、财力等等。把各种量化指标存入数据库,就能够轻而易举地解决上述的问题了。而且,每个阶段都有清晰的量化管理,也非常有利于整个项目进程的推进。
(三)优化管理
优化管理就是分析项目每部分所蕴涵的知识、经验和教训,更好地发扬项目进程中的经验,吸取教训,在全公司传播有益的知识。再如前面例子,通过分析发现A1部分的领头人能力强,就可以让他以后多带几个人,使他的知识和经验更好地发挥成效。A2、A3部分为什么不成功?是客户的需求没提清楚,是理解的错误,还是有设计的问题?通过这些分析后,有利于进一步优化项目管理。
四、软件项目管理过程中的几个误区
(一)对需求的修改是必然的,具体细节可在以后的开发过程中填充
在软件项目的需求分析阶段,软件开发人员和项目负责人通常认为开发方与客户方在各种问题的基本轮廓上达成一致即可,具体细节可以在以后填充。理由是无论开始时多么细致,以后对需求的修改几乎是必然的。但在实际操作中,由于需求阶段对问题的描述不够细致,导致后来预算超支或者时间进度达不到要求的情况并不少见。正确的做法应该是:在项目需求分析阶段,双方必须全面地、尽可能细致地讨论项目的应用背景、功能要求、性能要求、操作界面要求、与其他软件的接口要求,以及对项目进行评估的各种评价标准。在需求分析结束以后,双方还要建立可以直接联系的渠道,以便尽早地对需求变动进行沟通。
(二)软件项目的需求可以持续不断地改变,并且可以很容易地得以实现
在需求分析阶段,还有一个经常出现的问题,就是认为软件项目的需求可以持续不断地改变,而且这些改变可以很容易地实现。在具体实际中由于种种原因,客户方很难在需求分析阶段就能全面而准确地描述所有问题。随着开发进度的推进,往往会有一些需求的改变。现代软件工程理论也利用软件的灵活性特点通过各种方式来适应这种情况。实践表明:随着开发进度的推进,实现软件需求更改所需要的代价呈指数形式增长。假定在需求分析阶段实现需求更改要花费1倍的代价,那么,在系统设计和编码阶段,则需要花费1.5~6倍的代价;在系统测试阶段需要花费10~20倍的代价,在软件版本以后,甚至要花费60~100倍的代价。由此可见,在项目开展过程中,软件需求的改变应当尽早提出。这样才能做到既节省开销,又较容易实现。
(三)在系统详细设计阶段,必须写出所有程序的伪码
在详细设计阶段,起初为了便于代码的维护修改,要求文档工作应该做到写出所有程序的伪码。伪码的最大作用是对程序的算法流程进行描述,便于人们深入了解程序的功能和实现过程。因此,伪码在一定程度上的确有利于对程序代码的维护和修改。但在实际工作中,这种做法却很难实施。为了保证项目文档和程序代码的一一对应关系,维护程序代码的同时也需要对项目文档进行维护。伪码和程序代码非常接近,对伪码进行维护,就相当于进行了加倍的程序代码维护。为了赶进度,这种方法在实践中往往会流于形式。所以,切合实际的方式应该是对一般的程序文档做到程序流程图即可,对涉及了较复杂算法的程序才需要伪码。
(四)编码阶段是整个软件项目中最重要的阶段
在软件开发阶段,项目负责人往往认为软件程序主要由代码组成,因此编码阶段是整个软件项目中最重要的阶段,应该给予大量时间,集中主要资源。与编码阶段相比,需求分析、详细设计以及测试时间较少,容易造成测试不完全及软件上线后的先天不足,给今后的工作造成被动。如今,由于软件的规模和复杂度都较以前有较大的增加,再加上半自动化软件代码开发平台的出现,现代软件项目管理的中心已经发生了转移一不是着重编码阶段,而是着重系统总体/详细设计阶段。一般,系统总体/详细设计阶段应占整个软件开发时间的一半。这样才能充分考虑系统将会出现的各种问题及其解决办法,为以后的编码、测试工作争取主动。
(五)软件所有的内部测试工作应由测试人员完成
在软件测试阶段,由于在项目人员配置中设置了专门的测试人员,人们通常认为软件所有的内部测试工作应该由测试人员完成。但这种做法往往会造成测试不全面,软件交付后经常出现问题的情况。在实际工作中,由于使用“白盒法”对测试人员各方面素质有着较高的要求,进行程序测试时,测试人员总是优先使用“黑盒法'狈j试没有通过才会考虑对程序代码进行“白盒法”测试。显然,这种对“白盒法,有意无意的“逃避”,对软件的可靠性和稳定性构成了威胁。要解决这个问题,一方面需要提高对测试人员的要求;另一方面也需要让程序员完成部分的“白盒法”测试。
(六)软件项目管理只是相关技术部门的事,与公司其他部门无关
在竞争日益激烈的今天,软件项目规模大、复杂度高,而且时间要求紧迫。要想提高公司的软件项目管理水平,就需要提高公司的整体参与意识,需要公司各个部门协同作战。例如,需要会计部门协助进行项目预算、财务管理和费用控制;需要研究部门(技术委员会)指派专家协助进行各种风险评估,提供技术指导;需要后勤部门提供各种保障。
(七)开发进度滞后时,可以聘请更多的程序员加入到开发团队中,通过增加人力资源追赶开发进度
如今,在注重团队开发的时代,开发方应该根据目前的软件项目管理水平慎重考虑这个做法。如果新加入的程序员对目前软件项目的应用行业有一定了角解并且可以很快地适应开发方的项目管理方式、软件开发风格、团队协作氛围,那么“新人”的加入是有益的。否则,可能会“好心却办了坏事”。因为尽管新人的个人能力很高,但为了使其与大家一起协同工作,开发团队不得不分出人手对新人进行与项目有关的技术、业务培训。更重要,也是难度最大的是,还要引导新人融入到整个开发团队中。这可能需要花费开发团队大量的时间和精力,很有可能使项目进度更慢。
软件项目管理论文 8
关键词:软件工程;教学研究;学生为主体
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及工程概论、项目管理、程序设计语言、面向对象的需求、数据库、软件开发工具、系统平台、标准、设计模式等,是一门综合性很强的软件课程,在计算机教学体系中占有十分重要的地位[1]。上世纪90年代以来,计算机科学蓬勃发展的同时,我国计算机软件行业也进入了快速发展时期。软件行业呼唤计算机教学方面的改革,希望走出校门时,新一代软件人才能在更好掌握软件工程理论知识的同时拥有一定的实践经验。这就对软件工程这门计算机专业核心课程提出了更高的要求。目前,软件工程课程的教学改革已经在各高校开展多年,其中引入案例教学,解决理论与实际应用衔接的问题[2];以及引入项目式实践教学,提高学生动手能力和感性认识等[3],都是比较有效的教学方式。但对于如何以学生为主体,提高学生自主学习软件工程的教学方式,目前还没有系统的经验总结。本文从软件工程教学存在的问题开始,介绍在五邑大学计算机学院开展的以学生为主体的软件工程教学,讨论提高软件工程课程教学质量的途径和方法。
1软件工程教学的困难
要提高软件工程课程的教学质量,还存在一定困难。
从软件工程的学科发展上看,软件工程的学术研究和教学过程本身有着不同的动作机制,学术界的最新成果和正在进行的软件设计很难直接相互渗透。另外一方面,从学生的认识结构看,在软件工程的教材中添加大篇幅的工程经验,虽然可以一定程度地解决学生缺乏实践经验的问题,但这些内容并不能完全构成学生对软件工程的认知结构。教材和课程大纲中的学术成果和经验理论,是知识的结果,不是知识的形成过程。经典理论不能代替学生从动手实践中获得自我认知的能力。软件工程教学不能离开实际的体验,否则就容易造成类似人文学科中学术成果和经典阅读脱节的情况[4]。
因此,在传统的软件工程课程中,由于课堂教学方式具有局限性,学生学会了软件工程的原理和方法,但不会在实践中运用所学知识解决实际问题。引入项目式教学后,课本当中的例子多数是为概念和原理而设立的,无法在规模和复杂程度上与真正的软件开发项目相提并论。这就导致学生缺乏对软件工程实践过程的感性认识,学完课程后仍不知道应如何着手一个软件项目的开发[5]。而实践又是掌握工程科学的最佳方式。对于不断发展的软件理论,其中的知识与经验只能通过实践者自己亲身执行后,才能被理解和掌握。
为了提高软件工程课程的教学质量,从根本上提高学生的学习兴趣,五邑大学计算机学院在近年的软件工程教学中,强调以学生为主体,实施学生自主体验的教学改革。目的就是提高学生对软件工程经典理论的感性认识,不让项目式的实践教学流于形式,使学生在完成软件工程的学习后,能适应软件行业的工程化需求。
2以学生为主体的自主体验式教学设计
为了体现学生自主体验的过程,我们在软件工程的课程教学大纲中提出了以学生为主体的教学方案,其目的是使学生能主动投入到软件工程的学习中,使教学内容能与学习体验更紧密地结合。同时,在实践教学中,软件工程的教学设有学生自选项目的实践环节。新的教学设计,关键就在于引导学生自主参与项目式教学。
为了强调学生自主体验,该课内实践的选题范围要求来源于五邑大学校内的具体软件需求,并将软件开发的工作量控制在一定的范围之内,使项目实践内容能覆盖整个软件生命周期。最后,参考国家软件开发的标准文档要求,要求学生在各阶段完成后提交阶段性书面总结。具体地,以学生为主体的教学改革主要包括以下5个方面。
2.1提出注重互动的理论教学
互动式的理论教学首先要求教师要少讲,把学习的机会留给学生。理论的学习和掌握依然是项目式教学的基础,这些经典公式和行业标准通常是学生最不容易用心学习的部分,而引入互动式的课堂理论教学可以较好地解决这一问题。传统的软件工程教学大纲存在项目实践方面内容的缺失,而补充了项目式教学后的软件工程,往往更像是一种“基于项目活动的研究性学习”,这就使教师更注重项目经验的传授。其实,“最好的教学是对话式的教学”,教师应该从自身开始改变观念,不再一成不变地重复教学。学生通过与教师的对话式交流,可以在互动中解决项目中的实际问题,完成教学大纲中要求的理论学习部分。
2.2要求学生完成真实可见的软件项目
在课内实践中,教师要求学生完成一个来自校内的实际软件需求,这个软件的需求通常是学生可以在日常生活中直接感受到的,这样可以提高软件开发中需求调研的真实性,更有利于增强学生的自主体验。在以往的教学中,我们没有提出这样的选题范围要求,而学生一开始对软件开发的理解又有限,因此选题往往是教师熟悉的领域,或是学生从网络上找到的参考题目。结果是部分学生在实践中积极性不高,还出现有学生照搬参考书和网络上已有案例的情况。新的实践选题范围要求必须来源于校内实际需求,这可以更方便教师控制实践项目选题与某些参考书中案例之间的重复度,也加强了学生调研工作的真实性。
2.3在理论与实践教学中开展深入的专题讨论
专题讨论的前提是学生的课外学习和总结,讨论时的主体应该是学生而不是教师。长期以来,在软件工程的理论与实践教学中,基本是教师单向传授,教师讲学生听,教师布置课题学生完成,学生离开了教师就不知道干什么,不利于提高学生的综合素质。因此,在软件工程教学时,教师必须要少讲,目的是要把实践过程留给学生去体验。软件的开发过程并不是一成不变的,每次软件开发都是对软件工程系统框架进行的一次创造性实践,真实的开发过程往往不都能完全遵循教科书中建议的软件开发流程。因此,在学生的课内实践中,教师首先让学生通读教材和讲义,然后鼓励学生根据课程学习的要求去寻找来自生活中的实践项目,也就是自己找到想解决什么问题,并进一步阅读课本和参考资料,在教师、学生之间开展专题讨论,用问答和辩论的方式完成理论学习和项目体验。另外,专题讨论的题目并不需要预先定好,而是应该在项目实践的进程中挖掘出有讨论必要的题目,同时鼓励学生在讨论前进行充分准备,查阅相关的期刊和论文,并在讨论后进行总结。
2.4注重项目实践中对软件项目管理的体验
软件工程是一门锻炼学生综合能力的课程,工程实践性非常强,而工程总离不开项目管理。学生一开始知道课程中包含项目实践后,往往最先关心应该在软件开发中使用什么技术和工具。但软件工程的实践教学并不应把实践侧重于软件开发技术的应用,更不应指定实践项目使用的开发技术。指定开发语言和开发工具容易使学生混淆软件工程课内项目的实践方式和其他专业课,如数据结构、数据库、操作系统和Web体系结构的课内项目实践。软件工程教学的目标应是在讲授软件工程经典理论和工程经验的同时,让学生体验软件项目的开发过程,提高对软件项目的整体把握能力,增强软件项目管理理念。因此,教师应当引导学生把注意力集中在软件工程的知识框架和对软件过程的实践上,并在实践环节适当增加如成本控制、进度管理、风险分析以及人员管理等有关软件项目管理的体验。
2.5灵活的成绩评价方式
学生完成软件项目的分析、设计、编程和测试后,可以在课程答辩中展示已掌握的知识和在项目中实现的能力锻炼。在课程答辩中,学生可以发现其他项目小组的优缺点,教师也可以在答辩过程中提出项目实践中的不足之处,帮忙学生找出差距,弥补不足[6]。
3教学效果
五邑大学计算机学院在施行新的旨在激发学生自主体验的教学方法后,学生普遍反映在学习软件工程更有兴趣的同时获得了更多的实践经验。新的选题范围使学生不出校园即可以做软件项目的需求调研,大大提高了学生参与实践的积极性,也激发了学生软件开发创作的热情。选题范围的缩小反而使课内项目选题的多样性得以实现,涌现出一批来自学生视角的新课题,如AP07064班的选题《宿舍网上自主充电系统》,以及AP07102班的选题《学生饮水管理系统》,都有一定的实际应用价值,也获得了校内有关部门的关注。客观上,学生在软件工程课程中的成绩稳步提升的同时,对教学的评价也不断提高,2009-2010学年软件工程的课程评价超过了9.2分,满分为10分。
4结语
目前,软件行业正在飞速的发展过程中,软件工程教育的理念、教学形式也处于发展阶段。学生为主体的教学形式作为一种尝试,运用于软件工程的课内实践环节中,取得了一定的教学效果。如何立足于我国软件行业的现状、特点,采取相应的教学手法,提高软件工程的学生学习体验,提高教学质量,值得我们不断探讨和研究。
参考文献:
[1] 姜湘岗,章晓莉。 软件工程课程教学研究与研讨[J]. 计算机教育,2010(5):112-114.
[2] 潘娅。 软件工程教学方法探索[J]. 高教研究,2006(2):28-30.
[3] 温颖,周昕。 项目教学法在软件工程教学中的应用[J]. 科技信息,2010(24):206-207.
[4] 李翠叶。 重建人文学科的文化实践机制[J]. 文教资料,2008(15):162-164.
[5] 黄芳。 基于项目实践的软件工程本科课程教学模式探讨[J]. 湖南社会科学,2009(5):174-176.
[6] 胡洋,苏琳。 Web软件时代的《软件工程》课程改革与建设[J]. 中国成人教育,2010(5):111-112.
Student-oriented Course Design in Software Engineering
LIN Zihui, HE Guohui
(College of Computer Science, Wuyi University, Guangzhou 529020, China)
软件项目管理论文 9
随着信息技术的飞速发展,软件产品的规模也越来越庞大,个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。我公司是西安一家中型软件企业,在公司中已经实行了项目管理制度,软件项目管理是整个项目管理中的一个重要组成部分。
从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。
软件开发不同于其他产品的制造,软件的整个过程都是设计过程(没有制造过程);另外,软件开发不需要使用大量的物质资源,而主要是人力资源;并且,软件开发的产品只是程序代码和技术文件,并没有其他的物质结果。基于上述特点,软件项目管理与其他项目管理相比,有很大的独特性。
二、软件项目管理的组织模式
软件项目可以是一个单独的开发项目,也可以与产品项目组成一个完整的软件产品项目。如果是订单开发,则成立软件项目组即可;如果是产品开发,需成立软件项目组和产品项目(负责市场调研和销售),组成软件产品项目组。
公司实行项目管理时,首先要成立项目管理委员会,项目管理委员会下设项目管理小组、项目评审小组和软件产品项目组。
1、项目管理委员会
项目管理委员会是公司项目管理的最高决策机构,一般由公司总经理、副总经理组成。主要职责如下:
(1)依照项目管理相关制度,管理项目;
(2)监督项目管理相关制度的执行;
(3)对项目立项、项目撤消进行决策;
(4)任命项目管理小组组长、项目评审委员会主任、项目组组长。
2、项目管理小组
项目管理小组对项目管理委员会负责,一般由公司管理人员组成。主要职责如下:
(1)草拟项目管理的各项制度;
(2)组织项目阶段评审;
(3)保存项目过程中的相关文件和数据;
(4)为优化项目管理提出建议。
3、项目评审小组
项目评审小组对项目管理委员会负责,可下设开发评审小组和产品评审小组,一般由公司技术专家和市场专家组成。主要职责如下:
(1)对项目可行性报告进行评审;
(2)对市场计划和阶段报告进行评审;
(3)对开发计划和阶段报告进行评审;
(4)项目结束时,对项目总结报告进行评审。
4、软件产品项目组
软件产品项目组对项目管理委员会负责,可下设软件项目组和产品项目组。软件项目组和产品项目组分别设开发经理和产品经理。成员一般由公司技术人员和市场人员构成。主要职责是:根据项目管理委员会的安排具体负责项目的软件开发和市场调研及销售工作。
三、软件项目管理的内容
从软件工程的角度讲,软件开发主要分为六个阶段:需求分析阶段、概要设计阶段、详细设计阶段、编码阶段、测试阶段、安装及维护阶段。不论是作坊式开发,还是团队协作开发,这六个阶段都是不可缺少的。
根据公司实际情况,公司在进行软件项目管理时,重点将软件配置管理、软件质量管理、软件风险管理及开发人员管理四方面内容导入软件开发的整个阶段。
在八十年代初,著名软件工程专家B.W.Boehm总结出了软件开发时需遵循的七条基本原则,同样,我们在进行软件项目管理时,也应该遵循这七条原则。它们是:
(1)用分阶段的生命周期计划严格管理;
(2)坚持进行阶段评审;
(3)实行严格的产品控制;
(4)采用现代程序设计技术;
(5)结果应能够清楚地审查;
(6)开发小组地人员应该少而精;
(7)承认不断改进软件工程实践地必要性。
四、编写《软件项目计划书》
项目组成立的第一件事是编写《软件项目计划书》,在计划书中描述开发日程安排、资源需求、项目管理等各项情况的大体内容。计划书主要向公司各相关人员发放,使他们大体了解该软件项目的情况。对于计划书的每个内容,都应有相应具体实施手册,这些手册是供项目组相关成员使用的。
《软件项目计划书》一般应该包括下述内容:
1.引言
1.1计划的目的
1.2项目的范围和目标
1.2.1范围描述
1.2.2主要功能
1.2.3性能
1.2.4管理和技术约束
2.项目估算
2.1使用的历史数据
2.2使用的评估技术
2.3工作量、成本、时间估算
3.风险管理战略
3.1风险识别
3.2有关风险的讨论
3.3风险管理计划
3.3.1风险计划
3.3.2风险监视
3.3.3风险管理
4.日程
4.1项目工作分解结构
4.2时限图(甘特图)
4.3资源表
5.项目资源
5.1人员
5.2硬件和软件
5.3特别资源
6.人员组织
6.1组织结构
6.2管理报告
7.跟踪和控制机制
7.1质量保证和控制
7.2变化管理和控制
8.附录
五、软件配置管理
是否进行配置管理与软件的规模有关,软件的规模越大,配置管理就显得越重要。软件配置管理简称SCM(SoftwareConfigurationManagement的缩写),是在团队开发中,标识、控制和管理软件变更的一种管理。配置管理的使用取决于项目规模和复杂性以及风险水平。
1、目前软件开发中面临的问题
。在有限的时间、资金内,要满足不断增长的软件产品质量要求;
。开发的环境日益复杂,代码共享日益困难,需跨越的平台增多;
。程序的规模越来越大;
。软件的重用性需要提高;
。软件的维护越来越困难。
2、软件配置管理应提供的功能
在ISO9000.3中,对配置管理系统的功能作了如下描述:
。唯一地标识每个软件项的版本;
。标识共同构成一完整产品的特定版本的每一软件项的版本;
。控制由两个或多个独立工作的人员同时对一给定软件项的更新;
。控制由两个或多个独立工作的人员同时对一给定软件项的更新;
。按要求在一个或多个位置对复杂产品的更新进行协调;
。标识并跟踪所有的措施和更改;这些措施和更改是在从开始直到放行期间,由于更改请求或问题引起的。
3、版本管理
软件配置管理分为版本管理、问题跟踪和建立管理三个部分,其中版本管理是基础。版本管理应完成以下主要任务:
。建立项目;
。重构任何修订版的某一项或某一文件;
。利用加锁技术防止覆盖;
。当增加一个修订版时要求输入变更描述;
。提供比较任意两个修订版的使用工具;
。采用增量存储方式;
。提供对修订版历史和锁定状态的报告功能;
。提供归并功能;
。允许在任何时候重构任何版本;
。权限的设置;
。晋升模型的建立;
。提供各种报告。
4、配置管理软件PVCS6.0
PVCS6.0是一套非常优秀的配置管理软件,它能够实现配置管理中的各项要求,并且能和多种流行开发平台集成,为配置管理提供了很大的方便。
六、软件质量管理
随着软件开发的规模越来越大,软件的质量问题显得越来越突出。软件质量的控制不单单是一个软件测试问题,在软件开发的所有阶段都应该引入质量管理。我公司除加强了国家标准"信息技术软件生存期过程"(GB/T8566--1995)的规范管理外,还积极为通过ISO9000.3做准备。
1、软件质量保证计划
在进行软件开发前,需要有一个《软件质量保证计划》。目前较常用的是ANSI/IEEESTOL
730--1984,983--1986标准,包括以下内容:
1.计划目的
2.参考文献
3.管理
3.1.组织
3.2.任务
3.3.责任
4.文档
4.1.目的
4.2.要求的软件工程文档
4.3.其他文档
5.标准和约定
5.1.目的
5.2.约定
6.评审和审计
6.1.目的
6.2.评审要求
6.2.1.软件需求的评审
6.2.2.设计评审
6.2.3.软件验证和确认评审
6.2.4.功能评审
6.2.5.物理评审
6.2.6.内部过程评审
6.2.7.管理评审
7.测试
8.问题报告和改正活动
9.工具、技术和方法
10.媒体控制
11.供应者控制
12.记录、收集、维护和保密
13.培训
14.风险管理
2、质量管理的基本原则
。控制所有过程的质量;
。过程控制的出发点是预防不合格;
。质量管理的中心任务是建立并实施文件化的质量体系;
。持续的质量改进;
。有效的质量体系应满足顾客和组织内部双方的需要和利益;
。定期评价质量体系;
。搞好质量管理关键在于领导。
3、软件质量因素
正确性:系统满足规格说明和用户目标的程度,即,在预定环境下能正确地完成预期功能的程度。
健壮性:在硬件发生故障、输入的数据无效或操作错误等意外环
境下,系统能做出适当响应的程度。
效率:为了完成预定的功能,系统需要的计算资源的多少。
完整性(安全性):对未经授权的人使用软件或数据的企图,系统能过控制(禁止)的程度。
可用性:系统在完成预定应该完成的功能时另人满意的程度。
风险:按预定的成本和进度把系统开发出来,并且为用户所满意的概率。
可理解性:理解和使用该系统的容易程度。
可维修性:诊断和改正在运行现场发现的错误所需要的工作量的大小。
灵活性(适应性):修改或改进正在运行的系统需要的工作量的多少。
可测试性:软件容易测试的程度。
可移植性:把程序从一种硬件配置和(或)软件系统环境转移到另一种配置和环境时,需要的工作量多少。有一种定量度量的方法是:用原来程序设计和调试的成本除移植时需用的费用。
可再用性:再其他应用中该程序可以被再次使用的程度(或范围)。
互运行性:把该系统和另一个系统结合起来需要的工作量的多少。
4、软件评审
软件评审并不是在软件开发完毕后进行评审,而是在软件开发的各个阶段都要进行评审。因为在软件开发的各个阶段都可能产生错误,如果这些错误不及时发现并纠正,会不断地扩大,最后可能导致开
发的失败。下面这组数据可以清楚的看出前期的错误对后期的影响。
软件评审是相当重要的工作,也是目前国内开发最不重视的工作。
(1)评审目标
。发现任何形式表现的软件功能、逻辑或实现方面的错误;
。通过评审验证软件的需求;
。保证软件按预先定义的标准表示;
。已获得的软件是以统一的方式开发的;
。使项目更容易管理。
(2)评审过程
A、召开评审会议:一般应有3至5人参加,会前每个参加者做好准备,评审会每次一般不超过2小时。
B、会议结束使必须做出以下决策之一:接受该产品,不需做修改;由于错误严重,拒绝接受;暂时接受该产品。
C、评审报告与记录;所提出的问题都要进行记录,在评审会结束前产生一个评审问题表,另外必须完成评审简要报告。
(3)评审准则
。评审产品,而不是评审设计者(不能使设计者有任何压力);
。会场要有良好的气氛;
。建立议事日程并维持它(会议不能脱离主题);
。限制争论与反驳(评审会不是为了解决问题,而是为了发现问题;
。指明问题范围,而不是解决提到的问题;
。展示记录(最好有黑板,将问题随时写在黑板上);
。限制会议人数和坚持会前准备工作;
。对每个被评审的产品要尽力评审清单(帮助评审人员思考);
。对每个正式技术评审分配资源和时间进度表;
。对全部评审人员进行必要的培训;
。及早地对自己地评审做评审(对评审准则的评审)。
5、ISO9000.3软件质量认证体系
ISO9000.3是ISO9000质量体系认证中关于计算机软件质量管理和质量保证标准部分。它从管理职责、质量体系、合同评审、设计控制、文件和资料控制、采购、顾客提品的控制、产品标识和可追溯性、过程控制、检验和试验、检验/测量和试验设备的控制、检验和试验状态、不合格品的控制、纠正和预防措施、搬运/贮存/包装/防护和交付、质量记录的控制、内部质量审核、培训、服务、统计系统等二个方面对软件质量进行了要求。
6、测试
软件测试是软件开发的一个重要环节,同时也是软件质量保证的一个重要环节。所谓测试就是用已知的输入在已知环境中动态地执行系统(或系统的部件)。测试一般包括单元测试、模块测试、集成测试和系统测试。如果测试结果与预期结果不一致,则很可能是发现了系统中的错误,测试过程中将产生下述基本文档:
(1)测试计划:确定测试范围、方法、和需要的资源等。
(2)测试过程:详细描述和每个测试方案有关的测试步骤和数据(包括测试数据及预期的结果)。
(3)测试结果:把每次测试运行的结果归入文档,如果运行出错,则应产生问题报告,并且必须经过调试解决所发现的问题。测试结果:把每次测试运行的结果归入文档,如果运行出错,则应产生问题报告,并且必须经过调试解决所发现的问题。
七、软件风险管理
软件项目管理存在着风险,如果我们提前重视风险,并且有所防范,就可以最大限度减少风险的发生。进行风险管理是有效的手段。
1、风险的分类
根据风险内容,我们可以将风险分为项目风险(成本提高,时间延长等)、技术风险(技术不成熟等)、商业风险(销售问题等)、战略风险(公司的经营战略发生了变化)、管理风险(公司管理人员是否成熟等)、预算风险(预算是否准确等)等。
另外,我们还可以将风险分为已知风险(如员工离职等)、可预报风险(从以往经验得出可能有风险的)和不可预知风险。
2、风险的识别
风险识别的有效方法是建立风险项目检查表。主要涉及以下几方面检查:
。产品规模风险检查
。业务影响风险检查
。与客户相关的风险检查
。过程风险检查
。技术风险检查
。开发环境风险检查
。与人员的模式和经验有关的风险检查
3、风险评估
风险评估主要从下面七个方面进行:
。发生的可能性
。发生的结果(影响)
。建立一个尺度表示风险可能性(如,极罕见、罕见、普通、可能、极可能)
。描述风险带来的后果
。估计对产品和项目的影响
。确定风险评估的正确性
。根据影响排定有限队列
另外,要对每个风险的表现、范围、时间做出尽量准确的判断。
4、风险的评价
对风险的评价主要依据三个因素:风险描述、风险概率和风险影响。从成本、进度及性能三个方面对风险进行评价。确定项目的中止点,在中止点出再一次进行风险评价。
5、风险的驾驭和监控
风险的驾驭与监控主要要靠管理者的经验来实施。如,某开发人员的离职概率是0.7,离职后会对项目造成一定的影响,则该风险驾驭和监控的策略如下:
。与在职人员协商,确定流动原因。
。在项目开始前,把环节这些流动原因的工作列入风险驾驭计划。
。项目开始时,作好人是会流动的准备,采取一些措施确保人员一旦离开时,项目仍能继续。
。制定文档标准,并建立一种机制,保证文档及时产生。
。对所有工作进行细微详审,使更多人能够按计划进度完成自己的工作。
。对每个关键性技术人员培养后备人员。
在考虑风险成本之后,决定是否采用上述策略。
八、人员管理
1、对项目经理的要求
。能够使小组每个成员都能发挥能力
。有一定的组织能力
。能够使小组美味成员有成就感
。有提出解决问题方案的能力
。对问题的理解有一定的深度
。要能让成员知道软件质量的重要性
2、人员的通讯方式
(1)正式非个人方式,如正式会议等;
(2)正式个人之间交流,如成员之间的正式讨论等(一般不形成决议);
(3)非正式个人之间交流,如个人之间的自由交流等;
(4)电子通讯,如E-MAIL(电子邮件)、BBS(电子公告板系统)等;
(5)成员网络,如成员与小组之外或公司之外有经验的相关人员进行交流;
在实践中发现,(5)的通讯效率最高,其次是(1)。
软件项目管理论文 10
1引言
项目管理是20世纪40年代以后迅速发展起来的一门科学, 是现代管理学中的一个重要分支。随着项目管理理论、方法的发展,其应用范畴和概念不断拓展, 从最初应用在国防、航天、建筑等领域迅速发展到电子、通讯、计算机、软件开发、金融等行业。软件工程学提出将项目管理运用于软件生产领域,软件开发成为有组织、工程化的行为。随着近年来软件行业的迅速发展,软件规模急速扩大,对专业化管理人员的需求越来越大。在智联招聘和51job上搜索软件项目管理职位,各有8千多个工作岗位,这说明软件项目管理岗位越来越受到重视,相关人才缺口较大。
华中师范大学计算机学院从2008年以来开设软件项目管理课程作为计算机科学与技术专业的专业选修课,每次选课都满班。于2009和2010 年开设软件工程与项目管理的全校通选课程,旨在为学校其他专业对软件开发感兴趣的同学提供平台,每次课虽然选课人数在30人左右,人数不多,但学生反响很好,特别是认为项目管理的知识不仅仅能用于专业领域,在生活中组织春游、安排班级比赛等都能用到,实用性非常强。计算机学院于2011年增设本科软件工程专业,一直把软件项目管理作为专业必修课。笔者从2008年开始讲授本门课程,对课程的教学和实践有一定体会。
2软件项目管理课程的课程实验设计
软件项目管理课程内容既有很强的理论知识,又有综合实践要求,是一门比较难学的课程。很多学生认为软件项目管理课程是一门理论为主的课程,不像程序设计语言课程那样重视实验和练习。但是该课程实际上理论与实践并重,固然有很多理论知识需要学习,但如果不在实践中体会,不会使用一些项目管理工具,也达不到学习效果。
另外项目管理的工具很多,多数不仅仅可以用于软件项目管理,也可以用于很多其它类型的项目管理,对于课堂实验来说,选择什么样的工具,如何验收实验都需要很好地设计。
2.1课堂实验工具的选择
因为软件项目管理涉及的知识范围很广,一种软件项目管理工具通常只能用于软件项目管理的一个或几个知识领域,教师需要选择哪些知识需要使用工具练习。通常软件项目管理的主要知识领域包括范围管理、时间管理、成本管理和质量管理,另外也可以考虑配置管理、沟通管理等方面的工具。
另一方面,软件项目管理工具有很多免费的,但是大型的主流的工具还是收费,而且很贵。现在多数学校实验经费非常紧张,主要用于硬件购置,教师需要尽量使用免费工具,对收费工具的选择要综合考虑其能否找到试用版本,试用条件如何、是否容易安装和配置等等问题。
笔者认为选择的项目管理工具应该具备以下几个基本功能。
2.1.1需求管理:项目的需求变更,跟踪,控制。
2.1.2资源管理:项目的可利用资源的管理,包括人力、物力、财力等资源。
2.1.3计划管理:包括成员管理和权限分配、日程排定、工作时间管理、里程碑设置等。
2.1.4进度管理:制定日历、工作流、项目路线图和Gantt图。
2.1.5文档管理:文档文件、存储文件、集成SVN代码管理。
2.1.6信息管理: 具有制定活动统计报表、项目报表的导入和导出、团队交流、信息筛选等功能。
笔者选择了几个满足以上功能、容易获得和使用、在业内比较通用的软件项目管理工具作为课堂实验内容。
Microsoft Project:软件具有制定工作计划、进度管理、资源管理、跟踪进度、管理预算和分析工作量等功能。该软 作为微软Office办公软件中的一员,Project界面与微软其他产品很相似,非常容易使用,也很容易和Office中的其他办公软件整合。工具的获取和安装都很容易,有试用版本。
Project的缺点是它不是专门用于软件项目管理的工具,不支持软件项目中的立项与结项、需求管理、质量管理、软件配置管理等重要管理工作,也不能同时处理多个项目。
禅道:禅道项目管理软件是国产项目管理软件的代表,是一款开源的产品,可以在官网免费下载。软件比较符合中国用户的习惯,在国内中小企业有较高的使用率。软件集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体,功能比较完备,适合中小型项目。软件可以直接基于浏览器使用,不需要安装部署,界面简单,流程清楚,比较容易使用。软件有简单的需求管理功能,能在需求、任务、bug、用例和to do之间建立联系,能跟踪需求的实现情况。
但是软件的开源版本不提供甘特图、看板、工作日志等功能,需要购买专业版。软件的需求管理比较简单,不能和Word文档关联,不能从Word文档中直接读入需求。
Rational Doors:是IBM旗下非常著名的需求管理工具,能捕获、跟踪、分析和管理需求,功能非常强大,并能方便地与其他Rational工具集成,在很多大型软件公司使用[4]。Rational Doors能与Word同步,自动将Word文档中的需求抽取到Rational Doors的视图中。软件提供Web界面,方便团队交流,提高工作效率。软件还能与著名的配置管理工具Rational Clear Quest紧密集成,显示需求变更;与Rational Rose集成,将需求与UML模型关联,更准确地表达需求的定义。
但是它功能复杂、安装部署复杂,需要安装服务器端和客户端,还需要安装专门的数据库,使用也有难度。作为专业级开发工具它的价格比较贵,试用版只有3个月试用期。但是需求管理工具基本没有免费软件,有条件的学校可以选择该软件弥补其他项目管理软件中缺少需求管理功能的问题。
Visual Source Safe:简称VSS,是微软公司开发的一款版本和配置管理工具,并能提供安全保护、跟踪检查功能和版本比较的功能[5]。配置管理记录软件产品的演化过程,最终保证软件产品的完整性、一致性、追朔性、可控性[6],在项目管理中非常重要。配置管理的工具很多,常用的有开源工具Concurrent Version System、IBM的Rational Clear Quest等。VSS使用很广,是Visual Studio的套件之一,在Visual Studio中集成使用非常方便。工具具有微软产品的界面统一、安装方便、使用比较简单、获取容易的特点。
但是VSS只能在Windows系统下运行,不能跨平台运行。因为VSS是通过共享目录方式存储文件的,它只适合于局域网内的用户,不适合于通过Internet连接的用户,并且安全性不高。VSS的工作方式决定文件只不能由多个用户同时修改,工作效率比较低,只适合小团队开发。
2.2课堂实验设计
选定合适的工具后,在实验课程中要求每个学生选择自己熟悉的项目,运用几种工具分别完成工作分解、进度管理、配置管理、需求管理等工作, 具体实验内容见表1。
表1实验内容表
实验名称 实验目的 实验工具 学时
项目进度计划管理 合理地分解项目,制定项目计划并形成甘特图;分配和管理项目资源,跟踪资源使用情况;跟踪进度,监控项目成本。 Microsoft Project 4
项目计划、文档和沟通管理 合理地划分任务和制定计划;管理和监控项目文档;完成简单的需求跟踪;搭建项目沟通平台。 禅道 2
项目需求管理 需求文档分析和需求抽取;需求和团队沟通;需求变更管理。 Rational Doors 4
项目配置管理 合理地建立和使用配置项;跟踪版本变更;代码比较。 Visual Source Safe 2
学生能通过实验理解企业的项目管理流程,熟悉企业常用的项目管理工具,既能进一步理解项目管理的理论知识,也提高了实际应用能力。
3结语
项目管理课程不能仅仅讲授理论,而应该是一门理论与实践并重的课程。本文介绍的试验方法应用于多个课堂的课程教学中,学生普遍反映对课堂实验内容比较感兴趣,很多学生原� 学生通过对具体项目的分析和实验理解了项目的成本、资源和进度的关系,了解了在项目执行中如何监控项目,理解了项目中合作和沟通的重要性。
项目管理软件论文范文 11
在实际的项目质量管理中,质量管理总是围绕着质量保证(QualityAssurance)过程和质量控制(QualityControl)过程两方面。这两个过程相互作用,在实际应用中还可能会发生交叉。正如引言所述,关于软件的质量,很难下一个非常明确的定义。本文主要针对软件工程中的质量管理来进行讨论。
做软件“大餐”的工序
软件质量保证(SoftwareQualityAssurance,以下简称SQA)的目的是验证在软件开发过程中是否遵循了合适的过程和标准。软件质量保证过程一般包含以下几项活动:
首先是建立SQA组;其次是选择和确定SQA活动,即选择SQA组所要进行的质量保证活动,这些SQA活动将作为SQA计划的输入;然后是制定和维护SQA计划,这个计划明确了SQA活动与整个软件开发生命周期中各个阶段的关系;还有执行SQA计划、对相关人员进行培训、选择与整个软件工程环境相适应的质量保证工具;最后是不断完善质量保证过程活动中存在的不足,改进项目的质量保证过程。
独立的SQA组是衡量软件开发活动优劣与否的尺度之一。SQA组的这一独立性,使其享有一项关键权利?“越级上报”。当SQA组发现产品质量出现危机时,它有权向项目组的上级机构直接报告这一危机。这无疑对项目组起到相当的“威慑”作用,也可以看成是促使项目组重视软件开发质量的一种激励。这一形式使许多问题在组内得以解决,提高了软件开发的质量和效率。
选择和确定SQA活动这一过程的目的是策划在整个项目开发过程中所需要进行的质量保证活动。质量保证活动应与整个项目的开发计划和配置管理计划相一致。一般把该活动分为以下五类:
1)评审软件产品、工具与设施
软件产品常被称为“无形”的产品。评审时难度更大。在此要注意的一点是:在评审时不能只对最终的软件代码进行评审,还要对软件开发计划、标准、过程、软件需求、软件设计、数据库、手册以及测试信息等进行评审。评估软件工具主要是为了保证项目组采用合适的技术和工具。评估项目设施的目的是保证项目组有充足设备和资源进行软件开发工作。这也为规划今后软件项目的设备购置、资源扩充、资源共享等提供依据。
2)SQA活动审查的软件开发过程
SQA活动审查的软件开发过程主要有:软件产品的评审过程、项目的计划和跟踪过程、软件需求分析过程、软件设计过程、软件实现和单元测试过程、集成和系统测试过程、项目交付过程、子承包商控制过程、配置管理过程。特别要强调的是,为保证软件质量,应赋予SQA阻止交付某些不符合项目需求和标准产品的权利。
3)参与技术和管理评审
参与技术和管理评审的目的是为了保证此类评审满足项目要求,便于监督问题的解决。
4)做SQA报告
SQA活动的一个重要内容就是报告对软件产品或软件过程评估的结果,并提出改进建议。SQA应将其评估的结果文档化
5)做SQA度量
SQA度量是记录花费在SQA活动上时间、人力等数据。通过大量数据的积累、分析,可以使企业领导对质量管理的重要性有定量的认识,利于质量管理活动的进一步开展。
要说明的是,并不是每个项目的质量保证过程都必须包含上述这些活动或仅限于这些活动,要根据项目的具体情况来定。
SQA计划中必须明确定义在软件开发的各个阶段是如何进行质量保证活动的。它通常包含以下内容:质量目标;定义每个开发阶段的开始和结束边界;详细策划要进行的质量保证活动;明确质量活动的职责;SQA组的职责和权限;SQA组的资源需求,包括人员、工具和设施;定义由SQA组执行的评估;定义由SQA组负责组织的评审;SQA组进行评审和检查时所参见的项目标准和过程;需由SQA组产生的文档。
选择合适的SQA工具并不是试图通过选择SQA工具来保证软件产品的质量,而是用以支持SQA的活动。选定SQA工具时,首先需要明确质量保证目标。根据目标制定选择SQA工具的需求并文档化,包括对平台、操作系统以及SQA工具与软件工程平台接口的要求等。
如何使白壁“无瑕”
按工序去做也不一定能得到一盘完美的“大餐”,因为火侯等因素实在很难掌握。万一掌握不好怎么办?软件质量控制主要就是发现和消除软件产品的缺陷。对于高质量的软件来讲,最终产品应该尽可能达到零缺陷。而软件开发是一个以人为中心的活动,所以出现缺陷是不可避免的。因此,要想交付一个高质量的软件,消除缺陷的活动就变得很重要。缺陷消除是通过“评审”和“测试”这类质量控制活动来实现的。
缺陷在软件开发的任何阶段都可能会被引入。项目质量管理过程包含了许多可以识别缺陷、消除缺陷的过程。“识别缺陷”和“消除缺陷”本来是两个不同的过程,但在这里为了简便统一用“消除”来代表它们。潜在的缺陷越大,用来消除它所花的费用越高。因此成熟的软件开发过程在每一个可能会引入潜在缺陷的阶段完成之后都会开展质量控制活动。这些为了消除缺陷的活动包括:需求评审、设计评审、代码走查、单元测试、集成测试、系统测试以及验收测试等。
项目管理软件论文范文 12
一、引言 随着信息技术的飞速发展,软件产品的规模也越来越庞大,个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。我公司是西安一家中型软件企业,在公司中已经实行了项目管理制度,软件项目管理是整个项目管理中的一个重要组成部分。 从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。 软件开发不同于其他产品的制造,软件的整个过程都是设计过程(没有制造过程);另外,软件开发不需要使用大量的物质资源,而主要是人力资源;并且,软件开发的产品只是程序代码和技术文件,并没有其他的物质结果。基于上述特点,软件项目管理与其他项目管理相比,有很大的独特性。 二、软件项目管理的组织模式 软件项目可以是一个单独的开发项目,也可以与产品项目组成一个完整的软件产品项目。如果是订单开发,则成立软件项目组即可;如果是产品开发,需成立软件项目组和产品项目(负责市场调研和销售),组成软件产品项目组。 公司实行项目管理时,首先要成立项目管理委员会,项目管理委员会下设项目管理小组、项目评审小组和软件产品项目组。 1、项目管理委员会 项目管理委员会是公司项目管理的最高决策机构,一般由公司总经理、副总经理组成。主要职责如下: (1)依照项目管理相关制度,管理项目; (2)监督项目管理相关制度的执行; (3)对项目立项、项目撤消进行决策; (4)任命项目管理小组组长、项目评审委员会主任、项目组组长。 2、项目管理小组 项目管理小组对项目管理委员会负责,一般由公司管理人员组成。主要职责如下: (1)草拟项目管理的各项制度; (2)组织项目阶段评审; (3)保存项目过程中的相关文件和数据; (4)为优化项目管理提出建议。 3、项目评审小组 项目评审小组对项目管理委员会负责,可下设开发评审小组和产品评审小组,一般由公司技术专家和市场专家组成。主要职责如下: (1)对项目可行性报告进行评审; (2)对市场计划和阶段报告进行评审; (3)对开发计划和阶段报告进行评审; (4)项目结束时,对项目总结报告进行评审。 4、软件产品项目组 软件产品项目组对项目管理委员会负责,可下设软件项目组和产品项目组。软件项目组和产品项目组分别设开发经理和产品经理。成员一般由公司技术人员和市场人员构成。主要职责是:根据项目管理委员会的安排具体负责项目的软件开发和市场调研及销售工作。 三、软件项目管理的内容 从软件工程的角度讲,软件开发主要分为六个阶段:需求分析阶段、概要设计阶段、详细设计阶段、编码阶段、测试阶段、安装及维护阶段。不论是作坊式开发,还是团队协作开发,这六个阶段都是不可缺少的。 根据公司实际情况,公司在进行软件项目管理时,重点将软件配置管理、软件质量管理、软件风险管理及开发人员管理四方面内容导入软件开发的整个阶段。 在八十年代初,著名软件工程专家B.W.Boehm总结出了软件开发时需遵循的七条基本原则,同样,我们在进行软件项目管理时,也应该遵循这七条原则。它们是: (1)用分阶段的生命周期计划严格管理; (2)坚持进行阶段评审; (3)实行严格的产品控制; (4)采用现代程序设计技术; (5)结果应能够清楚地审查; 
软件项目管理论文 13
一般来说,软件工程师总是非常乐观。当他们在计划软件项目时,� 软件开发的创造性本质意味着我们不能完全预测会发生的事情,因此制定一个详细计划的关键点很难确定。当有预想不到的事情引起项目脱离正常轨道时,以上两种观点都会导致软件项目的失败。
目前,风险管理被认为是IT软件项目中减少失败的一种重要手段。当不能很确定地预测将来事情的时候,可以采用结构化风险管理来发现计划中的缺陷,并且采取行动来减少潜在问题发生的可能性和影响。风险管理意味着危机还没有发生之前就对它进行处理。这就提高了项目成功的机会和减少了不可避免风险所产生的后果。
2什么是风险
所谓“风险”,归纳起来主要有两种意见,主观说认为,风险是损失的不确定性;客观学认为,风险是给定情况下一定时期可能发生的各种结果间的差异。它的两个基本特征是不确定性和损失。IT行业中的软件项目开发是一项可能损失的活动,不管开发过程如何进行都有可能超出预算或时间延迟。项目开发的方式很少能保证开发工作一定成功,都要冒一定的风险,也就需要进行项目风险分析。在进行项目风险分析时,重要的是要量化不确定的程度和每个风险相当的损失程度,为实现这一点就必须要考虑以下问题:
要考虑未来,什么样的风险会导致软件项目失败?
要考虑变化,在用户需求、开发技术、目标、机制及其它与项目有关的因素的改变将会对按时交付和系统成功产生什么影响?
必须解决选择问题,应采用什么方法和工具,应配备多少人力,在质量上强调到什么程度才满足要求?
要考虑风险类型,是属于项目风险、技术风险、商业风险、管理风险还是预算风险等?
这些潜在的问题可能会对软件项目的计划、成本、技术、产品的质量及团队的士气都有负面的影响。风险管理就是在这些潜在的问题对项目造成破坏之前识别、处理和排除。
3风险管理
项目风险管理实际上就是贯穿在项目开发过程中的一系列管理步骤,其中包括风险识别、风险估计、风险管理策略、风险解决和风险监控。它能让风险管理者主动“攻击”风险,进行有效的风险管理。
在项目管理中,建立风险管理策略和在项目的生命周期中不断控制风险是非常重要的,风险管理包括四个相关阶段:
风险识别识别风险的方法常用的有风险识别问询法(座谈法、专家法)、财务报表法、流程图法、现场观察法、相关部门配合法和环境分析法等。
风险评估对已识别的风险要进行估计和评价,风险估计的主要任务是确定风险发生的概率与后果,风险评价则是确定该风险的经济意义及处理的费/效分析,常用的方法有:概率分布、外推法、多目标分析法等。
风险处理一般而言,风险处理有三种方法,①风险控制法,即主动采取措施避免风险,消灭风险,中和风险或采用紧急方案降低风险。②风险自留,当风险量不大时可以余留风险。③风险转移。
风险监控包括对风险发生的监督和对风险管理的监督,前者是对已识别的风险源进行监视和控制,后者是在项目实施过程中监督人们认真执行风险管理的组织和技术措施。
在IT软件项目管理中,应该任命一名风险管理者,该管理者的主要职责是在制订与评估规划时,从风险管理的角度对项目规划或计划进行审核并发表意见,不断寻找可能出现的任何意外情况,试着指出各个风险的管理策略及常用的管理方法,以随时处理出现的风险,风险管理者最好是由项目主管以外的人担任。
险识别
风险识别就是企图采用系统化的方法,识别某特定项目已知的和可预测的风险。常用方法是建立“风险条目检查表”,利用一组提问来帮助项目风险管理者了解在项目和技术方面有些风险。在“风险条目检查表”中,列出了所有可能的与每一个风险因素有关的提问,使得风险管理者集中来识别常见的、已知的和可预测的风险,如产品规模风险、依赖性风险、需求风险、管理风险及技术风险等。“风险条目检查表”可以以不同的方式组织,通过判定分析或假设分析,给出这些提问确定的回答,就可以帮助管理或计划人员估算风险的影响。软件项目一般有如下五类风险:
4.1产品规模风险
有经验的项目经理都知道:项目的风险是直接与产品的规模成正比的。与软件规模相关的常见风险因素有:
估算产品的规模的方法(LOC或代码行,FP或功能点,程序或文件的数目)。
产品规模估算的信任度
产品规模与以前产品规模平均值的偏差
产品的用户数
复用的软件有多少
产品的需求改变多少
4.2需求风险
很多项目在确定需求时都面临着一些不确定性和混乱。当在项目早期容忍了这些不确定性,并且在项目进展过程当中得不到解决,这些问题就会对项目的成功造成很大威胁。如果不控制与需求相关的风险因素,那么就很有可能产生错误的产品或者拙劣地建造正确的产品。每一种情况都会导致使人不愉快。
与客户相关的风险因素有:
对产品缺少清晰的认识
对产品需求缺少认同
在做需求中客户参与不够
没有优先需求
由于不确定的需要导致新的市场
不断变化需求
缺少有效的需求变化管理过程
对需求的变化缺少相关分析
4.3相关性风险
许多风险都是因为项目的外部环境或因素的相关性产生的。经常我们不能很好地控制外部的相关性,因此缓解策略应该包括可能性计划,以便从第二资源或协同工作资源中取得必要的组成部分,并且觉察潜在的问题。与外部环境相关的因素有:
客户供应条目或信息
内部或外部转包商的关系
交互成员或交互团体依赖性
经验丰富人员的可得性
项目的复用性
4.4管理风险
尽管管理问题制约了很多项目的成功,但是不要因为风险管理计划中没有包括所有管理活动而感到惊奇。在大部分项目里,项目经理经常是写项目风险管理计划的人,并且大部分人都不希望在公共场合暴露自己的弱点。然而,像这些问题可能会使项目的成功变得更加困难。如果不正视这些棘手的问题,它们就很有可能在项目进行的某个阶段影响项目。当我们定义了项目追踪过程并且明晰项目角色和责任,就能处理这些风险因素:
计划和任务定义不够充分
实际项目状态
项目所有者和决策者分不清
不切实际的承诺
员工之间的冲突
4.5技术风险
软件技术的飞速发展和经历丰富员工的缺乏,意味着项目团队可能 在早期,识别风险从而采取合适的预防措施是解决风险领域问题的关键,比如:培训、雇佣顾问以及为项目团队招聘合适的人才等。主要有下面这些风险因素:
缺乏培训
对方法、工具和技术理解的不够
应用领域的经验不够
新的技术和开发方法
不能正确工作的方法
5风险估计
风险估计,又称风险预测,常采用两种方法估价每种风险。一种是估计风险发生的可能性或概率,另一种是估计如果风险发生时所产生的后果。一般来讲,风险管理者要与项目计划人员、技术人员及其他管理人员一起执行四种风险活动:
(1)建立一个标准(尺度),以反映风险发生的可能性。
(2)描述风险的后果。
(3)估计风险对项目和产品的影响。
(4)确定风险的精确度,以免产生误解。
另外,要对每个风险的表现、范围、时间做出尽量准确的判断。对不同类型的风险采取不同的分析办法。
1.确定型风险估计
(a)盈亏平衡分析
盈亏平衡分析(Break-EvenAnalysis)通常又称为量本利分析或损益平衡分析。它是根据软件项目在正常生产年份的产品产量或销售量、成本费用、产品销售单价和销售税金等数据,计算和分析产量、成本和盈利这三者之间的关系,从中找出它们的规律,并确定项目成本和收益相等时的盈亏平衡点的一种分析方法。在盈亏平衡点上,软件项目既无盈利,也无亏损。通过盈亏平衡分析可以看出软件项目对市场需求变化的适应能力。
(b)敏感性分析
敏感性分析(SensitivityAnalysis)的目的,是考察与软件项目有关的一个或多个主要因素发生变化时对该项目投资价值指标的影响程度。通过敏感性分析,使我们可以了解和掌握在软件项目经济分析中由于某些参数估算的错误或是使用的数据不太可靠而可能造成的对投资价值指标的影响程度,有助于我们确定在项目投资决策过程中需要重点调查研究和分析测算的因素。
(c)概率分析
它是运用概率论及数理统计方法,来预测和研究各种不确定因素对软件项目投资价值指标影响的一种定量分析。通过概率分析可以对项目的风险情况做出比较准确的判断。主要包括解析法和模拟法(蒙特卡罗MonteCarlo技术)两种。
2.不确定型风险估计
主要有小中取大原则、大中取小原则、遗憾原则、最大数学期望原则、最大可能原则。
3.随机型风险估计
主要有最大可能原则、最大数学期望原则、最大效用数学期望原则、贝叶斯后验概率法等。
5.1建立风险清单
风险清单是关键的风险预测管理工具,清单上列出了在任何时候碰到的风险名称、类别、概率及该风险所产生的影响。其中整体影响值可对四个风险因素(性能、支持、成本及进度)的影响类别求平均值(有时也采用加权平均值)。
一旦完成了风险表的内容,就可以根据概率及影响来进行综合考虑,风险影响和出现概率从风险管理的角度来看,它们各自起着不同的作用(见图1)。一个具有高影响但低概率的风险因素不应当占用太多的风险管理时间,而具有中到高概率、高影响的风险和具有高概率及低影响的风险,就应该进行风险分析。
5.2风险评估
在风险分析过程中,我们对风险进行评估时可以建立一个如下的四元数组:
[ri,li,xi,yi]
其中,ri是风险,li为风险出现的概率,xi则表示风险损失大小,yi则表示期望风险。
一种对风险评估的常用技术是定义风险的参照水准,对绝大多数软件项目来讲,风险因素——成本、性能、支持和进度就是典型的风险参照系。也就是说对成本超支、性能下降、支持困难、进度延迟都有一个导致项目终止的水平值。如果风险的组合所产生的问题超出了一个或多个参照水平值时,就终止该项目的工作,在项目分析中,风险水平参考值是由一系列的点构成的,每一个单独的� 如果某风险落在临界点上,可以利用性能分析、成本分析、质量分析等来判断该项目是否继续工作。图2表示了这种情况。
但在实际工作中,参照点很少能构成一条光滑的曲线,大多数情况下,它是一个区域,而且是个易变的区域。因而在做风险评估时,尽量按以下步骤执行:
(1)定义项目的水平参照值
(2)找出每组[ri,li,xi,yi]与每个水平参照值间的关系
(3)估计一组临界点以定义项目的终止区域
(4)估计风险组合将如何影响风险水平参照值
5.3估计损失的大小
表1是风险分析表的一个例子,可以建立一个用风险、损失概率、损失大小和期望风险这样的风险评估表。
在表1所示的风险估价的例子中,一个理论项目已经识别了从1到20周期间的潜在的几个风险,风险发生的概率范围在5%到50%之间。在现实的项目中,可能会识别出比此表要多得多的风险。
损失的大小常常比概率更容易受到控制。在以上的例子中,可以很精确地估计出完全支持自动从主机更新数据的时间是20个月。根据管理层将在何时讨论项目建议书,可以知道项目不是在2月1日就是3月1日会被批准。如果假定会在2月1日批准,项目被批准的风险大小会比期望的长一些,也就是1个月时间。
如果损失的大小不容易直接估计出来,可以将损失分解为更小的部分,再对其进行评估,然后将各部分评估结果累加,形成一个合计评估值。例如,如果使用3种新编程工具,可以单独评估每种工具未达到预期效果的损失,然后再把损失加到一起,这要比总体评估容易多了。
5.4评估损失的概率
评估损失的概率要比评估损失大小更具有主观性。这里有许多实践方法可以提高主观评估的准确度。有以下方法:
由最熟悉系统的人评估每个风险的发生概率,然后保留一份风险评估审核文件。
使用Delphi法或少数服从多数的方法。使用Delphi法,必须要求每个人对每个风险进行独立地评估,然后讨论(口头或纸上)每个评估的合理性,特别是最高和最低的那个。一轮轮讨论,直到达成共识。?使用“形容词标准”。首先让每个人用表示可能性的形容词短语选择风险的级别,如非常可能、很可能、可能、或许、不太可能、不可能、和根本不可能。然后把可能性的评估转换为数量化的评估(Boehm1989)。
5.5整个项目超限和缓冲
实际上,表1中表示的期望风险的计算数值来源于一个被称为“期望值”的统计术语。设计欠佳引起的风险如果真正发生将花费15周的时间。既然它不是100%地会发生,当然不能预计损失15周时间。但它也不是没有可能发生,所以也不应指望不会发生损失。统计学认为,预计损失的数量是概率乘以损失大小,即15%乘以15周。因此,在这个例子中,预计的是损失2.25周。由于只是谈论计划风险,可以累加所有的风险暴露量来得到项目的全部可预料超标值。这个项目可预料的超标值是12.8到13.2周,这就是如果不做任何风险管理的话有可能超过计划的周数。
超出预期值的大小为整个项目风险控制级别的确定提供了依据。如果例子中的项目是个25周的项目,超出预期值的12.8到13.2周就很明显需要进行风险管理了。
6风险管理策略
风险管理策略就是辅助项目组建立处理项目风险的策略。项目开发是一个高风险的活动,如果项目采取积极的风险管理策略,就可以避免或降低许多风险,反之,就有可能使项目处于瘫痪状态。一般来讲,一个较好的风险管理策略应满足以下要求:
(1)在项目开发中规划风险管理,尽量避免风险
(2)指定风险管理者,监控风险因素
(3)建立风险清单及风险管理计划
(4)建立风险反馈渠道
7风险驾驭和监控
风险的驾驭与监控主要靠管理者的经验来实施,它是利用项目管理方法及其它某些技术,如原型法、软件心理学、可靠性等来设法避免或转移风险。风险的驾驭和监控活动可用图3来表示。
7.1建立风险驾驭与监控计划
从图3中可以看出,风险的驾驭与监控活动要写入RMMP(RiskMonitoringandManagementPlan风险驾驭与监控计划)。RMMP记述了风险分析的全部工作,并且作为整个项目计划的一部分为项目管理人员所使用。
风险管理策略可以包含在软件项目计划中,也可以组织成一个独立的风险缓解、监控和管理计划(RMMP计划)。RMMP计划将所有风险分析工作文档化,并由项目管理者作为整个项目计划中的一部分来使用。一旦建立了RMMP计划,且项目开始启动,则风险缓解及驾驭及监控步骤也开始了。正如前面讨论的,风险缓解是一种问题避免活动。风险驾驭及监控则是一种项目跟踪活动,它有三个主要目标:?判断一个预测的风险是否事实、是否发生。
进行风险再估计,确保针对某个风险而制定的风险消除活动正在使用。
收集可用于将来进行风险分析的信息。
风险驾驭及监控的策略如下:
与在职人员协商,确定人员流动原因。
在项目开始前,把缓解这些流动原因的工作列入风险驾驭计划。
项目开始时,要作好人员流动的思想准备,并采取一些措施确保人员一旦离开时,项目仍能继续。
制定文档标准,并建立一种机制,保证文档及时产生。
对所有工作进行细微详审,使更多人能够按计划进度完成自己的工作。
对每个关键性技术人员培养后备人员。
在考虑风险成本之后,决定是否采用上述策略。
7.2软件项目风险追踪工具
追踪风险的一个办法是将风险输入缺陷追踪系统中,缺陷追踪系统能将风险项目标示为已解决或尚未处理等状态,也能指定解决问题的项目团队成员,并安排处理顺序。可将软件风险项目依序排列出来,按照缺陷存在的时间与负责者等资料排列。这样,缺陷追踪系统就是追踪风险的工作能更好执行并且不那么单调。
软件项目管理论文 14
从TQ-16计算机开始,我国首次在概预算编制领域引进计算机技术。大概从70年代末开始,中间经历了PC机XT、286、386、486这些大家熟知的计算机发展历程,根据一些数据显示,中国大概有超过600种的概预算软件。概预算软件的开发和使用相对较早,成果也很多。不过现在为止还是有很多的单位在使用人力编制概预算。以当前的现象为背景进行分析,阻碍概预算软件推广的原因有如下几点:
(1)定额调整的时间劳动生产率、施工方式、物价水平的变化都会对定额造成很大的影响,调整的频率是3-5年/次,所以,需要大量的工作量来进行软件的维护。这导致想使用软件也会受到限制。很多单位不想花费太多的人力和物力进行软件的维护,因此,对于软件的推广来说起到了抑制作用。
(3)软件的认可度不够近些年我国才开始认同软件作为一种商品被出售。想把软件开发好就必须在软件开发中耗费很多的智力劳动。而目前我国都是采用手工作坊的方式来开发软件,导致软件的开发水平并不高,如果开发软件的人员不再继续开发,就会导致这项软件的开发处于停滞状态。所以,对于开发人员的依赖也是目前软件得不到推广的一个原因。有时候还会出现和软件开发人员失去联系,导致正在使用的软件无人维护。
2当前我国使用概预算编制软件的情况
概预算软件通常负责工程量计算和工程造价计算两个问题。以下分为两个方面进行阐述:
(1)工程量运算第一种方法:直接输入和公式法。公式法,顾名思义就是采用公式化的方法把不同的工程量计算方法输入进去。在一开始的时候经常使用这种方式来进行概预算编制,但是并没有在实际应用中得到普及,因为公式通常比较难记忆,而且公式繁杂,很容易出错,且不用校对,一般情况下都是手工算好工程量数据,直接填写到计算结果里面。
(2)图形法工程量手工计算和工程量之间数据关联的问题通过公式法和直接输入法已经能解决,后来软件研发了一种图形输入法,通过把工程图纸的数据输入到计算机软件中,计算机就会重新绘制一个一样数据的图纸在软件里,同时,将需要的附加属性也输入到计算机里面,这样计算机就会通过软件的编程自己完成运算,对于没有办法输入到电脑中的图纸信息,可以借助公式法和直接输入法输入。在理论上图形输入法可以解决工程量计算和工程连数据之间的关联问题。不过在实际的应用中,却和理论有很大的偏差,如果工程图纸较为复杂,而且图形属性较多,这样直接手工计算工程量反而比使用电脑软件快捷的多,软件就起不到预期的作用了。前期的工程量也非常大,修改校对起来也比较困难,所以,通常情况下,图形输入法反而没有公式法和直接输入法使用的广泛。用户还是比较偏好公式法。
(3)表达式表达式是通过数学运算式将数字、变量、函数、运算符结合在一起,可以把数据之间的关联直接、灵活、便捷的表达出来。从而让一量多用变成现实。表达式里面有函数和自定义变量,软件不仅可以完成计算,而且可以让计算过程也完好的保存下来,这样以后想校对和修改也非常方便,虽然也不是完全使用电脑计算,但是已经可以改变原有的手工计算,而且还可以让计算更加便捷、灵活、准确,而且把后期校对和修改也变的非常容易。无疑是目前相对较好的输入方式。以上三种计算方式都不能完全抛弃人工计算的方式,不过通过实践,最后一种方式较前两种方式更为便捷和实用。因为其能保存计算过程的能力可以让后期核对和修改方便的多。
3概预算软件今后的发展方向
概预算软件发展到现在大概经历了几十年的过程,在这个发展阶段里解决了之前的一些手工预算的一些问题,但是仍然存在很多需要解决的问题,所以,总结了如下几个方面供大家参考:
(1)提高计算机软件读图的能力目前在设计行业里已经开始推广和普及计算机辅助设计技术,所以,图版在某一天就会被丢掉,不再使用,这一情况是必然会发生的,概预算软件可以结合计算机及绘图过程里产生的工程量计算数据,和计算机辅助设计软件结合在一起来解决人工计算的问题。这样才可以从根本上解决手工计算的根本问题,让概预算实现计算机化。这样就从根本上解决了人力计算的问题。让计算机读图变成现实,而不需要再进行人工的协助,节省了很多计算的时间和精力。
(2)结合工程项目管理软件建筑业中对于计算机软件的使用非常广泛,很多的企业把计算机管理技术使用到施工管理过程中,从当前我国发展的状况来看,原始的数据和资源还是需要依靠人力来输入,还不能完全脱离人力。概预算软件中的定额部分可 目前这些数据可以通过数据文件的形式传输给计划软件。
(3)展望世界,赶追国际软件水平信息技术发展可以称之为日新月异,计算机软件的开发技术也越来越高,进行概预算软件开发的人员必须具备专业的素质,提高自己开发和应用概预算软件的能力,软件发展的方向必须赶追世界先进水平,并且在设计过程中要考虑到期可用性,经济性以及推广性。只有把国内的软件开发水平和国际的标准接轨,才能真正提升我国概预算软件的研发水平,让概预算软件真正在项目管理中获得广泛应用。
(4)计算机技术的推广需要管理水平的提升技术的发展受到管理体制和管理水平的限制。目前我国项目管理过程中存在很多管理问题,因此,如果想让概预算编制软件获得良好的发展必须提升现有的管理水平,只有这样,两者相辅相成,互相促进吗,才能确保概预算编制软件在项目管理过程中发挥到最大的作用。
(5)提升概预算编制软件的兼容性目前市场上使用的概预算软件的兼容性较差,很多时候没有一个统一的标准接口,这家的软件和另一家的软件系统不同,界面不同,造成使用者无法正常使用,还要利用更多的时间来对比两种软件,造成人力的浪费。不同公司研发的软件根本没有办法统一在一起使用,这款软件计算出来的数据无法正常传输到另一个公司研发的软件中去,导致还要继续使用人力来输入,最后没有取得节省时间,提高工作效率的效果,反而造成重复录入的现象出现。因此,想要准确、高效、规范的使用概预算软件必须提高其兼容性,让其在任何情况下都能统一的使用,不用进行繁琐的更换。
4概预算编制软件的应用
概预算编制软件在实际的应用非常广泛,但是其软件设计必须遵循如下原则:第一,数据库里要能够容纳各种计算方法,并且具有可修改性。第二,定额数据库里要有固定和变动两种模式,这样之后进行修改和更新也方便。第三,表格自动输出功能可以便于系统输出各种表格。第四,系统需要研制自动校检功能,这样对于输入中的错误可以进行自行的检测,可以让编制的质量得到提升。第五,系统可以设置访问权限和定期备份的功能,防止系统数据的丢失和被盗的可能性。概预算编制软件具有数据维护、输入数据、费用计算、打印输出、修改单价、初始系统的功能。这些功能可以让项目管理过程变得简单方便,不仅节省了人力物力,较之前的人力操作也快捷方便的多,而且和现代计算机技术合理的结合在一起,使运算更加准确,系统也更加完善。
5结束语
软件项目管理论文 15
在此次会议上,邦永招募了全国30多个地区的总,宣布于今年11月正式启动市场。虽然邦,全国公务员共同天地永的产品价位仅在540万元之间,定位为中低端市场,但同行还是感到了压力。邦永在加紧营销渠道建设的同时,还酝酿着和很多行业主管部门的技术合作,似乎意在打造国内项目管理软件的行业标准。
今年,中国政府拨了3000亿元专款用于各类政策性项目的建设,各省、市地方政府至少有1000亿元的专款项目,全国每年至少有2000个1亿元以上的大项目。如果这些项目都用软件来进行管理的话,这个市场无疑非常可观。据统计,目前项目管理软件高端市场的容量在1亿元以上,35年内将达到6亿元左右。中、低端用户数量更为可观。
事实上,SAP、ORACLE、PEOPLESOFT等国际上知名的管理软件商在项目管理软件市场上已经先行了一步。他们凭借着产品线长的优势,在向国内客户销售ERP系统的同时,也把项目管理软件带进了中国。同时PRIMAVERA等软件公司也在尝试开拓国内项目管理软件市场。据记者了解,目前还有美国和欧洲的几家大型的项目管理软件公司正在中国调查市场,估计不久将挺进中国。国内管理软件厂商也开始觉醒,纷纷迈开了进军项目管理软件的步伐。上海华普加快了向中关村企业项目管理的进军、北京华炎软件推出HotPM企业项目管理软件……
当人们对ERP不再狂热时,庞大的管理软件市场一下子被催熟了。目前,国内软件巨头用友在与瑞典IFS公司成立了北京用友艾福斯软件系统有限公司后,也开始将其业务迅速扩张到项目管理软件市场。国内其他软件公司如邦永(中国)、北京梦龙、新中大等也紧随其后。美国Primavera、OpenPlan、微软等国际性公司也纷纷杀入这一市场。
“对手非常强大,这说明商机很大!”杨铁铃对记者说,“我 目前国内还没有一家具规模的同类型软件企业,更谈不上标准。”邦永对称霸这个市场充满信心。
阻碍犹存
提起项目管理软件,杨铁铃侃侃而谈:其实很早人们就开始实施项目管理,如金字塔、长城等伟大的工程之所以成功,都得益于当时对工程项目进行严密的管理。20世纪60年代初,在著名数学家华罗庚的倡导下,将项目管理的概念引入了我国,并在当时的国民经济各个部门进行试点应用,将这种方法命名为“统筹法”。2000年底,联想在“天麒”、“天麟”两款计算机产品的开发过程中,结合业务对项目管理的需求,配合项目管理相关理论和方法编制软件方案,使该项目仅8个月便全部完成,并达到了国际上PC生产技术的最高水平。“只是当时的企业全都将目光放在ERP上。”杨铁铃不无惋惜地说。
杨铁铃认为,“项目管理对大家来说,并不是一个新的概念,一直以来大家都在提它,其在各行各业的应用也比较多。但是一直没有落到实处。”杨铁铃所说的没落到实处是指目前阻碍国内项目管理软件发展的两个因素:
一方面,国内的信息化水平还很低,尤其是工程的管理者对信息化认识不足。目前,我国对项目建设的管理仍然缺乏明确的法规,项目管理者对监管存在抵触情绪;而另一方面,国内高端管理软件市场一直是众多管理软件供应商争夺的焦点。当大多数软件生产商为ERP的高额利润所吸引时,在自身还没有完成ERP改造情况下,就匆匆转身投入了ERP软件市场的争夺,使得项目管理软件成了一块被荒废的良田。
杨铁铃为记者举了一个例子,去年国家统计局在对旧有的网络架构进行改造时,花了50多万引进了惠普的项目管理,而这还是基于美国1969年建立的PMI(国际项目管理协会)标准。“在国外,90%以上的项目建设都采用软件进行管理,而在我国则还不到10%。如果以应用项目管理软件可以节省35%的建设资金来算,这将是一笔惊人的数字,”杨铁铃说,“我国目前有2000万家中小型企业,在企业项目建设上他们大多数都需要进行项目管理。”
标准之蛊
在微软技术教育大会上,微软(中国)总经理唐骏针对中国软件业难以做大的困境指出,正是由于国内众多软件商对项目管理不够重视,软件开发没有一个规范,无法控制项目的可操作性,导致成本增加,直接影响了整个软件业做大。其实这不仅是软件业本身存在的问题,众多重大项目投资也存在同样问题。然而中国目前的项目管理大多受制于领导意志,要做到很好的控制项目成本,做到与国际标准接轨,其难度不言而喻。
专攻项目管理的邦永曾对外宣称,邦永的PM2系列软件不仅是国外软件的汉化版,而且融合了国际标准化项目管理精髓与本土国情的项目管理模式。从事过项目管理的人都知道,通常一个人对项目管理的把握有4个层次,第1个层次是“误以为自己了解”;第2个层次是“知道自己不了解”;第3个层次是“知道自己了解”;第4个层次是“自己不知道自己了解”。国家统计局计算中心网络运行管理部主任张富民在谈到项目管理实施的体会时对记者说,他觉得当时自己还处在第3个层次。这就是说,目前的项目管理还是一种投资人在投资内的把握,是用工具化的手段帮助投资者把握项目中的每一个赢利和去掉不良成本。
软件项目管理论文 16
论文:项目管理进度控制费用控制质量控制软件开发
人类社会经历了三次经济革命从农业革命、工业革命到目前正在经历的信息革命。信息化正在日益改变人们的思维方式和生活习惯。在推动信息化过程中,计算机及其软件产品发挥着至关重要的功能。对于软件项目的管理成为项目管理领域一个令人兴奋的课题。本文将结合项目管理中的控制方法分析软件项目管理控制的相关新问题.以期提高软件项目的开发效率。
1、有关软件项目管理
1.1项目和项目管理
项目是一个旨在完成一个或一些独特产品或服务的过程.它有着一系列被具体描述的属性。由于项目的独特性和一次性特征,引伸出它的其他特征.如目标的确定性.成果的不可挽回性组织的临时性和开发性等。基于项flI的这些特征.项目运作更加注重项目决策前的计划以及对实施过程的控制,以减少项目运作的风险。项目管理是2O世纪50年代后期发展起来的一种计划管理方法,它运用先进科学的管理方式.有效解决大型组织的效率低下和小型企业面临的风险增加新问题以组织的机动灵活.面向客户和资源利用率高而被广泛应用。在工程设计.施工软件项目的开发、实麓中经常会碰到进度拖延.费用超支、质量不达要求等新问题除去极少数是因为技术原因造成,绝大部分是源于僵化的管理和不当的管理方式。
1.2软件项目管理
各软件企业都在积极将软件项目管理引入开发活动中.对开发实行有效的管理。从概念上讲.软件项目管理是为了使软件项目能够按照预定的成本.进度、质量顺利完成.而对成本、人员、进度、质量、风险等进行分析和管理的活动。同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是向过去那样一二个开发人员即可解决的事情。迫切需要一种开发规范来规范每个开发人员、测试人员和支持人员的工作每个项目组成员按约定的规则准时完成自己的工作。同时采用规范化管理.专业分工也可以降低对开发人员的要求,从而降低产品研发成本。
2、软件项目控制
2.1软件项目控制
软件项目跟踪和监控包括对照已文档化的估计、约定和计划评审和跟踪软件完成情况和结果。基于实际的完成情况和结果调整这些计划。软件项目的已文档化的计划(即软件开发计划,正如在软件项目计划关键过程区域中所描述的)用作跟踪软件活动传送状态和修订计划的基础管理者监控软件活动.主要通过在所选出的软件工作产品完成时和在所选择的里程碑处,将实际的软件规模工作量成本和时间表和计划相比较,来确定进展情况。当确定未实现软件项目计划时,采取纠正办法。这些办法可以包括修订软件开发计划以反映实际的完成情况和重新计划遗留的工作或者采取改进性能的办法。
2.2软件项目控制的内容
软件项目控制的目的是为软件项目的过程提供足够的能见度,从而可以在执行过程中发生对计划的严重偏离时能够采取适当的更正行为。软件项目控制包括:a。追踪软件项目的进展于表现从而和所作的估计、承诺和计划做出对比:b。追踪软件项目的风险;C。在发生对计划的严重偏离时采取适当的更正行为。
2.3软件项目控制步骤
由于软件开发是处在一个开放的动态系统中,开发环境的不断变化要求不断修改项目计划,以适应新的变化。此外项目经理及其组织在完成任务的过程中不可避免的要碰到这样或那样的新问题.解决这些新的矛盾和新问题均属项目控制的范畴项目的预算和进度计划只能为项目经理提供决策的依据.假如在项目实施过程中控制不住.很难在限定的时间和预算要求下实现项目管理工作的目标。因此软件项目控制的过程包括以下四个步骤:a、猜测什么会发生——要做出开发计划并建立工作标准b、查明什么正在发生——用建立的工作标准检查当前的工作;c、正在(或已经)发生的实事同猜测的结果进行比较——分析误差产生的原因:d及时采取补救办法.以满足项目目标,预算和进度的要求。
3、软件项目控制具体操作
3.1软件项目进度控制
为了确保软件开发中的各项工作能按照计划预定的日程顺利完成.对项目的进度要进行控制。进度控制的过程是.在项目实施过程中,不断地进行实际进度值和计划值的比较、发现偏差、检查分析其产生的原因,并采取相应的办法加以解决。
3.1.1进度控制流程
(1)进度控制的输入
进度计划。项目进度基准是项目测量和报告的基础和标准。
实施报告。实施报告提供了有关项目进度发展实情。报告未来可能发生的进度新问题。
变更要求。项目变更要有严格的申请和审批手续。
进度管理的技术和工具。
(2)进度管理的技术和工具
进度控制变更系统。为有效实现进度管理和控制.进度控制系统应设立实现重新计划的全部功能。包括:文件设立.跟踪即实施报告.变更评估等。
实施情况测量。项目进度控制系统中的一个重要组成部分是决定对迟发生的进度偏差是否采取纠偏办法。而实施情况报告提供了决策的主要信息。如变更分析.趋向分析.已实现价值分析等。
纠偏计划。很少有项目能完全按计划进度进行为实现项目进度或总进度要求,在项目实施过程中.需要不断对原计划进行调整或增加新的工作内容。为此.需要不断对实施的项目进行活动时间猜测。修改活动过程.替代进度方案分析。
项目管理软件。它的功能是跟踪项目按计划日期展开实际工作的情况.对照进度计划分析进度目前状况,找出进度的偏差.分析进度偏差对项目的影响.猜测未来走势
(3)项目进度控制的输出
进度更新。包括对项目管理中任何进度信息的修改。进度调整是其中的一种.师队员进度计划中活动开始和结束时间的改变。纠偏行动。通过改变资源投入将实际进度拉回到计划的行动过程。
从中获得的教训。有关进度偏差产生的原因。纠偏方案的评估和选择以及其他方面的感受和教训都应纪录在案成为日后有用的历史资料。
3.1.2进度控制方法
一般项目进度控制采用因果分析.分析用四步完成:
(1)明确新问题。实际完成情况和项目里程碑相对照.确定是否超期.超期的部分是在哪里。
(2)查找产生该新问题的原因。位从系统角度充分熟悉各方原因.应组织具有代表性任务人员并采用头脑风暴法进行。项目主管要通过他领导的办公室或小组,以及在各职能部门的人共同分析新问题产生原因。
(3)确定个原因对新问题产生的影响程度。对影响程度的评估可以采用专家小组打分的方法,事先确定权数.而后打分得出分析结果。
(4)画出带箭头的鱼刺图。分析出原因后各部门各就其职针对新问题提出解决方案.并实施。
3.1.3软件项目进度控制具体办法
在实施进度计划过程中,会有种种故障:客户的需求进行了补充或修改;工作量估算不准,造成进度不平衡或是有人不遵从开发规范.导致产品出现缺陷;或是技术环节出现故障,这些新问题往往是在进度计划外出现的.一旦出现这些新问题,项目进度不得不进行调整。开发过程中为了有效控制类似新问题,可以采用以下辅助办法,控制进度按计划执行:
(1)政策性办法。对于不遵从开发规范,人员不按时履行职责的.给予经济或是职务上的处罚.这种办法应是建立在分配任务之前;
(2)人员布置。在各子项目接口处适当布置机动人员和机动时间。这一办法有赖于项目组织的机构设置能动性好。此处比较难解决的是人员业绩评估.奖励新问题。
(3)技术办法,要想很好地执行进度计划,需要事先有统一的规范例如开发语言的统一,文档的归类。这样便于下一阶段人员理解上一阶段人员意图,交流更加轻易。
(4)信息流办法。该办法要求建立一个信息流系统.准时汇报项目进度.便于主控人员调整进度,并且保证信息流通顺畅。避免开发期压到最后造成严重拖工。
(5)资金办法。财务部门可以定期检查各部门财务情况.控制资金流出时间.进而控制项目进度。这和后面要讲到的三者权衡有密切关系。
3.2软件项目费用控制
费用控制就是要保证各项工作要在他们各自的预算范围内进行。其基础是实现就对项目进行费用预算。整个项目费用应包括项目范围规划阶段。软件需求分析阶段.原型设计阶段开发阶段.测试阶段和项目投入使用后的使用阶段所消耗费用的总和。软件开发项目承担公司为了完成项目目标和获得更多的利润.在实施项目过程中就要控制成本.在控制过程中,首先要拟定一个标准.即计划值.然后进行实际至于计划值的比较,确定实际值和计划标准的偏差大小.以便在此基础上采取各种办法纠正偏差.常用的分析工具是偏差分析。
偏差是指实际成本对相应计划的偏离,成本偏差的数学公式为:
CV=BCWP-ACWP(负数CV表明出现超支;反之,则节资)(3—1)
其中:CV为成本偏差,BCWP为计划工作预算,ACWP为完成工作实际成本。
在进行成本偏离计划程度分析时,常用计划偏差率反应时给予计划的偏离程度。
CVP=CV/BCWP(3-2)
其中CVP为成本偏差率。
偏差值是控制分析中的一个关键参数,因而应向各级组织汇报。对于不同的项目或同一项目不同阶段或不同管理层次,对偏差的控制程度不一样,制定偏差答应值的方法也不同。由于随着时间的推移风险减少了,因而偏差答应也可降低。超级秘书网
3.3软件项目质量控制
对于软件产品的项目质量控制应是事前有预控,过程有监控的主动控制闭环系统。(1)事前预控:根据影响质量因素多等特征.软件项目质量必须事前预控,及根据软件的类型和特征,以及以往类似项目的常发病和预防办法,对软件项目质量提出事前预控办法,包括制定控制的计划和程序,这是项目质量控制的前提。(2)过程监控:根据易产生质量波动和易产生系统因素变异等特征,软件项目质量必须过程监控.即按照预控的计划和程序,对工序、分项、单元的全过程进行过程监控.包括监测、检查、控制和评定.这是项目质量控制的基础。
软件项目管理论文 17
论文关键词:软件项目管理软件产品质量因素
论文摘要:软件项目管理的核心是全面客户满意。其管理体系包括:战略管理、范围管理、成本管理、时间管理、人力资源管理、沟通管理、风险管理和质量管理。
在软件和信息科技行业,项目管理经常决定了一个产品或者企业能否成功。项目管理得到越来越多的企业和政府部门的重视,例如中国于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)项目管理组织没有听取客户意见和建议的能力。
(3)项目管理组织努力倾听客户对项目的要求,却没有确认客户的需要和期望。
软件项目管理论文 18
关键词:软件项目 关键管控点 需求管理 质量管理 进度管理
中图分类号:F253.3 文献标识码: A
Abstract: The special characteristics of the implementation of the software engineering project in the enterprise informationization management determines the uniqueness and complexity of the software project management, software engineering project management effectively has become an important guarantee for information management in enterprise interior more effective software project. Analysis of the paper, key control points of internal software project management, only to provide personal opinions and views in order to improve the implementation of software project management efficiency.
Keywords: software project management critical control point requirements of quality management schedule management
一、前言
随着大中型企业的快速成长,对计算机软件的需求也愈来愈多,愈来愈复杂。企业信息化管理公司作为主要从事信息化的单位,承接企业内部愈来愈多的信息化软件工程项目,将项目管理理论应用到软件工程项目切实提高管理质量与效率越发必要,这样才能在企业内部提高开展软件工程项目的竞争力。同时随着软件工程项目管理理论的发展和成熟,项目管理的实践方法和技术己受到广泛重视,在很多行业都有了大量的实践应用。本文从开展企业内部软件项目实施方的项目管理工作的角度探讨如何尽快实现公司软件工程项目规范化管理,提高软件工程项目管理效率问题进行阐述。
二、项目管理内容与特点
软件工程项目管理是根据管理科学理论,结合软件产品开发的实际,为了使软件工程项目能够按照预定的需求、进度、质量顺利完成,从而对需求、成本、人员、进度、质量、风险、文档等进行分析、管理和控制的一系列活动。软件在项目实施全过程中,需要与客户、合作伙伴进行充分沟通与交流,其中任何一个环节出现问题,都会影响到整个项目的进程。另外,在软件项目管理中,常常会面应用技术、业务需求等方面的变化,这也增加了项目管理的难度。
目前公司软件开业务正在起步发展阶段,相对于外部专业公司开发力量及实力相对落后,在这种多项目并发、技术含量高、变化速度快、资源有限的环境下,必须通过科学的管理不断提升企业竞争力。对企业、项目、资源实施科学的管理,加强团队能力,实现软件工程的生产规模化、规范化,是公司提升软件项目能力面临的最大挑战。
三、软件工程项目的需求管理
需求管理是软件开发生命周期的初始阶段,它对最终提交的软件产品的质量起着至关重要的作用。在企业内部开展软件工程项目建立软件需求管理尤为重要,主要体现在用户需求的文档化确认和对用户需求的控制中,并保证项目的计划、系统产品都与需求一致。
由于企业内部公司时常对需求具有模糊性、不确定性与主观性的特点,只是有个“大概”的想法,需要我方根据甲方的需求进行细致详尽的描述,并与甲方进行有效的沟通双方一致确认,同时还会存在需求变化、业务变化的问题等等一系列问题,只有通过需求管理使需求在受控的状态下发生变化,而不是随意变化,需求管理就是要按照标准的流程来控制需求的变化。
所以,一定要做好需求文档的版本管理记录用户需求、系统需求、软件分配需求的文档都要作为基线确定下来,做好相关文档的管理工作。需求分析人员在充分与客户用户进行沟通的基础上形成第一个版本的需求文档,这个需求文档在通过需求评审后即可以建立第一个需求基线。此后每次需求变更并经过需求评审后,都要重新确定新的需求基线,以免将来用户需求发生变更时,原来的需求无法查找。为有效进行需求变更控制,必然要做的工作就是保存好各个版本的需求基线,维护需求基线文档,以备不时之需。
四、软件工程项目质量关键管控点
软件工程项目质量管控目标主要是在充分沟通需求基础上,确保项目交付的产品能够达到需求部门接受的质量水平。软件工程项目质量管控关键点主要包括:形成有效的沟通机制、加强软件项目质量检查、督促强化软件项目文档管理。
1、形成有效的沟通机制
软件项目成功质量标准的制定与需求方的认可密切相关,首先项目管理要协调需求部门定时进行软件开发工作的沟通,对已完成部分进行确认,出现问题及时修改,最终按照需求部门需求完成工作。
2、加强软件项目质量检查
软件项目质量检查是软件项目质量管控的重要内容,可以采取定期或不定期的软件项目质量检查。定期是指在预定的检查周期内执行的检查工作。不定期的检查可以在关键任务或里程碑任务的计划完成时间进行。软件项目质量检查首先需要收集项目的质量信息,主要包括总体质量情况以及各子模块的质量信息。在此基础上,将项目质量信息与项目目标进行比较。如果没有偏差,检查到此结束;如果存在进度偏差,则需要针对这些偏差进行分析和研究,发现其中的问题,针对问题寻找解决方案。
3、督促强化软件项目文档管理
系统的开发应以文档的描述为依据,而系统的运行与维护更需要文档来支持。软件项目质量管控需要督促软件支撑方强化软件项目文档管理。必须对文档进行规范管理,包括各开发、运行阶段要提供的文档,制定各种文档的编写规范。避免当项目质量出现问题时,没有有效的文档可查,致使软件项目延期或失败。
四、软件工程项目进度关键管控点
软件工程项目进度管控目标是使软件项目在预定的时间内,达到预期的项目目标。软件工程项目进度主要因素包括:项目组的沟通和协调工作不力、不能充分发挥项目组成员的作用、忽视项目外部组织的影响、项目组织工作能力不强、工作方法不佳等,针对以上关键因素,实行有效的软件项目进度管控需要把握如下关键点:制定合理进度计划、提高进度执行准确率。
1、制定合理进度计划
软件项目进度计划是软件项目进度管控的基础,直接影响到软件项目能否顺利进行,资源能否被合理使用,直接关系到项目的成败。合理的软件项目进度计划应在项目总体计划基础上细化为阶段计划和个人计划。对于不成熟的项目和管理水平不高、资源能力不强的项目,力度不能太大,否则难以实现项目的控制;对于成熟的项目和管理水平高、资源能力强的项目,任务的力度就可以适当大一些。每项任务需要有明确的责任人、明确的工期。
2、提高进度执行准确率
软件项目进度执行准确率差是软件项目管控过程中面临的最大挑战,要提高软件项目进度执行准确率,需要重点管控如下关键点:
1) 避免凭经验拍脑袋式的粗放式评定,切实提高项目进度准确率。
2) 实现项目里程碑与项目进度合理匹配,避免过于依赖里程碑,反而使项目进度执行出现偏差。要在关注里程牌的情况下,实现对项目过程的监控,从而保障项目里程碑能够按时完成。加强对项目里程碑变更的管控,避免出现里程碑大多按期完成而项目却不能按进度完成的现象。
五、结语
软件工程项目管理正在发展阶段,具有普遍科学规律的理论模式,将这一理论恰如其分地运用到实际活动中,制定适合软件开发项目的管理规范、过程、流程、模板,并借助于适当的管理工具进行管理,对软件工程项目的成功非常有效。本文通过分析通讯公司实施软件工程项目管理的现状,结合当前海油内部软件系统发展要求,在三个方面讨论了公司软件工程项目管理的关键管控�
参考文献:
[1] 刘积仁,康晓东,饶友玲。软件开发项目管理[M].北京:人民邮电出版,2002.
[2] 窦燕。影响软件项目管理关键因素的探讨[J].燕山大学学报,2004(4).