软件工程导论(第五版)课件-第13章_第1页
软件工程导论(第五版)课件-第13章_第2页
软件工程导论(第五版)课件-第13章_第3页
软件工程导论(第五版)课件-第13章_第4页
软件工程导论(第五版)课件-第13章_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第13章 软件项目管理一、复习要求1. 了解软件过程的概念、软件过程框架和软件过程模型。2. 了解软件项目管理的过程。3. 掌握LOC估算和FP估算的方法,分解技术和工作量估算方法。4. 了解软件成本估算的概念,掌握COCOMO成本估算方法。5. 了解软件进度安排方法及图形工具。6. 了解软件质量管理的概念7了解软件配置管理的概念二、内容提要1. 软件过程图 软件工程层次软件过程的概念质量关注点方法工具过程软件工程是一种层次化的技术,如图9.1所示。软件工程的过程层是将结合在一起的凝聚力量,使得计算机软件能够及时、合理地被开发出来。软件过程定义了一组关键过程域(KPAs),它们构成软件项目管理

2、的基础,并规定了技术方法的采用、工程产品(模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的管理以及适当的变更控制。任务集合软件过程是软件生存期中的一系列相关软件工程活动的集合。每一个软件过程又是由一组工作任务、项目里程碑、软件工程产品和交付物以及质量保证(SQA)点等组成。2、软件项目管理过程软件项目管理包括进度管理、成本管理、质量管理、人员管理、资源管理、标准化管理。管理的对象是进度、系统规模及工作量估算、经费、组织机构和人员、风险、质量、作业和环境配置等。软件项目管理所涉及的范围覆盖了整个软件生存期。为使软件项目开发获得成功,一个关键问题是必须对软件开发项目的工作范围、可能遇到

3、的风险、需要的资源(人、硬软件)、要实现的任务、经历的里程碑、花费工作量(成本),以及进度的安排等等做到心中有数。而软件项目管理可以提供这些信息。通常,这种管理在技术工作开始之前就应开始,而在软件从概念到实现的过程中继续进行,并且只有当软件开发工作最后结束时才终止。(1) 启动一个软件项目在制定软件项目计划之前,必须先明确项目的目标和范围、考虑候选的解决方案、标明技术和管理上的要求。有了这些信息,才能确定合理、精确的成本估算,实际可行的任务分解以及可管理的进度安排。项目的目标标明了软件项目的目的但不涉及如何去达到这些目的。范围标明了软件要实现的基本功能,并尽量以定量的方式界定这些功能。候选的解

4、决方案虽然涉及方案细节不多,但有了方案,管理人员和技术人员就能够据此选择一种“好的”方法,给出诸如交付期限、预算、个人能力、技术界面及其它许多因素所构成的限制。(2) 制定项目计划制定计划的任务包括:§ 估算所需要的人力(通常以人月为单位)、项目持续时间(以年份或月份为单位)、成本(以元为单位)。§ 作出进度安排,分配资源,建立项目组织及任用人员(包括人员的地位、作用、职责、规章制度等),根据规模和工作量估算分配任务。§ 进行风险分析,包括风险识别、风险估计、风险优化、风险驾驭策略、风险解决和风险监督。这些步骤贯穿在软件工程过程中。§ 制定质量管理指标:

5、如何识别定义好的任务?管理人员对结束时间如何掌握,并如何识别和监控关键路径以确保结束?对进展如何度量?以及如何建立分隔任务的里程碑。§ 编制预算和成本。§ 准备环境和基础设施等。(3) 计划的追踪和控制一旦建立了进度安排,就可以开始着手追踪和控制活动。由项目管理人员负责在过程执行时监督过程的实施,提供过程进展的内部报告,并按合同规定向需方提供外部报告。对于在进度安排中标明的每一个任务,如果任务实际完成日期滞后于进度安排,则管理人员可以使用一种自动的项目进度安排工具来确定在项目的中间里程碑上进度误期所造成的影响。可对资源重新定向,对任务重新安排,或者(做为最坏的结果)可以修改

6、交付日期以调整已经暴露的问题。用这种方式可以较好地控制软件的开发。(4) 评审和评价计划的完成程度项目管理人员应对计划完成程度进行评审,对项目进行评价。并对计划和项目进行检查, 使之在变更或完成后保持完整性和一致性。(5) 编写管理文档项目管理人员根据合同确定软件开发过程是否完成。如果完成,应从完整性方面检查项目完成的结果和记录,并把这些结果和记录编写成文档并存档。 3、面向功能的度量面向功能的软件度量是对软件和软件开发过程的间接度量。面向功能度量的关注点在于程序的“功能性”和“实用性”,而不是对LOC计数。一种典型的生产率度量法叫做功能点度量,该方法利用软件信息域中的一些计数度量和软件复杂性

7、估计的经验关系式而导出功能点FPs(Function Points)。功能点通过填写表格来计算。首先确定五个信息域的特征,并在表格中相应位置给出计数。信息域的值以如下方式定义:§ 用户输入数:各个用户输入是面向不同应用的输入数据,对它们都要进行计数。输入数据应有别于查询数据,它们应分别计数。§ 用户输出数:各个用户输出是为用户提供的面向应用的输出信息,它们均应计数。这里的输出是指报告,屏幕信息,错误信息等,在报告中的各数据项不应再分别计数。§ 用户查询数:查询是一种联机输入,它导致软件以联机输出的方式生成某种即时的响应。每一个不同的查询都要计数。§ 文件

8、数:每一个逻辑主文件都应计数。这里的逻辑主文件,是指逻辑上的一组数据,它们可以是一个大的数据库的一部分,也可以是一个单独的文件§ 外部接口数:对所有被用来将信息传送到另一个系统中的机器可读写的接口(即磁带或磁盘上的数据文件)均应计数。计数 表 功能点度量的计算信息域参数加 权 因 数 简单 中间 复杂用户输入数´346=用户输出数´457=用户查询数´346=文 件 数´71015=外部接口数´5710=加权计数总 计 数 一旦收集到上述数据,就可以计算出与每一个计数相关的复杂性值。使用功能点方法的机构要自行拟定一些准则以确定一个特定

9、项是简单的、平均的还是复杂的。 4、COCOMO模型(COnstructive COst MOdel)这是由TRW公司开发。Boehm提出的结构型成本估算模型。是一种精确、易于使用的成本估算方法。在该模型中使用的基本量有以下几个:DSI(源指令条数)定义为代码或卡片形式的源程序行数。若一行有两个语句,则算做一条指令。它包括作业控制语句和格式语句,但不包括注释语句。KDSI1000DSI。MM(度量单位为人月)表示开发工作量。TDEV(度量单位为月)表示开发进度。它由工作量决定。5、 进度安排的方法软件项目的进度安排与任何一个多任务工作的进度安排基本差不多,因此,只要稍加修改,就可以把用于一般开

10、发项目的进度安排的技术和工具应用于软件项目。软件项目的进度计划和工作的实际进展情况,需要采用图示的方法描述,特别是表现各项任务之间进度的相互依赖关系。以下介绍几种有效的图示方法。在这几种图示方法中,有几个信息必须明确标明:· 各个任务的计划开始时间,完成时间;· 各个任务完成的标志(即文档编写和评审);· 各个任务与参与工作的人数,各个任务与工作量之间的衔接情况;· 完成各个任务所需的物理资源和数据资源。 甘特图 PERT技术和CPM方法PERT技术叫做计划评审技术,CPM方法叫做关键路径法,它们都是安排开发进度,制定软件开发计划的最常用的方法。它们都采

11、用网络图来描述一个项目的任务网络,也就是从一个项目的开始到结束,把应当完成的任务用图或表的形式表示出来。通常用两张表来定义网络图。一张表给出与一特定软件项目有关的所有任务(也称为任务分解结构),另一张表给出应当按照什么样的次序来完成这些任务(也称为限制表)。PERT技术和CPM方法都为项目计划人员提供了一些定量的工具,以:§ 确定关键路径,即决定项目开发时间的任务链。§ 应用统计模型,对每一个单独的任务确定最可能的开发持续时间的估算值。§ 计算边界时间,以便为具体的任务定义时间窗口。边界时间的计算对于软件项目的计划调度是非常有用的。图 开发模块A、B、C的任务网络

12、图例如,某一开发项目在进入编码阶段之后,考虑安排三个模块A、B、C的开发工作。其中,模块A是公用模块,模块B与C的测试有赖于模块A调试的完成。模块C是利用现成已有的模块,但对它要在理解之后做部分修改。最后直到A、B和C做组装测试为止。这些工作步骤按上图来安排。在此图中,各边表示要完成的任务,边上均标注任务的名字,如“A编码”表示模块A的编码工作。边上的数字表示完成该任务的持续时间。 图中有数字编号的结点是任务的起点和终点,在图中,0号结点是整个任务网络的起点,8号结点是终点。图中足够明确地表明了各项任务的计划时间,以及各项任务之间的依赖关系。三、例题分析一、 选择题1. 软件项目管理的对象是(

13、B)。A) 软件开发人员B) 软件工程项目C) 软件开发过程 D) 软件开发速度2. 以下对软件项目管理的任务和目标最准确的描述是(D)。A) 明确软件开发项目的工作范围、可能遇到的风险、需要的资源B) 明确软件开发中要实现的任务和需要经历的里程碑C) 明确所需的工作量以及进度安排D) 以上所有答案3. 在软件管理资源要求中,最为重要的、起决定性的资源是以下哪种资源(C)。A) 硬件资源 B) 软件资源C) 人力资源 D) 软件复用性及软件部件库4. 开发一个软件工程的第一步是(A)。A) 可行性研究 B) 组织开发人员 C) 购买开发工具 D) 开发任务指定5. 自底向上的估计法的特点是(B

14、)。A) 简单、工作量小、误差大 B) 精度高,但缺少子任务(模块)间的联系C) 估算较精确,但区分类比较困难D) 复杂、不可行,一般不采用此种方法6. 对一个软件工程来说,占总工作量的百分比最大的工作是(D)。A) 需求分析 B) 软件设计 C) 编码工作 D) 测试和调试工作7. CMM表示(A)。A) 软件过程成熟度模型 B) 软件过程工业化控制C) 国际软件质量认证 D) 软件统一性标准二、判断题1. 软件项目管理是对软件项目的开发管理,是对整个软件生存期的所有活动进行管理。()2. 软件项目管理的主要任务有:软件可行性分析与成本估算、软件生产率及质量管理、软件售后管理。(×) 3. CMM是指导软件开发的一种面向对象的新技术。(×)4. CMM将软件过程的成熟度分为以下五个级别:初始级、可重复级、已定义级、 已管理级和优化级。()        三、问答题1. 简述一个成熟的软件机构应具有的特点。答:建立了机构级的软件开发和维护过程。软件人员对其有较好的理解

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论