版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
详细设计的目标详细设计的根本目标是:详细设计的基本任务为每个模块进行详细的算法设计;为模块内的数据结构进行设计;对数据库进行物理设计;其他设计:
确定程序模块间的详细接口,根据软件系统的类型,还可能要进行代码设计、输入输出格式设计、人机界面设计等设计;
编写详细设计说明书;对详细设计进行评审。第6章详细设计(模块设计)第6章详细设计(模块设计)6.1结构化程序设计(SP)6.2人机界面设计6.3过程设计工具6.4面向数据结构的设计方法6.5程序复杂程度的定量度量一.结构化程序设计(SP)
的主要思想6.1结构化程序设计主要思想设计方法:自顶向下、逐步求精结构化程序设计:指导人们用良好的思想方法开发出易理解、易验证的程序。需求分析阶段SA方法总体设计阶段SD方法详细设计阶段SP方法一.结构化程序设计(SP)
的主要思想6.1结构化程序设计二.结构化程序设计(SP)
的三种基本控制结构1966年,C.Bohm和G.Jacopini证明:只用三种基本控制结构就能实现任何单入口单出口的程序。结构化程序设计的三种基本控制结构
共同特征:严格地只有一个入口和一个出口顺序结构循环结构ABexpATF分支结构expABTF6.1结构化程序设计三.结构化程序设计(SP)
的设计准则一个程序模块内的基本结构(即顺序、选择和循环)应尽量少;
将一个基本结构组成一个容易识别的程序块;
程序块的入/出口都只有一个
6.1结构化程序设计四.如何把非结构化的程序
转化成结构化的程序1.重复编码法:6.1结构化程序设计1243goto语句非结构化程序1243结构化程序4WHILEpDOBEGIN…IFqTHENGOTOL1;A;BEND;L1:…非结构化程序四.如何把非结构化的程序
转化成结构化的程序2.布尔标识法:6.1结构化程序设计bool:=true;WHILE(pandbool)DOBEGIN…IFqTHENbool:=false
ELSEBEGINA;BENDEND;…结构化程序图6.2其他常用的控制结构五、结构化程序设计经典的结构程序设计:只允许使用顺序、IF-THEN-ELSE型分支和DO-WHILE型循环这3种基本控制结构。扩展的结构程序设计:还允许使用DO-CASE型多分支结构和DO-UNTIL型循环结构;修正的结构程序设计:再加上允许在循环体中使用LEAVE(或BREAK)结构。五、结构化程序设计六.结构化程序设计(SP)的优点自顶向下、逐步求精:采用先整体后局部、先抽象后具体的方法开发出来的软件具有良好的结构,且开发出的程序易于理解;单入口单出口:良好的结构特征,降低复杂度,增强可读性,可维护性,可验证性等,从而提高软件开发工程的成功率和生产率;有利于程序正确性的证明。6.1结构化程序设计人机界面(Human-ComputerInterface,简称HCI)又称人-机接口或用户界面,它是用户与计算机系统交换信息的媒介,更是用户使用计算机系统的综合操作环境。设计用户界面不仅需要计算机科学的理论和知识,而且需要认知心理学以及人-机工程学、语言学等学科的知识。人机界面概述6.2人机界面设计最有影响的事件和成果
1963年发明鼠标器的美国斯坦福研究所的D.Engelbart,他预言鼠标器比其他输入设备都好,并在超文本系统、导航工具方面做了杰出的成果(AugmentedHumanIntellectproject),而获1997年ACM图灵奖。10年后鼠标器经不断改进,成为影响当代计算机使用的最重要成果。最有影响的事件和成果70年代Xerox研究中心的AlanKay提出了Smalltalk面向对象程序设计等思想,并发明了重叠式多窗口系统。1989年TimBerners-Lee在日内瓦的CERN用HTML及HTTP开发了WWW网,随后出现了各种浏览器(网络用户界面),使互联网飞速发展起来。最有影响的事件和成果90年代美国麻省理工学院N.Negroponte领导的媒体实验室在新一代多通道用户界面方面(包括语音、手势、智能体等),做了大量开创性的工作。90年代美国Xerox公司PARC的首席科学家MarkWeiser首先提出“无所不在计算(UbiquitousComputing)”思想。人机界面的风格——四代。第一代界面——命令和询问方式。通信完全以正文形式并通过用户命令和用户对系统询问的响应来完成。例如:D>runprog1.exe/debug='on'/out=pl/in=t1/alloc=1000kRUNALLOCATIONTOBEQUEUED?>>yesAUTOMATICCHECKPOINTINGINTERVAL?>>5缺点:易出错、不友好,且不易于学习。6.2人机界面设计人机界面概述第二代界面——简单的菜单式,例如:
chooseprogramoptionthatisdesired:1=inputdatamanually2=inputdatafromexistingdatafile3=performsimplifiedanalysis4=performdetailedanalysis5=producetabularoutput6=producegraphicaloutput7=otheroptionsclassesselectoption?_这种方式与命令行方式相比不易出错,但使用起来仍然乏味。6.2人机界面设计人机界面概述第三代界面——面向窗口的点选界面(pointandpickinterface)亦称为WIMP界面,即:窗口(windows)、四位一体,图标(icons)、形成桌面(desktop)
菜单(menus)、
指示器(pointingdevice)6.2人机界面设计人机界面概述第三代界面的优点1.能同时显示不同种类的信息,使用户可在几个工作环境中切换而不丢失几个工作之间的联系。2.用户通过下拉式菜单(pull‑downmenu)可方便地执行控制型和对话型任务。3.引入图标、按钮和滚动条技术,可大大减少键盘输入,这对那些不精于打字的用户无疑提高了交互效率,极大地推动了计算机应用。6.2人机界面设计人机界面概述第四代界面:最新一代HCI,把第三代HCI技术与超文本、多任务概念结合起来,使用户可同时执行多个任务(以用户的观点)。第四代界面已出现在许多工作站和高性能PC机上。6.2人机界面设计人机界面概述人机界面技术的进展自然、高效的多通道交互移动手持设备的人机交互智能用户界面1.自然、高效的多通道交互多通道用户界面多通道交互(Multi-ModalInteraction):一种使用多种通道与计算机通信的人机交互方式。采用这种方式的计算机用户界面称为“多通道用户界面”。
通道(Modality):源于心理学的概念,涵盖了用户表达意图、执行动作或感知反馈信息的各种通信方法,如言语、眼神、脸部表情、唇动、手动、手势、头动、肢体姿势、触觉、嗅觉或味觉等。多通道交互多通道交互是近年来迅速发展的一种人机交互技术,它既适应了“以人为中心”的自然交互准则,也推动了互联网时代信息产业(包括移动计算,移动通信、网络服务器等)的快速发展。多通道交互的各类通道(界面)技术中,有不少已经实用化、产品化、商品化。其中我国科技人员做出了不少优异的工作。
手写汉字识别中科院自动化所开发的“汉王笔”手写汉字识别系统,经过近20年的研究和开发,已能识别27000汉字,当用非草写汉字、以每分钟12个汉字的速度书写时,识别率可达99.8%。我国现在已约有300万手写汉字识别系统的用户。
笔式交互技术在笔式交互技术研究中,中国科学院软件所人机交互技术与智能信息处理实验室在笔式交互软件开发平台、面向教学的笔式办公套件(包括课件制作、笔式授课、笔式数学公式计算器、笔式简谱制作等)、面向儿童的神笔马良系统的开发应用方面均有出色的工作,其中不少已经实用化、产品化。
基于笔的字处理EasyEditor手写数学公式视线跟踪(眼动)技术视线跟踪(眼动)技术由于其可能代替键盘输入、鼠标移动的功能,可能达到“所视即所得”(WhatYouLookatisWhatYouGet),因而对残疾人和飞行员等使用有极大的吸引力。视线跟踪(眼动)技术目前一类产品是采用头戴微型摄像头的设备,它用来获取两眼瞳孔(或角膜)中视点。其采样率、精度高,可靠。另一类是在PC机前装了两个微型摄像头的设备,精度不高,适合残疾人操作计算机使用。
2.移动手持设备的人机交互移动手持设备的交互移动手持计算设备是指具有计算功能的PDA、掌上电脑、智能手机这类小型设备。将计算功能嵌入手机、通信功能加入掌上电脑已成潮流。移动手持设备的交互北京大学人机交互和多媒体研究室,开发了TGH
是在手持移动设备上开发的一个导游系统,支持语音和笔的多通道交互方式。使用语音合成与文字、图片相结合的方式输出。其中引入了多种上下文辅助交互,如用户地理空间位置、用户移动方向、时间等。3.
智能用户界面智能空间及智能用户界面智能空间(SmartSpace)是指一个嵌入了计算、信息设备和多通道传感器的工作空间。由于在智能空间里,用户能方便地访问信息和获得计算机的服务,因而可高效地单独工作或与他人协同工作。智能用户界面的最终目标是使人机交互成为和人-人交互一样自然、方便。
智能空间及智能用户界面国际上已开展了许多智能空间的项目MIT IntelligentRoomStanford InteractiveWorkspaceGeorgiaTech. AwareHomeMicrosoft EasyLiving
IBM BlueSpaceGMD iLand
清华大学 智能教室MIT IntelligentRoom
清华大学 智能教室
设计人机界面,必须考虑四个方面:系统的响应时间;用户帮助设施;出错信息处理;命令方式。1)系统响应时间指当用户执行了某个控制动作后(如,点击鼠标器等),系统做出反应的时间(指输出信息或执行对应的动作)。系统响应时间过长、不同命令在响应时间上的差别过于悬殊,用户将难以接受。6.2人机界面设计一.设计问题2)用户都希望得到联机帮助。
联机帮助设施有两类:集成式和附加式。①集成式帮助一般都与软件设计同时考虑,上下文敏感,整个帮助过程快捷而友好;②附加式帮助一般是在软件完成后附上一个受限的联机用户手册。此外,还要考虑诸如帮助范围(仅考虑部分还是全部功能)、用户求助的途径、帮助信息的显示、用户如何返回正常交互工作及帮助信息本身如何组织等一系列问题。6.2人机界面设计一.设计问题3)出错信息处理出错信息应选用用户明了、含义准确的术语描述,同时还应尽可能提供一些有关错误恢复的建议。此外,显示出错信息时,若辅以听觉(如铃声)、视觉(专用颜色)刺激,则效果更佳。6.2人机界面设计一.设计问题4)命令交互键盘命令曾经一度是用户与软件系统之间最通用的交互方式,随着面向窗口的界面的出现,键盘命令虽不再是唯一的交互形式,但许多有经验的熟练的软件人员仍喜爱这一方式,更多的情形是菜单与键盘命令并存,供用户自由选用。6.2人机界面设计一.设计问题用户界面设计是一个迭代过程,直至与用户模型和系统假想一致为止。修改设计创建新界面原型用户评审界面创建界面原型1初步设计设计人员分析用户评审意见界面设计完毕图12-3-1界面设计演进过程6.2人机界面设计二.设计过程一.过程设计工具分类6.3过程设计工具图形表格语言详细设计编码实现程序流程图盒图(N-S图)问题分析图(PAD图)判定树判定表过程设计语言PDL或伪码(Psudo-code)基于某种程序设计语言的源程序代码要求:无二义性描述二.程序流程图
历史最悠久,使用最广泛;但使用最混乱.程序流程图中使用的符号6.3过程设计工具程序流程图也称为程序框图,它使用五种基本控制结构:优点:简单易用、容易修改;对控制流程直观、易于理解、易于复审,便于初学者掌握。缺点:诱使程序员过早考虑控制流程,而不考虑程序的全局结构;不是逐步求精的过程。采用箭头表示控制流,随意转移控制,导致破坏结构程序设计的精神;不易表示数据结构,数据的处理与变换不清楚;6.3过程设计工具二.程序流程图
三.盒图(N-S图)不允许违背结构化程序设计精神没有箭头,因此不允许随意转移控制。由美国I.Nassi和B.Shneiderman,1973年提出。
功能域(即一个结构的作用域)明确
不可能任意转移控制
易于确定局部和全局数据的作用域
易于表现嵌套关系和模块的层次结构坚持使用盒图作为详细设计的工具,可以使程序员逐步养成用结构化的方式思考问题和解决问题的习惯。6.3过程设计工具三.盒图(N-S图)N-S图的基本符号then部分F条件Tif-then结构then部分else部分F条件Tif-then-else结构循环条件do-while部分do-while结构循环条件do-until部分do-until结构子程序P调用子程序
case条件值1case1部分值2case2部分值ncasen部分case结构任务1任务2任务3顺序结构6.3过程设计工具三.盒图(N-S图)例6.3过程设计工具x4TFDo-Untilx5ighfkx1TFbDo-Untilx6ajx21cDo-Whilex323dek:四.问题分析图(ProblemAnalysisDiagram
图)6.3过程设计工具PAD图日立公司,1973年发明采用二维树形结构来表示程序的控制流。它即克服了传统的流程图不能清晰表现程序结构的缺点,又不像N-S图那样受到把全部程序约束在一个方框内的限制,这就是其优势所在。
四.问题分析图(ProblemAnalysisDiagram
图)P1P2顺序结构Case分支与分层结构
(用def细化处理框)P1P2PnX=L1L2LnP11While型循环结构WHILECP连接(语句标号)6.3过程设计工具Until型循环结构UNTILCPP1P2C选择结构(ifCthenP1elseP2)def四.问题分析图(ProblemAnalysisDiagram
图)开始结束aj
Untilx5i
Untilx6bx1kfx4ghdefkx2de123Whilex3c6.3过程设计工具四.问题分析图(ProblemAnalysisDiagram
图)主要优点:(1)由该图设计出的程序必为结构化的(2)结构非常清晰,竖线的条数即程序的层次数(3)所表现的程序逻辑易读、易懂、易记(4)可利用软件工具自动转换为高级语言源程序(5)既可表示程序逻辑,也可描绘数据结构(6)支持自顶向下、逐步求精(利用def)面向高级语言:FORTRAN,PASCAL等都有相应的图形符号,所以将PAD图转换成对应的高级语言程序比较容易6.3过程设计工具五.判定表判定表:6.3过程设计工具条件
(所有条件)条件组合项(条件组合的矩阵)操作(所有可能的动作)操作执行项(与每种条件组合相应的动作)复杂的条件组合应做的动作建立判定表的步骤五.判定表6.3过程设计工具判定表的分析过程五.判定表6.3过程设计工具步骤1:求出各种判定条件可能的取值;五.判定表6.3过程设计工具步骤2:根据条件取值数,计算条件组合数五.判定表6.3过程设计工具步骤3:在判定表中列出所有条件组合,求出各组合的操作判定值五.判定表6.3过程设计工具五.判定表6.3过程设计工具五.判定表6.3过程设计工具五.判定表6.3过程设计工具五.判定表6.3过程设计工具五.判定表6.3过程设计工具五.判定表6.3过程设计工具五.判定表6.3过程设计工具下面以行李托运费的算法为例说明判定表的组织方法。假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李。当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。五.判定表6.3过程设计工具五.判定表RulesRuleConditionrowsActionrows判定表适合描述:包含复杂的条件组合,并要根据这些条件选择动作执行的模块;缺点:不能表示:循环、顺序和选择。当条件为多值条件时(如机票分为头等舱、二等舱、经济舱等多种级别),判定表的简洁程度也下降。其含义不能一眼看出,初用者需要一个简短的学习过程六.判定树6.3过程设计工具行李费算法行李重量W>30行李重量W30免费国内乘客外国乘客头等舱其他舱残疾乘客正常乘客(W-30)2(W-30)4残疾乘客正常乘客(W-30)3(W-30)6头等舱其他舱残疾乘客正常乘客(W-30)4(W-30)8残疾乘客正常乘客(W-30)6(W-30)12判定树:判定表的变种;形式简单,但简洁性不如判定表判定树形式简单:不用任何说明,一眼可看出含义;易学易用。缺点:简洁性较差:同一个数据元素的值往往要要重复写多遍。分支的次序:对判定树的简洁程度有较大影响七.过程设计语言PDL(伪码)6.3过程设计工具伪码:一种以正文形式表示数据和处理过程的设计工具,是一种混合语言。伪码=严格的关键字外部语法+自然语言的词汇用于定义控制结构和数据结构灵活表示实际操作和条件C、PASCAL,借用某种结构化的程序设计语言的语法控制框架。英语/汉语,某种自然语言(1)、数据说明:格式:TYPE<变量名>AS<限定词1><限定词2>其功能是定义数据的类型和作用域说明:1.变量名:是一个模块内部使用的变量或模块间共用的全局变量名。
2.限定词1:标明数据类型
3.限定词2:标明该变量的作用域
TYPEnumberASSTRING
LENGTH(12)(2)、程序块:PDL的过程成分是由块结构构成的,而块将作为一个单个的实体来执行。
BEGIN<块名><一组伪代码语句>END(3)、子程序结构:把PDL中的过程称为子程序。
PROCEDURE<子程序名><一组属性>INTERFACE<参数表><程序块或一组伪代码语句>END(4)、基本控制结构:
IF<条件>THEN<程序块/伪代码语句组>;
ELSE<程序块/伪代码语句组>;
ENDIF
---选择型结构
READ/WRITETO<设备><I/O表>
---输入/输出结构
DOWHILE<条件描述><程序块/伪代码语句组>;
ENDDO
REPEATUNTIL<条件描述><程序块/伪代码语句组>;
ENDREP
---重复型结构
DOLOOP<条件描述><程序块/伪代码语句组>;
EXITWHENENDLOOP
DOFOR<下标=下标表,表达式><程序块/伪代码语句组>;
ENDFOR
---重复型结构
----多路选择结构
CASEOF<case变量名>;
WHEN<case条件1>SELECT<程序块/伪代码语句组>;
WHEN<case条件2>SELECT<程序块/伪代码语句组>;
……DEFAULT:<缺省或错误case:<程序块/伪代码语句组>;
ENDCASEPDL的特性七.过程设计语言PDL(伪码)6.3过程设计工具示例:拼写检查程序七.过程设计语言PDL(伪码)6.3过程设计工具使用PDL语言逐步求精七.过程设计语言PDL(伪码)6.3过程设计工具使用PDL语言逐步求精七.过程设计语言PDL(伪码)6.3过程设计工具PDL的优点七.过程设计语言PDL(伪码)6.3过程设计工具八.总结6.3过程设计工具要求掌握:程序流程图N-S图PAD图PDL语言(伪码)判定树判定表相互转换面向数据结构的设计方法
原理:重复出现的数据通常由循环控制结构处理;选择数据通常由分支控制结构。缺点:没有足够重视和体现模块独立原理适用范围:详细设计阶段面向数据结构的设计方法:Jackson方法:英国人M.Jackson在1973年提出Warnier方法:法国人J.D.Warnier在1973年提出6.4面向数据结构设计方法面向数据结构的设计方法
6.4面向数据结构设计方法映射数据结构(Jackson图)程序结构(Jackson图)程序过程表示(Jackson伪代码)程序分析程序设计一.Jackson图6.4面向数据结构设计方法Jackson图描述数据结构小圈表示选择结构,星号表示重复结构。AB°
D°
C°ACBDAB*选择结构根据条件,A是B或C或D中的某一个重复结构A由B出现N次(N≥0)组成顺序结构A由B、C、D3个元素顺序组成每个元素只出现一次,出现的次序依次为B、C、D
Jackson图有下述优点:1.便于表示层次结构,而且是对结构进行自顶向下分解的有力工具;2.形象直观可读性好;3.既能表示数据结构也能表示程序结构(因为结构程序设计也只使用上述3种基本控制结构)。6.4面向数据结构设计方法一.Jackson图二.改进的Jackson图6.4面向数据结构设计方法改进:选择条件或循环结束条件直接在图上表示出来,增强图的表达能力,容易直接把图翻译成程序框间连线为直线而不是斜线,从而容易在行式打印机上输出。二.改进的Jackson图6.4面向数据结构设计方法选择重复AB*I(i)顺序ACBDAB°—°S(i)AB°D°S(i)C°可选在构成顺序结构的元素中不能有重复出现或选择出现的元素即:第一个图中的BCD不能是在右上角有小圆圈或星号的元素。Jackson图、层次图和层次方框图的区别:6.4面向数据结构设计方法图名方框连线用途阶段Jackson图数据或程序组成设计模块内部处理过程详细设计层次图模块调用描绘软件总体结构总体设计层次方框图数据抽象分析用户需要的数据结构需求分析二.改进的Jackson图
三.Jackson方法6.4面向数据结构设计方法三.Jackson方法
1.五个基本步骤6.4面向数据结构设计方法三.Jackson方法
1.五个基本步骤6.4面向数据结构设计方法三.Jackson方法
1.五个基本步骤6.4面向数据结构设计方法总之,描绘程序结构的Jackson图应该综合输入数据结构和输出数据结构的层次关系而导出来。
步骤4:列出所有操作和条件(包括分支条件和循环结束条件),并分配到程序结构图的适当位置。步骤5:用伪码表示程序。伪码和Jackson图是完全对应的。顺序ACBDAseqBCDAend三.Jackson方法
1.五个基本步骤6.4面向数据结构设计方法3种基本结构对应的伪码选择AB°D°S(i)C°Aselectcond1
BAorcond2CAorcond3DAend三.Jackson方法
1.五个基本步骤6.4面向数据结构设计方法重复AB*I(i)Aiter
untilcondBAendAiter
whilecondBAend三.Jackson方法
1.五个基本步骤6.4面向数据结构设计方法八.总结6.3过程设计工具要求掌握:程序流程图N-S图PAD图PDL语言(伪码)判定树判定表相互转换面向数据结构的设计方法
6.4面向数据结构设计方法映射数据结构(Jackson图)程序结构(Jackson图)程序过程表示(Jackson伪代码)程序分析程序设计二.改进的Jackson图6.4面向数据结构设计方法选择重复AB*I(i)顺序ACBDAB°—°S(i)AB°D°S(i)C°可选在构成顺序结构的元素中不能有重复出现或选择出现的元素即:第一个图中的BCD不能是在右上角有小圆圈或星号的元素。三.Jackson方法
1.五个基本步骤6.4面向数据结构设计方法三.Jackson方法
1.五个基本步骤6.4面向数据结构设计方法三.Jackson方法
1.五个基本步骤6.4面向数据结构设计方法总之,描绘程序结构的Jackson图应该综合输入数据结构和输出数据结构的层次关系而导出来。
步骤4:列出所有操作和条件(包括分支条件和循环结束条件),并分配到程序结构图的适当位置。步骤5:用伪码表示程序。伪码和Jackson图是完全对应的。6.4面向数据结构设计方法三.Jackson方法
2.实例分析三.Jackson方法
2.实例分析6.4面向数据结构设计方法输入、输出的数据结构及对应关系分别为:输入数据结构输出数据结构正文文件字符串*字符*非空格°空格°IIS输出表格表格体串信息*空格数字符串空格总数I6.4面向数据结构设计方法三.Jackson方法
2.实例分析6.4面向数据结构设计方法3导出程序JackSon结构图
统计空格程序体处理字符串*印总数I处理非空格°处理空格°分析字符*S印字符串印空格数分析字符串I输出表格表格体串信息*空格数字符串空格总数I三.Jackson方法
2.实例分析6.4面向数据结构设计方法3导出程序JackSon结构图统计空格程序体处理字符串*印总数I处理非空格°处理空格°分析字符*S印字符串印空格数分析字符串I正文文件字符串*字符*非空格°空格°IIS列出所有操作和条件,并且把它们分配到程序结构图的适当位置。(1)停止 (2)打开文件(3)关闭文件 (4)印出字符串(5)印出空格数目 (6)印出空格总数(7)sum:=sum+1 //sum是保存空格个数的变量(8)totalsum:=totalsum+sum//totalsum保存空格总数(9)读入字符串 (10)sum:=0(11)totalsum:=0 (12)pointer:=1//指示当前分析的字符在字符串中的位置(13)pointer:=pointer+1I(1)文件结束、 I(2)字符串结束
S(3)字符是空格三.Jackson方法
2.实例分析6.4面向数据结构设计方法经过简单分析不难把这些操作和条件分配到程序结构图的适当位置。三.Jackson方法
2.实例分析6.4面向数据结构设计方法5、写出伪码。统计空格seq
打开文件 读入字符串
totalsum∶=0
程序体iteruntil文件结束 处理字符串seq
印字符串seq
印出字符串 印字符串end sum∶=0 pointer∶=1
分析字符串iteruntil字符串结束 分析字符select字符是空格 处理空格seq sum∶=sum+1 pointer∶=pointer+1
处理空格end
分析字符or字符不是空格 处理非空格seq pointer∶=pointer+1
处理非空格end
分析字符end
分析字符串end
印空格数seq
印出空格数目 印空格数end
totalsum∶=totalsum+sum
读入字符串 处理字符串end
程序体end
印总数seq
印出空格总数 印总数end
关闭文件 停止统计空格end三.Jackson方法
3.Jackson方法小结6.4面向数据结构设计方法程序复杂度主要指模块内程序的复杂性。它直接关联到软件开发费用的多少,开发周期的长短和软件内部潜伏错误的多少。减少程序复杂度,可提高软件的简单性和可理解性,并使软件开发费用减少,开发周期缩短,软件内部潜藏错误减少。6.5程序复杂度定量度量程序复杂度6.5程序复杂度定量度量定量度量程序复杂程度的用处:程序的复杂程度乘以适当常数估算出软件中错误的数量以及所需的开发工作量,可用于比较两个不同的设计或两个不同算法的优劣;可以作为模块规模的精确限度。程序复杂度为了度量程序复杂性,要求复杂性度量应满足以下假设:●对于不合理的程序,例如对于长度动态增长的程序,或者对于原则上无法排错的程序,不应当使用它进行复杂性计算;●它可以用来计算任何一个程序的复杂性;一.McCabe方法6.5程序复杂度定量度量什么是程序图?一.McCabe方法6.5程序复杂度定量度量程序图的基本元素一.McCabe方法6.5程序复杂度定量度量一.McCabe方法6.5程序复杂度定量度量程序流程图与对应的流图6.5程序复杂度定量度量一.McCabe方法6.5程序复杂度定量度量流图中的结点可能具有以下的含义:过程块:一组连续执行的无分支的语句。在过程块中,如果块中的某个语句被执行,那么块中的所有其它语句也将会被执行。例如:结点2和3、4和5。反例:3和4不是过程块;汇聚点:程序中控制流的结合点(如果程序流程图中这个结合点没有对应的处理框应该在流图中补上)。例如:结点9和10判定点(谓词结点):程序中控制流的分叉点。例如:结点3、6图由PDL翻译成的流图一.McCabe方法6.5程序复杂度定量度量环形复杂度V(G):强连通图G中线性无关的有向环的个数。三种计算方法:V(G)=图中平面区域的个数V(G)=P(判定结点的个数)+1V(G)=E(边数)–N(结点数)+2环形复杂性的计算方法6.5程序复杂度定量度量环形复杂性的计算方法6.5程序复杂度定量度量环形复杂性的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 体育系学生党支部个人总结
- 山东省临沂市兰山区2026年中考数学二模试卷(含答案)
- 一年级50以内加减法混合数学口算题50道(附答案)
- 学前教育心理学自考试题及答案
- 新生儿高胆红素血症的诊疗与护理考试题库与答案
- 新安全生产法知识竞赛试题库及答案共50题
- 2026 年大中学生远离危险游乐项目人身安全教育课件
- 2026 年夏季幼儿园幼儿不私自靠近水池沟渠安全班会
- 2026 年厂区消防安全与安全生产融合宣讲
- 甘肃武威市2025年高中招生及毕业会考模拟试题(二 )英语(文字版含答案)
- 心室扑动和心室颤动课件
- (全套表格可用)SL631-2025年水利水电工程单元工程施工质量检验表与验收表
- 专题02 三角形中的倒角模型之A字、8字、燕尾模型的三类综合题型(压轴题专项训练)数学人教版2024八年级上册(解析版)
- 连锁餐饮企业督导工作手册范本
- 实施指南(2025)《DL-T338-2010 并网运行汽轮机调节系统技术监督导则解读》
- 2025重庆酉阳县公安局辅警岗位招聘90人考试参考试题及答案解析
- 城市管理的面试题及答案
- 第三章物质的性质与转化论证重污染天气“汽车限行”的合理性探讨社会性科学议题教学设计-高一上学期化学鲁科版
- 翻转课堂培训课件
- 合同面积调整补充协议
- 煤矿应急培训课件班组长
评论
0/150
提交评论