第十二章设计

上传人:工**** 文档编号:592827352 上传时间:2024-09-22 格式:PPT 页数:39 大小:269.50KB
返回 下载 相关 举报
第十二章设计_第1页
第1页 / 共39页
第十二章设计_第2页
第2页 / 共39页
第十二章设计_第3页
第3页 / 共39页
第十二章设计_第4页
第4页 / 共39页
第十二章设计_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《第十二章设计》由会员分享,可在线阅读,更多相关《第十二章设计(39页珍藏版)》请在金锄头文库上搜索。

1、第十二章第十二章 设计设计本章重点本章重点结构化设计方法结构化设计方法面向对象设计方法面向对象设计方法12.1 结构化设计结构化设计l结构化设计即面向数据流的设计。结构化设计即面向数据流的设计。Yourdon和和Constantine等人于等人于1774年提出。年提出。l结构化设计与结构化分析相衔接。结构化设计与结构化分析相衔接。l设计的任务是将分析过程所生成的数据设计的任务是将分析过程所生成的数据流图映射为软件结构。流图映射为软件结构。l数据流图转换为软件结构的方法。数据流图转换为软件结构的方法。变换分析、事务分析。变换分析、事务分析。12.1 结构化设计结构化设计l数据流图转化为程序结构的

2、步骤:数据流图转化为程序结构的步骤:确定数据流图中的信息流类型;确定数据流图中的信息流类型;划定信息流的边界;划定信息流的边界;按照转换原则把数据流映射为程序结构;按照转换原则把数据流映射为程序结构;提取层次控制结构;提取层次控制结构;评审并进一步细化;评审并进一步细化;12.1.1数据流图的类型数据流图的类型l数据流图的类型:数据流图的类型:变换型数据流图、事务型数据流图。变换型数据流图、事务型数据流图。l变换型数据流图:变换型数据流图:线状结构,有明显的逻辑输入和逻辑输出。线状结构,有明显的逻辑输入和逻辑输出。数据流图分为输入、变换和输出三个部分。数据流图分为输入、变换和输出三个部分。12

3、.1.1数据流图的类型数据流图的类型逻辑输入的起点是物理输入;逻辑输入的起点是物理输入;变换中心的输入为逻辑输人,变换中心的输变换中心的输入为逻辑输人,变换中心的输出为逻辑输出;出为逻辑输出;逻辑输出的末端是物理输出;逻辑输出的末端是物理输出;在输人路径、输出路径和变换中心上,数据在输人路径、输出路径和变换中心上,数据的内容和形式都会发生相应的变化。的内容和形式都会发生相应的变化。l变换分析:变换分析:变换型数据流图转换为软件结构的过程。变换型数据流图转换为软件结构的过程。12.1.1数据流图的类型数据流图的类型l变换分析的步骤:变换分析的步骤:确定逻辑输入、逻辑输出和变换加工集合;确定逻辑输

4、入、逻辑输出和变换加工集合;给出顶层模块和第一层模块,建立映射关系;给出顶层模块和第一层模块,建立映射关系;递归分解下层;递归分解下层;12.1.1数据流图的类型数据流图的类型l变换分析得到的程序结构:变换分析得到的程序结构:12.1.1数据流图的类型数据流图的类型l事务型数据流图:事务型数据流图:接收路径、事务中心和发送部分。接收路径、事务中心和发送部分。接收路径至少有一条,发送部分包含若干条接收路径至少有一条,发送部分包含若干条动作路径。动作路径。数据经过事务中心处理得到一个特定的值,数据经过事务中心处理得到一个特定的值,根据该值启动适当的动作路径。根据该值启动适当的动作路径。12.1.1

5、数据流图的类型数据流图的类型l事务分析:事务分析:事务型数据流图映射为软件结构的过程。事务型数据流图映射为软件结构的过程。l事务分析的步骤:事务分析的步骤:确定接收路径、事务中心和动作路径集合;确定接收路径、事务中心和动作路径集合;根据事务中心的功能设计总控主模块;根据事务中心的功能设计总控主模块;确定顶层模块和第一层模块,建立映射关系;确定顶层模块和第一层模块,建立映射关系;递归分解下层。递归分解下层。12.1.1数据流图的类型数据流图的类型l事务分析得到的程序结构:事务分析得到的程序结构:12.1.1数据流图的类型数据流图的类型l变换型数据流图与事务型数据流图同时变换型数据流图与事务型数据

6、流图同时存在。存在。整体是变换型结构,某些部分是事务型;整体是变换型结构,某些部分是事务型;整体上是事务型结构,某些动作路径是变换整体上是事务型结构,某些动作路径是变换型结构;型结构;l初始的软件结构图不是最优的,设计人初始的软件结构图不是最优的,设计人员必须对其进行优化,使模块具有高内员必须对其进行优化,使模块具有高内聚、松耦合和易于实现的特点。聚、松耦合和易于实现的特点。12.1.2 古董商问题的结构化设计古董商问题的结构化设计l依据古董商问题的需求分析,判断系统依据古董商问题的需求分析,判断系统的整体框架是事务型结构。的整体框架是事务型结构。收购瓷器、销售瓷器、产生报表、探测未来收购瓷器

7、、销售瓷器、产生报表、探测未来升值空间和更新流行趋势五个动作路径。升值空间和更新流行趋势五个动作路径。l动作路径上,又存在着变换型结构。动作路径上,又存在着变换型结构。收购瓷器路径上存在着计算瓷器最高价格变收购瓷器路径上存在着计算瓷器最高价格变换中心。换中心。12.1.2 古董商问题的结构化设计古董商问题的结构化设计l事务处理中心将依据输入的参数,选择事务处理中心将依据输入的参数,选择执行相应的动作路径。执行相应的动作路径。12.1.2 古董商问题的结构化设计古董商问题的结构化设计l分析古董商问题的数据流图获得它的程分析古董商问题的数据流图获得它的程序结构:序结构:12.1.2 古董商问题的结

8、构化设计古董商问题的结构化设计l根据程序结构图,对模块进行详细设计。根据程序结构图,对模块进行详细设计。为模块选择数据结构和相应的算法。为模块选择数据结构和相应的算法。12.1.2 古董商问题的结构化设计古董商问题的结构化设计l:12.1.2 古董商问题的结构化设计古董商问题的结构化设计l模块的伪代码:模块的伪代码:在详细设计基础上,使用程序设计语言在详细设计基础上,使用程序设计语言PDL (program description language)描述模块)描述模块的实现算法。的实现算法。lPDL语言:语言:PDL是混杂型语言,使用叙述性说明文字和是混杂型语言,使用叙述性说明文字和结构化程序

9、设计语言。结构化程序设计语言。PDL的结构与一般程序结构很相似。的结构与一般程序结构很相似。12.1.2 古董商问题的结构化设计古董商问题的结构化设计PDL仅仅是算法的一种描述,具有非纯粹的仅仅是算法的一种描述,具有非纯粹的编程语言的特点。编程语言的特点。lPDL的特点:的特点:外部语法同相应程序语言一致;外部语法同相应程序语言一致;内部语法使用自然语言,使过程的描述更加内部语法使用自然语言,使过程的描述更加清晰,更容易理解;清晰,更容易理解;根据根据PDL很容易转换出源程序;很容易转换出源程序;12.1.2 古董商问题的结构化设计古董商问题的结构化设计12.1.2 古董商问题的结构化设计古董

10、商问题的结构化设计12.1.2 古董商问题的结构化设计古董商问题的结构化设计12.1.2 古董商问题的结构化设计古董商问题的结构化设计12.2 面向对象设计面向对象设计l面向对象设计面向对象设计(OOD):将面向对象分析将面向对象分析(Object-Oriented Analysis,OOA)阶段所产生的模型转化为设计模型。阶段所产生的模型转化为设计模型。面向对象分析和面向对象设计都采用了相同面向对象分析和面向对象设计都采用了相同的符号表示。的符号表示。面向对象分析考虑系统做什么,面向对象设面向对象分析考虑系统做什么,面向对象设计对分析结果进一步细化。计对分析结果进一步细化。从面向对象分析到面

11、向对象设计,是一个逐从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程。渐扩充模型的过程。12.2 面向对象设计面向对象设计l面向对象分析与面向对象设计的区别:面向对象分析与面向对象设计的区别:面向对象分析模型化问题空间,面向对象设面向对象分析模型化问题空间,面向对象设计通过增加服务,模型化特定的实现空间。计通过增加服务,模型化特定的实现空间。面向对象分析与面向对象设计具有不同的抽面向对象分析与面向对象设计具有不同的抽象层次。象层次。l面向对象设计包括以下几个步骤:面向对象设计包括以下几个步骤:系统设计;系统设计;对象设计;对象设计;12.2 面向对象设计面向对象设计消息设计;消息设计;复

12、审设计模型,并在需要时迭代;复审设计模型,并在需要时迭代;l面向对象设计的优点:面向对象设计的优点:模块化;模块化;抽象化;抽象化;信息隐藏;信息隐藏;低耦合;低耦合;高内聚;高内聚;12.2.1 古董商问题的面向对象设古董商问题的面向对象设计计l步骤步骤1:完成类图:完成类图依据分析结果,导出类属性的数据类型。依据分析结果,导出类属性的数据类型。设计实现类中的成员函数、方法和过程。设计实现类中的成员函数、方法和过程。12.2.1 古董商问题的面向对象设古董商问题的面向对象设计计l步骤步骤2:详细设计:详细设计完善古董商问题的类图后,可对所有类的方完善古董商问题的类图后,可对所有类的方法进行详

13、细设计法进行详细设计。12.2.1 古董商问题的面向对象设古董商问题的面向对象设计计12.2.1 古董商问题的面向对象设古董商问题的面向对象设计计12.3 设计阶段的测试设计阶段的测试l设计测试的目标:设计测试的目标:验证分析阶段的成果是否已准确地结合在设验证分析阶段的成果是否已准确地结合在设计方案中。计方案中。软件工程师根据用户需求来判断设计本身的软件工程师根据用户需求来判断设计本身的正确性。正确性。l测试包括:测试包括:检查设计中是否存在着逻辑错误,观察类的检查设计中是否存在着逻辑错误,观察类的属性和方法定义是否正确。属性和方法定义是否正确。12.3 设计阶段的测试设计阶段的测试l编码开始

14、前检查设计中的错误,避免在编码开始前检查设计中的错误,避免在实现阶段付出惨痛的代价。实现阶段付出惨痛的代价。l采用结构化方法解决古董商问题:采用结构化方法解决古董商问题:系统的整体框架采用事务型结构;系统的整体框架采用事务型结构;设计测试时,应审查所有可能的事务路径;设计测试时,应审查所有可能的事务路径;测试时,发现应增加缺省处理动作;测试时,发现应增加缺省处理动作;l古董商问题的古董商问题的Transaction_center模块的模块的详细设计方案修改为:详细设计方案修改为:12.3 设计阶段的测试设计阶段的测试12.3 设计阶段的测试设计阶段的测试l采用面向对象技术解决古董商问题采用面向

15、对象技术解决古董商问题:CMasterPorcelain类的方法类的方法maxInSimilarity(CArray list)和和CSecondclassPorcelain类的方法类的方法AverageInSimilarity(CArraylist)应该归入应该归入CPorcelain类中更类中更为合适。为合适。12.4 设计阶段的设计阶段的CASE工具工具l设计阶段设计阶段CASE工具的功能如下:工具的功能如下:定义全局结构图定义全局结构图;支持模块结构图的编辑功能,包括图形和文支持模块结构图的编辑功能,包括图形和文字的添加、删除、修改、模块移动、模块复字的添加、删除、修改、模块移动、模块

16、复制等,支持模块索引的生成制等,支持模块索引的生成;一致性检查功能,包括模块的命名规则、接一致性检查功能,包括模块的命名规则、接口参数顺序和连接顺序一致性检查等问题口参数顺序和连接顺序一致性检查等问题;支持相关软件结构定义和文档报告的生成支持相关软件结构定义和文档报告的生成;l面向对象的面向对象的CASE设计工具的功能包括:设计工具的功能包括:12.4 设计阶段的设计阶段的CASE工具工具支持面向对象方法;支持面向对象方法;支持类和对象的不同层次视图;支持类和对象的不同层次视图;支持类和对象的描述,自动建立相关类图和支持类和对象的描述,自动建立相关类图和对象图的索引;对象图的索引;支持用户自定

17、义类型和模板类描述;支持用户自定义类型和模板类描述;针对不同开发平台,根据用户的需求生成相针对不同开发平台,根据用户的需求生成相应的框架代码;应的框架代码;支持相关文档报告的生成;支持相关文档报告的生成;让多个用户在同一个模型中协同工作。让多个用户在同一个模型中协同工作。12.5 面向对象设计阶段的注意事面向对象设计阶段的注意事项项l设计过程注意的事项和分析阶段相差不设计过程注意的事项和分析阶段相差不多,例如:不要误用和滥用设计模式。多,例如:不要误用和滥用设计模式。l当分析模型能够完整和正确的描述需求,当分析模型能够完整和正确的描述需求,需要在设计模型中添加设计资料。需要在设计模型中添加设计

18、资料。l保持相关信息的一致性。保持相关信息的一致性。在需求发生改变时,应同步更改设计模型以在需求发生改变时,应同步更改设计模型以及设计模型中的信息。及设计模型中的信息。由设计模型驱动代码的修改。由设计模型驱动代码的修改。12.5 面向对象设计阶段的注意事面向对象设计阶段的注意事项项l对数据进行封装时应遵循规范化原则,对数据进行封装时应遵循规范化原则,不要把类的属性暴露给其它的类。不要把类的属性暴露给其它的类。l将所有参数封装在对象中来完成其传递将所有参数封装在对象中来完成其传递工作,将增加程序的可读性。工作,将增加程序的可读性。l对所有完成相同功能的类,应该抽象出对所有完成相同功能的类,应该抽象出一个接口。一个接口。l设计过程应该充分考虑到设计方案的可设计过程应该充分考虑到设计方案的可维护性和可扩展性。维护性和可扩展性。本章小结本章小结l介绍了从数据流图导出程序结构的两种介绍了从数据流图导出程序结构的两种常用方法,即变换分析和事务分析。常用方法,即变换分析和事务分析。l结合古董商问题,描述了面向对象设计结合古董商问题,描述了面向对象设计的基本步骤。的基本步骤。l列举了设计阶段常用的列举了设计阶段常用的CASE工具。工具。

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

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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