ImageVerifierCode 换一换
格式:PPT , 页数:173 ,大小:1.34MB ,
资源ID:7765425      下载积分:20 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7765425.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(传统的设计方法.ppt)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

传统的设计方法.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第六章 传统的设计方法,1,.,讨论要点,如何将分析模型转换成软件设计?,作为软件工程师在软件设计方面应使用哪些基本原则和概念?,2,.,6.1,概述,6.2,结构化设计方法,6.3,过程设计,6.4 Jackson,方法,教学内容:,3,.,教学目的及要求:,掌握结构化设计方法和过程设计方法;,了解,Jackson,方

2、法。,4,.,6.1,概述,1.,面向数据流设计和面向数据(或数据结构)设计,5,.,软件设计的基本概念和原则,软件设计的重要作用:,软件设计处于软件工程过程中的技术核心位置,它将完成待建造软件的有意义的工程表示。,软件设计阶段的目标:,使用很多设计方法,产生数据设计、体系结构设计、接口设计和构件设计。为软件的编程阶段提供依据。,软件设计的依据:,系统分析 系统设计,数据,字典,实体,关系图,数据流图,状态变迁图,数据,对象,描述,加工规约,控制规约,构件设计,接口设计,体系结构设计,数据设计,6,.,软件设计原则,设计视点不要局限在局部范围,设计是来源于分析模型的,是分析模型可跟踪的,设计应

3、该尽量使用已有的模式,不应该总是从头开始,设计应尽可能模拟问题域的结构,缩短与现实问题的距离,设计应表现风格一致,应该有统一的规则和接口形式,设计应考虑可构造性,设计应考虑最恶略情况下的适应性,即健壮性,设计应避免考虑程序实现细节,因为它毕竟不是编码,应该根据质量度量标准来考虑设计,设计应注意对概念错误的评审,而避免过早注意细节,7,.,数据,字典,数据,流图,E-R,图,状态变迁图,加,工,规,约,控制规约,数,据,对,描,述,象,数 据 设 计,体系结构设计,接口设计,过程设计,2.,从分析模型导出设计模型,分析模型,设计模型,8,.,数据设计:,将分析信息模型转换成数据结构,来自于 实体

4、关系图和数据字典,体系结构设计:,定义软件的主要结构元素、设计模式及应用约束(子系统的交互),接口设计:,描述软件内部、软件和协作系统之间的通信,数据流或控制流的特定行为,构件设计:,结构元素变换为软件过程的描述,来自于处理说明以及状态变换图,软件设计的,4,个活动,9,.,6.2,结构化设计方法,10,.,1.SC,图,(Structure Chart),(,1,),SC,中的组成符号,SD,方法在概要设计中的主要表达工具约定:,用,矩形框,表示,模块,,用,带箭头的连线,表示模块间的,调用关系,。在调用线的两旁,应标出,传入和传出模块的数据流,。,11,.,SD,方法在概要设计中的主要表达

5、工具约定:,编辑学生记录,读学生记录,学生数据,无此学生,学号,不加区分的数据,数据信息,控制信息,12,.,SC,中的四种模块,13,.,在系统结构图中的模块,传入模块,从下属模块取得数据,经过某些处理,再将其传送给上级模块。它传送的数据流叫做逻辑输入数据流。,传出模块,从上级模块获得数据,进行某些处理,再将其传送给下属模块。它传送的数据流叫做逻辑输出数据流。,14,.,变换模块,它从上级模块取得数据,进行特定的处理,转换成其它形式,再传送回上级模块。它加工的数据流叫做变换数据流。,协调模块,对所有下属模块进行协调和管理的模块。,15,.,酒店管理信息系统功能结构图,客人登记,预定登记,客房

6、处理,历史记录,客房查询,预定查询,餐桌安排,菜单作业,营业结帐,汇总打印,各类查询,初始设置,客帐处理,退房处理,夜审处理,客帐查询,报表打印,HIMS,客房管理子系统,收银管理子系统,餐饮管理子系统,16,.,大型零售商场管理信息系统功能结构图,TM M I S,系统维护,POS,系统,零售实时系统,商品进货管理,商品批发管理,商品库存管理,商品及商品帐管理,顾客管理,连锁店管理,财务管理,人事工资管理,计划统计管理,经理查询,17,.,2.SC,图中的模块调用(,1),简单调用(,Page89,),A,C,B,X,,,Y,Z,Z,A,B,C,入,出,_,1,2,X,,,Y,Z,Z,1,2

7、18,.,(,2,)选择调用,A,C,B,D,A,根据内,部判断决定是否调用,B,A,按另一判定结果选择调用,C,或,D,19,.,(3)SC,中的循环调用,A,B,C,A,根据内在的循环重,复调用,B,、,C,等模块,20,.,2.,数据流图的类型与结构化设计方法(,SD,),面向数据流设计方法的基本概念,SD,以数据流图为基础,它定义了把,DFD,变换成,软件结构,的不同,映射,方法,映射,DFD,(问题结构),软件系统的结构 (程序结构),21,.,系统结构特征可归纳为两种典型形式:,变换型结构,事务型结构,数据流图可分为两种类型:,变换型数据流,事务型数据流,(,1,)数据流图的类型

8、22,.,变换,中心,输入,输出,变换型,结构,事务,中心,接受,路径,动,作,路,径,基本模型,特征,事务型结构,由输入、变换中心和输出三部分组成,具有在多种事务中选择执行某类事务的能力,23,.,变换流示意图,信息,时间,输入流,输出流,交换流,24,.,变换型,数据流,结构,传入,变换,传出,变换,中心,传入,部分,传出,部分,事务,分析,事务,中心,动作,1,动作,2,动作,3,接受,接受,部分,事务型,数据流,结构,25,.,变换型数据流举例,输入,信息,物理,输入,格式,检查,处理,显示,正确,信息,结果,物理,输出,数据,变换中心,逻辑,输入,逻辑,输出,传入部分,传出部分,特

9、点:具有明确的传入、变换,(,或称主加,工,),和传出界面的,DFD,26,.,变换型系统结构图,变换型数据处理问题的工作过程大致分为三步,即取得数据,变换数据和给出数据。,相应于取得数据、变换数据、给出数据,变换型系统结构图由输入、中心变换和输出等三部分组成。,27,.,事务型系统结构图,它接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。,在事务型系统结构图中,事务中心模块按所接受的事务的类型,选择某一事务处理模块执行。各事务处理模块并列。每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节模块。,28,.,事务型数据流图举例,A,B,E

10、H,O,M,I,D,C,N,L,F,G,29,.,30,.,确定,DFD,中是否含有事务流,T,事务,.,.,.,事务流:,沿多条路径之一触发的数据流,事务中心,动作路径,在一个大系统的,DFD,中,变换流和事务流可能是同时出现的,事务映射方法,31,.,事务映射方法,接收路径,C,路径,B,路径,A,路径,C1,C2,C3,调度,事务控制,32,.,大型系统,DFD,中,变换型和事务型,结构往往共存,:,T,事务中心,传入,变换,传出,33,.,(2),面向数据流设计方法的设计步骤,(Page91),精化,DFD,确定,DFD,类型,把,DFD,映射到系统模块结构设计,出模块结构的上层,基

11、于,DFD,逐步分解高层模块设计,出下层模块,根据模块独立性原理,精化模,块结构,34,.,面向数据流方法的设计过程,精化数据流图,区分事务中心,和数据接收路径,映射成变换结构,区分输入和,输出分支,映射成事务结构,用启发式设计规则精化软件结构,导出接口描述和全程数据结构,详细设计,事务分析,变换分析,复查,事务,变换,流类型,35,.,SD,方法的两种映射过渡方法,变换型,DFD,事务型,DFD,初始,SC,初始,SC,变换分析,事务分析,36,.,初始的,SC,主模块,输入模块,主加工模块,输入模块,事务控制模块,接受模块,动作发送模块,动作,1,模块,动作,2,模块,动作,3,模块,由变

12、换分析产生,由事务分析产生,37,.,变换分析方法由以下四步组成:,重画数据流图;,区分有效,(,逻辑,),输入、有效,(,逻辑,),输出和中心变换部分;,进行一级分解,设计上层模块;,进行二级分解,设计输入、输出和中心变换部分的中、下层模块。,3.,变换分析设计方法,38,.,步骤:,(1),区分传入、变换中心、传出部分,在,DFD,上标明分界线,变换分析设计方法步骤,39,.,确定,DFD,中是否含有变换流,输出,输入,变换,变换流:,具有明显的输入、变换(或加工)、输出分界的数据流图,变换映射方法,40,.,B,C,A,D,E,Q,P,R,W,U,V,a,b,c,e,d,r,p,u,w,

13、v,变换中心,传入部分,传出部分,41,.,变换分析设计方法步骤,(2),第一级分解,(,建立初始,SC,框架,),设计顶层和第一层模块,42,.,变换映射方法,输出,输入,变换,控制模块,输入处理模块,输出处理模块,主要处理模块,43,.,第一级分解的方法,M,C,M,T,M,A,M,E,44,.,第一级分解后的,SC,M,C,M,T,M,A,M,E,第一层,顶层,c,e,c,e,u,w,u,w,传入模块,传出模块,中心变,换模块,45,.,第一级分解后的,SC,(,另一种画法,),M,C,M,A1,c,e,u,w,c,p,Q,P,R,e,p,r,r,w,u,w,传入分,支模块,中心加工分支

14、模块,传出分,支模块,M,A2,M,E1,M,E2,46,.,变换分析设计方法步骤,(3),第二级分解,(,分解,SC,各分支,),自顶向下分解,设计出每个分支的中、下层模块,47,.,传入分支的分解,(1),M,A,C,B,A,b,a,c,E,D,d,e,c,e,48,.,传入分支的分解,(2),M,A,Get,C,b,a,c,Read,D,d,e,c,e,B,to,C,b,c,d,e,a,b,Get,E,Get,B,D,to,E,A,to,B,Read,D,49,.,传出分支的分解,M,E,W,Write,V,u,u,w,u,v,v,v,Put,U,U to V,M,E,U,Write,W

15、w,w,u,w,u,V,(1),(2),50,.,中心加工分支的分解,M,T,P,Q,R,e,c,p,r,u,w,p,r,51,.,52,.,53,.,54,.,评定,输出,配置信息,显示格式化,产生警告信号,读,传感器,拨打,电话,传感器状态,传感器,ID,类型,位置,传感器信息,警告类型,警告数据,电话号,配置数据,电话号信号,传感器,ID,类型,位置,SafeHome,系统的,监控传感器精化,DFD,(第二层),变换映射方法的,例子,55,.,监控传感器精化,DFD,第三层向软件模块结构的映射,变换映射方法,例子,配置信息,传感器,状态,传感器,ID,设置,读,传感器,获得回应信息,证

16、实警告条件,选择,电话号,连接,电话网,设置,产生拨号脉冲,格式化,显示,产生,显示,产生警告信号,监控,传感器执行,传感器,输入控制,警告,输出控制,警告,条件控制,传感器,ID,类型位置,格式化,ID,类型位置,警告数据,警告类型,传感器,信息,电话号音,语音读,电话号,电话号,号码表,警告条件码,传感器,ID,时间信息,一级因子化,56,.,监控,传感器执行,传感器,输入控制,警告,输出控制,警告,条件控制,获得,回应信息,读,传感器,证实,警告条件,选择,电话号,格式化,显示,产生,警告信号,连接电话网设置,产生,显示,产生,拨号脉冲,二级因子化,变换映射方法,例子,57,.,在选择模

17、块设计的,次序,时,必须对一个模块的,全部直接下属模块,都设计完成,之后,才,能转向另,一个模块,的下层模,块的设计。,58,.,在设计下层模块时,应考虑模块的,耦合,和,内聚,问题,以提高初始结构图的质量。,使用“黑箱”技术,:,在设计当前模块时,,先把这个模块的所有下层模块定义成,“黑箱”,在设计中利用它们时,暂时不考虑其内部结构和实现。在这一步定义好的“黑箱”,在下一步就可以对它们进行设计和加工。这样,又会导致更多的“黑箱”。最后,全部“黑箱”的内容和结构应完全被确定。,59,.,在模块划分时,一个模块的直接下属模块一般在,5,个,左右。如果直接下属模块超过,10,个,可设立中间层次。,

18、如果出现了以下情况,就停止模块的功能分解:,当模块不能再细分为明显的子任务时;,当分解成用户提供的模块或程序库的子程序时;,当模块的界面是输入输出设备传送的信息时;,当模块不宜再分解得过小时。,60,.,任何情况下都可使用变换分析方法设计软件结构,但如数据流具有明显的事务特点时,(,有一个明显的事务中心,),,以采用事务分析方法为宜。,4.,事务分析设计方法,61,.,事务分析,在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能。这种数据流就叫做事务。,与变换分析一样,事务分析也是从分析数据流图开始,自顶向下,逐步分解,建立系统结构图。,62,.,

19、63,.,事务分析过程,识别事务源,利用数据流图和数据词典,从问题定义和需求分析的结果中,找出各种需要处理的事务。通常,事务来自物理输入装置。有时,设计人员还必须区别系统的输入、中心加工和输出中产生的事务。,64,.,规定适当的事务型结构,在确定了该数据流图具有事务型特征之后,根据模块划分理论,建立适当的事务型结构。,识别各种事务和它们定义的操作。,从问题定义和需求分析中找出的事务及其操作所必需的全部信息,对于系统内部产生的事务,必须仔细地定义它们的操作,。,65,.,注意利用公用模块,在事务分析的过程中,如果不同事务的一些中间模块可由具有类似的语法和语义的若干个低层模块组成,则可以把这些低层

20、模块构造成公用模块。,对每一事务,或对联系密切的一组事务,建立一个事务处理模块,如果发现在系统中有类似的事务,可以把它们组成一个事务处理模块。,66,.,对事务处理模块规定它们全部的下层操作模块,对操作模块规定它们的全部细节模块,变换分析是软件系统结构设计的主要方法。,一般,一个大型的软件系统是变换型结构和事务型结构的混合结构。所以,我们通常利用以变换分析为主,事务分析为辅的方式进行软件结构设计。,67,.,事务分析设计方法步骤:,(1),在,DFD,上确定事务中心、接收部分和发送部分。,(2),画出,SC,框架,把,DFD,上的三部分分别映射为事务,控制模块、接收模块和动作发送模块。,(3)

21、分解细化接收分支和发送分支,完成初始,SC,。,68,.,事务流设计举例,I,M,L,N,A,B,C,D,F,E,G,事务中心,69,.,事务流设计举例,取,A,总控,A,L,M,N,G,D,B,C,F,E,(主模块),事务加工模块,70,.,动作分支的典型结构,P,T,2,T,1,T,i,A,2,D,2,A,1,D,1,A,3,A,j,D,k,事务层,操作层,细节层,处理层,主模块,操作,模块,细节,模块,事务加工,模块,71,.,事务流设计举例,取,A,总控,A,L,M,N,G,D,B,C,F,E,动作,1,动作,n,.,细节模块,1,细节模块,2,.,(操作模块),(细节模块),72,

22、事务型数据流图举例,I,M,L,N,O,A,B,C,D,F,E,G,H,73,.,事务流设计举例,(,另一种画法,),输入,A,XX,系统,事务中心,A,L,M,A,G,D,B,C,F,E,输出,E,、,F,、,G,E,、,F,、,G,E,、,F,、,G,输出,H,O,E,、,F,、,G,H,H,N,操作层,细节层,操作,1,操作,2,操作,3,操作,4,细节,1,细节,2,细节,3,细节,4,74,.,事务映射方法,例子,SafeHome,系统的,用交互子系统,DFD,(第一层),控制面板,传感器,用户,交互,子系统,控制面板,显示,警告,电话线,用户命令,和数据,传感器,状态,显示信息

23、警告类型,电话号信号,配置,系统,监控,传感器,处理,口令,激活或失效,系统,显示,信息和,状态,传感器信息,配置信息,正确的,ID,信息,配置数据,配置数据,配置请求,启动停止,口令,激活,/,失效信息,75,.,事务映射方法,例子,用交互子系统,DFD,(第二层),读用户命令,请求命令处理,读系统数据,建立配置文件,激活或失效,系统,读,口令,用文件比较,口令,产生,无效的,信息,显示,信息和状态,配置信息,用户命令,命令类型,启动停止,A/D,信息,配置数据,配置,系统参数,和数据,配置数据,口令,输入口令,4,位数字,无效的,口令,有效口令,配置数据,显示信息,“,再试,”,提示,呈

24、现典型的变换流形式,76,.,用户交互,执行,事务映射方法,例子,用交互子系统,DFD,第二层向软件模块结构的映射,读,用户命令,请求用户命令处理,系统配置,控制,激活,/,失效,系统,口令处理,控制,读,系统数据,建立,配置文件,显示信息,和状态,读口令,用文件比较口令,口令输出,控制,产生,无效信息,一级因子化,因子化并精化,77,.,3,4,1,2,6,7,5,8,10,9,11,变换中心,传,入,传,出,事务型,(3),混合流设计举例,78,.,混合流设计举例,T,事务,中心,传入,变换,传出,接收部分,发送,部,分,79,.,AB,T,1,变换中心,传入,传出,T,2,T,3,a,b

25、b,1,b,2,b,3,c,1,c,2,c,3,d,e,g,f,j,m,事务流子系统,BC,CD,DE,EH,HK,FJ,KL,LM,h,混合流设计举例,K,80,.,81,.,5.,结构设计的优化规则,将初始,SC,根据模块独立性原则进行精化,对模块进行合并、分解修改、调整,得到高内聚、低耦合模块,得到易于实现、易于测试和易于维护的软件结构,产生设计文档的最终,SC,。,82,.,设计的基本概念和方法,控制层次:(程序结构),在设计阶段,要用到的程序结构划分方式,几个术语:,深度:层次的数量,宽度:每层的跨度,扇入:受控的数量,扇出:可控制的数量,M,a,b,c,d,e,k,l,m,f,g

26、h,i,j,n,o,p,q,r,深度,宽度,扇出,扇入,83,.,设计的基本概念和方法,结构划分:,在设计阶段,要用到的另一程序结构划分方式,水平划分:,将系统功能分为独立的几部分,(,输入、处理、输出,),当系统维护时,问题清晰,互无干扰,。,输入,输出,变换,垂直划分:,上层为控制,中层为分别控制,下层为各独立的处理。当系统的维护时,引发的副作用小。,垂直划分,水平划分,84,.,改进软件结构设计的指导原则,(,软件结构设计的启发式规则,),模块功能的完善化,消除重复功能,将模块的影响限制在模块的控制范围内,深度、宽度、扇出和扇入适中,模块大小适中,模块功能可预测,避免模块的病态连接,应

27、该尽量降低模块接口的复杂性,尽量将相同功能的模块提取为公共模块,分解模块可以减少控制信息传递,合并模块可以减少全局数据的引用,85,.,应该尽量降低模块接口的复杂性,例如:,接口表示复杂是软件发生错误的一个主要原因!,Quad-Root(TBL,,,X),;求一元二次方程的根,TBL,:数组,传送方程的系数,X,:数组,回送求出的根,Quad-Root(A,,,B,,,C,,,root1,,,root2),;,A,,,B,,,C,:方程的系数,root1,,,root2,:求出的两个根,86,.,模块功能应该可以预测,模块功能不可预测:,带有内部状态的模块,则功能不可预测,因为,它的输出可能由

28、于状态的不同,而导致相同的输入有不同的输出。,产生的原因:,不可预测的模块往往是非单一功能成分的组合,或者是内部多分支情况处理。,不可预测功能的模块,不易于理解和维护!,解决方法:,注意高内聚的模块设计,拆分多种情况的功能。但也不要使功能过分局限。,87,.,分解模块可以减少控制信息传递,例如:,控制功能模块,A,功能,(,根据,k,决定执行,C),.,A,子功能,K=1,或,k=0,B,功能,控制功能模块,A,功能,B,功能,C,功能,(,A,子功能),合并,合并模块可以减少全局数据的引用,A,功能,B,功能,例如:,全局数据,修改,修改,分解,A,功能,.,B,功能,数据,K,功能,88,

29、模块功能的完善化,完整的模块应包括三部分:,(1),执行规定功能部分,(2),出错处理部分,(3),需返回给调用者数据时,返回是否正确结束标志。,89,.,消除重复功能,Q1,C,Q2,C,Q1,Q2,C,改进前,Q1,、,Q2,功能相似,X,Y,Q,X,Y,X,Y,重复部分,改进方法,1,:,将,Q1,、,Q2,合并为,Q,不可取,改进方法,2,:,将,Q1,、,Q2,的公共,部分分离出来,90,.,模块的作用域应该在控制域之内,设计好的系统,受判断影响的模块应该从属于做出判断的模块,最好局限在做出判断的那个模块本身或在它的直属下级模块。,M,A,B,C,例如:,G,D,E,F,M,A,

30、B,C,G,D,E,F,如果,A,做出的判断,要影响,G,,就需要加标记到,M,。这样就出现控制耦合。,解决的方法:,A,的判断上移,或,G,下移到,A,的控制域内,91,.,C,H,D,E,G,X,F,将模块的影响限制在模块的控制范围内,A,I,L,J,K,B,模块,C,的控制范围,:C,、,D,、,E,、,F,、,G,、,H,如果模块,C,作出的决策影响了模块,L,,,L,超出了,C,的控制范围,92,.,减少高扇出争取高扇入,高扇出的模块结构举例:,编外,人员,工资,取得,工资,数据,计时,制工,资额,薪金,制工,资额,编外,人员,税款,编外,人员,扣款,常规,扣款,税收,扣款,计算实发

31、工资,避免平铺结构,93,.,增加中间层降低扇出,编外,人员,工资,取得工资数据,计时,制工,资额,薪金,制工,资额,编外,人员,税款,编外,人员,扣款,常规,扣款,税收,扣款,计算实发工资,计时工人实发工资,计薪工人实发工资,编外人员实发工资,94,.,模块过大:可理解程度下降,模块过小:开销大于有效操作,系统接口复杂,模块大小适中,95,.,模块功能可预测,模块看成黑盒子,相同输入产生相同输出,其功能为可预测的。模块带有内部状态其功能可能是不可预测的。难理解、难测试、难维护。,96,.,防止模块功能过分局限,功能单一的模块具有高内聚。,但如任意限制局部数据结构的大小,过分限制控制流中可做的

32、选择或外部接口的模式,模块功能就过分局限,使用范围过分狭窄,缺乏灵活性和可扩充性。,97,.,避免模块的病态连接,防止指向模块中间的分支或引用(针对内容耦合),根据设计约束和可移植性需求对软件打包,打包指用来为特定环境组装软件的技术,98,.,6.3,详细设计,(,过程设计、模块设计,),1.,目的与任务,目的:为软件结构图中的每一个模块确定采用的算法和块内数据结构,用某种选定的表达工具给出清晰的描述。,99,.,目的与任务,主要任务:,编写详细设计说明书,为此,设计人员应:,(1),确定每个模块的算法,用工具表达算法的过程,写 出模块的详细过程性描述。,(2),确定每一模块的数据结构。,(3

33、),确定模块接口细节。,详细设计是编码的先导,100,.,2.,结构化程序设计,(SP),方法,传统的设计技术和旧观念,:,强调设计的随意性,具有浓厚的个人色彩,追求程序效率和个人设计技巧,新的设计思想和风格,:,清晰第一,使用标准的、规范的控制结构,逐步细化,101,.,3.,常用的表达工具,程序流程图,盒图,(N-S,图,),问题分析图,(PAD),伪代码和过程设计语言,(PDL),判定表,102,.,程序流程图,程序流程图也称为程序框图,程序流程图使用,五种基本控制结构,是,:,103,.,104,.,示例,105,.,程序流程图的标准符号,106,.,循环的标准符号 注解的使用,107

34、多出口判断,108,.,盒图,(N-S,图,),用方框图代替传统的流程图,五种基本控制结构由五种图形构件表示。,(1),顺序型,A,B,C,109,.,(2),选择型,(,If then else,),If then else If then,A,B,F,条件,T,A,F,T,条件,Else-,部分,Then-,部分,Then-,部分,110,.,(3),多分支选择型,(CASE,型,),A1,值,1,A2,An,.,.,条件,值,2,值,n,111,.,(4)WHILE,重复型,(5)UNTIL,重复型,S,(循环体),DO-WHILE P,S,(循环体),REPEAT UNTIL P

35、先测试循环,),(,后测试循环,),(循环条件),112,.,示例,113,.,N,-,S,图的嵌套定义形式,114,.,问题分析图,(PAD),(Problem Analysis Diagram),基本控制结构,:,(1),顺序结构,(2),选择结构,A,B,C,A,B,T,F,条件,115,.,(3),重复结构,WHILE,C,S,UNTIL,C,S,(,先测试循环,),(,后测试循环,),等价的,PASCAL,语言:,REPEAT C UNTIL S,等价的,PASCAL,语言:,WHILE C DO S,116,.,(4),多分支选择型,(CASE,型,),A1,值,1,值,2,

36、值,n,A2,An,.,.,.,.,.,.,条件,117,.,问题分析图,(PAD),118,.,PAD,描述的示例,119,.,对应于增量型循环结构,for,i,:=,n,1 to,n,2 step,n,3 do,在,PAD,中有相应的循环控制结构,PAD,的扩充控制结构,120,.,伪代码和,PDL,语言,121,.,PDL(Program Design Language),PDL,是一种用于描述功能模块的,算法设计,和,加工细节,的语言。称为设计程序用语言。它是一种伪码。,伪码的语法规则分为“外语法”和“内语法”。,PDL,具有严格的,关键字外语法,,用于定义控制结构和数据结构,同时它的

37、表示实际操作和条件的内语法,可使用自然语言的词汇。,122,.,示例,:,拼词检查程序,PROCEDURE,spellcheck,IS BEGIN,split document into single words,lood up words in dictionary,display words which are not in dictionary,create a new dictionary,END,spellcheck,123,.,PDL,的特点,提供全部结构化控制结构、数据说明和模块特征。能对,PDL,正文进行结构分割,使之变得易于理解。,为了区别关键字,规定关键字一律大写,其它单

38、词一律小写。或者规定关键字加下划线,或者规定它们为黑体字。,124,.,内语法使用自然语言来描述处理特性。内语法比较灵活,只要写清楚就可以,不必考虑语法错,以利于人们可把主要精力放在描述算法的逻辑上。,有数据说明机制,包括简单的,(,如标量和数组,),与复杂的,(,如链表和层次结构,),的数据结构。,有子程序定义与调用机制,用以表达各种方式的接口说明。,125,.,使用,PDL,语言,逐步求精:,PROCEDURE,spellcheck,BEGIN-*,split document into single words,LOOP,get next word,add word to word li

39、st in sortorder,EXIT WHEN,all words processed,END LOOP,-*,look up words in dictionary,LOOP,get word from word list,126,.,IF,word not in dictionary,THEN -*,display words not in dictionary,display word,prompt on user terminal,IF,user response says word OK,THEN,add word to good word list,ELSE,add word

40、to bad word list,ENDIF ENDIF EXIT WHEN,all words processed,END LOOP,127,.,-*,create a new words dictionary,dictionary,:,merge dictionary and good word list,END,spellcheck,128,.,判定表,判定表用于表示程序的,静态逻辑,在判定表中的条件部分给出所有的,两分支判断,的列表,动作部分给出,相应的处理,要求将程序流程图中的多分支判断都改成两分支判断,129,.,无多分支判断结构,130,.,131,.,1,2,3,4,5,教授,

41、T,F,F,F,副教授,F,T,F,F,讲师,F,F,T,F,助教,F,F,F,T,讲座,T,F,F,F,F,50,30,25,20,15,例:某校制定了教师的讲课课时津贴标准。对于各种性质的讲座,无论教师是什么职称,每课时津贴费一律是,50,元;而对于一般的授课,则根据教师的职称来决定每课时津贴费:教授,30,元,副教授,25,元,讲师,20,元,助教,15,元。,132,.,建立判定表的步骤,列出与一个具体过程,(,或模块,),有关的所有处理。,列出过程执行期间的所有条件,(,或所有判断,),。,将特定条件取值组合与特定的处理相匹配,消去不可能发生的条件取值组合。,将右部每一纵列规定为一个

42、处理规则,即对于某一条件取值组合将有什么动作。,133,.,判定树,教师课时津贴判定树,134,.,4.,过程设计示例,135,.,层次图和,HIPO,图,IBM,公司发明的,HIPO,图:,层次图,+,输入,/,处理,/,输出图,(,H,图,)+(,IPO,图,),(,H,ierachy,I,nput,P,rocess,O,utput),136,.,层次图,(H,图,),表示软件的层次结构,正文加工系统,输入,输出,编辑,加标题,存储,检索,编目录,添加,删除,插入,修改,合并,列表,137,.,带编号的层次图,(H,图,),正文加工系统,输入,1.0,输出,2.0,编辑,3.0,加标题,4

43、0,存储,5.0,检索,6.0,编目录,7.0,添加,3.1,删除,3.2,插入,3.3,修改,3.4,合并,3.5,列表,3.6,138,.,HIPO,图,H,图中每一方框,(,模块,),均有一张,IPO,图对应。,139,.,传统的,IPO,图举例,输入,处理,输出,读口令请求,口令文件,1,取得输入,2,口令确认,3,请求确认,请求记录,权限文件,4,更新处理,权限记录,状态报告,响应,命令监控器,(1.0),的,IPO,图,140,.,改进的,IPO,图格式,IPO,图,系统:,模块:,编号:,作者:,日期,:,被调用:,调用:,输出:,输入:,处理:,局部数据元素:,注释:,命令监

44、控器,输入,1.0,方华,1999-3-2,命令监控器主控菜单模块,命令监控器主控模块,取得输入,、,口令确认、请求确认、口令更新处理。,输出,正确性判断标志。,接收键盘,口令,口令正确性判断标志,口令、标志,请求记录,权限记录,141,.,改进的,IPO,图格式,HIPO,图,系统:,模块:,编号:,作者:,日期,:,被调用:,调用:,输出:,输入:,处理:,局部数据元素:,注释:,人事档案管理系统,打印,2.1,方华,1999-3-2,人事档案管理模块,“,打印全体人员”模块,“,打印部分人员”模块,“,打印个人:模块,将全体、按部门、个人的档案数据加工成要求的表格形式,进行输出、现示,人

45、事档案数据和打印选择,打印全体人员、部分人员、个人的档案,142,.,HIPO,图续,人事管理系统,2.1,打印,2.1.1,“,打印部分人员”,2.1.1.2,“,打印全体人员”,2.1.1.1,“,打印个人:模块”,2.1.1.3,143,.,5.4,面向数据结构的设计方法,144,.,1.Jackson,表示法,Jackson,图表示方法,145,.,Jackson,图的优点:,(,1,),Jackson,图不仅便于表示层次结构,而且也有利于对结构自顶向下分解;,(,2,),Jackson,图形象直观,可读性好;,(,3,),Jackson,图不仅能表示数据结构,也能表示程序结构(因为程

46、序结构也可以由上述,3,种基本结构组成)。,Jackson,图的缺点:,在选择结构和重复结构中,选择条件或循环结束条件不能直接在,Jackson,图中表示出来。这样就影响了图形的表达能力,也不利于直接把图翻译成程序。,146,.,改进的,Jackson,图,147,.,例:高考后将考生的基本情况文件(简称考生基本情况文件)和考生高考成绩文件(简称考分文件)合并成一个新文件(简称考生新文件)。考生基本情况文件和考分文件都是由考生记录组成的。为简便起见,考生基本情况文件中的考生记录的内容包括:准考证号、姓名、通讯地址。考分文件中的考生记录的内容包括:准考证号和各门考分。合并后的考生新文件自然也是由

47、考生记录组成,内容包括:准考证号、姓名、通讯地址和各门考分。,Jackson,程序设计方法由五个步骤组成:,2.Jackson,程序设计方法示例,148,.,第一步 数据结构表示,对要求解的问题进行分析,确定输入数据和输出数据的逻辑结构,并用,Jackson,图描述这些数据结构。,149,.,第二步 找出输入数据结构和输出数据结构的对应关系,找出输入数据结构和输出数据结构中有对应关系的数据单元,即有直接因果关系、在程序中可以同时处理的数据单元。需要注意的是,对于重复的数据单元,必须是重复的次序、次数都相同才有可能有对应关系。,150,.,第三步 确定程序结构图,根据下述三规则,由,Jackso

48、n,图导出相应的程序结构图:,(,1,)为每对有对应关系的数据单元,按照它们在数据结构图中所处的层次,在程序结构图中的相应层次画一个处理框。如果这对数据单元在输入数据结构图和输出数据结构图中所处的层次不同,那么应以它们在输入数据结构图和输出数据结构图中层次较低的那个层次作为它们在程序结构图中的处理框所处的层次;,(,2,)对于输入数据结构中剩余的数据单元,根据它们所处的层次,在程序结构图的相应层次为每个数据单元画上相应的处理框;,(,3,)对于输出数据结构中剩余的数据单元,根据它们所处的层次,在程序结构图的相应层次为每个数据单元画上相应的处理框。,151,.,实际上,这一步是一个综合的过程:每

49、对有对应关系的数据单元合画一个处理框,没有对应关系的数据单元则各画一个处理框。,152,.,第四步 列出并分配所有操作和条件,列出所有操作和条件(包括分支条件和循环结束条件),并把它们分配到程序结构图的适当位置。,操作:(,1,)停止;,(,2,)打开两个输入文件;,(,3,)建立输出文件。,(,4,)从输入文件中各读一条记录。,(,5,)生成一条新记录。,(,6,)将新记录写入输出文件。,(,7,)关闭全部文件。,条件:,I,(,1,)文件结束。,153,.,把操作和条件分配到程序结构图的适当位置,154,.,第五步 用伪码表示程序,Jackson,方法中使用的伪码与,Jackson,图是完

50、全对应的。针对三种基本程序结构,有相对应的,Jackson,伪码,。,(,1,)顺序结构,A seq,B,C,D,A end,155,.,(,2,)选择结构,(,3,)重复结构,A select condition1,B,A or condition2,C,A or condition3,D,A end,A iter until,(或,while,),condition,B,A end,156,.,用,Jackson,伪码描述的程序:,产生新文件,seq,打开两个输入文件,从输入文件中各读一条记录,分析考生记录,iter until,文件结束,处理考生记录,seq,产生准考证号,产生姓名,产生

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服