第15章 软件工程管理技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第15章 软件工程管理技术 (2) 求快求全:指对使用计算机持积极态度的用 户,他们中一部分人急切希望马上就能用上计算机。 这就需要使他们认识到开发一个软件项目不是一朝一 夕就能完成的,软件工程不是靠人海战术就能加快的 工程;同时还要他们认识到计算机并不是万能的,有
些杂乱无章的、随机的和没有规律的事物计算机是无
第15章 软件工程管理技术 3. 用户 软件是为用户开发的,在开发过程中自始至终必须
得到用户的密切合作和支持。作为项目负责人,要特别
注意与用户保持联系,掌握用户的心理和动态,防止来 自用户的各种干扰和阻力。用户干扰和阻力主要有:
(1) 不积极配合:指当用户对采用先进技术有怀疑,
或担心失去自己现有的工作时,可能有抵触情绪,因此 在行动上表现为消极、漠不关心,有时不配合。在需求 分析阶段,做好这部分人的工作是很重要的,通过他们 中的业务骨干,才能真正了解到用户的要求。
胜任工作,又要能相互很好地配合,没有一个和谐的工作
环境很难完成一个复杂的软件项目。 2. 组织机构
组织机构不等于开发人员的简单集合 , 要求有好的
组织结构;合理的人员分工;有效的通讯。软件开发的组 织机构没有统一的模式。下面简单介绍主程序员、专家组 及民主组织3种组织机构:
第15章 软件工程管理技术 (1) 主程序员组织机构:是由一位高级工程师 ( 主程序 员 )主持计划、协调和复审全部技术活动;一位辅助工程师 (或辅助程序员)协助主程序员工作,并在必要时代替主程序 员工作;若干名技术人员(程序员)负责分析和开发活动;可 以有一位或几位专家和一位资料员协助软件开发机构的工作。 资料员非常重要,负责保管和维护所有的软件文档资料,帮 助收集软件的数据,并在研究、分析和评价文档资料的准备 方面进行协助工作。
第15章 软件工程管理技术 2) 自底向上估算方法 自底向上估算方法是将待开发的软件细分,分别 估算每一个子任务所需要的开发工作量,然后将它们 加起来,得到软件的总开发量。这种方法的优点是对 每一部分的估算工作交给负责该部分工作的人来做,
所以估算较为准确。其缺点是其估算往往缺少与软件
开发有关的系统级工作量,如集成、配置管理、 质量管理和项目管理等,所以估算往往偏低。
第15章 软件工程管理技术 1) 专家估算法 依靠一个或多个专家对要求的项目做出估算,其精
确性取决于专家对估算项目的定性参数的了解和他们的
经验。 2) 类推估算法 自顶向下的方法中,它是将估算项目的总体参数与 类似项目进行直接比较相比得到结果。自底向上方法中, 类推是在两个具有相似条件的工作单元之间进行。
第15章 软件工程管理技术 在做计划时,必须就需要的人力、项目持续时间 及成本做出估算。这种估算大多是参考以前的花费做 出的。软件项目计划包括研究与估算两个任务,即通 过研究确定该软件项目的主要功能、性能和系统界面。 估算是在软件项目开发前,估算项目开发所需的经费、 所要使用的资源以及开发进度。 在做软件项目估算时往往存在某些不确定性,使 得软件项目管理人员无法正常进行管理而导致产品迟 迟不能完成。现在所使用的技术是时间和工作量估算。 因为估算是所有其他项目计划活动的基石,且项目计 划又为软件工程过程提供了工作方向,所以不能没有 计划就开始着手开发,否则将会陷入盲目性。
不超过预算,成本预算和管理控制是关键。对于一个
大型的软件项目,由于项目的复杂性,开发成本的估 算不是一件简单的事,要进行一系列的估算处理。一 个项目是否开发,从经济上来说是否可行,归根结底 是取决于对成本的估算。 1. 成本估算方法 成本估算方法有自顶向下估算方法、自底向上估 算方法和差别估算方法。
把一个大的开发任务分为若干期工程。例如,分一期
工程、二期工程等。然后再制定各期工程的具体计划, 这样才能保证计划实际可行,便于控制。在制定计划 时要适当留有余地。
第15章 软件工程管理技术 5. 文档资料 软件工程管理很大程度上是通过对文档资料管理
来实现的。因此,要把开发过程中的初步设计、中间
过程和最后结果建立成一套完整的文档资料。文档标 准化是文档管理的一个重要方面。
主程序员组的制度突出了主程序员的领导,责任集中在
少数人身上,有利于提高软件质量。
第15章 软件工程管理技术 (2) 专家组组织机构:是由若干专家组成一个开 发机构,强调每个专家的才能,充分发挥每个专家的
作用。这种组织机构虽然能发挥所有工作人员的积极
性,但往往有可能出现协调上的困难。 (3) 民主组织机构:是由从事各方面工作的人员 轮流担任组长。很显然,这种组织机构对调动积极性 和个人的创造性是很值得称道的,但是,由于过多地 进行组长信息“转移”,不符合软件工程化的方向。
是把一个大系统分解为若干个小系统,一个小系统分
解为若干个子系统,一个子系统分解为若干个模块, 一个模块分解为若干个过程。纵向分解就是生存期,
把软件开发分为几个阶段,每个阶段有不同的任务、
特点和方法。为此,软件工程管理需要有相应的管理 策略。
第15章 软件工程管理技术 随着软件规模的不断增大,开发人员也随着增多,开发 时间也相应持续增长,这些都增加了软件工程管理的难度,
(4) 不同开发者之间思维碰撞的易发性。
第15章 软件工程管理技术 15.1.2 软件工程管理的重要性 由软件危机引出软件工程,这是计算机发展史上 的一个重大进展。为了对付大型复杂的软件系统,须 采用传统的“分解”方法。软件工程的分解是从横向 和纵向 ( 即空间和时间 ) 两个方面进行的。横向分解就
第15章 软件工程管理技术 1) 自顶向下估算方法 估算人员参照以前完成的项目所耗费的总成本(或
总工作量 ),来推算将要开发的软件的总成本 (或总工
作量),然后把它们按阶段、步骤和工作单元进行分配, 这种方法称为自顶向下估算方法。
自顶向下估算方法的主要优点是对系统级工作的
重视,所以估算中不会遗漏系统级的诸如集成、用户 手册和配置管理之类的事务的成本估算,且估算工作 量小、速度快。它的缺点是往往不清楚低层次上的技 术性困难问题,而往往这些困难将会使成本上升。
法处理的。另外,即使计算机能够处理的事情,系统 也不能一下子包罗万象,贪大求全。
第15章 软件工程管理技术 (3) 功能变化:指在软件开发过程中,用户可能 会不断提出新的要求和修改以前提出的要求。从软件
工程的角度,不希望有这种变化。但实际上,不允许
用户提出变动的要求是不可能的。因为一方面每个人 对新事物有一个认识过程,不可能一下子提出全面的、
第15章 软件工程管理技术
第15章 软件工程管理技术
15.1 软件工程管理概述 15.2 软件项目计划 15.3 软件配置管理 15.4 软件工程标准化与软件文档 15.5 小结
习题
第15章 软件工程管理技术
15.1 软件工程管理概述
15.1.1 软件产品的特点 软件是非物质性的产品,而且是知识密集型的逻 辑思维的产品,它具有以下特性: (1) 软件具有高度抽象性,软件及软件生产过程 具有不可见性。 (2) 同一功能软件的多样性,软件生产过程中的 易错性。 (3) 软件在开发和维护过程中的易变性。
第15章 软件工程管理技术
15.2 软件项目计划
15.2.1 软件项目计划概念 在软件项目管理过程中,一个关键的活动是制定项目计 划,它是软件开发工作的第一步。项目计划的目标是为项目 负责人提供一个框架,使之能合理地估算软件项目开发所需 资源、经费和开发进度,并控制软件项目开发过程按此计划 进行。软件项目计划是由系统分析员与用户共同经过“可行 性研究与计划”阶段后制定的,所以软件项目计划是可行性 研究阶段的管理文档。但由于可行性研究是在高层次进行系 统分析,未能考虑软件系统开发的细节情况,因此软件项目 计划一般是在需求分析阶段完成后才定稿的。
机构、用户、控制和文档资料等方面的管理。
1. 开发人员 软件开发人员一般分为 : 项目负责人、系统分析 员、高级程序员、程序员、初级程序员、资料员和其 他辅助人员。根据项目规模的大小,有可能一人兼数 职,但职责必须明确。不同职责的人,要求的素质不 同。
第15章 软件工程管理技术 如项目负责人需要有组织能力、判断能力和对重大问 题能做出决策的能力;系统分析员需要有概括能力、分析 能力和社交活动能力;程序员需要有熟练的编程能力等。 人员要少而精,选人要慎重。软件生存期各个阶段的活动 既要有分工又要互相联系。因此,要求选择各类人员既能
第15章 软件工程管理技术 同时,由于软件产品的特殊性,使软件工程管理 涉及到很多学科,例如,系统工程学、标准化、管理
学、逻辑学及数学等。因此,对软件工程管理人们还
缺乏经验和技术。在实际工作中,不管是否正式提出 管理问题,人们都在自觉或不自觉地进行着管理,只 不过是管理的好坏程度不同而已。
第15章 软件工程管理技术 15.1.3 软件工程管理的内容 软件工程管理的具体内容包括对开发人员、组织
殊要求。
(6) 开发概述:概括说明软件开始过程各阶段的 工作,重点集中于需求定义、设计和维护。
第15章 软件工程管理技术 2. 资源 软件项目计划所需的资源如下:
(1) 人员资源:要求的人员数(系统分析员、高级
程序员、程序员、操作员、资料员和测试员);各类人 员工作的时间阶段。人员参加程度如图15.1所示。
第15章 软件工程管理技术 3) 差别估算方法 差别估算是将开发项目与一个或多个已完成的类
似项目进行比较,找出与某个相类似项目的若干不同
之处,并估算每个不同之处对成本的影响,导出开发 项目的总成本。该方法的优点是可以提高估算的准确
度,缺点是不容易明确“差别”的界限。
除以上方法外,还有许多方法,大致分为专家、 类推和算式估算法。
第15章 软件工程管理技术 15.2.2 软件项目计划内容 软件项目计划有下列内容。
1. 范围
对该软件项目的综合描述,定义其所要做的工作 以及性能限制,它包括: (1) 项目目标:说明项目的目标与要求。 (2) 主要功能:给出该软件的重要功能描述。该
描述只涉及高层及较高层的系统逻Байду номын сангаас模型。
第15章 软件工程管理技术 (3) 性能限制:描述总的性能特征及其他约束条 件(如主存、数据库、通信速率和负荷限制等)。 (4) 系统接口:描述与此项目有关的其他系统成 分及其关系。 (5) 特殊要求:指对可靠性、实时性等方面的特
(3) 任务资源表。
第15章 软件工程管理技术 4. 成本估算 为使开发项目能在规定的时间内完成,且不超过
预算,成本估算是很重要的。软件成本估算是一门不
成熟的技术,国外已有的技术只能作为我们的借鉴。 5. 培训计划
为用户各级人员制定培训计划。
第15章 软件工程管理技术 15.2.3 软件开发成本估算 为了使开发项目能够在规定的时间内完成,而且
同时也突出了软件工程管理的必要性与重要性。事实证明,
由管理失误造成的后果要比程序错误造成的后果更为严重。 很少有软件项目的实施进程能准确地符合预定目标、进度和
预算,这也就足以说明软件工程管理的重要。
软件工程管理目前还没有引起人们的足够重视。其原因: 一方面是人的传统观念,工程管理不为人们所重视;另一方 面软件工程是一个新兴的科学领域,软件工程管理的问题也 是刚刚提出的。
第15章 软件工程管理技术
图15.1 人员参加程度曲线图
第15章 软件工程管理技术 (2) 硬件资源:指软件项目开发所需的硬件支持 和测试设备。 (3) 软件资源:指软件项目开发所需的支持软件 和应用软件,如各种开发和测试的软件。 (4) 工具包:指操作系统和数据库软件等。 3. 进度安排 进度安排的好坏往往会影响整个项目的按期完成, 因此这一环节是十分重要的。制定软件进度与其他工 程没有很大的区别,其主要的方法有: (1) 工程网络图。 (2) Gantt图。
正确的要求;另一方面还要考虑到与用户的关系。对
来自用户的这种变化要正确对待,要向用户解释软件 工程的规律,并在可能的条件下,部分或有条件地满 足用户的合理要求。
第15章 软件工程管理技术 4. 控制 控制包括进度控制、人员控制、经费控制和质量
控制。为保证软件开发按预定的计划进行,对开发过
程要实施以计划为基础。由于软件产品的特殊性和软 件工程的不成熟,制定软件进度计划比较困难。通常
相关文档
最新文档