软件工程第2章.ppt
《软件工程第2章.ppt》由会员分享,可在线阅读,更多相关《软件工程第2章.ppt(142页珍藏版)》请在三一办公上搜索。
1、软件工程,经理管什么?,计 划,预算,组 织,进 度,标 准,什么是软件项目管理?,管理就是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。,什么是软件项目管理?,什么是软件项目管理?,成本管理:估算软件项目的成本,作为签订合同或项目立项的依据;在软件开发过程中按计划管理经费的使用。质量管理:制定软件质量保证计划;按照软件质量评价体系控制软件质量要素;对阶段性的软件产品进行评审;对最终产品进行验证和确认,确保软件产品的质量。软件配置管理:制定配置管理计划;对程序、文档和数据的各种版本进行管理,确保软件的完整性和一致性。,第2章软件项目管理,2.1 软件度量2.
2、2 软件项目估算2.3 软件质量度量 2.4 软件复杂性度量2.5 软件可靠性度量2.6 软件开发过程的管理,软件度量是软件产品、软件开发过程或自愿简单属性的定量描述。如程序规模、操作符个数、程序中错误的个数等。面向规模的度量面向功能的度量,2.1 软件度量,2.1 软件度量,.软件度量的基本概念1测量、度量、估算和指标 软件工程项目的定量描述涉及测量、度量、估算和指标等一些基本概念。,1)测量(measure):对产品或过程的某个属性的范围、数量、维度、容量或大小提供一个定量的指示。,2.1 软件度量,4)指标(guideline):是一个度量或度量的组合,它可对软件产品、过程或资源提供更深
3、入的理解。,2)度量(metric):对系统、部件或过程的某一特性所具有的程度进行的量化测量。如软件质量度量等。,3)估算(estimation):对软件产品、过程、资源等使用历史资料或经验公式等进行预测。如工作量、成本、完成期限等。估算一般用于立项、签订合同、制定工作计划等。,2软件项目管理的对象及其属性软件项目管理的对象主要包括产品、过程和资源等。产品(product)是指软件开发过程得到的文档和程序。过程(process)是指与软件项目有关的活动。资源(resource)是指进行软件项目所需要的各种支持。要对软件项目管理的对象进行有效的管理与控制,就必须对这些对象的属性进行测量、度量与估
4、算。一般来说,产品、过程、资源等对象都具有内部属性和外部属性。,2.1 软件度量,对象的属性,对象的内部属性是指对象本身的属性,如软件产品的代码长度、模块化的程度、复杂性等。对象的外部属性体现了对象与环境的关系,如软件的可靠性、可维护性、可移植性、成本、人员的生产率等。,表2-1 软件工程的产品、过程、资源的属性,3软件度量的分类 可分为直接度量和间接度量两类:1)直接度量。即对不依赖于其他属性的简单属性的测量。如软件的模块数、程序的代码行数、操作符的个数,工作量、成本等。2)间接度量。即对涉及若干个其他属性的软件要素、准则或属性的度量。因为它们必须通过建立一定的度量方法或模型才能间接推断而获
5、得。如软件的功能性、复杂性、可靠性、可维护性等等。,2.1 软件度量,2.1.2 面向规模的度量,面向规模的度量是以软件的代码行(LOC,Line of Code)数为基础的直接度量。,L表示软件的代码行数,单位为KLOC(千行代码)或LOC;E表示开发软件所需工作量,单位为人月(PM)或人年(PY);S表示软件成本,单位为美元或元;N表示错误个数;Pd表示软件文档页数;M表示开发所用的人数。,1软件开发的生产率P:P=L/E 2开发每行代码的平均成本C:C=S/L3代码出错率EQR:EQR=N/L 4软件的文档率D:D=Pd/L,面向规模的度量,面向规模的度量,优点:简单、直接。缺点:代码行
6、数的估算依赖于程序设计语言的功能和表 达能力。对设计精巧的软件项目产生不利影响。在开发初期估算代码行十分困难。只适用于过程式程序设计语言。,面向规模的度量,2.1.3 面向功能的度量,1简单功能点度量 1979年,Albrecht首先提出了功能点度量方法。这是一种面向功能的间接度量方法,即从软件定义的基本功能出发,来估算软件系统的规模。因此,该方法可以在软件开发项目的初期,在软件定义过程中即可预测待开发软件的规模。,1简单功能点度量,功能点FP的度量公式如下:FP=CTTCF=CT 0.65+0.01F i 其中:CT基本功能点。CT值按表2-2来计算,它的值为5个参数加权值的总和。,14,i
7、=1,表2-2 简单功能点度量的基本功能点的计算,表2-2中的5个参数的含义,1)用户输入数:用户为软件系统提供的输入参数的个 数(不包括查询);2)用户输出数:软件为用户提供的输出参数(报告、屏幕帧、错误信息等)的个数;3)用户查询数:一次联机输入导致软件以联机输出方 式实时产生一个响应的个数;4)文件数:逻辑主文件的个数;5)外部接口数:机器可读的接口(如磁盘或磁带上的数据文件等)的个数。,1简单功能点度量,在FP度量公式中:TCF技术复杂性调节因子。0.65和0.01经验数据。Fi(i=1,2,14)复杂性调节值。Fi所代表的因素如表2-3所示,每个Fi可根据实际情况取0、1、2、3、4
8、、5中的一个值。其中:0没有影响、1偶然的、2适中、3普通、4重要、5极重要的影响。TCF取值范围:0.65 1.35。,表2-3 F i 取值表,2功能点度量,简单功能点度量方法没有直接考虑软件本身的算法的复杂性问题。所以它仅适用于度量算法简单的事务处理等系统。1986年Jones对简单功能点度量进行了推广,在计算软件系统的基本功能点CT时,引入了算法复杂性因素,即使用表2-4计算CT。我们称这种推广的度量方法为功能点度量。这两种方法对一般的事务处理系统等算法简单的软件系统计算出来的FP值基本相同,但对于较复杂的软件系统,功能点度量方法比简单功能点度量方法计算出来的FP值要高20%35%。,
9、表2-4 推广的功能点度量的基本功能点的计算,用功能点计算软件项目的有关参考量:,1)生产率P:P=FP/E 2)平均成本C:C=S/FP 3)代码出错率EQR:EQR=N/FP4)软件的文档率D:D=Pd/FP,3功能点度量方法的优缺点,优点:可用于软件项目开发的初期阶段的项目估算。与程序设计语言无关。缺点:某些参考量的收集有一定困难;度量值的主观因素较多,如Fi取值;功能点FP本身没有直观的物理意义。,2.2 软件项目估算,常用的软件项目的估算方法主要有以下4种1自顶向下的估算方法2自底向上的估算方法3差别估算法4根据经验估算公式,2.2.1 软件项目的估算方法,1自顶向下的估算方法,基本
10、思想:首先根据已完成项目的总成本或总工作量来推算待开发软件的总成本或总工作量,然后再按比例将其分配到各开发任务中去。即从整体到局部。优点:估算工作量小、速度快。缺点:对项目中的特殊困难估计不足,有可能产生遗漏,估算出的值盲目性较大。,2自底向上的估算方法,基本思想是:把待开发软件细分,直到每一个子任务或阶段都已经明确所需要的开发工作量或成本,然后再把它们累加起来,得到待开发软件的总工作量或总成本。优点:计算各个部分的准确性较高。缺点:缺少各个子任务之间相互联系的工作量和系统工作量(如项目管理、配置管理、质量管理),估算值往往偏低,必须用其他方法进行校正。,3差别估算法,基本思想:把待开发的软件
11、项目与过去完成的软件项目进行比较,从各子任务中区分出类似的和不同的部分。类似的部分按已知的实际量计算,不同的部分则采用某种方法进行估算。差别估算法综合了以上两种方法的优点。优点:估算的准确程度高。缺点:不容易划分相似的界限。,4根据经验估算公式,通过众多实际软件项目的经验,总结出一些有价值的软件成本和工作量估算的经验模型。这些模型对于软件项目管理具有一定的指导意义和验证效果。,2.2.2 代码行和功能点的估算,采用中介绍的估算方法可以估算出代码行或功能点的乐观值a、一般值m和悲观值b,并用如下的加权平均公式计算LOC或FP的期望值(expectation):X=(a+4 m+b)/6 软件的L
12、OC或FP的期望值估算出来后,就可以根据已有的标准生产率对成本和工作量等进行估算了。,2.2.3 软件项目的经验估算模型,1IBM模型(静态单变量模型)数据利用最小二乘法拟合,得到的经验估算公式:E=5.2 L0.91 D=4.1L0.36=2.136 E0.3956 S=0.54 E0.6 DOC=49 L1.01,2Putnam模型(动态多变量模型),该模型以工作量在30人年以上的大型软件项目的实测数据为依据,推导出了工作量分布曲线,如图2-2-1所示。,2.2.3 软件项目的经验估算模型,图2-2-1 软件项目的工作量分布曲线,图2-2-1 软件项目的工作量分布曲线,2Putnam模型,
13、Putnam估算模型如下:L=Ck E1/3 td 4/3,Ck为技术状态常数,与开发环境有关,如下:2000 较差,没有方法学的支持,缺乏文档 和评审,采用批处理方式;Ck=8000 一般,有方法学的支持,有适当的文 档和评审,采用交互处理方式;11000 较好,有集成化的CASE工具和环境。,E=L3/(Ck3 td4),图2-2-2 人力资源的分配,Putnam模型的优缺点,优点:揭示了软件项目的源程序代码长度、软件开发时间和工作量三者之间的关系,在理论上有重要意义。缺点:准确程度不高。没有反映软件产品、项目、参加人员、软硬件资源等属性。,3CoCoMo模型(构造性成本模型),CoCoM
14、o模型按其详细程度分三个层次:基本CoCoMo模型;中间CoCoMo模型;详细CoCoMo模型。,2.2.3 软件项目的经验估算模型,(1)基本CoCoMo模型,其工作量和开发时间的估算公式如下:E=a Lb D=c Ed 其中:L 软件代码行的估算值(以KLOC计);E 工作量(以PM计);D开发时间(以月计);a、b、c、d经验常数。,表2-8 a、b、c、d参数值的选取,(2)中间CoCoMo模型,中间CoCoMo模型在估算工作量时,在基本CoCoMo模型的基础上再乘以由15个因素组成的工作量调节因子EAF,于是有:E=a Lb EAF=a Lb F i 其中:L 软件的代码行数(以KL
15、OC计);E 工作量(以PM计);a、b 经验常数;,i=1,15,表2-9 a、b参数的取值,(2)中间CoCoMo模型,工作量调节因子EAF与软件的产品的取值属性、计算机属性、人员属性、项目属性等因素有关。这15个因素Fi(i=115)的值可按等级取值,即可分为很低、低、正常、高、很高、极高,共6级。正常情况下Fi=1。Boehm推荐的Fi值的范围是.701.66,F i的值可根据实际情况按表2-10来选取。工作量E求出之后,就可以用公式(2-18)即 D=c Ed计算出开发时间D。,(3)详细CoCoMo模型,详细CoCoMo模型的基本工作量(指EAF=1时的工作量)公式、开发时间公式与
16、中间CoCoMo模型相同。所不同的是详细CoCoMo模型在计算EAF时针对每个影响因素,分层次(系统层、子系统层、模块层)并按软件生存周期分阶段给出工作量因素的分级表。详细CoCoMo模型可以更准确地估算软件项目的工作量。,表2-11 子系统层软件可靠性工作量因素分级表,通信数,图2-2-4 N=3 和N=5 时的通信数,成功的标准:,2.3 软件质量度量,失败的根本原因:,用户在用用户可很容易做完要做的事,开发人员写出的东西达不到用户要求(人的问题、技术问题),不贪污的官就是好官吗,“运行正确”的程序就是高质量的程序吗?,也许运行速度很低并且浪费内存;也许代码写得一塌糊涂,2.3.1 软件质
17、量的定义,软件质量是软件产品满足规定的和隐含的与需求能力有关的全部特征和特性,包括:,1软件产品满足用户要求的程度;,2软件拥有所期望的各种属性的组合程度;,3用户对软件产品的综合反映程度;,4软件在使用过程中满足用户需求的程度。,2.3.2 软件质量的度量模型,1976年,Boehm提出了定量度量软件质量的概念,他给出了软件质量的层次模型,并给出了60个软件质量度量公式;1978年,Walters和McCall提出了三层次软件质量度量模型;1985年,ISO提出了SQM(Software Quality Metric,软件质量度量)工作报告等等。,1McCall等人的软件质量度量模型,McC
18、all等人提出了由软件质量要素、评价准则、定量度量三个层次组成的三层次度量模型。,其中:第一层是将对软件质量的度量归结为对直接影响软件质量的若干个软件质量要素的度量;第二层是用若干个可度量的评价准则来间接度量软件质量要素;第三层是对相应评价准则的直接度量。,图2-3-1 软件质量三层次度量模型,2软件质量要素,当时McCall等人认为,软件质量由11个软件质量要素来衡量。这11个质量要素可划分为三类:,面向运行特征的软件质量要素有正确性、可靠性、有效性、完整性和可用性;,面向软件承受修改的质量要素有可维护性、灵活性、可测试性;,面向转移的软件质量要素有可移植性、可重用性、可互操作性。,这三类要
19、素构成了软件质量的三个侧面,如图2-3-2所示。,图2-3-2 软件质量要素的构成,质量要素概念,1)正确性(correctness):指程序满足需求规格说明及用户目标的程度;2)可靠性(reliability):指在给定的时间间隔内,程序成功运行的概率。可靠性是衡量软件质量的一个重要目标。3)有效性(efficiency):指软件系统的时间和空间效率。这是一个应当努力追求的重要目标。4)完整性(integrity):指对未授权人员访问程序或数据加以控制的程度;5)可用性(usability):指学习使用软件(即操作软件、准备输入数据、解释输出结果等)的难易程度;,质量要素概念,1)灵活性(f
20、lexibility):指改变一个操作的顺序所需工作量的多少;2)可测试性(testability):指测试软件以便使其具有预定功能所需工作量的多少;3)可维护性(maintainability):指软件产品交付使用后,在实现改正潜伏的错误、改进性能等属性、适应环境变化等方面工作的难易程度。,1)可互操作性(interoperability):指程序与其他系统相互交换并使用信息的能力。2)可重用性(reusability):指软部件可以在多种场合使用的程度。3)可移植性(portability):指软件从一个计算机系统或环境移植到另一个上去的难易程度。,质量要素概念,2软件质量要素,软件质量要
21、素不是独立的,一个要素可能与其他几个要素有关系,如表2-12所示,其中:正相关以“”表示,负相关以“”表示。对于具有负相关的质量要素,在开发时应根据具体情况加以取舍或进行折衷。例如,对于实时控制系统,必须确保系统的可靠性和有效性,而软件的可重用性、可移植性等质量要素就可以放宽要求。,表2-12 质量要素间的关系,3软件质量要素的评价准则,软件质量要素一般很难直接测量。为了对11个要素进行度量,McCall等人通过确定影响软件质量要素的属性,定义了21个软件质量要素的评价准则。这些评价准则既能够比较完整、准确地描述软件质量要素,又比较容易测量。,通过这组评价准则就可以间接测量软件质量要素,进而度
22、量整个软件质量。,评价准则新概念,1)可审查性(audit-ability):检查软件需求、文档、过程、标准等是否一致的难易程度;2)准确性(accuracy):计算和控制的精确程度;3)简明性(conciseness):程序源代码的紧凑程度;4)通信通用性(communication commonality):使用标准接口、协议和带宽的程度;5)数据通用性(data commonality):在程序中使用标准数据结构和类型的程度;6)容错性(error-tolerance):在各种异常情况下软件能继续提供操作的能力;,评价准则新概念,7)执行效率(execution efficiency):
23、软件运行效率;8)可扩充性(expandability):结构、数据、过程等设计可以扩充的程度;9)通用性(generality):程序潜在应用领域的多少;10)硬件独立性(hardware independence):软件与其运行的硬件环境无关的程度;11)检测性(instrumentation):程序监视自身运行并标识错误的程度;12)可操作性(operability):操作该软件的难易程度;,评价准则新概念,13)安全性(security):控制或保护程序和数据不被破坏、非法访问等机制的能力;14)自文档化(self-documentation):源代码提供自身说明文档的程度;15)简单
24、性(simplicity):程序易于理解的程度;16)软件独立性(software independence):软件与非标准编程语言特征、操作系统特征等软件环境约束无关的程度;17)易培训性(training):软件对使用它的新用户的支持程度。,18)可追踪性(traceability):是指根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行逆向追踪的能力。19)模块化(modularity):把一个程序划分成若干个模块,每个模块完成一个子功能,将这些模块组装成一个整体,即可完成该程序指定的功能。20)一致性(consistency):整个软件系统(包括程序、数据和文
25、档)的各个模块应使用一致的概念、符号和术语;程序内部接口应保持一致;软件与环境的接口应保持一致;系统规格说明应与系统行为保持一致;用于形式化规格说明的公理系统应保持一致。21)完全性(completeness):软件系统不丢失任何重要成分,完全实现所需的系统功能的程度。,评价准则新概念,表2-13 质量要素与评价准则的关系,4软件质量要素的度量,第j种软件质量要素Fj(j=1,2,11)的计算公式为:Fj=Cj k M k,其中:Mk是第j 种软件质量要素Fj对第k种评价准则的测量值。评价准则多数只能按主观想法定值。McCall将每个评价准则都划分为0 10级,并且Mk的值可以在0,0.1,0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程
链接地址:https://www.31ppt.com/p-6434236.html