软件工程课件 第 总体设计.ppt_第1页
软件工程课件 第 总体设计.ppt_第2页
软件工程课件 第 总体设计.ppt_第3页
软件工程课件 第 总体设计.ppt_第4页
软件工程课件 第 总体设计.ppt_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

LOADING L O A D I N G D G I L 第4章总体设计 案例分析一 设计原理 结构程序设计 启发规则 面向数据流的设计方法 教学单位 教师介绍 南京信息工程大学NANJINGUNIVERSITYOFINFORMATIONSCIENCE TECHNOLOGY Instructor BiShuoben 毕硕本 Email bishuoben Tel 025 58699833 H SoftwareEngineering 4 4 4 1 4 2 4 3 4 5 4 1案例分析一 招聘考试成绩管理系统 4 1案例分析一 招聘考试成绩管理系统 5 1 1数据库结构设计 管理员数据表 考场数据表 考生数据表 录用考生 4 1案例分析一 招聘考试成绩管理系统 5 1 2系统结构设计 一 二 三 确定出各个模块及其关系 数据流图需进一步细化 用层次图或结构图来表示 招聘考试成绩管理系统HIPO图 4 1案例分析一 招聘考试成绩管理系统 5 1 3设计测试方案 录用模块 Text 考前处理模块 成绩信息模块 4 2案例分析二 高校工资管理系统 从完整的工资管理系统数据流图出发 事务数据和人事数据沿两条输入通路进入系统 输出数据沿着一条输出通路离开系统 数据流图中没有明显的事务中心 4 2案例分析二 高校工资管理系统 1 分析确定输入流和输出流的边界 以孤立出变换中心 4 2案例分析二 高校工资管理系统 2 完成 第一级分解 就是确定系统的总体控制结构 通常变换分析得到的系统高层结构是一个 三叉 的控制结构 工资管理系统的第一层分解 4 2案例分析二 高校工资管理系统 3 完成 第二级分解 就是把数据流图中的每个处理映射成软件结构中的一个适当模块 变换分析的映射原则 4 2案例分析二 高校工资管理系统 第二级分解 4 2案例分析二 高校工资管理系统 4 对工资管理系统的初步设计结果进行优化 优化后的工资管理系统软件结构分解 4 3设计原理 模块化就是把程序划分成独立命名且可独立访问的模块 每个模块完成一个子功能 把这些模块集成起来构成一个整体 可以完成指定的功能满足用户的需求 5 3 1模块化 4 3设计原理 模块化和软件成本 4 3设计原理 抽象就是抽出事物的本质特性而暂时不考虑它们的细节 软件工程过程的每一步都是对软件解法的抽象层次的一次精化 5 3 2抽象 4 3设计原理 达到了抽象的最低层 可行性研究 需求分析 总体设计到详细设计 软件工程过程的每一步 软件解法是使用在问题环境内熟悉的方式描述的 抽象的程度也就随之减少了 软件作为系统的一个完整部件 4 3设计原理 模块化的概念 与抽象是紧密相关的 随着软件开发工程的进展 在软件结构每一层中的模块 表示了对软件抽象层次的一次精化 软件结构顶层的模块 控制了系统的主要功能并且影响全局 在软件结构底层的模块 完成对数据的一个具体处理 4 3设计原理 把抽象是 为了能集中精力解决主要问题而尽量推迟对问题细节的考虑 抽象与求精是一对互补的概念 5 3 3逐步求精 抽象使得设计者能够说明过程和数据 同时却忽略低层细节 求精则帮助设计者在设计过程中逐步揭示出低层细节 4 3设计原理 5 3 4信息隐藏和局部化 4 3设计原理 模块独立的概念是模块化 抽象 信息隐藏和局部化概念的直接结果 开发具有独立功能而且和其他模块之间没有过多的相互作用的模块 就可以做到模块独立 耦合衡量不同模块彼此间互相依赖 连接 的紧密程度 内聚衡量一个模块内部各个元素彼此结合的紧密程度 5 3 5模块独立 4 3设计原理 内聚 模块各元素执行相同的任务内聚级别 偶然内聚逻辑内聚时间内聚过程内聚通信内聚顺序内聚功能内聚 最差 最好 4 3设计原理 偶然内聚 为方便把不相干的元素组合在一起严重的缺点 产品的可维护性退化 模块是不可复用的 增加软件成本 解决途径 将模块分成更小的模块 每个小模块执行一个操作 4 3设计原理 逻辑内聚 把逻辑上相似的功能结合到一个模块中 缺点 会增加开关量 不易修改 不易理解 效率低等问题 解决途径 尽量避免这种逻辑性内聚 4 3设计原理 时间内聚 某段时间执行的若干功能任务放在同一模块中例如 系统的初始化问题 不同的功能混在一个模块中 有时共用部分编码 使局部功能的修改牵动全局 4 3设计原理 过程内聚 模块中的各功能元素相关 并且按特定次序执行例如 读写并更新数据记录 4 3设计原理 通信内聚 模块中的成分需用同样数据例如 某模块的各成分都利用一符号表进行操作 从同一磁带上读取不相干的数据 问题 可能破坏独立性 4 3设计原理 顺序内聚 模块的输出是下一模块的输入 模块的各成分利用相同的输入或产生相同的输出 功能内聚 为完成一个任务把所需的全部功能组合在一起 原则 力争高内聚和识别低内聚 可以使得设计的软件具有较高的功能独立性 4 3设计原理 内聚示例 4 3设计原理 耦合是度量系统中模块之间的交互程度 耦合从低到高依次为 非直接耦合 最好 数据耦合 标记耦合 控制耦合 外部耦合 公共耦合和内容耦合 最差 2 耦合 4 3设计原理 内容耦合contentcoupling如果两个模块中的一个直接引用了另一个模块的内容 则它们之间是内容耦合 2 耦合 例1 A访问C的内部数据或不通过正常入口而转入C的内部 4 3设计原理 2 耦合 例2 部分代码重叠 常出现在汇编程序中 例3 一个模块有多个入口 功能 Theleastdesirablemustbeavoided 4 3设计原理 公共耦合commoncoupling如果两个模块都可以存取相同的全局数据 则它们之间是公共耦合 2 耦合 4 3设计原理 公共耦合存在的问题 公共部分的改动将影响所有调用它的模块 公共部分的数据存取无法控制 复杂程度随耦合模块的个数增加而增加 解决方法 通过使用信息隐藏来避免公共耦合 2 耦合 4 3设计原理 外部耦合externalcoupling当模块与软件的外部环境联结在一起 并受到约束时就出现较高程度的耦合 则它们之间为外部耦合 2 耦合 4 3设计原理 控制耦合controlcoupling如果两个模块中的一个模块给另一个模块传递控制信息 则它们具有控制耦合 2 耦合 特点 接口单一 但仍然影响被控模块的内部逻辑 4 3设计原理 标记耦合stampcoupling如果两个模块都要使用同一数据结构的一部分 不是采用全局公共数据区共享 而是通过模块结构传递数据结构的一部分 则它们之间为标记耦合 数据耦合datacoupling被调用模块的输入与输出是简单的参数或者是数据结构 该数据结构中的所有元素为被调用的模块使用 则它们之间为数据耦合 非直接耦合nodirectcoupling两个模块之间没有联系 则它们之间为非直接耦合 2 耦合 Themostdesirable 4 3设计原理 实现低耦合 采取下列措施 耦合方式采用非直接耦合 不采用直接耦合 传递信息类型尽量使用数据耦合 少采用控制耦合 外部耦合和公共耦合限制使用 耦合数量模块间相互调用时 传递参数最好只有一个 2 耦合 4 4启发规则 争取低耦合 高内聚增加内聚 减少耦合模块规模适中过大 分解不充分 不易理解 太小 则开销过大 接口复杂 适当控制模块结构参数深度 分层的层数 过大表示分工过细 宽度 同一层上模块数的最大值 过大 表示系统复杂度大 4 4启发规则 软件结构 4 4启发规则 扇出 一个模块直接调用 控制的模块数 3 fan out 9 扇入 直接调用该模块的模块数在不破坏独立性的前提下 fan in大的比较好 4 4启发规则 尽可能减少高扇出结构 随着深度增大扇入如果一个模块的扇出数过大 就意味着该模块过分复杂 需要协调和控制过多的下属模块 应当适当增加中间层次的控制模块 一般来说 顶层扇出高 中间扇出少 低层高扇入 4 4启发规则 模块的作用范围保持在该模块的控制范围内控制域指该模块本身以及所有直接或间接从属于它的模块 作用域是指该模块中一个判断所影响的所有其它模块 控制域 M的控制域为 M A B C M的作用域为 M A C 作用域 M中的一个判定所影响的模块 4 4启发规则 例 改进方法之一 可以把A中的if移到M中 改进方法之二 可以把C移到A下面 4 4启发规则 降低接口的复杂程度模块接口的复杂性是引起软件错误的一个主要原因 接口设计应该使得信息传递简单并且与模块的功能一致 单出口单入口 避免内容耦合易于理解和维护 模块功能可预测相同输入必产生相同输出 4 5面向数据流的设计方法 面向数据流的设计方法把数据流 信息流 映射成软件结构 数据流的类型决定了映射的方法 1 变换流信息沿输入通路进入系统 同时由外部形式变换成内部形式 进入系统的信息通过变换中心 经加工处理以后再沿输出通路变换成外部形式离开软件系统 5 5 1模块独立 4 5面向数据流的设计方法 变换流 4 5面向数据流的设计方法 2 事务流数据沿输入通路到达一个处理 这个处理根据输入数据的类型在若干个动作序列中选出一个来执行 这类数据流称为事务流 4 5面向数据流的设计方法 事务流 4 5面向数据流的设计方法 变换分析是经过若干步骤把具有变换流特点的数据流图按预先确定的模式映射成软件结构 5 5 2变换分析 设计步骤 4 5面向数据流的设计方法 例 汽车数字仪表板的设计 5 5 3变换流分析 功能 通过模 数转换实现传感器和微处理机接口 在发光二极管面板上显示数据 指示每小时英里数 mph 行驶的里程 每加仑油行驶的英里数 mpg 等等 指示加速或减速 如果车速超过55mph 则发出警告铃声 4 5面向数据流的设计方法 第一

温馨提示

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

评论

0/150

提交评论