本章的主要内容是软件管理的内容、软件项目计划内容、软件开发成本估算、软件项目进度安排、软件配置管理等概念,重点是相关概念的记忆和领会。
12.1软件工程管理概述
软件工程包括软件开发技术和软件工程管理两大部分内
容。软件工程管理是对软件项目的开发管理。具体地说是对整个软件生存期的一切活动进行管理。软件工程管理的具体内容包括对开发人员、组织机构、用户、文档资料等方面的管理。
12.1.1软件产品的特点
(1)软件具有高度抽象性, 软件及软件生产过程具有不可见性。
(2)同一功能软件的多样性,软件生产过程中的易错性。 (3)软件在开发和维护过程中的易变性。 (4)不同开发者之间思维碰撞的易发性。 12.1.2软件工程管理的重要性
为了对付大型复杂的软件系统,须采用传统的\"分解\"方法。软件工程的分解是从横向和纵向即时间和空间两个方面进行的。
横向分解就是把一个大系统分解为若干个小系统,小系统分解为子系统,子系统分解为模块,模块分解为过程。
纵向分解就是生存期,把软件开发分为几个阶段,每个阶段有不同的任务、特点和方法。为此,软件工程管理需要有相应的管理策略。
重要性:根据软件产品的特征,且随着软件规模的不断增大,开发人员也随着增多,开发时间也相应持续增长,这些都增加了软件工程管理的难度,同时也突出了软件工程管理的必要性和重要性。事实证明,由管理失误造成的后果要比程序错误造成的后果更为严重。很少有软件项目的实施进程能准确地符合预定目标、进度和预算的,这也就足以说明软件工程管理的重要。
软件工程管理目前还没有引起人们的足够重视。其原因是人的传统观念,工程管理不为人们所重视;另一方面软件工程是一个新兴的科学领域,软件工程管理的问题也是刚刚提出的。同时,由于软件产品的特殊性,使软件工程管理涉及到很多学科。
12.1.3软件工程管理的内容
软件工程管理的具体内容包括对开发人员、组织机构、用户、文档资料等方面的管理。 1.开发人员
开发人员有:项目负责人、系统分析员、高级程序员、初级程序员、资料员和其他辅助人员。 2.组织机构
这里的组织机构要求有好的组织结构,合理的人员分工,有效的通讯。下面简单介绍三种组织机构。 (1)主程序员组织机构。 (2)专家组织机构。 (3)民主组织机构。 3.用户
软件是为用户而开发的,在开发过程中自始至终必须得到用户的密切合作和支持。作为项目负责人,要特别注意与用户保持联系,掌握用户心理和动态,防止来自用户的各种干扰和阻力。其干扰有: (1)不积极配合。 (2)求快求全。 (3)功能变化。 4.控制
控制包括进度控制、人员控制、经费控制和质量控制。 5.文挡资料
软件工程管理很大程度上是通过对文挡资料的管理来实现的。因此,要把开发过程中的一切初步设计、中间过程、最后结果建立成一套完整的文挡资料。文挡标准化是文挡管理的重要方面。
12.2软件项目计划
12.2.1软件项目计划概念
在软件项目管理过程中一个关键的活动是制定项目计划,它是软件开发工作的第一步。 项目计划的目标是为项目负责人提供一个框架,使之能合理地估算软件项目开发所需的资源 、经费和开发进度,并控制软件项目开发过程按此计划进行。软件项目计划是由系统分析员与用户共同经过\"可行性研究与计划\"阶段后制定的。所以软件项目计划是可行性研究阶段的结果产品。
在做计划时,必须就需要的人力、项目持续时间及成本作出估算。这种估算大多是参考 以前的花费作出的。软件项目计划包括二个任务:研究和估算。即通过研究确定该软件 项目的主要功能、性能和系统界面。 12.2.2软件项目计划内容 软件项目计划内容如下:
1.范围。对该软件项目的综合描述,定义起所要做的工作以及性能,它包括: (1)项目目标。 (2)主要功能。 (3)性能。 (4)系统接口。 (5)特殊要求。 (6)开发概述。 2.资源。
(1)人员资源。 (2)硬件资源。 (3)软件资源。 (4)其他。 3.进度安排。
进度安排的好坏往往会影响整个项目的按期完成,因此这一环节是十分重要的。制定软件进度与其他工程没有很大的区别 ,其方法主要有: (1)工程网络图。 (2)Gantt图。 (3)任务资源表。 (4)成本估算。 (5)培训计划。 12.2.3制定软件工程规范
对软件工程管理来说,软件工程规范的制定和实施是不可少的,它与软件项目计划一样重要 。软件工程规范可选用现成的各种规范,也可自己制定。目前软件工程规范可分为三级:
(1)国家标准与国际标准。 (2)行业标准与工业部门标准。 (3)企业级标准与开发小组级标准。 12.2.4软件开发成本估算
为了使开发项目能在规定的时间内完成,而且不超过预算,成本预算和管理控制是关键。 1.成本估算方法
(1)自顶向下估算方法。
估算人员参照以前完成的项目所耗费的总成本,来推算将要开发的软件的总成本,然后把它们按阶段、步骤和工作单元进行 分配,这种方法称为自顶向下估算方法。 它的优点是对系统级工作的重视,所以估算中不会遗漏系统级的诸如集成、用户手册和配置管理之类的事务的成本估算,且估算工作量小、 速度快。它的缺点是往往不清楚低级别上的技术性困难问题,而往往这些困难将会使成本上升。
(2)自底向上估算方法。
自底向上估算方法是将待开发的软件细分,分别估算每一个子任务所需要的开发工作量,然后将它们加起来 ,得到软件的总开发量。这种方法的优点是对每个部分的估算工作交给负责该部分工作的人来做,所以估算 较为准确。其缺点是其估算往往缺少与软件开发有关的系统工作级工作量,所以估算往往偏低。 (3)差别估算方法。
差别估算是将开发项目与一个或多个已完成的类似项目进行比较,找到与某个相类似项目的若干 不同之处,并
估算每个不同之处对成本的影响,导出开发项目的总成本。该方法的优点是可以提高估算的准确度, 缺点是不容易明确“差别”的界限。 除上三种还有: (1)专家估算法。 (2)类推估算法。 (3)算式估算法。 2.成本估算模型 (1)COCOMO估算模型。
机构性成本模型COCOMO(Constructive Cost Mode)是最精确、最易于使用的成本估算方法之一。
该模型分为:基本COCOMO模型,是一个静态单变量模型,它是对整个软件系统进行估算;中级COCOMO模型,是一个静态多变量模型;详细COCOMO模型,将软件系统模型分为系统、子系统和模块三个层次。 ①基本COCOMO模型估算公式: E=ab(KLOC)exp(bb) D=cb(E)exp(db)
式中E为开发所需的人力(人/月)。D为所需的开发时间(月)。KLOC为估计提交的代码行。 ab、bb、cb和db是指不同软件开发方式的值。 ②中级COCOMO模型。
其估算公式为:E=ai(KLOC)exp(bi)×乘法因子,ai,bi (2)Putnam成本估算经验模型。
Putnam估算模型是一种动态多变模型,它是假设在软件开发的整个生存期中工作量的分布。如下图:
根据曲线导出关于提交的代码行数L,人力K(人/年)和
时间td(年)之间估算公式:
式中Ck是技术状况有关的常数,它的典型值如下: 对于差的开发环境 Ck=2500 对于好的开发环境 Ck=10000 对于有的开发环境 Ck=12500
由上述公式可以得到所需开发工作量的公式:
12.2.5风险分析
风险分析对于软件项目管理是决定性的,然而现在还是有很多项目不考虑风险就着手进行。 12.2.6软件项目进度安排
软件项目的进度安排与任何一个工程的进度安排没有实质上的不同。首先识别一组项目任务,建立任务间的相互关联,然后估计各个任务的工作量,分配人力和其他资源,指定进度时序。
1.软件开发任务的并行性
若软件项目有多人参加时,多个开发者的活动将并行进行。
2.Gantt图
Gantt图常用水平线段来描述把任务分解成子任务,以及每个子任务的进度按排,该图表示方法简单易懂, 一目了然,动态反映软件开发进度情况。如下表:
进程计划时间表
1999年 4月 5月 6月 7月 8月 9月 10月 11月 12月 3月 前期准备 系统调查 系统分析 系统设计 系统实施 系统试运行 系统测试 系统验收 系统正式运行
3.工程网络图
工程网络图是一种有向图,该图中用圆表示事件,有向弧或箭头表示子任务的进行,箭头上的数字称为权,该权表示此子任务的持续时间,箭头下面括号中的数字表示该任务的机动时间,图中的圆表示与某个子任务开始或结束事件的时间点。如下图:
12.2.7软件质量保证
软件质量保证是软件工程管理的重要内容,软件质量保证应作好以下几个方面的工作: (1)采用技术手段和工具。 (2)组织正式技术评审。 (3)加强软件测试。
(4)推行软件工程规范(标准)。 (5)对软件的变更进行控制。 (6)对软件质量进行度量。
12.3软件配置管理
软件配置管理,简称SCM,它用于整个软件工程过程。其
主要目标是:标识变更;控制变更;确保变更正确地实现;报告有关变更。SCM是一组管理整个软件生存期各个阶段中变更的活动。 12.3.1基线
基线是软件生存期中各开发阶段的一个特定点,它的作用是把开发各阶段的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查和肯定阶段成果。 12.3.2软件配置项
软件配置项(SCI)是软件工程中生产的信息想,它是配置管理的基本单位,对已成为基线的SCI,虽然可以修改,但必须按照一个特殊的、正式的过程进行评估,确认每一处的修改。 12.3.3.版本控制
软件配置实际上是一动态的概念,它一方面随着软件生存期向前推进,SCI的数量在不断增多,一些文档经过转换生成另一些文档,并生产一些信息。另一方面又随时会有新的变量出现,形成新的版本。 12.3.4变更控制
软件工程过程中某一阶段的变更,均要引起软件配置的变更,这种变更必须严格加以控制和管理,保持修改信息,并
把精确、清晰的信息传递到软件工程的下一步。
12.4软件工程标准化与软件文档
12.4.1 什么是软件工程标准化
随着软件工程学的发展,人们对计算机软件的认识逐渐深入。软件工作的范围从只是使用程序设计语言编写程序,扩展到整个软件生存期。所有这些工作都应逐步建立其标准或规范来。
软件工程的标准主要有以下三个:
(1)FIPS 135是美国国家标准局发布的《软件文档管理
指南》
(2)NSAC——39是美国核子安全分析中心发布的《安全参数显示系统的验证与确认》
(3)ISO 5807是国际标准化组织公布(现在已经成为中国国家标准)的《信息处理——数据流程图、程序流程图、程序网络图和系统资源图的文件编制符号及约定》。 12.4.2软件工程标准化的意义 12.4.3软件工程标准化的层次 1.国家标准 2.国际标准 3.行业标准 4.企业规范
5.项目(课题)规范 12.4.4文档的作用与分类 1.文档的作用
文档是指某种数据媒体和其中所记录的数据。在软件工程中,文档用来表示对需求、工程或结果进行描述、定义、规定、报告或认证的任何书画或图示的信息。它们描述和规定了软件设计和实现的细节,说明使用软件的操作命令。文档也是软件产品的一部分,没有文档的软件就不成为软件。软件文档的编制在软件开发过程中占有突出的地位和相当大的工作量。高质量文档对于转让、变更、修改、扩充和使
用文档,对于发挥软件产品的效益有着重要的意义。 2.文档的分类
软件开发项目生存期各阶段应包括的文档以及各类人员的关系如下:
管理人员 开发人员 维护人员 用户 可行性研究报告 项目开发计划 软件需求说明书 数据要求说明书 测试计划 概要设计说明书 详细设计说明书 用户手册 操作手册 测试分析报告 开发进度月报 项目开发总结 程序维护手册 第12章例题分析与解答
一、填空题
1.要成功地完成软件开发工作的一个主要决定性因素是
_______。 答案:软件管理
2.参照以前完成的项目所耗费的总成本,来推算将要开发的软件的总成本,然后把它们按阶段、步骤和工作单元进行分配,这种方法称为_______方法。 答案:自顶向下估算
3.能协调软件开发,使得混乱减少到最小的方法是使用_______。
答案:软件配置管理
4.软件开发过程中,严格控制变更,保留变更的有关信息,这种管理是由_______来完成的。 答案:变更管理
5.在软件的生产过程中,总是有大量各种信息要记录,因此,_______在产品的开发过程中起着重要的作用。 答案:软件文档 二、选择题
1.一个项目是否开发,从经济上来说是否可行,归根结底是取决于对( )。
A.成本的估算 B.项目计划 C.工程管理 D.工程网络图 答案:A
2.在软件项目管理过程中,一个关键的活动是( ),它是软件开发工作的第一步。
A.编写规格说明书 B.制定测试计划 C.编写需求说明书 D.制定项目计划 答案:D
3.软件管理比其他工程管理更为( )。 A.容易 B.困难 C.迅速 D.迟缓 答案:B
第12章自测题及参
一、名词解释
1.软件项目计划 2.软件配置管理 3.基线 二、填空题
1.软件工程包括软件开发技术和______两大部分内容。(软件工程管理)
2.软件工程管理不同于其他工程管理,它对保证高质量的______产品更具有极为重要的意义。(软件)
3.软件工程管理的具体内容包括对开发人员、组织机构、用户、______等方面的管理。(文档资料)
4.在一个软件项目的开发过程中要自始至终得到______的密切合作与支持。(用户)
5.软件项目计划的第一项活动是确定______。(软件范围) 6.主程序员组织机构的制度突出了主程序员的领导,责任集中在少数人身上,有利于提高______。(软件质量) 7.在一个大系统的开发过程中,由于______失误造成的后果
要比程序错误造成的后果更为严重。(管理)
8.软件开发人员一般分为:______、系统分析员、高级程序员、初级程序员、资料员和其他辅助人员。(项目负责人) 9.在软件项目管理过程中,一个关键的活动是______。(制订项目计划)
10.目前软件工程规范可分为三级:国家标准与国际标准、行业标准与工业标准和______。(企业标准与开发小组标准) 11.成本估算方法中,有自顶向下估算方法、自底向上估算方法和______方法。(差别估算)
12.差别估算的缺点是不容易明确“差别”的界限,但它的优点是可以提高______。(估算的准确度)
13.基线的作用是把各阶段的开发工作划分得更加明确,便于检查与确认阶段成果。因此,基线可以作为项目的一个______。(检查点)
14.在软件开发和维护过程中,一个软件往往有许多版本,版本控制工具用来存储、更新、恢复和管理一个软件的______。(多个版本) 三、选择题
1.软件工程管理是对软件项目的开发管理,即对整个软件( B )的一切活动的管理。
A.软件项目 B.生存期 C.软件开发计划 D.软件开发 2.单元测试是发现编码错误,集成错误是发现接口错误,确
认错误是发现功能错误,系统测试是发现( C )错误。 A.接口错误 B.编码上的错误 C.性能、质量不合要求 D.功能错误
3.为使软件项目开发获得成功,必须对( C )的工作范围、可能遇到的风险、需要的资源(人、硬件/软件)、要实现的任务、经历的里程碑、花费的工作量(成本),以及进度的安排等做到心中有数。
A.需求分析 B.概要设计 C.软件开发项目 D.软件开发进度 4.版本管理是对系统不同的版本进行(A)的过程。 A.标识与跟踪 B.标识变更 C.发布变更 D.控制变更
5.自顶向下估算方法的主要优点是对系统级工作的重视,所以估算中不会遗漏系统级的成本估算,估算工作量小、速度快。它的缺点是往往不清楚( C )上的技术性困难问题,而往往这些困难将会使成本上升。
A.成本估算 B.系统级 C.低级别 D.工程管理 6.自底向上估算的优点是对每一部分的估算工作交给负责该部分工作的人来做,所以估算( D )。
A.往往偏低 B.不太准确 C.往往偏高 D.较为准确 7.COCOMO估算模型是( B )。
A.模块性成本模型 B.结构性成本模型
C.动态单变量模型 D.动态多变量模型 8.Putnam成本估算经验模型是( D )。 A.模块性成本模型 B.结构性成本模型 C.动态单变量模型 D.动态多变量模型
9.基线是软件生存期中各开发阶段的一个特定点,它可作为一个检查点,当采用的基线发生错误时,我们可以返回到最近和最恰当的( C )上。
A.配置项 B.程序 C.基线 D.过程
10.为使得开发人员对软件产品的各阶段工作都进行周密的思考,从而减少返工,所以( C )的编制是很重要的。 A.需求说明 B.概要说明 C.软件文档 D.测试大纲 11.只有高水平的软件工程能力才能生产出高质量的软件产品。因此,须在软件开发环境或软件工具箱的支持下,运用先进的开发技术、工具和管理方法来提高( D )的能力。 A.组织软件 B.软件质量 C.设计软件 D.开发软件 12.软件开发规范的体现和指南是(A)。
A.文档 B.程序 C.需求分析 D.详细设计参考
《软件工程》习题参12
1、软件工程管理包括哪些内容?
答:软件工程管理的具体内容包括对开发人员、组织机构、用户、文档资料等方面的管理。
2、软件项目计划中包括哪些内容? 答:软件项目计划内容包括: (1)范围 (2)资源 (3)进度安排 (4)成本估算 (5)培训计划
3、软件开发成本估算方法有哪几种? 答:软件开发成本估算的方法主要有: (1)自顶向下估算方法 (2)自底向上估算方法 (3)差别估算方法
以及专家估算法、类推估算法、算式估算法等几类方法。 4、画出表示软件任务开发并行性的任务网络图。 见教材图12-3。
5、什么是软件配置管理?什么是基线?
答:软件配置管理,简称SCM(Software Configuration Management),是指一组管理整个软件生存期各阶段中变更的活动。软件配置管理技术可以使软件变更所产生的错误达到最小并最有效地提高生产率。
基线:是软件生存期中各开发阶段的一个特定点,它的作用是把
开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果。
6、请叙述软件工程过程中版本控制与变更控制处理过程。 答:本题可见教材图12-7和12-8。
7、软件工程标准化的意义是什么?都有哪些软件工程标准? 答:软件工程标准化可以为软件工程各个阶段的活动提供统一的行动规范和衡量准则,使得各种工作都能有章可循。 软件工程标准根据其制定机构与适用范围,可分为: 1、国际标准 2、国家标准 3、行业标准 4、企业规范 5、项目(课题)规范
8、请说明软件文档的作用?软件开发项目生存期各阶段包含哪些文档?
答:软件文档的作用是: 提高软件开发过程的能见度; 提高开发效率;
作为开发人员阶段工作成果和结束标志; 记录开发过程的有关信息便于使用与维护; 提供软件运行、维护和培训有关资料;
便于用户了解软件功能、性能。
软件开发项目生存期各阶段应包括的文档包括如下: 可行性研究报告 项目开发计划 软件需求说明书 数据要求说明书 测试计划 概要设计说明书 详细设计说明书 用户手册 操作手册 测试分析报告 开发进度月报 项目开发总结 程序维护手册
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务