




已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 分析 问题定义 可行性研究 需求分析问题定义 我 用户 要一辆代步工具 你 开发人员 能给我设计出来吗 可行性研究 你 用户 这个问题 我们 开发人员 能给设计 你是要 1 速度快 慢 2 密闭 非密闭 3 木质 钢铁 4 人力 他力 机械力需求分析 你 要一辆自动挡的带敞篷的小轿车 1 普通自动档汽车的功能它得有 2 能打开 合上敞篷 2 设计阶段 第5章 总体设计 5 1设计过程 5 2设计原理 5 3启发规则 5 4描绘软件结构的图形工具 5 5面向数据流的设计方法 主要内容 5 1设计过程 主要任务 1 设计方案 1 3 制定最佳方案的详细实现计划 可行性研究 草拟开发计划 2 设计软件体系结构 4 5 确定软件系统中的每个程序是由哪些模块组成的 以及这些模块之间的关系 5 1设计过程 1 设想供选择的方案 2 选择合理的方案对每个合理的方案要提供 详细的实现计划 A 系统流程图B 组成系统的物理元素清单C 成本 效益分析D 实现这个系统的进度计划 3 推荐最佳方案4 功能分解 组成系统的所有程序和文件 数据库 5 设计软件结构 1 层次图或结构图5 4节 2 面向数据流的设计方法5 5节 6 数据库设计 7 制定测试计划8 书写文档A 系统说明B 用户手册C 测试计划D 详细的实现计划E 数据库设计结果9 审查和复审 5 2设计原理 把复杂的问题分解成许多容易解决的小问题 5 2 1模块化 模块 由边界元素限定的相邻程序元素 接口 实现 5 2 2抽象 听得多 用的多 但意思表达不出来 5 2 3逐步求精 为了能集中精力解决问题而尽量推迟对问题细节的考虑 1 魔法数字7 2的存在 2 把一个时期内必须解决的问题按优先级进行排序 5 2 4信息隐藏和局部化隐藏 不需要访问我 模块内的各种信息 的就找不到我 局部化 把密切相关的软件元素物理的放的很近 5 2设计原理 5 2 5模块独立使得每个模块完成一个相对独立的子功能 且和其他模块之间的关系很简单 1 独立的模块易于开发 功能清晰且接口简单 2 独立的模块易于测试和维护 一 耦合 耦合 指软件结构内不同模块彼此之间相互依赖的紧密程度 模块独立程度由两个定性标准度量 耦合与内聚 低耦合高内聚 耦合的强弱所依赖的因素 1 一个模块对另一个模块的引用2 一个模块向另一个模块传递的数据量3 一个模块施加到另一个模块的控制的数量4 模块之间接口的复杂程度 耦合的类型 由强到弱 1 内容耦合 一个模块直接修改或操作另一个模块的数据 2 公共环境耦合 两个以上的模块共同引用一个全局数据项 3 控制耦合 一个模块向另一模块传递一个控制信号 接受信号的模块将依据该信号值进行必要的活动 4 数据耦合 模块间通过参数传递基本类型的数据 图中存在公用耦合 假设模块A C E都存取全程数据区 如公用一个磁盘文件 中的一个数据项 如果A模块读取该项数据 然后调用C模块对该项重新计算 并进行数据更新 4 内容耦合一个模块与另一个模块的内容直接发生联系 内容耦合对维护会带来严重的困难 程序中如果一个模块直接把程序转移到另一个模块中 或一个模块使用另一个模块内部的数据 都会产生内容耦合 内容耦合是最高程度的耦合 应该避免采用 建议 尽量使用数据耦合 少用控制耦合 限制公用耦合 完全不用内容偶合 二 内聚 内聚 一个模块内部各个元素彼此结合的紧密程度 常见的内聚有七类 内聚分类 由低到高 1 偶然内聚 一个模块之内各成分之间没有任何关系 2 逻辑内聚 几个逻辑上相关的功能放在同一模块中 3 时间内聚 一个模块完成的功能必须在同一时间内完成 而这些功能只是因为时间因素关联在一起 4 过程内聚 处理成分必须以特定的次序执行 5 通信内聚 各成分都操作在同一数据集或生成同一数据集 6 顺序内聚 各成分与一个功能相关 且一个成分的输出作为另一成分的输入 7 功能内聚 模块的所有成分对完成单一功能是最基本的 且该模块对完成这一功能而言是充分必要的 模块A的处理单元将根据同一个数据文件FILE的数据产生不同的表格 因此它存在通信内聚 完成各种初始化工作的模块 或者处理故障的模块都存在时间内聚 如图 在 紧急故障处理模块 中 关闭文件 报警 保留现场 等任务都必须无中断地同时处理 如图 A B C模块合并成ABC模块之后 ABC模块就是逻辑内聚模块 对逻辑内聚模块的调用 常常需要有一个功能开关 由上层调用模块向它发出一个控制信号 在多个关联性功能中选择执行某一个功能 这种内聚较差 增加了模块之间的联系 不易修改 偶然内聚是最差的一种内聚 常犯这种错误的一种情况是 有时在写完程序后 发现一组语句在多处出现 于是为了节省空间而将这些语句作为一个模块设计 就出现偶然内聚 如图 模块A B C出现公共代码段W 于是将W独立成一个模块 而W中这些语句并没有任何联系 如果在测试中发现模块A不需要做 X Y Z 而应该做 X Y Z 此时对W的维护就很困难了 软件设计中应该 力求做到高内聚 尽量少用中内聚 不用低内聚 5 3启发式规则 1 改进软件结构提高模块独立性2 模块规模应该适中 3 深度 宽度 扇出和扇入都应适当深度 软件结构中控制的层数 宽度 软件结构内同一个层次上的模块总数的最大值 扇出 一个模块直接控制 调用 其它模块的数目 扇入 一个模块被其它模块调用的数目 对扇出 扇入过大的改进 4 模块的作用域应该在控制域之内 作用域 受该模块内一个判定影响的所有模块的集合 控制域 模块本身以及所有从属于它的模块的集合 如 QUAD ROOT TBL X 求一元二次方程的根的模块 其中TBL X都为数组 分别代表方程的系数和方程的根 应该使接口更简单 如 QUAD ROOT A B C ROOT1 ROOT2 A B C是方程的系数 ROOT1 ROOT2是方程的根 5 力争降低模块接口的复杂度 6 设计单入口 单出口的模块 7 模块功能应该可以预测 5 4图形工具5 4 1层次图和HIPO图 HIPO图是 层次图 输入 处理 输出图 5 4 2结构图 5 5面向数据流的设计方法 面向数据流设计 DFOD 是与数据流分析 DFA 对应的结构化软件设计技术 面向数据流的设计将得到以数据流图为基础的软件模块结构图 数据流可以分为两种类型 1 变换型数据流2 事务型数据流 5 5 1变换流与事务流 一 变换流具有较明确的输入 变换 或称主加工 和输出界面的数据流图称为变换型数据流图 如图所示 该变换中心可以理解为数据的加工和处理程序 事务型数据流图中存在一个事务中心 也就是数据处理 加工中心 它将输入分离成若干个发散的数据流 形成许多活动路径 并根据输入值选择其中一条路径 二 事务流 通常 一个实际系统的数据流图是变换型和事务型两种类型的混合体 如图所示 中间的子块属事务型数据流 如果把中间子块视为一个处理整体的话 整个程序属变换型程序 面向数据流设计软件结构的基本步骤有七步 1 复审并精化数据流图 2 确定数据处理流图的类型 3 确定变换中心或事务中心 5 5 2面向数据流设计的步骤 4 将数据流图映射成软件模块结构图 设计出该数据流图对应的第一层模块结构 5 基于数据流图逐步分解 设计下层模块 6 运用模块设计和优化准则优化软件结构 7 描述模块的接口 变换设计就是从变换型数据流图映射出软件模块结构的过程 也称以变换为中心的设计 5 5 3变换设计 变换设计的基本方法有两步 1 分解第一层模块结构就是把整个变换分解成输入控制模块Ci 输出控制模块Co和变换中心控制模块Ct 由主控模块控制 2 分别设计输入 输出和处理的下层模块结构方法是 从变换中心边界向两侧移动 分别把输入通路和输出通路的每个处理映射成输入控制模块Ci和输出控制模块Co的下属模块 变换中心的下层模块 是把每个处理映射成变换中心控制模块Ct的一个直接下属模块 事务设计就是从事务型数据流图映射出软件模块结构的过程 也称为以事务为中心的设计 5 5 4事务设计 事务设计的基本方法有两步 1 建立主控模块 接收输入类型分析模块和事务调度模块 2 分别设计输入类型分析模块和调度模块的下层模块结构 方法是 将输出的每条通路作为调度模块的一个判断分支 而输入类型分析模块的下层模块与变换设计类似 第5章小结 概要设计说明书该说明书是概要实际阶段的工作成果 它应说明功能分配 模块划分 程序的总体结构 输入输出以及接口设计 运行设计 数据结构设计和出错处理设计等 为详细设计提供基础 谢谢 亲 这里加点什么 Nomanorwomanisworthyourtears andtheonewhois won tmakeyoucry Neverfrown evenwhenyouaresad becauseyouneverknowwhoisfallinginlovewithyoursmile 人生若只如初见 何事秋风悲画扇 等闲变却故人心 却道故人心易变 亲 这里加点什么 或者写下你的心事有写日记的习惯吗
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学术乱象面试题目及答案
- 选调面试题目及答案大全
- 宣传规划面试题目及答案
- 2025年环境治理行业招聘笔试试题与答案解析
- 2025年汽车行业招聘面试题及答题技巧指南
- 2025年医卫类病理学技术(中级)基础知识-相关专业知识参考题库含答案解析(5套)
- 2025年医卫类放射医学(师)专业实践技能-专业实践技能参考题库含答案解析(5套)
- 二零二五年度佛山水运企业劳动合同书(船舶安全责任)
- 二零二五年电子商务区域代理产品售后服务与保修协议
- 二零二五版围栏产品研发与创新基金投资合同
- 2025云南辅警笔试题目及答案
- 2025四川内江市总工会招聘工会社会工作者14人笔试备考试题及答案解析
- 2025年三支扶陕西试题及答案
- 2025年行政执法证考试必刷题库与答案
- 基孔肯雅热防控知识考试试题含答案
- 低钾血症护理常规业务学习
- 2025年职业指导师(四级)考试模拟试题汇编与模拟试题解析
- 2025年新修订《治安管理处罚法》
- 【政治 云南卷】2025年云南省高考招生统一考试真题政治试卷(含答案)
- 测听讲课的课件
- 乡镇物业安全管理制度
评论
0/150
提交评论