第5章 详细设计_第1页
第5章 详细设计_第2页
第5章 详细设计_第3页
第5章 详细设计_第4页
第5章 详细设计_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程概论软件工程概论 Software Engineering杨璐杨璐第第5章章 详细设计详细设计5.1 详细设计的概念详细设计的概念5.2 详细设计的设计表示法详细设计的设计表示法5.3 结构化程序设计结构化程序设计5.4 面向数据结构的设计面向数据结构的设计5.5 详细设计文档与复审详细设计文档与复审5.1 详细设计的概念详细设计的概念概要设计也称为总体设计,在这个阶段需要确定软概要设计也称为总体设计,在这个阶段需要确定软件的总体结构。件的总体结构。在概要设计中,将软件系统分解为多个模块,并确在概要设计中,将软件系统分解为多个模块,并确定每个模块的功能和模块之间的外部接口。定每个模块的

2、功能和模块之间的外部接口。详细设计详细设计也称为过程设计也称为过程设计/程序设计,在这个阶段需程序设计,在这个阶段需要在总体设计阶段成果的基础上,考虑如何实现定要在总体设计阶段成果的基础上,考虑如何实现定义的软件系统,直到对系统中的每个模块给出足够义的软件系统,直到对系统中的每个模块给出足够详细的过程描述。详细的过程描述。在详细设计中,把一个模块的功能逐步分解细化为在详细设计中,把一个模块的功能逐步分解细化为一系列具体的处理步骤,即确定模块采用的算法和一系列具体的处理步骤,即确定模块采用的算法和块内数据结构。块内数据结构。5.1 详细设计的概念详细设计的概念详细设计阶段文档:详细设计阶段文档:

3、“详细设计说明书详细设计说明书” 为每个模块确定采用的算法为每个模块确定采用的算法 ,即程序流程设计,即程序流程设计确定每一模块使用的数据结构确定每一模块使用的数据结构 ,即数据设计,即数据设计确定模块接口的细节确定模块接口的细节 (测试计划)(测试计划)5.1 详细设计的概念详细设计的概念详细设计的任务:详细设计的任务:1.数据结构设计数据结构设计2.(数据库)物理设计(数据库)物理设计3.算法设计算法设计4.界面设计界面设计5.其他设计:代码、输入其他设计:代码、输入/输出格式、人机对话、输出格式、人机对话、网络网络6.编写详细设计说明书编写详细设计说明书7.评审评审5.2 详细设计的设计

4、表示法详细设计的设计表示法详细设计的设计表示法(即第详细设计的设计表示法(即第3章所述的微规格说明)章所述的微规格说明)结构化语言结构化语言判定表判定表判定树判定树5.2 详细设计的设计表示法详细设计的设计表示法1、结构化语言结构化语言介于自然语言和形式化语言之间的类自然语言介于自然语言和形式化语言之间的类自然语言语法语法内部语法:数据字典中定义的词汇、易于理解的内部语法:数据字典中定义的词汇、易于理解的名词、运算符、关系符名词、运算符、关系符外部语法(顺序、选择、重复的控制结构):外部语法(顺序、选择、重复的控制结构):IF ELSE ENDIFDO WHILE ENDWHILEDO CAS

5、E ENDCASE5.2 详细设计的设计表示法详细设计的设计表示法示例:教师餐饮收费标准示例:教师餐饮收费标准IF 用餐费用用餐费用20元元免交用餐费免交用餐费ELSEIF 是研究生导师是研究生导师IF 是学科带头人是学科带头人用餐费用餐费=(C-20)*0.3*0.6ELSE用餐费用餐费=(C-20)*0.3ENDIFELSEIF 是学科带头人是学科带头人用餐费用餐费=(C-20)*0.5*0.6ELSE用餐费用餐费=(C-20)*0.5ENDIFENDIFENDIF5.2 详细设计的设计表示法详细设计的设计表示法2、判定表判定表(Decision Table)判定表也称为决策表判定表也称为

6、决策表能够表示能够表示复杂的条件组合复杂的条件组合与应做的动作之间的对应与应做的动作之间的对应关系,是分析和表达多逻辑条件下执行不同操作的关系,是分析和表达多逻辑条件下执行不同操作的情况的工具。情况的工具。优点:决策表能够将复杂的问题按照各种可能的情优点:决策表能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。况全部列举出来,简明并避免遗漏。5.2 详细设计的设计表示法详细设计的设计表示法决策表的组成:决策表的组成:条件定义(条件桩)条件定义(条件桩):列出问题的所有条件。通常:列出问题的所有条件。通常认为认为列出的条件的次序无关紧要列出的条件的次序无关紧要。条件组合(条件项)条

7、件组合(条件项):针对条件定义给出的条件,:针对条件定义给出的条件,列出所有可能的取值(列出所有可能的取值(Y/N、T/F、 /)。)。操作操作的排列顺序没有约束的排列顺序没有约束。动作定义(动作桩)动作定义(动作桩):列出问题规定的可能采取的:列出问题规定的可能采取的操作。操作。条件组合下的动作(动作项)条件组合下的动作(动作项):指出在条件组合的:指出在条件组合的各组取值情况下应采取的动作。各组取值情况下应采取的动作。5.2 详细设计的设计表示法详细设计的设计表示法将任何一个条件组合的特定取值及相应要执行的动将任何一个条件组合的特定取值及相应要执行的动作称为一条作称为一条规则规则。在决策表

8、中贯穿条件项和动作项的一列就是一条规在决策表中贯穿条件项和动作项的一列就是一条规则。则。条件定义条件定义动作定义动作定义 条件组合条件组合 条件组合下的动作条件组合下的动作规则规则5.2 详细设计的设计表示法详细设计的设计表示法示例:教师餐饮收费标准示例:教师餐饮收费标准条件组合12345678条件C20元研究生导师学科带头人行动(C-20)*0.3*0.6(C-20)*0.3(C-20)*0.5*0.6(C-20)*0.5免费5.2 详细设计的设计表示法详细设计的设计表示法决策表的分类决策表的分类有限条目决策表有限条目决策表特点:所有条件都是二值条件(真特点:所有条件都是二值条件(真/假)假

9、)扩展条目决策表扩展条目决策表特点:条件可以有多个值特点:条件可以有多个值有有n个条件的有限条目决策表有个条件的有限条目决策表有2n个规则(每个条个规则(每个条件取真、假值)。件取真、假值)。思考:扩展条目决策表呢?思考:扩展条目决策表呢?5.2 详细设计的设计表示法详细设计的设计表示法构造决策表的步骤:构造决策表的步骤:1.确定规则的个数。确定规则的个数。2.列出所有的条件桩和动作桩。列出所有的条件桩和动作桩。3.填入条件项。填入条件项。4.填入动作项,得到初始决策表。填入动作项,得到初始决策表。5.简化决策表,合并相似规则。简化决策表,合并相似规则。5.2 详细设计的设计表示法详细设计的设

10、计表示法决策表的简化决策表的简化决策表的简化主要包含两个方面:规则合并与规决策表的简化主要包含两个方面:规则合并与规则包含则包含规则合并规则合并如果两条或多条规则的动作项相同,条件项只有如果两条或多条规则的动作项相同,条件项只有一项不同,则可以将该项合并,合并后的条件项一项不同,则可以将该项合并,合并后的条件项用符号用符号“-”表示,说明执行的动作与该条件的取表示,说明执行的动作与该条件的取值无关,称为无关条件。值无关,称为无关条件。5.2 详细设计的设计表示法详细设计的设计表示法规则合并实例:规则合并实例:“阅读指南阅读指南”决策表决策表 规则规则 选项选项12345678问问题题你觉得疲倦

11、吗?你觉得疲倦吗? YYYYNNNN你对内容感兴趣吗?你对内容感兴趣吗? YYNNYYNN书中内容使你胡涂吗?书中内容使你胡涂吗? YNYNYNYN建建议议请回到本章开头重读请回到本章开头重读 继续读下去继续读下去 跳到下一章去读跳到下一章去读 停止阅读,请休息停止阅读,请休息 5.2 详细设计的设计表示法详细设计的设计表示法规则合并实例:规则合并实例:“阅读指南阅读指南”决策表决策表 规则规则 选项选项13567问问题题你觉得疲倦吗?你觉得疲倦吗? YYNNN你对内容感兴趣吗?你对内容感兴趣吗? YNYYN书中内容使你胡涂吗?书中内容使你胡涂吗? YN建建议议请回到本章开头重读请回到本章开头

12、重读 继续读下去继续读下去 跳到下一章去读跳到下一章去读 停止阅读,请休息停止阅读,请休息 规则规则 选项选项1567问问题题你觉得疲倦吗?你觉得疲倦吗? YNNN你对内容感兴趣吗?你对内容感兴趣吗? YYN书中内容使你胡涂吗?书中内容使你胡涂吗? YN建建议议请回到本章开头重读请回到本章开头重读 继续读下去继续读下去 跳到下一章去读跳到下一章去读 停止阅读,请休息停止阅读,请休息 5.2 详细设计的设计表示法详细设计的设计表示法规则包含规则包含如果两个条件项的动作是相同的,对条件如果两个条件项的动作是相同的,对条件1中任意中任意一个值和条件一个值和条件2中对应的值,如果满足:中对应的值,如果

13、满足:如果条件如果条件1的值是的值是Y,则条件,则条件2中的值也是中的值也是Y如果条件如果条件1的值是的值是N,则条件,则条件2中的值也是中的值也是N如果条件如果条件1的值是的值是 -,则条件,则条件2中的值也是中的值也是Y、N、 -注:注: - 在逻辑上包含其他的条件取值。在逻辑上包含其他的条件取值。称条件称条件1包含条件包含条件2。此时,条件此时,条件2可以删除。可以删除。5.2 详细设计的设计表示法详细设计的设计表示法思考思考教师餐饮收费标准决策表如何简化?教师餐饮收费标准决策表如何简化?5.2 详细设计的设计表示法详细设计的设计表示法3、判定树判定树判定树也称为决策树判定树也称为决策树

14、与判定表相比:与判定表相比:判定表是判定树的表格形式。表达能力等价。判定表是判定树的表格形式。表达能力等价。判定表比判定树更严格、更具有逻辑性。判定表比判定树更严格、更具有逻辑性。判定树比判定表更直观,更易于理解和使用。判定树比判定表更直观,更易于理解和使用。5.2 详细设计的设计表示法详细设计的设计表示法示例示例5.2 详细设计的设计表示法详细设计的设计表示法思考思考教师餐饮收费标准判定表如何改写成判定树?教师餐饮收费标准判定表如何改写成判定树?5.2 详细设计的设计表示法详细设计的设计表示法总结:总结:对于顺序执行和循环执行的动作,用结构化语言对于顺序执行和循环执行的动作,用结构化语言描述

15、;描述;对于存在多个条件复杂组合的判断问题,用判定对于存在多个条件复杂组合的判断问题,用判定表和判定树。判定树较判定表直观易读,判定表表和判定树。判定树较判定表直观易读,判定表进行逻辑验证较严格,能把所有的可能性全部都进行逻辑验证较严格,能把所有的可能性全部都考虑到。可将两种工具结合起来,先用判定表作考虑到。可将两种工具结合起来,先用判定表作底稿,在此基础上产生判定树。底稿,在此基础上产生判定树。5.3 结构化程序设计结构化程序设计结构化方法(结构化方法(Structure Method)是最传统的软件开)是最传统的软件开发方法。由结构化分析、结构化设计和结构化程序发方法。由结构化分析、结构化

16、设计和结构化程序设计构成。设计构成。结构化程序设计结构化程序设计的基本思想是采用的基本思想是采用自顶向下,逐步自顶向下,逐步求精求精的程序设计方法和的程序设计方法和单入口单出口单入口单出口的控制结构。的控制结构。三种基本程序结构:顺序,选择和循环三种基本程序结构:顺序,选择和循环描述方式描述方式程序流程图程序流程图N-S流程图流程图PAD图图详细设计语言详细设计语言5.3 结构化程序设计结构化程序设计1、程序流程图程序流程图程序流程图也称为程序程序流程图也称为程序框图框图图符:方框表示一个处图符:方框表示一个处理步骤,菱形代表一个理步骤,菱形代表一个逻辑条件,箭头表示控逻辑条件,箭头表示控制流

17、向。制流向。缺点:过于随意和灵活,缺点:过于随意和灵活,往往违背结构化程序设往往违背结构化程序设计的思想。计的思想。5.3 结构化程序设计结构化程序设计2、N-S流程图流程图取消了流程线,使得表达出的程序流程一定是结构取消了流程线,使得表达出的程序流程一定是结构化的程序流程。化的程序流程。图符图符每个处理步骤都用一个矩形框来表示,这些处理每个处理步骤都用一个矩形框来表示,这些处理步骤可以是语句或语句序列。步骤可以是语句或语句序列。在需要时,矩形框中还可以嵌套另一个矩形框。在需要时,矩形框中还可以嵌套另一个矩形框。5.3 结构化程序设计结构化程序设计5.3 结构化程序设计结构化程序设计缺点:当程

18、序内嵌套的层数较多时,内层的方块越缺点:当程序内嵌套的层数较多时,内层的方块越画越小,不仅会增加画图的困难,并将使图形的清画越小,不仅会增加画图的困难,并将使图形的清晰性受到影响。晰性受到影响。5.3 结构化程序设计结构化程序设计3、PAD图图PAD图即问题分析图(图即问题分析图(Problem Analysis Diagram)用二维树形结构的图来表示程序的控制流。用二维树形结构的图来表示程序的控制流。图符:图符:图中最左纵线是程序的主干线,即程序的第一层图中最左纵线是程序的主干线,即程序的第一层结构。结构。其后每增加一个层次,图开向右扩展一条纵线。其后每增加一个层次,图开向右扩展一条纵线。

19、5.3 结构化程序设计结构化程序设计5.3 结构化程序设计结构化程序设计5.3 结构化程序设计结构化程序设计4、过程设计语言过程设计语言PDL过程设计语言(过程设计语言(PDL,Program Design Language)采用严格语法定义伪代码方式,来定义软件的控制采用严格语法定义伪代码方式,来定义软件的控制结构和数据结构。结构和数据结构。可使用自然语言的词汇可使用自然语言的词汇5.3 结构化程序设计结构化程序设计5.4 面向数据结构的设计面向数据结构的设计面向数据结构面向数据结构的设计方法的设计方法Jackson 方法方法Warnier方法方法Michael Jackson 5.4 面向

20、数据结构的设计面向数据结构的设计Jackson 方法方法Jackson方法发展的两个阶段:方法发展的两个阶段:1.阶段一:阶段一:20世纪世纪70年代年代Jackson方法的核心是面向数方法的核心是面向数据结构的设计,以据结构的设计,以数据驱动数据驱动为特征,形成了最初的为特征,形成了最初的JSP(Jackson Structure Programming)方法。)方法。 Jackson方法把问题分解为可由三种基本结构形式方法把问题分解为可由三种基本结构形式表示的各部分层次结构。表示的各部分层次结构。JSP方法是以数据结构为驱动的,适合于小规模的方法是以数据结构为驱动的,适合于小规模的项目。当

21、输入数据结构与输出数据结构无对应关项目。当输入数据结构与输出数据结构无对应关系时,难于应用该方法。系时,难于应用该方法。5.4 面向数据结构的设计面向数据结构的设计2.阶段二:阶段二:20世纪世纪80年代初开始,年代初开始,Jackson方法已经演方法已经演变到基于进程模型的变到基于进程模型的事件驱动事件驱动。 基于基于JSP方法的局限方法的局限性,又发展了性,又发展了JSD(Jackson System Development)方法,它是方法,它是JSP方法的扩充。方法的扩充。JSD方法是一个完整的系统开发方法。该方法以方法是一个完整的系统开发方法。该方法以事件作为驱动,是一种基于进程的开发

22、方法,应事件作为驱动,是一种基于进程的开发方法,应用于时序特点较强的系统,包括数据处理系统和用于时序特点较强的系统,包括数据处理系统和一些实时控制系统。一些实时控制系统。JSD方法的缺陷方法的缺陷5.4 面向数据结构的设计面向数据结构的设计结构化设计方法(结构化设计方法(SD):):面向数据流的设计方法面向数据流的设计方法Jackson方法(方法( JSP ):):面向数据结构的设计方法面向数据结构的设计方法比较异同比较异同SD方法和方法和JSP方法的共同点都是数据信息驱动的,方法的共同点都是数据信息驱动的,都试图将数据表示转换成软件表示;都试图将数据表示转换成软件表示;不同之处在于面向数据结

23、构的设计不利用数据流图不同之处在于面向数据结构的设计不利用数据流图,而根据数据结构的表示来设计。,而根据数据结构的表示来设计。JSP方法定义了一方法定义了一组以数据结构为指导的映射过程,它根据输入、输组以数据结构为指导的映射过程,它根据输入、输出的数据结构,按一定的规则映射成软件的过程描出的数据结构,按一定的规则映射成软件的过程描述,最终目标是生成软件过程的描述,即程序结构述,最终目标是生成软件过程的描述,即程序结构,而不是软件的体系结构。而,而不是软件的体系结构。而SD方法是根据数据流方法是根据数据流图来设计,最终目标是建立软件体系结构的描述,图来设计,最终目标是建立软件体系结构的描述,即软

24、件模块的层次结构。即软件模块的层次结构。JSP方法与方法与SD方法方法数据结构(数据结构(Jackson 图)图)程序结构(程序结构(Jackson 图)图)程序的过程性表示程序的过程性表示(Jackson 伪代码伪代码)问题结构问题结构 (DFD)软件结构软件结构 (SC)模块的过程描述模块的过程描述 (PDL)5.4 面向数据结构的设计面向数据结构的设计Jackson方法把问题分解为可由三种基本结构形式表方法把问题分解为可由三种基本结构形式表示的各部分层次结构。这三种基本结构形式就是顺示的各部分层次结构。这三种基本结构形式就是顺序、选择和重复。序、选择和重复。设计原则:设计原则:程序结构同

25、数据结构相对应程序结构同数据结构相对应描述工具:描述工具:Jackson图图纲要逻辑纲要逻辑5.4 面向数据结构的设计面向数据结构的设计Jackson图图三种基本结构:由方框、连线和一些附加标记组成。三种基本结构:由方框、连线和一些附加标记组成。标记标记“0”代表选择,标记代表选择,标记“*”代表重复。连线代代表重复。连线代表表“包含包含”或或“由由组成组成”。纲要逻辑纲要逻辑纲要逻辑是一种描述算法过程的语言,分别用纲要逻辑是一种描述算法过程的语言,分别用seq、iter和和sel-alt三类关键字描述顺序、重复和选择三种三类关键字描述顺序、重复和选择三种结构。结构。5.4 面向数据结构的设计

26、面向数据结构的设计5.4 面向数据结构的设计面向数据结构的设计示例:信用卡记账示例:信用卡记账系统的系统的Jackson表示表示表示表示输入输入数据结构数据结构的的Jackson图图5.4 面向数据结构的设计面向数据结构的设计表示表示输出输出数据结数据结构的构的Jackson图图5.4 面向数据结构的设计面向数据结构的设计表示程序结构的表示程序结构的Jackson图图5.4 面向数据结构的设计面向数据结构的设计PROCESS_CUST_DATA seq Open PAY FILE: open CUST M FILE;分别打开支付文件和顾客主文件分别打开支付文件和顾客主文件 PROCESS_CN

27、O_GROP iter until eof:PAY_FILE; 处理顾客号码组处理顾客号码组 Read PAY FILE: 读支付文件一个记录)读支付文件一个记录) PROCESS_CNO; 读顾客主文件一个记录,找老结余读顾客主文件一个记录,找老结余 PROCESS PAY RECORD iter until end:CNOGROP: 处理顾客号码组中每个支付记录处理顾客号码组中每个支付记录 write report line; 写出报告行写出报告行 compute total payments; 计算总支付额计算总支付额 read PAY_FILE; 读支付文件下一个记录读支付文件下一个记

28、录PROCESS PAY RECORD end; 一位顾客数据处理完一位顾客数据处理完 COMPUTE CUST_TOTAL; 计算顾客总数计算顾客总数 COMPUTE_BALANCE seq 计算结余计算结余 PROCESS_OLD_BALANCE;处理老结余处理老结余 COMPUTE_NEW_BALANCE;计算新结余计算新结余 Write report line; 写出报告行写出报告行 COMPUTE_BALANCE end; 计算结余完毕计算结余完毕 PROCESS CNO_GROUP end; 支付文件处理完成支付文件处理完成 PROCESS CUST DATA end: Subst

29、ructure PROCESS CUST DATAJackson伪代码(纲要逻辑)伪代码(纲要逻辑)5.4 面向数据结构的设计面向数据结构的设计Jackson方法方法的的步骤:步骤:1.分析并确定输入数据和输出数据的逻辑结构,用分析并确定输入数据和输出数据的逻辑结构,用Jackson结构图表示这些数据结构。结构图表示这些数据结构。2.找出输入数据结构和输出数据结构中有对应关系的找出输入数据结构和输出数据结构中有对应关系的数据单元。数据单元。3.按照映射规则由输入、输出的数据结构导出用按照映射规则由输入、输出的数据结构导出用Jackson图表示的程序结构。图表示的程序结构。4.列出基本操作与条件,并把它们分配到程序结构图列出基本操作与条件,并把它们分配到程序结构图的适当的位置。的适当的位置。5.用用Jackson伪代码写出程序的算法。伪代码写出程序的算法。5.5 详细设计文档与复审详细设计文档与复审详细设计文档详细设计文档详细设计说明书详细设计说明书数据库设计说明书数据库设计说明书5.5 详细设计文档与复审详细设计文档与复审详细设计的所有文档都要经过复审,并以此作为该详细设计的所有文档都要经过复审,并以此作为该阶段设计工作完成的标志。阶段设计工作完成的标志。复审包括软件总体结构、数据结构、结构之间的复审包括软件总体结构、数据结构、结构之间的界面以及模块过程细节

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论