已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章结构化设计方法4.1“编写程序”时设计软件吗? 软件的设计和代码有什么区别吗?在“编写程序”时,没有设计软件。 软件设计包括概要设计和详细设计,编码将详细设计的过程描述转换成编程语言进行描述。4 .两个数据抽象的示例,以及可以处理这些数据抽象的过程抽象的示例。抽象是忽视事物的细节,得到本质特征的过程。 抽象化是一个重要的机制,使人们能够更好地理解、交流和推理复杂的系统。 在软件领域,抽象可以分为数据抽象和过程抽象两类。这两种抽象机制以传统的结构化编程语言提供。(1)数据抽象化:在所有的结构化编程语言中,用户可以定制抽象数据类型。 定义抽象数据类型Student (学生)、Course (课程)和ClassScoreList (类成绩表)。(2)程序抽象:程序抽象也称为方法基础的抽象。 过程的抽象化不需要在意过程的名称和它能做什么,并知道如何完成实现的细节。 求出全类的平均值average(ClassScoreList )后,成为进程的抽象化。在面向对象的编程语言中,抽象与包的概念密切相关,与数据抽象相关联的过程抽象被封装到类中,在不同类中类似的过程抽象(方法)进一步被抽象化并被放置在接口中。 包装是保证事物有明确的内外界限的机制。 内部受到保护,与外部的东西隔离开来。4.3何时应将模块设计作为单个集成软件实现? 如何实现? 性能是实现单个集成软件的唯一原因吗?由于模块之间的调用可能会降低系统运行速度,从而无法满足用户的性能要求,因此应将软件设计为单个集成软件。 但是,在设计时,最好按照模块化原则进行设计,只是没有明确的模块定义。 这种程序也有模块化的优点。 性能是实现单个集成软件的唯一原因。4.4有没有需要较少的工作来解决复杂的问题? 这种情况对模块化的观点有什么影响?通过合理分解复杂问题,分解成一些比较简单独立的子问题,能够以较少的工作来解决。 这种情况可以很好地支持模块化的观点,个别的子问题可以分别用不同的模块来解决,模块间只有高结合性和低结合性才能减少功耗。 否则,各个模块的工作很简单,但模块间的联系很复杂,解决问题的难度和工作量也增加了。4.5用数据流程图和处理描述来描述具有明显事务流特性的计算机系统。 使用本章介绍的技术定义数据流的边界,并将DFD映射到软件结构。略。4.6一些设计者认为所有数据流都可以视为转换流。 让我们看一下当事务流被视为转换流时,对导出的软件体系结构的影响。 请用例子说明要点。如果事务流被视为转换流,则首先根据转换流导出软件结构,然后将中央的“转换模块”替换为事物的中心。 不同的是,输入数据从顶层主模块而不是下属输入模块传递,输出数据也传递给主模块,然后从主模块传递给输出模块。 这将增加模块层次和数据的传输次数。例如,对于下一个事务型数据流,当根据事务型数据流进行处理时,获得的初始模块结构如右图所示。以事务型数据流事务型获得的软件结构;用变换型处理,得到的初始结构图如下图所示。主模块输出模块输入模块转换模块初始结构图进一步分解中间部分,可以得到如下结构图。为了缩短数据传输的路径,需要改进上图。 可以将调度模块合并到事务中心模块中。4.7什么是持久数据源?在应用程序系统中,永久性数据源意味着即使在应用程序系统关闭并重新启动之后,仍保留关闭之前的数据。 这些数据通常存储在文件或数据库中。4.8以流为导向的方法设计第3章练习题3.4所述的银行存款业务的软件结构,采用改进方法精练模块结构。(1)精制第3章练习题3.4中给出的流程图,如下图所示决定其界限。(2)以事务型数据流处理上图,完成一级分解,得到顶层和一层模块结构图。存款业务输入数据日程表输出数据一次分解后结构图(3)完成二次分解。 分解上图所示的“输入数据”、“输出数据”和“调度”的模块,得到不精密的输入结构、输出结构、事务结构。输入数据输入交易输入密码非精密的输入结构输出数据印刷存款证明书打印开户头非精密的输出结构日程表处理存款处理开户记录存款信息记录开户信息记录密码不精简的事务结构结合上述三个部分,获得如下图所示的初始软件配置。存款业务输入数据日程表输出数据输入交易输入密码印刷存款证明书打印开户头处理存款处理开户记录存款信息记录开户信息记录密码初始软件结构图(4)精练软件结构。1 )由于调度模块下面只有两种事务,所以可以如图所示将调度模块组装到上级模块中。存款业务输入数据输出数据输入交易输入密码印刷存款证明书打印开户头处理存款处理开户记录存款信息记录开户信息记录密码将调度模块集成到上层模块中的软件结构2 )如果“记录密码”模块的角色范围不在控制范围内(也就是说,“输入密码”模块不在“记录密码”模块的控制范围内),则必须如图所示进行调整。存款业务输入交易输出数据输入密码印刷存款证明书打印开户头处理存款处理开户记录存款信息记录开户信息记录密码3 )提高模块独立性,调整模块结构; 如下图所示。存款业务输入交易输入密码印刷存款证明书打印开户头处理存款处理开户记录存款信息记录开户信息记录密码调整后模块结构图4.9将大型软件划分为模块的好处是什么? 模块越小越好吗? 分割模块的依据是什么?将大型软件分为独立命名和独立访问的模块。 不同的模块通常具有不同的功能和作用。 这种方法有利于简化复杂问题,是分割解决策略的具体表现。模块分解可以简化需要解决的问题,但模块分解并不越小越好。 随着模块数量的增加,各个模块的规模会减小,开发各个模块的成本也会确实降低,但是随着模块数量的增加,模块之间关系的复杂性也会增加,设计模块间接口所需的工作量也会增加。分割模块的依据是,模块只有单一的功能,与其他模块没有太多联系。4.10什么是“自上而下、逐步细分”?自上而下、逐步精简的设计过程主要包括两个方面:一个是将复杂问题的解决方案分解成由若干模块构成的层次结构,二个是逐步分解各模块的功能并细分为一系列处理。在处理大的复杂任务时,经常采用“模块化”的方法,即在程序设计时,各模块分为几个模块来实现功能,而不是将所有内容放入同一模块中。 分割模块的过程可以用自上而下的方式实现。分解完模块后,下一步是逐步分解每个模块的功能并将其细分为一系列操作。 这个过程是解决问题,抽象地逐步具体化的过程。 此方法有助于检查程序的准确性。 在细化每个步骤之前,必须仔细检查当前设计是否正确。 如果一步一步细致地设计也没有问题的话,程序整体的算法是正确的。 由于每次向下钻取都不复杂,因此很容易确保整个算法的准确性。4.11结构化编程是否禁止使用goto语句? 如果程序使用goto语句,是否可以确定它没有结构化?结构化编程不禁止使用goto语句。 如果程序使用goto语句,则无法确定它们是非结构化的。4.12如何判断给定算法是否结构化?对于给定的算法,如果满足以下3个原则,就可以判断是结构化的。(1)使用语言中的顺序、选择、重复等有限的基本控制结构来表现程序逻辑。(2)选择的控制结构只允许一个入口和一个出口。(3)程序语句构成容易识别的程序块(Block ),每个程序块只有一个入口和出口。4.13关于图4-49所示的流程图,分别用N-S图和PAD试着表示。f.f开始a.a乙组联赛q.q结束t.tf.ft.tp图4图49流程图对应的N-S图如下所示。 对应的PAD如下所示while Pa.auntil! q.q乙组联赛while Pa.a乙组联赛until! q.q4.14图4-50所示流程图的完成的功能是使用二元搜索方法查找表阵列中是否存在item的值。(1)判断该算法是否结构化,说明理由。(2)算法没有结构化时,设计等价的结构化算法,用N-S图表表示。f.ff.ff.ft.tf.ff.ftable(i)item(finish-start)1table(start)=item表(finish )=itemflag=0flag=1i=(start fi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年虚拟现实教育软件公司危机事件应急处理制度
- 合成革废水资源循环利用项目投资计划书
- 2026年能源加工公司销售回款考核激励管理制度
- 十五五规划纲要解读:职业教育产教融合
- 数据要素安全评估:“十五五”流通使用安全保障
- 2025浙江温岭市交通旅游集团限公司面向社会招聘编外工作人员2人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年小升初数学试题图表分析
- 2025年上学期高一生物创造未来能力测评试题
- 人力资源业务专家招聘需求分析报告
- 企业危机预警与应急预案制定
- 机电一体化技术专业职业生涯规划书3800字数
- CJ/T 94-2005饮用净水水质标准
- 水稳层施工工艺流程及质量控制措施
- ICU患者体位管理
- 2025春季学期国开河南电大本科补修课《汉语基础#》一平台无纸化考试(作业练习+我要考试)试题及答案
- 2025-2030年中国铝合金游艇行业市场调研与发展前景预测研究报告
- 小产权房子赠予合同协议
- 《合同法与建筑工程》课件
- 护理意外事件应急预案
- 术中急性大出血应急演练方案
- 公路工程施工监理合同范本
评论
0/150
提交评论