软件工程-第六章-软件详细设计.ppt
《软件工程-第六章-软件详细设计.ppt》由会员分享,可在线阅读,更多相关《软件工程-第六章-软件详细设计.ppt(89页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程软件工程Software Engineering第六章第六章 软件详细设计软件详细设计l6.1 详细设计任务详细设计任务l6.2 设计表示法设计表示法l6.3 结构化程序设计结构化程序设计l6.4 结构化定理结构化定理l6.5 图形工具图形工具 l6.6 面向数据结构的设计面向数据结构的设计l小结小结6.1详细设计任务详细设计任务l6.1.1 详细设计的基本任务1数据结构设计前面的需求分析、总体设计阶段,确定的概念性的数据类型,要进行确切的定义。这一部分的设计内容一般比较多,所以大多数采用小型数据库辅助的方法。2物理设计对数据库进行物理设计,即确定数据库的物理结构。物理结构主要指数据库
2、的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。3算法设计 在总体设计的结构完成后,结构各个环节的实现是多解的。着就需要用系统设计与分析的技术来描述。可以用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。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 判定表判定表l判定表
6、也是在设计中常用的技术。在有些情况下,数据流图中的某个加工的一组动作依赖于多个逻辑条件的取值。这时,用自然语言或结构化语言都不易清楚地描述出来,而用判定表就能够清楚地表示复杂的条件组合与应做的动作之间的对应关系。l判定表(Decision Table)是判定树表格形式,包括表四部分:条件定义、条件组合、动作定义和条件组合下的动作。判定表的结构如下图61所示。图图61判定表的结构判定表的结构 表表6-1 6-1 行李托运费处理判定表行李托运费处理判定表条件组合12345678条件W30公斤头等舱乘客残疾乘客行动(W-30)*2(W-30)*4(W-30)*3(W-30)*6免费l判定表比判定树更
7、严格、更具有逻辑性。判定表的条件严格按二进值取值,不会遗漏任何一种组合。l判定表能够把在什么条件下系统应做什么动作准确无误地表示出来,但不能描述循环的处理特性,循环处理还需结构化语言。判定树判定树l判定树是判定表的变形,一般情况下它比判定表更直观,且易于理解和使用。图6-2是与表6-1功能等价的判定树。图图62 判定树判定树 l当处理逻辑中含太多判定条件及其组合时,用判定表和判定树描述会比较方便、直观。l以上三种逻辑表达工具各有所长和不足,归纳起来可以得出下列结论:对于一个不太复杂的判断逻辑(条件组合和行动只有10个左右),使用判断树比较好。对于一个复杂的判断逻辑(条件较多,相应的行动也比较多
8、),使用判断表比较好。若一个处理逻辑既包含了一般的顺序执行动作,又包含了判断或循环逻辑,则使用结构化语言较好。l上述三种描述加工逻辑的工具各有优缺点,对于顺序执行和循环执行的动作,用结构化语言描述;对于存在多个条件复杂组合的判断问题,用判定表和判定树。6.3结构化程序设计结构化程序设计l6.3.1 结点在软件工程中,用流程图程序描述客观存在的事物特性。体现为描述程序控制结构和和指令执行情况,这种对程序结构的控制的流程图程序是一个有向图。图的基本元素是函数结点、谓词结点和汇点三种结点。1、函数结点如果一个结点有一个入口线和一个出口线,则称为函数结点。如图6-3所示。其中,F是函数结点的名字。图图
9、6-3 流程图的函数结点流程图的函数结点 2、谓词结点 如果一个结点有一个入口线和两个出口线,且它不改变程序的数据项的值,则称为谓词结点。如图6-4所示。图图6-4谓词结点谓词结点 3、汇点 如果一个结点有两个和一个出口线,而且它不执行任何运算,那么称为汇点,图6-5(a)所示。由多个入口线汇集到一点的情形可以用多个汇点的联结表示。图图6-5 流程图中汇点表示流程图中汇点表示 l三种基本控制结构流程图在描述程序控制结构时的优点是直观清晰、易于使用。图6-6为流程图的三种基本控制结构。图图6-6 流程图的三种基本控制结构流程图的三种基本控制结构 l流程图也存在严重缺点:(1)用流程图本身没有限制
10、,所以可以随心所欲地画控制流程线的流向。因此也容易造成非结构化的程序结构(2)如果遇到多层嵌套的循环时,而且每层仅容许一个出口,那么退出效率就会很差。(3)高层的宏观控制流程图与低层的微观控制流程的区分问题。(4)不易表示数据结构。为了克服流程图的缺陷,要求流程图都应由三种基本控制结构顺序组合和完整嵌套而成,不能有相互交叉的情况,这样的流程图是结构化的流程图。l正规程序定义6-1一个流程图程序如果满足下面两个条件,称为正规程序。具有一个入口线和一个出口线。对每一个结点,都有一条从入口线到出口线的通路通过该结点。图图6-7 非正规程序非正规程序 l由于正规程序有一个入口线和一个出口,因而一个正规
11、程序总可以抽象为一个函数结点。这个函数结点概括了该正规程序对数据进行的运算和测试的总的作用。l正规子程序定义6-2如果一个正规程序的某部分仍然是正规程序,那么称其为该正规程序的正规子程序。图图6-8正规程序的抽象过程正规程序的抽象过程 l基本程序封闭结构 定义6-3 流程图程序中两个结点之间所有没有重复结点的通路组成的结构称为封闭结构。图图69 封闭结构封闭结构 l基本程序定义6-4一个正规程序,如果满足如下两个条件,则称之为基本程序。不包括多于一个结点的正规子程序,换句话说,是一种不可再分解的正规程序;如果存在封闭结构,封闭结构都是正规子程序。l例如,图6-8中的结点G满足第一个条件,它不包
12、括多于一个结点的正规子程序;但是它不满足第二个条件,它有两个封闭结构:P2-A;P4-S2和P2-P4-B-S1。显然这两个结构都不是正规程序,它们都有两个出口线,如图6-10所示。所以G不是基本程序。图图610 两个出口线的结构两个出口线的结构 l任何一个结构化程序都可以用这些基本程序构成。基本程序形式有多种,显然前面提到的三种基本控制结构和两种扩充控制结构都是基本程序。所以基本程序并不都是必不可少的,为了构造程序,可以只使用一部分基本程序。l基集合定义6-5用以构造程序的基本程序的集合称为基集合。例如,可以选下列集合作为基集合:序列,if-then-else,while do或序列,if-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 第六 软件 详细 设计
限制150内