版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章结构化设计方法在'编写"程序时并没有设计软件。软件设计包括槪要设计和详细设计,编码是将详细设计中的过程描述转换成用程序设讣语言来描述。4.2举出3个数据抽象的例子和可以用来操作这些数据抽象的过程抽象的一个例子。抽仪是忽略事物的细节•获取其木质特征的过程°抽彖是一种重要的机制.使人们能够对复朵系统能够很好地理解、交流和推理C在软件领域,可以将抽象分为两类.即数据抽象和过程抽歓。在传统的结构化程序设计语言中.就提供了这两种抽象机制C(1)数据抽歓:在所有的结构化程序设计语言中•用户都可以自定义抽彖数据类型。如定义抽象数据类型(2)过程抽象:过程抽象也称为是基干方法的抽象。过程抽彖使我们关心处理过程的名字和它能做什么.而在血向对念的程序设计语言中.抽铁与封装的概念密切相关,数据抽歛和相关的过程抽空被封装在类中.不同类中相似的过程抽彖(方法)又可以进一步抽轨放在接口中。封装是保证爭物有明确内外界限的机制。内部是受保护的.与外部事物相隔离。4.3应在什么时候把模块设计实现为单块集成软件?如何实现?性能是实现单块集成软件的唯一理由吗?由于模块之间的调用降低了系统的运行速度,可能会导致满足不了用户的性能要求,这时就需要将软件设计为m块集成软件。但是在设计时.最好按照模块化的原则进行设讣.只是没有賦式的模块定义而已。这样的程序也具有模块化的优点。性能是实现做块集成软件的唯一理由。4.4是否存在一种情况:复杂问题霸要较少的工作去解决?这样的情况对模块化观点有什么影响?通过对复杂的问题进行合理分解,分解为若T•个相对简单及独立的子问题,就可以用较少的工作去解决。这种悄况能够较好地支持模块化的观点.每个子问题用单独的模块去解决•模块之间应该是岛内聚.低辎合的.这样才能减少匸作址,否则.虽然每个模块的工作简魏了,但模块之间的联系很复杂,也増加了问题解决的难度和工作址。4.5使用数据流程图和处理叙述,描述一个具有明显事务流特性的计算机系统。使用本章所介绍的技术定义数据流的边界,并将DFD映射成软件结构。4.6一些设计人员认为所有的数据流都可以当做是变换流。试讨论当事务流被当成变换流时,会对导出的软件体系结构有什么影响。请使用例子来说明要点。十爭务流被X成变换流时.首先按变换流导出软件结构,之后再将位于中间的••变换模块”替换成爭物中心。所不同的是,其输入数据不是來自下属的输入模块.而是从最顶层的主控模块传入的.输出数据也是传给主控模块.之后再由主控模块传给输出模块。这样会増加模块层次及数据的传送次数C例如.对于下面的爭务型数据流.如果按照事务型数据流进行处理,得到的初始模块结构如右图所示。如果按变换型处理,得到的初始结构图如下图所示。爭务型数据流按事务型得到的软件结构初始结构图再对中间部分进一步分解,得到下而的结构图。協入模块協入模块協出模块事务中心如果想缩短数据传递的路径•就需要对上图进行改进.可以将'调度、'模块合到••爭务中心"模块中。对干应用系统來说,持久的数据源是抬应用系统关闭再重新启动后,关闭之前的数据依然存在。这些数据一般要存储在文件或数据库中。4.8用面向数据流的方法设计第3章习题3.4所描述的银行存款业务的软件结构,并使用改进方法对模块(1)对第3总习題3.4给出的数据流图进行將化•确定其边界.如下图所示。(2)对上图按事务型数据流进行处理,完成第一级分解,得到顶层和一层模块结构图。第一级分解后的结构图(3)完成第二级分解。对上图所示的••输入数据S“输出数据'和•调度曝块进行分解,得到未经精化的输入结构、输出结构和爭务结构c未经精化的输入结构未经精化的输出结构未经精化的爭务结构将上面的三部分合在一起.得到初始的软件结构.如下图所示。初始软件结构图(4)对软件结构进行精化。1)由于涮度模块下只有两种爭务•因此.可以将调度模块合并到上级模块中.如图所示。将调度模块合并到上级模块后的软件结构2)录密码“模块的作用范困不在其控制范圉之内(即••输入密码“模块不在••记录密码腋块的控制范困之内).需对其进行调整.如图所示。调整后的模块结构图4.9将大的软件划分成模块有什么好处?是不是模块划分得越小越好?划分模块的依据是什么?将大的软件划分成独立命名且可独立访问的模块.不同的模块通常具有不同的功能或职责。这种方法有利于将复朵的问题简单化,是分而治之策略的具体表现C尽管模块分解可以简化要解决的问题.但模块分解并不是越小越好。、”I模块数目増加时,每个模块的规模将减小.开发单个模块的成木确实减少G但是,随肴模块数目増加•模块之间关系的复杂程度也会増加•设计模块间接口所需要的工作fit也将增加。划分模块的依据是,模块只具有取一的功能且与其他模块没有太女的联系。自顶向下、逐步细化的设计过程,主要包括两个方面:一是将复杂问题的解法分解和细化成由若干个模块组成的层次结构:二是将每个模块的功能逐步分解细化为一系列的处理。在处理较大的复杂任务时,常采取'‘模块化“的方法•即在程序设计时不是将全部内容都放在同一个模块中.而是分成若干个模块•每个模块实现一个功能。划分模块的过程可以使用自顶向下的方法实现。模块分解完成后,下一步的任务就是将每个模块的功能逐步分解细化为一系列的处理。这个过程是对问題求解.并由抽彖逐步具体化的过程。使用这种方法便干检査程序的正确性。在每一步细化之前,应仔细检査十前的设il•是否正确。如果每一步细化、设计都没有问題.则整个程序的算法是正确的.由于每一次向下细化都不太复杂•因此容易保证整个算法的正确性°4.11结构化程序设计禁止使用妙⑺语句吗?如果程序中使用了go®语句,是否就可以断定它是非结构化结构化程序设计并不禁止使用gog语句。如果程序中使用rgoto语句•并不能断定它是非结构化的。对于给定的算法.如果符合以下三条原则.(1)使用语言中的顺序、选择.选用的控制结构只(3)程序语句组成容易识别的块(Block)就可以判断它是结构化的。重复等有限的基木控制结构表示程序逻辑。准许有一个入口和一个出口。每块只有一个入口和一个出口。4.14图4・5所示的流程图完成的功能是使用二分査找方法在hibh数组中找出值为item的数是否存在•(1)判断此算法是否杲结构化的,说明理由.图4-50r分査找算法的流程图(1)不是结构化的.最上面的循环有两个出口.最下面的分支有三个入口。(FINISH-START)>1&&TABLE(I)!=ITEMTABLE(I)<ITEM—卡*一—START=I+1FINISH=I-1"\<TABLE(START)==ITEMIITABL玖FINISH)=ITEMIITABLE(I)==ITEM丁或者(FINISH-START)>1&&FLAG==0-----TABLE⑴=ITEMTABLE(I)<ITEMTSTART=I+1FINISH=I-1或者(FINISH-START)>=0&&FLAG==0TABLE⑴=ITEMTABLE(I)<ITEMTSTART=I+1FINISH=I-14.15使用自顶向下、逐步细化方法设计算法,完成下列任务:产生一个10x10的二维随机整数方阵,先求出每一行的最大值和每一列的最小值;然后求10个最大值中的最小者,10个最小值中的最大者:最后求这两个数之差的平方.(1)首先写出下面的程序框架: 1求A中每一行的最大值今数组B: 2求A中每一列的最小值数组C: 3求数组B中的最小值今minOfB; 4 5/11)⑵对后而加标记的部分进行细化严建立10x10的二维随机整数数组A*/ for(i=0:iv=9:i++)tor(j=0:jv=9:j++)产生随机整数9A[i.j]; 2求数组A第i行的最大值今B[i]; 2.1}八求A中每一列的最小值夕数组C*/ 3for(j=0:jv=9:j++){求数组A第j列的最小值9C[j]; }厂求数组B中的最小值->minOfB*/ 4for(i=l:iv=9:i++){minOffi=B[i];}严求数组C中的最大值->maxOfC*/ 5for(i=l:iv=9;i++){if(maxOfC>C[i]){}}}4.16设计算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老年康复护理中的宠物疗法
- 2026年天津高考物理二轮复习讲练测题型04 运用运动的合成与分解理论解决常见实际问题(题型专练)(原卷版)
- 2026年质量控制标准变更的确认函(7篇)
- 房地产开发项目进度管理报告
- 2024-2025学年度燕京理工学院《形势与政策》期末考试模拟试题含答案详解【典型题】
- 2024-2025学年度注册公用设备工程师过关检测试卷及参考答案详解(基础题)
- 2026年保安员资格证考试卷及答案(共八套)
- 2024-2025学年度园林绿化作业人员考前冲刺练习及完整答案详解【典优】
- 2024-2025学年公务员考试《常识》试题预测试卷(全优)附答案详解
- 2024-2025学年度执业药师高分题库附完整答案详解(必刷)
- 冶炼车间岗前安全培训课件
- 现代监狱智能信息系统设计方案
- 高三入住酒店安全培训课件
- 《新媒体营销》项目4 新媒体内容创作
- 2025年本科院校纪检监察室招聘笔试专项练习含答案
- 2024年江苏航运语数英真题(含答案)
- 2025年江西省赣州市社区工作者(专职网格员)招聘考试历年参考题库含答案详解(5套)
- 2025年甘肃省定西市中考生物考试真题带答案
- 2025至2030年中国有害生物防制行业发展前景预测及投资方向研究报告
- 2025至2030工程招标代理行业项目调研及市场前景预测评估报告
- 2025年泰州牧校单招试题及答案
评论
0/150
提交评论