第二次_体系结构概述及调用返回体系结构_第1页
第二次_体系结构概述及调用返回体系结构_第2页
第二次_体系结构概述及调用返回体系结构_第3页
第二次_体系结构概述及调用返回体系结构_第4页
第二次_体系结构概述及调用返回体系结构_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、*第二次第二次 调用返回体系结构调用返回体系结构Call back Software Architecture style任课老师:黄武任课老师:黄武*提纲提纲软件体系结构概述软件体系结构概述调用返回体系结构调用返回体系结构*软件体系结构概述提纲软件体系结构概述提纲背景背景软件体系结构的概念软件体系结构的概念软件体系结构的意义软件体系结构的意义软件体系结构和软件质量属性软件体系结构和软件质量属性软件体系结构风格软件体系结构风格*1.1 背景背景Edsger.Dijstra指出指出“软件的规模越大,软件的规模越大,其整体构架就越重要其整体构架就越重要”20世纪世纪90年代,软件体系结构逐渐被工年

2、代,软件体系结构逐渐被工业界和学术界广泛接受,并且业内普遍业界和学术界广泛接受,并且业内普遍认为:对于大规模复杂软件系统而言,认为:对于大规模复杂软件系统而言,构架构架的设计比的设计比数据结构数据结构以及以及算法算法的设计的设计更为重要更为重要*1.2 软件体系结构的概念软件体系结构的概念Mary Shaw和和David Garlan的定义:软的定义:软件体系结构用于描述系统的件体系结构用于描述系统的构成要素构成要素、构成要素之间的构成要素之间的交互和组合模式交互和组合模式以及在以及在进行组合时的进行组合时的约束条件约束条件Len Bass的定义:软件体系结构是指程的定义:软件体系结构是指程序

3、或者系统的序或者系统的组成关系组成关系,这种组成关系,这种组成关系包括软件、软件的外部可见属性以及这包括软件、软件的外部可见属性以及这些软件之间的关系些软件之间的关系*1.2.1 软件体系结构的概念(续)软件体系结构的概念(续)IEEE 1471-2000中的定义:软件体系结中的定义:软件体系结构是系统的构是系统的基本组织结构基本组织结构,包括系统,包括系统构构成要素成要素,这些要素相互之间以及与运行,这些要素相互之间以及与运行环境之间的环境之间的关系关系,还包括系统设计及演,还包括系统设计及演化时应遵循的原则化时应遵循的原则软件体系结构包括三个基本要素:软件体系结构包括三个基本要素:构件、构

4、件、连接件和约束连接件和约束*1.3 软件体系结构的意义软件体系结构的意义软件体系结构是软件相关人员之间进行软件体系结构是软件相关人员之间进行交流的手段交流的手段软件体系结构是一种软件体系结构是一种高层次的设计复用高层次的设计复用手段手段软件体系结构是软件体系结构是早期设计决策早期设计决策的体现,的体现,决定了最终软件的质量决定了最终软件的质量*1.4 软件体系结构与软件质量属性软件体系结构与软件质量属性软件体系结构的优劣依赖于各种因素,软件体系结构的优劣依赖于各种因素,这些因素通常被称为这些因素通常被称为软件质量属性软件质量属性(qualities)质量属性包括:性能,可伸缩性,可用质量属性

5、包括:性能,可伸缩性,可用性,可维护性,安全性,易用性,可重性,可维护性,安全性,易用性,可重复性,可测试性以及可移植性等复性,可测试性以及可移植性等*1.5 软件体系结构的风格软件体系结构的风格软件体系结构风格是对软件体系结构风格是对软件体系结构的软件体系结构的分类分类,每一种软件体系结构风格都代表,每一种软件体系结构风格都代表一类软件的结构组织模式一类软件的结构组织模式软件体系结构风格是在实践中被重复使软件体系结构风格是在实践中被重复使用的构件设计的总结用的构件设计的总结*1.5.1 软件体系结构的风格软件体系结构的风格(续续)软件体系结构风格包括:软件体系结构风格包括:数据流风格数据流风

6、格,顺序批处理风格顺序批处理风格,管道管道-过滤器风格过滤器风格,调调用用-返回风格返回风格,主程序主程序-子程序风格子程序风格,面向面向对象风格对象风格,分层的风格分层的风格,独立构件风格独立构件风格,进程通讯进程通讯,事件系统事件系统,虚拟机风格虚拟机风格,解解释器释器,基于规则的系统基于规则的系统,以数据为中心以数据为中心的风格的风格,数据库数据库,超文本以及黑板风格超文本以及黑板风格等。另外还有分布式的风格,比如云计等。另外还有分布式的风格,比如云计算,算,P2P风格等风格等*2 调用调用-返回风格提纲返回风格提纲非结构化的编程简介非结构化的编程简介调用调用-返回风格软件体系结构的概念

7、返回风格软件体系结构的概念主程序主程序-子程序软件体系结构子程序软件体系结构面向对象软件体系结构面向对象软件体系结构主程序主程序-子程序与面向对象体系结构举子程序与面向对象体系结构举例例*2.1非结构化的编程简介非结构化的编程简介非结构化非结构化的编程技术是历史上最早的编的编程技术是历史上最早的编程范型程范型非结构化语言(比如汇编语言)编写的非结构化语言(比如汇编语言)编写的程序通常包内含一系列有序的命令,每程序通常包内含一系列有序的命令,每行有一个行号标记,便于程序跳转行有一个行号标记,便于程序跳转*2.1.1 非结构化编程的特点非结构化编程的特点非结构化编程已经引入了循环,分支及非结构化编

8、程已经引入了循环,分支及子程序的概念子程序的概念非结构化编程中的子程序非结构化编程中的子程序允许有多个入允许有多个入口和多个出口口和多个出口程序的执行顺序可以被任意变换程序的执行顺序可以被任意变换*2.1.2 非结构化编程的举例非结构化编程的举例01 main02 mov AX, 045;03 mov BX, 012;04 add AX, BX;05 jnz 17;06 07 jump 012;08 *2.2 调用调用-返回风格软件体系结构返回风格软件体系结构调用调用-返回风格体系结构(返回风格体系结构(Call and Return Architecture)采用采用分而治之分而治之的策的策

9、略,其略,其主要思想主要思想是将一个复杂的大系统是将一个复杂的大系统分解为一些子系统,以便降低复杂度,分解为一些子系统,以便降低复杂度,并且增加可修改性并且增加可修改性这种系统的程序执行顺序通常只由一个这种系统的程序执行顺序通常只由一个单线程控制单线程控制*2.2.1 调用调用-返回风格体系结构示意返回风格体系结构示意AMainBCDE12910456738程序运行的控制流示意程序运行的控制流示意*2.2.2 调用调用-返回风格体系的概念返回风格体系的概念每个软件都设计为有一个每个软件都设计为有一个唯一的唯一的程序执程序执行入口和一个唯一的程序执行出口;行入口和一个唯一的程序执行出口;程序执行

10、结束后,则控制被程序执行结束后,则控制被返回给程序返回给程序的调用构件的调用构件;这些程序的构件被称为;这些程序的构件被称为子子程序程序(Subroutine)从一个构件到另一个构件的控制传递被从一个构件到另一个构件的控制传递被称为称为程序调用程序调用(call)*2.2.3 调用调用-返回风格体系的组织返回风格体系的组织拥有整个软件入口的构件叫拥有整个软件入口的构件叫做主程序做主程序(Main Program),它控制子程序的执行顺序,它控制子程序的执行顺序可以被所有构件访问的共享数据被称为可以被所有构件访问的共享数据被称为全局变全局变量量(Global varible)MainSub1Su

11、b2Sub3Global DataSub4Sub5*2.2.4 调用调用-返回风格体系的层次组织返回风格体系的层次组织调用调用-返回风格体系结构可以被组织成任何形返回风格体系结构可以被组织成任何形式。但式。但层次结构层次结构的组织形式更清晰的组织形式更清晰层次结构层次结构的设计被称为的设计被称为共享数据的主程序共享数据的主程序-子子程序程序软件体系结构软件体系结构MainSub1Sub2Sub3Sub4Sub5Sub6Sub7Sub8DataSub10DataSub9Sub11*2.3 主程序主程序-子程序软件体系结构子程序软件体系结构主程序主程序-子程序软件体系结构在子程序软件体系结构在设计

12、上使设计上使用层次化的划分方法用层次化的划分方法,该体系结构中使,该体系结构中使用由编程语言直接支持的单一控制线程用由编程语言直接支持的单一控制线程相比于非结构化编程,主程序相比于非结构化编程,主程序-子程序软子程序软件体系结构能够较好地支持系统的可改件体系结构能够较好地支持系统的可改变性和可伸缩性等性能,其采用分而治变性和可伸缩性等性能,其采用分而治之的策略之的策略*2.3.1 自顶向下的设计方法自顶向下的设计方法主程序主程序-子程序软件体系结构通常采用自顶向子程序软件体系结构通常采用自顶向下的设计方法,即从系统的功能角度出发,从下的设计方法,即从系统的功能角度出发,从高层开始,将整个功能逐

13、步细化为子功能高层开始,将整个功能逐步细化为子功能MainSub1Sub2Sub3Sub11Sub12Sub21Sub22Sub31Sub211Sub121Sub111*2.3.2 自顶向下的设计举例自顶向下的设计举例一个药品成本计算系统(一个药品成本计算系统(Medicine Cost Computation)要计算一种药品的单位成本,要求输入要计算一种药品的单位成本,要求输入药品的名称(药品的名称(Medicine Name),然后系),然后系统输出该药品的单位成本(统输出该药品的单位成本(Medicine Cost per Unit)Medicine Cost ComputationMe

14、dicine NameMedicine Cost系统的第一层数据流图(系统的第一层数据流图(DFD)*2.3.2.1 系统层次化数据流图系统层次化数据流图结构化设计从数据流图开始,然后将数结构化设计从数据流图开始,然后将数据流图转换为程序结构图据流图转换为程序结构图系统的第三层数据流图(系统的第三层数据流图(DFD)系统的系统的第二层第二层数据流图(数据流图(DFD)Medicine Cost ComputationEnter Medicine NameOutput Medicine CostGet Research Cost per UnitEnter Medicine NameGet Pr

15、oduction Cost per UnitOutput Medicine Cost*2.3.2.2 系统结构图系统结构图设计数据流图从数据输入开始,对数据的各设计数据流图从数据输入开始,对数据的各个处理过程以及最后的输出进行描述,然后个处理过程以及最后的输出进行描述,然后构建结构图构建结构图Get Research Cost per UnitEnter Medicine NameGet Production Cost per UnitOutput Medicine CostMedicine Cost Computation SystemCalculate medine Cost1324567

16、8*2.3.2.3 自顶向下结构化设计的问题自顶向下结构化设计的问题功能演化困难功能演化困难现实中的系统功能不容易描述,比如服现实中的系统功能不容易描述,比如服务请求式的系统难于找到顶层功能模块务请求式的系统难于找到顶层功能模块功能化设计丢掉了数据与数据结构功能化设计丢掉了数据与数据结构由功能设计得到的软件产品产生的可复由功能设计得到的软件产品产生的可复用代码较少用代码较少*2.3.3 结构化设计的优缺点结构化设计的优缺点优点优点逻辑设计与物理设计分离逻辑设计与物理设计分离开发过程中形成一套规范化的文档,便于将开发过程中形成一套规范化的文档,便于将来修改和维护来修改和维护缺点缺点开发周期长,开

17、发过程复杂开发周期长,开发过程复杂系统难于适应环境变化系统难于适应环境变化1.经验表明,较小的程序(小于经验表明,较小的程序(小于10万行)适合万行)适合于结构化开发于结构化开发*2.4 面向对象的体系结构面向对象的体系结构结构化编程中的数据可以被程序的任何结构化编程中的数据可以被程序的任何语句访问,当程序变大时,这种做法使语句访问,当程序变大时,这种做法使得程序缺陷可能被传到很远,得程序缺陷可能被传到很远,难于维护难于维护面向对象设计可以将数据和操作封装起面向对象设计可以将数据和操作封装起来,使数据的访问受到限制。这种将数来,使数据的访问受到限制。这种将数据和操作捆绑的方式被称为对象据和操作

18、捆绑的方式被称为对象*2.4.1 面向对象的体系结构面向对象的体系结构面向对象的设计中,系统被看作为一些面向对象的设计中,系统被看作为一些对象的集合,消息从一个对象发送到另对象的集合,消息从一个对象发送到另一个对象,每个对象完成一定的功能一个对象,每个对象完成一定的功能Obj1Obj7Obj6Obj5Obj4Obj3Obj2CallCallCallCallCallCallCallCall面向对象的体系结构面向对象的体系结构*2.4.2 面向对象的特点面向对象的特点封装性封装性继承性继承性多态多态复用和可维护性复用和可维护性对象是对现实世界的抽象并且可以管理自己对象是对现实世界的抽象并且可以管理

19、自己系统功能通过对象服务表示系统功能通过对象服务表示共享数据区域被取消共享数据区域被取消对象可以是分布式的对象可以是分布式的*2.4.3 面向对象的继承机制面向对象的继承机制继承的目的是代码复用继承的目的是代码复用继承提供了一个统一的接口,容易实现继承提供了一个统一的接口,容易实现多态多态AnimalLand AnimalAquatic AnimalBirdfamilyMammalsElephantWhale*2.4.4 面向对象的优点面向对象的优点面向对象设计有如下优点:面向对象设计有如下优点:容易维护,没有共享的数据容易维护,没有共享的数据可复用性好可复用性好映射现实世界,便于理解映射现实

20、世界,便于理解1.容易对一个系统进行分解容易对一个系统进行分解*2.4.5 面向对象的缺点面向对象的缺点面向对象设计有如下缺点:面向对象设计有如下缺点:程序占用的内容大程序占用的内容大1.一个对象要和其它对象交互,必须知道一个对象要和其它对象交互,必须知道其它对象的身份其它对象的身份*2.5 主程序主程序-子程序与面向对象的体子程序与面向对象的体系结构比较系结构比较设计一个文档更新系统,对符合一定设计一个文档更新系统,对符合一定格式的输入文档进行更新,系统的功格式的输入文档进行更新,系统的功能描述如下:能描述如下:政治问题,将文档中的政治问题,将文档中的Japanese修改修改为为German

21、y两千年问题,将两位日期修改为四位两千年问题,将两位日期修改为四位日期日期1.对商品按字典序排序对商品按字典序排序*2.5.1文档更新系统的数据变化文档更新系统的数据变化原始文件原始文件Printer $230 Germany 89-02-01Refrigerator $380 Japaness 88-12-08Refrigerator $360 Taiwan 89-05-12 Printer $330 Japaness 89-07-11政治修改后的文件政治修改后的文件Printer $230 Germany 89-02-01Refrigerator $380 Germany 88-12-08

22、Refrigerator $360 Taiwan 89-05-12 Printer $330 Germany 89-07-11*2.5.2文档更新系统的数据变化文档更新系统的数据变化经过两千年问题修改的文件经过两千年问题修改的文件Printer $230 Germany 1989-02-01Refrigerator $380 Germany 1988-12-08Refrigerator $360 Taiwan 1989-05-12 Printer $330 Germany 1989-07-11排序后的文件排序后的文件Printer $230 Germany 1989-02-01Printer

23、$330 Germany 1989-07-11Refrigerator $360 Taiwan 1989-05-12 Refrigerator $380 Germany 1988-12-08*2.5.3结构化程序设计文档更新系统结构化程序设计文档更新系统结构化程序结构化程序中包含一个主程序和中包含一个主程序和5个子程序个子程序结构化设计的程序包含数据与函数,程序中的结构化设计的程序包含数据与函数,程序中的全局变量没有被封装,由每个函数访问与修改全局变量没有被封装,由每个函数访问与修改MainInputCorrectPoliticalErrorCorrectY2KErrorSortOutput*

24、2.5.4面向对象设计文档更新系统面向对象设计文档更新系统面向对象面向对象的设计将数据、政治问题,排的设计将数据、政治问题,排序及输出功能封装在不同的类中,类之序及输出功能封装在不同的类中,类之间的数据通过参数进行传递间的数据通过参数进行传递LegacyFileUpdateGUIInterface FileUpdateInterface+update():voidInput-file:ArrayList+update():voidPoliticalIssue-file:ArrayList+update():voidSorting-file:ArrayList+update():voidOutp

25、ut-file:ArrayList+update():void*2.6主程序主程序-子程序与面向对象体系子程序与面向对象体系结构的比较结构的比较主程序主程序-子程序和面向对象设计相似之处子程序和面向对象设计相似之处都属于都属于调用调用-返回风格返回风格主程序主程序-子程序体系结构所产生的程序中,每子程序体系结构所产生的程序中,每个软件构件都有一个唯一的程序执行入口和个软件构件都有一个唯一的程序执行入口和出口,当一个函数调用另一个函数时,另一出口,当一个函数调用另一个函数时,另一个函数个函数获得控制权获得控制权,该函数执行完后控制权,该函数执行完后控制权返回给调用函数返回给调用函数1.面向对象设

26、计结构中,当一个对象调用另一面向对象设计结构中,当一个对象调用另一个对象的方法时,被调用对象个对象的方法时,被调用对象控制程序控制程序,运,运行完后控制权又行完后控制权又交给调用对象交给调用对象*2.6.1 两种体系结构的系统分析区别两种体系结构的系统分析区别结构化设计结构化设计面向对象设计面向对象设计根据用户需求产生数根据用户需求产生数据流图据流图根据数据流图生成结根据数据流图生成结构图构图使用结构化英语描述使用结构化英语描述算法算法通过数据关系分析产通过数据关系分析产生数据关系图生数据关系图建立领域模型类图建立领域模型类图根据用户需求产生用根据用户需求产生用例模型例模型用例实现用例实现建立对象互动图,包建立对象互动图,包括:时序图,协作图及括:时序图,协作图及状态图等状态图等*2.6.2 两种体系结构的设计区别两种体系结构的设计区别结构化设计结构化设计面向对象设计面向对象设计数据库设计,包括数数据库设计,包括数据库的正则化据库的正则化用户图形界面设计用户图形界面设计详细设计:函数的参详细设计:函数的参数,算法,返回值数,算法,返回值具体的数据库设计具体的数据库设计设计元素设计元素设计系统软件体系结设计系统软件体系结构构设计类图设计类图设计构件设计构件用户图形界面数据用户图形界面数据详细

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论