软件工程考核知识点-第12章-软件工程管理
- 格式:doc
- 大小:39.00 KB
- 文档页数:6
软件工程考核知识点-第12章-软件工程管理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年3月4月5月6月7月8月9月10月11月12月前期准备系统调查系统分析系统设计系统实施系统试运行系统测试系统验收系统正式运行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.文档的分类软件开发项目生存期各阶段应包括的文档以及各类人员的关系如下:管理人员开发人员维护人员用户可行性研究报告项目开发计划软件需求说明书数据要求说明书测试计划概要设计说明书详细设计说明书用户手册操作手册测试分析报告开发进度月报项目开发总结程序维护手册。