软件工程课件:第6章 详细设计

上传人:M****1 文档编号:569962244 上传时间:2024-08-01 格式:PPT 页数:67 大小:1.04MB
返回 下载 相关 举报
软件工程课件:第6章 详细设计_第1页
第1页 / 共67页
软件工程课件:第6章 详细设计_第2页
第2页 / 共67页
软件工程课件:第6章 详细设计_第3页
第3页 / 共67页
软件工程课件:第6章 详细设计_第4页
第4页 / 共67页
软件工程课件:第6章 详细设计_第5页
第5页 / 共67页
点击查看更多>>
资源描述

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

1、需求分析模型 - 设计模型结构化设计方法转换过程第第6章章 详细设计详细设计 目目标:确定如何具体:确定如何具体实现所要求的系所要求的系统。不是具体不是具体编写程序,而是写程序,而是设计程序的程序的“蓝图”。详细设计的的结果决定最果决定最终程序代程序代码的的质量。量。E.W.Dijkstra最早提出最早提出结构程序构程序设计:程序:程序质量量与程序中包含的与程序中包含的Goto语句的数量成反比(句的数量成反比(1965)。)。1966,Bohm,Jacopini,证明了只用明了只用“顺序序”、“选择”、“循循环”控制控制结构就能构就能实现任何任何单入口入口单出口程序。出口程序。6.1 结构程序

2、设计结构程序设计 理理论上,最基本的控制上,最基本的控制结构只有两种:构只有两种:顺序、序、循循环结构(构(选择结构可由其两者构造)。构可由其两者构造)。 学界学界认识到,不是到,不是简单去掉去掉Goto语句的句的问题,而是要而是要创立一种新的程序立一种新的程序设计方法。方法。 结构化程序构化程序设计(IBM率先成功运用)。率先成功运用)。结构程序设计结构程序设计: 一一种种设计程程序序的的技技术,它它采采用用自自顶向向下下逐逐步步求求精精的的设计方方法法和和单入入口口单出出口的控制口的控制结构。构。 使用使用结构程序构程序设计技技术的好的好处:1)提高)提高软件开件开发工程的成功率和生工程的

3、成功率和生产率;率;2)系)系统有清晰的有清晰的层次次结构,容易构,容易阅读理解;理解;3)单入口入口单出口的控制出口的控制结构,容易构,容易诊断断纠正;正;4)模)模块化可以使得化可以使得软件可以重用;件可以重用;5)程序)程序逻辑结构清晰,有利于程序正确性构清晰,有利于程序正确性证明。明。经典的典的结构程序构程序设计:只允:只允许使用使用顺序、序、IF_THEN_ELSE选择和和DO_WHILE循循环;扩展的展的结构程序构程序设计:除了三种基本控制:除了三种基本控制结构,构,还使用使用DO_CASE和和DO_UNTIL循循环;修正的修正的结构程序构程序设计:除了三种基本控制:除了三种基本控

4、制结构构和两种和两种扩充充结构,构,还使用使用BREAK等等结构。构。流程流程图通常由三种通常由三种结点点组成:成:1)函数函数结点点如如果果一一个个结点点有有一一个个入入口口线和和一个出口一个出口线,则称称为函数函数结点。点。由于函数由于函数结点一般点一般对应于于赋值语句,所以句,所以F也表示了也表示了这一个一个结点点对应的函数关系。的函数关系。F函数函数结点点6.1.1结构化程序构化程序6.1.1.1控制控制结构构2)谓词结点点如果一个如果一个结点有一个入口点有一个入口线和两个出口和两个出口线,而且它不改而且它不改变程序的数据程序的数据项的的值,则称称为谓词结点。点。P是一个是一个谓词,根

5、据,根据P的的逻辑值(T或或F),),结点有不同的出口。点有不同的出口。P谓词结点点3)汇点点 如果一个如果一个结点有两个或多个入口点有两个或多个入口线和一个出和一个出口口线,而且它不,而且它不执行任何运算,行任何运算,则称称为汇点点 。汇点点 汇点的点的简略表示略表示1)顺序序结构构:相当于:相当于“A、B”2.三种基本控制三种基本控制结构构AB(a)顺序序结构构2)选择结构构相当于相当于“IfexpthenAelseBendif”ABexp(b)选择结构构3)循循环结构构:相当于:相当于“WhileexpdoA”A(c)循循环结构构exp1)多分支多分支结构构相当于相当于“CaseIofI

6、=1:C1;I=2:C2;I=3:C3;I=n:Cn”3. 扩充两种控制结构扩充两种控制结构CnC3C1C2( (d)d)多分支多分支结构构I=?2)UNTIL循循环结构构相当于相当于“RepeatAUntilexp”A(e)UNTIL循循环exp6.2 人机界面设计人机界面设计6.2.1 设计问题 1. 系系统响响应时间; 2. 用用户帮助;帮助; 3. 出出错信息信息处理;理; 4. 命令交互命令交互6.2.2 设计过程程迭代迭代过程(程(p121)6.2.3 人机界面人机界面设计指南指南 1. 一般交互指南;一般交互指南; 2. 信息信息显示指南;示指南; 3. 数据数据输入指南。入指南

7、。6.3 过程设计的工具过程设计的工具 6.3.1程序流程图程序流程图 程程序序流流程程图:是是一一种种描描述述程程序序的的控控制制结构流程和指令构流程和指令执行情况的有向行情况的有向图。 历史史悠悠久久、使使用用广广泛泛、直直观描描绘控控制制流流程、便于初学者掌握。程、便于初学者掌握。 基本符合(基本符合(p125p125)ASP检索程序流程索程序流程图:开 始加载Include文件定义记数变量、作物变量创建数据库链接对象、记录集对象打开数据库用客户提交的值对作物变量赋值SQL查询语句赋值通过记录集对象打开SQL语句设定的记录记录集末端?记数变量加1,输出记录字段值及图像转跳下一记录关闭数据

8、库链接对象、记录集对象,并释放资源输出记录数和提示结 束YN2)程程序序流流程程图中中用用箭箭头代代表表控控制制流流,因因此此程程序序员不不受受任任何何约束束,可可以以完完全全不不顾结构构程程序序设计的精神,随意的精神,随意转移控制。移控制。3)程序流程)程序流程图不易表示数据不易表示数据结构。构。程序流程程序流程图的的缺点缺点:1)程程序序流流程程图本本质上上不不是是逐逐步步求求精精的的好好工工具具,它它诱使使程程序序员过早早地地考考虑程程序序的的控控制制流流程程,而不去考而不去考虑程序的全局程序的全局结构。构。6.3.2盒盒图(N-S图)ABC条件条件FTElseBThenACase条件条

9、件Case1ACase2BCasenN循环条件循环条件循环条件循环条件Do-While部分部分Do-Until部分部分Aa.顺序结构顺序结构b.选择结构选择结构c.多分支结构多分支结构d.当型循环结构当型循环结构e.直到型循环结构直到型循环结构f.调用子程序调用子程序A图6.4盒盒图的基本符号的基本符号盒盒图的特点有:的特点有: 1)功能域明确,可以从盒)功能域明确,可以从盒图上一眼就看出来;上一眼就看出来; 2)不可能任意)不可能任意转移控制;移控制; 3)很容易确定局部和全程数据的作用域;)很容易确定局部和全程数据的作用域; 4)很容易表)很容易表现嵌套关系,也可以表示模嵌套关系,也可以表

10、示模块的的层次次结构。构。 FTBCDACase1E2F3G4HA:盒盒图例子例子PAD(ProblemAnalysisDiagram)是是问题分析分析图。日立公司日立公司发明和推广(明和推广(1973)。)。6.3.3PAD图P1P2WHILECUNTILCPPP2P1CP1P2PnX=L1L2Lndefa.顺序序结构构b.当型循当型循环结构构c.直到型循直到型循环结构构d.选择结构构e.多分支多分支结构构f.语句句标号号g.定定义图6.5PAD图的基本符号的基本符号例子:例子: P1P2UNTILC2P7P4P3Cdefa.初始的初始的PAD图图6.6PAD图例子例子b.使用使用def符号

11、符号细化化处理框理框P2P5P2P8C1UNTILC2P9P10P6PAD图的的优点:点:1)使使用用表表示示结构构化化控控制制结构构的的PAD符符号号所所设计出来的程序必然是出来的程序必然是结构化程序;构化程序;2)PAD图所描所描绘的程序的程序结构十分清晰。构十分清晰。图中中最最左左面面的的竖线是是程程序序的的主主线,即即第第一一层结构构。随随着着程程序序层次次的的增增加加,PAD图逐逐渐向向右右延延伸伸,每每增增加加一一个个层次次,图形形向向右右扩展展一一条条竖线。PAD图中中竖线的的总条数就是程序的条数就是程序的层次数;次数;3)用用PAD图表表现程程序序,通通俗俗易易懂懂,程程序序从

12、从图中中最最左左竖线上上端端的的结点点开开始始执行行,自自上上而而下下,从左向右从左向右顺序序执行,遍行,遍历所有所有结点;点;4)容容易易将将PAD图转换成成高高级语言言源源程程序序,这种种转换可以用可以用软件工具自件工具自动完成;完成;5)可可用用于于表表示示程程序序逻辑,也也可可用用于于描描绘数数据据结构;构;6)PAD图的的符符号号支支持持自自顶向向下下、逐逐步步求求精精的的方法。方法。判定表由四部分判定表由四部分组成:成: 左上部列出所有左上部列出所有条件条件 左下部是所有可能做的左下部是所有可能做的动作作 右上部表示各种右上部表示各种条件条件组合合 右下部是和每种条件右下部是和每种

13、条件组合相合相对应的的动作作 6.3.4判定表判定表123456789国内乘客国内乘客TTTTFFFF头等等舱TFTFTFTF残疾乘客残疾乘客FFTTFFTT行李重量行李重量W30TFFFFFFFF免免费(W-30)2(W-30)3(W-30)4(W-30)6(W-30)8(W-30)126.3.5判定判定树判定判定树是判定表的是判定表的变种。种。行李重量行李重量W30行李重量行李重量W30国内乘客国内乘客外国乘客外国乘客头等等舱其他其他舱头等等舱其他其他舱残疾乘客残疾乘客正常乘客正常乘客残疾乘客残疾乘客正常乘客正常乘客残疾乘客残疾乘客正常乘客正常乘客残疾乘客残疾乘客正常乘客正常乘客(W-30

14、)2(W-30)4(W-30)3(W-30)6(W-30)4(W-30)8(W-30)6(W-30)12免免费图6.7用判定用判定树表示表示计算行李算行李费的算法的算法行行李李费算算法法PDL也称也称为伪码。如:如:ifI0then执行行订单数据数据输入模入模块else报告出告出错信息信息endif6.3.6过程程设计语言(言(PDL)PDL的的优点点:1)可以作)可以作为注注释直接插在源程序中直接插在源程序中间;2)可可以以使使用用普普通通的的正正文文编辑程程序序或或文文字字处理理系系统来完成来完成PDL的的书写和写和编辑工作;工作;3)现在在已已经有有一一些些自自动处理理程程序序可可以以自

15、自动地地把把PDL生成程序代生成程序代码。PDL的缺点的缺点:不如:不如图形工具形象直形工具形象直观。6.4 面向数据结构的设计方法面向数据结构的设计方法 1)顺序序结构构 ABCD图6.8A由由B、C、D三个三个元素元素顺序序组成成6.4.1Jackson图图2)选择结构构 ABCD图6.9根据条件根据条件A选择B、C、D中的某一个中的某一个3)重复)重复结构构AB*图6.10A由由B出出现N次次组成成6.4.2 改改进的的Jackson图 ABCD图6.11改改进的的Jackson图ABCDAB-AB*S(i)S(i)I(i)(a)(b)(c)(d)Jackson方法的目方法的目标是:是:

16、 得出得出对程序程序处理理过程的程的详细描述。描述。 6.4.3Jackson方法方法Jackson结构程序构程序设计方法由五个步方法由五个步骤组成:成:1)分分析析并并确确定定输入入数数据据和和输出出数数据据的的逻辑结构构,并用,并用Jackson图描描绘这些数据些数据结构;构;2)找出)找出输入数据入数据结构和构和输出数据出数据结构中有构中有对应关系的数据关系的数据单元;元;3)用用三三条条规则从从描描绘数数据据结构构的的Jackson图导出描出描绘程序程序结构的构的Jackson图:A为每每对有有对应关关系系的的数数据据单元元,按按照照它它们在在数数据据结构构图中中的的层次次在在程程序序

17、结构构图的的相相应层次画一个次画一个处理框;理框;B根根据据输入入数数据据结构构中中剩剩余余的的每每个个数数据据单元元所所处的的层次次,在在程程序序结构构图的的相相应层次次分分别为它它们画上画上对应的的处理框;理框;C根根据据输出出数数据据结构构中中剩剩余余的的每每个个数数据据单元元所所处的的层次次,在在程程序序结构构图的的相相应层次次分分别为它它们画上画上对应的的处理框;理框;4)列列出出所所有有操操作作和和条条件件(包包括括分分支支条条件件和和循循环结束束条条件件),并并且且把把它它们分分配配到到程程序序结构构图的适当位置;的适当位置;5)用)用伪码表示程序。表示程序。顺序序结构构:Ase

18、qBCDAend与三种基本结构对应的伪码是:与三种基本结构对应的伪码是:选择结构选择结构Aselectcond1BAorcond2CAorcond3DAend重复结构重复结构Aiteruntil(或或while)condBAend例例:一个正文文件由若干:一个正文文件由若干记录组成,每个成,每个记录是一个字符串。是一个字符串。如:如:Record 1Record 1:How many stages are there in the traditional How many stages are there in the traditional software development mode

19、l?software development model?Record 2Record 2: After entering the room, walk to the person After entering the room, walk to the person sitting nearest to you and greet him/her with a “high five”.sitting nearest to you and greet him/her with a “high five”.Record 3Record 3: What are encapsulated into

20、an object?What are encapsulated into an object?Record 4Record 4: What diagram is the following diagram? Simply What diagram is the following diagram? Simply describe the meaning of it.describe the meaning of it. 要求:要求:1)设计程序程序统计每个每个记录中空格字符的个数,中空格字符的个数,输出数据的格式是,每出数据的格式是,每读入一个入一个记录(字符(字符串)之后,另起一行打印出串)

21、之后,另起一行打印出这个字符串及其个字符串及其空格数;空格数;2)最后打印出文件中空格的)最后打印出文件中空格的总个数。个数。 正文文件正文文件字符串字符串*字符字符*空格空格非空格非空格输出表格出表格表格体表格体空格空格总数数串信息串信息*字符串字符串空格数空格数IISI(a)输入数据入数据结构构(b)输出数据出数据结构构图6.12表示表示输入入/输出数据出数据结构的构的Jackson图分分析析输入入、输出出数数据据结构构,用用Jackson图描描绘,并并找找出出两两者者对应的数据的数据单元:元:统计空格空格程序体程序体印印总数数处理字符串理字符串*分析字符串分析字符串印空格数印空格数印字符

22、串印字符串分析字符分析字符*处理空格理空格处理非空格理非空格IIS图6.13描描绘统计空格程序空格程序结构的构的Jackson图导出描出描绘程序程序结构的构的Jackson图:(1)停止)停止(2)打开文件)打开文件(3)关)关闭文件文件(4)印出字符串)印出字符串(5)印出空格数目)印出空格数目(6)印出空格)印出空格总数数(7)sum:=sum+1(8)totalsum:=totalsum+sum(9)读入字符串入字符串(10)sum:=0(11)totalsum:=0(12)pointer:=1(13)pointer:=pointer+1I(1)文件文件结束束I(2)字符串字符串结束束S

23、(3)字符是空格字符是空格列出所有操作和条件:列出所有操作和条件:统计空格空格程序体程序体印印总数数处理字符串理字符串*分析字符串分析字符串印空格数印空格数印字符串印字符串分析字符分析字符*处理空格理空格处理非空格理非空格I(1)I(2)S(3)图6.14最最终分配好操作和条件的分配好操作和条件的Jackson图311192610124589713136.5 程序复杂度的定量度量程序复杂度的定量度量 定量度量程序复定量度量程序复杂度的作用:度的作用: (1)可估算)可估算软件中件中错误的数量及的数量及软件开件开发工工作量;作量; (2)度量的)度量的结果可用来比果可用来比较不同不同设计或不同或

24、不同算法的算法的优劣;劣; (3)程序的复)程序的复杂度可作度可作为模模块规模的限度。模的限度。 1. 流流图 “退化退化”的程序流程的程序流程图,仅描描绘程序的控程序的控制流程,不表制流程,不表现对数据的具体操作及循数据的具体操作及循环、选择的条件。的条件。 6.5.1McCabe(麦凯布)方法)方法一个圆代表一条或多条语句;一个圆代表一条或多条语句;一个顺序结构可以合并成一个结点;一个顺序结构可以合并成一个结点;汇点也是结点;汇点也是结点;一个顺序处理框序列和一个判断框可一个顺序处理框序列和一个判断框可映射成一个结点。映射成一个结点。复合条件:复合条件:包包含含了了一一个个或或多多个个布布

25、尔运运算算符符( OR、 AND、NOR等)。等)。应把把复复合合条条件件分分解解为简单条条件件,每每个个条条件件对应一一个个结点。点。2. 计算算环形复形复杂度的方法度的方法 1)环形复形复杂度度 V(G)等于流)等于流图中的区域数;中的区域数; 2)环形复形复杂度度 V(G)EN+2,其中,其中E是流是流图中中边的条数,的条数,N是是结点数;点数; 3)环形复形复杂度度 V(G)P1,其中,其中P为流流图中判定中判定结点的数目。点的数目。例:例:计算下列程序算下列程序图的程序复的程序复杂度度解:解: 方法一:程序方法一:程序图把平面分把平面分为4个区域,程序复个区域,程序复杂度度V(G)4

26、; 方法二:方法二:边的条数的条数E11,结点数点数N9,程序,程序复复杂度度V(G)EN24 ; 方法三:判定方法三:判定结点点为1、2、4点,数目点,数目为P3个,所以个,所以V(G)P14。3.环形复形复杂度的用途度的用途对测试难度的一种定量度量,也能度的一种定量度量,也能对软件最件最终的可靠性的可靠性给出某种出某种预测。实践表明,模践表明,模块规模以模以V(G)10为宜。宜。根根据据程程序序中中运运算算符符和和操操作作数数的的总数数来来度度量量程程序复序复杂度。度。N=N1+N2其中:其中:N定定义为程序程序长度度;N1为程序中运算符出程序中运算符出现的的总次数;次数;N2为操作数出操

27、作数出现的的总次数。次数。6.5.2Halstead(霍尔斯特德)方法)方法Halstead给出出预测程序程序长度的公式度的公式为:H=n1log2n1+n2log2n2其中:其中:H定定义为程序程序预测长度;度;n1为程程序序中中使使用用的的不不同同运运算算符符(包包括括关关键字)的个数;字)的个数;n2为程程序序中中使使用用的的不不同同操操作作数数(变量量和和常量)的个数。常量)的个数。多次多次验证都表明,程序的都表明,程序的预测长度度H和和实际程序程序长度度N非常接近。非常接近。Halstead还给出出了了预测程程序序中中包包含含错误的个数的公式:的个数的公式:E=Nlog2(n1+n2)/3000第第6章小结章小结详细设计说明明书着重描述每一模着重描述每一模块是怎是怎样实现的,包括的,包括实现算法、算法、逻辑流程等。流程等。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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