-
- 素材大小:
- 954.50 KB
- 素材授权:
- 免费下载
- 素材格式:
- .ppt
- 素材上传:
- ppt
- 上传时间:
- 2018-05-10
- 素材编号:
- 110080
- 素材类别:
- 学校PPT
-
素材预览
这是一个关于软件工程导论心得PPT,主要介绍估算软件规模、工作量估算、估算开发时间。第13章 软件项目管理 13.3.1 估算开发时间 Brooks规律:向一个已经延期的项目增加人力,只会使得它更加延期。随着开发小组规模的扩大,个人生产率将下降,以至开发时间与从事开发工作的人数并不成反比关系。出现这种现象主要有下述两个原因:当小组变得更大时,每个人需要用更多的时间与组内其他成员讨论问题、协调工作,因此增加了通信开销。如果在开发过程中增加小组人员,则最初一段时间内项目组总生产率不仅不会提高反而会下降。这是因为新成员在开始时不仅不是生产力,而且在他们学习期间还需要花费小组其他成员的时间。 项目组规模与项目组总生产率的关系当几个人共同承担软件开发项目中的某一任务时,人与人之间必须通过交流来解决各自承担任务之间的接口问题,即所谓通信问题。通信需花费时间和代价,会引起软件错误增加,降低软件生产率。若两个人之间需要通信,则称在这两个人之间存在一条通信路径。如果一个软件开发小组有 n 个人,每两人之间都需要通信,则总的通信路径有 n(n-1)/2 (条)。 设一个人单独开发软件,生产率是5000行/人年。若 4 个人组成一个小组共同开发这个软件,则需要 6条通信路径。若在每条通信路径上耗费的工作量是 250 行/人年。则小组中每个人的软件生产率降低为 5000-6×250/4 = = 5000-375 = = 4625 行/人年。从上述分析可知,一个软件任务由一个人单独开发,生产率最高;而对于一个稍大型的软件项目,一个人单独开发,时间太长。因此软件开发小组是必要的。但是,开发小组不宜太大,成员之间避免太多的通信路径。在开发进程中,切忌中途加人,避免太多的生产率损失。 任务的确定与并行性当参加同一软件工程项目的人数不止一人的时候,开发工作就会出现并行情形,欢迎点击下载软件工程导论心得PPT哦。
软件工程导论心得PPT是由红软PPT免费下载网推荐的一款学校PPT类型的PowerPoint.
第13章 软件项目管理 13.3.1 估算开发时间 Brooks规律:向一个已经延期的项目增加人力,只会使得它更加延期。随着开发小组规模的扩大,个人生产率将下降,以至开发时间与从事开发工作的人数并不成反比关系。出现这种现象主要有下述两个原因:当小组变得更大时,每个人需要用更多的时间与组内其他成员讨论问题、协调工作,因此增加了通信开销。如果在开发过程中增加小组人员,则最初一段时间内项目组总生产率不仅不会提高反而会下降。这是因为新成员在开始时不仅不是生产力,而且在他们学习期间还需要花费小组其他成员的时间。 项目组规模与项目组总生产率的关系当几个人共同承担软件开发项目中的某一任务时,人与人之间必须通过交流来解决各自承担任务之间的接口问题,即所谓通信问题。通信需花费时间和代价,会引起软件错误增加,降低软件生产率。若两个人之间需要通信,则称在这两个人之间存在一条通信路径。如果一个软件开发小组有 n 个人,每两人之间都需要通信,则总的通信路径有 n(n-1)/2 (条)。 设一个人单独开发软件,生产率是5000行/人年。若 4 个人组成一个小组共同开发这个软件,则需要 6条通信路径。若在每条通信路径上耗费的工作量是 250 行/人年。则小组中每个人的软件生产率降低为 5000-6×250/4 = = 5000-375 = = 4625 行/人年。从上述分析可知,一个软件任务由一个人单独开发,生产率最高;而对于一个稍大型的软件项目,一个人单独开发,时间太长。因此软件开发小组是必要的。但是,开发小组不宜太大,成员之间避免太多的通信路径。在开发进程中,切忌中途加人,避免太多的生产率损失。 任务的确定与并行性当参加同一软件工程项目的人数不止一人的时候,开发工作就会出现并行情形。软件开发进程中设置许多里程碑。里程碑为管理人员提供了指示项目进度的可靠依据。软件工程项目的并行性提出了一系列的进度要求。因为并行任务是同时发生的,所以进度计划表必须决定任务之间的从属关系,确定各个任务的先后次序和衔接,确定各个任务完成的持续时间。项目负责人应注意构成关键路径的任务,即若要保证整个项目能按进度要求完成,就必须保证这些任务要按进度要求完成。 13.3.2 Gantt图? Gantt图(甘特图)是历史悠久、应用广泛的进度计划工具,下面通过一个非常简单的例子介绍这种工具。 13.3.3 工程网络? 当把一个工程项目分解成许多子任务,并且它们彼此间的依赖关系又比较复杂时,仅仅用Gantt图作为安排进度的工具是不够的,不仅难于做出既节省资源又保证进度的计划,而且还容易发生差错。?工程网络是制定进度计划时另一种常用的图形工具,它同样能描绘任务分解情况以及每项作业的开始时间和结束时间,此外,它还显式地描绘各个作业彼此间的依赖关系。因此,工程网络是系统分析和系统设计的强有力的工具。? 在工程网络中用箭头表示作业(例如,刮旧漆,刷新漆,清理等),用圆圈表示事件(一项作业开始或结束)。注意,事件仅仅是可以明确定义的时间点,它并不消耗时间和资源。作业通常既消耗资源又需要持续一定时间。图13.2是旧木板房刷漆工程的工程网络。图中表示刮第1面墙上旧漆的作业开始于事件1,结束于事件2。用开始事件和结束事件的编号标识一个作业,因此“刮第1面墙上旧漆”是作业1—2。? 在工程网络中的一个事件,如果既有箭头进入又有箭头离开,则它既是某些作业的结束又是另一些作业的开始。例如,图13.2中事件2既是作业1—2(刮第1面墙上的旧漆)的结束,又是作业2—3(刮第2面墙上旧漆)和作业2—4(给第1面墙刷新漆)的开始。也就是说,只有第1面墙上的旧漆刮完之后,才能开始刮第2面墙上旧漆和给第1面墙刷新漆这两个作业。因此,工程网络显式地表示了作业之间的依赖关系。? 在图13.2中还有一些虚线箭头,它们表示虚拟作业,也就是事实上并不存在的作业。引入虚拟作业是为了显式地表示作业之间的依赖关系。例如,事件4既是给第1面墙刷新漆结束,又是给第2面墙刷新漆开始(作业4—6)。但是,在开始给第2面墙刷新漆之前,不仅必须已经给第1面墙刷完了新漆,而且第2面墙上的旧漆也必须已经刮净(事件3)。也就是说,在事件3和事件4之间有依赖关系,或者说在作业2—3(刮第2面墙上旧漆)和作业4—6(给第2面墙刷新漆)之间有依赖关系,虚拟作业3—4明确地表示了这种依赖关系。注意,虚拟作业既不消耗资源也不需要时间。 13.3.4 估算进度?画出类似图13.2那样的工程网络之后,系统分析员就可以借助它的帮助估算工程进度了。为此需要在工程网络上增加一些必要的信息。?首先,把每个作业估计需要使用的时间写在表示该项作业的箭头上方。注意,箭头长度和它代表的作业持续时间没有关系,箭头仅表示依赖关系,它上方的数字才表示作业的持续时间。? 其次,为每个事件计算下述两个统计数字:最早时刻EET和最迟时刻LET。这两个数字将分别写在表示事件的圆圈的右上角和右下角,如图13.3左下角的符号所示。 事件的最早时刻是该事件可以发生的最早时间。通常工程网络中第一个事件的最早时刻定义为零,其他事件的最早时刻在工程网络上从左至右按事件发生顺序计算。计算最早时刻EET使用下述三条简单规则:? 考虑进入该事件的所有作业;?对于每个作业都计算它的持续时间与起始事件的EET之和;选取上述和数中的最大值作为该事件的最早时刻EET。? 事件的最迟时刻是在不影响工程竣工时间的前提下,该事件最晚可以发生的时刻。按惯例,最后一个事件(工程结束)的最迟时刻就是它的最早时刻。其他事件的最迟时刻在工程网络上从右至左按逆作业流的方向计算。计算最迟时刻LET使用下述三条规则:考虑离开该事件的所有作业;?从每个作业的结束事件的最迟时刻中减去该作业的持续时间;?选取上述差数中的最小值做为该事件的最迟时刻LET。? 13.3.5 关键路径?图13.3中有几个事件的最早时刻和最迟时刻相同,这些事件定义了关键路径,在图中关键路径用粗线箭头表示。关键路径上的事件(关键事件)必须准时发生,组成关键路径的作业(关键作业)的实际持续时间不能超过估计的持续时间,否则工程就不能准时结束。? 13.3.6 机动时间?不在关键路径上的作业有一定程度的机动余地——实际开始时间可以比预定时间晚一些,或者实际持续时间可以比预计的持续时间长一些,而并不影响工程的结束时间。一个作业可以有的全部机动时间等于它的结束事件的最迟时刻减去它的开始事件的最早时刻,再减去这个作业的持续时间:?机动时间=(LET)结束-(EET)开始-持续时间?对于前述油漆旧木板房的例子,计算得到的非关键作业的机动时间列在表13.6中。? 在工程网络中每个作业的机动时间写在代表该项作业的箭头下面的括弧里(参看图13.4)。在制定进度计划时仔细考虑和利用工程网络中的机动时间,往往能够安排出既节省资源又不影响最终竣工时间的进度表。 13.4.1 民主制程序员组特点 —成员之间关系平等 —根据每个人的能力和经验适当分配 —通过全体人员协商决定项目工作优点 —同等项目参与权,可以激发大家的创造力,利于攻克 难关 —适用于小规模、能力强、有共同工作经历的团队缺点 —缺少权威人士,在意见分歧的情况下很难解决 13.4.2 主程序员组 13.4.3 现代程序员组现代程序员组优缺点优点 —将“主程序员”的职责专一化缺点 —“技术组长”与“行政组长”的职责划分不清 —不能适应大规模的项目现代程序员组-组织结构2 改进方案 13.5.2 软件质量保证措施 软件质量保证(software quality assurance SQA)的措施主要有: 基于非执行的测试(也称为复审或评审),主要用来保证在编码之前各阶段产生的文档的质量;基于执行的测试(即以前讲过的软件测试),需要在程序编写出来之后进行,它是保证软件质量的最后一道防线;程序正确性证明,使用数学方法严格验证程序是否与对它的说明完全一致。 2. 基线 IEEE把基线定义为: 已经通过了正式复审的规格说明或中间产品,它可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变它。基线(Baseline)由一组配置项组成,这些配置项构成了一个相对稳定的逻辑实体。基线中的配置项被“冻结”了,不能再被任何人随意修改(见变更控制规程)。基线通常对应于开发过程中的里程碑(Milestone),一个产品可以有多个基线,也可以只有一个基线。基线的主要属性有:名称、标识符、版本、日期等。通常将交付给客户的基线称为一个“Release”,为内部开发用的基线则称为一个“Build”。 13.6.2 软件配置管理过程 1、 标识 2、 版本控制 3、 变化控制 4、 配置设计 5、状态报告 配置控制是核心: 存取控制(开发库、基线库、产品库) 版本控制 变更控制 产品发布控制 13.6.3 常用配置管理工具 1、 SourceSafe SourceSafe是Microsoft公司推出的配置管理工具,是Visual Studio的套件之一。SourceSafe是国内最流行的配置管理工具,用户量绝对是第一位。 SourceSafe的优点可以用8个字来概括“简单易用,一学就会”,这个优点是Microsoft继承下来的。 虽然SourceSafe并不是免费的,但是在国内人们以接近于零的成本得到它,网上到处可以下载啊。当然Microsoft也不在乎这个小不点的软件,它属于“买大件送小件”的角色。如果你合法地得到Visual Studio,你就得到了免费的SourceSafe。 SourceSafe的主要局限性:只能在Windows下运行,不能在Unix, Linux下运行。SourceSafe不支持异构环境下的配置管理,对用户而言是个麻烦事。这不是技术问题,是微软公司产品战略决定的。适合于局域网内的用户群,不适合于通过Internet连接的用户群,因为SourceSafe是通过“共享目录”方式存储文件的。 2 、CVS CVS 是 Concurrent Version System(并行版本系统)的缩写,它是著名的开放源代码的配置管理工具。 CVS的官方网站是http://www.cvshome.org/ 。官方提供的是CVS服务器和命令行程序,但是官方并不提供交互式的客户端软件。许多软件机构根据CVS官方提供的编程接口开发了各色各样的CVS客户端软件,最有名的当推Windows环境的CVS客户端软件——WinCVS。WinCVS是免费的,但是并不开放源代码。与SourceSafe相比,CVS的主要优点是: SourceSafe有的功能CVS全都有,CVS支持并发的版本管理,SourceSafe没有并发功能。CVS服务器的功能和性能都比SourceSafe高出一筹。 CVS服务器是用Java编写的,可以在任何操作系统和网络环境下运行。CVS深受Unix和Linux 的用户喜爱。Borland公司的JBuilder提供了CVS的插件,Java程序员可以在JBuilder集成环境中使用CVS进行版本控制。 CVS服务器有自己专用的数据库,文件存储并不采用SourceSafe的“共享目录”方式,所以不受限于局域网,信息安全性很好。 CVS的主要缺点在于客户端软件,真可谓五花八门、良莠不齐。Unix和Linux 的软件高手可以直接使用CVS命令行程序,而Windows用户通常使用WinCVS。安装和使用WinCVS显然比SourceSafe麻烦不少,这是令人比较遗憾的。 3、 ClearCase IBM(Rational公司)的ClearCase是软件行业公认的功能最强大、价格最昂贵的配置管理软件。 ClearCase主要应用于复杂产品的并行开发、发布和维护,其功能划分为四个范畴:版本控制、工作空间管理(Workspace Management)、构造管理(Build Management)、过程控制(Process Control)。ClearCase通过TCP/IP来连接客户端和服务器。另外,ClearCase拥有的浮动License可以跨越UNIX和Windows NT平台被共享。 ClearCase的功能比CVS、SourceSafe强大得多,但是其用户量却远不如CVS、SourceSafe的多。主要原因是: ClearCase价格昂贵,如果没有批量折扣的话,每个License大约5000美元。对于中国用户而言,这无疑是天价。 用户只有经过几天的培训后(费用同样很昂贵),才能正常使用ClearCase。如果不参加培训的话,用户基本上不可能无师自通。 13.7 能力成熟度模型 1、概述 1) CMM是什么 CMM(Capability Maturity Model)是用于衡量软件过程能力的事实上的标准,同时也是目前软件过程改进最好的参考标准。美国卡内基-梅隆大学软件工程研究所(SEI)研制 2) 发展简史 CMM 1.0于1991年制定。 CMM 1.1于1993发布,该版本应用最广泛。 CMM 2.0草案于1997年制定(未广泛应用)。 到2000年,CMM演化成为CMMI(Capability Maturity Model Integration),CMM 2.0成为CMMI 1.0的主要组成部分。 CMMI-SE/SW 1.1(CMMI for System Engineering and Software Engineering)于2002年1月正式推出。 3) CMM重要概念 5个成熟度等级:初始级,可重复级,已定义级,已管理级,持续优化级。 18个关键过程域。关键过程域指出为了达到某个成熟度等级必须要解决的一族问题。 4)能力成熟度模型的基本思想 ---- 帮助软件开发机构建立一个有规律的、成熟的软件过程。改进后的软件过程将开发出质量更好的软件,使更多的软件项目免受时间和费用超支之苦。 5)CMM的策略 ---- 力图改进对软件过程的管理,而在技术方面的改进是其必然的结果。 6)CMM在改进软件过程中所起的作用 ---- 指导软件机构通过确定当前的过程成熟度并识别出对过程改进起关键作用的问题,从而明确过程改进的方向和策略。通过集中开展与过程改进的方向和策略相一致的一组过程改进活动,软件机构便能稳步而有效地改进其软件过程,使其软件过程能力得到循序渐进的提高。 2、 CMM的五个级别 CMM提供了将这些演化步骤组织为5个成熟度级别的框架,这为持续的过程改进提供了基础。成熟度级别定义了在使 软件过程成熟的过程 中的演化状态。 初始级组织:组织通常没有提供开发和维护软件的稳定的环境。项目:当发生危机时,项目通常放弃计划的过程,回复到编码和测试。过程能力:不可预测。(unpredictable) 可重复级组织:将软件项目的有效管理过程制度化,这使得组织能够重复以前项目中的成功实践。项目:配备了基本的软件管理控制。过程能力:严格的。(disciplined) 已定义级组织:在组织范围内开发和维护软件的标准过程被文档化,其中包括软件工程过程和管理过程,它们集成为一个一致的整体。项目:对组织的标准软件过程进行裁剪,来开发它们自己的定义软件过程。过程能力:标准的和一致的。(standard and consistent) 已管理级组织:为软件产品和过程都设定了量化的质量目标。项目:项目减小过程性能的变化性,使其进入可接收的量化边界,从而达到对产品和过程的控制。过程能力:可预言的。(predictable) 持续优化级组织:关注于持续的过程改进。项目:软件过程被评价,以防止过失重复发生,从中获得的教训散布给其它项目。过程能力:持续的改善。(continuously improving) 3、关于五个级别的说明从第1级提升到第2级可能需要几年的时间,在其它级别间提升通常依次需要2年的时间。由于每个级别形成了达到下一个级别的必须的基础,所以跳过级别是达不到预期的目标的。用途 --- 评定(Assessment)组使用CMM,识别组织的长处和弱点; --- 评价(Evaluation)组使用CMM,识别在不同的订约人之间进行风险的选择,并监控合同; --- 管理者和技术人员使用CMM,理解为他们的组织所制定的规划以及实现软件过程改善计划所需的活动; --- 过程改善组使用CMM,作为在他们的组织中定义和改善软件过程的指南。 4、成熟度级别的内部结构 练习题填空题: 1、估算软件规模的两个主要技术分别为:( )和( ),使用代码行技术时,常用的单位为( )。 2、工作量估算的三种基本模型分别为:( )、( )和COCOMO2模型 3、constructive cost model是构造性成本模型,COCOMO2给出了3个层次的估算模型分别为( )、( )和( )。 4、CMM的中文含义是( )。 简答题: 1、简述COCOMO2的5个分级因素? 2、简述Brooks规律? 3、简述人员组织的三种典型组织方式? 4、简述保证软件质量的三个要点? 5、简述软件配置管理的5项任务? 6、简述能力成熟度的5个等级,要求从低到高排序? 7. P.336第7、8、9、10、11、12题
软件工程基础ppt:这是软件工程基础ppt,包括了软件需求分析与定义,可行性研究,可行性研究工作步骤,软件设计,软件测试,软件维护,软件维护的分类,软件过程管理,类图等内容,欢迎点击下载。
实用软件工程ppt:这是实用软件工程ppt,包括了软件工程概述,软件工程的概念,发展历程,软件工程的生命周期,建模的目的等内容,欢迎点击下载。
软件工程类答辩ppt:这是软件工程类答辩ppt,包括了系统介绍,研究背景,需求分析,系统设计,系统实现,总结,致谢等内容,欢迎点击下载。