软件工程详细设计概要PPT课件_第1页
软件工程详细设计概要PPT课件_第2页
软件工程详细设计概要PPT课件_第3页
软件工程详细设计概要PPT课件_第4页
软件工程详细设计概要PPT课件_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

1、主要内容 6.1 结构化程序设计中的三种结构 结构化程序设计思想的提出 概念最早由Dijkstra提出,他是鉴于高级语言Fortran中的”GOTO语句有害” 顺序(Sequence);条件(Condition);重复(Repetition) 6.2 设计表示法 图形设计表达式 表格设计表达式 过程设计语言表达式 6.3 面向数据结构的设计方法 6.4 程序复杂程度的定量度量第1页/共76页6.1 结构化程序设计结构程序设计的特点: 自顶向下逐步求精; 具有单入、单出的控制结构(取消GOTO语句)结构程序设计结构程序设计 顺序,选择和循环;顺序,选择和循环; 具有单入、单出的控制结构具有单入、

2、单出的控制结构成功的结构化程序设计:成功的结构化程序设计:1971, IBM,纽约时报信息库管理系统,纽约时报信息库管理系统,8万万3千行千行美国宇航局空间实验室飞行模拟系统,美国宇航局空间实验室飞行模拟系统,40万行万行第2页/共76页6.2 过程设计工具 图形设计表达式 流程图 盒图 PAD图(在PAD开发方法讲) 表格设计表达式 判定表/树 过程设计语言表达式 过程设计语言(Procedure Design Language, PDL)第3页/共76页( (1) 1) 顺序结构顺序结构( (sequential structure)(2) (2) 选择结构选择结构(selective s

3、tructure)ABPBAFT(3) (3) 先判定型循环结构先判定型循环结构(while-loop structure)(4) (4) 后判定型循环结构后判定型循环结构(until-loop structure)TPSFFSTP(5) (5) 多情况选择多情况选择(case structure)TA1FP=1TA2FP=2TAnFP=n1、程序流程图、程序流程图(Program Flow Chart)注:注:1-3经典程序设计;经典程序设计; 1-5修正的程序设计修正的程序设计第4页/共76页 任何复杂的程序流程图都应由以上五种基本结构组合而成。 缺点:本质上不具备逐步求精的特点,对于提高

4、缺点:本质上不具备逐步求精的特点,对于提高 大型系统的可理解性作用甚微;大型系统的可理解性作用甚微; 不易表示数据结构;不易表示数据结构; 转移控制太方便。转移控制太方便。 优点:容易掌握,且历史优点:容易掌握,且历史“悠久悠久”,使用广泛。,使用广泛。第5页/共76页?画出下列3个伪码程序的程序流程图伪码1:STARTIF p THEN WHILE q DOf END DOELSEBLOCK g nEND BLOCKEND IFSTOP伪码伪码2:TPSF第6页/共76页START1:INPUT(A,B,C,D)2:IF(A0)AND(B0) THEN3:X=A+B ELSE4:X=A-B5

5、:END6:IF(CA)OR(D0)AND(B0) THEN3:X=A+B ELSE4:X=A-B5:END6:IF(CA)OR(DB) THEN7:Y=C-D ELSE8:Y=C+D9:END10:PRINT(X,Y)STOP将以下伪码3 转换成PAD图第18页/共76页4、判定表 & 判定树 表示复杂的条件(input)组合与应做动作(output)之间的对应关系。 判定表的出现 先于软件工程十几年,但不失用于过程设计 判定表的性质 提供了一种把各种动作与条件(在处理解说词中描述的)转换为表格形式的表达式 判定表的好处 不容易产生误解,还可作为一种表驱动算法的机器直接输入使用第19

6、页/共76页判定表第20页/共76页示例:电费计算的判定表第21页/共76页按规定:重量不超过按规定:重量不超过30公斤的行李可免费托运。公斤的行李可免费托运。重量超过重量超过30公斤时,对超运部分,头等公斤时,对超运部分,头等舱国内乘客收舱国内乘客收4元元/公斤;其它舱位国内公斤;其它舱位国内乘客收乘客收6元元/公斤;外国乘客收费为国内公斤;外国乘客收费为国内乘客的乘客的2倍;残疾乘客的收费为正常乘倍;残疾乘客的收费为正常乘客的客的1/2。 示例:航空行李托运费的算法第22页/共76页123456789国内乘客国内乘客T T T T FFFF头等舱头等舱T F T F T F T F残疾乘客

7、残疾乘客FF T T FF T T行李重量行李重量 W 30T FFFFFFFF免费免费 (W-30) 2 (W-30) 3 (W-30) 4 (W-30) 6 (W-30) 8 (W-30) 12 用判定表表示计算行李费的算法用判定表表示计算行李费的算法RulesRule numbers Condition rowsAction rows1. 工具工具第23页/共76页课堂作业画判定表? 货站的收费标准 本省,快件6元/公斤,慢件4元/公斤 外省 25公斤以内,快件8元/公斤,慢件6元/公斤; 25公斤以外,快件10元/公斤,慢件8元/公斤;第24页/共76页判定表 1 2 3 4 5 6

8、本省本省 T T F F F F 30行李重量行李重量W 30免费免费国内乘客国内乘客外国乘客外国乘客头等舱头等舱其他舱其他舱残疾乘客残疾乘客正常乘客正常乘客(W-30) 2(W-30) 4残疾乘客残疾乘客正常乘客正常乘客(W-30) 3(W-30) 6头等舱头等舱其他舱其他舱残疾乘客残疾乘客正常乘客正常乘客(W-30) 4(W-30) 8残疾乘客残疾乘客正常乘客正常乘客(W-30) 6(W-30) 12用判定树表示计算行李费的算法用判定树表示计算行李费的算法注:判定表与判定树并注:判定表与判定树并不适用于作为一种通用不适用于作为一种通用的设计工具,通常将之的设计工具,通常将之用于辅助测试用于

9、辅助测试第29页/共76页画出以下逻辑关系的判定树 移动电信公司发行各种优惠卡,其中包括钻石卡、金卡、银卡3种,发卡规则: 从未发生过话费拖欠,且每月通话费在500元(含)以上者可获钻石卡,每月通话费在200元(含)以上者可获金卡,每月通话费在100(含)以上者可获银卡; 发生过话费拖欠,但能在规定时间内缴清欠款,且每月通话费在300元(含)以上者可获金卡,每月通话费在200元(含)以上者可获银卡; 发生过话费拖欠,并未能在规定时间内补清欠款,无论每月话费多少均不能获得优惠卡。第30页/共76页第31页/共76页5、伪代码伪代码是一种介于自然语言和形式化语言之间的半形式化语言是一种用于描述功能

10、模块的算法设计和加工细节的语言,也称为程序设计语言(Program Design Language,PDL)伪码的语法规则分为“外语法”和“内语法”。外语法应当符合一般程序设计语言常用语句的语法规则;内语法可以用英语中一些简单的句子、短语和通用的数学符号来描述程序应执行的功能。 第32页/共76页伪代码的基本控制结构简单陈述句结构:避免复合语句。判定结构:IF_THEN_ELSE或CASE_OF结构。重复结构:WHILE_DO或REPEAT_UNTIL结构。第33页/共76页伪代码实例:“检查订货单”例子第34页/共76页6.3 面向数据结构的设计 面向数据结构的设计是由Jackson(197

11、5,1983年)、Warnier(1974年,1981年)、和Orr(1981年、1989年)提出 面向数据结构的设计(data structured-oriented design)是根据问题的数据结构定义一组映射,把问题的数据结构转换为问题解的程序,最终目标是得出对程序处理过程的描述。 与结构化设计SD的由DFD导出结构设计不同,JSD是以数据结构(data structure)为基础设计每个模块的处理过程。第35页/共76页Jackson结构化编程 Jackson认为,流程图不是最好的设计工具 因为设计首先考虑的应该是问题的结构,而流程图却让设计者首先考虑的是程序在计算机内的执行顺序(算

12、法)。这样,就掩盖了有问题的结构。 Jackson提出,设计者不应再画流程图,程序结构应基于问题的数据结构第36页/共76页Jackson的结构图解及其逻辑第37页/共76页 顺序结构 A seq do B; do C; do D; A end 学号 seq do年级; do专业; do序号; 学号 end学号年级专业序号第38页/共76页选择(二选一)A select I0 do B; A or do C; A end性别 select I0 do男;性别 or do女;性别 end性别男女第39页/共76页选择(多选一)A select code=“I” do B; A or code=“

13、J” do C; A or code=“K” do D; A or code”I”、 ”J”、”K” do EA end第40页/共76页重复结构D iter while I10 C seq do A; do B; C endD end学生成绩表iter while I10 成绩记录seq do姓名; do课程; 成绩记录end学生成绩表end学生成绩表姓名课程成绩记录第41页/共76页学生成绩表JACKSON图学生成绩表姓名课程成绩记录成绩学号年级专业序号第42页/共76页学生成绩表JACKSON图解逻辑学生成绩表 iter while I10 成绩记录 seq do 学号 seq do 年

14、级; do 专业; do 序号; 学号 end do 姓名; do 课程; do 成绩; 成绩记录 end学生成绩表 end第43页/共76页课堂作业:人-机对话系统的Jackson及其逻辑 人-机对话系统由操作员和系统信息交替组成。假设一段对话信息由操作员信息开始以系统信息结束,请用Jackson描述此过程。 注:操作员信息由操作员编号,姓名及其所属部门组成,而系统信息由一系列系统提示组成。第44页/共76页人机对话系统提示对话系统信息操作员信息编号姓名所属部门第45页/共76页Jackson设计步骤 Jackson设计步骤 确定要处理问题的数据结构 把数据结构转换为程序结构 获得带有操作的

15、最终程序结构 用基本操作来定义要完成的任务 把每个基本操作分配到程序结构的合适的元素中去 翻译程序结构为图解逻辑 转换图解逻辑为目标语言第46页/共76页设计示例1:磁带记录 第一步:确定数据结构第47页/共76页设计示例1:磁带记录 第二步:转换为程序结构框架第48页/共76页设计示例1:磁带记录 第三步:定义基本操作 (1)打开文件 (2)关闭文件 (3)读出文件 (4)显示总数 (5)组计数器清零(GC) (6)A计数器清零(AC) (7)B计数器清零(BC) (8)GC+1 (9)AC+1 (10)BC+1 (11)显示文件头 (12)终止第49页/共76页设计示例1:磁带记录第四步:

16、 把操作分配给各程序元素n第三步:定义基本操作第三步:定义基本操作 (1)打开文件)打开文件 (2)关闭文件)关闭文件 (3)读出文件)读出文件 (4)显示总数)显示总数 (5)组计数器清零()组计数器清零(GC) (6)A计数器清零(计数器清零(AC) (7)B计数器清零(计数器清零(BC) (8)GC+1 (9)AC+1 (10)BC+1 (11)显示文件头)显示文件头 (12)终止)终止 一一第50页/共76页设计示例1:磁带记录 第五步 翻译为Jackson图解逻辑第51页/共76页一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符

17、的总个数。要求的输出数据格式是:每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。设计示例2第52页/共76页第第1 1步:用步:用JacksonJackson图描述图描述 IO 的数据结构的数据结构正文文件I字符串*字符*空格O非空格OIS输入输出表格表格体串信息*字符串空格数I输出空格总数设计示例2第53页/共76页正文文件I字符串*字符*空格O非空格OIS输入输出表格表格体串信息*字符串空格数I输出空格总数? 经过程序处理由正文文件得到经过程序处理由正文文件得到输出表格。输出表格。 每处理输入中一个字符串后就每处理输入中一个字符串后就得到输出中一个串

18、信息,二者重得到输出中一个串信息,二者重复次序和次数均相同。复次序和次数均相同。 字符不与多字符组成的字符串字符不与多字符组成的字符串对应。对应。 单个空格不能决定空格数。单个空格不能决定空格数。第第2 2步:在两个图中指出有直接因果关系步:在两个图中指出有直接因果关系(causality)、可以同时处理的单元(重复的次序,次数均相同)可以同时处理的单元(重复的次序,次数均相同)第54页/共76页2. JSD正文文件I字符串*字符*空格O非空格OIS输入输出表格表格体串信息*字符串空格数I输出空格总数统计空格处理字符串*I程序体印总数印字符串印空格数分析字符*分析字符*I分析字符串处理空格o处

19、理非空格oS第第3步:步:Data structure Program structure把有对应关系的单元合为一个处理框,画把有对应关系的单元合为一个处理框,画在相应的层次中(不同层以低层为准)在相应的层次中(不同层以低层为准)第55页/共76页第第4 4步:列出所有操作条件,并分步:列出所有操作条件,并分配到上幅程序结构图中配到上幅程序结构图中统计空格处理字符串*I(1)程序体印总数印字符串印空格数分析字符*I分析字符串处理空格o处理非空格oS231452. JSD例例:(部分部分列举)列举)打开文件打开文件读入字符串读入字符串空格总数空格总数totalsum=0关闭文件关闭文件仃止仃止I

20、 文件结束文件结束第56页/共76页第第5步:步:用用Pseudocode 表示程序。表示程序。第57页/共76页6.4 程序复杂程度的定量度量 环形复杂度 McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度 流图 “退化了的”程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。第58页/共76页映射方法: 任何方法表示的过程设计结果,都可以翻译成流图。 对于顺序结构,一个顺序处理序列和下一个选择或循环的开始语句,可以映射成流图中的一个结点。第59页/共76页 对于选择结构,开始语句映射成一个结点;两条分支至少各映射成一个结点;结束映射成一个结

21、点。第60页/共76页 对于循环结构,开始和结束语句各映射成一个结点。第61页/共76页第62页/共76页由PDL翻译成的流图第63页/共76页复合条件的PDL映射成流图 复合条件 包含一个或多个布尔运算符(逻辑OR,AND,NAND,NOR)。 方法 分解复合条件为若干个简单条件,每个简单条件对应流图中一个结点。包含条件的结点称为判定节点,从每个判定结点引出两条或多条边。第64页/共76页第65页/共76页第66页/共76页复合条件的PDL映射成流图例子第67页/共76页计算环形复杂度的方法(1) 流图中的区域数等于环形复杂度。(2) 流图G的环形复杂度V(G)=E-N+2,其中,E是流图中

22、边的条数,N是结点数。(3) 流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。第68页/共76页小结6.1 结构化程序设计中的三种结构顺序(Sequence);条件(Condition);重复(Repetition)6.2 设计表示法程序流程图、盒图、PAD图判定表和判定树6.3 面向数据结构的设计方法 JACKSON及其逻辑6.4 程序复杂程度的定量度量第69页/共76页课后题目答案第70页/共76页用判定表表示手续费的计算 某交易所规定给经纪人的手续费计算方法如下:总手续费=基本手续费+附加手续费 基本手续费: 基本手续费=交易金额的8.4%,如果交易总金额P1000元; 基本手续费=交易金额的5%+34,如果交易总金额P在1000元到10000元之间 基本手续费=交易金额的4%+134,如果交易总金额P超过10000元第71页/共76页附加手续费: 与交易中的每股价格Q有关,与股数N有关 附加手续=基本手续费* 5%,Q低于14元时,N是100的倍数 附加手续费=基本手续费* 9%,Q低于14元时,N不是100的倍数第7

温馨提示

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

评论

0/150

提交评论