1、软件工程管理的现状和创新策略【摘要】软件工程管理是软件工程和项目管理结合而形成的一个交叉学科, 是软件工程管理学科的方法具体到软件工程领域的实际应用。与普通领域上的软件工程管理不同,软件工程项目具有一定的特殊性和复杂性,所以软件工程管理是保证软件产品的成本,进度,质量以及按时交付的一个不可或缺的重要因素。基于此,本文对软件工程管理的现状和创新策略继续了研究。 【关键词】软件工程管理 现状创新策略 中图分类号: TP311.5 文献标识码: A 在计算机的发展过程中, 软件与硬件的比例关系发生了较大变化, 软件的开发已成为计算机领域研究的主要课题。在计算机软件过程中, 管理是其中的一项重要任务。
2、软件产品的质量与设计、生产和维护过程中的管理密切相关。因此, 加强软件工程管理, 提高软件产品可靠性成了保障软件系统实施的最重要的课题之一。 软件工程管理的现状及其特点 1、软件工程管理的内涵 软件工程管理的定义, 美国 PMI (Project Management Institute)对软件工程管理作了如下解释:软件工程管理是为了完成一个项目的需求和目的,将相应的知识、技术、工具以及技巧运用到该项目的具体事务中去的工作, 软件工程管理的实现是通过执行以下这些运作流程:启动、计划、执行、控制和结束。PMI 倡导的软件工程管理理论的中心内容是执行软件工程管理所需要的具体知识, 这些具体的知识根
3、据普通软件工程管理的要求可以划分为九大知识领域, 传统意义上的软件工程管理的概念就是如何实行和运用这九个领域知识, 来对一个项目进行管理。 2、软件工程管理的特点 软件工程管理的特殊性还体现在其管理过程以及内容的特殊性。为保证软件工程获得成功,必须清楚其工作范围、要完成的任务、需要的资源、需要的工作量、进度的安排、可能遇到的风险等。软件工程项目的管理工作必须开始于软件开发工作之前,并且要始终贯穿于整个软件开发的过程之中,最后结束于整个软件工程所有工作终止之时。PMI 的定义包含了很多重要的理念,最重要的是制定了一个重要的准则,就是实施流程管理,它明确提出了软件工程管理整个流程的五个阶段, 即启
4、动、计划、执行、控制、结束。任何一个项目都是由开始到结束的一系列活动,具有从始至终、渐进性的特征。一个项目的具体工作要分为几个步骤的过程来完成,这些过程称为项目中的阶段,一个项目从始至终所有阶段的总和称为一个项目的生命周期。通过对项目的总结,任何一个项目都应该具备以下阶段: 项目启动阶段 启动阶段的目的是决定某个项目整体或某个项目的某个阶段是否启动。决定一个项目是否启动,首先要建立对一个项目的认同感,要弄明白开发的是什么类型的产品,满足客户的需求是什么, 同时还要对一个项目的工作任务所涉及到的范围、具体资源要求、费用要求、面临的种种风险等,将这些内容形成一个项目意向书来呈现出来给客户, 来帮助
5、客户确定他们的要求以及期望,并帮助他们做出一个判断,来确定是否让项目立刻上马。一个项目的意向书得到客户的通过,形成整个项目的起点,并开始组织软件工程管理班子。 项目计划阶段 这个阶段的主要工作就是为整个项目做出一份合理可行的计划。明确出在项目各个阶段的任务,需要做的事情;然后由各级项目经理来确定具体每部分的工作计划,列出每部分需要做的具体事情, 并根据整个项目各个部分的重要紧急程度排序;确定每项工作所需要的人员配备及各种资源;并且根据人员具体的配备而制定出各个部分工作的时间节点以及整个项目的时间表。 项目执行阶段 这个阶段的主要任务就是根据项目的计划来完成相关的事情,包括确定落实完成各项任务所
6、需要的资源,比如说人员,实施设备,相关费用,以及各种所需信息。然后由项目经理带领全体人员开展各项项目工作。同时跟踪整个项目以及项目各个部分工作开展情况, 并通过各种方式向项目利益相关方报告项目进度和执行的具体情况。 项目控制阶段 项目控制阶段的主要任务就是确保项目各个阶段的结果是否和项目的计划保持一致。通过各种方式来控制项目的结果不要和项目计划产生偏离,并且通过衡量结果,对比项目计划,来找出项目差别,并且提出相应的策略。这个阶段的任务还包括,审核在项目的执行当中提出的一些修改的请求。同时能够调节项目整体进程当中的资源配给, 并且根据项目的实际情况对工作的总体进程做出一些修正。 项目结束阶段 这
7、个阶段的主要工作就是使整个项目的最终生产结果能够符合这个项目最初所定的计划, 满足客户的需求,并且得到一个客户方肯定的确认。而且还包括一些项目完成之后的收尾交接等工作,对整个项目进行总结,并且完成文档等项目相关资料的保存等一些善后工作。 软件工程管理策略 1、分布式软件工程管理策略 分布式软件工程管理的特点: 资源共享, 即共享硬件和软件资源; 开放性, 即可使用有不同供应商提供的设备和软件;并发性, 即可通过并行处理来增强性能; 缩放性, 即可通过增加新的资源来提高生产力; 容错, 即在出现某个失误之后仍具备继续运行的能力。但是, 分布式软件工程管理也存在着一些缺点, 比如: 复杂性, 一般
8、来说, 分布式系统比集中式系统复杂得多。保密性,更易受到外部攻击。可管理性, 需要更多的人力来管理系统。不可预见性。响应结果难于预料, 与系统构造和网络的负载情况有关。分布式应用的功能可以分成三层:(1)表示层提供用户界面。例如, 若应用是一个购物车,该层就生成一些 web 页面, 购物者可以通过浏览器浏览这些页面;(2)应用逻辑层为应用提供计算功能。该层在企业应用中也称为业务逻辑层。在购物车应用中, 该层负责处理诸如信用卡验证, 计算订单总金额、销售税、运输成本等任务;(3)服务层提供支持上两层功能所需的底层服务。该层可包括数据访问工具(如数据库管理系统)、名字查找目录服务(如域名服务) 和
9、进程间通信(允许数据在进程间交换) 等服务。 2、软件能力成熟模型管理策略 要促进企业更为理想地完成商业目标, 要把软件开发作为过程看待, 按照统计质量管理理论对这个过程进行管理, 达到软件开发的工程化和标准化。CMM 重视软件开发的管理、提高软件工程能力, 能够指导企业改进企业软件过程, 同时为软件开发机构建立严格规范的软件开发过程提供参考, 最大程度优化软件工程能力。CMM 的不同成熟度等级的主要特征如下(见下图一) : 第一,初始级, 即未加定义的随意过程。软件过程的特点是无秩序的,有时甚至是混乱的; 第二 , 可重复级, 即规则化的过程; 第三,定义级, 即标准的、一致的过程; 第四,
10、 管理级, 即可预测的过程; 第五, 优化级, 即持续改进的过程。 图一 CMM 的不同成熟度等级的主要特征 此外, CM M 有 3 个基本用途: (1)软件过程评估。就是借助 SW 一 CMM 分析软件组织当前软件过程的状态, 找出其处和弱处, 这点无论软件采购单位, 还是软件产品开发单位都可使用。 (2)软件过程改进。按照评估结果显示的弱电所在, 建议根据 SW一 CMM 能力等级的顺序 , 由低向高逐级制定改进策略 , 适用于所有软件开发单位, 是 CMM 最主要的用途。 (3)软件能力评价。软件采购单位可以通过对投标者的软件过程能力评价来降低软件采购的各种风险, 尤其是软件质量方面的风险, 投标者通过自我评价来掌握彼此的具体水平,但是软件采购单位并不以自我评价的结果作为参考。 总结 软件工程管理,需要丰富的经验、渊博的知识、过硬的技术、果断的决断能力、严谨认真的工作作风。运用有效的管理手段和技术措施, 推动软件工程管理工作, 促进软件研制的工程化、规范化管理, 使软件产品的开发效率、工程化水平和可靠性水平得以不断的提高。 参考文献 1张友生,李雄。软件开发模型研究综述,计算机工程与应用,2010.3。 2罗光春,李炯等。基于功能点分析方法的改进,电子科技大学学报,2009(6)。