已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章结构化详细设计 结构化详细设计的结构和特点结构化详细设计工具人机交互界面设计数据库设计编码实现 8 1详细设计 详细设计就是在概要设计的基础上决定如何具体实现各模块的内部细节 直到对系统中的每个模块给出足够详细的过程描述 在编码实现阶段就可以完全按照详细设计的细节过程来映射到代码 最终实现整个系统 一般使用结构化程序设计工具来描述 详细设计的基本任务 为每个模块进行详细的算法设计为模块内的数据结构进行设计为数据结构进行物理设计 即确定数据库的物理结构其他设计 根据软件系统的类型 还可能要进行以下设计 代码设计输入 输出格式设计人机对话设计编写详细设计文档评审 8 2结构化详细设计 结构化详细设计也称为结构化程序设计 结构化程序设计的理念是在20世纪60年代 由Dijkstra等人提出并加以完善的 结构化的程序一般只需要用三种基本的逻辑结构就能实现 这三种基本逻辑结构是顺序结构 选择结构和循环结构 结构化程序设计是一种设计程序的技术 它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构 结构化详细设计的结构 三种基本结构顺序结构选择结构循环结构 结构化程序设计优点 自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律 因此可以显著提高软件开发工程的成功率和生产率 用先全局后局部 先整体后细节 先抽象后具体的逐步求精过程开发出的程序有清晰的层次结构 因此容易阅读和理解 仅使用单入口单出口的控制结构 使得程序的静态结构和它的动态执行情况比较一致 因此 程序容易阅读和理解 开发时也比较容易保证程序的正确性 即使出现错误也比较容易诊断和改正 控制结构有确定的逻辑模式 编写程序代码只限于使用很少几种直截了当的方式 因此源程序清晰流畅 易读易懂而且容易测试 程序清晰和模块化使得在修改和重新设计一个软件时可以重用的代码量最大 程序的逻辑结构清晰 有利于程序正确性证明 8 3结构化详细设计工具 图形工具 把过程的细节表示成一个图的组成部分 在这个图上 逻辑构造用具体的图形来表示 列表工具 用一个表来表示过程的细节 这个表列出了各种操作及其相应的条件 也即 描述了输入 处理和输出信息 语言工具 用类语言来表示过程的细节 这种类语言很接近于编程语言 程序流程图 程序流程图又称为程序框图 Goldstine于1946年首先采用 它的主要优点是对控制流程的描绘很直观 便于初学者掌握 程序流程图的主要缺点 程序流程图本质上不是逐步求精的好工具 它诱使程序员过早地考虑程序的控制流程 而不去考虑程序的全局结构 程序流程图中用箭头代表控制流 因此程序员不受任何约束 可以完全不顾结构程序设计的精神 随意转移控制 程序流程图不易表示数据结构 程序流程图符号 盒图 盒图是由Nassi和Shneiderman提出的 所以又称为N S图 每个处理步骤都用一个盒子来表示 这些处理步骤可以是语句或语句序列 在需要时 盒子中还可以嵌套另一个盒子 嵌套深度一般没有限制 盒图具有下述特点 功能域 即 一个特定控制结构的作用域 明确 可以从盒图上一眼就看出来 由于只能从上边进入盒子然后从下面走出盒子 除此之外没有其它的入口和出口 所以盒图限制了任意的控制转移 保证程序有良好的结构 很容易确定局部和全程数据的作用域 很容易表现嵌套关系 也可以表示模块的层次结构 盒图很容易表示程序结构化的层次结构 确定局部和全局数据的作用域 由于没有箭头 因此不允许随意转移控制 盒图符号 PAD图 PAD是问题分析图 ProblemAnalysisDiagram 的英文缩写 自1973年由日本日立公司发明 它是由程序流程图演化而来 用二维树形结构的图来表示程序的控制流 将这种图翻译成程序代码比较容易 PAD图的基本原理 采用自顶向下 逐步细化和结构化设计的原则 力求将模糊的问题解的概念逐步转换为确定的和详尽的过程 使之最终可采用计算机直接进行处理 PAD图符号 PAD图的主要优点 使用表示结构化控制结构的PAD符号设计出来的程序必然是结构化程序 PAD图所描绘的程序结构十分清晰 图中最左边的竖线是程序的主线 即第一层结构 随着程序层次的增加 PAD图逐渐向右延伸 每增加一个层次 图形向右扩展一条竖线 PAD图中竖线的总条数就是程序的层次数 用PAD图表现程序逻辑 易读 易懂 易记 PAD图是二维树形结构的图形 程序从图中最左竖线上端的结点开始执行 自上而下 从左向右顺序执行 遍历所有结点 容易将PAD图转换成高级语言源程序 这种转换可用软件工具自动完成 从而可省去人工编码的工作 有利于提高软件可靠性和软件生产率 既可用于表示程序逻辑 又可用于描绘数据结构 PAD图举例 HIPO图 HIPO HiberarchyPlusInput Process Output 层次加输入 处理 输出 图是根据IBM公司研制的软件设计与文件编制技术发展而来的 HIPO图采用功能框图和PDL来描述程序逻辑 它由两部分组成 可视目录表给出程序的层次关系体系框图 又称层次图 H图 是可视目录表的主体 用它表明各个功能的隶属关系图例 图形符号说明描述说明 每一框的补充说明IPO图则为程序各部分提供具体的工作细节 盘存 销售系统工作流程图 层次图 说明 IPO图 详细的IPO图 判定表 例如 某数据流图中有一个 确定保险类别 的加工 指的是申请汽车驾驶保险时 要根据申请者的情况确定不同的保险类别 加工逻辑为 如果申请者的年龄在21岁以下 要额外收费 如果申请者是21岁以上并是26岁以上的女性 适用于A类保险 如果申请者是26岁以下的已婚男性 或者26岁以上的男性 适用于B类保险 如果申请者是21岁以下的女性或26岁以下的单身男性适用于C类保险 除此之外的其他申请者都适用于A类保险 判定表 提取问题中的条件 年龄 性别 婚姻 标出条件的取值 判定表 计算所有条件的组合数N N 3 2 2提取可能争取的动作或措施 适用于A类保险 B类保险 C类保险 额外收费共四种 制作判定表完善判定表缺少判定采取的动作有冗余的列 制作判定表 合并后的判定表 判定树 判定树是判定表的变形 一般情况下它比判定表更直观 且易于理解和使用 过程描述语言PDL 过程描述语言 PDL ProceduralDescriptionLanguage 介于自然语言和形式语言之间的一种半形式化语言 是在自然语言基础上加了一些限定 使用有限的词汇和有限的语句来描述加工逻辑 外层用来描述控制结构 采用顺序 选择 重复三种基本结构 内层一般采用祈使语句的自然语言短语 使用数据字典中的名词和有限的自定义词 其动词含义要具体 尽量不用形容词和副词来修饰 PDL三种结构 顺序结构AseqBlock1Block2Block3Aend 选择结构Aselectcond1Block1Aorcond2Block2Aorcond3Block3Aend 重复结构AiteruntilcondBlock1AendAiterwhilecondBlock1Aend 统计单词数目 统计空格seq打开文件读入字符串Totalsum 0程序体iteruntil文件结束 程序体end印总数seq印出空格总数印总数end关闭文件停止统计空格end 8 4人机界面设计 人机界面设计的任务 就是根据对用户在使用交互式系统时的所作所为 或者是用户想象中的所作所为 或者是他人想象中用户的所作所为的抽象 创建或导出一致的表示界面 设计人机界面要充分考虑到人的因素 如用户的特点 用户怎样学会与系统交互工作 用户怎样理解系统产生的输出信息以及用户对系统有什么期望等 考虑界面的风格 可用的软 硬件技术及应用本身产生的影响 交互界面设计原则 美学规则置用户于控制之下减少用户的记忆负担保持界面一致人机界面模型软件工程师创建的用户模型软件工程师创建的设计模型最终用户对未来系统的假想系统的实现者创建的实现模型 人机交互界面分析 人机界面的设计工作应与软件系统的需求分析工作同步进行 它主要包括 通过界面和系统交互的最终用户分析最终用户为完成工作要做的任务分析确定界面的类型任务处理的环境 人机交互界面分析过程 交互界面设计步骤 建立任务的目标和意图 为每个目标和意图制定特定的动作序列 按照在界面上执行的方式对动作序列进行规约 指明系统状态 即执行动作时的界面表现 定义控制机制 即用户可用的改变系统状态的设备和动作 指明控制机制如何影响系统状态 指明用户如何通过界面上的信息解释系统状态 交互界面设计指南 交互界面的设计指南信息显示的设计指南数据输入的设计指南 CAD系统界面设计 圆弧绘制的基本参数包括圆心 Center 半径 Radiu 圆心角 Angle 弦长 chordoflength 切线方向 direction 起点 start 和终点 end 根据参数的不同和次序 绘制圆弧可以有10种方法 3点绘制圆弧起点 圆心 终点起点 圆心 圆心角起点 圆心 弦长起点 终点 圆心角起点 终点 切线方向起点 终点 半径圆心 起点 终点圆心 起点 圆心角圆心 起点 弦长 绘制圆弧的操作命令序列 Command ARC或通过菜单或工具选择绘制圆弧命令提示 指定圆弧起点 或 圆心 给定起点 提示 指定圆弧第二点 或 圆心 圆弧终点 给定第二点 提示 指定圆弧的终点 给定第三点 Command ARC或通过菜单或工具选择绘制圆弧命令提示 指定圆弧起点 或 圆心 指定起点 提示 指定圆弧第二点 或 圆心 圆弧终点 指定圆心 提示 指定圆弧的圆心点 指定圆心点 提示 指定终点 或 圆心角 弦长 指定弦长 提示 指定圆弧的弦长 给定弦长 8 5数据库设计 需求分析概念设计逻辑设计物理设计实施运行与维护 8 6编码实现 编码语言编码风格 编码语言 编码的目的是实现人和计算机的通信 指挥计算机按人的操作意图正确工作 程序设计语言是人和计算机之间进行通信的最基本的工具 其特性会影响人的思维和解决问题的方式 分为两大类 低级语言 这两种语言都依赖于相应的计算机硬件 机器语言属于第一代语言汇编语言属于第二代语言高级语言 第三代程序设计语言利用类英语的语句和命令 尽量不再指导计算机如何去完成一项操作 如BASIC COBOL和FORTRAN等 第四代程序设计语言比第三代程序设计语言更像英语但过程更弱 与自然语言非常接近 它兼有过程性和非过程性的两重特性 如数据库查询语言 程序生成器等 编码语言特性 心理特性语言的心理特性是指影响程序员心理的语言性能 包括歧义性 简洁性 局限性和顺序性 传统性 工程特性从软件工程的观点 编码语言的特性着重考虑软件开发项目的需要 因此对编码有如下要求 可移植性 开发工具的可利用性 软件的可复用性 可维护性 技术特性语言的技术特性对软件工程各阶段都有影响 特别是当确定了软件需求之后 编码语言的技术特性就显得非常重要了 要根据项目的特性选择相应特性的语言 编码语言的选择 为使程序容易测试和维护以减少软件的总成本 所选用的高级语言应该有理想的模块化机制 以及可读性好的控制结构和数据结构 为便于调试和提高软件可靠性 应该使编译程序能够尽可能多地发现程序中的错误 为降低软件开发和维护的成本 选用的高级语言应该有良好的独立编译机制 实用标准语言自身的特性软件的应用领域软件开发的环境软件开发的方法算法和数据结构的复杂性软件可移植性要求软件开发人员的知识 编码风格 良好的程序设计风格对保证程序质量的重要性 良好的程序设计风格对面向对象实现来说尤其重要 不仅能明显减少维护或扩充的开销 而且有助于在新项目中重用已有的程序代码 良好的面向对象程序设计风格 既包括传统的程序设计风格准则 也包括为适应面向对象方法所特有的概念而必须遵循的一些新准则 编码风格指一个人编制程序时所表现出来的特点 习惯 逻辑思路等 良好的编码风格可以减少编码的错误 减少读程序的时间 从而提高软件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 质量管理与控制体系建立指南
- 通讯公司售后服务专员服务满意度绩效衡量表
- 市场研究团队绩效评估表
- 电子爱好者Arduino入门与项目实践指导书
- 销售管理优化策略与实战案例分析报告
- 市场拓展战略分析与讨论互动方案
- 展会营销策略与案例分析
- 会议记录模板优化手册
- 新产品推出成功度评估表
- 企业年度预算编制八项关键步骤指南
- 南昌县图书馆2026年编外人员招聘考试参考题库及答案详解
- 广东省东莞五校2025-2026学年九年级上学期12月期中英语试题(含答案)
- 2026江苏省医疗器械检验所招聘5人笔试参考试题及答案详解
- 房屋建筑工程施工现场人工智能安全监管技术标准(TCECS1598-2024 )
- 小儿新生儿肺炎诊疗指南(2025年版)
- 2026年医师定期考核口腔试题题库(及答案)
- 中医不寐诊疗指南2025版
- 北京水务投资集团有限公司集团系统公开招聘笔试考题
- 医院反恐怖安全工作制度
- 2026年救助管理机构工作规范竞赛题库
- 2025中国邮政储蓄银行总行纪委办公室社会招聘2人笔试历年典型考题及考点剖析附带答案详解2套
评论
0/150
提交评论