信息系统分析与设计第7章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《信息系统分析与设计》
9
用程序流程图来描述这一算法的过程,结果如图7-3所示。
图7-3 用程序流程图描述的求最大值的算法
《信息系统分析与设计》
10
3)程序流程图的优缺点 程序流程图的优点是比较直观、清晰,使用灵活,便于阅读 和掌握,因此在20世纪40年代末到70年代初被普遍采用。但随着 程序设计方法的发展,程序流程图的许多缺点逐渐暴露出来。这 些缺点主要体现在以下方面: ① 可以随心所欲地画控制流程线的流向,容易造成非结构化 的程序结构,编码时势必不加限制地使用GOTO语句,导致基本控 制块多入口多出口,这样会使系统质量受到影响,与系统设计的 原则相违背; ② 程序流程图本质上不支持逐步求精,它使程序员容易过早 地考虑程序的具体控制流程,而忽略了程序的全局结构; ③ 程序流程图难以表示系统中的数据结构; ④ 对于大型系统而言,程序流程图描述过于琐碎,不容易阅 读和修改。 为了克服程序流程图的缺陷,要求程序流程图都应由三种基 本控制结构顺序组合和完整嵌套而成,不能有相互交叉的情况, 这样的程序流程图才是结构化的程序流程图。
《信息系统分析与设计》
20
对应的判定表如表7-1所示 。
《信息系统分析与设计》
21
对应的判定树如图7-9所示。
《信息系统分析与设计》
22
6.PDL语言 PDL 语 言 即 过 程 设 计 语 言 (Process Design Language),是一种用于描述程序算法和定义数据结构 的伪码设计语言。 1)PDL的构成 PDL是一种“混杂”语言,它使用一种语言(通 常是某种自然语言)的词汇来表示实际操作,同时却 使用另一种语言(某种结构化的程序设计语言)的语 法来定义控制结构和数据结构。自然语言的采用使算 法的描述灵活自由、清晰易懂,结构化程序设计语言 的采用使控制结构的表达具有固定的形式且符合结构 化设计的思想。PDL语言的构成与用于描述加工的结构 化语言相似但又有区别,主要区别在于:由于PDL语言 表达的算法是编码的直接依据,因此其语法结构更加 严格并且处理过程描述更加具体详细。
《信息系统分析与设计》
19
5.判定表和判定树 判定表和判定树工具在需求分析阶段已经详细地 介绍过,这里就不再重复,下面举个实例再复习一下。 请分别用判定表和判定树工具来描述某单位工资档案 管理系统中“职务津贴计算”加工逻辑过程。假定职 工的职称只分为助工、工程师和高工三种,保低津贴 分别是350、400、500元,并且单位根据职工的工作年 限给予津贴适当的上浮奖励,具体上浮情况如下:无 论助工、工程师和高工工作年限在10年以下的无浮动; 对于在单位工作超过10年但不到20年的职工,助工、 工程师津贴上浮20%,高工上浮30%;对于在单位工作 超过20年的职工,助工津贴上浮30%,工程师津贴上浮 35%,高工上浮40%。
《信息系统分析与设计》
23
2)PDL的实例 前面求一组数中最大值的过程如果用PDL语言描述, 结果如下: INPUT ARRAY A MAX=A(1) DO FOR I=2 TO N IF MAX<A(I) SET MAX=A(I) ENDIF PRINT MAX
《信息系统分析与设计》
24
3)PDL语言的优缺点 PDL语言具有如下一些优点: ① PDL虽然不是程序设计语言,但是它与高级程 序设计语言非常类似,只要对PDL描述稍加变换就可变 成源程序代码,因此,它是详细设计阶段很受欢迎的 表达工具; ② 用PDL写出的程序,既可以很抽象,又可以很 具体。因此,容易实现自顶向下逐步求精的设计原则; ③ PDL描述同自然语言很接近,易于理解; ④ PDL描述可以直接作为注释插在源程序中,成 为程序的内部文档,这对提高程序的可读性是非常有益 的。 PDL的缺点是不如图形工具那样描述形象直观, 对复杂条件的描述,不如判定表清晰、简单,因此常 常将PDL描述与一种图形描述工具结合起来使用。
《信息系统分析与设计》
27
3.使用结构化程序设计技术的优缺点 使用结构化程序设计技术的好处体现在: (1)自顶向下、逐步细化的方法符合人类解决复 杂问题的普遍规律,可以显著提高系统开发的成功率 和生产率。 (2)先全局后局部、先整体后细节、先抽象后具 体的逐步求精过程开发出的程序有清晰的层次结构。 (3)使用单入口单出口的控制结构而不使用GO TO 语句,使得程序的静态结构和它的动态执行情况比较 一致。 (4)控制结构有确定的逻辑模式,编写程序代码 只限于使用很少几种直截了当的方式。 (5)程序清晰和模块化使得在修改和重新设计一 个系统时可以重用的代码量最大。 (6)程序的逻辑结构清晰,有利于程序正确性证 明。
《信息系统分析与设计》
5
7.2 详细设计的工具 描述程序处理过程的工具称为过程设计工具,它们 可以分为图形、表格和语言三类。 1.图形工具:包括程序流程图、N-S图和PAD图; 2.表格工具:包括判定表和判定树; 3.语言工具:包括PDL语言。
《信息系统分析与设计》
6
1.程序流程图 程序流程图也称为程序框图,它是历史最悠久、使 用最广泛的一种描述程序逻辑结构的工具。 1)程序流程图的符号和表示方式 程序流程图常用的基本符号如图7-1所示,用程序 流程图表达的三种基本控制结构如图 7-2所示。
《信息系统分析与设计》
4
4.详细设计说明书 通常,详细设计说明书中应主要包括以下几方面的 内容: (1) 引言:用于说明编写本说明书的目的、背景, 定义所用到的术语和缩略语,以及列出文档中所引用的 参考资料等。 (2) 总体设计:用于给出软件系统的体系结构图。 (3) 模块描述:依次对各个模块进行详细的描述, 主要包括模块的功能和性能、实现模块功能的算法、模 块的输入及输出、模块接口的详细信息等。
《信息系统分析与设计》
11
2.盒图 盒图又称为N-S图(Nassi-Shneiderman 图),它是 由Nassi和Shneiderman 按照结构化的程序设计要求提出的 描述一种图形算法工具。 1)盒图的表示方式 用盒图表达的三种基本控制结构如图 7-4所示。
《信息系统分析与设计》
12
2)盒图的实例 以前面求一组数中最大值的算法为例,如用盒图描述,结果如 图7-5所示。
《信息系统分析与设计》
13
3)盒图的优缺点 盒图有如下一些优点: ① 所有的程序结构均用方框来表示,无论并列或 者嵌套,程序的结构清晰可见; ② 它的控制转移不能任意规定,必须遵守结构化 程序设计的要求; ③ 很容易确定局部和全程数据的作用域; ④ 很容易表现嵌套关系,也可以表示模块的层次 结构。 盒图不足的是,当程序内嵌套的层数增多时,内层 的方块越画越小,不仅会增加画图的困难,并将使图 形的清晰性受到影响;当需要对设计进行修改时,盒 图的修改工作量会很大。
《信息系统分析与设计》
25
7.3 结构化程序设计方法 1.结构化程序设计的概念 结构化程序设计方法可以定义为:结构化程序设 计是一种设计程序的技术,采用自顶向下、逐步细化 的设计方法和单入口、单出口的控制技术,认为任何 程序都可以通过顺序、选择(IF_THEN_ELSE型选择) 和循环(DO_WHILE型循环)三种基本控制结构的复合 实现。 如 果 只 允 许 使 用 顺 序 、 IF_THEN_ELSE 型 分 支 和 DO_WHILE型循环这三种基本控制结构,则称为经典的 结构程序设计;如果除了上述三种基本控制结构之外, 还允许使用DO_CASE型多分支结构和DO_UNTIL型循环结 构,则称为扩展的结构程序设计;如果再加上允许使 用LEAVE(或BREAK)结构,则称为修正的结构程序设 计。
③ PAD图描述的算法结构清晰、易读易懂、使用方 便。图中每条竖线表示一个嵌套层次,图示随层次增加 向右伸展; ④ PAD图既可以描述控制,也可以描述数据结构, 很容易将PAD图描述的算法转换为源程序代码; ⑤ 可自动生成程序。 但是,与程序流程图和盒图相比,PAD图的使用不 是很普遍。
《信息系统分析与设计》
《信息系统分析与设计》
7
《信息系统分析与设计》
8
2)程序流程图的实例 下面以求一组数中的最大值为例说明程序流程图 的画法。如果要实现找出一组数中最大值这个功能, 可将这组数存于一个数组A中,如果用语言描述其计算 过程如下: (1)输入一个数组A,元素个数为N; (2)令最大数MAX=A(1)(数组中的第1元素); (3)从A(2)至A(N)(即第2个元素至最末一个 元素)依次与最大数MAX进行比较; (4)如新元素>MAX,则MAX=新元素; (5)输出最大数MAX。
第7章 信息系统的详细设计
《信息系统分析与设计》
1
教学内容
详细设计的目的、原则、过程;详细设计说明书; 详细设计工具;结构化程序设计方法;面向数据结构 的设计方法;环形复杂度的度量方法和文本复杂度的 度量方法;人-机界面设计要点。
教学要求
1.熟练掌握:详细设计工具,包括图形工具(程 序流程图、N-S图和PAD图)、表格工具(判定表和判 定树)、语言工具(PDL语言);结构化程序设计方法; 环形复杂度的度量方法。 2.一般掌握:详细设计的目的、原则、过程;人 -机界面设计的要求与设计、实现原则。 3.了解:详细设计文档;面向数据结构的设计方 法;文本复杂度的度量方法。
《信息系统分析与设计》
26
2.结构化程序设计的原则 结构化程序设计的主要原则包括: 1)使用语言中的顺序、选择、重复等有限的基本控 制结构表示程序逻辑。 2)选用的控制结构只准许有一个入口和一个出口。 3)复杂结构应该用基本控制结构进行组合嵌套来实 现。 4) 语言中没有的控制结构,可用一段等价的程序段 模拟。 5) 严格控制GOTO语句,仅在下列情形才可使用: (1)用一个非结构化的程序设计语言来实现一个结 构化的构造。 (2)若不使用GOTO语句就会使程序功能模糊。 (3) 在某种可以改善的而不是损害程序可读性的情 况下。
《信息系统分析与设计》
14
3.PAD图 PAD是问题分析图(Problem Analysis Diagram)的英文缩称。 PAD图的基本原理是:采用自顶向下、逐步细化和结构设计的原 则,力求将模糊的问题解的概念逐步转换为确定的和详尽的过程, 使之最终可采用计算机直接进行处理。 1) PAD图的表示方式
《信息系统分析与设计》
3
3.详细设计的过程
详细设计的过程主要包括以下步骤: (1)为每个模块确定采用的算法,并用适当的工 具表达算法的过程,给出详细的描述; (2)确定每一模块使用的数据结构和模块接口的 细节,包括内部接口、外部接口、模块的输入、输出 及局部数据等; (3)为每个模块设计一组测试用例,以便在编码 阶段对模块代码进行预定的测试; (4)编写详细设计说明书,提交复审。
《信息系统分析与设计》
2
7.1 详细设计概述 1.详细设计目的 详细设计也可以叫做过程设计。详细设计的目 的是为系统结构图中的每一个模块确定采用的算法 和块内数据流图,用某种选定的表达工具给出清晰 的描述,使程序员可以将这种描述直接翻译为某种 语言程序。 2.详细设计的原则 为了能够使模块的逻辑描述清晰准确,在详细 设计阶段应遵循下列原则。 (1) 将保证程序的清晰度放在首位 (2) 设计过程中应采用逐步细化的实现方法 (3) 选择适当的表达工具
用PAD图表达的三种基本控制结构如图 7-6所示。
《信息系统分析与设计》
15
2) PAD图的实例 以前面求一组数中最大值的算法为例,如用PAD图 来描述,结果如图7-7所示。
《信息系统分析与设计》
16
3)PAD图的优缺点
PAD图的主要优点如下: ① 支持自顶向下,逐步求精的要求;
② PAD图满足结构化程序设计要求,因此采用PAD 图导出的程序必然是结构化的;
17
4.运用程序流程图、盒图和PAD图的一个综合实例 下面分别使用程序流程图、盒图和PAD图来表达计算应发工资 模块的算法过程,结果如图7-8所示。
(a)采用程序流程图描述计算应发工资模块
《信息系统分析与设计》
18
(b) 采用N-S图描述计算应发工Biblioteka Baidu模块
(c) 采用PAD图描述计算应发工资模块 图7-8 三种详细设计中使用的图形工具示例