
软件工程是指导计算机软件开发与维护的工程学科,它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以便经济地开发出高质量的软件并有效地维护它文中通过介绍软件工程的相关知识和针对项目的特殊性对软件工程理论的具体实施办法,展示了如何将软件工程理论应用在实际工作中,从而快速、高效地开发出高质量的软件。
软件项目管理是使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。软件开发的整个过程都是设计过程而且不需要使用大量的物质资源(主要是人力资源),并且,软件开发的产品只是程序代码和技术文件,并没有其他的物质结果。因而企业软件开发项目管理水平直接决定了软件开发的能力,科学、系统的软件项目管理也从很大程度上减小了开发风险。通过运用软件项目管理来科学地开发软件有效地减少了开发风险,保证了质量。
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个人知识管理工具的类型 个人知识管理是知识识别、获取、开发、共享、利用和评价的过程。研究者从不同角度对个人知识管理工具进行了不同的分类。钟琳从企业中知识的...
持续集成是极限编程12个基本原则之一,正在被越来越多的团队所采用。软件项目管理涉及到九大知识领域,贯穿于软件过程的始终,目的是为了让软件项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期,按质的完成软件交付用户使用。持续集成这种软件开发实践,对于软件项目管理的各个领域的管理有着积极的作用。 一、引言 软件项目经理不但要用管理知识管理整个项目.还...
科学有效的软件项目管理有助于项目开发的成功.本文介绍了软件项目管理的内容并结合软件项目开发经验,探讨了影响软件项目管理的几个关键因素. 0引言 随着信息技术的飞速发展,软件产品的规模和复杂度随之增加,传统作坊式的开发方式逐步被以项目组为单位的协作式开发方式所取代,这就必然涉及到对软件项目的管理.实践表明,一个软件项目的成败,不在于其项目组的技术人员的技术水平,而在于是否采用的合适的管理:.好的...
由校园网运行和信息安全问题,提出加强校园网管理,提高教师和学生信息安全意识。并对具体的网络管理实施方法和信息安全保护措施进行探究和实践。 一、引言 随着校园网络建设的不断发展,学院在教学、管理、科研以及对外信息交流等多方面对校园网的依赖性日渐增强,以网络的方式来获取信息、存储信息和交流信息成为学院教师和学生使用信息的重要手段之一。然而,就目前的网络运行状况来看,校园网信息安全问题日益突出,网络...
本文认真分析了目前国内软件项目管理中出现的问题,以提高软件质量、降低成本、加强软件项目的可控性为目标,在深入研究和探讨CMM的基础上结合软件过程.给出了一种加强软件项目管理的实践模式。该实践模式定义了CMM中的6个关键过程域和3个工作组.并从项目的开发时间和质量方面做效率分析,强调了软件过程对软件项目管理的重要性。 论文关键词:软件项目;软件过程;CMM;KPA 1.引言 项目管理(PM,p...
为进一步全面推进区域教育现代化建设、促进教育公平和均衡发展,在更高层次和更广范围内推进教育信息化建设,江苏全省启动了基础教育信息化公共服务体系建设。作为服务体系的重要组成部分和核心内容,江苏省确定了教师教育技术应用能力建设的发展目标和发展策略,将在此框架下建立一个全方位、多层次、重实践的教育技术能力培养和应用体系,提升整个教育信息化的实践效能。 论文关键词:教育技术;应用能力;目标;策略 江苏...
互联网时代的来临给人们带来便利的同时也使信息安全与网络安全形势日益严峻。形形色色的漏洞层出不穷,传统的安全保障模式已经无法有效地应对当前的威胁。本文分析了信息安全形势和现状,阐述了由漏洞挖掘、漏洞利用所构成的病毒产业链对现有安全技术和理念的冲击。根据病毒产业链中各个环节的特点,提出了基于“云安全”思想的新型的安全保障模式,使之能够快速感知和捕获新的威胁,并从源头上予以监控。...
分析了目前威胁医院网络信息安全的各种因素结合网络安全与管理工作的实践,探讨了构建医院信息安全防御体系的措施。中国医院信息化建设经过20多年的发展历程目前已经进入了一个高速发展时期。据2007年卫生部统计信息中心对全国3765所医院(其中:三级以上663家:三级以下31O2家)进行信息化现状调查显示,超过80%的医院建立了信息系统…。随着信息网络规模的不断扩大,医疗和管理工作对信息系统...
影响因子:0.000
影响因子:1.700
影响因子:2.957
影响因子:7.500
影响因子:3.681
影响因子:3.598
影响因子:0.520
影响因子:0.000