第6章 详细设计_第1页
第6章 详细设计_第2页
第6章 详细设计_第3页
第6章 详细设计_第4页
第6章 详细设计_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、第6章 详细设计 6.1 结构程序设计 6.2 人机界面设计 6.3 过程设计的工具 6.4 面向数据结构的设计方法 6.5 程序复杂程度的定量度量 -程序的质量与程序中所包含的GO TO 语句的数量 成反比 -Bohm和Jacopini证明了:3种基本的控制结构(顺序, 选择,循环)就能实现任何单入口单出口的程序 -“结构程序设计是尽可能少用GO TO语句的程序 设计方法。最好仅在检测出错误时才使用GO TO 语句,而且应该总是使用前向GO TO语句。” 6.1 结构程序设计: 易读性 6.2人机界面设计 6.2.1设计问题 1. 响应时间: 长度和易变性 2. 用户帮助: 集成和附加, 上

2、下文 3. 出错信息: 如何办, 用户心理 4. 命令交互: 多媒体(图,文,声,光), 自定义宏指令, CTRL 6.2.2设计过程设计过程: 精化精化,迭代迭代,原型原型 6.2.3人机界面设计指南人机界面设计指南 一般交互指南(一致,确认,不同 类型类型,UNDO,易记,层次,多媒体) 信息显示指南(同1.) 1. 数据输入指南(尽量少,同1.) 1 1、可使用性、可使用性 使用简单使用简单 用户界面中所用术语的标准化和一致性用户界面中所用术语的标准化和一致性 具有具有HELP功能功能 快速的系统响应和低的系统成本快速的系统响应和低的系统成本 具有容错能力具有容错能力 2 2、灵活性、灵

3、活性 考虑用户的特点、能力、知识水平。考虑用户的特点、能力、知识水平。 提供不同的系统响应信息。提供不同的系统响应信息。 提供根据用户需求制定和修改提供根据用户需求制定和修改界面。界面。 3 3、界面的复杂性与可靠性、界面的复杂性与可靠性 复杂性复杂性界面规模及组织的复杂程度。应该愈简单愈好。界面规模及组织的复杂程度。应该愈简单愈好。 可靠性可靠性指无故障使用的时间间隔。用户界面应该能够保指无故障使用的时间间隔。用户界面应该能够保 证用户正确、可靠地使用系统,及程序、数据的安全。证用户正确、可靠地使用系统,及程序、数据的安全。 1 1、用户特性分析、用户特性分析 用户模型用户模型 了解所有用户

4、的技能和经验,针对用户能力设计或更改界面。了解所有用户的技能和经验,针对用户能力设计或更改界面。 从以下方面分析:从以下方面分析: 用户类型用户类型通常分为:外行型、初学型、熟练型、专家型。通常分为:外行型、初学型、熟练型、专家型。 用户特性度量用户特性度量与用户使用模式和用户群体能力有关。与用户使用模式和用户群体能力有关。 包括:用户使用频度、用户用机能力、用户的知识、思维能力等。包括:用户使用频度、用户用机能力、用户的知识、思维能力等。 2 2、用户界面的任务分析、用户界面的任务分析 任务模型(任务模型(DFDDFD图)图) 是对系统内部活动的分解,不仅要进行功能分解(用是对系统内部活动的

5、分解,不仅要进行功能分解(用DFDDFD图描图描 述),还要包括与人相关的活动。每个加工即一个功能或任务。述),还要包括与人相关的活动。每个加工即一个功能或任务。 3 3、确定用户界面类型、确定用户界面类型 正文菜单、图标菜单、正文和图标混合菜单,如:开始正文菜单、图标菜单、正文和图标混合菜单,如:开始 菜单。菜单。 从用户角度出发,用户界面设计的类型主要有问题描述语言,数据表格、从用户角度出发,用户界面设计的类型主要有问题描述语言,数据表格、 图形与图标、菜单、对话框及窗口等。每一种类型都有不同的特点和性能。讨图形与图标、菜单、对话框及窗口等。每一种类型都有不同的特点和性能。讨 论以下类型:

6、论以下类型: 固定位置、浮动位置(弹出)、下拉式、嵌入式固定位置、浮动位置(弹出)、下拉式、嵌入式 图1 混合菜单 图2 固定及下拉菜单 固定菜单固定菜单 下拉菜单下拉菜单 在用户界面中,加入丰富多彩的画面,将能够更加行象地为用户提供有用的信在用户界面中,加入丰富多彩的画面,将能够更加行象地为用户提供有用的信 息,以达到可视化的目的。主要的处理操作有:图象的隐蔽和再现、屏幕滚动和息,以达到可视化的目的。主要的处理操作有:图象的隐蔽和再现、屏幕滚动和 图案显示、动画等。图案显示、动画等。 对话框是在需要时,显示在屏幕上一个矩形区域内的图形和正文信息。通过对话框是在需要时,显示在屏幕上一个矩形区域

7、内的图形和正文信息。通过 对话,实现系统和用户之间的通信。对话,实现系统和用户之间的通信。 对话框显示的方式与弹出式菜单类似,即瞬时弹出。同时,系统还应将对话对话框显示的方式与弹出式菜单类似,即瞬时弹出。同时,系统还应将对话 框所覆盖的原图象进行保存,以便在对话结束后能立即恢复。框所覆盖的原图象进行保存,以便在对话结束后能立即恢复。 有三种对话形式:有三种对话形式: 必须回答式如图必须回答式如图3所示所示 无需回答式无需回答式 如图如图4所示所示 警告式警告式 如图如图5所示所示 图3 必须回答式对话框 图4 无需回答式对话框 图5 警告式对话框 4 4、窗口(、窗口(windowwindow

8、) 图形学中称为视图区(图形学中称为视图区(ViewportViewport),视为虚拟屏幕。一个实用窗口,可包),视为虚拟屏幕。一个实用窗口,可包 含部件:含部件: 菜单区(菜单区(menu barmenu bar) 图标区(图标区(icon baricon bar) 标题区(标题区(title bartitle bar) 移动区(移动区(move barmove bar) 大小区(大小区(size barsize bar) 退出区(退出区(quit barquit bar) 用户工作区(用户工作区(users work barusers work bar) 横向滚动区(横向滚动区(hori

9、zontal scroll barhorizontal scroll bar) 纵向滚动区(纵向滚动区(vertical scroll barvertical scroll bar) 图6 窗口 数据输入界面,是系统的重要组成部分。主要从数据输入界面,是系统的重要组成部分。主要从输入速度输入速度和和减减 少出错率少出错率考虑。考虑。 1、尽量减少输入工作量、尽量减少输入工作量 对相同内容输入设置默认值对相同内容输入设置默认值 自动填入自动填入 列表选择或点击选择列表选择或点击选择 2、输入屏幕与输入格式匹配、输入屏幕与输入格式匹配 即屏幕显示按照数据使用频率、重要性、次序等组织。即屏幕显示按照

10、数据使用频率、重要性、次序等组织。 3、数据输入的一般规则、数据输入的一般规则 确定输入确定输入 交互动作交互动作 确定删除确定删除 提供反馈提供反馈 6.3 过程设计的工具 1 1、流程图、流程图 2 2、结构化流程图(、结构化流程图(N-S图)图) 3 3、PAD图图问题分析图问题分析图 4、 PDL 5、 判定表判定表/判定树, IPO, a b X1 X2 X7 X6 X4 X3 X5 h i g f e d c j F T F F F T T T 多分支选多分支选 择结构择结构 先判定型循先判定型循 环结构环结构 选择结构选择结构 后判定型循环结构后判定型循环结构 图3.4 流程图

11、N-SN-S图由而且仅由顺序、选择、循环三种基本结构组成。图由而且仅由顺序、选择、循环三种基本结构组成。 基本图例如下:基本图例如下: 顺序结构顺序结构 块块1 块块2 块块3 块块4 条件条件 T F 块块1块块2 选择结构选择结构 Case I=1,2,3 T 块块1块块2 多分支选择结构多分支选择结构 F 块块3 块块 当条件成立时当条件成立时 当型循环当型循环 块块 直到条件成立时直到条件成立时 直到型循环直到型循环 图3.45 NS图 a b 条条 件件 1 TF Case Xi, i=2,3,4 X2X3X4 当条件当条件3成立成立 条条 件件 2 直到条件直到条件4成立成立 直直

12、 到到 条条 件件 成立成立 cd e f g h i j 顺序结构顺序结构 选择结构选择结构 多分支选择结构多分支选择结构 先判定型循环结构先判定型循环结构 后判定型循环结构后判定型循环结构 FT TF N-SN-S图举例图举例 NS图举例 3 3、PADPAD图图问题分析图问题分析图(problem Analysis Diagramproblem Analysis Diagram) 其基本控制结构如下:其基本控制结构如下: PAD图基本结构 软件工程软件工程 PADPAD示例示例 while-do x3 b f g x1 a do-while x6 j x4 do-while x5 h i

13、 c d e x2 =1 =2 =3 BEGIN FIRST:=K1; SECOND:=0; FIRST=KI SECOND=0 I:=2 to N KI SECOND KIFIRST SECOND =FIRST FIRST=KI SECOND =KI ELSE SECOND:=KI END END END. /*数组元素比较,FIRST最大,SECOND其次*/ 对应对应PADPAD图图 BEGIN IF KISECOND THEN BEGIN IF KIFIRST THEN BEGIN SECOND:=FIRST; FIRST:=KI END PADPAD图应用举例图应用举例 例2 PAD

14、图应用举例 FOR I:=2 TO N DO 这是一种结构化的语言。是非形式化比较灵活的语言,用于描这是一种结构化的语言。是非形式化比较灵活的语言,用于描 述模块内部过程的具体算法,以便在开发人员之间比较精确的进行述模块内部过程的具体算法,以便在开发人员之间比较精确的进行 交流。交流。 PDLPDL的语法是开放式的,其外层语法是确定的,而内层语法则不确的语法是开放式的,其外层语法是确定的,而内层语法则不确 定。外层语法描述控制结构它用类似于一般程序设计语言控制结构定。外层语法描述控制结构它用类似于一般程序设计语言控制结构 的关键字:的关键字: 如如 : IF-THEN-ELSE WHILE-

15、DO REPEAT- UNTILIF-THEN-ELSE WHILE- DO REPEAT- UNTIL DO CASE DO WHILE DO CASE DO WHILE 等表示。等表示。 有时还用关键字反排,表示控制结构结束:有时还用关键字反排,表示控制结构结束: DO - OD IF - FIDO - OD IF - FI 软件工程软件工程 示例示例: 拼词检查程序拼词检查程序 PROCEDURE spellcheck BEGIN -* split document into single words LOOP get next word add word to word list in

16、 sortorder EXIT WHEN all words processed END LOOP -* look up words in dictionary LOOP get word from word list 软件工程软件工程 IF word not in dictionary THEN -* display words not in dictionary display word prompt on user terminal IF user response says word OK THEN add word to good word list ELSE add word to

17、 bad word list ENDIF ENDIF EXIT WHEN all words processed END LOOP 软件工程软件工程 -* create a new words dictionary dictionary : merge dictionary and good word list END spellcheck n为了区别关键字,规定关键字一律大写,其它单词为了区别关键字,规定关键字一律大写,其它单词 一律小写。一律小写。 n内语法使用自然语言来描述处理特性。内语法比较内语法使用自然语言来描述处理特性。内语法比较 灵活,只要写清楚就可以,不必考虑语法错,以利灵活,

18、只要写清楚就可以,不必考虑语法错,以利 于人们可把主要精力放在描述算法的逻辑上。于人们可把主要精力放在描述算法的逻辑上。 6.4面向数据结构的设计方法 (JACKSON方法方法) ) 结构化开发方法是一种面向数据流的开发方法,而结构化开发方法是一种面向数据流的开发方法,而 JACKSON系统开发方法则是面向数据结构的开发方法系统开发方法则是面向数据结构的开发方法 。其基本思想实现建立输入输出的数据结构,再将其转。其基本思想实现建立输入输出的数据结构,再将其转 换为软件结构。换为软件结构。 JACKSON方法由英国的方法由英国的M. Jackson提出,该方法提出,该方法 特别适合于数据处理类问

19、题。如企事业管理一类的软件特别适合于数据处理类问题。如企事业管理一类的软件 系统。系统。 JSDJSD系统方法简介系统方法简介 Jackson系统开发(JSD)方法是一种典型的面向数 据结构的分析与设计方法。其分析的重点放在构造与系统 相关的现实世界,并建立现实世界的信息域的模型上。其 最终目标是生产软件的过程性描述。 JSD方法的步骤如下: 1、实体动作分析 2、实体结构分析 3、定义初始模型 4、功能描述:详细说明与已定义的动作相对应的功能。 5、绝对系统时间特性:对进程调度特性进行评价和说明。 6、实现:设计组成系统的硬件和软件。 JSD方法的前三步属于需求分析阶段,后三步属于软件设 计

20、阶段。 JACKSONJACKSON方法概述方法概述 SD法是一种面向数据流的设计方法,JACKSON方法是一种 面向数据结构的设计方法。强调程序结构与问题结构相对应。 JACKSONJACKSON方法的构成方法的构成 JACKSON方法由JSP(Jackson Structured Programming)和JSD(Jackson System Development)方法构成。 JSP法主要体现程序结构的设计,不严格区分软件概要设计 和详细设计。可以根据JSP的规则直接导出程序结构。一般用于 规模不大的数据处理系统,而且I/O数据结构容易描述的情况。 JSD法是对JSP法的扩充,针对JSP

21、法的缺陷而提出的解决 方案。其主要特点是:用“分而治之”的策略控制系统的复杂性, 解决I/O结构的冲突问题。 JACKSON方法的设计过程方法的设计过程 1、建立数据结构 JACKSON方法中数据结构表示为树型结构,有顺序、选择和循环三种基 本结构。 2、以数据结构为基础,建立相应的程序结构图,也称为JACKSON图。当没 有结构冲突时,转换过程是简单的。 例:合并文件(考虑输入和输出之间的对应关系),输入、 输出数据结构在内容、数量、次序上是对应的。 1、数据结构 2、设计程序图 Jackson方法的技术构成方法的技术构成 根据报文的中间结构,将输入数据结构转换为与输入的数据结构相对应,消除

22、 了结构冲突,上图将报文分析的数据结构转换为结构图。 显然,中间结构的选取依赖于设计者对问题的理解及其设计者的设计风格。 回溯结构设计回溯结构设计 以上回溯结构由三种构件组成: 、Posit(假定) 用于表示条件成立时的处理过程,进入Posit构件时程序 状态就被保存起来。 2、Quit(退出) 当假定调解不成立,控制转向另一认可。 3、Admit (认可) Admit构件提供了另一条处理路径,在Admit的入口处 程序无条件恢复到原有状态。 JACKSON方法 优点:结构清晰、易理解、易修改。不会过多依赖于设计者的 经验。 缺点:当系统规模及复杂度大时,确定数据结构困难。 6.5.1 McC

23、abe6.5.1 McCabe方法方法 根据程序控制流的复杂程度定量度量方法。根据程序控制流的复杂程度定量度量方法。 它分析的基础是流图(程序图)。它分析的基础是流图(程序图)。 它的分析过程:它的分析过程: 过程设计结果过程设计结果流图流图计算计算环路复杂度环路复杂度 6.5 程序复杂度的定量度量程序复杂度的定量度量 流流 图图 圆表示圆表示结点结点,可代表,可代表一条或多条一条或多条语句。语句。 流图中的箭头称为流图中的箭头称为边边,代表控制流。,代表控制流。 边必须边必须终止终止于一个结点。于一个结点。 由边和结点围成的面积称为由边和结点围成的面积称为区域区域。 任何方法表示的任何方法表

24、示的过程设计结果过程设计结果都可以翻译为流图。都可以翻译为流图。 处理框和菱形判处理框和菱形判 定框定框 包括图外面的那包括图外面的那 个区域个区域 6.5.1 McCabe6.5.1 McCabe方法方法 复合条件的计算复合条件的计算 复合条件的含义。复合条件的含义。 把复合条件分解为若干个简单条件,把复合条件分解为若干个简单条件,注意每一个简单条注意每一个简单条 件对应一个结点件对应一个结点。 包含条件的点称为包含条件的点称为判定结点判定结点。 6.5.1 McCabe6.5.1 McCabe方法方法 复合条件的计算复合条件的计算 If a or b then procedure x El

25、se procedure y End if a bx y end 6.5.1 McCabe6.5.1 McCabe方法方法 顺序结构的结点可以合并顺序结构的结点可以合并 a b c 6.5.1 McCabe6.5.1 McCabe方法方法 计算环形复杂度的计算环形复杂度的3 3种方法种方法 流图中的流图中的区域的个数区域的个数等于环形复杂度。等于环形复杂度。 公式公式V(G)=E-N+2V(G)=E-N+2,E,E代表流图中代表流图中边的数目边的数目,NN是是结点数目结点数目 。 公式公式V(G)=P+1V(G)=P+1,P,P是流图中判定结点的数目。是流图中判定结点的数目。 6.5.1 Mc

26、Cabe6.5.1 McCabe方法方法 环形复杂度计算的例子环形复杂度计算的例子 根据程序流程图计根据程序流程图计 算算 1 2 3 4 5 6 87 11 910 顺序结构可顺序结构可 以和以和3合并合并 顺序结构可顺序结构可 以和以和5合并合并 该段程序的该段程序的 正常出口正常出口 该段程序的该段程序的 正常出口正常出口 整个程序的整个程序的 正常出口正常出口 6.5.1 McCabe6.5.1 McCabe方法方法 环形复杂度计算的例子环形复杂度计算的例子 1 2,3 4,5 10 6 8 9 7 11 区域区域1 区域区域2 区域区域3 区域区域4 区域个数区域个数:4(即复杂度即复杂度) 判定个数判定个数:3(3+1=4) 边边:11,节点节点:9 即即:11-9+2=4 判定判定1 判定判定2 判定判定3 环形复杂度计算的例子环形复杂度计算的例子 根据根据PDLPDL伪码计算伪码计算 图图6.166.16 6.5.1 McCabe6.5.1 McCabe方法方法 环形复杂度的用途环形复杂度的用途 程序的程序的分支增加分支增加,则环形,则环形复杂度复杂度也随之也随之增加增加; 它是对程序结构的它是对程序结构的定量定量度量度量, ,同时也是对测试难度的定量同时也是对测试难度的定量 度量;度量; 一般

温馨提示

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

评论

0/150

提交评论