论文部分内容阅读
摘 要:工程化软件开发需要对软件开发整个过程进行有效的组织.和管理,由此产生了一系列软件开发组织和管理方法,其主要目的是.形成一种载体,用以叙述和传递关于软件开发的经验教就然而,由于软件开发的一些天然.特性(比如复杂性和不可见性)的存在,使得描述软件开发过程的软件开发与组织方法也天然的带着一定的抽象性.由此带来了很多概念上的误导和实践中的争论,影响了上述目的的达成.例如,对于究竟该如何选择和定义合适的软件开发过程以更好地满足某个特定项目的要求,目前仍然缺少可靠的手段.甚至有些面向工业界的调研报告表明:在实际软件项目开发中,过程改进(例如引入新的工具或者方法)的主要驱动力是佚闻.试图厘清软件组织与管理话题的若干核心概念,系统梳理软件组织和管理方法的特征,并且以软件发展的历史为主线,介绍软件组织与管理方法的历史沿革,整理出这种历史沿革背后的缘由.在此基础上,讨论和总结若干发现,以期为研究者和实践者提供参考。
关键词:软件工程;软件过程;软件项目管理;软件过程管理
1 概述项目管理
软件项目管理,其管理的对象是各类软件项目。具体软件而言,软件项目管理是应用方法、工具、技术以及人员能力来完成软件项目,实现项目目标的过程.整个软件开发过程中的目标识别、状态跟踪以及偏差纠正是软件项目管理的三大核心要素。完整的软件项目管理包含很多内容,例如成本和工作量的估算、计划和进度跟踪调整以及风险分析与控制等,都属于软件项目管理的范畴(可以参考第6版PMBOK来了解项目管理知识领域).尽管抽象概念上具有相似性(例如,所有管理活动都应该包含目标识别、状态跟踪以及偏差纠正这三大核心要素),软件项目管的具体方法和实践会因为项目特征呈现出不同的经验和教训。
2 项目管理当下的研究背景
随着计算机应用的快速普及,软件产品的功能越来越多,复杂性也越来越大,软件产品阶段包括需求分析、系统设计、系统开发等,每一个阶段都有专业的系统需求分析师、系统设计师、程序员等完成关联任务,并且涉及到不同的部门,导致项目的风险管理、成本管理以及进度管理难度加大l[]。因此,软件项目研发需要引人现代项目管理思想,实施严格的进度管控,控制软件开发周期,降低软件研发成本。
3 项目管理容易出现的两大问题
一、相比较于软件的发展,软件过程具有滞后性。
这个原因易于理解,因为软件过程本身就是经验教训的总结往往都是在现实中出现软件开发能力不能支持人们对软件需求和期望这样的问题之后,相应的软件过程和开发方法才会开始演进,以解决上述问题从这个意义上说,除非要解决的问题出现显著变化,否则,对软件过程的研究和探索的重点则仍然应该放在如何更好地使用现有过程和方法上,而不必去创造新的方法。
二、简洁、直观的过程。
我们发现,能够让开发者广为认同和使用的软件过程几乎都有一种外在的简洁软件开发本身具有的复杂性和不可见性已经使得开发者之间的交流面临着诸多困难,因此,为了能够形成一致的愿景,所使用的软件过程必须具有一种外在的简洁性整个软件系统应如何开发?应分成哪些阶段?每个阶段要实现什么样的目标?每个阶段与整体之间的关系是什么?诸如此类的问题,需要整个开发团队达成共识正因如此,我们不难理解具有外在简洁性的SCRUM方法之所以能够长期占据各类敏捷方法首位的原因当然,按照Royce的说法,简单的软件过程是不能应对复杂软件项目的开发的因此,仅仅保持外在的简洁是不够的,还需要尽可能详细地规划每个主要开发阶段的具体流程,才能形成一个具有指导意义的可以工作的软件过程
4 解决方法
(l)组建专业化团队。
选定项目总体负责人,根据软件项目工作计划,划分软件产品功能模块,由熟悉该领域的人进行详细分工,明确团队成员职责,防止团队成员推楼扯皮、挑肥揀瘦,并且要积极的营造一种团队协作良好、人员积极向上、开发经验共享的工作范围,凝聚和增强团队战斗力,稳定团队成员心态,降低流动频率,落实进度计划。
(2)创新软件开发技术,缩短实施周期。
软件项目产品要吸收新技术、新理念,比如软件复用技术和CASE技术。软件复用可以利用组件、接口、类等提高程序的复用性,一次开发处处使用,这样即可以降低软件出错率,也可以缩短编程时间;利用CASE技术可以提高软件开发、部署和运行的支持力度,使用先进的工具提高软件开发效率。
5 结束语
随着软件项目复杂度的增大,在软件项目研发中引人先进的工程管理理念具有重要的作用和意义。项目进度控制可以从需求阶段、实施阶段和收尾阶段进行严格的控制,采用先进的软件工程技术和理念保证软件研发顺利进行,尽可能缩短软件项目研发周期,具有重要的作用和意义。
参考文献
[1]荣国平,邵栋,华金茹.一种基于目标驱动的软件开发过程知识管理方法:.
[2]郭书琴.软件开发管理方法综述[J].中国科技信息,2017(14):54-55.
[3]何耀钦.软件系统工程:方法和管理的结合[J].系统工程(01):13-18.
[4]罗新,尼建军.软件项目风险管理综述[J].现代计算机(专业版)(21):18-21.
[5]童丽娟.软件维护方法综述[C]// 河南省冶金行业低碳冶金与节能减排学术研讨会论文集.2011.
关键词:软件工程;软件过程;软件项目管理;软件过程管理
1 概述项目管理
软件项目管理,其管理的对象是各类软件项目。具体软件而言,软件项目管理是应用方法、工具、技术以及人员能力来完成软件项目,实现项目目标的过程.整个软件开发过程中的目标识别、状态跟踪以及偏差纠正是软件项目管理的三大核心要素。完整的软件项目管理包含很多内容,例如成本和工作量的估算、计划和进度跟踪调整以及风险分析与控制等,都属于软件项目管理的范畴(可以参考第6版PMBOK来了解项目管理知识领域).尽管抽象概念上具有相似性(例如,所有管理活动都应该包含目标识别、状态跟踪以及偏差纠正这三大核心要素),软件项目管的具体方法和实践会因为项目特征呈现出不同的经验和教训。
2 项目管理当下的研究背景
随着计算机应用的快速普及,软件产品的功能越来越多,复杂性也越来越大,软件产品阶段包括需求分析、系统设计、系统开发等,每一个阶段都有专业的系统需求分析师、系统设计师、程序员等完成关联任务,并且涉及到不同的部门,导致项目的风险管理、成本管理以及进度管理难度加大l[]。因此,软件项目研发需要引人现代项目管理思想,实施严格的进度管控,控制软件开发周期,降低软件研发成本。
3 项目管理容易出现的两大问题
一、相比较于软件的发展,软件过程具有滞后性。
这个原因易于理解,因为软件过程本身就是经验教训的总结往往都是在现实中出现软件开发能力不能支持人们对软件需求和期望这样的问题之后,相应的软件过程和开发方法才会开始演进,以解决上述问题从这个意义上说,除非要解决的问题出现显著变化,否则,对软件过程的研究和探索的重点则仍然应该放在如何更好地使用现有过程和方法上,而不必去创造新的方法。
二、简洁、直观的过程。
我们发现,能够让开发者广为认同和使用的软件过程几乎都有一种外在的简洁软件开发本身具有的复杂性和不可见性已经使得开发者之间的交流面临着诸多困难,因此,为了能够形成一致的愿景,所使用的软件过程必须具有一种外在的简洁性整个软件系统应如何开发?应分成哪些阶段?每个阶段要实现什么样的目标?每个阶段与整体之间的关系是什么?诸如此类的问题,需要整个开发团队达成共识正因如此,我们不难理解具有外在简洁性的SCRUM方法之所以能够长期占据各类敏捷方法首位的原因当然,按照Royce的说法,简单的软件过程是不能应对复杂软件项目的开发的因此,仅仅保持外在的简洁是不够的,还需要尽可能详细地规划每个主要开发阶段的具体流程,才能形成一个具有指导意义的可以工作的软件过程
4 解决方法
(l)组建专业化团队。
选定项目总体负责人,根据软件项目工作计划,划分软件产品功能模块,由熟悉该领域的人进行详细分工,明确团队成员职责,防止团队成员推楼扯皮、挑肥揀瘦,并且要积极的营造一种团队协作良好、人员积极向上、开发经验共享的工作范围,凝聚和增强团队战斗力,稳定团队成员心态,降低流动频率,落实进度计划。
(2)创新软件开发技术,缩短实施周期。
软件项目产品要吸收新技术、新理念,比如软件复用技术和CASE技术。软件复用可以利用组件、接口、类等提高程序的复用性,一次开发处处使用,这样即可以降低软件出错率,也可以缩短编程时间;利用CASE技术可以提高软件开发、部署和运行的支持力度,使用先进的工具提高软件开发效率。
5 结束语
随着软件项目复杂度的增大,在软件项目研发中引人先进的工程管理理念具有重要的作用和意义。项目进度控制可以从需求阶段、实施阶段和收尾阶段进行严格的控制,采用先进的软件工程技术和理念保证软件研发顺利进行,尽可能缩短软件项目研发周期,具有重要的作用和意义。
参考文献
[1]荣国平,邵栋,华金茹.一种基于目标驱动的软件开发过程知识管理方法:.
[2]郭书琴.软件开发管理方法综述[J].中国科技信息,2017(14):54-55.
[3]何耀钦.软件系统工程:方法和管理的结合[J].系统工程(01):13-18.
[4]罗新,尼建军.软件项目风险管理综述[J].现代计算机(专业版)(21):18-21.
[5]童丽娟.软件维护方法综述[C]// 河南省冶金行业低碳冶金与节能减排学术研讨会论文集.2011.