欢迎来到天天文库
浏览记录
ID:41326561
大小:462.56 KB
页数:49页
时间:2019-08-22
《《软件质量评价》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件工程SoftwareEngineering武汉大学计算机学院第2章软件质量评价什么是好的软件?有何特点?软件评价的标准如何?什么是软件结构?什么是良软件结构?什么是模块化?模块设计时应遵循的标准是什么?一、软件质量评价标准定性评价用户角度:达到需求、界面友好、简单易学开发人员角度:良结构、易测试、易维护、可移植…定量评价:软件度量宏观标准良软件结构文档齐全可靠性二、软件结构软件的各个组成部分之间的关系问题P同一问题的三种不同软件结构基本概念块扇出:由一个块所直接控制的块数扇入:直接调用它的上级块数目深度:控制的总层数宽度:跨度最宽层的跨度数MM1M
2、2M3N1N2N3N4N31N32软件结构1.良软件结构具有层次性,无回路块调用的软件结构。…线性型树型半序型非良结构的调整网络结构AB合并循环节点良结构AB模块内部复杂性增加了2.模块化(modularity)模块(Module)、单元(Cell)模块化把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能,满足用户的需求。模块化的依据c(x):问题x的复杂程度E(x):解决问题x需要的工作量(时间)对于两个问题P1和P2ifC(P1)>C(P2)thenE(P1)>E(P2)若P能分解为P
3、1、P2两个部分,由经验有:C(P)>C(P1)+C(P2)E(P)>E(P1)+E(P2)块的划分与总工作量之间的关系接口成本最小成本区域总成本块成本成本(工作量)模块数M在一个16开页面内可写完,若50行代码模块的重要特征抽象(abstraction)忽略细节,分层理解问题,自顶向下层层细化信息隐藏(informationhiding)细节隐藏可理解性修改副作用小错误副作用小例:开发一个CAD软件,实现一个二维绘图系统的全部功能,供初级计算机辅助设计者使用。抽象层次I用问题环境的术语来描述这个软件该软件包括一个计算机绘图界面,向绘图员显示图形;一
4、个数字化界面,用于绘图员绘制直线、折线、矩形、圆及曲线等;所有几何图的计算、所有的剖面图和辅助视图都可以用这个CAD软件实现……模块化的抽象特征模块化的抽象特征抽象层次II任务需求的描述,列出“What”而不是“How”CADSOFTWARETASKS:userinteractiontask;2-Ddrawingcreationtask;graphicsdisplaytask;drawingfilemanagementtask;END3.模块独立性(Moduleindependence)分解模块的关键:1)可命名—名字有隐含语义2)每个模块完成一个相
5、对独立的子功能,并且与其它模块间的接口简单。独立性的度量(Yourdon&Constantine,1978)耦合(Coupling)—块间联系内聚(Cohesion)—块内联系(1)耦合(Coupling)GreatdealofdependenceIndependentHighlycoupledLooselycoupledUncoupledGoal:aslooseaspossible=asindependentaspossible对一个软件结构内不同模块之间互连程度的度量零耦合(uncoupling)彼此完全独立,这意味着模块间无任何连接,耦合程度
6、最低Uncoupled数据耦合(DataCoupling)两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据ThemostdesirableABData控制耦合(ControlCoupling)传递的信息中有控制信息(尽管有时这种控制信息以数据的形式出现)ABFlagF2FnF1…………Flag接口单一,但仍然影响被控模块的内部逻辑。公共环境耦合(CommonCoupling)两个或多个模块通过一个公共数据环境相互作用Global:V1V2A:……………………A1=V1+V2……………………B:……………………V1=B1……………………Glo
7、bal:V1V2A:……………………V1++……………………B:……………………V2=B1+V1……………………问题:公共部分的改动将影响所有调用它的模块公共部分的数据存取无法控制复杂程度随耦合模块的个数增加而增加内容耦合(ContentCoupling)一个模块访问另一个模块的内部数据一个模块不通过正常入口而转到另一个模块的内部两个模块有一部分程序代码重叠(只可能出现在汇编程序中)一个模块有多个入口Theleastdesirable内容耦合例1.A访问C的内部数据或不通过正常入口而转入C的内部。……ABCDA:……………………gotoC1……
8、………………C:……………………C1:…………内容耦合例2.部分代码重叠(常出现在汇编程序中)
此文档下载收益归作者所有