- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程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) 细节隐藏 可理解性 修改副作用小 错误副作用小 模块化的抽象特征 模块化的抽象特征 3. 模块独立性(Module independence) 分解模块的关键: 1)可命名—名字有隐含语义 2)每个模块完成一个相对独立的子功能,并且与其它模块间的接口简单。 独立性的度量(Yourdon Constantine,1978) 耦合(Coupling) — 块间联系 内聚(Cohesion) — 块内联系 (1)耦合(Coupling) 对一个软件结构内不同模块之间互连程度的度量 零耦合(uncoupling) 彼此完全独立,这意味着模块间无任何连接,耦合程度最低 数据耦合(Data Coupling) 两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据 控制耦合(Control Coupling) 传递的信息中有控制信息(尽管有时这种控制信息以数据的形式出现) 公共环境耦合(Common Coupling) 两个或多个模块通过一个公共数据环境相互作用 内容耦合(Content Coupling) 一个模块访问另一个模块的内部数据 一个模块不通过正常入口而转到另一个模块的内部 两个模块有一部分程序代码重叠(只可能出现在汇编程序中) 一个模块有多个入口 内容耦合 内容耦合 耦合度与软件结构 (2)内聚(Cohesion) 一个模块内各个元素彼此结合的紧密程度 理想的模块内聚只做一件事情 模块内的高内聚往往意味着模块间的松耦合 内聚更重要! 偶然内聚(Coincidental cohesion) Unrelated functions, processes, or data are found in the same module (for convenience) 逻辑内聚(Logical Cohesion) Logically related functions or data are placed in the same module 逻辑内聚 时间内聚(Temporal cohesion) The functions are related only by the timing involved 过程内聚(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 顺序内聚(Sequential cohesion) The output from one part of a module is the input to the next part 功能内聚(Functional cohesion) Every processing element is essent
您可能关注的文档
最近下载
- 棉花轻简栽培技术-3.ppt VIP
- 《面向多式联运的可信数据空间建设技术规范》.pdf VIP
- 爆炸和火灾危险环境电力装置设计规范.pdf VIP
- 4大寨沟泥石流治理.ppt VIP
- 六年级数学下册期末综合模拟测试卷(北师版).pdf VIP
- 高速铁路桥隧建筑物修理规则(试行),铁运[2011]131号.pdf VIP
- GBT33399-2016光学功能薄膜聚对苯二甲酸乙二醇醋(PET)薄膜厚度测定方法.pdf VIP
- 民法典买卖合同课件教学.pptx
- 中煤曹庄矿 100MW_200MWh 储能电站示范项目报告表.pdf VIP
- 最全学科带头人教学能手选拔理论试题及答案(教师基本素养试题).doc VIP
文档评论(0)