第2章软件质量评价19177.pptx
《第2章软件质量评价19177.pptx》由会员分享,可在线阅读,更多相关《第2章软件质量评价19177.pptx(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章第二章 软件质量评价软件质量评价武汉大学武汉大学 计算机学院计算机学院 软件工程课程组软件工程课程组软件工程Software EngineeringSoftware EngineeringSoftware Engineering思考思考?n 什么是好的软件?什么是好的软件?n 软件质量好坏如何评价?软件质量好坏如何评价?Software EngineeringSoftware Engineering第二章第二章软件质量评价软件质量评价n 什么是好的什么是好的软件软件?有何特点?有何特点?n 软件评价的标准如何?软件评价的标准如何?n 什么是软件结构?什么是良软件结构?什么是软件结构?什么
2、是良软件结构?n 什么是模块化?什么是模块化?n 模块设计时应遵循的标准是什么?模块设计时应遵循的标准是什么?Software EngineeringSoftware Engineering一、软件质量评价标准一、软件质量评价标准n 有效可靠有效可靠n 结构清晰结构清晰q用户角度:达到需求、界面友好、简单易学用户角度:达到需求、界面友好、简单易学q开发人员角度:良结构、易测试、易维护、可开发人员角度:良结构、易测试、易维护、可移植移植 n 文档齐全文档齐全Software EngineeringSoftware Engineering二、软件结构二、软件结构F 软件的各个组成部分之间的关系软件
3、的各个组成部分之间的关系问题问题P同一个问题P的三种不同的软件结构Software EngineeringSoftware Engineering基本概念基本概念n n块:块:块:块:可以独立命名和编址可以独立命名和编址可以独立命名和编址可以独立命名和编址的单元的单元的单元的单元n n扇出扇出扇出扇出:直接由一个块所控:直接由一个块所控制的块数制的块数 n n扇入扇入扇入扇入:直接调用它的上级:直接调用它的上级块数目块数目n n深度深度深度深度:控制的总层数:控制的总层数 n n宽度宽度宽度宽度:跨度最宽层的跨度:跨度最宽层的跨度数数 MMM1M1M2M2M3M3N1N1N2N2N3N3N4N
4、4N31N31N32N32软件结构软件结构Software EngineeringSoftware Engineering1.良软件结构良软件结构F具有层次性,无回路块调用的软件结构。具有层次性,无回路块调用的软件结构。线性型线性型树型树型半序型半序型Software EngineeringSoftware Engineering非良结构的调整非良结构的调整网络结构网络结构A AB B合并循环节点合并循环节点良结构良结构ABAB模块内部模块内部复杂性增加了复杂性增加了Software EngineeringSoftware Engineering2.模块化(模块化(modularity)n模块
5、(模块(module):):又称构件,是能够单独命名又称构件,是能够单独命名并独立地完成一定功能的程序语句的集合。并独立地完成一定功能的程序语句的集合。n模块化模块化n把程序划分成独立命名且可独立访问的模块,把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功成起来构成一个整体,可以完成指定的功能满足用户的需求。能满足用户的需求。n“模块化模块化”有助于复杂问题的求解有助于复杂问题的求解Software EngineeringSoftware Engineering模块化的依据模块化的依据c(x):
6、问题):问题 x 的复杂程度的复杂程度E(x):解决问题):解决问题 x 需要的工作量(时间)需要的工作量(时间)对于两个问题对于两个问题P1和和P2if C(P1)C(P2)then E(P1)E(P2)根据人们求解问题的经验,有规律:根据人们求解问题的经验,有规律:C(P1+P2)C(P1)+C(P2)则有则有 E(P1+P2)E(P1)+E(P2)即即“分而治之分而治之”有助于复杂问题的求解。有助于复杂问题的求解。如果把软件无限细分,如果把软件无限细分,会出现什么样的情况?会出现什么样的情况?Software EngineeringSoftware Engineering块的划分与总工作
7、量之间的关系块的划分与总工作量之间的关系接口成本接口成本最小成本区域最小成本区域总成本总成本块成本块成本成本成本(工作量)(工作量)模块数模块数M 模块划分的合理性。模块两个定性的标准:内聚和耦合。模块划分的合理性。模块两个定性的标准:内聚和耦合。Software EngineeringSoftware Engineering模块的重要特征模块的重要特征n 抽象(抽象(abstraction)q我们在考虑问题时,集中考虑和当前问题有关的方面,而忽略和我们在考虑问题时,集中考虑和当前问题有关的方面,而忽略和当前问题无关的方面,这就是抽象。或者说抽象就是抽出事物的当前问题无关的方面,这就是抽象。或
8、者说抽象就是抽出事物的本质特性而暂时不考虑它们的细节。本质特性而暂时不考虑它们的细节。q在对软件系统进行模块设计时,可以有不同的抽象层次。在对软件系统进行模块设计时,可以有不同的抽象层次。q忽略细节,分层理解问题,自顶向下层层细化忽略细节,分层理解问题,自顶向下层层细化n信息隐藏(信息隐藏(information hiding)F 细节隐藏细节隐藏 可理解性可理解性 修改副作用小修改副作用小 错误副作用小错误副作用小Software EngineeringSoftware Engineering例:开发一个例:开发一个CAD软件,实现一个二维绘图系统的全部功软件,实现一个二维绘图系统的全部功能
9、,供低级计算机辅助设计使用。能,供低级计算机辅助设计使用。抽象层次抽象层次抽象层次抽象层次I I I I 用问题环境的术语来描述这个软件用问题环境的术语来描述这个软件该软件包括一个计算机绘图界面,向绘图员显该软件包括一个计算机绘图界面,向绘图员显示图形,以及一个数字化仪界面,用以代替绘示图形,以及一个数字化仪界面,用以代替绘图板和丁字尺。所有直线、折线、矩形、圆及图板和丁字尺。所有直线、折线、矩形、圆及曲线的描画、所有的几何计算、所有的剖面图曲线的描画、所有的几何计算、所有的剖面图和辅助视图都可以用这个和辅助视图都可以用这个CAD软件实现软件实现模块化的抽象特征模块化的抽象特征Software
10、 EngineeringSoftware Engineering模块化的抽象特征模块化的抽象特征抽象层次抽象层次抽象层次抽象层次IIIIIIII 任务需求的描述,列出任务需求的描述,列出“What”“What”而不是而不是“How”“How”CAD SOFTWARE TASKS:user interaction task;2-D drawing creation task;graphics display task;drawing file management task;ENDSoftware EngineeringSoftware Engineering模块化的抽象特征模块化的抽象特征抽象
11、层次抽象层次抽象层次抽象层次IIIIIIIIIIII 程序过程表示程序过程表示 (以(以2-D2-D绘图生成任务为例)绘图生成任务为例)PROCEDURE 2-D drawing creation REPEAT UNTILE(drawing creation task terminates)DO WHILE(digitizer interaction occurs)Digitizer interface task;DETERMINE drawing request CASE Line:line drawing task;Rectangle:rectangle drawing task;Circ
12、le:circle drawing task;END;DO WHILE(keyboard interaction occurs)keyboard interaction task;PROCESS analysis/computation CASE View:auxiliary view task;Section:cross sectioning task;END;END REPETITION;END PROCEDURE.Software EngineeringSoftware Engineering3.模块独立性(模块独立性(Module independence)n n好设计的关键:好设计的
13、关键:每个模块完成一个相对独立的子功能,并每个模块完成一个相对独立的子功能,并且与其它模块间的接口简单。且与其它模块间的接口简单。n n独立性的度量独立性的度量(Yourdon&Constantine,1978)qq 耦合耦合耦合耦合(CouplingCoupling)块间联块间联块间联块间联系系系系qq 内聚内聚内聚内聚(CohesionCohesion)块块块块内内内内联联联联系系系系Software EngineeringSoftware Engineering(1)耦合()耦合(Coupling)Great deal of dependenceIndependent Highly co
14、upledLoosely coupledUncoupled Goal:as loose as possible=as independent as possibleF 对一个软件结构内不同模块之间互连程度的度量对一个软件结构内不同模块之间互连程度的度量对一个软件结构内不同模块之间互连程度的度量对一个软件结构内不同模块之间互连程度的度量 Software EngineeringSoftware Engineering零耦合(零耦合(uncoupling)n彼此完全独立,这意味着模块间无任何连彼此完全独立,这意味着模块间无任何连接,耦合程度最低接,耦合程度最低Uncoupled ABSoftwar
15、e EngineeringSoftware Engineering数据耦合(数据耦合(Data Coupling)n一个模块访问另一个模块时,彼此间通过一个模块访问另一个模块时,彼此间通过参数交换信息,而且交换的信息仅仅是数参数交换信息,而且交换的信息仅仅是数据据 The most desirableThe most desirable ABDataSoftware EngineeringSoftware Engineering控制耦合(控制耦合(Control Coupling)n指一个模块调用另一个模块时,传递的信息中有指一个模块调用另一个模块时,传递的信息中有控制信息(尽管有时这种控制信
16、息以数据的形式控制信息(尽管有时这种控制信息以数据的形式出现)出现)ABFlagF2FnF1Flag控制耦合增加控制耦合增加了理解与编程了理解与编程及修改的复杂及修改的复杂性。性。Software EngineeringSoftware Engineering公共环境耦合(公共环境耦合(Common Coupling)n两个或多个模块通过一个公共数据环境相互作用两个或多个模块通过一个公共数据环境相互作用Global:V1 V2A:A1=V1+V2B:V1=B1Global:V1 V2A:V1+B:V2=B1+V1问题:问题:复杂程度随耦合模块的个数增加而增加复杂程度随耦合模块的个数增加而增加
17、公共部分的数据存取无法控制公共部分的数据存取无法控制 公共部分的改动将影响所有调用它的模块,可维护性差公共部分的改动将影响所有调用它的模块,可维护性差Software EngineeringSoftware Engineering内容耦合(内容耦合(Content Coupling)n一个模块访问另一个模块的内部数据一个模块访问另一个模块的内部数据n一个模块不通过正常入口而转到另一个模一个模块不通过正常入口而转到另一个模块的内部块的内部n两个模块有一部分程序代码重叠(只可能两个模块有一部分程序代码重叠(只可能出现在汇编程序中)出现在汇编程序中)n一个模块有多个入口一个模块有多个入口 The l
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 质量 评价 19177
限制150内