SE 第02章 软件质量评价 软件工程 教学课件.pptVIP

SE 第02章 软件质量评价 软件工程 教学课件.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SE 第02章 软件质量评价 软件工程 教学课件

软件工程 Software Engineering 计算机学院 软件工程课程组 第2章 软件质量评价 什么是好的软件?有何特点? 软件评价的标准如何? 什么是软件结构?什么是良软件结构? 什么是模块化? 模块设计时应遵循的标准是什么? 一、软件质量评价标准 定性评价 用户角度:达到需求、界面友好、简单易学 开发人员角度:良结构、易测试、易维护、可移植 … 定量评价:软件度量 宏观标准 可靠性 良软件结构 文档齐全 二、软件结构 软件的各个组成部分之间的关系 基本概念 块 扇出:直接由一个块所控制的块数 扇入:直接调用它的上级块数目 深度:控制的总层数 宽度:跨度最宽层的跨度数 1. 良软件结构 具有层次性,无回路块调用的软件结构。 非良结构的调整 2. 模块化(modularity) 模块(Module)、单元(Cell) 模块化 把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。 模块化的依据 c(x):问题 x 的复杂程度 E(x):解决问题 x 需要的工作量(时间) 对于两个问题P1和P2 if C(P1) C(P2) then E(P1) E(P2) 若P能分解为P1、P2两个部分,由经验有: C(P) C(P1)+C(P2) E(P) E(P1)+E(P2) 块的划分与总工作量之间的关系 模块的重要特征 抽象(abstraction) 忽略细节,分层理解问题,自顶向下层层细化 信息隐藏(information hiding) 细节隐藏 可理解性 修改副作用小 错误副作用小 模块化的抽象特征 模块化的抽象特征 信息隐蔽和局部化 由 parnas 方法提倡的信息隐蔽原理认为:每个模块的实现细节对于其它模块来说是隐蔽的。也就是说,模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用。 信息隐蔽对于软件的测试与维护都有很大的好处。因为信息隐蔽可以减少把一个模块的错误扩散到其他模块中的机会。而且,信息隐蔽简化了软件结构的复杂性。 信息隐蔽和局部化 通过信息隐藏,可以定义和实施对模块的过程细节和局部数据结构的存取限制。 实现信息隐藏的模块具有很强的可移植性和易维护性。 所谓局部化就是把一些关系密切的软件元素物理地放得比较靠近。严格控制数据对象可以访问的范围。 局部化有助于信息隐蔽。 3. 模块独立性(Module independence) 好设计的关键: 每个模块完成一个相对独立的子功能,并且与其它模块间的接口简单。 独立性的度量(Yourdon Constantine,1978) 耦合(Coupling) — 块间联系 内聚(Cohesion) — 块内联系 (1)耦合(Coupling) 对一个软件结构内不同模块之间互连程度的度量 零耦合(uncoupling) 彼此完全独立,这意味着模块间无任何连接,耦合程度最低 数据耦合(Data Coupling) 两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据 控制耦合(Control Coupling) 传递的信息中有控制信息(尽管有时这种控制信息以数据的形式出现) 公共环境耦合(Common Coupling) 两个或多个模块通过一个公共数据环境相互作用 内容耦合(Content Coupling) 一个模块访问另一个模块的内部数据 一个模块不通过正常入口而转到另一个模块的内部 两个模块有一部分程序代码重叠(只可能出现在汇编程序中) 一个模块有多个入口 内容耦合 内容耦合 耦合度与软件结构 (2)内聚(Cohesion) 一个模块内各个元素彼此结合的紧密程度 理想内聚的模块只做一件事情 模块内的高内聚往往意味着模块间的松耦合 内聚更重要! 偶然内聚(Coincidental cohesion) 当模块内各部分之间没有联系,或者即使有联系,这种联系也很松散,则称这种模块为巧合内聚模块,它是内聚程度最低的模块。 缺点是模块的内容不易理解,不易修改和维护。 逻辑内聚 指模块内执行几种逻辑上相似的功能,通过参数确定该模块完成哪一个功能。这是一个单入口多功能模块。 这种模块内聚程度有所提高,各部分之间在功能上有相互作用。但是这种模块: 接口参数复杂,难于理解,不易修改。 造成了模块间的控制耦合。 运行时占用内存, 降低系统效率。 逻辑内聚 时间内聚(Temporal cohesion) 时间内聚又称为经典内聚(Classical Cohesion)。把需要同时执行的动作组合在一起形成的模块为时间内聚模块。如初始化一组变量,同时打开若干文件,同时

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档