软件工程第7章_第1页
软件工程第7章_第2页
软件工程第7章_第3页
软件工程第7章_第4页
软件工程第7章_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北华大学计算机学院 软件工程 软件工程 第7章软件设计基础 北华大学计算机学院 软件工程 8 1 1软件设计过程 Text Text 北华大学计算机学院 软件工程 8 1 2抽象与逐步求精 北华大学计算机学院 软件工程 逐步求精 抽象 求精 北华大学计算机学院 软件工程 信息隐藏 模块内所含信息对那些不需要这些信息的模块不可访问 每个模块只完成一个相对独立的特定功能 模块独立性 Moduleindependence 好设计的关键 每个模块完成一个相对独立的子功能 并且与其它模块间的接口简单 独立性的度量 耦合 Coupling 内聚 Cohesion 北华大学计算机学院 软件工程 低级内聚度 3个 北华大学计算机学院 软件工程 中级内聚度 2个 北华大学计算机学院 软件工程 高级级内聚度 2个 北华大学计算机学院 软件工程 七种 内聚模块 的性能比较 北华大学计算机学院 软件工程 模块间的耦合 耦合 表示一个软件结构内各个模块之间的互连程度 尽量选用松散耦合的系统 1 非直接耦合 两个模块中任一个 都不依赖于对方能独立工作 1 非直接耦合 2 数据耦合 2 数据耦合两个模块间通过参数交换信息 而信息仅限于数据 北华大学计算机学院 软件工程 3 特征耦合 住户详情数据结构中包括 本月用水量 本月用电量 特征耦合 图可改进 数据耦合 图 如果两个模块都与同一个数据结构有关 则为特征耦合 北华大学计算机学院 软件工程 4 当模块A向模块B所传递的信息控制了B的内部逻辑 4 控制耦合 5 外部耦合 5 若干模块均与同一个外部环境关联 如 I O 格式 通信协议 北华大学计算机学院 软件工程 6 公共耦合 7 内容耦合 病态耦合 6 如果两个模块都和同一个公共数据域有关 7 一个模块和另一个模块的内部属性有关 运行程序和内部数据 如 一个模块使用另一个模块内部的数据或控制信息 一个模块直接转移到另一个模块 模块A中TRC 模块B中GOTOTRC 北华大学计算机学院 软件工程 设计模块时 应以数据耦合为主 辅以特征耦合与控制耦合 消除公共耦合和内容耦合 七种 耦合模块 的性能比较 北华大学计算机学院 软件工程 耦合 内聚与模块独立性的关系 北华大学计算机学院 软件工程 7 1 4软件总体结构设计 softwarearchitecture 目标 模块化的程序结构 明确各模块之间的控制关系 说明程序的输入输出数据流 进一步协调程序结构和数据结构 北华大学计算机学院 软件工程 结构设计原则 2 模块规模适中 过大不易理解 太小则接口开销过大 注意分解后不应降低模块的独立性 提高模块独立性争取低耦合 高内聚 增加内聚 减少耦合 北华大学计算机学院 软件工程 深度 分层的层数 过大表示分工过细 宽度 同一层上模块数的最大值 过大表示系统复杂度大 3 选择适当的深度 宽度 扇出和扇入 北华大学计算机学院 软件工程 扇出 一个模块直接调用 控制的模块数 3 fan out 9 扇入 直接调用该模块的模块数在不破坏独立性的前提下 fan in大的比较好 北华大学计算机学院 软件工程 4 作用域在控制域内 控制域 M的控制域为 M A B C 作用域 M中的一个判定所影响的模块 例如 上例中A的作用超出了控制域 改进方法之一 可以把A中的if移到M中 方法之二 可以把C移到A下面 北华大学计算机学院 软件工程 5 降低接口的复杂程度 接口复杂可能表明模块的独立性差 6 单出单入 避免内容耦合 7 模块功能可预测 相同输入必产生相同输出 反例 模块中使用全局变量或静态变量 则可能导致不可预测 北华大学计算机学院 软件工程 7 2软件过程设计技术和工具7 2 1结构化程序设计 结构化设计图形表示法 北华大学计算机学院 软件工程 7 2 2图形表示法 1 流程图 也称为程序框图 是最常用的一种表示法 顺序 分支 和 循环 三个基本控制构件用流程图表达的形式如图8 2 1所示 F 第二个任务 顺序结构 then部分 else部分 do while循环 第一个任务 T 分支条件 If then else结构 循环条件 循环体 T F 图8 2 1流程图构件 北华大学计算机学院 软件工程 7 2 2图形表示法 2 盒图也称为N S图或Chapin图 这种表达方式取消了流程线 它强迫程序员以结构化方式思考和解决问题 第一个任务第二个任务第三个任务 顺序结构 else部分 then部分 条件 F T if then else结构 do while部分 循环条件 循环结构 图8 2 3盒图的构件 北华大学计算机学院 软件工程 7 2 3判定表与判定树 判定表由四部分组成 用于 条件复杂 根据这些条件的组合选择动作 判定表的每一列可解释为一条处理规则 北华大学计算机学院 软件工程 7 2 3判定表与判定树 例7 2 问题处理描述 耗电记费系统可以采用固定价格收费 浮动价格收费和其他方式收费三种方式 若采用固定价格方式收费 对每月耗电100kW h以下的用户只征收最低标准费 超过100kW h的用户按价格表A收费 若采用浮动价格方式收费 则每月耗电100kW h以下的用户按价格A收费 超过100kW h的用户按价格B收费 北华大学计算机学院 软件工程 表7 1判定表 条件 动作 北华大学计算机学院 软件工程 例7 2 判定树 耗电 100kW h 收取最低标准费固定方式耗电 100kW h 按价格表A收费耗电 100kW h 按价格表A收费耗电收费浮动方式耗电 100kW h 按价格表B收费其他方式 其他处理图8 2 5用判定树表示计算耗电收费的算法 北华大学计算机学院 软件工程 7 2 3判定表与判定树 判定树的优点 形式简单 直观明了 易于掌握 判定树的缺点 存在着数据冗余的问题 相同的数据元素往往要重复多次 而且越接近树的叶端重复的次数越多 判定树要求对条件进行层次划分 若条件所处层次不对 可能会导致增加判定树的复杂性 北华大学计算机学院 软件工程 7 2 4过程设计语言 PDL PDL ProcedureDesignLanguage 也称为结构英语或伪码 是所有正文形式的过程设计工具的统称 PDL经常表现为一种 混杂 的形式 允许自然语言 如英语 的词汇与某种结构化程序设计语言 如Pascal C Ada等 的语法结构交织在一起 北华大学计算机学院 软件工程 7 2 4过程设计语言 PDL PDL应具有下述特点 1 关键字采用固定语法并支持结构化构件 数据说明机制和模块化 2 处理部分采用自然语言描述 3 允许说明简单 标量 数组等 和复杂 链表 树等 的数据结构 4 子程序的定义与调用规则不受具体接口方式的影响 北华大学计算机学院 软件工程 7 2 4过程设计语言 PDL 考察一个PDL的原型 它可以建立在任意一个通用的结构化程序设计语言之上 基本成分包括 子程序定义 界面描述 数据说明 块结构 分支结构 循环结构和I O结构 数据说明的形式为 TYPEIS其中 局部变量或全局变量 某个特定关键字 例如 SCALAR ARRAY LIST STRING STRUTURE等 说明此处定义的变量在该过程或整个程序中应如何使用 北华大学计算机学院 软件工程 7 2 4过程设计语言 PDL 可进行抽象数据类型的定义 例如 TYPEtable 1ISINSTACEOFsymbol table而symbol table在另一处已定义如下 TYPEsymbol tableISSTRUCTUREDEFINED 北华大学计算机学院 软件工程 7 2 4过程设计语言 PDL 该PDL的块结构描述一个过程元素 即一个块内的所有语句将作为一个整体执行 形式为BEGIN END该PDL的分支结构有if then else和case两种形式 分别为IFTHENELSEENDIF 北华大学计算机学院 软件工程 7 2 4过程设计语言 PDL CASEOFWHENSELECTWHENSELECT WHENSELECTDEFAULT ENDCASE 北华大学计算机学院 软件工程 7 2 4过程设计语言 PDL 循环结构包括三类 表达形式分别为 DOWHILEENDWHILEREPEATUNTILENDREPEATDOFOR ENDFOR 北华大学计算机学院 软件工程 7 2 4过程设计语言 PDL 此PDL还提供了NEXT和EXIT两种语句 EXIT语句 退出本层循环 NEXT语句强迫本次循环结束 新一轮循环开始 在该PDL中 子程序说明为 PROCEDUREINTERFACEEND其中属性表指明该子程序的引用特性 比如 是INTERNAL还是EXTERNAL模式 和其他依赖于实现 即程序设计语言 的特性 北华大学计算机学院 软件工程 7 2 4过程设计语言 PDL 输入 输出说明部分常用的形式有READ WRITETO或ASKANSWER后一种形式多用于人机交互部分的设计 北华大学计算机学院 软件工程 7 3设计规格说明与评审 软件设计阶段的输出主要是设计规格说明书 第一节 描述与设计活动有关的各个方面 该节中许多信息取自系统规格说明书和系统定义阶段产生的其他文档 第二节 具体指明引用信息的出处 第三节 设计描述 是概要设计的产物 此时设计由信息驱动 即软件总体结构主要受数据流程 数据结构的影响 需求分析时产生的DFD或其他某种形式的数据表示将在这一节中进一步精化 用于确定软件结构 当信息流程确定后 界面亦可作为整个软件的一部分进行描述 北华大学计算机学院 软件工程 7 3设计规格说明与评审 第四 五两节是概要设计向详细设计过渡后形成的 第四节 模块指软件中可单独编址的部件 如函数和过程 最初用自然语言描述它们的功能 随后采用某种过程设计工具将这些自然语言描述转换为结构化描述 第五节 主要描述数据组织结构 包括辅存的文件结构 全局数据 例如FORTRAN公共区 的赋值以及这些文件与全局数据的交叉访问关系 北华大学计算机学院 软件工程 7 3设计规格说明与评审 第六节 是与需求规格说明书的交叉访问表 根据交叉访问表可断定设计是否满足所有需求 这对于完成某个具体需求的模块来说十分重要 第七节 是测试的初步计划 一旦软件结构和模块间界面确定下来之后 即可制定模块单元测试和联调的计划 某些场合 要求同时开发测试规格说明书与设计规格说明书 此时第七节可从设计规格说明书中删去 第八节 将逐条说明各种限制和造成的影响 第九 十两节 包括若干辅助数据 如从其他文档中节选的算法描述 候选的过程 表格化数据和其他相关信息 这些信息是对设计的一种特殊注释最后开发一基本操作规格说明或安装手册作为附录 北华大学计算机学院 软件工程 设计规格说明书示例 作用范围A 系统目标B 硬件 软件和人机界面C 主要的系统功能D 外部数据库定义E 主要的设计约束和限制 文档A 现有的软件文档B 系统文档C 卖主 硬件的和软件的 的有关文档D 技术参考书 北华大学计算机学院 软件工程 设计规格说明书示例 设计描述A 数据描述1 数据流复审2 数据结构复审B 导出的程序结构C 结构之间的界面 北华大学计算机学院 软件工程 设计规格说明书示例 模块描述 针对每个模块给出A 处理过程陈述B 接口描述C 设计语言 或其他形式 描述D 引用的模块E 数据组织F 注释 北华大学计算机学院 软件工程 设计规格说明书示例 文件结构及全局数据A 外部文件结构1 逻辑结构2 逻辑记录描述3 访问方式B 全局数据C 文件与数据的交叉访问表 需求交叉访问矩阵 北华大学计算机学院 软件工程 设计规格说明书示例 测试准备A 测试指南B 集成策略C 特殊考虑 装配A 特殊的程序覆盖要求B 转换方面的考虑 特别注释 附录 北华大学计算机学院 软件工程 设计规格说明的评审 为了确保文档的质量 还必须对设计文档进行评审 评审的目的在于及早发现设计中的缺陷和错误 评审包括软件总体结构 数据结构 结构之间的界面以及模块过程细节四个方面 重点考虑 软件结构能否满足需求 结构的形态是否合理 层次是否清晰 模块的划分是否遵循模块化和信息隐蔽的思想 系统的人机界面 各模块的接口以及出错处理是否恰当 模块的设计能否满足功能与性能要求 选择的算法与数据结构是否合理 能否适应编程语言 等等

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论