软件开发中的项目管理.doc
《软件开发中的项目管理.doc》由会员分享,可在线阅读,更多相关《软件开发中的项目管理.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件开发中的项目管理赵鹏 通信一团技术室摘 要 信息化是我军“双重历史任务”的重点。如何实现信息化,建立高效、安全的信息平台,是摆在很多单位面前的一个课题。本文以总装备部CIMIS系统研制为背景,从软件工程的角度,分析了软件开发的生命周期、软件过程模型和团队模型,重点讨论软件项目管理的科学性和必要性,并结合具体实践,讨论如何发挥项目管理的作用,加强软件开发的组织与管理。关键词 软件工程、软件项目1 问题的提出经过三年多的应用和不断建设,总装备部CIMIS通信综合管理系统的性能不断完善,应用范围不断拓宽,对总装通信管理和建设实现科学化、正规化起到了良好的推动和促进作用。在检查中发现,各单位在CI
2、MIS系统的建设过程中,根据CIMIS总体技术方案和各自的实际情况,都建立起了各自的CIMIS系统,开发了不少技术先进的应用系统,初步实现了通信系统内部管理的信息化。但是,总体来说,或多或少存在着以下几个方面的不足:1)目前各单位基本上都是独立开发自己的CIMIS系统,但由于没有统一的开发标准,造成系统功能重复,开发平台不统一,系统整合难度大; 2)系统开发往往针对某一特定功能,没有形成一个完整的系统结构;3)总体设计不够细致,各个子系统功能模块风格不统一;4)开发人员多数为通信技术人员,开发能力和时间有限,开发手段相对原始,大多是软件作坊的形式,代码的可重用性低、可读性差;5)缺乏有效的软件
3、文档管理。这些问题集中体现在单个的功能模块设计和实现比较好,但是系统的顶层设计欠佳,模块与模块之间不能很好的通信,系统功能重复,不能很好的整合。这里既有技术层面的因素,即开发平台不统一;也有软件开发的组织与管理层面的因素,即程序员对系统功能的定义、规划和设计不明确,往往是开发人员摸着石头过河,仅仅从自己开发的这部分模块来考虑问题,另外开发人员和测试人员不能很好的协调,这些都说明了软件项目管理这一角色的欠缺。所以,为了保证CIMIS系统的进一步发展,下面,从软件工程的角度,重点分析项目管理在软件工程的管理和组织中的重要作用,并根据29基地在CIMIS系统开发中的一些做法,讨论如何发挥项目管理的作
4、用,加强软件开发的组织与管理。2 软件工程简述2.1 定义根据Fritz Bauer的观点,软件工程(soft engineering)的基本定义为:Software Engineering is the establishment and use of sound Engineering principles in order to obtain economically software that is reliable and works efficiently on real machines。即:软件工程是为了经济地获得能够在实际机器上有效运行的可靠软件而建立和使用的一系列完善的工程
5、化原则。 软件工程是一个层次化的科学,从低到高分为process层、methods层以及tools层。软件工程的过程(process)指将软件工程的方法和工具综合起来,以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付文档资料、保证质量和协调变化所需的管理,及软件开发各个阶段的里程碑。过程是软件工程的基础。软件工程的方法(methods)为软件开发提供了“如何做”的技术。它包括多方面的任务,如项目计划与估算、软件需求分析、数据结构设计、系统总体结构设计、算法过程设计、编码、测试以及维护等。软件工程的工具(tools)为软件工程过程和方法提供自动或半自动的软件支撑环境
6、。软件工具集成起来,建立起称作计算机辅助软件工程(CASE: Computer-Aided Software Engineering)的软件开发支撑环境。CASE将各种软件工具、开发机器和一个存放开发过程的工程数据库组合起来,形成软件工程环境。2.2 软件生命周期(Software Lifecycle)软件生命周期是指一个时间段,从软件产品的设计开始,当软件再也不被使用时结束,也称为软件过程,包括软件生存周期内为达到一定目标而必须实施的一系列相关过程的集合。使用软件生命周期模型可以有助于理解整个过程,实现结构化开发进程,预先资源计划和过程控制,所以,一个良好定义的软件过程对软件开发的质量和效率
7、有着重要的影响。按照在软件生命周期全过程中应完成的任务的性质,在概念上可以把软件生命周期划分为问题定义、可行性研究、需求分析、概要设计、详细设计、编码和单元测试、综合测试以及维护等8个阶段。实际上,在从事软件开发工作时,软件的规模、种类、开发环境以及实用的技术方法等因素,都影响着阶段的划分。因此,一个科学、有效的软件过程应该定义一组适合于所承担的项目特点的任务集合。常用的软件生命周期模型有:瀑布模型(Waterfall Model)历史悠久,广为人知,它的优势在于它是规范的、文档驱动的方法;这种模型的问题是,最终交付的产品可能不是用户真正需要的。瀑布模型见图1。进化开发模型(Evolution
8、ary Development Model)正是为了克服瀑布模型的缺点而提出来的。他通过快速构建起一个可运行的原型系统,让用户测试原型并收集用户的反馈意见的办法,获取用户的真实需求。许多商业化的产品都是通过这种方式开发的。这种模型的缺点是,对管理员来说,缺乏对项目进展的了解,同时系统的结构性比较差。适用于小型或中型交互式应用的开发。进化开发模型见图2。风险驱动的螺旋模型(Spiral Model)是由于大规模的内部开发项目,但是,只有在开发人员具有分析风险和排除风险的经验及专门知识时,使用这种模型才会获得成功。螺旋模型见图3。图1 软件生命周期瀑布模型 图2 软件生命周期进化开发模型图3 软件
9、生命周期螺旋模型 图4 软件开发团队3 软件开发的团队模型团队模型(Team Model)是软件开发团队的组成及其内部人员的分工和职责情况。团队中的每一个角色都有其特定的任务,他们互相依赖、互相合作,共享对软件的管理,也共享对软件的责任。每一个角色都始终存在并作用于整个软件开发过程。图4所示就是软件开发团队的组成。团队的成员根据软件的特点进行权力分配,共同分担责任和义务,彼此地位相等,相互沟通,听取多数人的意见,达到彼此制约,最终达到合理的平衡的目的。团队的成员及其主要目标如表1所示。表1 团队角色及主要目标团队角色主要目标产品管理ProductManagement确定软件的远景,获取并确定用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 开发 中的 项目 管理
限制150内