




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程Software Engineering,第六章 软件详细设计,6.1 详细设计任务 6.2 设计表示法 6.3 结构化程序设计 6.4 结构化定理 6.5 图形工具 6.6 面向数据结构的设计 小结,6.1详细设计任务,6.1.1 详细设计的基本任务 1数据结构设计 前面的需求分析、总体设计阶段,确定的概念性的数据类型,要进行确切的定义。这一部分的设计内容一般比较多,所以大多数采用小型数据库辅助的方法。,2物理设计 对数据库进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。,3算法设计 在总体设计的结
2、构完成后,结构各个环节的实现是多解的。着就需要用系统设计与分析的技术来描述。可以用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。,4界面设计 用户界面的设计现在显得比较重要,可以采用字符用户界面设计,图形用户界面和多媒体人机界面设计。这就要结合具体的系统来处理。,5其他设计 根据软件系统的类型,还可能要进行以下设计: (1)代码设计:为了提高数据的输入、分类、存储及检索等操作的效率,以及节约内存空间,对数据库中的某些数据项的值要进行代码设计。 (2)输入/输出格式设计 (3)人机对话设计:对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容及格式的具体设计。 (4
3、)网络设计:如果设计的软件是一个分布式系统,那么还要进行网络的拓扑结构设计。,6编写设计说明书 详细设计说明书有下列的主要内容: (1)引言:包括编写目的、背景、定义、参考资料。 (2)程序系统的组织结构。 (3)程序1(标识符)设计说明:包括功能、性能、输入、输出、算法、流程逻辑、接口。 (4)程序2(标识符)设计说明。 (5)程序N(标识符)设计说明。,7评审 对处理过程的算法和数据库的物理结构都要评审。,6.1.2 详细设计方法 1采用自顶向下、逐步求精的程序设计方法 在详细设计中,虽然处于“具体”设计阶段,但在设计某个复杂的模块内部处理过程时,仍可以采用逐步求精的方法。可以将其分解为若
4、干个模块来实现,降低处理细节的复杂度。,2使用三种基本控制结构构造程序 设计时,如果对一个模块处理过程细化中,开始是模糊的,可以用下面三种方式以模糊过程进行分解: (1)用顺序方式对过程分解,确定各部分的执行顺序。 (2)用选择方式对过程分解,确定某个部分的执行条件。 (3)用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件。,3组织形式 在详细设计阶段,当参加设计的人员比较多的时候,有可能因为设计员的技术水平、设计风格不同而影响到系统的质量。因此,要组织以一个负责全部技术活动的三人为核心小组。 小组中有负责全部技术的主程序员、协调、支持主程序员的后备程序和负责事务性工作的程序管理员
5、。再加上其他技术人员。这种发生的目的是使设计责任集中在少数人身上,利于提高软件质量,并且能有效地提高软件生产率。,6.2 设计表示法,6.2.1 结构化语言 结构化语言是介于自然语言和形式化语言之间的一种类自然语言。结构化语言语法结构包括内外两层。内部语法则比较灵活,可以使用数据字典中定义过的词汇、易于理解的一些名词、运算符和关系符;外层语法具有较固定的格式,设定一组符号如IF、THEN、ELSE、DO WHILEENDWHILE、DO CASEENDCASE等,用于描述顺序、选择和重复的控制结构。,6.2.2 判定表,判定表也是在设计中常用的技术。在有些情况下,数据流图中的某个加工的一组动作
6、依赖于多个逻辑条件的取值。这时,用自然语言或结构化语言都不易清楚地描述出来,而用判定表就能够清楚地表示复杂的条件组合与应做的动作之间的对应关系。,判定表(Decision Table)是判定树表格形式,包括表四部分:条件定义、条件组合、动作定义和条件组合下的动作。判定表的结构如下图61所示。,图61判定表的结构,表6-1 行李托运费处理判定表,判定表比判定树更严格、更具有逻辑性。判定表的条件严格按二进值取值,不会遗漏任何一种组合。 判定表能够把在什么条件下系统应做什么动作准确无误地表示出来,但不能描述循环的处理特性,循环处理还需结构化语言。,6.2.3判定树,判定树是判定表的变形,一般情况下它
7、比判定表更直观,且易于理解和使用。图6-2是与表6-1功能等价的判定树。,图62 判定树,当处理逻辑中含太多判定条件及其组合时,用判定表和判定树描述会比较方便、直观。 以上三种逻辑表达工具各有所长和不足,归纳起来可以得出下列结论: 对于一个不太复杂的判断逻辑(条件组合和行动只有10个左右),使用判断树比较好。,对于一个复杂的判断逻辑(条件较多,相应的行动也比较多),使用判断表比较好。 若一个处理逻辑既包含了一般的顺序执行动作,又包含了判断或循环逻辑,则使用结构化语言较好。,上述三种描述加工逻辑的工具各有优缺点,对于顺序执行和循环执行的动作,用结构化语言描述;对于存在多个条件复杂组合的判断问题,
8、用判定表和判定树。,6.3结构化程序设计,6.3.1 结点 在软件工程中,用流程图程序描述客观存在的事物特性。体现为描述程序控制结构和和指令执行情况,这种对程序结构的控制的流程图程序是一个有向图。图的基本元素是函数结点、谓词结点和汇点三种结点。,1、函数结点 如果一个结点有一个入口线和一个出口线,则称为函数结点。如图6-3所示。其中,F是函数结点的名字。,图6-3 流程图的函数结点,2、谓词结点 如果一个结点有一个入口线和两个出口线,且它不改变程序的数据项的值,则称为谓词结点。如图6-4所示。,图6-4谓词结点,3、汇点 如果一个结点有两个和一个出口线,而且它不执行任何运算,那么称为汇点, 图
9、6-5( a)所示。由多个入口线汇集到一点的情形可以用多个汇点的联结表示。,图6-5 流程图中汇点表示,6.3.2三种基本控制结构 流程图在描述程序控制结构时的优点是直观清晰、易于使用。 图6-6为流程图的三种基本控制结构。,图6-6 流程图的三种基本控制结构,流程图也存在严重缺点: (1)用流程图本身没有限制,所以可以随心所欲地画控制流程线的流向。因此也容易造成非结构化的程序结构 (2)如果遇到多层嵌套的循环时,而且每层仅容许一个出口,那么退出效率就会很差。,(3)高层的宏观控制流程图与低层的微观控制流程的区分问题。 (4)不易表示数据结构。 为了克服流程图的缺陷,要求流程图都应由三种基本控
10、制结构顺序组合和完整嵌套而成,不能有相互交叉的情况,这样的流程图是结构化的流程图。,6.3.3正规程序 定义6-1一个流程图程序如果满足下面两个条件,称为正规程序。 具有一个入口线和一个出口线。 对每一个结点,都有一条从入口线到出口线的通路通过该结点。,图6-7 非正规程序,由于正规程序有一个入口线和一个出口,因而一个正规程序总可以抽象为一个函数结点。这个函数结点概括了该正规程序对数据进行的运算和测试的总的作用。 正规子程序 定义6-2如果一个正规程序的某部分仍然是正规程序,那么称其为该正规程序的正规子程序。,图6-8正规程序的抽象过程,6.3.4基本程序 封闭结构 定义6-3 流程图程序中两
11、个结点之间所有没有重复结点的通路组成的结构称为封闭结构。,图69 封闭结构,基本程序 定义6-4一个正规程序,如果满足如下两个条件,则称之为基本程序。 不包括多于一个结点的正规子程序,换句话说,是一种不可再分解的正规程序; 如果存在封闭结构,封闭结构都是正规子程序。,例如,图6-8中的结点G满足第一个条件,它不包括多于一个结点的正规子程序;但是它不满足第二个条件,它有两个封闭结构:P2-A;P4-S2和P2-P4-B-S1。显然这两个结构都不是正规程序,它们都有两个出口线,如图6-10所示。所以G不是基本程序。,图610 两个出口线的结构,任何一个结构化程序都可以用这些基本程序构成。基本程序形
12、式有多种,显然前面提到的三种基本控制结构和两种扩充控制结构都是基本程序。所以基本程序并不都是必不可少的,为了构造程序,可以只使用一部分基本程序。,基集合 定义6-5用以构造程序的基本程序的集合称为基集合。 例如,可以选下列集合作为基集合: 序列,if-then-else,while do 或序列,if-then-else,repeat-until等。,6.3.5结构化程序 复合程序 定义6-6 如果一个基本程序的函数结点用另一个基本函数程序替换,产生的新的正规程序称为复合程序。 结构化程序 定义6-7 由基本程序的一个固定的基集合构造出的复合程序称为结构化程序。,6.4结构化定理,6.4.1程
13、序函数 定义8已知一正规程序P,对于每个初始数据状态X,若程序是终止的,那么有确定的最终状态Y,如果对于每个给定的X,值Y是唯一的,那么所有的有序对集合(X,Y)就定义了一个函数,称之为程序P的程序函数,记为P。,例1 程序P为: t:=x; x:=y; y:=t 那么,对于任意给定的初始数据状态 X:(x, y, t),P的最终数据状态将为 Y:(y,x,x)。因而,程序函数P为: (x,y,t),(y,x,x),程序函数是对程序功能的一个精确描述。如果两个程序有相同的程序函数,那么它们所完成的功能一定是相同的。 定义6-9 如果程序P1和P2有相同的程序函数,称P1和P2是函数等价的,简称
14、P1和P2是等价的。,6.4.2结构化定理 在理论上的研究证明问题解的任何算法,都可以表示为结构化方法的构造。其理论研究可以归纳如下: 定理6-1 任一正规程序都可以函数等价于一个由基集合 序列,if-then-else,while-do产生的结构化程序。,定理6-2:如果不增加辅助变量、不增加额外计算或不改变程序的执行顺序,那么必然存在不能用ifwhile表示的构造。 定理6-3 :在定理一的假设条件下,ifwhile构造的充分必要条件是:该构造不包含两个(或两个以上)的出口循环。,图613(a)所示,是一个非结构化的流程图。通过改变构造的执行顺序,形成了图613(b)所示与图613(a)等
15、价的结构化流程图。在图613(b)中,使用了组合判断A1和A2,“”表示 A1“非”与A2“非”。,图613改变构造执行顺序,定理4 :若允许增加辅助变量、或增加额外计算、或改变程序的执行顺序,问题解的任何算法都可以表示为结构化构造。 图614(a)所示的结构化流程图中有10个元素。是一个非结构化流程图程序。因为,它的两个选择结构出现重合,造成了程序段D有两个入口,一个出口,破坏了单入口单出口这项结构化原则。,(a)非结构化流程图,(b)等价的结构化流程图,图614 改变构造执行顺序,6.4.3非结构化转换为结构化 1. 用结构化定理证明过程提供的方法 例4 图6-15的流程图程序是一个非结构
16、化程序,利用上节结构化定理证明过程给出的方法将其转换成结构化程序的步骤如下。 (1)结点编号如图6-15;,图6-15结点编号非结构化流程图,(2)图中四个结点构造新程序分别如图6-16;,图616点构造新流程,(3)得到如图6-17的等价结构化程序。,图617与图6-15等价结构化流程图,2.其他方法,(a)非结构化流程图 (b)与(a)等价的结构化流程图 图218增加辅助变量的转换,6.4.4 过程设计语言 过程设计语言(Process Design Language,简称PDL)是在伪码的基础上,扩充了模块的定义与调用、数据定义和输入输出而形成的。 PDL一般分为内外两层语法。内层语法则
17、用一些简单的句子、短语和通用的数学符号,来描述程序应执行的功能。而外层语法应符合一般程序设计语言常用的语法规则。,1.PDL特点 (1)描述处理过程的说明性语言没有严格的语法。 (2)具有模块定义和调用机制,开发人员应根据系统编程所用的语种,说明PDL表示有关程序结构。 (3)具有数据说明机制,包括简单的与复杂的数据说明。 (4)所有关键字都有固定语法,以便提供结构化控制结构、数据说明和模块的特征。,2.程序结构 (1)顺序结构 采用自然语言描述顺序结构: 处理S1 处理S2 处理Sn,(2)选择结构 IF ELSE结构 IF ORIF ELSE 结构 CASE结构 (3)重复结构 FOR结构
18、 WHILE结构 UNTIL结构,(4)出口结构 ESCAPE结构(退出本层结构) CYCLE结构(循环内部进入循环的下一次) (5)扩充结构 模块定义 模块调用 数据定义 输入/输出,6.5 图形工具,6.5.1 PAD图 PAD(Problem Analysis Diagram)图是问题分析图的简称。 PAD图从流程图演化而来,它把程序控制流结构表示成二维数的图形,程序结构清晰,便于进行结构化程序设计。,图619 PAD基本的控制结构,PAD图的优点: (1)支持结构化的程序设计原理。 (2)支持逐步求精的设计方法,左边层次中的内容可以抽象,然后由左到右逐步细化。 (3)清晰地反映了程序的
19、层次结构。 (4)易读易写,使用方便。 (5)可自动生成程序。,6.5.2 盒图 盒图又称N-S图或Chapin图。盒图中取消了控制流线和箭头,因而完全排除了因随意使用控制转移对程序质量造成的影响。盒图较彻底地解决了程序结构化问题。 盒图提供的基本结构及其表示方法见图6-21,它分别对应图结构程序设计的三种基本控制结构和两种扩充结构。,图6-21盒图的基本结构,使用盒图进行设计的方法是:从图形外层结构开始,逐步向内层扩展,若内层的空间太小,不能继续往内扩展,可以在该盒子相应功能区域给出一个椭圆标记,然后另画一个子盒图。,盒图主要特点是: 功能域明确,一眼就能看出。 很容易确定局部数据和全局数据
20、的作用域。 很容易表现嵌套关系和模块的层次结构。 限定程序结构中不能有任何转向。,6.6面向数据结构的设计,6.6.1 Jackson图 Jackson图是JSP方法的描述工具,在分析、确定问题的数据结构后,用Jackson图来描绘问题的数据结构。 1. Jackson图的表示 1)顺序结构 2)选择结构 3)重复结构,(a)顺序结构 (b)选择结构 c)重复结构 图625 Jackson图,2Jackson图的优点 (1)便于表示层次结构,是对结构进行自顶向下分解的有力工具。 (2)形象直观可读性好。 (3)既能表示数据结构也能表示程序结构(因为程序结构也只有上述三种基本类型)。,6.6.2
21、 纲要逻辑 纲要逻辑是类似于伪码的一种语言表示工具,与Jackson结构图对应,用于将Jackson结构图表示的程序结构转换为语言表示。,图625中对应的纲要逻辑为: (1)顺序结构: A seq B C D A end,(2)选择结构: A sel 条件1 B Alt条件2 C Alt条件3 D A end,(3)重复结构: A iter until(或while)条件 B A end,6.6.3 Jackson方法 面向数据结构设计的Jackson方法主要由如下几个步骤组成。 确定要处理的数据结构,并绘制出其Jackson图。 找出输入数据与输出数据结构的对应关系。 确定程序结构。,列出所有操作和条件,并把它们分配到程序结构的适当位置。 用习惯的详细设计工具表示。 经过以上步骤后就可得出完整的程序结构图,可以直接将Jackson程序结构图转换成伪码形式或程序流程图形式,程序员也可以根据这个程序结构图进行编码。,6.6.4 JSP应用 仓库系统程序结构设计,6.6.5 JSD方法 1JSD的基本思想 1)分而治之的原则 2)确定实体 3)建立顺序进程,2JSD方法的特点 (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年德语TestDaF考试模拟试卷阅读理解难点分析与对策
- 2025年采购师(一级)实务操作考试试卷
- 2025电子商务师(高级)考试试卷:电商数据可视化与商业智能分析试题
- 2025年安全工程师考试事故案例分析模拟试卷
- 2025年初中历史七年级下册阶段检测试卷:历史学科教学方法
- 2025年电子商务师(初级)职业技能鉴定试卷:电子商务数据分析竞赛评分标准试题
- 2025年保育员(初级)实操技能试卷:幼儿教育信息化技术与应用案例分析
- 便利店行业2025年转型升级中的智能物流配送成本控制策略研究报告001
- 2025年航空航天零部件制造高精度加工技术发展趋势报告
- 2025年不锈钢丝网项目规划申请报告
- 蚂蚁花呗对大学生消费行为的实证分析
- 储能专业知识考试试题及答案
- 中国上市银行2024年回顾及未来展望-安永-202505
- 抗肿瘤药卡铂的介绍与研究
- 《家校合作研究的国内外文献综述》2400字
- 高空作业安全试题及答案
- 江苏省南京市2022年高二《生物》下学期期末试题与参考答案
- 2025年数字经济下的创业政策调整策略试题及答案
- 吉林省2024年中考地理试卷2套附解析答案
- 山东省济南市历城区2025年九年级中考语文一模考试试题(含答案)
- 火灾防治、隐患辨识与应急避险
评论
0/150
提交评论