版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程1第6章详细设计结构程序设计人机界面设计过程设计的工具面向数据结构的设计方法程序复杂度的定量度量26.1结构程序设计任务:是设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码。结构程序设计的概念最早由E.W.Dijkstra提出。(1965)
1966年Böhm和Jacopini证明了,只用三种基本的控制结构就能实现任何单入口单出口的程序。
1972年IBM公司的Mills进一步提出,程序应该只有一个入口和一个出口。3结构程序设计的经典定义如下所述:如果一个程序的代码块仅仅通过顺序、选择和循环这三种控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。可能更全面的定义:结构程序设计是尽可能少用GOTO语句的程序设计方法。最好仅在检测出错误时才使用GOTO语句,而且应该总是使用前向GOTO语句。6.1结构程序设计46.2人机界面设计应该考虑的设计问题1.系统响应时间
一般说来,系统响应时间指的是从用户完成某个控制动作(例如,按回车键或点击鼠标),到软件给出预期的响应(输出或做预期的动作)之间的这段时间。系统响应时间有两个重要属性,分别是长度和易变性。52.用户帮助设施常见的帮助设施有集成的和附加的两类。集成的帮助设施从一开始就设计在软件里面,通常它对用户的工作内容是敏感的,因此用户可以从与刚刚完成的操作有关的主题中选择一个请求帮助。附加的帮助设施是在系统建成后再添加到软件中的,在多数情况下,它实际上是一种查询能力有限的联机用户手册。集成的帮助设施优于附加的帮助设施。6.2人机界面设计63.出错信息处理一般说来,交互式系统给出的出错信息或警告信息,应该具有下述属性:●信息应该以用户可以理解的术语描述问题。●信息应该提供有助于从错误中恢复的建设性意见。●信息应该指出错误可能导致哪些负面后果(例如,破坏数据文件),以便用户检查是否出现了这些问题,并在确实出现问题时予以改正。●信息应该伴随着听觉上或视觉上的提示,也就是说,在显示信息时应该同时发出警告声,或者信息用闪烁方式显示,或者信息用明显表示出错的颜色显示。●信息不能带有指责色彩,也就是说,不能责怪用户。6.2人机界面设计74.命令交互命令行曾经是用户和系统软件交互的最常用方式,而且也曾经广泛地用于各种应用软件中。现在,面向窗口的、点击和拾取方式的界面已经减少了用户对命令行的依赖,但是,许多高级用户仍然偏爱面向命令的交互方式。在多数情况下,用户既可以从菜单中选择软件功能也可以通过键盘命令序列调用软件功能。6.2人机界面设计81、菜单(menu)
按照显示方式正文菜单、图标菜单、正文和图标混合菜单,如:开始菜单。按屏幕位置和操作风格固定位置、浮动位置(弹出)、下拉式、嵌入式图a混合菜单图b固定及下拉菜单固定菜单下拉菜单92、图象在用户界面中,加入丰富多彩的画面,将能够更加行象地为用户提供有用的信息,以达到可视化的目的。主要的处理操作有:图象的隐蔽和再现、屏幕滚动和图案显示、动画等。103、对话框对话框是在需要时,显示在屏幕上一个矩形区域内的图形和正文信息。通过对话,实现系统和用户之间的通信。对话框显示的方式与弹出式菜单类似,即瞬时弹出。同时,系统还应将对话框所覆盖的原图象进行保存,以便在对话结束后能立即恢复。有三种对话形式:必须回答式如图a所示无需回答式如图b所示警告式如图c所示图a必须回答式对话框图b无需回答式对话框图c警告式对话框114、窗口(window)图形学中称为视图区(Viewport),视为虚拟屏幕。一个实用窗口,可包含部件:菜单区(menubar)图标区(iconbar)标题区(titlebar)移动区(movebar)大小区(sizebar)退出区(quitbar)用户工作区(user’sworkbar)横向滚动区(horizontalscrollbar)纵向滚动区(verticalscrollbar)图a窗口12数据I/O界面,是系统的重要组成部分。主要从输入速度和减少出错率考虑。1、尽量减少输入工作量对相同内容输入设置默认值自动填入列表选择或点击选择2、输入屏幕与输入格式匹配即屏幕显示按照数据使用频率、重要性、次序等组织。3、数据输入的一般规则 确定输入 交互动作 确定删除 提供反馈数据I/O界面设计13人机界面设计过程创建设计模型原型实现模型试用和评估修改141.一般交互指南一般交互指南涉及信息显示、数据输入和整体系统控制,因此,这些指南是全局性的,忽略它们将承担较大风险。界面设计指南2.信息显示指南如果人机界面显示的信息是不完整的,含糊的或难于理解的,则应用软件显然不能满足用户的需求。可以用多种不同方式“显示”信息:用文字、图片和声音;按位置、移动和大小;使用颜色、分辨率和省略。153.数据输入指南用户的大部分时间用在选择命令、键入数据和向系统提供输入。在许多应用系统中,键盘仍然是主要的输入介质,但是,鼠标、数字化仪和语音识别系统正迅速地成为重要的输入手段。界面设计指南166.3过程设计的工具1、程序流程图2、盒图(N-S图)3、PAD图—问题分析图4、判定表5、判定树6、过程设计语言—PDL17程序流程图abX1X2X7X6X4X3X5higfedcjFTFFFTTT多分支选择结构先判定型循环结构选择结构后判定型循环结构18程序流程图中使用的符号(a)选择(分支);(b)注释;(c)预先定义的处理;(d)多分支;(e)开始或停止;(f)准备;(g)循环上界限;(h)循环下界限;(i)虚线;(j)省略符;(k)并行方式;(l)处理;(m)输入/输出;(n)连接;(o)换页连接;(p)控制流19循环的标准符号注解的使用20多出口判断21盒图盒图的基本符号(a)顺序;(b)IF_THEN_ELSE型分支;(c)CASE型多分支;(d)循环;(e)调用子程序A22示例23N-S图的嵌套定义形式24任务1任务2任务3顺序结构WHILE型条件循环体先判定型循环结构条件then部分else部分选择结构TFUNTIL型条件循环体后判定型循环结构控制变量
任务1任务2任务n多分支选择结构值1值2值nPAD图基本结构PAD图(ProblemAnalysisDiagram)25例1:对数组X进行排序。“自顶而下,逐步求精”
1、循环一次,排好一个X[h]排好第H个X[h]找X[J]=MAX(X[h]。。X[n])交换X[J]和X[h]2、细化(a)(b)(b)(a)3、连接各图,构成完整的PAD图H:=1,n-1排好第h个X[h]H:=1,n-1H:=1,n-1W:=X[h]X[h]:=X[j]X[j]:=wJ:=hk:=h+1,nX[k]>X[J]J:=kH:=1,n-1H:=1,n-1H:=1,n-1例126s[17]~s[22]=0whilenum(1-1000)
输入
age
age
=17
s[17]++
s[18]++
=18
s[19]++
=19
s[20]++
=20
s[21]++
=21
s[22]++
=22whilei(17-22)
输出
s[i]beginend举例27BEGINFIRST:=K[1];SECOND:=0;FIRST=K[I]SECOND=0I:=2toNK[I]>SECONDK[I]>FIRSTSECOND=FIRSTFIRST=K[I]SECOND=K[I]
ELSESECOND:=K[I]ENDENDEND.
PASCAL源程序段对应PAD图FORI:=2TONDOBEGINIFK[I]>SECONDTHENBEGINIFK[I]>FIRSTTHENBEGINSECOND:=FIRST; FIRST:=K[I]END例2图3.49PAD图应用举例28练习(画出PAD图)S=1+3+5+…+999。求f(x)=求g(x)=1x>00x=0-1x<01x>0-1x<=029s=0i=1Whilei<=999i=i+2s=s+iPrints30InputxF(X)=1F(X)=-1X>0T输出F(X)FInputxG(x)=1xX>0X=0X<0G(x)=0G(x)=-1输出g(X)31当算法中包含多重嵌套的条件选择时,判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系。一张判定表由四部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。判定表右半部的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。
判定表32
123456789国内乘客
TTTTFFFF头等舱
TFTFTFTF残疾乘客
FFTTFFTT行李重量W≤30TFFFFFFFF免费×
(W-30)×2
×
(W-30)×3
×
(W-30)×4
×
×
(W-30)×6
×
×(W-30)×8
×
(W-30)×12
×
用判定表表示计算行李费的算法33
无多分支判断结构34
35建立判定表的步骤列出与一个具体过程(或模块)有关的所有处理。列出过程执行期间的所有条件(或所有判断)。将特定条件取值组合与特定的处理相匹配,消去不可能发生的条件取值组合。将右部每一纵列规定为一个处理规则,即对于某一条件取值组合将有什么动作。36判定树判定树是判定表的变种优点:形式简单易于掌握和使用用判定树表示计算行李费的算法注:判定表与判定树并不适用于作为一种通用的设计工具,通常将之用于辅助测试37作业某仓库发货方案如下:客户欠款时间不大于30天,如果需要量不大于库存量则立即发货;否则先按库存量发货,进货后再补发。客户欠款时间不大于100天,如果需要量不大于库存量则先付款再发货;否则不发货。客户欠款时间大于100天,要求先付欠款。用判定表和判定树表示38PDLPDL是一种用于描述功能模块的算法设计和加工细节的语言。称为设计程序用语言。它是一种伪代码(Pseudocode)PDL-----关键词+自然语言391、数据说明:定义数据的类型和作用域格式:
TYPE<变量名>AS<限定词1><限定词2>说明:1.变量名:是一个模块内部使用的变量或模块间共用的全局变量名。
2.限定词1:标明数据类型
3.限定词2:标明该变量的作用域PDL402、程序块:PDL的过程成分是由块结构构成的,而块将作为一个单个的实体来执行。
BEGIN<块名>
<一组伪代码语句>ENDPDL413、子程序结构:把PDL中的过程称为子程序。
PROCEDURE<子程序名><一组属性>INTERFACE<参数表><程序块或一组伪代码语句>ENDPDL424、基本控制结构:
IF<条件>THEN<程序块/伪代码语句组>;
ELSE<程序块/伪代码语句组>;
ENDIF选择型结构
PDL434、基本控制结构:
DOWHILE<条件描述><程序块/伪代码语句组>;
ENDDO
REPEATUNTIL<条件描述><程序块/伪代码语句组>;
ENDREP重复型结构
PDL444、基本控制结构:重复型结构
DOLOOP<条件描述><程序块/伪代码语句组>;
EXITWHENENDLOOP
DOFOR<下标=下标表,表达式><程序块/伪代码语句组>;
ENDFORPDL454、基本控制结构:多路选择结构
CASEOF<case变量名>;
WHEN<case条件1>SELECT<程序块/伪代码语句组>;
WHEN<case条件2>SELECT<程序块/伪代码语句组>;
……DEFAULT:缺省或错误case:
<程序块/伪代码语句组>;
ENDCASEPDL464、基本控制结构:
READ/WRITETO<设备><I/O表>
输入/输出结构
PDL47例如:
ifXisnotnegativethenreturn(squarerootofXasarealnumber);elsereturn(squarerootof-Xasanimaginarynumber);
外层语法IF-ELSE-THEN是确定的,内层操作“squarerootofX”是不确定的。PDL486.4面向数据结构的设计方法面向数据结构的设计方法的最终目标是得出对程序处理过程的描述。这种方法最适合于在详细设计阶段使用。使用面向数据结构的设计方法,当然首先需要分析确定数据结构,并且用适当的工具——Jackson图清晰地描绘数据结构。49图3.29A由B、C、D三个元素顺序组成(每个元素只出现一次,出现的次序依次是B、C和D)1.顺序结构顺序结构的数据由一个或多个数据元素组成,每个元素按确定次序出现一次。Jackson图50图3.30根据条件A是B或C或D中的某一个(注意:在B、C和D的右上角有小圆圈做标记)2.选择结构选择结构的数据包含两个或多个数据元素,每次使用这个数据时按一定条件从这些数据元素中选择一个。Jackson图513.重复结构重复结构的数据,根据使用时的条件由一个数据元素出现零次或多次构成。图3.31A由B出现N次(N≥0)组成(注意,在B的右上角有星号标记)Jackson图52Jackson图有下述优点:●便于表示层次结构,而且是对结构进行自顶向下分解的有力工具;●形象直观可读性好;●既能表示数据结构也能表示程序结构(因为结构程序设计也只使用上述三种基本结构)。Jackson图53Jackson图的缺点:①选择条件或循环结束条件不能直接在图上表示出来;②不易直接把图翻译成程序;③由于框间连线为斜线,不易在行式打印机上输出。图3.32改进的Jackson图改进的Jackson图54Jackson图和描绘软件结构的层次图形式相当类似,含义却很不相同层次图1.方框通常代表一个模块;2.层次图表现调用关系。Jackson图1.方框通常代表几个语句;2.Jackson图表现组成关系。55Jackson结构程序设计方法基本上由下述五个步骤组成:第1步分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构。第2步找出输入数据结构和输出数据结构中有对应关系的数据单元。第3步用三条规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图。Jackson方法56第4步列出所有操作和条件(包括分支条件和循环结束条件),并且把它们分配到程序结构图的适当位置。第5步用伪码表示程序。Jackson方法57Jackson方法示例例:一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。要求的输出数据格式是,每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。1:用Jackson图画出输入数据和输出数据的数据结构。正文文件字符串*I字符*空格º非空格ºI输出表格表格体空格总数串信息*I字符串空格数SJackson方法示例2:找出输入数据结构和输出数据结构有对应关系的数据单元,然后,用Jackson图表示按映射规则导出相应的程序结构。统计空格程序体印总数处理字符串印字符串分析字符串印空格数分析字符*I处理空格°处理非空格°S列出所有的操作和条件,并把它们分配到程序结构图的适当位置。(1)停止(2)打开文件(3)关闭文件(4)印出字符串(5)印出空格数(6)印出空格总数(7)sum:=sum+1(8)totalsum:=totalsum+sum
(9)读入字符串(10)sum:=0(11)totalsum:=0(12)pointer:=1(13)pointer:=pointer+1I(1)文件结束I(2)字符串结束S(3)字符是空格统计空格程序体印总数处理字符串*印字符串分析字符串印空格数分析字符*I(2)处理空格°处理非空格°29113161012489571313I(1)S(3)3:用Jackson伪代码写出与程序结构图对应的过程性表示。打开文件读入字符串totalsum:=0程序体iteruntil文件结束处理字符串seq印字符串seq印出字符串印字符串endsum:=0pointer:=1
分析字符串iteruntil字符串结束
分析字符select字符是空格处理空格seqsum:=sum+1pointer:=pointer+1处理空格end分析字符or字符不是空格处理非空格seqpointer:=pointer+1处理非空格end分析字符end分析字符串end
印空格数seq印出空格数目印空格数endtotalsum:=totalsum+sum读入字符串处理字符串end程序体end印总数seq印出空格总数印总数end关闭文件停止统计空格end(1)流图按照程序的控制结构设计测试用例时,往往需要仔细分析程序的控制流。为了突出表现程序的控制流,可以使用流图(也称为程序图)。流图仅仅描绘程序的控制流程,它完全不表现对数据的具体操作以及分支或循环的具体条件。6.5程序复杂程度的定量度量1、McCabe方法:62图6.15把程序流程图映射成流图
(a)程序流程图(b)流图6.5程序复杂程度的定量度量63图4.4是由包含复合条件的PDL片断翻译成的流图,注意,与复合条件“aORb”对应的节点有两个,这两个节点分别标记为“a”和“b”。图6.17由包含复合条件的PDL映射成的流图
6.5程序复杂程度的定量度量642计算流图的环形复杂度。环形复杂度定量度量程序逻辑的复杂程度。计算环形复杂度方法:(1)流图中的区域数等于环形复杂度。(2)流图G的环形复杂度V(G)由下式计算:V(G)=E-N+2
其中,E是流图中边的条数,N是流图中节点数。(3)流图G的环形复杂度V(G)也可由下式计算:V(G)=P+1
其中,P是流图中判定节点的数目。653.环形复杂度的用途6.5程序复杂程度的定量度量①分支或循环增多时,CC也随之增大,故CC值实际上是为软件测试的难易度提供了一个定量度量的方法,间接表示了软件的可靠性。②CC是可加的:2模块的总复杂度=各自CC之和。③实践经验表明
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度食品行业员工工资支付合同范本3篇
- 2024智慧城市公共安全监控系统合同
- 2025年度智能厨房设备承包服务合同范本3篇
- 二零二五年餐厅合伙人联合推广宣传合同3篇
- 二零二五版单位职工食堂员工健康饮食指导承包协议3篇
- 2024高端装备制造业国际合作框架合同
- 二零二五年新材料企业股份代持与研发合作合同3篇
- 2025年度采矿权抵押融资法律服务协议书3篇
- 2025年度绿色食品配送中心员工劳务合同范本3篇
- 2024年长期战略联盟协议
- 2025年度土地经营权流转合同补充条款范本
- 南通市2025届高三第一次调研测试(一模)地理试卷(含答案 )
- Python试题库(附参考答案)
- 聚酯合成副反应介绍
- DB37-T 1342-2021平原水库工程设计规范
- 电除颤教学课件
- 广东省药品电子交易平台结算门户系统会员操作手册
- DB32T 3960-2020 抗水性自修复稳定土基层施工技术规范
- 大断面隧道设计技术基本原理
- 41某31层框架结构住宅预算书工程概算表
- 成都市国土资源局关于加强国有建设用地土地用途变更和
评论
0/150
提交评论