软件工程--软件详细设计

上传人:宝路 文档编号:48257627 上传时间:2018-07-12 格式:PPT 页数:89 大小:225.97KB
返回 下载 相关 举报
软件工程--软件详细设计_第1页
第1页 / 共89页
软件工程--软件详细设计_第2页
第2页 / 共89页
软件工程--软件详细设计_第3页
第3页 / 共89页
软件工程--软件详细设计_第4页
第4页 / 共89页
软件工程--软件详细设计_第5页
第5页 / 共89页
点击查看更多>>
资源描述

《软件工程--软件详细设计》由会员分享,可在线阅读,更多相关《软件工程--软件详细设计(89页珍藏版)》请在金锄头文库上搜索。

1、软件工程 Software Engineering第六章 软件详细设计l6.1 详细设计任务l6.2 设计表示法l6.3 结构化程序设计l6.4 结构化定理l6.5 图形工具 l6.6 面向数据结构的设计l小结6.1详细设计任务l6.1.1 详细设计的基本任务 1数据结构设计 前面的需求分析、总体设计阶段,确定的 概念性的数据类型,要进行确切的定义。这 一部分的设计内容一般比较多,所以大多数 采用小型数据库辅助的方法。 2物理设计 对数据库进行物理设计,即确定数据库的 物理结构。物理结构主要指数据库的存储记 录格式、存储记录安排和存储方法,这些都 依赖于具体所使用的数据库系统。 3算法设计 在

2、总体设计的结构完成后,结构各个环节 的实现是多解的。着就需要用系统设计与分 析的技术来描述。可以用某种图形、表格、 语言等工具将每个模块处理过程的详细算法 描述出来。 4界面设计 用户界面的设计现在显得比较重要,可以 采用字符用户界面设计,图形用户界面和多 媒体人机界面设计。这就要结合具体的系统 来处理。5其他设计 根据软件系统的类型,还可能要进行以下设计: (1)代码设计:为了提高数据的输入、分类、存储及 检索等操作的效率,以及节约内存空间,对数据库 中的某些数据项的值要进行代码设计。 (2)输入/输出格式设计 (3)人机对话设计:对于一个实时系统,用户与计算 机频繁对话,因此要进行对话方式

3、、内容及格式的 具体设计。 (4)网络设计:如果设计的软件是一个分布式系统, 那么还要进行网络的拓扑结构设计。 6编写设计说明书 详细设计说明书有下列的主要内容: (1)引言:包括编写目的、背景、定义、参考资料。 (2)程序系统的组织结构。 (3)程序1(标识符)设计说明:包括功能、性能、 输入、输出、算法、流程逻辑、接口。 (4)程序2(标识符)设计说明。 (5)程序N(标识符)设计说明。 7评审 对处理过程的算法和数据库的物理结构都 要评审。 l6.1.2 详细设计方法1采用自顶向下、逐步求精的程序设计方法 在详细设计中,虽然处于“具体”设计阶段,但在 设计某个复杂的模块内部处理过程时,仍

4、可以采用 逐步求精的方法。可以将其分解为若干个模块来实 现,降低处理细节的复杂度。 2使用三种基本控制结构构造程序 设计时,如果对一个模块处理过程细化中,开始是 模糊的,可以用下面三种方式以模糊过程进行分解 : (1)用顺序方式对过程分解,确定各部分的执行顺序 。 (2)用选择方式对过程分解,确定某个部分的执行条 件。 (3)用循环方式对过程分解,确定某个部分进行重复 的开始和结束的条件。 3组织形式 在详细设计阶段,当参加设计的人员比较多的时 候,有可能因为设计员的技术水平、设计风格不同 而影响到系统的质量。因此,要组织以一个负责全 部技术活动的三人为核心小组。 小组中有负责全部技术的主程序

5、员、协调、支持 主程序员的后备程序和负责事务性工作的程序管理 员。再加上其他技术人员。这种发生的目的是使设 计责任集中在少数人身上,利于提高软件质量,并 且能有效地提高软件生产率。 6.2 设计表示法l6.2.1 结构化语言 结构化语言是介于自然语言和形式化语言之间的 一种类自然语言。结构化语言语法结构包括内外两 层。内部语法则比较灵活,可以使用数据字典中定 义过的词汇、易于理解的一些名词、运算符和关系 符;外层语法具有较固定的格式,设定一组符号如IF 、THEN、ELSE、DO WHILEENDWHILE、DO CASEENDCASE等,用于描述顺序、选择和重复 的控制结构。 6.2.2 判

6、定表l判定表也是在设计中常用的技术。在有些情况下, 数据流图中的某个加工的一组动作依赖于多个逻辑 条件的取值。这时,用自然语言或结构化语言都不 易清楚地描述出来,而用判定表就能够清楚地表示 复杂的条件组合与应做的动作之间的对应关系。 l判定表(Decision Table)是判定树表格形式,包括 表四部分:条件定义、条件组合、动作定义和条件 组合下的动作。判定表的结构如下图61所示。 图61判定表的结构 表6-1 行李托运费处理判定表条件组合12345678条 件W30公斤 头等舱乘客 残疾乘客 行 动(W-30)*2 (W-30)*4 (W-30)*3 (W-30)*6 免费l判定表比判定树

7、更严格、更具有逻辑性。判 定表的条件严格按二进值取值,不会遗漏任 何一种组合。l判定表能够把在什么条件下系统应做什么动 作准确无误地表示出来,但不能描述循环的 处理特性,循环处理还需结构化语言。6.2.3判定树l判定树是判定表的变形,一般情况下它比判定表更 直观,且易于理解和使用。图6-2是与表6-1功能等 价的判定树。图62 判定树 l当处理逻辑中含太多判定条件及其组合时, 用判定表和判定树描述会比较方便、直观。l以上三种逻辑表达工具各有所长和不足,归 纳起来可以得出下列结论:对于一个不太复杂的判断逻辑(条件组合和行动 只有10个左右),使用判断树比较好。 对于一个复杂的判断逻辑(条件较多,

8、相应的行 动也比较多),使用判断表比较好。若一个处理逻辑既包含了一般的顺序执行动作, 又包含了判断或循环逻辑,则使用结构化语言较 好。 l上述三种描述加工逻辑的工具各有优缺点, 对于顺序执行和循环执行的动作,用结构化 语言描述;对于存在多个条件复杂组合的判 断问题,用判定表和判定树。 6.3结构化程序设计l6.3.1 结点在软件工程中,用流程图程序描述客观存在的事 物特性。体现为描述程序控制结构和和指令执行 情况,这种对程序结构的控制的流程图程序是一 个有向图。图的基本元素是函数结点、谓词结点 和汇点三种结点。1、函数结点 如果一个结点有一个入口线和一个出口线,则称 为函数结点。如图6-3所示

9、。其中,F是函数结点的 名字。 图6-3 流程图的函数结点 2、谓词结点 如果一个结点有一个入口线和两个出口线,且它 不改变程序的数据项的值,则称为谓词结点。如图6 -4所示。图6-4谓词结点 3、汇点 如果一个结点有两个和一个出口线,而且它不执 行任何运算,那么称为汇点, 图6-5( a)所示。由 多个入口线汇集到一点的情形可以用多个汇点的联 结表示。图6-5 流程图中汇点表示 l6.3.2三种基本控制结构 流程图在描述程序控制结构时的优点是直 观清晰、易于使用。 图6-6为流程图的三种基本控制结构。图6-6 流程图的三种基本控制结构 l流程图也存在严重缺点:(1)用流程图本身没有限制,所以

10、可以随心所欲 地画控制流程线的流向。因此也容易造成非结构 化的程序结构(2)如果遇到多层嵌套的循环时,而且每层仅容 许一个出口,那么退出效率就会很差。 (3)高层的宏观控制流程图与低层的微观控制流 程的区分问题。 (4)不易表示数据结构。 为了克服流程图的缺陷,要求流程图都应 由三种基本控制结构顺序组合和完整嵌套而成, 不能有相互交叉的情况,这样的流程图是结构化 的流程图。 l6.3.3正规程序 定义6-1一个流程图程序如果满足下面两个 条件,称为正规程序。具有一个入口线和一个出口线。对每一个结点,都有一条从入口线到出口线的通 路通过该结点。 图6-7 非正规程序 l由于正规程序有一个入口线和

11、一个出口,因而一个 正规程序总可以抽象为一个函数结点。这个函数结 点概括了该正规程序对数据进行的运算和测试的总 的作用。l正规子程序 定义6-2如果一个正规程序的某部分仍然是正规程 序,那么称其为该正规程序的正规子程序。 图6-8正规程序的抽象过程 l6.3.4基本程序封闭结构 定义6-3 流程图程序中两个结点之间所有没有重复 结点的通路组成的结构称为封闭结构。 图69 封闭结构 l基本程序定义6-4一个正规程序,如果满足如下两个条件, 则称之为基本程序。不包括多于一个结点的正规子程序,换句话说, 是一种不可再分解的正规程序;如果存在封闭结构,封闭结构都是正规子程序。 l例如,图6-8中的结点

12、G满足第一个条件,它 不包括多于一个结点的正规子程序;但是它 不满足第二个条件,它有两个封闭结构:P2 -A;P4-S2和P2-P4-B-S1。显然这两个 结构都不是正规程序,它们都有两个出口线 ,如图6-10所示。所以G不是基本程序。 图610 两个出口线的结构 l任何一个结构化程序都可以用这些基本程序 构成。基本程序形式有多种,显然前面提到 的三种基本控制结构和两种扩充控制结构都 是基本程序。所以基本程序并不都是必不可 少的,为了构造程序,可以只使用一部分基 本程序。 l基集合定义6-5用以构造程序的基本程序的集合称为基集 合。 例如,可以选下列集合作为基集合: 序列,if-then-el

13、se,while do 或序列,if-then-else,repeat-until等。l6.3.5结构化程序复合程序 定义6-6 如果一个基本程序的函数结点用另一个基 本函数程序替换,产生的新的正规程序称为复合程 序。 结构化程序 定义6-7 由基本程序的一个固定的基集合构造出的 复合程序称为结构化程序。 6.4结构化定理l6.4.1程序函数定义8已知一正规程序P,对于每个初始数据状 态X,若程序是终止的,那么有确定的最终状态Y ,如果对于每个给定的X,值Y是唯一的,那么所 有的有序对集合(X,Y)就定义了一个函数, 称之为程序P的程序函数,记为P。l例1 程序P为:t:=x; x:=y; y

14、:=t 那么,对于任意给定的初始数据状态 X:(x, y, t),P的最终数据状态将为 Y:(y,x,x)。因而,程序函数P为:(x,y,t),(y,x,x)l程序函数是对程序功能的一个精确描述。如 果两个程序有相同的程序函数,那么它们所 完成的功能一定是相同的。 定义6-9 如果程序P1和P2有相同的程序函 数,称P1和P2是函数等价的,简称P1和P2 是等价的。 l6.4.2结构化定理在理论上的研究证明问题解的任何算法,都可以 表示为结构化方法的构造。其理论研究可以归纳如 下: 定理6-1 任一正规程序都可以函数等价于一个由基集 合 序列,if-then-else,while-do产生的结

15、构化程序 。定理6-2:如果不增加辅助变量、不增加额外计 算或不改变程序的执行顺序,那么必然存在不能 用ifwhile表示的构造。定理6-3 :在定理一的假设条件下,ifwhile构 造的充分必要条件是:该构造不包含两个(或两 个以上)的出口循环。 图613(a)所示,是一个非结构化的流程图。 通过改变构造的执行顺序,形成了图613(b)所 示与图613(a)等价的结构化流程图。在图6 13(b)中,使用了组合判断A1和A2,“”表示 A1“非 ”与A2“非”。 图613改变构造执行顺序 定理4 :若允许增加辅助变量、或增加额外计算 、或改变程序的执行顺序,问题解的任何算法都 可以表示为结构化

16、构造。图614(a)所示的结构化流程图中有 10个元素。是一个非结构化流程图程序。因为, 它的两个选择结构出现重合,造成了程序段D有 两个入口,一个出口,破坏了单入口单出口这项 结构化原则。(a)非结构化流程图 (b)等价的结构化流程图 图614 改变构造执行顺序 l6.4.3非结构化转换为结构化1. 用结构化定理证明过程提供的方法例4 图6-15的流程图程序是一个非结构 化程序,利用上节结构化定理证明过程给出的方 法将其转换成结构化程序的步骤如下。(1)结点编号如图6-15; 图6-15结点编号非结构化流程图 (2)图中四个结点构造新程序分别如图6-16; 图616点构造新流程 (3)得到如图6-17的等价结构化程序。 图617与图6-15等价结构化流程图 2.其他

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号