《软件工程——理论、方法与实践》课件第14章.ppt

上传人(卖家):momomo 文档编号:7924364 上传时间:2024-09-04 格式:PPT 页数:94 大小:429KB
下载 相关 举报
《软件工程——理论、方法与实践》课件第14章.ppt_第1页
第1页 / 共94页
《软件工程——理论、方法与实践》课件第14章.ppt_第2页
第2页 / 共94页
《软件工程——理论、方法与实践》课件第14章.ppt_第3页
第3页 / 共94页
《软件工程——理论、方法与实践》课件第14章.ppt_第4页
第4页 / 共94页
《软件工程——理论、方法与实践》课件第14章.ppt_第5页
第5页 / 共94页
点击查看更多>>
资源描述

1、1 1第14章 软件计划管理第14章 软件计划管理14.1 软件项目管理14.2 成本估算14.3 软件配置管理14.4 IBM Rational 软件配置管理工具本章小结习题2 2第14章 软件计划管理14.1 软件项目管理 14.1.1 软件项目的特点 与其他项目相比,软件项目有其特殊性,主要表现在:(1)软件产品的不可见性。软件开发不同于其他产品的制造,其整个过程都是设计过程,其开发过程和产品既看不见又摸不着。因此,软件项目具有特别的复杂性和抽象性。3 3第14章 软件计划管理(2)项目的高度不确定性。软件的不可见性给项目的估算和计划带来了极大的不确定性,项目管理者也难以预见问题的出现,

2、容易造成项目的预定计划与实际情况存在较大的偏差。另外,计算机技术的飞速发展使得软件项目的技术更新非常快,过去积累的经验教训难以在新的项目中发挥作用。(3)软件过程的多变化性。在软件开发过程中,需求分析、体系结构设计、详细设计、软件测试和交付等各个工作环节通常是一个典型的迭代和增量发展的动态变化过程。因此,软件项目的开发过程具有复杂性、多样性和不稳定性的特点,特别是客户需求的不确定性和多变性往往给软件开发带来极大的困难和风险。4 4第14章 软件计划管理(4)软件人员的高流动性。在软件开发过程中不需要使用大量的物质资源,人力资源往往是关键性的因素。由于软件产业发展迅速,人才需求旺盛,因此开发人员

3、,尤其是项目的核心技术人才流动性高,这也给项目管理带来了很大的风险。总而言之,“复杂”和“变化”给软件项目的管理带来了相当大的难度,降低复杂性和控制变化成为软件项目管理面临的关键问题。5 5第14章 软件计划管理软件项目要想成功,需要大量的因素共同推动。调查研究表明,对信息系统项目成功起关键作用的最重要因素如下:清楚地界定目标及项目任务。高层管理者的支持。优秀的项目经理。有能力的项目团队。充足的资源。客户的参与协商。良好的沟通。对客户的积极反应。适当的监控和反馈。正确的技术。6 6第14章 软件计划管理14.1.2 软件项目管理活动 1项目启动在项目启动阶段,项目管理者需要与客户一起定义系统的

4、范围,组建项目的开发团队,并建立项目的基础设施,具体活动内容包括:确定项目范围、组建项目团队和建立项目环境。首先,要求项目管理者了解客户的实际需求,从功能、性能和交付要求的角度定义软件的范围,研究系统的可行性和可能的解决方案,并与客户在软件范围、验收标准和交付日期等方面达成正式的协议。7 7第14章 软件计划管理其次,项目管理者根据系统任务的要求组织开发团队,并明确每一位成员的角色和职责。另外,项目管理者应与项目团队一起,建立软件开发所需的基础设施,包括网络环境、软件系统、配置管理工具、文档模板、会议程序和沟通系统等。8 8第14章 软件计划管理2项目规划在项目规划阶段,项目管理者对于项目的资

5、源、成本和进度进行合理估算,制定软件开发计划,主要包括确定项目活动、预算项目成本和制定进度计划等活动。项目管理者需要明确项目的各种活动、里程碑和可交付的文档,确定各种活动之间的依赖关系和执行顺序,估计软件开发所需要的资源;项目管理者还应根据每项活动所需的资源进行成本估算,确定项目的成本预算;并估算完成每一项活动所需花费的时间,制定出合理的开发进度计划,以确保项目在预定时间、预算资金与可利用资源的约束条件下完成。9 9第14章 软件计划管理3项目实施在项目实施阶段,项目管理者执行项目计划,及时发现和纠正实际情况与计划的偏差。具体活动内容包括:监控项目执行、管理项目风险和控制项目变更。项目管理者需

6、要跟踪项目的执行情况,综合评价整个项目的实际进展,及时发现和报告实际情况与计划的偏差,并在必要的情况下采取纠正行动。1010第14章 软件计划管理项目管理者应该识别可能造成项目进度推迟或预算超支的潜在问题,并采取有效的风险管理策略,以减少潜在问题发生的可能性和影响。任何项目都不可避免地要发生变更,项目管理者应该建立有效的变更控制系统,包括变更控制委员会、软件配置管理和项目沟通体系,以便对项目变更进行控制和管理。1111第14章 软件计划管理4项目收尾在项目收尾阶段,项目团队完成项目的交付,并进行项目总结,主要活动包括:客户验收项目、安装培训软件、总结项目经验。根据项目协议中规定的验收标准,客户

7、对所交付的软件产品进行评价,最终正式接受产品;项目团队在目标环境中安装软件系统,培训用户使用系统,并移交文档;项目团队分析和总结项目的经验教训,避免在以后的软件项目中犯同样的错误,不断提高软件开发管理水平。1212第14章 软件计划管理综上所述,软件项目管理不仅涉及软件开发过程的各个方面,而且包括开发前期的立项阶段和软件运行以及项目评价阶段的工作,强调了软件项目的生命周期全过程和全方位的管理,强调软件开发队伍与软件用户之间的沟通。1313第14章 软件计划管理软件项目管理的主要职能包括:(1)制定计划。规定待完成的任务、要求、资源、人力和进度等。(2)建立组织。为实施计划、保证完成任务,需要建

8、立分工明确的责任制机构。(3)配备人员。任用各种层次的技术人员和管理人员。(4)指导。鼓励和动员软件人员完成所分配的工作。(5)检验。对照计划或标准,监督、控制和检查实施情况。1414第14章 软件计划管理14.1.3 软件计划和进度安排在软件开发过程中,软件项目计划处于十分重要的地位,涉及实施项目的各个环节,是有条不紊地开展软件项目活动的基础,是跟踪、监督、评审计划执行情况的依据。没有完善的工作计划常常会导致事倍功半,或者使项目在质量、进度和成本上达不到要求,甚至使软件项目失败。因此,制定周密、简洁和精确的软件项目计划是成功开发软件产品的关键。1515第14章 软件计划管理软件项目计划的目标

9、是提供一个能使项目管理人员对资源、成本和进度做出合理估算的框架。这些估算应当在软件项目开始的一个时间段内做出,并随着项目的进展定期更新。具体地讲,软件项目计划的主要内容包括确定软件范围,确定需要进行哪些活动,明确每项活动的职责,明确这些活动的完成顺序,估算资源、成本和进度,制定项目计划,编排进度等。1616第14章 软件计划管理1确定软件范围确定软件范围是软件项目计划的首要任务,是制定软件开发计划的根据,是整个软件生命周期中估算、计划、执行和跟踪软件项目活动的基础。因此,应该从管理角度和技术角度出发,对软件工程中分配给软件的功能和性能进行评价,确定明确的可理解的项目范围。具体地讲,软件范围包括

10、功能、性能、限制、接口和可靠性。软件范围的确立首先需要说明项目的目标与要求,给出该软件的主要功能描述(只涉及高层和较高层的系统功能),指明总的性能特征及其约束条件。1717第14章 软件计划管理在估算项目之前,应对软件的功能进行评价,并对其进行适当的细化以便提供更详细的细节。由于成本和进度的估算都与功能有关,因此常常采用功能分解。软件性能的考虑包括处理和响应时间的需求。约束条件则标识外部硬件、可用存储器或其他现行系统的限制,如主存、数据库、通信速率和负荷限制等。功能、性能和约束必须在一起进行评价。因为,当性能不同时,为实现同样的功能,开发工作量可能相差一个数量级。1818第14章 软件计划管理

11、其次,给出系统接口描述与该软件有关的其他系统之间的关系。对于每个接口都要考虑其性质和复杂性,以便确定对开发资源、成本和进度的影响。接口可以细分为:运行软件的硬件(如处理机和外设)以及由该软件控制的各种间接设备;必须与该软件连接的现有软件(如操作系统、数据库、公用应用软件等);通过终端或输入/输出设备使用该软件的操作人员。同时,软件范围还必须描述软件质量的某些因素,如可靠性、实时性、安全性等方面的要求。1919第14章 软件计划管理2估算项目软件项目计划的第二个任务就是估算该软件项目的规模及完成该软件项目所需的资源、成本和进度。项目规模的度量可以是软件的功能点、特征点、代码行的数目。规模估计涉及

12、的产品和活动有:运行软件和支持软件,可交付的和不可交付的产品,软件和非软件工作产品(如文档)、验证和确认工作产品的活动。为便于估计项目规模,需要将软件工作产品分解到满足估计对象所需要的粒度。2020第14章 软件计划管理为了使开发项目能够在规定的时间内完成,而且不超过预算,工作量与成本的估算和管理控制是关键。但由于影响软件工作量和成本的因素众多,因此对项目的工作量、人员配置和成本的估算,有一定难度,其方法目前还不太成熟。如果可能,应利用类似项目的经验,导出各种活动的时间段,做出工作量、人员配置和成本估算在软件生命周期上的分布。项目所需资源包括人力资源、硬件资源和软件资源。对每种资源都应说明资源

13、的描述、资源的有效性、资源的开始时间和持续时间。后两个特性又统称为时间窗口。2121第14章 软件计划管理软件项目是智力密集、劳动密集型项目,受人力资源影响最大。项目成员的结构、责任心、能力和稳定性对项目质量以及是否成功有着决定性的影响。因此,在项目计划中,必须认真考虑人员的技术水平、专业、人数以及在开发过程各阶段中对各种人员的需要。对于具有一定规模的项目,在软件开发的前期和后期,即软件计划与需求分析阶段和软件检验、评价与验收阶段,管理人员和高级技术人员需要投入大量精力,而初级技术人员参与较少。在详细设计、编码和单元测试阶段,大量的工作由初级技术人员完成,高级人员主要进行技术把关。2222第1

14、4章 软件计划管理在软件开发中,硬件也是一种软件开发工具。硬件资源包括宿主机(指软件开发阶段所使用的计算机和外围设备)、目标机(指运行所开发软件的计算机和外围设备)、其他硬件设备(指专用软件开发时所需要的特殊硬件资源)。在软件开发过程中,需要使用许多软件工具来帮助软件开发,这些软件工具就是软件资源。主要的软件工具有业务数据工具、项目管理工具、支持工具、分析和设计工具、编程工具、组装和测试工具、原型化和模拟工具、维护工具、框架工具等。2323第14章 软件计划管理为了提高软件生产率和软件质量,应该建立可复用的软件标准件/部件库。当需要时,根据具体情况,对软件部件稍做加工、修改,就可以构成所需的软

15、件。但有时在修改时可能出现新的问题,所以此时应特别小心。2424第14章 软件计划管理3编制项目进度表项目进度表与软件产品的规模估计、软件工作量和成本估算有关。在编制软件进度表时,若有可能,要利用类似项目的经验。应注意的是:软件进度表受规定的里程碑日期、关键的相关日期及其他限制,软件进度表中的活动要有合适的时间间隔,里程碑要以适当的时间长度分开。2525第14章 软件计划管理为了让项目组成员各负其责,应明确规定他们在项目组分担的责任。一种有效的方法就是绘制技术编制表及责任表,在项目开始时就要恰当地搭配好人员、技术及工作任务。随着项目的进展,有可能要把已分的工作再细分或进行新的调整,为此,项目经

16、理需要了解项目组的每个成员,清楚他们的特长、经验以及掌握的技术情况。2626第14章 软件计划管理首先,按照每个成员对专业领域的熟悉程度打分,形成专业领域技术编制表,如表14.1所示。具体方法是,假设将专业领域分为五种:系统分析员、系统设计员、程序员、测试员、硬件工程师,并将最高分定为5分。然后根据每个成员对上述专业领域的熟悉程度打分,熟悉程度越高,得分越高。这样就可以对项目组成员及技术状况一目了然,并据此分配工作。2727第14章 软件计划管理2828第14章 软件计划管理项目经理根据上述技术编制表,结合项目实际需求可以制定责任表,在责任表中确定项目的主要负责人和辅助负责人。每项任务只需要一

17、个人负主要责任,但可以安排几个项目组成员辅助他。对于具有一定规模的软件项目,通常参加的不止一人,这样开发工作就会出现并行情形。图14.1给出了一个典型的由多人参加的软件项目的任务图。2929第14章 软件计划管理图14.1 软件项目的并行性3030第14章 软件计划管理在软件项目的各种活动中,首先是进行项目的需求分析和评审,此项工作是以后工作的基础。只要软件的需求分析通过评审,系统概要设计和测试计划制定工作就可以并行进行。如果系统模块结构已经建立,则对各个模块的详细设计、编码、单元测试等工作就可以并行进行。等到每一个模块都已经测试完成,就可以组装、测试,最后确认测试,以便软件交付。3131第1

18、4章 软件计划管理从图14.1所示可以看出,在软件开发过程中设置了许多里程碑。里程碑为管理人员提供了指示项目进度的可靠依据。当一个软件工程任务成功地通过了评审并产生了文档,就完成了一个里程碑。软件项目并行性对进度提出了要求,要求进度计划必须决定任务之间的从属关系,确定各任务的先后次序和衔接,确定各任务完成的持续时间,确定构成关键路径的任务。3232第14章 软件计划管理制定项目进度计划的第一步就是估计每项活动从开始到完成所需的时间,即估计工期。工期估计和预算分摊估计可以采用两种办法:一是自上而下法,即在项目建设总时间和总成本之内按照每一工作阶段的相关工作范围来考察,按项目总时间或总成本的一定比

19、例分摊到各个工作阶段中;二是自下而上法,由每一工作阶段的具体负责人进行工期和预算估计,然后再进行平衡和调整。3333第14章 软件计划管理经验表明,行之有效的方法是由某项工作的具体负责人进行估计,因为这样做既可以得到该负责人的承诺,产生有效的参与激励,又可以减少由项目经理独自估计所有活动的工期所产生的偏差。在此估计的基础上,项目经理完成各工期的累计和分摊预算的累计,并与项目总建设时间和总成本进行比较,根据一定的规则进行调整。3434第14章 软件计划管理在进度安排中,为了清楚地表达各项任务之间进度的相互依赖关系,通常采用图示方法。常用的图示方法有甘特图和网络图。在这些图示方法中,必须明确标明以

20、下信息:(1)各个任务计划的开始时间、完成时间。(2)各个任务完成的标志。(3)各个任务与参与工作的人数,各个任务与工作量之间的衔接情况。(4)完成各个任务所需的物理资源和数据资源。3535第14章 软件计划管理甘特图又称为条形图,如图14.2所示。用水平线段表示任务的工作阶段,线段的起点和终点分别对应着任务的开始时间和完成时间,线段的长度表示完成任务所需的时间。甘特图的优点是标明了各任务的计划进度与当前进度,能动态地反映软件开发进展情况,缺点是难以反映多个任务之间存在的复杂的逻辑关系。3636第14章 软件计划管理图14.2 甘特图3737第14章 软件计划管理网络计划是一种在项目的计划、进

21、度安排和控制工作中很有用的技术,它由许多相互关联的活动组成。两种网络计划方法:计划审评技术和关键路径法,都是应用网络图来表明活动的顺序流程以及它们之间的相互关系。通常用两张图来定义网络图,一张图绘出某一特定软件项目的所有任务即任务分解结构,另一张图给出应该按照什么次序来完成这些任务,给出各个任务之间的衔接关系。如图14.3为旧木板房刷漆的工程网络图。图中111为刷漆工程中分解得到的不同任务。3838第14章 软件计划管理图14.3 旧木板房刷漆的工程网络图3939第14章 软件计划管理14.2 成 本 估 算14.2.1 软件规模估算软件规模估算(Software Size Estimatio

22、n)是在软件工作产品没有完成之前对软件工程产品的估算。软件规模是软件项目可量化的结果,可以直接采用代码行LOC(Line of Code)来表示,也可以间接采用功能点FP(Function Points)或对象点OP(Object Points)来测算。代码行LOC是指系统交付的源代码行数。对于现代软件系统,显然直接估算代码行不太容易,而功能点FP和对象点OP则是基于交付系统相关功能度的测算,相对容易提取。4040第14章 软件计划管理功能点FP可以根据外部的输入输出、用户界面、与外部系统的接口、系统使用的文件数来确立。对象点OP和功能点类似,主要用于数据库语言、脚本语言构成的系统。OP可以是

23、用户界面的个数、报表个数、构造应用程序的所需要的组件个数。而每个对象点也可以依据其复杂度归为三个级别:简单的、中等的和复杂的。表14.2列出了各类对象点的加权因子。4141第14章 软件计划管理4242第14章 软件计划管理其中,组件是指由如Java、C+这类第三代语言实现的系统模块。对象点的估算应是系统中的对象点乘以对应加权因子的总和。软件成本被认为是软件规模S的函数,而S通常采用源代码行作为计算参数,因此,通常需要根据历史的经验将FP/OP转换为代码行。对于不同的程序设计语言,实现每个FP所需要的平均代码行数AVC会有区别。如对于汇编语言,每个FP可能需要200300行代码行;而对于数据库

24、语言,每个FP只需要240行代码行。因此,软件规模S可以用以下公式计算:S=AVCFP4343第14章 软件计划管理14.2.2 软件成本估算方法对于一个大型的软件项目,由于项目的复杂性,开发成本的估算不是一件简单的事情,要进行一系列的估算处理,主要是靠分解和类推的手段进行。基本估算方法分为如下三类:(1)自顶向下估算。这种方法是从项目的整体出发,进行类推。即估计人员根据已完成项目所耗费的总成本(或总工作量),推算将要开发的软件的总成本(或总工作量),然后按比例将它分配到各开发任务中,再检验它是否能满足要求。这种方法的优点是估算量小,速度快;缺点是对项目中的特殊困难估计不足,估算出来的成本盲目

25、性大,有时会遗漏被开发软件的某些部分。4444第14章 软件计划管理(2)自底向上的估算。这种方法是把待开发的软件细分,直到每一个子任务都已经明确所需要的开发工作量,然后把它们加起来,得到软件开发的总工作量。这是一种常见的估算方法。它的优点是估算各个部分的准确性高;缺点是不仅缺少各项任务之间相互联系所需要的工作量,还缺少许多与软件开发有关的系统级工作量(配置管理、质量管理、项目管理)。所以往往估计值偏低,必须用其他方法进行校验和校正。(3)差别估算。这种方法综合了上述两种方法的优点,是把待定的软件项目与已完成的软件项目进行比较,不同的部分则采用相应的方法进行估算。这种方法的优点是可以提高估算的

26、准确程度,缺点是不容易明确“类似”的界限。4545第14章 软件计划管理14.2.3 专家判定技术目前,软件成本估算一般包括专家判定、类比估算和经验模型等三种技术。这些技术可以在自顶向下的方法中使用,也可以在自底向上的方法中使用。4646第14章 软件计划管理Deiphi技术的步骤是:(1)组织者发给每位专家所有软件系统的规格说明书和一张记录估算值的表格,请他们进行估算。(2)专家详细研究软件规格说明书的内容。然后组织者召集小组会议,在会上,专家们与组织者一起对估算问题进行讨论。(3)各位专家对该软件提出三个规模的估算值,即:ai该软件可能的最小规模(最少源代码行数);mi该软件最可能的规模(

27、最可能的源代码行数);bi该软件可能的最大规模(最多源代码行数)。无记名地填写表格,并说明做此估算的理由。4747第14章 软件计划管理(4)组织者对各位专家在表中填写的估算值进行综合和分类。首先,计算各位专家(序号为i,i=1,2,n)的估算期望值Ei和估算值的期望中值E:(n为专家数)然后,对专家的估算结果进行分类摘要。64iiiibmaEniiEnE114848第14章 软件计划管理(5)组织者召集会议,请专家们对其估算值有很大变动之处进行讨论。专家对此估算另做一次估算。(6)在综合专家估算结果的基础上,组织专家再次无记名地填写表格。从(4)(6)适当重复几次类比,根据过去完成项目的规模

28、和成本等信息,推算出该软件每行源代码所需成本。然后再乘以该软件源代码行数的估计值,得到该软件的成本估算值。4949第14章 软件计划管理14.2.4 COCOMO模型成本估算是用数学模型来估算软件成本。现有的模型是根据长期的项目经验而总结出的经验公式。构造性成本模型COCOMO(Constructive Cost Model)最初出现的是COCOMO81版,是产业界最广泛应用的软件成本估算模型之一,Boehm在他的经典著作“软件工程经济学”中对COCOMO 81 模型进行了详尽的描述。5050第14章 软件计划管理1COCOMO 81Boehm定义了“基本的”、“中间的”和“详细的”三种形式的

29、COCOMO模型,其两个核心公式为:工作量(人月PM):ED=rSc开发时间(月):TD=a(ED)b其中,S为千行源代码数KLOC,经验常数r,c,a和b取决于项目的总体类型。在COCOMO 81中,项目的类型被分为结构型、半独立型和嵌入型,三种类型的项目特点如表14.3所示。5151第14章 软件计划管理5252第14章 软件计划管理表14.4列出了根据项目类型确立的基本COCOMO公式。但显然,软件系统的三种简单分类并不能准确地估算工作量成本,因此,中间的COCOMO估算公式通过引入与17个成本因素有关的作用系数Mi将模型进一步细化。Mi用来修正公式中的系数r。17个成本因素Mi列于表1

30、4.5中,表中也给出了Mi的取值范围,取值为1.00表示为该项要求正常时的修正系数。5353第14章 软件计划管理5454第14章 软件计划管理5555第14章 软件计划管理考虑成本因素的中间的COCOMO公式对基本公式进行了修正,修正后的公式为ED=rScM其中 表14.6列出了正常未经修正的中间COCOMO模型公式。实际应用时应根据项目的特性,对照表 14.5来修正系数,参见表14.7给出的示例。171iiMM5656第14章 软件计划管理5757第14章 软件计划管理5858第14章 软件计划管理详细的COCOMO模型应用自底向上的方式,首先把系统分为系统、子系统和模块多个层次,然后先在

31、模块层应用估算方法得到它们的工作量,再估计子系统,最后算出系统层。详细的COCOMO对于生存期的各个阶段使用不同的工作量系数。5959第14章 软件计划管理2COCOMOCOCOMO81目前已演化为更为全面的COCOMO版,COCOMO模型也包含几个层次的模型:早期设计阶段模型、复用模型以及体系结构后阶段模型。早期设计阶段模型适用于需求已建立、系统设计已处于初始阶段,目标是对软件系统的工作量做近似估计。其估算公式为ED=2.94ScM这里,M是表14.5所列成本因素的简化集。6060第14章 软件计划管理M=PERSRCPXRUSEPDIFPREXFCILSCED其中,PERS为个人能力;RC

32、PX为可靠性和复杂性;RUSE代表复用性要求;PDIF为使用的平台特性;PREX为个人经验;FCIL是项目支持设施;SCED是对进度的要求。6161第14章 软件计划管理复用模型用于估算集成可复用组件的工作量。由于目前软件系统大量采用可复用的组件来构造新的系统,其工作量计算也应体现面向复用的软件过程活动。复用模型采用对象点作为软件规模估算单位,工作量计算公式如下:其中,PROD=对象点数/人月,即软件生产效率。6262第14章 软件计划管理体系结构后阶段模型用于软件体系结构已建立,子系统已分解,是最详细的模型。其工作量计算模型与早期设计阶段模型相同,但此时软件规模的估算应该更精确,公式中的M则

33、考虑表17.5中17个因素,而指数因子C则基于5个因素的值:已有项目经验、开发过程的灵活性、是否需要风险分析、团队合作状况和软件过程成熟度。因素值分为6级,从5到0对应非常低到极高。设Fi表示第i个因素,则10001.1iFC6363第14章 软件计划管理表14.7给出一个例子,说明这些成本因素形成是如何影响工作量估算的,其中指数所取的值为1.17;假设指标RELY、CPLX、STOR、TOOL和SCED是项目中的主要成本形成因素,因子取值参见表14.5,所有其他因素取正常值1。在这个例子中,对关键性的成本形成因素分别赋予了最大和最小值来说明它们对工作量估算带来的影响。从表中可以看出,对成本形

34、成因素取较高值时的工作量估算是初始估算的一倍多,而对这些成本形成因素取低值时的工作量估算会降低到初始估算的大约1/3,这样就突出表示了不同类型项目之间的巨大差异,以及在将一个领域的经验移植到另一个领域时的巨大困难。6464第14章 软件计划管理COCOMO模型的计算公式是由模型设计者提出来的,反映了设计者们的经验和所掌握的数据,但是,它在实际使用时未免过于复杂。公式中用到的属性太多,而且对这些值的估算带有太多的不确定性。原则上讲,模型的每个用户应该依照自己的历史项目数据来校准该模型,因为这将反映出局部环境对模型的影响,然而实际过程中,很少有机构对过去的项目数据进行长期细心的收集以支持对COCO

35、MO 模型的校准。因此,在COCOMO 的实际使用中,模型参数的取值一般都用一些公开发表的取值。6565第14章 软件计划管理14.2.5 面向对象项目的估算Lorenz和Kidd给出了面向对象项目的估算建议:(1)可以使用工作量分解、FP分析和适用传统应用的方法进行估算。(2)使用面向对象的分析模型建立用例并确定用例数。(3)对每个用例由分析模型确立系统核心类的数量。6666第14章 软件计划管理(4)对系统的用户界面进行归类,确定用户界面支持类的加权因子,并计算用户界面支持类数。参考因子为:非图形用户界面:2.0。基于文本的用户界面:2.25。图形用户界面:2.5。复杂的图形用户界面:3.

36、0。(5)确立工作单元数(人日)。Lorenz和Kidd建议每个类的平均工作单元数为1520人日。6767第14章 软件计划管理14.3 软件配置管理 14.3.1 基线和配置项1基线(Baseline)软件变更是软件开发中不可回避的事情。客户希望修改需求,开发者希望修改技术方法,管理者希望修改项目方法,这三个希望都可能引起软件变更。这是因为随着时间的流逝和开发过程的推进,系统相关人员可能会了解和掌握更多的信息,如客户真正需要什么?什么方法最好?项目如何实施代价更小等,这些开发过程中获取的知识促使软件不得不发生变更,而软件开发者也只能认可这类变更。6868第14章 软件计划管理基线是软件配置管

37、理的概念,它帮助我们在不严重阻碍合理变化的情况下来控制变化。IEEE(IEEE Std610.12-1990)定义基线如下:基线是已经通过正式复审和批准的规格说明或中间产品,它因此可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变。6969第14章 软件计划管理简单地说,基线是指软件配置项通过正式复审而进入正式受控的一种状态。以软件需求规格说明为例,开发人员可以在需求开发阶段随时根据用户的要求修改该文档。一旦该文档通过正式评审形成基线之后,需求变更就必须受到严格的控制,原则上是不允许轻易变更的,必须按照规定的变更控制程序进行申请、评估、修改和验证。基线标志着软件开发过程的各个里程

38、碑,通常的软件基线如图14.4所示,它将软件开发各个阶段的工作划分得更加明确,有利于阶段成果的检查和确认。7070第14章 软件计划管理图14.4 软件基线(里程碑)7171第14章 软件计划管理2软件配置项(Software Configuration Item,SCI)软件配置项定义为部分软件开发过程中创建的信息,一个SCI可以是某个大的规约中的某个单独段落,或在某个大的测试用例集中的某种测试用例;一个SCI也可以是一个文档、一个全套的测试用例或一个已命名的程序组件。软件配置项是配置控制下的一组相关程序、文档或数据的集合,包括:与合同、过程、计划和产品有关的文档和数据。源代码、目标代码和可

39、执行代码。相关产品,包括软件工具、库内可复用软件、外购软件及用户提供的软件。7272第14章 软件计划管理随着软件开发过程的进展,软件配置项的数量将会迅速增加,其内容也会随时发生变化。因此,软件人员必须尽力保证所有软件配置项的正确性和一致性。以下的SCI成为配置管理的目标并成为一组基线:系统规格说明。软件项目计划。软件需求规格说明。包括图形分析模型、处理规格说明、原型和形式规格说明等。初步的用户手册。设计规格说明。包括数据设计描述、体系结构设计规格说明、模块设计描述、界面设计描述、对象描述等。7373第14章 软件计划管理 源代码清单。测试规格说明。包括测试计划和过程、测试用例和结果记录等。操

40、作和安全手册。可执行程序。包括模块的可执行代码、链接的模块等。数据库描述。联机用户手册。维护文档。包括软件问题报告、维护请求、软件变化指令等。软件工程的标准和规程。7474第14章 软件计划管理除了上面列出的SCI,很多软件工程组织也将软件工具列入配置之中,即特定版本的编辑器、编译器和其他CASE工具被“固定”作为软件配置的一部分。因为这些工具被用于生成文档、源代码和数据,所以当对软件配置进行改变时,必须要用到它们。虽然问题并不多见,但有可能某些工具的新版(如编辑)会产生和原版本不同的结果。为此,工具就像它们辅助产生的软件一样,可以被基线化,并作为综合的配置管理过程的一部分。7575第14章

41、软件计划管理在实现SCM时,应把SCI组织成配置对象,在项目数据库中用一个唯一的名字组织它们。一个配置对象有一个名字和一组属性,并通过某些关系“连接”到其他对象,如图14.5所示。图14.5中分别对配置对象“设计规格说明”、“数据模块”、“模块N”、“源代码”和“测试规格说明”进行了定义,每个对象与其他对象的联系用箭头表示。这些箭头指名了一种构造关系,即“数据模块”和“模块N”是“设计规格说明”的一部分。双向箭头则表明一种相互关系。如果对“源代码”对象作了一个变更,软件工程师就可以根据这种相互关系确定哪些对象可能受到影响。7676第14章 软件计划管理图14.5 配置对象7777第14章 软件

42、计划管理14.3.2 软件配置活动软件配置管理是软件质量保证的重要一环,在软件开发过程中,其主要任务是控制软件的修改,涉及标识软件配置中各种对象、管理软件的各种版本、建立系统、控制对软件的变更和审计配置等活动。7878第14章 软件计划管理1标识配置对象为了控制和管理,所有SCI都应按面向对象的方式命名并组织起来。此时,对象分为基本对象和组合对象。基本对象指在分析、设计、编码或测试阶段由开发人员创建的某个“文本单元”(Unit of Text),例如,需求说明书中某一节,某个模块的源代码,或按等价分类法制定的一套测试用例;复合对象指由若干基本对象和复合对象组合而成的对象,例如,图14.5的“设

43、计规格说明”即为复合对象,它由“数据模块”和“模块N”等基本对象组合而成。7979第14章 软件计划管理每个配置对象都拥有名字、描述、资源列表和实际存在体四个部分。对象名一般为字符串;对象描述包括若干数据项,它们指明对象的类型(例如文档、程序或数据)、所属工程项目的标志及变动和版本的有关信息;资源列表给出该对象要求、引用、处理和提供的所有实体,如数据类型、特殊函数等,有时变量也被看做资源;只有基本对象才有实际存在体,它是指向该对象“文本单元”的一个指针,复合对象此项取null值。除了标识配置外,还必须指明对象之间的关系。一个对象可标识为另一复合对象的一部分,即此两对象之间存在一个part-of

44、关系。若干part-of关系可定义出对象之间的分层结构。8080第14章 软件计划管理例如:“E-R图”(part-of)“数据模型”;“E-R图”为数据模型的一部分。“数据模型”(part-of)“设计规格说明书”;“数据模型”是设计规格说明书的一部分。由此描述出三个对象组成树状的层次结构。因一个配置对象可能与其他多个对象有关系,所以SCI的分层结构不一定是简单的树状结构,也有可能是网状结构。8181第14章 软件计划管理此外,在标识对象时还应考虑对象随着开发过程的深入不断演化的因素。为此,可为每个对象创建如图14.6所示的一个进化图,它概述某对象演化的历史,图中每个节点都是SCI的一个版本

45、。至于开发人员如何寻找与具体的SCI版本相协调的所有相关的SCI版本,市场部门又怎样得知哪些顾客有哪些版本,以及怎样通过选择合适的SCI版本配置出一个特定的软件系统等问题,都需要通过有效的标识和版本机制解决。8282第14章 软件计划管理图14.6 进化图8383第14章 软件计划管理2版本控制理想情况下,每个配置项只需保存一个版本。实际上因为软件的变更和满足不同用户的需求,往往一个项目保存多个版本,并且随着系统开发的展开,版本数目明显增多。配置管理的版本控制主要解决下列问题:(1)根据不同用户的需要配置不同的系统。(2)保存系统老版本,为以后系统追踪时使用。(3)建立一个系统新版本,使它保留

46、某些决策而舍弃另一些决策。(4)支持两位以上工程师同时为一个项目工作。(5)高效存储项目的多个版本。8484第14章 软件计划管理3变更控制一个大型软件开发过程中,无控制的变更会迅速导致混乱。所谓变更控制,即建立一套机制,有意识地控制软件的变更,其过程如图14.7所示。8585第14章 软件计划管理图14.7 变更控制过程8686第14章 软件计划管理4配置审计软件配置审计作为一种补救措施,主要考虑下列在正式技术复审中未被考虑的因素:(1)控制变更指令(ECO)指出的修改是否都已完成?是否另加了哪些修改?(2)是否做过正式技术复审?(3)是否严格遵守软件工程标准?(4)修改过的SCI是否做了特

47、别标记?修改的日期和执行修改的人员是否已经注册?该SCI的属性是否能够反映本次修改的结果?(5)是否完成与本次修改有关的注释、记录和报告等事宜?(6)所有相关的SCI是否已一并修改?8787第14章 软件计划管理5配置状况报告配置状况报告(Configuration Status Reporting,CSR)作为软件配置管理的一项任务,主要概述发生了什么事情,谁做的,何时发生的以及有什么影响。CSR的产生与图14.7所述过程紧密相关,当某个SCI被赋予新标记或更新标记时、或CCA批准一项修改申请(即产生一个ECO)时、或配置审计完成时都将执行一次CSR。CSR的输出可放在联机数据库中,供开发人

48、员随时按关键字查询。这样可以减少大型软件开发项目中,由于人员缺乏而造成的盲目行为。8888第14章 软件计划管理14.4 IBM Rational 软件配置管理工具 IBM Rational 软件配置管理产品能够有效地管理和控制软件资产,它提供了一个支持单一服务器、分布式服务器和复制服务器的灵活且可伸缩的架构。本节简单介绍两种IBM Rational软件配置管理产品:IBM Rational ClearCase和IBM Rational ClearCase LT。IBM Rational ClearCase适合于任意规模项目的全面的软件配置管理,它为大中型开发团队提供可靠的、可伸缩的和灵活的软

49、件资产管理。8989第14章 软件计划管理IBM Rational ClearCase的基本功能包括:提供版本控制,工作空间管理,组件管理和流程的可配置性;支持并行开发,甚至可以跨越相互分离的地理区域;与IBM Rational Clear Quest无缝集成,使缺陷和变更跟踪成为监控变更的一部分;支持统一变更管理;提供高级构建审计;版本化所有开发工作;为项目工作组提供可靠的入门级版本控制;为通用数据存取提供Web接口;具备流程可配置性等。9090第14章 软件计划管理IBM Rational ClearCase LT面向小型开发团队的软件配置管理。其基本功能包括:为项目工作组提供可靠的入门级

50、版本控制;与IBM Rational Clear Quest集成以进行无缝的缺陷和变更跟踪;支持统一变更管理;提供Rational ClearCase的企业级部署升级的无缝升级路径;包含在Rational Suite中,用于在整个开发周期中进行有效的版本化;版本化所有开发工作,包括源代码、Web资源、二元关联、可执行架构、文档、测试脚本和目录等。9191第14章 软件计划管理本 章 小 结软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。软件项目的生命周期包括项目启动、项目规划、项目实施和项目收尾四个阶段。在软件开发过程

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《软件工程——理论、方法与实践》课件第14章.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|