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

上传人:小飞机 文档编号:5610156 上传时间:2023-08-02 格式:PPT 页数:49 大小:305.50KB
返回 下载 相关 举报
《软件质量评价》PPT课件.ppt_第1页
第1页 / 共49页
《软件质量评价》PPT课件.ppt_第2页
第2页 / 共49页
《软件质量评价》PPT课件.ppt_第3页
第3页 / 共49页
《软件质量评价》PPT课件.ppt_第4页
第4页 / 共49页
《软件质量评价》PPT课件.ppt_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《《软件质量评价》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《软件质量评价》PPT课件.ppt(49页珍藏版)》请在三一办公上搜索。

1、软件工程Software Engineering,武汉大学 计算机学院,第2章软件质量评价,什么是好的软件?有何特点?软件评价的标准如何?什么是软件结构?什么是良软件结构?什么是模块化?模块设计时应遵循的标准是什么?,一、软件质量评价标准,定性评价用户角度:达到需求、界面友好、简单易学开发人员角度:良结构、易测试、易维护、可移植 定量评价:软件度量,宏观标准,良软件结构 文档齐全 可靠性,二、软件结构,软件的各个组成部分之间的关系,基本概念,块扇出:由一个块所直接控制的块数 扇入:直接调用它的上级块数目深度:控制的总层数 宽度:跨度最宽层的跨度数,1.良软件结构,具有层次性,无回路块调用的软件

2、结构。,非良结构的调整,合并循环节点,良结构,AB,模块内部复杂性增加了,2.模块化(modularity),模块(Module)、单元(Cell)模块化把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能,满足用户的需求。,模块化的依据,c(x):问题 x 的复杂程度E(x):解决问题 x 需要的工作量(时间)对于两个问题P1和P2if C(P1)C(P2)then E(P1)E(P2)若P能分解为P1、P2两个部分,由经验有:C(P)C(P1)+C(P2)E(P)E(P1)+E(P2),块的划分与总工作量之间的关系,在一个16开

3、页面内可写完,若50行代码,模块的重要特征,抽象(abstraction)忽略细节,分层理解问题,自顶向下层层细化 信息隐藏(information hiding)细节隐藏 可理解性 修改副作用小 错误副作用小,例:开发一个CAD软件,实现一个二维绘图系统的全部功能,供初级计算机辅助设计者使用。,抽象层次I 用问题环境的术语来描述这个软件该软件包括一个计算机绘图界面,向绘图员显示图形;一个数字化界面,用于绘图员绘制直线、折线、矩形、圆及曲线等;所有几何图的计算、所有的剖面图和辅助视图都可以用这个CAD软件实现,模块化的抽象特征,模块化的抽象特征,抽象层次II 任务需求的描述,列出“What”而

4、不是“How”CAD SOFTWARE TASKS:user interaction task;2-D drawing creation task;graphics display task;drawing file management task;END,3.模块独立性(Module independence),分解模块的关键:1)可命名名字有隐含语义2)每个模块完成一个相对独立的子功能,并且与其它模块间的接口简单。独立性的度量(Yourdon&Constantine,1978)耦合(Coupling)块间联系 内聚(Cohesion)块内联系,(1)耦合(Coupling),对一个软件结构

5、内不同模块之间互连程度的度量,零耦合(uncoupling),彼此完全独立,这意味着模块间无任何连接,耦合程度最低,数据耦合(Data Coupling),两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,The most desirable,控制耦合(Control Coupling),传递的信息中有控制信息(尽管有时这种控制信息以数据的形式出现),接口单一,但仍然影响被控模块的内部逻辑。,公共环境耦合(Common Coupling),两个或多个模块通过一个公共数据环境相互作用,问题:公共部分的改动将影响所有调用它的模块 公共部分的数据存取无法控制 复杂程度随耦合模块的个数增加而增

6、加,内容耦合(Content Coupling),一个模块访问另一个模块的内部数据一个模块不通过正常入口而转到另一个模块的内部两个模块有一部分程序代码重叠(只可能出现在汇编程序中)一个模块有多个入口,The least desirable,内容耦合,例1.A访问C的内部数据或不通过正常入口而转入C的内部。,内容耦合,耦合度与软件结构,原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。,(2)内聚(Cohesion),Goal:as cohesive as possible!,一个模块内各个元素彼此结合的紧密程度 理想的模块内聚只做一件事情模块内的高内聚往往意味着模

7、块间的松耦合内聚更重要!,偶然内聚(Coincidental cohesion),Unrelated functions,processes,or data are found in the same module(for convenience),A,B,逻辑内聚(Logical Cohesion),Logically related functions or data are placed in the same module,逻辑内聚,时间内聚(Temporal cohesion),The functions are related only by the timing involved

8、,initial xInitial y,过程内聚(Procedural cohesion),Functions are grouped together in a module to ensure a certain order of performance,通信内聚(Communicational cohesion),All the functions in a module operate on or produce the same data set,X从文件file读出数据由数据产生日报表由数据产生单项产品报表,顺序内聚(Sequential cohesion),The output

9、from one part of a module is the input to the next part,X输入系数求根打印方程的根,功能内聚(Functional cohesion),Every processing element is essential to the performance of a single function,X报表打印,内聚度与软件结构,设计时力争做到高内聚!,三、软件度量,度量(metrics)测量(measure)估算(estimation),软件度量,软件复杂性度量 规模 文本复杂性 控制结构的复杂性 软件可靠性度量 系统故障率 软件修复与软件有效性

10、 软件可靠性估算,1.软件复杂性度量,规模 文本复杂性 控制结构的复杂性,(1)规模度量(Size-Oriented Metrics),代码行(Lines of code,LOC)生产率(LOC per person-month)=代码行数/工作月Pl=L/E 每行代码的平均成本($per LOC)=总成本/代码行数Cl=S/L 代码出错率(Errors per kLOC)=总错误数/代码行数EQRl=Ne/L,某软件项目记录,Pl=12.1 kLOC/24 PM=504 LOC/PMCl=$168000/12.1 kLOC=$13.88/LOCEQRl=29个/12.1 Kloc=2.4个/

11、kLOC,代码行数估算软件规模的特点,优点:简单易行缺点:依赖于语言 不能刻画算法的难易程度 开发前或初期估算困难 只适用于过程式语言,不适用于4GL,(2)文本复杂性度量,程序语言符号长度 N=N1+N2N1:程序中操作符总个数n1:程序中不同操作符个数N2:程序中操作数总个数n2:程序中不同操作数个数 估算公式 N=n1log2n1+n2log2n2 程序量V=N log2(n1+n2),(3)控制结构的复杂性度量,1976,T.J.McCabe 基于程序拓扑结构的软件复杂性度量模型 巡回秩数V(G)V(G)=e n+2=边数 结点数+2可以证明:V(G)=有界或无界的封闭区域个数,程序控

12、制结构的复杂性,2.软件可靠性度量,软件的可靠性在某个给定时间间隔内,程序按照规格说明成功运行的概率,(1)系统故障率,(2)软件修复与软件有效性,有效性函数A(t)系统在t时刻正常运行的概率可靠性函数R(t)系统在0,t时间间隔正常运行的概率A=MTTF/(MTTF+MTTR)MTTF为平均无故障时间,MTTR为平均修复时间,A为机器的稳定性,(3)软件可靠性估算,错误植入模型N:池塘中的鱼尾数Nt:植入的带标记的鱼尾数n:捞出的鱼尾数nt:捞出的带标记的鱼数,小 结,软件评价标准 软件结构 模块化 模块独立性 软件度量,思考题,你认为评价软件好坏有哪些标准?在设计软件结构时应遵循哪些原则?某软件项目如果采用四代语言开发,LOC度量还有意义吗?为什么?一个程序能既正确又不可靠吗?试说明理由。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号