c7信息系统的详细设计解析.pptx
《c7信息系统的详细设计解析.pptx》由会员分享,可在线阅读,更多相关《c7信息系统的详细设计解析.pptx(70页珍藏版)》请在咨信网上搜索。
2024/4/2 周二1第第7章章 信息系统的详细设计信息系统的详细设计 2024/4/2 周二2教学内容教学内容 详细设计的目的、原则、过程;详细设计说明书;详细设计的目的、原则、过程;详细设计说明书;详细设计工具;结构化程序设计方法;面向数据结构详细设计工具;结构化程序设计方法;面向数据结构的设计方法;环形复杂度的度量方法和文本复杂度的的设计方法;环形复杂度的度量方法和文本复杂度的度量方法;人度量方法;人-机界面设计要点。机界面设计要点。教学要求教学要求 1 1熟练掌握:详细设计工具,包括图形工具熟练掌握:详细设计工具,包括图形工具(程序流程图、(程序流程图、N-SN-S图和图和PADPAD图)、表格工具(判定表图)、表格工具(判定表和判定树)、语言工具(和判定树)、语言工具(PDLPDL语言);结构化程序设语言);结构化程序设计方法;环形复杂度的度量方法。计方法;环形复杂度的度量方法。2 2一般掌握:详细设计的目的、原则、过程;一般掌握:详细设计的目的、原则、过程;人人-机界面设计的要求与设计、实现原则。机界面设计的要求与设计、实现原则。3 3了解:详细设计文档;面向数据结构的设计了解:详细设计文档;面向数据结构的设计方法;文本复杂度的度量方法。方法;文本复杂度的度量方法。2024/4/2 周二37.1 详细设计概述详细设计概述1 1详细设计详细设计(过程设计过程设计)目的目的 目的是为系统结构图中的目的是为系统结构图中的每一个模块每一个模块确定采用确定采用的的算法算法和块内和块内数据流图数据流图,用某种选定的表达工具给,用某种选定的表达工具给出清晰的描述,使程序员可以将这种描述直接翻译出清晰的描述,使程序员可以将这种描述直接翻译为某种语言程序。为某种语言程序。2 2详细设计的原则详细设计的原则 为了能够使模块的逻辑描述清晰准确,在详细为了能够使模块的逻辑描述清晰准确,在详细设计阶段应遵循下列原则。设计阶段应遵循下列原则。(1)(1)将保证程序的清晰度放在首位将保证程序的清晰度放在首位 (2)(2)设计过程中应采用逐步细化的实现方法设计过程中应采用逐步细化的实现方法 (3)(3)选择适当的表达工具选择适当的表达工具 2024/4/2 周二4 3 3详细设计的过程详细设计的过程 (1 1)为每个模块确定采用的算法,并用适当的工)为每个模块确定采用的算法,并用适当的工具表达算法的过程,给出详细的描述;具表达算法的过程,给出详细的描述;(2 2)确定每一模块使用的数据结构和模块接口的)确定每一模块使用的数据结构和模块接口的细节,包括内部接口、外部接口、模块的输入、输出细节,包括内部接口、外部接口、模块的输入、输出及局部数据等;及局部数据等;(3 3)为每个模块设计一组测试用例,以便在编码)为每个模块设计一组测试用例,以便在编码阶段对模块代码进行预定的测试;阶段对模块代码进行预定的测试;(4 4)编写详细设计说明书,提交复审。)编写详细设计说明书,提交复审。2024/4/2 周二5 4 4详细设计说明书详细设计说明书 (1)(1)引言:用于说明编写本说明书的目的、背景,引言:用于说明编写本说明书的目的、背景,定义所用到的术语和缩略语,以及列出文档中所引用定义所用到的术语和缩略语,以及列出文档中所引用的参考资料等。的参考资料等。(2)(2)总体设计:用于给出软件系统的体系结构图。总体设计:用于给出软件系统的体系结构图。(3)(3)模块描述:依次对各个模块进行详细的描述,模块描述:依次对各个模块进行详细的描述,主要包括模块的功能和性能、实现模块功能的算法、主要包括模块的功能和性能、实现模块功能的算法、模块的输入及输出、模块接口的详细信息等。模块的输入及输出、模块接口的详细信息等。参见参见GB8567-2006GB8567-2006计算机软件文档编制规范。计算机软件文档编制规范。2024/4/2 周二67.2 详细设计的工具详细设计的工具 描述程序处理过程的工具称为过程设计工具,它描述程序处理过程的工具称为过程设计工具,它们可以分为图形、表格和语言三类。们可以分为图形、表格和语言三类。1 1图形工具:包括程序流程图、图形工具:包括程序流程图、N-SN-S图和图和PADPAD图;图;2 2表格工具:包括判定表和判定树;表格工具:包括判定表和判定树;3 3语言工具:包括语言工具:包括PDLPDL语言。语言。2024/4/2 周二71程序流程图程序流程图 程序流程图也称为程序框图,它是历史最悠久、程序流程图也称为程序框图,它是历史最悠久、使用最广泛的一种描述程序逻辑结构的工具。使用最广泛的一种描述程序逻辑结构的工具。1 1)程序流程图的符号和表示方式)程序流程图的符号和表示方式 程序流程图常用的基本符号如图所示。程序流程图常用的基本符号如图所示。2024/4/2 周二8用程序流程图表达的三种基本控制结构如图所示。用程序流程图表达的三种基本控制结构如图所示。2024/4/2 周二92 2)程序流程图的实例)程序流程图的实例例:求一组数中的最大值,画出程序流程图。例:求一组数中的最大值,画出程序流程图。将这组数存于一个数组将这组数存于一个数组A A中,用语言描述其计算过程:中,用语言描述其计算过程:(1 1)输入一个数组)输入一个数组A A,元素个数为,元素个数为N N;(2 2)令最大数)令最大数MAX=AMAX=A(1 1)(数组中的第)(数组中的第1 1元素);元素);(3 3)从)从A A(2 2)至)至A A(N N)(即第)(即第2 2个元素至最末一个元素)个元素至最末一个元素)依次与最大数依次与最大数MAXMAX进行比较;进行比较;(4 4)如新元素)如新元素MAXMAX,则,则MAX=MAX=新元素;新元素;(5 5)输出最大数)输出最大数MAXMAX。2024/4/2 周二10用程序流程图来描述这一算法的过程,结果如图所示。用程序流程图来描述这一算法的过程,结果如图所示。图图7-3用程序流程图描述的求最大值的算法用程序流程图描述的求最大值的算法2024/4/2 周二11 3 3)程序流程图的优缺点)程序流程图的优缺点优点:比较直观、清晰,使用灵活,便于阅读和掌握。优点:比较直观、清晰,使用灵活,便于阅读和掌握。缺点:缺点:可可以以随随心心所所欲欲地地画画控控制制流流程程线线的的流流向向,容容易易造造成成非非结结构构化化的的程程序序结结构构,编编码码时时势势必必不不加加限限制制地地使使用用GOTOGOTO语语句句,导导致致基基本本控控制制块块多多入入口口多多出出口口,这这样样会会使使系系统统质质量量受受到到影影响响,与与系系统统设计的原则相违背;设计的原则相违背;程程序序流流程程图图本本质质上上不不支支持持逐逐步步求求精精,它它使使程程序序员员容容易易过过早地考虑程序的具体控制流程,而忽略了程序的全局结构;早地考虑程序的具体控制流程,而忽略了程序的全局结构;程序流程图难以表示系统中的数据结构;程序流程图难以表示系统中的数据结构;对对于于大大型型系系统统而而言言,程程序序流流程程图图描描述述过过于于琐琐碎碎,不不容容易易阅读和修改。阅读和修改。为为了了克克服服程程序序流流程程图图的的缺缺陷陷,要要求求程程序序流流程程图图都都应应由由三三种种基基本本控控制制结结构构顺顺序序组组合合和和完完整整嵌嵌套套而而成成,不不能能有有相相互互交交叉叉的的情情况,这样的程序流程图才是结构化的程序流程图。况,这样的程序流程图才是结构化的程序流程图。2024/4/2 周二122盒图盒图 盒图(盒图(N-SN-S图)是由图)是由NassiNassi和和ShneidermanShneiderman按照结按照结构化的程序设计要求提出的描述一种图形算法工具。构化的程序设计要求提出的描述一种图形算法工具。1 1)盒图的表示方式)盒图的表示方式 用盒图表达的三种基本控制结构如图所示。用盒图表达的三种基本控制结构如图所示。2024/4/2 周二13 2 2)盒图的实例)盒图的实例 以以前前面面求求一一组组数数中中最最大大值值的的算算法法为为例例,如如用用盒盒图图描述,结果如图描述,结果如图7-57-5所示。所示。2024/4/2 周二14 3 3)盒图的优缺点)盒图的优缺点 盒图有如下一些优点:盒图有如下一些优点:所所有有的的程程序序结结构构均均用用方方框框来来表表示示,无无论论并并列列或或者嵌套,程序的结构清晰可见;者嵌套,程序的结构清晰可见;它它的的控控制制转转移移不不能能任任意意规规定定,必必须须遵遵守守结结构构化化程序设计的要求;程序设计的要求;很容易确定局部和全程数据的作用域;很容易确定局部和全程数据的作用域;很很容容易易表表现现嵌嵌套套关关系系,也也可可以以表表示示模模块块的的层层次次结构。结构。盒图不足的是,当程序内嵌套的层数增多时,内盒图不足的是,当程序内嵌套的层数增多时,内层的方块越画越小,不仅会增加画图的困难,并将使层的方块越画越小,不仅会增加画图的困难,并将使图形的清晰性受到影响;当需要对设计进行修改时,图形的清晰性受到影响;当需要对设计进行修改时,盒图的修改工作量会很大。盒图的修改工作量会很大。2024/4/2 周二153PAD图图PAD(Problem Analysis Diagram)-PAD(Problem Analysis Diagram)-问题分析图问题分析图PADPAD图的基本原理是:采用自顶向下、逐步细化和结构设图的基本原理是:采用自顶向下、逐步细化和结构设计的原则,将模糊的问题解的概念逐步转换为确定的计的原则,将模糊的问题解的概念逐步转换为确定的和详尽的过程,使之最终可采用计算机直接进行处理。和详尽的过程,使之最终可采用计算机直接进行处理。1 1)PADPAD图的表示方式图的表示方式 用用PADPAD图表达的三种基本控制结构如图所示。图表达的三种基本控制结构如图所示。2024/4/2 周二162)PAD2)PAD图的实例图的实例 以前面求一组数中最大值的算法为例,如用以前面求一组数中最大值的算法为例,如用PADPAD图图来描述,结果如图所示。来描述,结果如图所示。2024/4/2 周二17 3 3)PADPAD图的优缺点图的优缺点PADPAD图的主要优点如下:图的主要优点如下:支持自顶向下,逐步求精的要求;支持自顶向下,逐步求精的要求;PADPAD图图满满足足结结构构化化程程序序设设计计要要求求,因因此此采采用用PADPAD图导出的程序必然是结构化的;图导出的程序必然是结构化的;PADPAD图图描描述述的的算算法法结结构构清清晰晰、易易读读易易懂懂、使使用用方方便便。图图中中每每条条竖竖线线表表示示一一个个嵌嵌套套层层次次,图图示示随随层层次次增加向右伸展;增加向右伸展;PADPAD图图既既可可以以描描述述控控制制,也也可可以以描描述述数数据据结结构构,很容易将很容易将PADPAD图描述的算法转换为源程序代码;图描述的算法转换为源程序代码;可自动生成程序。可自动生成程序。与程序流程图和盒图相比,与程序流程图和盒图相比,PADPAD图的使用不是很普遍。图的使用不是很普遍。2024/4/2 周二184综合实例综合实例l下面分别使用程序流程下面分别使用程序流程图、盒图和图、盒图和PADPAD图来表图来表达计算应发工资模块的达计算应发工资模块的算法过程,结果如图所算法过程,结果如图所示。示。(a a)采用程序流程图描述计算应发工资模块)采用程序流程图描述计算应发工资模块2024/4/2 周二19 (b)(b)采用采用N NS S图描述计算应发工资模块图描述计算应发工资模块 (c)(c)采用采用PADPAD图描述计算应发工资模块图描述计算应发工资模块 图图7-8 7-8 三种详细设计中使用的图形工具示例三种详细设计中使用的图形工具示例 2024/4/2 周二20 5判定表和判定树判定表和判定树l请分别用判定表和判定树工具来描述某单位工资档案请分别用判定表和判定树工具来描述某单位工资档案管理系统中管理系统中“职务津贴计算职务津贴计算”加工逻辑过程。加工逻辑过程。l假定职工的职称只分为助工、工程师和高工三种,保假定职工的职称只分为助工、工程师和高工三种,保低津贴分别是低津贴分别是350350、400400、500500元,并且单位根据职工的元,并且单位根据职工的工作年限给予津贴适当的上浮奖励,具体上浮情况如工作年限给予津贴适当的上浮奖励,具体上浮情况如下:无论助工、工程师和高工工作年限在下:无论助工、工程师和高工工作年限在1010年以下的年以下的无浮动;对于在单位工作超过无浮动;对于在单位工作超过1010年但不到年但不到2020年的职工,年的职工,助工、工程师津贴上浮助工、工程师津贴上浮20%20%,高工上浮,高工上浮30%30%;对于在单;对于在单位工作超过位工作超过2020年的职工,助工津贴上浮年的职工,助工津贴上浮30%30%,工程师津,工程师津贴上浮贴上浮35%35%,高工上浮,高工上浮40%40%。2024/4/2 周二21对应的判定表如表对应的判定表如表7-17-1所示所示 。2024/4/2 周二22对应的判定树如图对应的判定树如图7-97-9所示。所示。2024/4/2 周二236PDL语言语言 PDL PDL语言即过程设计语言语言即过程设计语言(Process Design Language)(Process Design Language),是,是一种用于描述程序算法和定义数据结构的伪码设计语言。一种用于描述程序算法和定义数据结构的伪码设计语言。1 1)PDLPDL的构成的构成 PDLPDL是一种是一种“混杂混杂”语言,它使用一种语言(通常是某种语言,它使用一种语言(通常是某种自然语言)的词汇来表示实际操作,同时却使用另一种语言自然语言)的词汇来表示实际操作,同时却使用另一种语言(某种结构化的程序设计语言)的语法来定义控制结构和数据(某种结构化的程序设计语言)的语法来定义控制结构和数据结构。自然语言的采用使算法的描述灵活自由、清晰易懂,结结构。自然语言的采用使算法的描述灵活自由、清晰易懂,结构化程序设计语言的采用使控制结构的表达具有固定的形式且构化程序设计语言的采用使控制结构的表达具有固定的形式且符合结构化设计的思想。符合结构化设计的思想。PDLPDL语言的构成与用于描述加工的结构化语言相似但又有语言的构成与用于描述加工的结构化语言相似但又有区别,区别,主要区别在于:由于主要区别在于:由于PDLPDL语言表达的算法是编码的直接依语言表达的算法是编码的直接依据,因此其语法结构更加严格并且处理过程描述更加具体详细。据,因此其语法结构更加严格并且处理过程描述更加具体详细。2024/4/2 周二24 2 2)PDLPDL的实例的实例 前面求一组数中最大值的过程如果用前面求一组数中最大值的过程如果用PDLPDL语言描述,语言描述,结果如下结果如下:INPUT ARRAY A INPUT ARRAY A MAX=A(1)MAX=A(1)DO FOR I=2 TO N DO FOR I=2 TO N IF MAXA(I)IF MAXO THEN A1 ELSE A2 END IF;IF A O THEN A1 ELSE A2 END IF;S1;S1;IF B0 THEN B1;IF B0 THEN B1;WHILE C DO S2;S3 ENDWHILE;WHILE C DO S2;S3 ENDWHILE;ELSE B2 ELSE B2 ENDIF;ENDIF;B3 B3 ENDWHILE;ENDWHILE;2024/4/2 周二272024/4/2 周二287.3 结构化程序设计方法结构化程序设计方法 1 1结构化程序设计的概念结构化程序设计的概念 定义定义:结构化程序设计是一种设计程序的技术,采用自顶:结构化程序设计是一种设计程序的技术,采用自顶向下、逐步细化的设计方法和单入口、单出口的控制技术,认向下、逐步细化的设计方法和单入口、单出口的控制技术,认为任何程序都可以通过顺序、选择(为任何程序都可以通过顺序、选择(IF_THEN_ELSEIF_THEN_ELSE型选择)和型选择)和循环(循环(DO_WHILEDO_WHILE型循环)三种基本控制结构的复合实现。型循环)三种基本控制结构的复合实现。如果只允许使用顺序、如果只允许使用顺序、IF_THEN_ELSEIF_THEN_ELSE型分支和型分支和DO_WHILEDO_WHILE型型循环这三种基本控制结构,则称为循环这三种基本控制结构,则称为经典的结构程序设计经典的结构程序设计;如果除了上述三种基本控制结构之外,还允许使用如果除了上述三种基本控制结构之外,还允许使用DO_CASEDO_CASE型多分支结构和型多分支结构和DO_UNTILDO_UNTIL型循环结构,则称为扩展的结构程序型循环结构,则称为扩展的结构程序设计;如果再加上允许使用设计;如果再加上允许使用LEAVELEAVE(或(或BREAKBREAK)结构,则称为)结构,则称为修修正的结构程序设计正的结构程序设计。2024/4/2 周二292结构化程序设计的原则结构化程序设计的原则结构化程序设计的主要原则包括:结构化程序设计的主要原则包括:1)1)使用语言中的顺序、选择、重复等有限的基本控制结构表示程使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。序逻辑。2)2)选用的控制结构只准许有一个入口和一个出口。选用的控制结构只准许有一个入口和一个出口。3)3)复杂结构应该用基本控制结构进行组合嵌套来实现。复杂结构应该用基本控制结构进行组合嵌套来实现。4)4)语言中没有的控制结构,可用一段等价的程序段模拟。语言中没有的控制结构,可用一段等价的程序段模拟。5)5)严格控制严格控制GOTOGOTO语句,仅在下列情形才可使用:语句,仅在下列情形才可使用:(a)(a)用一个非结构化的程序设计语言来实现一个结构化的构造。用一个非结构化的程序设计语言来实现一个结构化的构造。(b)(b)若不使用若不使用GOTOGOTO语句就会使程序功能模糊。语句就会使程序功能模糊。(c)(c)在某种可以改善而不是损害程序可读性的情况下。在某种可以改善而不是损害程序可读性的情况下。2024/4/2 周二303使用结构化程序设计技术的优缺点使用结构化程序设计技术的优缺点使用结构化程序设计技术的好处体现在:使用结构化程序设计技术的好处体现在:(1 1)自顶向下、逐步细化的方法符合人类解决复杂问题的)自顶向下、逐步细化的方法符合人类解决复杂问题的普遍规律,可以显著提高系统开发的成功率和生产率。普遍规律,可以显著提高系统开发的成功率和生产率。(2 2)先全局后局部、先整体后细节、先抽象后具体的逐步)先全局后局部、先整体后细节、先抽象后具体的逐步求精过程开发出的程序有清晰的层次结构。求精过程开发出的程序有清晰的层次结构。(3 3)使用单入口单出口的控制结构而不使用)使用单入口单出口的控制结构而不使用GO TOGO TO语句,使语句,使得程序的静态结构和它的动态执行情况比较一致。得程序的静态结构和它的动态执行情况比较一致。(4 4)控制结构有确定的逻辑模式,编写程序代码只限于使)控制结构有确定的逻辑模式,编写程序代码只限于使用很少几种直截了当的方式。用很少几种直截了当的方式。(5 5)程序清晰和模块化使得在修改和重新设计一个系统时)程序清晰和模块化使得在修改和重新设计一个系统时可以重用的代码量最大。可以重用的代码量最大。(6 6)程序的逻辑结构清晰,有利于程序正确性证明。)程序的逻辑结构清晰,有利于程序正确性证明。2024/4/2 周二31 结构程序设计技术的主要缺点是:结构化方法编结构程序设计技术的主要缺点是:结构化方法编制的源代码较长,存储容量和运行时间有所增加(估制的源代码较长,存储容量和运行时间有所增加(估计增加计增加10%10%20%20%);有些非结构化语言不直接提供单);有些非结构化语言不直接提供单入、单出的基本控制结构;个别情况下结构化程序的入、单出的基本控制结构;个别情况下结构化程序的结构也十分复杂。然而随着计算机硬件技术的发展,结构也十分复杂。然而随着计算机硬件技术的发展,存储容量和运行时间已经不是严重问题;如果使用非存储容量和运行时间已经不是严重问题;如果使用非结构化语言编程,有限制地使用结构化语言编程,有限制地使用GOTOGOTO语句,常常可以语句,常常可以达到既满足程序结构清晰的要求,又能够保证程序执达到既满足程序结构清晰的要求,又能够保证程序执行的效率。行的效率。2024/4/2 周二324自顶向下、逐步细化的设计方法自顶向下、逐步细化的设计方法 在详细设计以及编码阶段采用自顶向下、逐步细在详细设计以及编码阶段采用自顶向下、逐步细化的方法,可以把一个模块的功能再逐步细化为一系化的方法,可以把一个模块的功能再逐步细化为一系列具体的处理步骤或某种高级语言的语句。列具体的处理步骤或某种高级语言的语句。逐步细化的步骤可以归纳为三步:逐步细化的步骤可以归纳为三步:1 1)由粗到细地对程序进行逐步的细化,每一步可)由粗到细地对程序进行逐步的细化,每一步可选择其中一条或数条将它们分解为更多或更详细的程选择其中一条或数条将它们分解为更多或更详细的程序步骤。序步骤。2 2)在细化程序过程时,对数据的描述同时进行细)在细化程序过程时,对数据的描述同时进行细化。化。3 3)每步细化均使用相同的结构语言,最后一步一)每步细化均使用相同的结构语言,最后一步一般直接用伪码来描述。般直接用伪码来描述。2024/4/2 周二33 下面用一个简单的例子来说明下面用一个简单的例子来说明“逐步细化逐步细化”的实的实现方法。现方法。设学生信息管理系统模块图中统计模块的功能之设学生信息管理系统模块图中统计模块的功能之一是:输入一个班学生某门课的成绩,分别统计成绩一是:输入一个班学生某门课的成绩,分别统计成绩在在8585分分100100分、分、6060分分8484分和分和6060分以下各分数段的人分以下各分数段的人数。数。编程思路是:读入学生成绩(可利用已存在的学编程思路是:读入学生成绩(可利用已存在的学生成绩数据文件),成绩用生成绩数据文件),成绩用scorescore表示,对每一个成绩表示,对每一个成绩确定它所在的分数段,并将所在分数段人数加。为确定它所在的分数段,并将所在分数段人数加。为此须设三个计数变量此须设三个计数变量num1num1、num2num2、num3num3来存放各分数来存放各分数段人数。段人数。2024/4/2 周二34 一级算法过程为:一级算法过程为:(1 1)将各分数段人数设置为;)将各分数段人数设置为;(2 2)循环:循环控制变量初值,终值班级人数,改)循环:循环控制变量初值,终值班级人数,改变量(若从数据文件读成绩,执行循环体条件应是变量(若从数据文件读成绩,执行循环体条件应是“未到未到文件尾文件尾”););(3 3)读入成绩;)读入成绩;(4 4)确定成绩所在分数段,并将所在分数段人数加;)确定成绩所在分数段,并将所在分数段人数加;(5 5)输出各分数段人数。)输出各分数段人数。其中第步和第步需细化求精。其中第步和第步需细化求精。二级求精过程为:二级求精过程为:(1 1)num1=0num1=0、num2=0num2=0、num3=0num3=0 (4 4)IF score=85 THEN num1=num1+1IF score=85 THEN num1=num1+1 ELSE IF score=60 THEN num2=num2+1 ELSE IF score=60 THEN num2=num2+1 ELSE num3=num3+1 ELSE num3=num3+12024/4/2 周二357.4 面向数据结构的设计方法面向数据结构的设计方法 在详细设计阶段,还会用到一些面向数据结构的在详细设计阶段,还会用到一些面向数据结构的设计方法。下面主要介绍两种面向数据结构的方法:设计方法。下面主要介绍两种面向数据结构的方法:JacksonJackson方法和方法和WarnierWarnier方法。方法。1 1JacksonJackson方法方法 JacksonJackson方法是面向数据结构设计方法的代表之一,方法是面向数据结构设计方法的代表之一,它的基本思想是:在充分理解问题输入、输出数据的它的基本思想是:在充分理解问题输入、输出数据的基础上,找出输入、输出数据的层次结构对应关系,基础上,找出输入、输出数据的层次结构对应关系,根据数据结构的层次关系映射为软件控制层次结构,根据数据结构的层次关系映射为软件控制层次结构,然后对问题进行求精,给出对外求解的精确描述。然后对问题进行求精,给出对外求解的精确描述。2024/4/2 周二361)Jackson图图 Jackson Jackson图由方框、连线及有特殊含义的一些标记图由方框、连线及有特殊含义的一些标记组成。由于尽管数据结构种类繁多,但其数据元素之组成。由于尽管数据结构种类繁多,但其数据元素之间的联系只有顺序、选择和循环三种。因此,使用间的联系只有顺序、选择和循环三种。因此,使用JacksonJackson图无论表达数据结构或程序结构,都是由这三图无论表达数据结构或程序结构,都是由这三种基本结构组合而成的。这三种基本结构在种基本结构组合而成的。这三种基本结构在JacksonJackson图图中的表示符号如图中的表示符号如图7-107-10所示。所示。2024/4/2 周二372)Jackson方法方法 Jackson Jackson方法是一种典型的面向数据结构的结构化方法是一种典型的面向数据结构的结构化程序设计方法,其设计目标是从分析系统的数据结构程序设计方法,其设计目标是从分析系统的数据结构出发,最后得出用出发,最后得出用JacksonJackson伪代码表示的程序处理过程。伪代码表示的程序处理过程。为了便于理解,下面通过一个简单的例子来说明为了便于理解,下面通过一个简单的例子来说明JacksonJackson方法的具体设计步骤。假定某单位原来存在一方法的具体设计步骤。假定某单位原来存在一个职工工资文件和一个职工档案文件,两个文件中的个职工工资文件和一个职工档案文件,两个文件中的记录均按照职工编号升序排列且数目相等,现在要将记录均按照职工编号升序排列且数目相等,现在要将这两个独立的文件合并为一个职工工资档案文件。这两个独立的文件合并为一个职工工资档案文件。采用采用JacksonJackson方法设计,共分为以下四步进行:方法设计,共分为以下四步进行:2024/4/2 周二38(1 1)分析问题,确定输入、输出数据的逻辑结构,并用)分析问题,确定输入、输出数据的逻辑结构,并用JacksonJackson图将其描述出来。图将其描述出来。2024/4/2 周二39 (2 2)找出输入数据结构和输出数据结构中有对应关系)找出输入数据结构和输出数据结构中有对应关系的单元,并按下列规则导出描述程序结构的的单元,并按下列规则导出描述程序结构的JacksonJackson图,图,结果如图结果如图7-127-12所示。所示。2024/4/2 周二40 (3 3)列出完成结构图中各处理框功能的所有操作、分)列出完成结构图中各处理框功能的所有操作、分支及循环条件,并把它们放到程序结构图上的适当位支及循环条件,并把它们放到程序结构图上的适当位置。例子中所涉及的基本操作和条件如下:置。例子中所涉及的基本操作和条件如下:A.A.打开输打开输入文件;入文件;B.B.新建工资档案文件;新建工资档案文件;C.C.读取输入文件中读取输入文件中的一条记录;的一条记录;D.D.关闭文件;关闭文件;E.E.合并生成工资档案记合并生成工资档案记录;录;F.F.将工资档案记录写入文件;将工资档案记录写入文件;G.G.终止;终止;I(1).I(1).输入文件未结束。输入文件未结束。(a)改进前的程序结构图;改进前的程序结构图;(b)改进后的程序结构图改进后的程序结构图图图7-13 加入基本操作和条件后的程序结构图加入基本操作和条件后的程序结构图2024/4/2 周二41 (4 4)用)用JacksonJackson伪代码写出程序的处理过程。伪代码写出程序的处理过程。图图7-13(b)7-13(b)所示的程序结构图对应的伪代码表示如下:所示的程序结构图对应的伪代码表示如下:产生工资档案文件产生工资档案文件seqseq 打开两个输入文件打开两个输入文件 新建工资档案文件新建工资档案文件 程序体程序体itel while itel while 输入文件未结束输入文件未结束 产生工资档案记录产生工资档案记录seqseq 从两个输入文件中各读取一条记录从两个输入文件中各读取一条记录 合并生成工资档案记录合并生成工资档案记录 将生成的工资档案记录写入工资档案文件中将生成的工资档案记录写入工资档案文件中 产生工资档案记录产生工资档案记录endend 程序体程序体endend 关闭所有文件关闭所有文件 终止终止 产生工资档案文件产生工资档案文件endend2024/4/2 周二422Warnier方法方法 1 1)WarnierWarnier图图 在在WarnierWarnier图中,数据元素按从上到下顺序出现,元素选择图中,数据元素按从上到下顺序出现,元素选择出现或重复出现的事实用在元素下面圆括号中标出的出现次数注出现或重复出现的事实用在元素下面圆括号中标出的出现次数注明。明。WarnierWarnier图除了表示数据结构外,也可表示程序结构。图除了表示数据结构外,也可表示程序结构。2 2)使用)使用WarnierWarnier方法的步骤方法的步骤 (1 1)分析确定输入数据、输出数据的逻辑结构,并用)分析确定输入数据、输出数据的逻辑结构,并用WarnierWarnier图描绘数据结构。图描绘数据结构。(2 2)依据输入数据结构导出程序结构,并用)依据输入数据结构导出程序结构,并用WarnierWarnier图描绘图描绘数据程序的处理层次。数据程序的处理层次。(3 3)将程序结构图改为流程图,并自下至上给每个处理框)将程序结构图改为流程图,并自下至上给每个处理框编号。编号。(4 4)根据程序流程图分类写出程序的伪代码指令。)根据程序流程图分类写出程序的伪代码指令。(5 5)按分类写出的指令按序号排序,从而得出描述处理过)按分类写出的指令按序号排序,从而得出描述处理过程的伪码。程的伪码。2024/4/2 周二43面向数据结构的方法主要适用于数据结构比较稳面向数据结构的方法主要适用于数据结构比较稳定、变化不大的程序模块。如果一个程序的数据结构定、变化不大的程序模块。如果一个程序的数据结构经常有变化,或无法准确地定义数据结构,则不适宜经常有变化,或无法准确地定义数据结构,则不适宜采用这样的设计方法。采用这样的设计方法。2024/4/2 周二44 7.5 程序的复杂性度量程序的复杂性度量 定量度量程序复杂程度的方法很有价值:把程序定量度量程序复杂程度的方法很有价值:把程序的复杂程度乘以适当常数即可估算出系统中故障的数的复杂程度乘以适当常数即可估算出系统中故障的数量以及系统开发需要用的工作量,定量度量的结果可量以及系统开发需要用的工作量,定量度量的结果可以用来比较两个不同的设计或两个不同算法的优劣;以用来比较两个不同的设计或两个不同算法的优劣;程序的定量的复杂程度可以作为模块规模的精确限度。程序的定量的复杂程度可以作为模块规模的精确限度。环形复杂度的度量方法环形复杂度的度量方法文本复杂度的度量方法。文本复杂度的度量方法。2024/4/2 周二45 7.5.1 环形复杂度的度量方法环形复杂度的度量方法1 1程序图程序图 使用使用McCabeMcCabe方法首先需要画出程序图方法首先需要画出程序图(Program(Program Graph)Graph),所谓程序图可以看成是,所谓程序图可以看成是“退化了的退化了的”程序流程序流程图,也就是把程序流程图中的每个处理符号都退化程图,也就是把程序流程图中的每个处理符号都退化成一个点,原来连接不同处理符号的箭头变成连接不成一个点,原来连接不同处理符号的箭头变成连接不同点的有向弧,这样得到的有向图就称为程序图。几同点的有向弧,这样得到的有向图就称为程序图。几种基本结构的程序图如图种基本结构的程序图如图7-147-14示。示。2024/4/2 周二46 例如,对如图例如,对如图7-15(a)7-15(a)所示的程序流程图进行所示的程序流程图进行简化,可得到如图简化,可得到如图7-15(b)7-15(b)所示的程序图。所示的程序图。2024/4/2 周二472.环形复杂度的度量方法环形复杂度的度量方法 环形复杂度等于强连通的程序图中线性无关的有环形复杂度等于强连通的程序图中线性无关的有向环的个数。根据图论,在一个强连通的有向图中线向环的个数。根据图论,在一个强连通的有向图中线性无关环的个数由下面的公式给出:性无关环的个数由下面的公式给出:V(G)V(G)m mn np p 其中,其中,V(G)V(G)表示有向图表示有向图G G中的线性无关的环数;中的线性无关的环数;m m表示有向图表示有向图G G中有向边中有向边(弧弧)的个数;的个数;n n表示有向图中的结点个数;表示有向图中的结点个数;p p是有向图是有向图G G中的分离部分的数目。中的分离部分的数目。2024/4/2 周二48 对于一个正常的程序来说,应该从程序图内的入对于一个正常的程序来说,应该从程序图内的入口点到达图中任何一个结点(一个不能达到的结点代口点到达图中任何一个结点(一个不能达到的结点代表永远不能执行的程序代码,显然是错误的),因此,表永远不能执行的程序代码,显然是错误的),因此,程序图总是连通的,也就是说,程序图总是连通的,也就是说,p=1p=1。m m和和n n的值从程序的值从程序图中可以方便地得到。现在的关键问题是,程序图虽图中可以方便地得到。现在的关键问题是,程序图虽然是连通图,但却不是强连通图然是连通图,但却不是强连通图(图中靠近入口的结点图中靠近入口的结点可以到达下面的结点,而靠近出口的结点往往不能到可以到达下面的结点,而靠近出口的结点往往不能到达上面的结点达上面的结点),而强连通图是要求从图中任一结点出,而强连通图是要求从图中任一结点出发都可以到达所有其他结点。为了使程序图能够满足发都可以到达所有其他结点。为了使程序图能够满足图论中计算环形复杂度公式的要求,可以在程序图中图论中计算环形复杂度公式的要求,可以在程序图中增加一条从出口点到入口点的虚弧,此时,程序图就增加一条从出口点到入口点的虚弧,此时,程序图就变成了一个强连通图。变成了一个强连通图。2024/4/2 周二49 对图对图7-15(b)7-15(b)所示的程序图添加虚弧后,就得到所示的程序图添加虚弧后,就得到了如图了如图7-167-16所示的强连通图。所示的强连通图。强连通程序图的环形复杂度:强连通程序图的环形复杂度:V(G)V(G)131310101 14 4 2024/4/2 周二50 实质上,除了采用上面的公式实质上,除了采用上面的公式可以计算环形复杂度的值可以计算环形复杂度的值以外,还可以使用下面两个公式来计算程序图中的环形复杂度。以外,还可以使用下面两个公式来计算程序图中的环形复杂度。V(G)V(G)强连通的程序图在平面上围成的区域数强连通的程序图在平面上围成的区域数 V(G)V(G)判定结点数判定结点数1 1 结构化程序的程序图总是平面图,因此均可采用公式结构化程序的程序图总是平面图,因此均可采用公式来来进行环形复杂度的计算。图进行环形复杂度的计算。图7-167-16中,程序图围成的区域有中,程序图围成的区域有(b,c,d,f,b)(b,c,d,f,b),(c,d,f,e,c)(c,d,f,e,c),(g,h,E,g)(g,h,E,g)和和(S,a,b,g,E,S)(S,a,b,g,E,S),因,因此,根据公式此,根据公式可得该程序图的环形复杂度为可得该程序图的环形- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c7 信息系统 详细 设计 解析
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文