1、 软件工程项目管理论文软件工程管理论文:大型软件项目管理的流程设计及分析摘 要: 针对大型软件项目开发中的复杂性、易变性和不可预见性,研究大型软件项目管理流程,设计大型软件项目管理过程的总体流程,分析各阶段流程的进入条件、主要工作过程和工作结果。关键词: 软件过程;软件项目管理;流程设计1 引言长期以来,大型软件项目高失败率的状况一直困扰着软件设计和开发人员,研究表明,软件项目失败的原因主要有三个:一是应用项目的复杂性;二是缺乏合格的软件项目管理人才;三是缺乏有效的项目管理。软件开发的风险之所以大,是由于软件过程能力低,其中最关键的问题在于软件开发组织不能很好地管理其软件过程,从而使一些好的开
2、发方法和技术不能起到预期的作用。流程管理作为现代企业管理的先进思想和有效工具,随着市场环境与组织模式的变化,在以计算机网络为基础的现代社会信息化背景下越发显示出其威力和效用。流程管理不仅是一种管理技术,更体现了现代管理的思想。流程管理的重点是:理清和管理好所有主、支流程间的关系,使他们相互协调发挥应有的作用。流程管理增加了部门的透明度,管理的对象不是“部门”和“部门员工”的概念,而是以工序流程为管理对象,注重流程中每一个过程、效率以及和上下游工序的关系,管理重点在于整体流程的完整性和顺畅性。目前,流程管理技术的研究已越来越受到人重视。运用流程管理方法和技术进行大型软件项目管理,可以有效地改变软
3、件过程管理混乱的局面。首先对大型软件项目开发过程进行有效的、规范化的定义;其次,在大型软件项目开发过程中,所有的活动过程均按照流程所规定的活动的逻辑关系、活动的实现方式来执行,这样可以使得所有的活动有序和可控;第三,通过明确运作流程,使项目组人员迅速融入项目和开发过程中;第四,关注每个过程的“结果”,使大型软件项目的所有工作产品均能得到有效的保存,保证了软件产品完整性。2 流程在大型软件项目中的作用流程是由活动组成的。基本活动是由个人或团体来完成的,它不需要进行其他的基本活动的转化。流程的各个活动之间有着特定的流向,它包含着明确的起始活动与终止活动,因此是一个动态的概念。从结构上来看,流程有四
4、个基本的构成因素:活动、活动的逻辑关系、活动的实现方式和活动的承担者。流程与“一系列的活动或事件”、“结果”等概念密切相关。流程管理不仅是一种管理技术,更体现了现代管理的思想,原有的以控制、塔式组织为基础的职能行政管理已经不能完全满足于现代企业发展和市场竞争的需要,管理的发展沿着分工理论运行了上百年后,现在又重新回归到整合与系统。大型软件项目生命周期的一系列的开发过程是各种各样的流程活动。大型软件项目的计划编制、系统分析、概要设计、详细设计、程序编码、测试与维护等活动过程都是一种流程活动。制定大型软件项目管理流程,重点考虑以下几点:(1) 制定的流程能引导项目逐步走向成功;(2) 制定的流程能
5、适用软件开发过程;(3) 制定的流程能指导项目开发活动,有利于对项目开发活动的管理;(4) 制定的流程能以直观的流程图表示,能使项目组成员清楚的知道软件开发与管理的过程和相互间的关系;(5) 流程中的起始活动条件、终止活动条件明确、规范,便于控制;(6) 流程中的工作产品定义明确、可度量,评价标准和方法具体、可操作。3 大型软件项目管理总体流程设计在大型软件项目开发管理过程中,不仅要努力实现项目的范围、时间、成本和质量等目标,还必须协调整个项目过程,以满足项目参与者及其他利益相关者的需要和期望;随着软件规模和所涉及的领域不断地扩大,大型软件项目的管理越来越困难。纵观所有失败的软件项目,基本原因
6、是不能管理其软件过程,在无纪律的、混乱的项目状态下,组织不可能从较好的方法和工具中获益。严谨的软件过程控制与管理不仅可以在每个阶段回顾和纠正项目的偏差,识别软件项目的风险甚至果断中止项目,而且可以将人才流动所带来的不利影响减少到最小。要进行有效的过程控制,必须明确大型软件项目管理流程。大型软件项目管理总体流程设计为项目搜寻、立项、售前、合同生成和合同执行等5个主要阶段,分别以P1、P2、P3、P4、P5表示;同时设计了立项完成、合同签定、功能定义、软件开发、项目验收等5个里程碑,分别以TM1、TM2、TM3、TM4、TM5表示,如图1所示。在这些流程中,合同执行流程是大型软件项目管理的核心,其
7、主要过程有:产品定义、软件开发、测试执行、内部验收、项目实施与验收、项目维护。4 大型软件项目管理总体流程分析4.1 项目搜寻项目搜寻是项目立项的基础,项目搜寻阶段的主要任务包括市场信息收集,用户需求跟踪,对潜在的项目进行分析和筛选。4.2 项目立项立项阶段的主要任务是确认立项的理由,提出立项建议,提供合适的资金和资源,使立项建议成为正式项目。4.3 项目售前售前阶段从项目立项开始到项目合同的签定结束,主要工作有:制定与客户的交流计划,详细了解客户的背景资料,了解客户启动项目的缘由、目的和期望,编制项目方案建议书,准备合同蓝本。4.4 合同生成合同生成阶段的主要工作有:项目方案的评估与确定,技
8、术合同、商务合同的商定、评估与签署。P14.5 合同执行合同执行是大型软件项目管理流程的重点,可分为软件开发、测试执行;内部验收、项目验收、系统维护等五个基本工作过程。4.5.1 软件开发。软件开发阶段分为:需求调研、系统分析、系统设计、编码、单元测试等过程。主要从三个方面进行管理:(1) 制定项目计划。大型软件项目计划是一个用来协调所有其他计划,以指导项目执行和控制的可操作文件。它体现了对客户需求的理解,是开展项目活动的基础,也是大型软件项目跟踪与监控的依据;(2) 确定开发过程。根据大型软件项目和项目组的实际情况,建立起一个稳定、可控的软件开发过程模型,并按照该过程来进行软件开发;(3)
9、加强过程控制。过程控制主要包括过程管理、变更控制和配置管理。4.5.2 测试与执行。项目测试的目的是检查系统是否符合项目合同与任务书规定的要求。项目测试分集成测试和系统测试,主要进行功能测试、健壮性测试、性能效率测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试等。测试过程在模拟运行环境中进行。4.5.3 内部验收。项目完成集成测试和系统测试后进行项目内部验收,主要有三个步骤:(1) 文档准备。项目经理提交内部验收计划、项目开发总结报告、产品发布清单;财务主管提交项目财务预算报告;(2) 内部验收测试。内部验收测试的测试内容与方法虽然与系统测试基本相同,但应站在用户验收的角
10、度进行,因为它是试运行的基础,通过这一步,为用户验收作充分的准备;(3) 内部评审。对提交的所有文档及测试结果进行内部评审,完成项目开发总结报告。4.5.4 项目试运行与验收。试运行与用户验收阶段的主要任务是,使所有的工作产品得到用户的确认。主要工作有:(1) 验收前的准备。项目经理负责检查产品的完整性,包括文档、介质和中间产品等,以确保现场实施的成功;负责应用软件的现场安装调试,完成安装调试总结报告;负责制定用户验收计划,并得到客户的确认;(2) 用户进行验收测试和系统试运行,进行文档和系统的移交;(3) 用户确认。项目经理负责与客户协调,协助用户进行项目验收,形成用户验收报告。4.5.5
11、项目维护。软件系统的维护分为两大类:一类是纠错性维护,由于前期的测试不可能暴露软件系统中所有潜在的和隐含的错误,诊断和改正这些错误的过程为纠错性维护。另一类是完善性维护,在软件正常使用过程中,用户还会不断地提出新的需求,为了满足用户新的需求而增加软件功能的活动称为完善性维护。如果需求变更很大,那完善性维护将转变为软件新版本的开发。系统维护的宗旨就是提高客户对软件产品的满意度。确保系统的正常运行是系统维护的根本目的。4.6 大型软件项目管理的里程碑项目的考核与评审是大型软件项目管理流程控制的基础,在整个流程中设定五个基线,即确定五个里程碑,它们分别是TM1:立项完成;TM2:合同签订;TM3:产
12、品功能等:大型软件项目管理流程分析与设计定义完成;TM4:软件开发完成;TM5:验收通过。各阶段的主要的进入条件和相应的工作结果是里程碑是否达到的重要标志。5 结束语本文设计的大型软件项目管理总体流程及相关技术已成功运用在大型软件项目的研发和管理中。通过将流程管理应用于大型软件项目管理中,以设定大型软件项目总体流程为主线,确定每个阶段的主要流程和里程碑,并采用评价指标体系和一系列的模板和表格进行大型软件项目开发过程的控制和管理,使大型软件项目的成功率显著提高。实践证明,针对企业和项目的实际情况,确定大型软件项目运作流程,定义软件工作产品,明确各阶段的进入条件和退出条件,进行有效的流程控制与管理
13、,大大的提高了软件开发的效率和项目的成功率。参考文献:1 刘宽宏,殷人尾基于CMMI的过程和产品质量保证模型J计算机工程,2004,30(15):75772 美施瓦尔贝IT项目管理M王金玉,时郴,译北京:机械工业出版社,20023 刘佰忠项目管理是IT项目灵魂J湖南制造业信息化,2004(4):9104 林锐软件工程与项目管理解析M1版北京:电子工业出版社,20035 张益林,王如龙基于WEB的工作流技术在工程项目管理系统中的实现J科学技术与工程,2005(6):371374 3、通过活动,使学生养成博览群书的好习惯。B比率分析法和比较分析法不能测算出各因素的影响程度。C采用约当产量比例法,分
14、配原材料费用与分配加工费用所用的完工率都是一致的。C采用直接分配法分配辅助生产费用时,应考虑各辅助生产车间之间相互提供产品或劳务的情况。错 C产品的实际生产成本包括废品损失和停工损失。C成本报表是对外报告的会计报表。C成本分析的首要程序是发现问题、分析原因。C成本会计的对象是指成本核算。C成本计算的辅助方法一般应与基本方法结合使用而不单独使用。C成本计算方法中的最基本的方法是分步法。XD当车间生产多种产品时,“废品损失”、“停工损失”的借方余额,月末均直接记入该产品的产品成本 中。D定额法是为了简化成本计算而采用的一种成本计算方法。F“废品损失”账户月末没有余额。F废品损失是指在生产过程中发现
15、和入库后发现的不可修复废品的生产成本和可修复废品的修复费用。F分步法的一个重要特点是各步骤之间要进行成本结转。()G各月末在产品数量变化不大的产品,可不计算月末在产品成本。错G工资费用就是成本项目。()G归集在基本生产车间的制造费用最后均应分配计入产品成本中。对J计算计时工资费用,应以考勤记录中的工作时间记录为依据。()J简化的分批法就是不计算在产品成本的分批法。()J简化分批法是不分批计算在产品成本的方法。对 J加班加点工资既可能是直接计人费用,又可能是间接计人费用。J接生产工艺过程的特点,工业企业的生产可分为大量生产、成批生产和单件生产三种,XK可修复废品是指技术上可以修复使用的废品。错K
16、可修复废品是指经过修理可以使用,而不管修复费用在经济上是否合算的废品。P品种法只适用于大量大批的单步骤生产的企业。Q企业的制造费用一定要通过“制造费用”科目核算。Q企业职工的医药费、医务部门、职工浴室等部门职工的工资,均应通过“应付工资”科目核算。 S生产车间耗用的材料,全部计入“直接材料”成本项目。 S适应生产特点和管理要求,采用适当的成本计算方法,是成本核算的基础工作。()W完工产品费用等于月初在产品费用加本月生产费用减月末在产品费用。对Y“预提费用”可能出现借方余额,其性质属于资产,实际上是待摊费用。对 Y引起资产和负债同时减少的支出是费用性支出。XY以应付票据去偿付购买材料的费用,是成本性支出。XY原材料分工序一次投入与原材料在每道工序陆续投入,其完工率的计算方法是完全一致的。Y运用连环替代法进行分析,即使随意改变各构成因素的替换顺序,各因素的影响结果加总后仍等于指标的总差异,因此更换各因索替换顺序,不会影响分析的结果。()Z在产品品种规格繁多的情况下,应该采用分类法计算产品成本。对Z直接生产费用就是直接计人费用。XZ逐步结转分步法也称为计列半成品分步法。A按年度计划分配率分配制造费用,“制造费用”账户月末(可能有月末余额/可能有借方余额/可能有贷方余额/可能无月末余额)。A按年度计划分配率分配制造费用的方法适用于(季节性生产企业)