软件工程课件:第六章 详细设计_第1页
已阅读1页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

软件工程导论

第六章详细设计6.1结构程序设计6.2人机界面设计6.3过程设计的工具6.4面向数据结构的设计方法6.5程序复杂程度的定量度量6.6小结2

1、详细设计介绍详细设计的根本目标是:确定应该怎样具体地实现所要求的系统。经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。3

详细设计基本任务主要确定每个模块具体执行过程,有:为每个模块进行详细的算法设计。为模块内的数据结构进行设计。对数据库进行物理设计。其他设计,如:代码设计、输入/输出格式设计、人机对话设计。编写详细设计说明书。评审4

6.1结构程序设计(SP)一、什么是结构化程序?最早由E.W.Dijkstra在60年代中期提出。经典定义:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,而且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。比较全面的定义:结构程序设计是尽可能少用GOTO语句的程序设计方法,最好仅仅在检测出错误时才使用GOTO语句,而且应该总是使用前向的GOTO语句。5

二、结构化程序设计(SP)主要原则(1)使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。

(2)选用的控制结构只准许有一个入口和一个出口。(3)复杂结构应该用基本控制结构进行组合嵌套来实现。(4)严格控制GOTO语句,仅在下列情形才可使用:用一个非结构化的程序设计语言去实现一个结构化的构造。在某种可以改善而不是损害程序可读性的情况下。6

三、五种基本的结构化控制结构(程序流程图表示)7

6.2入机界面设计人机界面通常也称为用户界面用户界面友好性属软件性特性,独立于所有具体功能用户界面是否友好很大程度由人的主观因素决定。问:请说说你心目中友好的界面是怎样的?8

用户界面应具备的特性可使用性如:使用简单、界面中所用术语应该标准化,并保持一致性;拥有Help功能;较快的系统响应速度和较低的系统开销;具有容错能力。灵活性能满足不同用户的要求;可以制定和修改界面方式;能提供各类的系统响应信息,如反馈、提示、帮助、报错等;与其他软件系统应有标准的界面。复杂性在完成预定功能的前提下,用户界面越简单越好。可靠性用户界面能保证用户正确、可靠地使用系统,保证有关程序和数据的安全性。9

6.2.1设计问题在设计人机界面过程中,几乎总会遇到以下4个问题:①系统响应时间②用户帮助信息③出错信息处理④命令交互10

①系统响应时间系统响应时间指从用户完成某个控制动作到软件给出预期的响应之间的这段时间。有两个重要属性:长度:响应时间的长短;易变性:响应时间相对于平均响应时间的偏差。11

②用户帮助信息具体设计帮助信息时,应该解决以下问题:在用户与系统交互期间,是否在任何时候都能获得关于系统任何功能的帮助信息?(全部或部分)用户怎样请求帮助?(帮助菜单、功能键、Help命令)怎样显示帮助信息?(独立窗口、某个参考文档、屏幕固定位置显示简短提示)用户怎样返回正常的交互方式?(返回按钮、功能键)怎样组织帮助信息?(通过关键字访问、层次结构、超文本结构)12

③出错信息处理出错信息或警告信息应具有的属性:是用户可以理解的术语应该提高有助于从错误中恢复的建设性意见信息应该指出错误可能导致哪些负面后果(如破坏数据文件)等信息应该伴随视觉听觉上的提示,如警告声等信息不能带有指责色彩13

④命令交互多数情况,用户应该既可以从菜单中选择命令,也可以通过键盘输入命令。提供命令交互应考虑的问题:是否每个菜单选项都有对应的命令?采用何种命令形式?(控制序列,如ctrl+…;功能键;键入命令)学习和记忆命令的难度多大?忘了怎么办?用户是否可以定制或缩写命令?14

6.2.3设计过程用户界面设计是一个迭代的过程,包括以下步骤:15

6.2.3人机界面设计指南界面分类一、一般交互界面二、信息显示界面三、数据输入界面16

一、一般交互界面1、基本设计指南保持一致性;提供有意义的反馈和帮助信息;执行较大破坏性动作之前要求用户确认;允许犯错误,允许中断或撤销绝大多数操作;减少两次操作之间必须记忆的信息量;按功能对动作分类,并据此设计屏幕布局用简单动词或短语作为命令名17

2、交互界面的基本类型①菜单界面②对话③其他18

①菜单界面按显示形象分类:正文菜单、图标菜单、正文图标混合菜单。按屏幕位置和操作风格分类固定、浮动、下拉式、嵌入式19

20

21

22

②对话框对话形式必须回答式、无需回答式、警告式对话实现方式标准对话、定做式对话③其他图像窗口23

二、信息显示界面1、界面显示的基本元素①数据②字符③图形④报告24

2、基本设计指南可用多种不同方式显示信息。如用图形表示数据只显示与当前工作内容有关的信息使用一致的标记、缩写和可预知的颜色。使用窗口分隔不同类型的信息使用模拟方式表示信息。25

26

界面举例网上红心大战27

三、数据输入界面1、基本设计指南尽量减少用户输入的动作保持信息显示和数据输入的一致性允许用户自定义输人,如键盘输入或鼠标输入当前动作语境中,不适用的命令不起作用。让用户控制交互流,如用户能跳过不必要的动作消除冗余的输入28

界面举例MSN29

界面举例30

6.3过程设计的工具(1)图形工具程序流程图(FC)盒图(NS)问题分析图(PAD)(2)表格工具判定表判定树(3)语言工具过程设计语言(PDL)31

6.3.1程序流程图(FC)又称程序框图。以图形方式说明系统中的控制流,是历史最悠久、使用最广泛的一种描述程序逻辑结构的工具。优点:直观清晰、易于使用,是普遍采用的工具。缺点:反映的是最后的结果,不易反映逐步求精的过程可以随心所欲地画控制流程线的流向,容易造成非结构化的程序结构。不易表示数据结构。32

程序流程图的标准符号33

34

6.3.2盒图(N-S图)出于要有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi和Shneiderman提出用盒图代替传统的流程图,简称为N一S图。优点:只能描述结构化程序所允许的标准结构。程序结构用方框表示,清晰可见。缺点:当程序内嵌套层数增多时,内层方块越画越小,增加了画图的困难,并使图形的清晰性受到影响。35

五种基本控制结构在盒图中的表示36

N一S图的嵌套定义形式37

盒图例138

6.3.3问题分析图(PAD)日立公司发明。用二维树形结构的图来表示程序的控制流,控制流程自上而下,从左往右地执行。优点:程序结构清晰,结构化程度高。支持自顶向下,逐步求精的设计方法。既可以表示程序逻辑,也可以描绘数据结构。用PAD图表现程序逻辑,易读易写,使用方便。容易转换成高级语言源程序,也可用软件工具实现自动转换。39

五种基本控制结构在PAD图中的表示40

PAD描述的示例41

6.3.4判定表判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系。如果数据流处理时需要依赖多个逻辑条件的取值,用判定表来描述比较合适。一、判定表组成条件部分给出所有的

两分支判断的列表;动作部分给出相应的处理;42

例1:检查发货单判定表43

二、判定表的应用使用判断表进行数据处理说明44

6.3.6过程设计语言(processDesignLanguage,PDL)也称伪码(pseudocode),是一种介于自然语言和形式化语言之间的语言,用于描述功能模块的算法设计和处理细节的语言。特点:易编写,易理解,容易转换成源程序。45

例:商店业务处理系统中“检查发货单”

IF发货单金额超过$500THENlF欠款超过了60天THEN

在偿还欠款前不予批准

ELSE(欠款未超期)发批准书,发货单

ENDIFELSE(发货单金额未超过$500)IF欠款超过60天THEN

发批准书,发货单及赊欠报告

ELSE(欠款未超期)发批准书,发货单

ENDIFENDIF46

PDL的特性1)正文用严格的程序语言的基本控制结构分割,称为“外语法”,如If……Then……Else、While……DO、Repeat……Until、Case……of。2)操作用自然语言表示,描述处理特点,称为“内语法”。

3)具有数据说明机制,包括简单的(如纯量和数组)与复杂的(如链表或层次的数据结构)数据说明。

4)具有模块定义和调用机制,因此开发人员应根据系统编程所用的语种,说明PDL表示的有关程序结构。47

例:数据字典中,使用PDL进行数据处理的说明处理名:核实订票处理编号:3.2激活条件:收到取订票信息处理逻辑:1、读订票旅客信息文件

2、搜索此文件中是否有与输入信息中姓名及身份证号相符的项目

IF有

THEN判断余项是否与文件中信息相符

IF是THEN输出已订票信息

ELSE输出未订票信息

ENDIFELSE输出未订票信息

ENDIF执行频率:实时48

PDL优点提供的机制比图形全面,为保证详细设计与编码的质量创造了有利条件。可作为注释嵌入在源程序中一起作为程序的文档,并可同高级程序设计语言一样进行编辑、修改,有利于软件的维护。可自动生成程序代码,提高软件生产率。49

6.3.5判定树判定树是判定表的变种,能清晰表示复杂的条件组合与操作之间的关系,形式简单,不需要做任何说明,是常见的系统分析工具。例1:检查发货单的判定树50

“计算行李费”的判定树51

面向数据流的结构化分析与设计方法总结52

6.5程序复杂程度的定量度量1、软件复杂性是软件度量的一个重要分支。主要参数有:规模:即总共的指令数,或源程序行数。难度:通常由程序中出现的操作数的数目所决定的量来表示。结构:通常用与程序结构有关的度量来表示智能度:即算法的难易程度。53

2、程序复杂性软件复杂性主要表现在程序的复杂性,程序复杂性主要指模块内程序的复杂性。常见的定量度量软件复杂性的方法有:代码行度量法McCabe度量法:又称环路度量法。Halstead的软件科学54

6.5.1McCabe方法T.McCabe的研究:McCabe方法根据程序控制流的复杂程度定量度量程序复杂程度,这样度量出的结果称为程序的环形复杂度。一个程序的环形复杂度(cyclomaticcomplexity)取决于它的程序图(流图)

包含的判定结点的数量。55

1、什么是程序图一种简化了的流程图。程序图(流图)仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。流程图中的各种处理框(如加工框,判断框等),都被简化成用圆圈表示的结点可由流程图导出码。或其他工具(PAD图、代码等)变换获得。56

程序图的基本元素符号“O”为程序图的结点,表示一个或多个无分支的语句;箭头为边,表示控制流的方向。边和结点圈定的封闭范围叫做区域。57

程序图的基本元素从图论的观点看,它是一个可以用G=<N,E>来表示的有向图。其中:N一结点;E一有向边,指明程序的流程。包含条件的结点称为判定结点;58

程序流程图与对应的控制流图59

2

温馨提示

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

评论

0/150

提交评论