日期:2023-01-24 阅读量:0次 所属栏目:计算机应用
论文关键词:软件开发 软件项目管理 软件工程
论文摘要:软件工程是指导计算机软件开发与维护的工程学科,它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以便经济地开发出高质量的软件并有效地维护它文中通过介绍软件工程的相关知识和针对项目的特殊性对软件工程理论的具体实施办法,展示了如何将软件工程理论应用在实际工作中,从而快速、高效地开发出高质量的软件。
软件项目管理是使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。软件开发的整个过程都是设计过程而且不需要使用大量的物质资源(主要是人力资源),并且,软件开发的产品只是程序代码和技术文件,并没有其他的物质结果。因而企业软件开发项目管理水平直接决定了软件开发的能力,科学、系统的软件项目管理也从很大程度上减小了开发风险。通过运用软件项目管理来科学地开发软件有效地减少了开发风险,保证了质量。
1流程
根据项目管理的一般原理,项目管理的过程从总体上可以分为5个阶段,每个阶段包含有一个或多个管理过程。这5个阶段分别是:项目启动、项目计划编制、项目计划执行、综合管理控制和项目收尾。它们之间的联系如图1所示。
(1)项目启动:根据必要的工作(如可行性分析,技术评估等)结果,批准一个项目的运行。
(2)项目计划编制:收集和编写项目所需要的各种资料,进行各种计划活动并制订相应的计划,将各种计划的结果汇总成为连贯、一致的文档,即项目计划文档。在软件项目中,具体的活动包括需求和范围管理计划、进度计划、人力资源计划、成本计划、沟通计划、风险计划等。
(3)项目计划执行:通过进行项目计划所规定的各种活动,实施项目计划。
(4)综合管理控制:在项目计划实施的过程中,对各种活动进行监控,协调并控制整个项目期间的变更。在软件项目中,主要的活动包括范围变更控制、进度计划控制、成本控制、质量控制、风险监督与控制等。
(5)项目收尾:项目或阶段的正式接收并达到有序的结束。其中,项目的中间过程(计划、执行、控制)是一个循环反复的过程。项目计划是计划执行和计划控制的基准;计划执行的结果受到计划控制的监控;计划控制根据比较计划执行的结果与项目计划的偏差,以及各种因素引起的变化,对项目计划进行修正,从而形成下一个循环的项目基准。它们之间的流程如图2所示。
2生命周期模型
任何软件的开发都要经历一个“生命期”,生命期模型的主要功能是确定一种标准,确定项目规格、建立原型、设计、实现、检查、测试或执行一些其他活动,以此确定在软件开发过程中是否是以某种次序一个任务接着一个任务进行。作为一个项目的主要计划,软件生命期模型的选择对项目成功的影响非常重要。恰当的生命期模型可以使软件项目流程化,并帮助项目人员一步一步接近目标。如果选择了适宜的生命期模型,就可以提高开发速度、提升质量、加强项目跟踪和控制、减少成本、降低风险,或是改善用户关系。
2.1瀑布模型
最经典的软件生命周期模型是瀑布型模型,它是其他生命期模型的基础。在瀑布模型中,项目从始至终按照一定顺序的步骤从初始的软件概念进展到系统测试。项目确保在每个阶段结束时进行检查,以判定是否可以开始下一阶段工作。如果检查的结果是项目还没有准备好进人下一阶段,它就停留在当前阶段,直到当前阶段工作完成。如图3所示。
瀑布模型是文档驱动型的,主要工作成果通过文档从一个阶段传递到下一个阶段。如果有一个稳定的产品定义和很容易被理解的技术解决方案时,瀑布模型可以帮助及早发现问题,降低项目的阶段成本,是快速开发的一个恰当选择。但在很多实际情况中,由于需求、技术等很多不确定性,瀑布模型并不适合于进行快速开发。
2.2渐进原型
渐进原型是从开发系统概念开始的一种生命期模型,通常是从最核心的方面开始,向用户展示完成的部分,然后根据用户的反馈信息继续开发原型,并重复这一过程,直到开发者和用户都认为原型己经足够好。然后,完成结尾工作,交付作为最终产品的原型,如图4所示。
“渐进原型”模型以逐步增加的方式进行开发,以便于随时根据客户或最终用户的反馈来修正系统,在需求变化很快的时候,或者用户很难提出明确需求的时候,或者开发人员对最佳的架构或算法没有把握的时候,渐进原型特别有用。但是,渐进原型是以牺牲项目的可控制性来换取较多的客户反馈以及较好的过程可视性的。由于原型的功能和特性会随着用户的反馈而经常发生变化,因此较难确定产品的最终形态。
2.3阶段交付
阶段交付模型是另一种生命期模型,该模型可以持续地在确定的阶段向用户展示软件。和渐进原型不同,在阶段交付的时候,开发者明确地知道下一步要完成什么工作。阶段交付的特点是在项目整个开发过程中持续不断地交付阶段性成果。如图5所示。
在“阶段交付”生命模型中,软件被分阶段进行开发。在通常情况下,首先开发最重要的功能。阶段性交付并不能减少软件产品研发所需要的时间,但是它能充分降低软件研发中的风险,而且能够提供切实的、客户可见的以及管理层评价项目状态时所需要的标记。
下一篇:晋煤集团NGN软交换设计分析