《软件质量评价》PPT课件.ppt

上传人:sh****n 文档编号:11513020 上传时间:2020-04-26 格式:PPT 页数:49 大小:462.50KB
返回 下载 相关 举报
《软件质量评价》PPT课件.ppt_第1页
第1页 / 共49页
《软件质量评价》PPT课件.ppt_第2页
第2页 / 共49页
《软件质量评价》PPT课件.ppt_第3页
第3页 / 共49页
点击查看更多>>
资源描述
软件工程SoftwareEngineering,武汉大学计算机学院,第2章软件质量评价,什么是好的软件?有何特点?软件评价的标准如何?什么是软件结构?什么是良软件结构?什么是模块化?模块设计时应遵循的标准是什么?,一、软件质量评价标准,定性评价用户角度:达到需求、界面友好、简单易学开发人员角度:良结构、易测试、易维护、可移植定量评价:软件度量,宏观标准,良软件结构文档齐全可靠性,二、软件结构,软件的各个组成部分之间的关系,基本概念,块扇出:由一个块所直接控制的块数扇入:直接调用它的上级块数目深度:控制的总层数宽度:跨度最宽层的跨度数,1.良软件结构,具有层次性,无回路块调用的软件结构。,非良结构的调整,合并循环节点,良结构,AB,模块内部复杂性增加了,2.模块化(modularity),模块(Module)、单元(Cell)模块化把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能,满足用户的需求。,模块化的依据,c(x):问题x的复杂程度E(x):解决问题x需要的工作量(时间)对于两个问题P1和P2ifC(P1)C(P2)thenE(P1)E(P2)若P能分解为P1、P2两个部分,由经验有:C(P)C(P1)+C(P2)E(P)E(P1)+E(P2),块的划分与总工作量之间的关系,在一个16开页面内可写完,若50行代码,模块的重要特征,抽象(abstraction)忽略细节,分层理解问题,自顶向下层层细化信息隐藏(informationhiding)细节隐藏可理解性修改副作用小错误副作用小,例:开发一个CAD软件,实现一个二维绘图系统的全部功能,供初级计算机辅助设计者使用。,抽象层次I用问题环境的术语来描述这个软件该软件包括一个计算机绘图界面,向绘图员显示图形;一个数字化界面,用于绘图员绘制直线、折线、矩形、圆及曲线等;所有几何图的计算、所有的剖面图和辅助视图都可以用这个CAD软件实现,模块化的抽象特征,模块化的抽象特征,抽象层次II任务需求的描述,列出“What”而不是“How”CADSOFTWARETASKS:userinteractiontask;2-Ddrawingcreationtask;graphicsdisplaytask;drawingfilemanagementtask;END,3.模块独立性(Moduleindependence),分解模块的关键:1)可命名名字有隐含语义2)每个模块完成一个相对独立的子功能,并且与其它模块间的接口简单。独立性的度量(Yourdon&Constantine,1978)耦合(Coupling)块间联系内聚(Cohesion)块内联系,(1)耦合(Coupling),对一个软件结构内不同模块之间互连程度的度量,零耦合(uncoupling),彼此完全独立,这意味着模块间无任何连接,耦合程度最低,数据耦合(DataCoupling),两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,Themostdesirable,控制耦合(ControlCoupling),传递的信息中有控制信息(尽管有时这种控制信息以数据的形式出现),接口单一,但仍然影响被控模块的内部逻辑。,公共环境耦合(CommonCoupling),两个或多个模块通过一个公共数据环境相互作用,问题:公共部分的改动将影响所有调用它的模块公共部分的数据存取无法控制复杂程度随耦合模块的个数增加而增加,内容耦合(ContentCoupling),一个模块访问另一个模块的内部数据一个模块不通过正常入口而转到另一个模块的内部两个模块有一部分程序代码重叠(只可能出现在汇编程序中)一个模块有多个入口,Theleastdesirable,内容耦合,例1.A访问C的内部数据或不通过正常入口而转入C的内部。,内容耦合,耦合度与软件结构,原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。,(2)内聚(Cohesion),Goal:ascohesiveaspossible!,一个模块内各个元素彼此结合的紧密程度理想的模块内聚只做一件事情模块内的高内聚往往意味着模块间的松耦合内聚更重要!,偶然内聚(Coincidentalcohesion),Unrelatedfunctions,processes,ordataarefoundinthesamemodule(forconvenience),A,B,逻辑内聚(LogicalCohesion),Logicallyrelatedfunctionsordataareplacedinthesamemodule,逻辑内聚,时间内聚(Temporalcohesion),Thefunctionsarerelatedonlybythetiminginvolved,initialxInitialy,过程内聚(Proceduralcohesion),Functionsaregroupedtogetherinamoduletoensureacertainorderofperformance,通信内聚(Communicationalcohesion),Allthefunctionsinamoduleoperateonorproducethesamedataset,X从文件file读出数据由数据产生日报表由数据产生单项产品报表,顺序内聚(Sequentialcohesion),Theoutputfromonepartofamoduleistheinputtothenextpart,X输入系数求根打印方程的根,功能内聚(Functionalcohesion),Everyprocessingelementisessentialtotheperformanceofasinglefunction,X报表打印,内聚度与软件结构,设计时力争做到高内聚!,三、软件度量,度量(metrics)测量(measure)估算(estimation),软件度量,软件复杂性度量规模文本复杂性控制结构的复杂性软件可靠性度量系统故障率软件修复与软件有效性软件可靠性估算,1.软件复杂性度量,规模文本复杂性控制结构的复杂性,(1)规模度量(Size-OrientedMetrics),代码行(Linesofcode,LOC)生产率(LOCperperson-month)=代码行数/工作月Pl=L/E每行代码的平均成本($perLOC)=总成本/代码行数Cl=S/L代码出错率(ErrorsperkLOC)=总错误数/代码行数EQRl=Ne/L,某软件项目记录,Pl=12.1kLOC/24PM=504LOC/PMCl=$168000/12.1kLOC=$13.88/LOCEQRl=29个/12.1Kloc=2.4个/kLOC,代码行数估算软件规模的特点,优点:简单易行缺点:依赖于语言不能刻画算法的难易程度开发前或初期估算困难只适用于过程式语言,不适用于4GL,(2)文本复杂性度量,程序语言符号长度N=N1+N2N1:程序中操作符总个数n1:程序中不同操作符个数N2:程序中操作数总个数n2:程序中不同操作数个数估算公式N=n1log2n1+n2log2n2程序量V=Nlog2(n1+n2),(3)控制结构的复杂性度量,1976,T.J.McCabe基于程序拓扑结构的软件复杂性度量模型巡回秩数V(G)V(G)=en+2=边数结点数+2可以证明:V(G)=有界或无界的封闭区域个数,程序控制结构的复杂性,2.软件可靠性度量,软件的可靠性在某个给定时间间隔内,程序按照规格说明成功运行的概率,(1)系统故障率,(2)软件修复与软件有效性,有效性函数A(t)系统在t时刻正常运行的概率可靠性函数R(t)系统在0,t时间间隔正常运行的概率A=MTTF/(MTTF+MTTR)MTTF为平均无故障时间,MTTR为平均修复时间,A为机器的稳定性,(3)软件可靠性估算,错误植入模型N:池塘中的鱼尾数Nt:植入的带标记的鱼尾数n:捞出的鱼尾数nt:捞出的带标记的鱼数,小结,软件评价标准软件结构模块化模块独立性软件度量,思考题,你认为评价软件好坏有哪些标准?在设计软件结构时应遵循哪些原则?某软件项目如果采用四代语言开发,LOC度量还有意义吗?为什么?一个程序能既正确又不可靠吗?试说明理由。,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!