软件工程第5章详细设计.ppt_第1页
软件工程第5章详细设计.ppt_第2页
软件工程第5章详细设计.ppt_第3页
软件工程第5章详细设计.ppt_第4页
软件工程第5章详细设计.ppt_第5页
免费预览已结束,剩余49页可下载查看

下载本文档

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

文档简介

详细设计的任务详细设计的原则详细设计的方法和工具详细设计的规格说明与复审界面设计软件体系结构几种新型的软件体系结构软件体系结构与操作系统 第5章详细设计 详细设计的基本任务 1 为每个模块进行详细的算法设计 用某种图形 表格 语言等工具将每个模块处理过程的详细算法描述出来 2 对模块内的数据结构进行设计 对需求分析 概要设计确定的概念性的数据结构进行确切的定义 3 模块接口设计 确定模块接口的细节 包括对系统外部的接口和用户界面 对系统内部其他模块的接口 以及模块输入数据 输出数据及全局数据的全部细节 4 其它设计 如数据库设计 代码设计 输入 输出格式设计等 详细设计的任务 详细设计的基本任务 5 模块测试用例设计 为每个模块设计一组测试用例 以便在编码阶段对模块代码进行预定测试 通常包括输入数据和期望输出结果 6 编写详细设计说明书 在详细设计结束之时 应当把上述结果写入详细设计说明书 并且通过复审形式形成正式的文档 作为下一阶段工作的依据 7 评审 对详细设计的文档进行设计 详细设计的任务 详细设计的原则 1 模块的逻辑描述要清晰易读 正确可靠 2 详细设计的目标不仅仅是逻辑上正确地实现每个模块的功能 更重要的是设计出的处理过程应该尽可能简明易懂 3 选择恰当描述工具来描述各模块算法 详细设计的原则 1 详细设计的方法结构程序化设计方法 SP方法 是详细设计的逻辑基础 在对 GOTO 语句争论中产生结构程序设计方法学并广泛应用 定义 结构化程序设计是一种设计程序的技术 它采用自顶向下 逐步求精的设计方法 而且任何程序都可以通过顺序 分支 重复3种基本结构的复合实现 结构化程序设计的宗旨是 通过始终保持各级程序单元的单入口 单出口控制结构 使设计出来的程序结构清晰 容易阅读 容易修改和容易验证 详细设计的方法和工具 结构化程序设计方法基本要点 1 采用自顶向下 逐步求精的程序设计方法 在设计某模块的内部处理过程中 仍逐步求精 降低处理细节的复杂程度 2 使用单入口 单出口的控制结构 确保程序的静态结构和动态执行情况相一致 确保程序易于理解 3 采用三种基本控制结构构造程序 任何程序都可由顺序 选择 重复三种基本控制结构构造 三种基本控制结构的共同点是单入口 单出口 4 程序语言中尽量少用GOTO语句 以降低程序结构的独立性 详细设计的方法和工具 2 详细设计的工具 图形工具 利用图形工具可将过程的细节用图形描述出来 表格工具 可以用一张表来描述过程的细节 在表中列出各种可能的操作和相应的条件 语言工具 用某种高级语言 称之为伪码 来描述过程的细节 下面介绍一些有代表性的详细设计工具 详细设计的方法和工具 2 详细设计的工具下面介绍一些有代表性的详细设计工具 1 程序流程图程序流程图又称之为程序框图 它是软件开发者最熟悉的一种算法表达工具 它的主要优点是独立于任何一种程序设计语言 能够比较直观和清晰地描述过程的控制流程 易于学习掌握 为使流程图支持结构化程序设计 限制在流程图中只能使用下述的五种基本控制结构 详细设计的方法和工具 详细设计的方法和工具 起止端点 处理 预备或者预处理 数据输入输出 条件判断 文件或者文档 预定义处理货既定处理 控制流 程序流程图 是使用最广泛 历史最悠久的描述程序逻辑结构的工具 详细设计的方法和工具 顺序 选择 多分支选择 当型 循环 直到型 循环 F T T F 注 其中A或B为 非转移语句 可以为空 三种基本结构之一 2 详细设计的工具 1 程序流程图程序流程图的主要缺点如下 程序流程图本质上不是逐步求精的好工具 它诱使程序员过早地考虑程序的控制流程 而不去考虑程序的全局结构 程序流程图使用的符号不规范 图中用箭头代表控制流 程序员不受任何约束 可以完全不顾结构程序设计的原则 随意转移控制 程序流程图不易表示数据结构 对于大型软件而言 流程图过于琐碎 不容易阅读和修改 详细设计的方法和工具 2 N S图 是一种符合结构化程序设计原则的图形描述工具 在n s图中 为了表示五种基本控制结构 规定了五种图形构件 详细设计的方法和工具 顺序 多分支选择 WHILE重复型 注 其中P为循环条件 S为循环体 选择 DO UNTILP S S UNTIL重复型 2 详细设计的工具 2 N S图有下述特点 功能域 一个特定控制结构的作用域 明确 图中每个矩形框 除CASE构造中表示条件取值的矩形框外 就是功能域 不可能任意转移控制 约束设计人员必须遵守结构化程序设计的要求 在盒图上很容易确定局部和全程数据的作用域 很容易表现嵌套关系 也可以表示模块的层次结构 详细设计的方法和工具 3 PAD图 问题分析图 是日本日立公司1979年提出的一种算法描述工具 它的结构是由左向右展开的二维树型结构 详细设计的方法和工具 选择 顺序 F T 条件 多分支选择 A C B CASE值1 值2 值n PAD基本控制结构 3 PAD图 详细设计的方法和工具 def 当型 循环 直到型 循环 定义A 对A细化 PAD基本控制结构 PAD图举例 将数组A 1 到A 10 进行选择法排序的算法描述 详细设计的方法和工具 PAD图的控制流程为自上而下 从左到右 PAD图举例 将数组A 1 到A 10 进行选择法排序的算法描述 详细设计的方法和工具 PAD图的控制流程为自上而下 从左到右 PAD图的优点 1 清晰地反映了程序的层次结构 图中的竖线为程序的层次线 最左边的竖线是程序的主线 其后一层一层展开 层次关系一目了然 2 支持逐步求精的设计方法 左边层次中的内容可以抽象 然后由左到右逐步细化 3 易读易写 使用方便 4 支持结构化的程序设计原理 5 可以自动生成程序 PDA图有对照FORTRAN Pascal C等高级语言的标准图式 因此 在有PDA系统的计算机上 如日立公司的系列机 可以直接输入PDA图 由计算机自动通过走树的方法生成源程序代码 为软件的自动生成提供了有力的工具 详细设计的方法和工具 详细设计的方法和工具 4 PDL 过程设计语言 PDL 过程设计语言 又称程序描述语言 PDL与需求分析中采用的结构化语言统属于伪码 伪码的结构分为内外两层 外语法应符合一般程序设计语言常用的语法规则 而内层语法则用一些简单的句子 短语和通用的数学符号 由于它们的作用不同 故抽象程度不同 模糊程度也不同 结构化语言 是描述加工 做什么 的 且要能使开发人员和用户都能看懂 因此无严格的外语法 内层自然语言描述较抽象 较概括 而PDL是描述处理过程 怎样做 的细节 故外层语法更为严格 更趋于形式化 内层自然语言描述实际操作更详细 详细设计的方法和工具 PDL作为一种用于描述程序逻辑的语言 具有以下特点 有固定的关键字外语法 提供全部结构化控制结构 数据说明和模块特征 内语法使用自然语言来描述处理特性 为开发者提供方便 提高可读性 具有数据说明机制 包括简单的 如标量和数组 与复杂的 如链表和层次结构 的数据结构 具有子程序定义与调用机制 用以表达各种方式的接口说明 提供的机制比图形全面 为保证详细设计与编码的质量创造了有利条件 可作为注释 也可同高级语言一样进行编辑 修改 便于维护 可自动生成代码 提高软件生产率 详细设计的方法和工具 PDL表示的程序结构有如下几种 1 顺序结构 采用自然语言描述 2 选择结构 IF ELSE结构 IF ORIF ELSE结构 CASE结构 3 重复结构 FOR结构 WHILEUNTIL结构 4 出口结构 ESCAPE结构 退出本层循环 CYCLE结构 循环内部进入下一次循环 5 模块定义与调用 PROCEDURE RETURNCALL模块名6 数据定义 DECLARE属性变量名 7 输入 输出 GET 输入变量名表 PUT 输出变量名表 详细设计的方法和工具 3 详细设计工具的选择为满足过程描述易于理解 复审和维护进而过程描述能够自然地转换成代码 并保证详细设计与代码完全一致的原则 要求设计工具具有下述属性 1 模块化 支持模块化软件的开发 并提供描述接口的机制 2 简洁 设计描述易学 易用和易读 3 便于编辑 支持后续设计和维护以及在维护阶段对设计进行的修改 4 机器可读性 设计描述能够直接输入 并且很容易被计算机辅助设计工具识别 5 可维护性 详细设计应能够支持各种软件配置项的维护 详细设计的方法和工具 3 详细设计工具的选择 6 自动生成报告 设计者通过分析详细设计的结果来改进设计 通过自动处理器产生有关的分析报告 进而增强设计者在这方面的能力 7 强制结构化 详细设计工具能够强制设计者采用结构化构件 有助于采用优秀的设计 8 数据表示 详细设计具备表示局部数据和全局数据的能力 9 逻辑验证 软件测试的最高目标是能够自动检验设计逻辑的正确性 所以设计描述应易于进行逻辑验证 进而增强可测试性 10 编码能力 可编码能力是一种设计描述 研究代码自动转换技术可以提高软件效率和减少出错率 详细设计规格说明与复审 1 详细设计说明详细设计说明书是程序工作过程的描述 详细设计说明的内容主要包括 1 表示软件结构的图表 2 对逐个模块的程序描述 包括算法和逻辑流程 插入输出项 与外部接口等 详细设计规格说明与复审 2 设计复审设计复审是指对设计文档的复审 复审的指导原则 一般情况下不邀请用户和其他领域的代表 应该欢迎别人提出批评和建议 复审中提出的问题应详细记录 但不谋求当场解决 复审结束前做出本次复审能否通过的结论 复审分正式与非正式两种方式 界面设计 软件的用户界面是用来实现用户与系统的交互的重要桥梁 界面设计的好坏直接影响用户对该软件的印象 好的用户界面应具有的特点 易操作性 用户界面中的术语标准化和一致性 拥有 帮助 子系统 系统复杂度的可控性 较短的响应时间和较低的实现成本 界面设计 一般软件的用户界面设计应该达到如下目标 用户问题和求解要求表现的完整性 用户接口的专业用语和标识符具有可理解性 易用性和用户习惯表现方式接近 操作命令简便和用户对软件运行的可控性 用户接口有容错能力 快速的系统响应和较低的系统消耗 界面设计 一般原则 以用户为本 提高可交互性 尽量避免需要记忆的内容 简化用户操作 提高操作效率 界面设计 常规的用户界面设计的步骤是 1 标识输入文件 2 设计输入文件上抽象的数据类型 数据结构以及表格形式 3 设计由输入文件转换成软件内部数据结构的算法 4 设计装机及初始化操作 5 对批处理操作 设计启动点 检查点及重新启动点 对交互式操作 实施进程分割 设计每一进程正确运行的辨认格式及选择下一进程的准则 中间输入的描述格式及启动命令 6 设计输出中间结果和最终结果的图表和正文的格式 并确认输出设备 7 以用户欢迎的方式和他们易理解的语言缩写 使用手册 初稿 界面设计 字符界面设计字符界面是基于命令行方式的用户界面 是交互式计算机系统传统的用户界面 设计时应考虑以下原则 1 命令的设计应该适合预期用户的专业水平 针对用户的不同情况 考虑规则 2 提供风格一致性的命令格式结构 3 命令名字时应意义明确 简短易记 4 提供批处理命令和用户创建宏的能力 5 提供UNDO和REDO命令 界面设计 菜单设计菜单方式是在显示输出屏幕上提供一组可选的项目 使用者可以通过键盘 鼠标 图形输入板 触笔等输入设备选择其中某项 菜单的设计应方便用户使用 简单易学 菜单的实现技术根据其显示方式可以分为正文菜单和图形菜单 正文菜单是由若干正文项组成的列表 图形菜单基于符号 图符 色彩或者图画来描述菜单项 界面设计 根据菜单在屏幕上的出现方式和位置 菜单又可以分为固定菜单和活动菜单 固定菜单是在屏幕的固定位置显示菜单项列表 固定菜单需要占用屏幕空间位置 因此固定菜单中给出的应该是经常用的菜单项 活动菜单是在需要选择时才出现的菜单 弹出式 菜单 在当前光标所在的任一位置均可出现和消失的菜单 下拉式 菜单 在固定菜单项被选中后展开的该项下层菜单选择项列表 活动菜单的最主要的优点是不占用显示工作空间 可以根据用户当前所处的操作状态和要求动态出现 但是需要注意的是不能滥用弹出菜单 界面设计 对话框设计所谓对话框就是显示于屏幕上一个固定或者活动矩形区域的图形和正文信息 在该框内通常还要求用户输入实现指定操作的正文或者选项信息 1 模态对话框当对话框弹出后 用户必须回答有关信息或者撤销当前会话 否则对话框不会消失 系统也不执行其他操作 2 非模态对话框这类对话框通常仅为用户提供当前操作或者系统环境的参考信息 不需要用户回答信息 用户可以不理睬它 继续原来的工作 界面设计 多窗口界面设计所谓窗口是在显示屏幕上表示一个任务执行状态或者操作选项的视域 view port 在多任务系统中 每个窗口可以看作一个独立的逻辑屏幕 虚拟屏幕 通常 窗口显示的是用户当前执行任务的一个局部 通过滚动技术 窗口形式的内容可以在整个任务空间中滑动 一个屏幕中可以同时打开多个窗口 好像多个屏幕在同时显示 各窗口之间还可以相互通信 软件体系结构 随着软件系统规模越来越大 越来越复杂 整个系统的结构和规格说明显得越来越重要 对于大规模的复杂软件系统来说 对总体的系统结构设计和规格说明比起对计算的算法和数据结构的选择已经变得明显重要得多 1 软件体系结构的定义软件体系结构为软件系统提供了一个结构 行为和属性的高级抽象 由构成系统的元素的描述 构件 这些元素的相互作用 指导元素集成的模式以及这些模式的约束组成 软件体系结构不仅指定了系统的组织结构和拓扑结构 并且显示了系统需求和构成系统的元素之间的对应关系 提供了一些设计决策的基本原理 软件体系结构 1 软件体系结构的定义软件体系结构是一种可预制和重构的软件框架结构 我们可以把它写成 体系结构 architecture 构件 components 连接件 connectors 约束 constraints 其中 构件是可预制和重构的软件部分 是组成体系结构的基本计算单元或数据存储单元 连接件也是可预制和重构的软件部分 是构件之间的连接单元 连接和连接件之间的关系用约束来描述 软件体系结构 构件是系统体系结构的基本要素之一 是具有一定功能的 可明确辨识的软件单位 具有语义完整 语法正确 可重用等特点 构件与类相似 它是比类更高层次的抽象 连接件是用来建立构件间的交互以及支配这些交互规则的体系结构基本元素 通常构件间的交互包括 消息或信号量的传递 功能或方法的调用 数据的传送和转换 构件之间的同步关系和依赖关系等 约束描述了体系结构配置和拓扑要求 确定了体系结构的构件与连接件的连接关系 软件体系结构 软件体系结构的风格软件体系结构风格又称软件体系结构习惯模式 idiomaticparadigm 是描述某一特定应用领域中系统组织方式的惯用模式 下面介绍几种通用体系结构风格 1 管道和过滤器风格 2 仓库风格和黑板风格 3 分层系统风格 4 客户服务器风格 软件体系结构 下面介绍几种通用体系结构风格 5 数据抽象和面向对象风格 6 基于事件的风格 隐式调用 7 模型 视图 控制器风格 8 解释器风格 虚拟机风格 9 异质体系结构 软件体系结构 软件体系结构的描述方法1 传统软件体系结构描述方法 1 图形表达工具 是采用由矩形框和有向线段组合而成的图形表达工具 矩形框代表抽象构件 框内标注的文字为抽象构件的名称 有向线段代表辅助各构件进行通讯 控制或关联的连接件 2 模块内连接语言 3 基于软构件的系统描述语言 4 体系结构描述语言 几种新型的软件体系结构 1 正交软件体系结构正交软件体系结构由组织层和线索的构件构成 层是由一组具有相同抽象级别的构件构成 线索是子系统的特例 它是由完成不同层次功能的构件组成 通过相互调用来关联 每一条线索完成整个系统中相对独立的一部分功能 正交软件体系结构的主要特征如下 1 正交软件体系结构由完成不同功能的n n 1 个线索 子系统 组成 2 系统具有m m 1 个不同抽象级别的层 3 线索之间是相互独立的 正交的 4 系统有一个公共驱动层 一般为最高层 和公共数据结构 一般为最低层 几种新型的软件体系结构 1 正交软件体系结构正交软件体系结构具有以下优点 1 层次结构清晰 便于理解 2 可移植性强 重用粒度大 3 易修改 可维护性强 几种新型的软件体系结构 2 三层C S软件体系结构C S软件体系结构 即Client Server 客户机 服务器 结构 是基于资源不对等 且为实现共享而提出来的 C S结构将应用一分为二 服务器 后台 负责数据管理 客户机 前台 完成与用户的交互任务 三层C S结构是将应用功能分成表示层 功能层和数据层三个部分 表示层是应用的用户接口部分 它担负着用户与应用间的对话功能 功能层相当于应用的本体 它是将具体的业务处理逻辑编入程序中 数据层就是数据库管理系统 负责管理对数据库数据的读写 几种新型的软件体系结构 2 三层C S软件体系结构三层C S结构具有以下优点 1 允许合理地划分三层结构的功能 使之在逻辑上保持相对独立性 2 允许更灵活有效地选用相应的平台和硬件系统 使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层 并且这些平台和各个组成部分可以具有良好的可升级性和开放性 3 三层C S结构中 应用的各层可以并行开发 各层也可以选择各自最适合的开发语言 4 允许充分利用功能层有效地隔离开表示层与数据层 未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层 几种新型的软件体系结构 3 C S与B S混合软件体系结构B S与C S混合软件体系结构是一种典型的异构体系结构 B S软件体系结构 即Browser Server 浏览器 服务器 结构 是随着Internet技术的兴起 对C S体系结构的一种变化或者改进的结构 在B S体系结构下 用户界面完全通过WWW浏览器实现 一部分事务逻辑在前端实现 但是主要事务逻辑在服务器端实现 几种新型的软件体系结构 3 C S与B S混合软件体系结构B S体系结构也有许多不足之处 例如 1 B S体系结构缺乏对动态页面的支持能力 没有集成有效的数据库处理功能 2 B S体系结构的系统扩展能力差 安全性难以控制 3 在数据查询等响应速度上 要远远地低于C S体系结构 4 数据提交一般以页面为单位 数据的动态交互性不强 不利于在线事务处理 OLTP 应用 几种新型的软件体系结构 3 C S与B S混合软件体系结构C S与B S混合软件体系结构的优点是外部用户不直接访问数据库服务器 能保证企业数据库的相对安全 企业内部用户的交互性较强 数据查询和修改的响应速度较快 C S与B S混合软件体系结构的缺点是企业外部用户修改和维护数据时 速度较慢 较烦琐 数据的动态交互性不强 软件体系结构与操作系统 操作系统的体系结构1 模块结构 软件体系结构与操作系统 1 模块结构模块化的体系结构的优点在于 系统具有紧凑的总体结构 各组成模块之间的调用接口简单 系统效率较高 缺点 第一 模块之间的随意调用 造成模块间耦合度大 独立性差 系统没有清晰的结构 第二 数据基本都被作为全程变量来使用 意味着相关模块都有可能进行读取或写入操作 造成了模块间隐含的约束关系 系统维护也因此变得复杂第三 模块化的体系结构的适用性较差 一般只能用于模块较小 应用环境较为稳定但对效率要求较高的系统 软件体系结构与操作系统 2 分层结构分层风格的系统按照层次结构组织 每一层向它的上层提供服务 同时又是它的下层的客户 除了邻接的层 一个内部层次对于其他外部层次可以是隐藏的 这样 系统内的交互限制在邻接的层次之间 同时 这些交互按照一定协议进行 全序的分层体系结构 各层之间是单向调用的 而且同层模块之间不存在互相调用的关系 该方式无法实现循环调用 半序的分层体系结构 要求各层之间单向调用的同时 允许同

温馨提示

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

评论

0/150

提交评论