软件工程管理技术【推荐-PPT】

上传人:jiups****uk12 文档编号:45674291 上传时间:2018-06-18 格式:PPT 页数:60 大小:379.59KB
返回 下载 相关 举报
软件工程管理技术【推荐-PPT】_第1页
第1页 / 共60页
软件工程管理技术【推荐-PPT】_第2页
第2页 / 共60页
软件工程管理技术【推荐-PPT】_第3页
第3页 / 共60页
软件工程管理技术【推荐-PPT】_第4页
第4页 / 共60页
软件工程管理技术【推荐-PPT】_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《软件工程管理技术【推荐-PPT】》由会员分享,可在线阅读,更多相关《软件工程管理技术【推荐-PPT】(60页珍藏版)》请在金锄头文库上搜索。

1、第15章 软件工程管理技术15.1 软件工程管理概述15.2 软件项目计划15.3 软件配置管理15.4 软件工程标准化与软件文档第 15 章 软件工程管理技术返回主目录第15章 软件工程管理技术第15章 软件工程管理技术15.1 软件工程管理概述15.1.1软件产品的特点软件是非物质性的产品, 而且是知识密集型的逻辑思维的 产品,它具有以下特性: (1) 软件具有高度抽象性,软件及软件生产过程具有不可 见性。 (2) 同一功能软件的多样性, 软件生产过程中的易错性。 (3) 软件在开发和维护过程中的易变性。 (4) 不同开发者之间思维碰撞的易发性。 第15章 软件工程管理技术15.1.2 软

2、件工程管理的重要性 由软件危机引出软件工程,这是计算机发展史上的一个重大进展。为了对付大型复杂的软件系统,须采用传统的“分解”方法。软件工程的分解是从横向和纵向(即空间和时间)两个方面进行的。横向分解就是把一个大系统分解为若干个小系统, 一个小系统分解为若干个子系统,一个子系统分解为若干个模块,一个模块分解为若干个过程。纵向分解就是生存期,把软件开发分为几个阶段, 每个阶段有不同的任务、特点和方法。 为此,软件工程管理需要有相应的管理策略。 第15章 软件工程管理技术随着软件规模的不断增大,开发人员也随着增多,开发时 间也相应持续增长,这些都增加了软件工程管理的难度,同时 也突出了软件工程管理

3、的必要性与重要性。 事实证明,由管理 失误造成的后果要比程序错误造成的后果更为严重。 很少有软 件项目的实施进程能准确地符合预定目标、进度和预算的,这 也就足以说明软件工程管理的重要。 软件工程管理目前还没有引起人们的足够重视。其原因: 一 方面是人的传统观念,工程管理不为人们所重视;另一方面软 件工程是一个新兴的科学领域,软件工程管理的问题也是刚刚 提出的。同时,由于软件产品的特殊性,使软件工程管理涉及 到很多学科,如: 系统工程学、标准化、管理学、逻辑学及数学 等。 因此,对软件工程管理人们还缺乏经验和技术。第15章 软件工程管理技术在实际工作中,不管是否正式提出管理问题, 但都在自觉或不

4、自觉地进行着管理,只不过是管理的好坏程度不同而已。 第15章 软件工程管理技术15.1.3 软件工程管理的内容1. 开发人员软件开发人员一般分为: 项目负责人、系统分析员、高级 程序员、程序员、初级程序员、 资料员和其他辅助人员。根据 项目规模的大小,有可能一人兼数职,但职责必须明确。不同 职责的人,要求的素质不同。如项目负责人需要有组织能力、 判断能力和对重大问题能做出决策的能力;系统分析员需要有 概括能力、分析能力和社交活动能力;程序员需要有熟练的编 程能力等。人员要少而精,选人要慎重。软件生存期各个阶段 的活动既要有分工又要互相联系。因此,要求选择各类人员既 能胜任工作,又要能相互很好地

5、配合,没有一个和谐的工作环 境很难完成一个复杂的软件项目。 第15章 软件工程管理技术2. 组织机构组织机构不等于开发人员的简单集合, 要求有好的组织结 构;合理的人员分工;有效的通讯。软件开发的组织机构没 有统一的模式。下面简单介绍主程序员、专家组及民主组织 3 种组织机构:(1) 主程序员组织机构:是由一位高级工程师(主程序员) 主持计划、协调和复审全部技术活动;一位辅助工程师(或 辅助程序员)协助主程序员工作, 并在必要时代替主程序员 工作;若干名技术人员(程序员)负责分析和开发活动;可以有 一位或几位专家和一位资料员协助软件开发机构的工作。资 料员非常重要,负责保管和维护所有的软件文档

6、资料,帮助 收集软件的数据,并在研究、分析和评价文档资料的准备方 面进行协助工作。 第15章 软件工程管理技术主程序员组的制度突出了主程序员的领导,责任集中在少 数人身上, 有利于提高软件质量。 (2) 专家组组织机构:是由若干专家组成一个开发机构, 强调每个专家的才能,充分发挥每个专家的作用。这种组织机 构虽然能发挥所有工作人员的积极性,但往往有可能出现协调 上的困难。 (3) 民主组织机构:是由从事各方面工作的人员轮流担任 组长。很显然,这种组织机构对调动积极性和个人的创造性是 很值得称道的,但是,由于过多地进行组长信息“转移”,不符 合软件工程化的方向。 3. 用户软件是为用户开发的,

7、在开发过程中自始至终必须得到用 户的密切合作和支持。 第15章 软件工程管理技术作为项目负责人,要特别注意与用户保持联系,掌握用户 的心理和动态,防止来自用户的各种干扰和阻力。其干扰和阻 力主要有: (1) 不积极配合: 指当用户对采用先进技术有怀疑, 或担心 失去自己现有的工作时,可能有抵触情绪,因此在行动上表现 为消极、漠不关心,有时不配合。 在需求分析阶段,做好这部 分人的工作是很重要的,通过他们中的业务骨干,才能真正了 解到用户的要求。 (2) 求快求全:指对使用计算机持积极态度的用户, 他们中 一部分人急切希望马上就能用上计算机。要他们认识到开发一 个软件项目不是一朝一夕就能完成的,

8、软件工程不是靠人海战 术就能加快的工程;同时还要他们认识到计算机并不是万能的 ,有些杂乱无章的、随机的和没有规律的事物计算机是无法处 理的。 第15章 软件工程管理技术另外,即使计算机能够处理的事情,系统也不能一下子包罗万象,贪大求全。 (3) 功能变化: 指在软件开发过程中, 用户可能会不断提出新的要求和修改以前提出的要求。从软件工程的角度,不希望有这种变化。但实际上,不允许用户提出变动的要求是不可能的。 因为一方面每个人对新事物有一个认识过程,不可能一下子提出全面的、正确的要求;另一方面还要考虑到与用户的关系。 对来自用户的这种变化要正确对待,要向用户解释软件工程的规律,并在可能的条件下,

9、部分或有条件地满足用户的 合理要求。 4. 控制 第15章 软件工程管理技术4.控制控制包括进度控制、人员控制、经费控制和质量控制。 为保证软件开发按预定的计划进行,对开发过程要实施以计划 为基础。由于软件产品的特殊性和软件工程的不成熟,制定软 件进度计划比较困难。通常把一个大的开发任务分为若干期工 程。例如,分一期工程、二期工程等。然后再制定各期工程的 具体计划, 这样才能保证计划实际可行,便于控制。在制定 计划时要适当留有余地。 5. 文档资料软件工程管理很大程度上是通过对文档资料管理来实现 的。因此,要把开发过程中的一切初步设计、中间过程和最后 结果建立成一套完整的文档资料。文档标准化是

10、文档管理的一 个重要方面。 第15章 软件工程管理技术15.2 软件项目计划15.2.1 软件项目计划概念在软件项目管理过程中,一个关键的活动是制定项目计划, 它是软件开发工作的第一步。 项目计划的目标是为项目负责人提供一个框架,使之能合理地估算软件项目开发所需资源、经费和开发进度,并控制软件项目开发过程按此计划进行。软 件项目计划是由系统分析员与用户共同经过“可行性研究与计划”阶段后制定的。所以软件项目计划是可行性研究阶段的管理文档。但由于可行性研究是在高层次进行系统分析,未能考虑软件系统开发的细节情况,因此软件项目计划一般在需求分析阶段完成后才定稿的。 第15章 软件工程管理技术在做计划时

11、,必须就需要的人力、项目持续时间及成本做出估算。这种估算大多是参考以前的花费做出的。软件项目计划包括研究与估算两个任务,即通过研究确定该软件项目的主要功能、性能和系统界面。估算是在软件项目开发前, 估算 项目开发所需的经费、所要使用的资源以及开发进度。 在做软件项目估算时往往存在某些不确定性, 使得软件项目管理人员无法正常进行管理而导致产品迟迟不能完成。现在所使用的技术是时间和工作量估算。因为估算是所有其他项目计划活动的基石,且项目计划又为软件工程过程提供了工作方向,所以不能没有计划就开始着手开发,否则将会陷入盲目性。 第15章 软件工程管理技术15.2.2 软件项目计划内容软件项目计划有下列

12、内容。 1. 范围对该软件项目的综合描述,定义其所要做的工作以及性能 限制,它包括: (1) 项目目标:说明项目的目标与要求。 (2) 主要功能:给出该软件的重要功能描述。 该描述只涉 及高层及较高层的系统逻辑模型。 (3) 性能限制:描述总的性能特征及其他约束条件(如主 存、 数据库、通信速率和负荷限制等)。 第15章 软件工程管理技术(4) 系统接口:描述与此项目有关其他系统成分及其关系。 (5) 特殊要求: 指对可靠性、 实时性等方面的特殊要求。 (6) 开发概述:概括说明软件开始过程各阶段的工作, 重点集中于需求定义、设计和维护。 2. 资源软件项目计划所需的资源如下:(1) 人员资源

13、: 要求的人员数(系统分析员、高级程序员、 程序员、操作员、 资料员和测试员);各类人员工作的时 间阶段。 人员参加程度如图15.1所示。 第15章 软件工程管理技术第15章 软件工程管理技术(2) 硬件资源: 指软件项目开发所需的硬件支持和测试 设备。 (3) 软件资源: 指软件项目开发所需的支持软件和应用 软件,如各种开发和测试的软件。 (4) 工具包: 指操作系统和数据库软件等。 3. 进度安排进度安排的好坏往往会影响整个项目的按期完成,因此这一环节是十分重要的。制定软件进度与其他工程没有很大 的区别,其主要的方法有: 第15章 软件工程管理技术(1) 工程网络图。(2) cantt图。

14、(3) 任务资源表。 4. 成本估算为使开发项目能在规定的时间内完成,且不超过预算,成本估算是很重要的。软件成本估算是一门不成熟的技术,国外 已有的技术只能作为我们的借鉴。 5. 培训计划为用户各级人员制定培训计划。 第15章 软件工程管理技术15.2.3 软件开发成本估算为了使开发项目能够在规定的时间内完成,而且不超过预算,成本预算和管理控制是关键。对于一个大型的软件项目, 由于项目的复杂性, 开发成本的估算不是一件简单的事,要进 行一系列的估算处理。一个项目是否开发,从经济上来说是否 可行, 归根结底是取决于对成本的估算。 1. 成本估算方法成本估算方法有自顶向下、 自底向上和差别估算方法

15、。 1) 自顶向下估算方法 第15章 软件工程管理技术估算人员参照以前完成的项目所耗费的总成本(或总工作量),来推算将要开发的软件的总成本(或总工作量),然后把它们按阶段、步骤和工作单元进行分配, 这种方法称为自顶 向下估算方法。 自顶向下估算方法的主要优点是对系统级工作的重视,所以估算中不会遗漏系统级的诸如集成、用户手册和配置管理之类的事务的成本估算, 且估算工作量小、速度快。它的缺点是往往不清楚低层次上的技术性困难问题,而往往这些困难将会 使成本上升。 2) 自底向上估算方法第15章 软件工程管理技术这种方法的优点是对每一部分的估算工作交给负责该部分工作的人来做, 所以估算较为准确。其缺点

16、是其估算往往缺少 与软件开发有关的系统级工作量,如集成、配置管理、质量管 理和项目管理等,所以估算往往偏低。 3) 差别估算方法差别估算是将开发项目与一个或多个已完成的类似项目进行比较,找出与某个相类似项目的若干不同之处,并估算每个 不同之处对成本的影响, 导出开发项目的总成本。该方法的优 点是可以提高估算的准确度,缺点是不容易明确“差别”的界限除以上方法外,还有许多方法,大致分为专家、类推和算式估 算法。第15章 软件工程管理技术1) 专家估算法依靠一个或多个专家对要求的项目做出估算,其精确性取 决于专家对估算项目的定性参数的了解和他们的经验。 2) 类推估算法自顶向下的方法中,它是将估算项目的总体参数与类似项目 进行直接比较相比得到结果。自底向上方法中,类推是在两个

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号