软件工程课本讲解第15章 软件工程管理技术.ppt
上传人:qw****27 上传时间:2024-09-10 格式:PPT 页数:72 大小:2.3MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

软件工程课本讲解第15章 软件工程管理技术.ppt

软件工程课本讲解第15章软件工程管理技术.ppt

预览

免费试读已结束,剩余 62 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第15章软件工程管理技术15.1软件工程管理概述15.1.2软件工程管理的重要性由软件危机引出软件工程,这是计算机发展史上的一个重大进展。为了对付大型复杂的软件系统,须采用传统的“分解”方法。软件工程的分解是从横向和纵向(即空间和时间)两个方面进行的。横向分解就是把一个大系统分解为若干个小系统,一个小系统分解为若干个子系统,一个子系统分解为若干个模块,一个模块分解为若干个过程。纵向分解就是生存期,把软件开发分为几个阶段,每个阶段有不同的任务、特点和方法。为此,软件工程管理需要有相应的管理策略。随着软件规模的不断增大,开发人员也随着增多,开发时间也相应持续增长,这些都增加了软件工程管理的难度,同时也突出了软件工程管理的必要性与重要性。事实证明,由管理失误造成的后果要比程序错误造成的后果更为严重。很少有软件项目的实施进程能准确地符合预定目标、进度和预算,这也就足以说明软件工程管理的重要。软件工程管理目前还没有引起人们的足够重视。其原因:一方面是人的传统观念,工程管理不为人们所重视;另一方面软件工程是一个新兴的科学领域,软件工程管理的问题也是刚刚提出的。同时,由于软件产品的特殊性,使软件工程管理涉及到很多学科,例如,系统工程学、标准化、管理学、逻辑学及数学等。因此,对软件工程管理人们还缺乏经验和技术。在实际工作中,不管是否正式提出管理问题,人们都在自觉或不自觉地进行着管理,只不过是管理的好坏程度不同而已。15.1.3软件工程管理的内容软件工程管理的具体内容包括对开发人员、组织机构、用户、控制和文档资料等方面的管理。1.开发人员软件开发人员一般分为:项目负责人、系统分析员、高级程序员、程序员、初级程序员、资料员和其他辅助人员。根据项目规模的大小,有可能一人兼数职,但职责必须明确。不同职责的人,要求的素质不同。如项目负责人需要有组织能力、判断能力和对重大问题能做出决策的能力;系统分析员需要有概括能力、分析能力和社交活动能力;程序员需要有熟练的编程能力等。人员要少而精,选人要慎重。软件生存期各个阶段的活动既要有分工又要互相联系。因此,要求选择各类人员既能胜任工作,又要能相互很好地配合,没有一个和谐的工作环境很难完成一个复杂的软件项目。2.组织机构组织机构不等于开发人员的简单集合,要求有好的组织结构;合理的人员分工;有效的通讯。软件开发的组织机构没有统一的模式。下面简单介绍主程序员、专家组及民主组织3种组织机构:(1)主程序员组织机构:是由一位高级工程师(主程序员)主持计划、协调和复审全部技术活动;一位辅助工程师(或辅助程序员)协助主程序员工作,并在必要时代替主程序员工作;若干名技术人员(程序员)负责分析和开发活动;可以有一位或几位专家和一位资料员协助软件开发机构的工作。资料员非常重要,负责保管和维护所有的软件文档资料,帮助收集软件的数据,并在研究、分析和评价文档资料的准备方面进行协助工作。主程序员组的制度突出了主程序员的领导,责任集中在少数人身上,有利于提高软件质量。(2)专家组组织机构:是由若干专家组成一个开发机构,强调每个专家的才能,充分发挥每个专家的作用。这种组织机构虽然能发挥所有工作人员的积极性,但往往有可能出现协调上的困难。(3)民主组织机构:是由从事各方面工作的人员轮流担任组长。很显然,这种组织机构对调动积极性和个人的创造性是很值得称道的,但是,由于过多地进行组长信息“转移”,不符合软件工程化的方向。3.用户软件是为用户开发的,在开发过程中自始至终必须得到用户的密切合作和支持。作为项目负责人,要特别注意与用户保持联系,掌握用户的心理和动态,防止来自用户的各种干扰和阻力。用户干扰和阻力主要有:(1)不积极配合:指当用户对采用先进技术有怀疑,或担心失去自己现有的工作时,可能有抵触情绪,因此在行动上表现为消极、漠不关心,有时不配合。在需求分析阶段,做好这部分人的工作是很重要的,通过他们中的业务骨干,才能真正了解到用户的要求。(2)求快求全:指对使用计算机持积极态度的用户,他们中一部分人急切希望马上就能用上计算机。这就需要使他们认识到开发一个软件项目不是一朝一夕就能完成的,软件工程不是靠人海战术就能加快的工程;同时还要他们认识到计算机并不是万能的,有些杂乱无章的、随机的和没有规律的事物计算机是无法处理的。另外,即使计算机能够处理的事情,系统也不能一下子包罗万象,贪大求全。(3)功能变化:指在软件开发过程中,用户可能会不断提出新的要求和修改以前提出的要求。从软件工程的角度,不希望有这种变化。但实际上,不允许用户提出变动的要求是不可能的。因为一方面每个人对新事物有一个认识过程,不可能一下子提出全面的、正确的要求;另一方面