第4章 结构化软件设计优秀课件.ppt
《第4章 结构化软件设计优秀课件.ppt》由会员分享,可在线阅读,更多相关《第4章 结构化软件设计优秀课件.ppt(74页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1页,本讲稿共74页第第4章章结构化软件设计结构化软件设计4.1 4.1 概要设计的任务与过程概要设计的任务与过程 概概要要设设计计的的目目标标是是概概要要地地说说明明软软件件应应该该怎怎样样实实现现,即即解解决决软软件件系系统统总总体体结结构构设设计计的的问问题题,包包括括软软件件系系统统的的结结构构、模模块块划划分分、模模块块功功能能和和模模块间的联系等。块间的联系等。第2页,本讲稿共74页第第4章章结构化软件设计结构化软件设计4.1 4.1 概要设计的任务与过程概要设计的任务与过程 4.1.1 4.1.1 概要设计的任务概要设计的任务(1 1)建立目标系统的总体结构)建立目标系统的总体
2、结构(2)给给出出每每个个功功能能模模块块的的功功能能描描述述,数数据据接接口口描描述述和和调调用用关关系系,规规定定设设计计限制,外部文件及全局数据定限制,外部文件及全局数据定义义。(3 3)设计数据库及数据结构)设计数据库及数据结构 (4 4)编写文档)编写文档 第3页,本讲稿共74页第第4章章结构化软件设计结构化软件设计4.1.2 4.1.2 概要设计的过程概要设计的过程 1 1制定规范制定规范 2 2系统架构设计系统架构设计 3 3软件结构设计软件结构设计 4 4公共数据结构设计公共数据结构设计 5 5安全性设计安全性设计 6 6故障处理设计故障处理设计 7 7编写文档编写文档 8 8
3、概要设计评审概要设计评审 第4页,本讲稿共74页第第4章章结构化软件设计结构化软件设计4.2 4.2 系统架构设计系统架构设计 4.2.1 4.2.1 系统架构设计与风格系统架构设计与风格 系统架构设计可按以下步骤进行:系统架构设计可按以下步骤进行:定定义义子子系系统统。根根据据需需求求分分析析中中有有关关系系统统的的业业务务划划分分情情况况,将将系系统统分分解解成成多多个个具具有有独独立立功功能能的的子子系系统。统。定义子系统外部接口。定义子系统外部接口。定定义义系系统统物物理理架架构构。包包括括硬硬件件设设备备、软软件件环环境境、网网络络结结构构、数数据据库库结结构构等等,并并将将子子系系
4、统统按按照照子子系系统统所所选选的的物理架构进行合理部署与优化。物理架构进行合理部署与优化。第5页,本讲稿共74页第第4章章结构化软件设计结构化软件设计4.2.2 4.2.2 常见的软件体系架构风格常见的软件体系架构风格 1 1数据流风格数据流风格 管道管道/过滤器风格的软件体系结构过滤器风格的软件体系结构 第6页,本讲稿共74页第第4章章结构化软件设计结构化软件设计管道管道/过滤过滤器器风风格的格的软软件体系架构的件体系架构的优优点点使使得得软软构构件件具具有有良良好好的的隐隐蔽蔽性性和和高高内内聚聚性性、低低耦耦合合度度的的特点;特点;允允许许设设计计者者将将整整个个系系统统的的输输入入/
5、输输出出行行为为看看成成是是多多个个过滤过滤器的行器的行为为的的简单简单合成;合成;支支持持软软件件复复用用,如如果果任任何何两两个个过过滤滤器器达达成成了了在在它它们们之之间间交交流流的的数数据据格格式式,这这两两个个过过滤滤器器就就可可被被连连接接起起来;来;维维护护这这种种系系统统和和增增强强系系统统其其功功能能很很简简单单,新新的的过过滤滤器器可可以以添添加加到到现现有有系系统统中中来来,旧旧的的过过滤滤器器可可以以被被改改进进的的过滤过滤器替器替换换掉;掉;第7页,本讲稿共74页第第4章章结构化软件设计结构化软件设计允允许对许对一些如吞吐量、死一些如吞吐量、死锁锁等属性的分析;等属性
6、的分析;支支持持并并行行执执行行,每每个个过过滤滤器器是是作作为为一一个个单单独独的的任任务务实实现现,因此可与其他任,因此可与其他任务务并行并行执执行。行。缺点:缺点:通常导致进程成为批处理的结构。通常导致进程成为批处理的结构。不适合处理交互的应用。不适合处理交互的应用。因因为为在在数数据据传传输输上上没没有有通通用用的的标标准准,每每个个过过滤滤器器都都增增加加了了解解析析和和合合成成数数据据的的工工作作,这这样样就就导导致致了了系系统统性性能下降,并增加了编写过滤器的复杂性。能下降,并增加了编写过滤器的复杂性。第8页,本讲稿共74页第第4章章结构化软件设计结构化软件设计2 2层次系统风格
7、层次系统风格 第9页,本讲稿共74页第第4章章结构化软件设计结构化软件设计层次系统的优点:层次系统的优点:支支持持基基于于抽抽象象程程度度递递增增的的系系统统设设计计,使使设设计计者者可可以以把把一个复杂系统按递增的步骤进行分解。一个复杂系统按递增的步骤进行分解。支支持持功功能能增增强强,因因为为每每一一层层至至多多和和相相邻邻的的上上下下层层交交互互,因此功能的改变最多影响相邻的上下层。因此功能的改变最多影响相邻的上下层。支支持持复复用用。只只要要提提供供的的服服务务接接口口定定义义不不变变,同同一一层层的不同实现可以交换使用。的不同实现可以交换使用。不足之处:不足之处:并不是每个系统都可以
8、很容易地划分为分层的模式;并不是每个系统都可以很容易地划分为分层的模式;很难找到一个合适的、正确的层次抽象方法。很难找到一个合适的、正确的层次抽象方法。第10页,本讲稿共74页第第4章章结构化软件设计结构化软件设计3 3虚拟机风格虚拟机风格 例例:解解释释器器,通通过过虚虚拟拟机机特特定定模模块块的的解解释释步步骤骤如如下:下:解解释释引擎从被解引擎从被解释释的模的模块块中中选择选择一条指令;一条指令;基于基于这这条指令,引擎更新虚条指令,引擎更新虚拟拟机内部的状机内部的状态态;上述过程反复执行。上述过程反复执行。第11页,本讲稿共74页第第4章章结构化软件设计结构化软件设计特点:特点:在在虚
9、虚拟拟机机环环境境中中运运行行的的代代码码不不必必须须了了解解虚虚拟拟机机的具体的具体细节细节。一一旦旦运运行行环环境境发发生生变变化化,只只需需要要重重写写虚虚拟拟机机本本身身,而而不是整个系不是整个系统统。通通常常虚虚拟拟机机会会限限制制在在其其中中运运行行的的软软件件的的行行为为,特特别别是是那那些些以以实实现现跨跨平平台台为为目目的的的的虚虚拟拟机机,如如Java虚虚拟拟机和机和.NETCLR。能能够够使使系系统统的的结结构构更更具具层层次次性性,使使用用虚虚拟拟机机提提供供的的设设施施编编写写的的代代码码,可可以以不不考考虑虑虚虚拟拟机机以以外外的的实实际际环环境境,而而在在正正确确
10、地地实实现现了了这这种种虚虚拟拟机机的的环环境中境中执执行。行。第12页,本讲稿共74页第第4章章结构化软件设计结构化软件设计4 4独立构件风格独立构件风格 独独立立构构件件风风格格的的体体系系结结构构由由很很多多独独立立的的、通通过过消消息息交交互互的的过过程程或或者者对对象象组组成成。这这种种软软件件体体系系结结构构通通过过对对各各自自部部分分计计算算的的解解耦耦操操作作来来达达到到易易更更改改的目的。的目的。第13页,本讲稿共74页第第4章章结构化软件设计结构化软件设计特点:特点:系系统统由由松松耦耦合合的的一一些些独独立立运运行行的的计计算算单单元元构构成成,这这些些单单元元之之间间通
11、通过过消消息息传传递递信信息息。一一般般情情况况下下,这这些些独独立立的的计计算算单单元能元能够够自主地完成一些自主地完成一些计计算任算任务务。消消息息的的发发出出者者通通常常并并不不知知道道谁谁会会接接收收并并处处理理这这些些消消息息,更不了解更不了解这这些消息是如何被些消息是如何被处处理的。理的。由由于于系系统统基基于于消消息息,因因此此有有较较好好的的并并发发性性能能、容容错错性性和可伸和可伸缩缩性。性。独立构件系统中通常不存在比较明显的主独立构件系统中通常不存在比较明显的主/从结构。从结构。第14页,本讲稿共74页第第4章章结构化软件设计结构化软件设计5 5仓库风格仓库风格第15页,本
12、讲稿共74页第第4章章结构化软件设计结构化软件设计5 5仓库风格仓库风格(1 1)知知识识源源:知知识识源源中中包包含含独独立立的的、与与应应用用程程序序相相关关的的知知识识,知知识识源源之之间间不不直直接接进进行行通通讯讯,它它们们之之间间的交互只通过黑板来完成。的交互只通过黑板来完成。(2 2)黑黑板板数数据据结结构构:黑黑板板数数据据是是按按照照与与应应用用程程序序相相关关的的层层次次来来组组织织的的解解决决问问题题的的数数据据,知知识识源源通通过过不不断断地地改变黑板数据来解决问题。改变黑板数据来解决问题。(3 3)控控制制:控控制制完完全全由由黑黑板板的的状状态态驱驱动动,黑黑板板状
13、状态态的改变决定使用的特定知识。的改变决定使用的特定知识。第16页,本讲稿共74页第第4章章结构化软件设计结构化软件设计4.3 4.3 软件结构设计软件结构设计4.3.1 4.3.1 模块化概念模块化概念1.1.模块化模块化 模模块块是是一一个个独独立立命命名名的的,拥拥有有明明确确定义的输入、输出和特性的程序实体。定义的输入、输出和特性的程序实体。模模块块化化设设计计可可以以简简化化软软件件的的设设计计和和实实现现,提提高高软软件件的的可可理理解解性性和和可可测测试试性,并使软件更容易得到维护。性,并使软件更容易得到维护。第17页,本讲稿共74页第第4章章结构化软件设计结构化软件设计2 2抽
14、象化抽象化 在在解解决决复复杂杂的的具具体体问问题题时时,人人们们往往往往先先忽忽略略其其细细节节和和非非本本质质的的方方面面,而而集集中中注注意意力力去去分分析析问问题题的的本本质质和和主主要要方方面面,搞搞清清所所要要解解决决的的问问题题的的本本质质所所在在;同同时时人人们们在在总总结结认认识识和和实实验验规规律律时时,也也往往往往突突出出各各类类问问题题的的共共性性,找找出出各各种种客客观观事事物物、状状态态和和过过程程间间的的联联系系和和相似性,加以概括和提取,即抽象。相似性,加以概括和提取,即抽象。第18页,本讲稿共74页第第4章章结构化软件设计结构化软件设计3 3信息隐蔽信息隐蔽
15、信信息息隐隐藏藏是是指指在在设设计计和和确确定定模模块块时时,应应使使一一个个模模块块内内包包含含的的信信息息(过过程程和和数数据据)对对于于不不需需要要这这些些信信息息的的模模块块来来说是不可访问的。说是不可访问的。信信息息局局部部化化是是指指将将一一些些关关系系密密切切的的成份,设计时放得彼此靠近。成份,设计时放得彼此靠近。第19页,本讲稿共74页第第4章章结构化软件设计结构化软件设计4.3.2 4.3.2 模块的独立性模块的独立性 1 1耦耦合合度度:模模块块同同模模块块的的联联系系称称为为块块间间的联系(模块的耦合度)的联系(模块的耦合度)2 2内内聚聚度度:一一个个模模块块内内部部各
16、各成成份份的的联联系系称为块内的联系(模块的内聚度)称为块内的联系(模块的内聚度)第20页,本讲稿共74页第第4章章结构化软件设计结构化软件设计耦合度按从强到弱的顺序可分为几种类型:耦合度按从强到弱的顺序可分为几种类型:(1 1)内内容容耦耦合合:当当一一个个模模块块直直接接修修改改或或操操作作另另一一个个模模块块的的数数据据或或者者直直接接转转入入另另一一个模块时,就发生了内容耦合个模块时,就发生了内容耦合 (2 2)公公共共耦耦合合:两两个个以以上上的的模模块块共共同同引引用用一个全局数据项一个全局数据项(3 3)控控制制耦耦合合:一一个个模模块块在在界界面面上上传传递递一一个个信信号号(
17、如如开开关关值值、标标志志量量等等)控控制制另另一一个个模模块块,接接收收信信号号的的模模块块的的动动作作根根据据信号值进行调整,称为控制耦合。信号值进行调整,称为控制耦合。第21页,本讲稿共74页第第4章章结构化软件设计结构化软件设计(4 4)数据耦合:指两个模块彼此交换数据)数据耦合:指两个模块彼此交换数据(5)独独立立耦耦合合:模模块块间间没没有有信信息息传传递递时时,属于非直接耦合属于非直接耦合 耦合性与模块属性的关系耦合性与模块属性的关系 对修改的敏感性对修改的敏感性可重用性可重用性可修改性可修改性可理解性可理解性内容耦合内容耦合很强很强很差很差很差很差很差很差公共耦合公共耦合强强很
18、差很差中中很差很差控制耦合控制耦合一般一般差差差差差差数据耦合数据耦合不一定不一定好好好好好好第22页,本讲稿共74页第第4章章结构化软件设计结构化软件设计内聚度按强度从低到高有以下几种类型:内聚度按强度从低到高有以下几种类型:(1 1)偶偶然然内内聚聚:模模块块内内的的各各个个任任务务没没有有什什么么有有意意义义的的联联系,它们之所以能构成一个模块完全是偶然的原因。系,它们之所以能构成一个模块完全是偶然的原因。(2)逻逻辑辑内内聚聚:几几个个逻逻辑辑上上相相关关的的功功能能被被放放在在同同一一模模块中,则称为逻辑内聚。块中,则称为逻辑内聚。(3)时时间间内内聚聚:如如果果一一个个模模块块完完
19、成成的的功功能能必必须须在在同同一一时时间间内内执执行行(如如系系统统初初始始化化),但但这这些些功功能能只只是是因因为时间因素关联在一起,则称为时间内聚。为时间因素关联在一起,则称为时间内聚。第23页,本讲稿共74页第第4章章结构化软件设计结构化软件设计(4)过过程程内内聚聚:如如果果一一个个模模块块内内部部的的处处理理成成份份是是相相关关的的,而而且且这这些些处处理理必必须须以以特特定定的的次次序序执执行行,则则称称为为过程内聚。过程内聚。(5)通通信信内内聚聚:如如果果一一个个模模块块的的所所有有成成份份都都操操作作同同一一数数据集或生成同一数据集,则称为通信内聚。据集或生成同一数据集,
20、则称为通信内聚。(6)顺顺序序内内聚聚:如如果果一一个个模模块块的的各各个个成成份份和和同同一一个个功功能能密密切切相相关关,而而且且一一个个成成份份的的输输出出作作为为另另一一个个成成份份的的输输入,则称为顺序内聚。入,则称为顺序内聚。(7)功功能能内内聚聚:模模块块的的所所有有成成份份对对于于完完成成单单一一的的功功能能都是必须的,则称为功能内聚。都是必须的,则称为功能内聚。第24页,本讲稿共74页第第4章章结构化软件设计结构化软件设计内聚与模块属性的关系内聚与模块属性的关系 表4.2 内聚与模块属性的关系 内部联系内部联系清晰性清晰性可复用可复用性性可修改性可修改性可理解性可理解性偶然内
21、聚偶然内聚很差很差差差很差很差很差很差很差很差逻辑内聚逻辑内聚很差很差很差很差很差很差很差很差差差时间内聚时间内聚差差中中很差很差中中中中过程内聚过程内聚中中好好差差中中中中通信内聚通信内聚中中好好差差中中中中顺序内聚顺序内聚好好好好中中好好好好功能内聚功能内聚好好好好好好好好好好第25页,本讲稿共74页第第4章章结构化软件设计结构化软件设计4.3.3 4.3.3 结构化设计建模结构化设计建模 1 1软件结构图软件结构图 (1 1)软件结构图的基本图形符号:)软件结构图的基本图形符号:模块:模块:调用:调用:模块间通讯:模块间通讯:数据信息:数据信息:控制信息:控制信息:第26页,本讲稿共74
22、页第第4章章结构化软件设计结构化软件设计 选择调用:选择调用:循环调用:循环调用:第27页,本讲稿共74页第第4章章结构化软件设计结构化软件设计(2 2)举例:举例:第28页,本讲稿共74页第第4章章结构化软件设计结构化软件设计2 2HIPOHIPO图图(1)H图图也也叫叫层层次次图图:用用于于描描述述软软件件结结构构上上的的分分层层调调用用关关系系,作作用用类类似似于于软软件件结结构构图图,但但不不涉涉及及调调用用时时的的数数据据流流、控控制制流等附加信息。流等附加信息。(2 2)IPOIPO图:输入图:输入输出输出处理图的简称处理图的简称第29页,本讲稿共74页第第4章章结构化软件设计结构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 结构化软件设计优秀课件 结构 软件设计 优秀 课件
限制150内