您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > GIS软件工程-11GIS软件工程管理
第14章GIS软件工程管理•基本内容软件工程管理的内容、人员配置、软件工程的计划管理、ISO9000质量认证体系等。•教学要求:重点掌握成本估算模型和软件项目进度安排。•重点:COCOMO估算模型。•项目:人们通常把一次性的、不重复的、有开始和结束时间限制的一类任务称为项目,它和另一类持续不断一直进行的、重复的、周期性的工作是不同的,项目是一系列活动的集合。这些活动被有机地组合在一起,完成一系列的任务,从而实现一个完整的目标。项目具有以下显著特点:(1)项目从本质上看是临时的任务,而不是一直进行的某个过程。项目在结束时一般会有成果。14.1概述(2)项目通常有非常明确的、可以判别的起点和终点。也就是说,项目是有严格的时间要求的,它必须在一定的时间内完成。(3)项目一般是由用户提出,由项目经理充实内容,然后组成项目小组完成项目。但有时也有例外。(4)有些项目是“实验性的”,比如进行某项开发以满足某行业一种需要或为了某个战略目标,这种项目不能保证会有结果,因为它属于开创性的工作。(5)项目的目的是为了产生前所未有的新东西。因此,项目不能重复前人成果,必须进行发明创造。(6)所有的项目在时间、成本和质量方面都受到严格的要求和约束。所有的项目必须在一定的时间内、有限的资源下高质量地完成。•软件工程管理的内容:1.开发人员软件开发人员分为:项目负责人、系统分析员、高级程序员、程序员、初级程序员、资料员和其他辅助人员。软件开发人员应具备的条件:(1)软件开发人员应经过初始入门职业教育或学历教育,并具有后续的技能发展潜力。(2)通过软件开发资格证书,确保开发人员达到最基本知识、技能的要求;(3)在软件职业执照制度下,建立终身的职业发展体系;(4)通过软件专业组织,规范软件职业道德。软件开发人员应当坚持以下八项原则:(1)公众:软件开发人员应当以公众利益为目标;(2)用户和雇主:在保持与公众利益一致的原则下,软件开发人员应注意满足用户和雇主的最高利益;(3)产品:软件开发人员应当努力保证软件开发的高质量、低成本以及合理的进度;(4)判断:对受他们评估的软件或文档,保持职业的客观性。(5)管理:软件开发人员必须保证对从事或建议的项目做出现实和定量的估算,包括成本、进度、人员、质量和输出,并对估算的不确定性做出评估;(6)专业:在与公众利益一致的原则下,软件开发人员应当推进其专业的完整性和声誉;(7)同行:软件开发人员对同行应持平等、互助和支持的态度;(8)自我:软件开发人员应当参与终生职业实践的学习。2.组织机构(1)主程序员组织机构它由一位主程序员主持计划、协调和复审全部技术活动;一位辅助程序员协助主程序员工作;若干名程序员负责分析和开发活动;可以由一位或几位专家和一位资料员协助软件开发机构的工作。(2)专家组织机构它是由若干专家组成一个开发机构,强调每个专家的才能,充分发挥每个专家的作用。3.用户常见的问题有:(1)不积极,不配合。(2)求快求全。(3)功能变化。对来自用户的这种变化要正确对待:要向用户解释软件工程的规律,并在可能的条件下部分或有条件地满足用户的合理要求。4.控制控制就是掌握被控制的对象,不让它超出规定范围活动,使活动都按预定的计划进行,向预期目标前进。控制包括进度、人员、经费和质量等控制。5.文档资料•GIS的人员配置1.GIS项目经理/技术组(1)GIS应用实施规则。(2)GIS产品规划。(3)软硬件选择。(4)与用户讨论/协商。(5)与用户通信/联系。(6)资金预算与筹集。(7)向顾问组和总经理汇报。2.数据库经理(1)GIS数据库设计。(2)数据库维护和更新。(3)数据产品和地图产品规划。(4)GIS数据库产品。(5)空间数据质量控制。(6)数据获取规划。3.数字化操作员(1)现有源地图编译。(2)地图数字化。(3)属性数据输入。(4)野外摄影测量和遥感数据获取。(5)数字化地图设计。(6)数字化地图产品。4.系统操作员(1)硬件、软件和其他外设的运行。(2)物资管理。(3)程序和数据文件备份。(4)对软件库的管理。(5)支持用户请求。(6)用户权限管理。5.应用分析软件经理(1)系统功能分析。(2)分析现有软件功能。(3)需要开发的功能规划设计。(4)用户平台设计。(5)应用功能开发方案设计。6.程序编写员(1)编写数据转换程序。(2)应用分析软件编程。(3)特定用户菜单开发。(4)解决程序与数据文件之间的接口。工程项目计划的目标是为项目负责人提供一个框架,使之能合理地估算软件开发所需资源、经费和开发进度,并控制软件项目开发过程按此计划进行。软件计划最详尽地描述了软件过程,它包括采用的生命周期模型、开发组织的组织结构、责任分配、管理目标和优先级、所用的技术和CASE工具,以及详细的进度、预算和资源分配。整个计划的基础是工作量估算和完成期限估算。14.2软件工程计划管理•软件开发成本估算1.成本估算方法(1)自顶向下估算方法自顶向下估算方法就是估算人员参照以前完成的项目所耗费的总成本,来推算将要开发的软件的总成本,然后把它们按阶段、步骤和工作单元进行分配。(2)自底向上估计方法自底向上估计方法是将待开发的软件细分,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,得到软件的总开发量。(3)差别估算方法差别估算是将开发项目与一个或多个已完成的类似项目进行比较,找出与某个相类似项目的若干不同之处,并估算每个不同之处对成本的影响,导出开发项目的总成本。(4)专家估算法1)协调人向各专家提供项目规格和估计表格;2)协调人召集小组会各专家讨论与规模相关的因素;3)各专家匿名填写迭代表格;4)协调人整理出一个估计总结,以迭代表的形式返回专家;5)协调人召集小组会,讨论较大的估计差异;6)专家复查估计总结并在迭代表上提交另一个匿名估计;重复4)-6),直到达到一个最低和最高估计的一致。(5)类推估算法1)整理出项目功能列表和实现每个功能的代码行;2)标识出每个功能列表与历史项目的相同点和不同点,特别要注意历史项目做得不够的地方;3)通过步骤1和2得出各个功能的估计值;4)产生规模估计。2.成本估算模型(1)基本COCOMO模型COCOMO(COnstructiveCOstMOdel)模型是Boehm提出的构造性成本模型。基本COCOMO模型估算公式式中,E为开发所需的人力(人月),D为所需的开发时间(月),KLOC为估计提交的代码行数,ab,bb,cb和db是指不同软件开发方式对应的值。导出生产率(代码行/人月)和所需人员数的计算公式:生产率=(KLOC)/E人员数=E/DE为开发所需的人力(人月),D为所需的开发时间(月),KLOC为估计提交的代码行数。(2)中级COCOMO模型类型成本因素成本因素系数取值范围产品属性1.所要求的软件可靠性2.数据库规模3.产品复杂性0.75-1.400.94-1.160.70-1.65计算机属性4.执行时间约束5.主存限制6.虚拟机的易变性7.计算机周转时间1.00-1.661.0-1.560.87-1.300.87-1.15人员属性8.分析员能力9.应用领域中实践经验12.程序员能力12.虚拟机使用经验12.程序语言使用经验1.46-0.711.29-0.821.42-0.701.21-0.901.14-0.95项目属性13.现代程序设计方法14.软件工具的使用15.开发进度限制1.24-0.821.24-0.831.23-1.12中级COCOMO模型估算公式为:其中,E为开发所需的人力(人月),KLOC是估算的代码行数,不同的开发方式所对应的ai,bi值。(3)Putnam成本估算经验模型其中,L是源代码行数;K是开发需用的人力,以人年为单位(1个人年表示1个人工作1年);td是开发需用的时间(以年为单位);Ck是技术水平常数,它的典型值如下:对于较差的开发环境Ck=2500;对于较好的开发环境Ck=10000;对于优越的开发环境Ck=12500。3/43/1dktKCL•软件项目进度安排1.Gantt图Gantt图先将任务分解为子任务,然后用水平线段来描述各个任务及子任务的进度安排。图14.1Gantt图2.工程网络图用具有时间标志的网状图来表示各个任务的分解情况,以及各个子任务之间在进度上的逻辑依赖关系,即工程网络图。工程网络图用圆表示事件,有向弧或箭头表示子任务的进行,箭头上的数字称为权,表示子任务的持续时间,箭头下面括号中的数字表示该任务的机动时间。圆的左边部分中数字表示事件号,右上部分数字表示前一子任务结束或后一子任务开始的最早时刻,右下部分的数字表示前一子任务结束或后一子任务开始的最迟时刻。工程网络图只有一个开始点和一个终止点,开始点没有流入箭头,称为入度为零。终止点没有流出箭头,称为出度为零。图14.2工程网络图•ISO9000强调质量并不是在产品检验中得到的,而是在生产的全过程中形成的。ISO9000-3阐述了供方和需方应该怎样进行有组织的质量管理活动,才能得到较为满意的软件产品;规定了从双方签订开发合同到设计、实现和维护的整个软件生命周期中应该实施的质量管理活动,但是,并没有规定具体的质量管理和质量检验的方法和步骤。14.5ISO9000质量认证体系为确保产品质量,ISO9000要求“在生产的全过程中,影响产品质量的所有因素都要始终处于受控状态”。为使软件产品达到质量要求,ISO9000-3要求软件开发机构建立质量管理体系。首先要求明确供需双方的职责,针对所有可能影响软件质量的•ISO9000-3标准ISO9000-3的全称是“质量管理和质量保证标准第三ISO9000-3是一个与软件生命周期相关的、对开发过程各阶段提供质量保证的质量管理体系,由质量管理体系框架、质量管理体系的生命周期活动、质量管理体系的支持活动等部分组成。标准中规定的各项质量活动都要求以文档作为各阶段活动的结果,文档在标准中占有十分重要的地位,可以说ISO9000-3标准是文档驱动的。•在这部分中规定了供需双方的管理职责,并要求供方建立一个用文件规定的质量管理体系,该体系应该是一个贯穿于整个软件生命周期的综合过程,以便在软件开发过程中保证质量,而不是在开发过程结束时才发现质量问题。标准强调,应该防止发生质量问题,而不是在发生了质量问题之后依靠纠正措施来解决问题。标准中还包括,内部质量审核步骤和纠正措施等内容。•质量管理体系的生命周期活动通常,一个软件开发项目按照某种生命周期模型进行组织,并根据所采用的生命周期模型的特点来计划和实施与质量保证有关的活动。这部分按照软件生命周期过程描述了有关的质量管理活动,其中包括合同评审、需方的需求规格说明、开发计划、质量管理计划、设计与实现、测试和确认、验收、复制/交付和安装、维护等。•在标准中规定的支持活动有:配置管理;文档控制;度量;规则、惯例和约定;工具和技术;采购;配套的培训等活动。•能力成熟度模型(CapabilityMaturityModelforSoftware)的基本思想是,因为问题是由我们管理软件过程的方法不当引起的,所以新软件技术的运用并不会自动提高生产率和软件质量。能力成熟度模型有助于软件开发组织建立一个有规律的、成熟的软件过程。改进后的过程将开发出质量更好的软件,使更多的软件项目免受时间和费用超支之苦。14.6CMM模型软件过程包括各种活动、技术和工具,因此,它实际上既包括了软件生产的技术方面又包括了管理方面。CMM策略力图改进软件过程的管理,而在技术方面的必须记住,对软件过程的改进不可能在一夜之间完成,CMM是以增量方式逐步引入变化的。CMM明确地定义了5个不同的成熟度等级,一个软件开发组织可用一系列小的改良性步骤向更高的成熟度等级迈进。•能力成熟度模型的结构(1)成熟度等级(MaturityLevels):一个成熟度等级是在朝着实现成熟软件过程进化途中的一个妥善定义的平台。五个成熟度等级构成了CMM(2)过程能力(ProcessCapability):软件过程能力描述,通过遵循软件过程能实现预期结果的程度。一个组织的
本文标题:GIS软件工程-11GIS软件工程管理
链接地址:https://www.777doc.com/doc-3889954 .html