软件工程是指导计算机软件开发与维护的工程学科,它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以便经济地开发出高质量的软件并有效地维护它文中通过介绍软件工程的相关知识和针对项目的特殊性对软件工程理论的具体实施办法,展示了如何将软件工程理论应用在实际工作中,从而快速、高效地开发出高质量的软件。
软件项目管理是使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。软件开发的整个过程都是设计过程而且不需要使用大量的物质资源(主要是人力资源),并且,软件开发的产品只是程序代码和技术文件,并没有其他的物质结果。因而企业软件开发项目管理水平直接决定了软件开发的能力,科学、系统的软件项目管理也从很大程度上减小了开发风险。通过运用软件项目管理来科学地开发软件有效地减少了开发风险,保证了质量。
1流程
根据项目管理的一般原理,项目管理的过程从总体上可以分为5个阶段,每个阶段包含有一个或多个管理过程。这5个阶段分别是:项目启动、项目计划编制、项目计划执行、综合管理控制和项目收尾。它们之间的联系如图1所示。
(1)项目启动:根据必要的工作(如可行性分析,技术评估等)结果,批准一个项目的运行。
(2)项目计划编制:收集和编写项目所需要的各种资料,进行各种计划活动并制订相应的计划,将各种计划的结果汇总成为连贯、一致的文档,即项目计划文档。在软件项目中,具体的活动包括需求和范围管理计划、进度计划、人力资源计划、成本计划、沟通计划、风险计划等。
(3)项目计划执行:通过进行项目计划所规定的各种活动,实施项目计划。
(4)综合管理控制:在项目计划实施的过程中,对各种活动进行监控,协调并控制整个项目期间的变更。在软件项目中,主要的活动包括范围变更控制、进度计划控制、成本控制、质量控制、风险监督与控制等。
(5)项目收尾:项目或阶段的正式接收并达到有序的结束。其中,项目的中间过程(计划、执行、控制)是一个循环反复的过程。项目计划是计划执行和计划控制的基准;计划执行的结果受到计划控制的监控;计划控制根据比较计划执行的结果与项目计划的偏差,以及各种因素引起的变化,对项目计划进行修正,从而形成下一个循环的项目基准。它们之间的流程如图2所示。
2生命周期模型
任何软件的开发都要经历一个“生命期”,生命期模型的主要功能是确定一种标准,确定项目规格、建立原型、设计、实现、检查、测试或执行一些其他活动,以此确定在软件开发过程中是否是以某种次序一个任务接着一个任务进行。作为一个项目的主要计划,软件生命期模型的选择对项目成功的影响非常重要。恰当的生命期模型可以使软件项目流程化,并帮助项目人员一步一步接近目标。如果选择了适宜的生命期模型,就可以提高开发速度、提升质量、加强项目跟踪和控制、减少成本、降低风险,或是改善用户关系。
2.1瀑布模型
最经典的软件生命周期模型是瀑布型模型,它是其他生命期模型的基础。在瀑布模型中,项目从始至终按照一定顺序的步骤从初始的软件概念进展到系统测试。项目确保在每个阶段结束时进行检查,以判定是否可以开始下一阶段工作。如果检查的结果是项目还没有准备好进人下一阶段,它就停留在当前阶段,直到当前阶段工作完成。如图3所示。
瀑布模型是文档驱动型的,主要工作成果通过文档从一个阶段传递到下一个阶段。如果有一个稳定的产品定义和很容易被理解的技术解决方案时,瀑布模型可以帮助及早发现问题,降低项目的阶段成本,是快速开发的一个恰当选择。但在很多实际情况中,由于需求、技术等很多不确定性,瀑布模型并不适合于进行快速开发。
2.2渐进原型
渐进原型是从开发系统概念开始的一种生命期模型,通常是从最核心的方面开始,向用户展示完成的部分,然后根据用户的反馈信息继续开发原型,并重复这一过程,直到开发者和用户都认为原型己经足够好。然后,完成结尾工作,交付作为最终产品的原型,如图4所示。
“渐进原型”模型以逐步增加的方式进行开发,以便于随时根据客户或最终用户的反馈来修正系统,在需求变化很快的时候,或者用户很难提出明确需求的时候,或者开发人员对最佳的架构或算法没有把握的时候,渐进原型特别有用。但是,渐进原型是以牺牲项目的可控制性来换取较多的客户反馈以及较好的过程可视性的。由于原型的功能和特性会随着用户的反馈而经常发生变化,因此较难确定产品的最终形态。
2.3阶段交付
阶段交付模型是另一种生命期模型,该模型可以持续地在确定的阶段向用户展示软件。和渐进原型不同,在阶段交付的时候,开发者明确地知道下一步要完成什么工作。阶段交付的特点是在项目整个开发过程中持续不断地交付阶段性成果。如图5所示。
在“阶段交付”生命模型中,软件被分阶段进行开发。在通常情况下,首先开发最重要的功能。阶段性交付并不能减少软件产品研发所需要的时间,但是它能充分降低软件研发中的风险,而且能够提供切实的、客户可见的以及管理层评价项目状态时所需要的标记。
2.4渐进交付
渐进交付是一种结合了渐进原型和阶段交付两种模型的生命期模型。在这种模型下,首先开发产品的一种版本,展示给用户看,然后根据用户的反馈改善产品,如图6所示。
渐进交付模型在阶段交付的可控制性和渐进原型的灵活性之间寻找平衡。在可能的情况下,它可以把软件的某些选定的部分提前交付,从而有利于快速开发的进行;同时,在项目进行的过程中,它也具有响应用户要求并改变产品方向的能力。
3开发应用
3.1要员管理
软件项目成功的关键是有高素质的软件开发人员,然而大多数软件产品规模都很大,以至单个软件开发人员无法在给定期限内完成开发,因此,必须把多名软件开发人员组织起来,使他们分工协作共同完成开发工作。现有的软件开发项目组的组织方式有:
(1)民主制程序员组
小组成员完全平等,享有充分民主,通过协商做出技术决策。小组成员间的通信是平行的,如果小组有n个成员,则可能的通信信道有n (n-1) /2条。
(2)主程序员组
主程序员既是成功的管理人员又是经验丰富能力强的高级程序员负责体系结构设计和关键部分(或复杂部分)的详细设计,并且负责指导其他程序员完成详细设计和编码工作。
后备程序员也应该技术熟练而且富于经验,协助主程序员工作并且在必要时接替主程序员的工作。编程秘书负责完成与项目有关的全部事务性工作。
(3)现代程序员组
技术组长:只对技术工作负责。
行政组长:全权负责非技术事务。
项目开发方把软件工程中的软件项目组的组织理论文档化后,形成了自己的一套详细的、适合在实际工作中使用的要员管理理论。
3.2进度管理
软件项目的进度安排是一项活动,它通过把工作量分配给特定的软件工程任务,并规定完成各项任务的起、止日期,从而将估算的工作量分布于计划好的项目持续期内。进度计划将随着时间的流逝而不断演化。在项目计划的早期,首先制定一个宏观的进度安排表,标示出主要的软件工程活动和这些活动影响到的产品功能。随着项目的发展,把宏观进度表中的每个条目都精化成一个详细进度表。于是完成一个活动所必须实现的特定任务被标示出来,并安排好了实现这些任务的进度。
3.3配置管理
在开发计算机软件的过程中,变化(或称为变动)是不可避免的。如果不能适当地控制和管理变化,势必造成混乱并产生很多严重的错误。软件配置管理是在计算机软件整个生命周期内管理变化的一组活动。它不同于软件维护。软件维护是在软件交付给用户使用后才发生的,而软件配置是在软件项目启动时就开始,并且一直持续到软件退役后才终止的一组跟踪和控制活动。其主要任务有:标识、版本控制、变化控制、配置审计和报告。只要参加过软件开发的人都清楚,现在的软件项目完全由一个人来完成是难以想象而且也是不可能的,通常是有一个研发小组来共同分析、设计、编码和维护,并有专门的测试小组对己完成编码调试的软件进行全面的测试。在软件开发这个庞大而复杂的过程中,需要涉及到各个方面的人员,信息的交流反馈不仅仅是在研发小组的成员之间及各个研发小组之间,还存在于客户和研发者之间。所有的这些交流反馈意见信息都有可能导致对软件的修改,小的可能只是对某个源文件中的某个变量的定义改动,大到重新设计程序模块甚至可能是整个需求分析变动。
3.4软件测试
测试是指软件产品生存周期内所有的检查、评审和确认活动。在软件生命周期的每个阶段都不可避免地会产生差错。软件测试的目的就是在软件投人生产运行以前,尽可能多的发现软件中的错误。目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。
4结语
进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。项目管理的质量与软件产品的质量有着直接的对应关系。因此,提高项目管理的能力对于软件组织的软件生产力的提高是最为重要的。
介绍了信息系统建设中软件项目管理的理念,深入探讨了软件项目管理的组织模式、内容、配置管理、质量管理、风险管理及人员管理等,并给出了软件项目计划书的范本。 论文关键词:软件项目管理;软件配置管理;软件项目计划书 1软件项目管理的组织模式 1.1项目管理委员会。项目管理委员会是公司项目管理的最高决策机构,—般由公司总经理、副总经理组成。主要职责如下:(1)照项目管理相关制度管理项...
从软件项目管理的重要性谈起,研究分析了四个主流的软件项目管理技术,指出了它们的缺陷,最后结合实践提出了一种新颖的软件项目管理概念。1引言软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。最早源自于70年代中期。当时美国国防部曾立题专门研究软件项目做不好的原因,发现70%的项目是因为管理善引起的,而并不是因为技术实力不够,进而...
有效的课堂师生互动是课堂焕发生命活力的重要途径。本文从教学环境的创设、教师教学观念的转变、相关内容的教师培训、教师课堂管理及对课堂生命要素的关注等五个方面论述了课堂师生互动的有效策略,旨在为课堂教学效率和质量的提高提供拙见。 当前,新课程已经在全国各地中小学实施。对新课程中师生角色行为的转变及师生课堂交往成为人们关注的问题,也成为教育领域讨论的热点问题。在新的课程理念中,凸显学生在课堂中的主体地...
软件能力成熟度模型(C印abilityMatuirtyModel,CMM)4~为衡量一个软件企业的软件开发能力己经被大多数软件企业所接受。在论述CMM与CMMI的基础上,介绍了国防专用软件CMM的概念、框架以及CMM二级的目标和要求。及其在软件开发中的应用。 论文关键词:软件能力成熟度模型;软件项目管理 1软件项目管理概述 1.1软件项目管理的概念 从概念上讲,软件项目管理是为了使软件项目能够...
利用网络信息技术进行科研管理,加强了信息共享与协同工作,提高了科研工作的效率,但与此同时也存在一些安全隐患。介绍了科研网络信息安全的概念和意义,分析了其存在的安全隐患的具体类型及原因,为保证科研网络信息的安全,提出了加强网络风险防范、防止科研信息被泄露、修改或非法窃取的相应控制措施。 论文关键词:科研网络信息;安全隐患;控制策略 1引言 随着计算机网络技术的普及,利用网络信息技术来改造传统科研管...
云计算将使数字图书馆在软件环境、硬件存储、应用平台与服务方式等方面发生深刻变革,同时也会使信息资源面临很多安全问题。在云计算应用过程中应逐步建立和完善相关行业标准,保证信息资源的安全存储,实现信息资源的保密性与完整性、严格划分操作权限、加强用户访问控制,以保障数字图书馆信息资源的安全。 云计算是Google提出的全新的互联网应用模式,是分布式处理、并行处理和网格计算等计算机科学概念在互联网上的实...
本文介绍了研制《地理信息系统原理及应用》多媒体教学软件的必要性以及软件设计思路及开发过程,着重阐述了该教学软件的特色和教学效果。 一、引言 《地理信息系统原理及应用》是测绘工程、土地管理专业方向的专业课。作为“3s”之一的地理信息系统(GIS)是以空间数据库为基础,在计算机软硬件环境的支持下,对空间相关数据进行采集、管理、操作、分析、模拟和显示,适时提供空间和动态的地理...
本文先对软件项目管理进行简单的阐述,然后介绍了现行的软件企业管理国际标准,并着重对ISO9000系列和CMM进行了比较,最后根据我国软件行业的现状,介绍了软件项目管理的相关软件。 论文关键词:软件开发项目管理CMMISO项目管理软件 1软件项目管理的概念 软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,通过计划、组织、控制等一系列活动,合理地配置和使用各种资源,对成本、人...
针对复杂物流系统的复杂性,提出了一种分布式多代理仿真体系结构,阐述了该体系结构在复杂物流系统仿真中的应用过程,将复杂物流系统分布式多代理仿真体系结构和集中式仿真体系结构相结合,提出了集成的复杂物流系统仿真体系结构. 论文关键词:复杂物流系统;体系结构;分布式仿真;多代理仿真;集中式仿真 复杂物流系统的复杂性包括结构复杂性、不确定性、信息的失真与放大、组织机构的动态性等….对于各种...
文浅析了网络不正当竞争行为的表现形式,并以此为基础,提出了完善其法律规制的几点建议。一、网络不正当竞争行为及其表现形式对于网络不正当竞争行为,本人认为可以作如下定义:在以网络为媒介的经济交往活动中,经营行为者违反相关法律法规,损害其他经营行为者的合法权益,扰乱社会经济秩序的行为,称之为网络不正当竞争行为。(一)传统形式我国《反不正当竞争法》第二章列举了有形市场中的主要不正当竞争行为类型,主要出现了...
影响因子:0.000
影响因子:0.330
影响因子:2.297
影响因子:0.000
影响因子:1.129
影响因子:4.472
影响因子:0.240
影响因子:0.000