第二次体系结构概述与调用返回体系结构课件

上传人:仙*** 文档编号:241657004 上传时间:2024-07-13 格式:PPT 页数:45 大小:538KB
返回 下载 相关 举报
第二次体系结构概述与调用返回体系结构课件_第1页
第1页 / 共45页
第二次体系结构概述与调用返回体系结构课件_第2页
第2页 / 共45页
第二次体系结构概述与调用返回体系结构课件_第3页
第3页 / 共45页
点击查看更多>>
资源描述
第二次第二次 调用返回体系结构调用返回体系结构Call back Software Architecture style任课老师:黄武任课老师:黄武2024/7/13提纲提纲软件体系结构概述软件体系结构概述调用返回体系结构调用返回体系结构2024/7/13软件体系结构概述提纲软件体系结构概述提纲背景背景软件体系结构的概念软件体系结构的概念软件体系结构的意义软件体系结构的意义软件体系结构和软件质量属性软件体系结构和软件质量属性软件体系结构风格软件体系结构风格2024/7/131.1 背景背景Edsger.Dijstra指出指出“软件的规模越大,软件的规模越大,其整体构架就越重要其整体构架就越重要”20世纪世纪90年代,软件体系结构逐渐被工年代,软件体系结构逐渐被工业界和学术界广泛接受,并且业内普遍业界和学术界广泛接受,并且业内普遍认为:对于大规模复杂软件系统而言,认为:对于大规模复杂软件系统而言,构架构架的设计比的设计比数据结构数据结构以及以及算法算法的设计的设计更为重要更为重要2024/7/131.2 软件体系结构的概念软件体系结构的概念Mary Shaw和和David Garlan的定义:软件的定义:软件体系结构用于描述系统的体系结构用于描述系统的构成要素构成要素、构、构成要素之间的成要素之间的交互和组合模式交互和组合模式以及在进以及在进行组合时的行组合时的约束条件约束条件Len Bass的定义:软件体系结构是指程序的定义:软件体系结构是指程序或者系统的或者系统的组成关系组成关系,这种组成关系包,这种组成关系包括软件、软件的外部可见属性以及这些括软件、软件的外部可见属性以及这些软件之间的关系软件之间的关系2024/7/131.2.1 软件体系结构的概念(续)软件体系结构的概念(续)IEEE 1471-2000中的定义:软件体系结中的定义:软件体系结构是系统的构是系统的基本组织结构基本组织结构,包括系统,包括系统构构成要素成要素,这些要素相互之间以及与运行,这些要素相互之间以及与运行环境之间的环境之间的关系关系,还包括系统设计及演,还包括系统设计及演化时应遵循的原则化时应遵循的原则软件体系结构包括三个基本要素:软件体系结构包括三个基本要素:构件、构件、连接件和约束连接件和约束2024/7/131.3 软件体系结构的意义软件体系结构的意义软件体系结构是软件相关人员之间进行软件体系结构是软件相关人员之间进行交流的手段交流的手段软件体系结构是一种软件体系结构是一种高层次的设计复用高层次的设计复用手段手段软件体系结构是软件体系结构是早期设计决策早期设计决策的体现,的体现,决定了最终软件的质量决定了最终软件的质量2024/7/131.4 软件体系结构与软件质量属性软件体系结构与软件质量属性软件体系结构的优劣依赖于各种因素,软件体系结构的优劣依赖于各种因素,这些因素通常被称为这些因素通常被称为软件质量属性软件质量属性(qualities)质量属性包括:性能,可伸缩性,可用质量属性包括:性能,可伸缩性,可用性,可维护性,安全性,易用性,可重性,可维护性,安全性,易用性,可重复性,可测试性以及可移植性等复性,可测试性以及可移植性等2024/7/131.5 软件体系结构的风格软件体系结构的风格软件体系结构风格是对软件体系结构风格是对软件体系结构的软件体系结构的分类分类,每一种软件体系结构风格都代表,每一种软件体系结构风格都代表一类软件的结构组织模式一类软件的结构组织模式软件体系结构风格是在实践中被重复使软件体系结构风格是在实践中被重复使用的构件设计的总结用的构件设计的总结2024/7/131.5.1 软件体系结构的风格软件体系结构的风格(续续)软件体系结构风格包括:软件体系结构风格包括:数据流风格数据流风格,顺序批处理风格顺序批处理风格,管道管道-过滤器风格过滤器风格,调调用用-返回风格返回风格,主程序主程序-子程序风格子程序风格,面向面向对象风格对象风格,分层的风格分层的风格,独立构件风格独立构件风格,进程通讯进程通讯,事件系统事件系统,虚拟机风格虚拟机风格,解解释器释器,基于规则的系统基于规则的系统,以数据为中心以数据为中心的风格的风格,数据库数据库,超文本以及黑板风格超文本以及黑板风格等。另外还有分布式的风格,比如云计等。另外还有分布式的风格,比如云计算,算,P2P风格等风格等2024/7/132 调用调用-返回风格提纲返回风格提纲非结构化的编程简介非结构化的编程简介调用调用-返回风格软件体系结构的概念返回风格软件体系结构的概念主程序主程序-子程序软件体系结构子程序软件体系结构面向对象软件体系结构面向对象软件体系结构主程序主程序-子程序与面向对象体系结构举子程序与面向对象体系结构举例例2024/7/132.1非结构化的编程简介非结构化的编程简介非结构化非结构化的编程技术是历史上最早的编的编程技术是历史上最早的编程范型程范型非结构化语言(比如汇编语言)编写的非结构化语言(比如汇编语言)编写的程序通常包内含一系列有序的命令,每程序通常包内含一系列有序的命令,每行有一个行号标记,便于程序跳转行有一个行号标记,便于程序跳转2024/7/132.1.1 非结构化编程的特点非结构化编程的特点非结构化编程已经引入了循环,分支及非结构化编程已经引入了循环,分支及子程序的概念子程序的概念非结构化编程中的子程序非结构化编程中的子程序允许有多个入允许有多个入口和多个出口口和多个出口程序的执行顺序可以被任意变换程序的执行顺序可以被任意变换2024/7/132.1.2 非结构化编程的举例非结构化编程的举例01 main02 mov AX,045;03 mov BX,012;04 add AX,BX;05 jnz 17;06 07 jump 012;08 2024/7/132.2 调用调用-返回风格软件体系结构返回风格软件体系结构调用调用-返回风格体系结构(返回风格体系结构(Call and Return Architecture)采用采用分而治之分而治之的策的策略,其略,其主要思想主要思想是将一个复杂的大系统是将一个复杂的大系统分解为一些子系统,以便降低复杂度,分解为一些子系统,以便降低复杂度,并且增加可修改性并且增加可修改性这种系统的程序执行顺序通常只由一个这种系统的程序执行顺序通常只由一个单线程控制单线程控制2024/7/132.2.1 调用调用-返回风格体系结构示意返回风格体系结构示意AMainBCDE12910456738程序运行的控制流示意程序运行的控制流示意2024/7/132.2.2 调用调用-返回风格体系的概念返回风格体系的概念每个软件都设计为有一个每个软件都设计为有一个唯一的唯一的程序执程序执行入口和一个唯一的程序执行出口;行入口和一个唯一的程序执行出口;程序执行结束后,则控制被程序执行结束后,则控制被返回给程序返回给程序的调用构件的调用构件;这些程序的构件被称为;这些程序的构件被称为子子程序程序(Subroutine)从一个构件到另一个构件的控制传递被从一个构件到另一个构件的控制传递被称为称为程序调用程序调用(call)2024/7/132.2.3 调用调用-返回风格体系的组织返回风格体系的组织拥有整个软件入口的构件叫拥有整个软件入口的构件叫做主程序做主程序(Main Program),它控制子程序的执行顺序,它控制子程序的执行顺序可以被所有构件访问的共享数据被称为可以被所有构件访问的共享数据被称为全局变全局变量量(Global varible)MainSub1Sub2Sub3Global DataSub4Sub52024/7/132.2.4 调用调用-返回风格体系的层次组织返回风格体系的层次组织调用调用-返回风格体系结构可以被组织成任何形式。返回风格体系结构可以被组织成任何形式。但但层次结构层次结构的组织形式更清晰的组织形式更清晰层次结构层次结构的设计被称为的设计被称为共享数据的主程序共享数据的主程序-子程子程序序软件体系结构软件体系结构MainSub1Sub2Sub3Sub4Sub5Sub6Sub7Sub8DataSub10DataSub9Sub112024/7/132.3 主程序主程序-子程序软件体系结构子程序软件体系结构主程序主程序-子程序软件体系结构在子程序软件体系结构在设计上使设计上使用层次化的划分方法用层次化的划分方法,该体系结构中使,该体系结构中使用由编程语言直接支持的单一控制线程用由编程语言直接支持的单一控制线程相比于非结构化编程,主程序相比于非结构化编程,主程序-子程序软子程序软件体系结构能够较好地支持系统的可改件体系结构能够较好地支持系统的可改变性和可伸缩性等性能,其采用分而治变性和可伸缩性等性能,其采用分而治之的策略之的策略2024/7/132.3.1 自顶向下的设计方法自顶向下的设计方法主程序主程序-子程序软件体系结构通常采用自顶向下子程序软件体系结构通常采用自顶向下的设计方法,即从系统的功能角度出发,从高的设计方法,即从系统的功能角度出发,从高层开始,将整个功能逐步细化为子功能层开始,将整个功能逐步细化为子功能MainSub1Sub2Sub3Sub11Sub12Sub21Sub22Sub31Sub211Sub121Sub1112024/7/132.3.2 自顶向下的设计举例自顶向下的设计举例一个药品成本计算系统(一个药品成本计算系统(Medicine Cost Computation)要计算一种药品的单位成本,要求输入要计算一种药品的单位成本,要求输入药品的名称(药品的名称(Medicine Name),然后系),然后系统输出该药品的单位成本(统输出该药品的单位成本(Medicine Cost per Unit)Medicine Cost ComputationMedicine NameMedicine Cost系统的第一层数据流图(系统的第一层数据流图(DFD)2024/7/132.3.2.1 系统层次化数据流图系统层次化数据流图结构化设计从数据流图开始,然后将数结构化设计从数据流图开始,然后将数据流图转换为程序结构图据流图转换为程序结构图系统的第三层数据流图(系统的第三层数据流图(DFD)系统的系统的第二层第二层数据流图(数据流图(DFD)Medicine Cost ComputationEnter Medicine NameOutput Medicine CostGet Research Cost per UnitEnter Medicine NameGet Production Cost per UnitOutput Medicine Cost2024/7/132.3.2.2 系统结构图系统结构图设计数据流图从数据输入开始,对数据的各设计数据流图从数据输入开始,对数据的各个处理过程以及最后的输出进行描述,然后个处理过程以及最后的输出进行描述,然后构建结构图构建结构图Get Research Cost per UnitEnter Medicine NameGet Production Cost per UnitOutput Medicine CostMedicine Cost Computation SystemCalculate medine Cost132456782024/7/132.3.2.3 自顶向下结构化设计的问题自顶向下结构化设计的问题1.功能演化困难功能演化困难2.现实中的系统功能不容易描述,比如服现实中的系统功能不容易描述,比如服务请求式的系统难于找到顶层功能模块务请求式的系统难于找到顶层功能模块3.功能化设计丢掉了数据与数据结构功能化设计丢掉了数据与数据结构4.由功能设计得到的软件产品产生的可复由功能设计得到的软件产品产生的可复用代码较少用代码较少2024/7/132.3.3 结构化设计的优缺点结构化设计的优缺点优点优点1.逻辑设计与物理设计分离逻辑设计与物理设计分离2.开发过程中形成一套规范化的文档,便于将开发过程中形成一套规范化的文档,便于将来修改和维护来修改和维护缺点缺点1.开发周期长,开发过程复杂开发周期长,开发过程复杂2.系统难于适应环境变化系统难于适应环境变化经验表明,较小的程序(小于经验表明,较小的程序(小于10万行)适合万行)适合于结构化开发于结构化开发2024/7/132.4 面向对象的体系结构面向对象的体系结构结构化编程中的数据可以被程序的任何结构化编程中的数据可以被程序的任何语句访问,当程序变大时,这种做法使语句访问,当程序变大时,这种做法使得程序缺陷可能被传到很远,得程序缺陷可能被传到很远,难于维护难于维护面向对象设计可以将数据和操作封装起面向对象设计可以将数据和操作封装起来,使数据的访问受到限制。这种将数来,使数据的访问受到限制。这种将数据和操作捆绑的方式被称为对象据和操作捆绑的方式被称为对象2024/7/132.4.1 面向对象的体系结构面向对象的体系结构面向对象的设计中,系统被看作为一些面向对象的设计中,系统被看作为一些对象的集合,消息从一个对象发送到另对象的集合,消息从一个对象发送到另一个对象,每个对象完成一定的功能一个对象,每个对象完成一定的功能Obj1Obj7Obj6Obj5Obj4Obj3Obj2CallCallCallCallCallCallCallCall面向对象的体系结构面向对象的体系结构2024/7/132.4.2 面向对象的特点面向对象的特点封装性封装性继承性继承性多态多态复用和可维护性复用和可维护性对象是对现实世界的抽象并且可以管理自己对象是对现实世界的抽象并且可以管理自己系统功能通过对象服务表示系统功能通过对象服务表示共享数据区域被取消共享数据区域被取消对象可以是分布式的对象可以是分布式的2024/7/132.4.3 面向对象的继承机制面向对象的继承机制继承的目的是代码复用继承的目的是代码复用继承提供了一个统一的接口,容易实现继承提供了一个统一的接口,容易实现多态多态AnimalLand AnimalAquatic AnimalBirdfamilyMammalsElephantWhale2024/7/132.4.4 面向对象的优点面向对象的优点面向对象设计有如下优点:面向对象设计有如下优点:1.容易维护,没有共享的数据容易维护,没有共享的数据2.可复用性好可复用性好3.映射现实世界,便于理解映射现实世界,便于理解4.容易对一个系统进行分解容易对一个系统进行分解2024/7/132.4.5 面向对象的缺点面向对象的缺点面向对象设计有如下缺点:面向对象设计有如下缺点:1.程序占用的内容大程序占用的内容大2.一个对象要和其它对象交互,必须知道一个对象要和其它对象交互,必须知道其它对象的身份其它对象的身份2024/7/132.5 主程序主程序-子程序与面向对象的体子程序与面向对象的体系结构比较系结构比较设计一个文档更新系统,对符合一定设计一个文档更新系统,对符合一定格式的输入文档进行更新,系统的功格式的输入文档进行更新,系统的功能描述如下:能描述如下:1.政治问题,将文档中的政治问题,将文档中的Japanese修改修改为为Germany2.两千年问题,将两位日期修改为四位两千年问题,将两位日期修改为四位日期日期3.对商品按字典序排序对商品按字典序排序2024/7/132.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-08Refrigerator$360 Taiwan 89-05-12 Printer$330 Germany 89-07-112024/7/132.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$330 Germany 1989-07-11Refrigerator$360 Taiwan 1989-05-12 Refrigerator$380 Germany 1988-12-082024/7/132.5.3结构化程序设计文档更新系统结构化程序设计文档更新系统结构化程序结构化程序中包含一个主程序和中包含一个主程序和5个子程序个子程序结构化设计的程序包含数据与函数,程序中的结构化设计的程序包含数据与函数,程序中的全局变量没有被封装,由每个函数访问与修改全局变量没有被封装,由每个函数访问与修改MainInputCorrectPoliticalErrorCorrectY2KErrorSortOutput2024/7/132.5.4面向对象设计文档更新系统面向对象设计文档更新系统面向对象面向对象的设计将数据、政治问题,排的设计将数据、政治问题,排序及输出功能封装在不同的类中,类之序及输出功能封装在不同的类中,类之间的数据通过参数进行传递间的数据通过参数进行传递LegacyInterface +update():voidInput-+update():voidPoliticalIssue-+update():voidSorting-+update():voidOutput-+update():void2024/7/132.6主程序主程序-子程序与面向对象体系子程序与面向对象体系结构的比较结构的比较主程序主程序-子程序和面向对象设计相似之处子程序和面向对象设计相似之处1.都属于都属于调用调用-返回风格返回风格2.主程序主程序-子程序体系结构所产生的程序中,每子程序体系结构所产生的程序中,每个软件构件都有一个唯一的程序执行入口和个软件构件都有一个唯一的程序执行入口和出口,当一个函数调用另一个函数时,另一出口,当一个函数调用另一个函数时,另一个函数个函数获得控制权获得控制权,该函数执行完后控制权,该函数执行完后控制权返回给调用函数返回给调用函数3.面向对象设计结构中,当一个对象调用另一面向对象设计结构中,当一个对象调用另一个对象的方法时,被调用对象个对象的方法时,被调用对象控制程序控制程序,运,运行完后控制权又行完后控制权又交给调用对象交给调用对象2024/7/132.6.1 两种体系结构的系统分析区别两种体系结构的系统分析区别结构化设计结构化设计面向对象设计面向对象设计根据用户需求产生数根据用户需求产生数据流图据流图根据数据流图生成结根据数据流图生成结构图构图使用结构化英语描述使用结构化英语描述算法算法通过数据关系分析产通过数据关系分析产生数据关系图生数据关系图建立领域模型类图建立领域模型类图根据用户需求产生用根据用户需求产生用例模型例模型用例实现用例实现建立对象互动图,包建立对象互动图,包括:时序图,协作图及括:时序图,协作图及状态图等状态图等2024/7/132.6.2 两种体系结构的设计区别两种体系结构的设计区别结构化设计结构化设计面向对象设计面向对象设计数据库设计,包括数数据库设计,包括数据库的正则化据库的正则化用户图形界面设计用户图形界面设计详细设计:函数的参详细设计:函数的参数,算法,返回值数,算法,返回值具体的数据库设计具体的数据库设计设计元素设计元素设计系统软件体系结设计系统软件体系结构构设计类图设计类图设计构件设计构件用户图形界面数据用户图形界面数据详细设计,设计类,详细设计,设计类,类中的方法和属性类中的方法和属性2024/7/132.6.3 两种体系结构的其它区别两种体系结构的其它区别关注点关注点功能,过程功能,过程对象,数据对象,数据复用性复用性低低高高所适合的所适合的软件项目软件项目定义明确的项目定义明确的项目稳定的用户需求稳定的用户需求需求可能经常改变需求可能经常改变的大型项目的大型项目程序结构程序结构/元素元素结构图结构图元素:函数元素:函数程序设计类图程序设计类图元素:类元素:类数据数据/操操作封装作封装数据与操作分离数据与操作分离数据外露,所有数据外露,所有方法均可访问数方法均可访问数据据类中封装了数据和类中封装了数据和操作,只有使用该操作,只有使用该数据的封装类的相数据的封装类的相关方法访问数据关方法访问数据2024/7/132.6.4 两种体系结构的总结两种体系结构的总结1.主程序主程序-子程序子程序特别特别关注功能关注功能的实现,的实现,采用自顶向下的功能划分设计方法,全采用自顶向下的功能划分设计方法,全局数据对应于函数;该体系结构主要使局数据对应于函数;该体系结构主要使用结构图来表达设计用结构图来表达设计2.面向对象面向对象的设计特别关注的设计特别关注数据与功能的数据与功能的封装封装,采用模拟现实世界的思维方法,采用模拟现实世界的思维方法,将整个系统理解为许多对象的集合;该将整个系统理解为许多对象的集合;该体系结构则使用类图来表达设计体系结构则使用类图来表达设计2024/7/13课堂讨论课堂讨论当你拿到一个软件项当你拿到一个软件项目的时候,通常想到目的时候,通常想到怎么去实现它?(结怎么去实现它?(结构化还是面向对象)构化还是面向对象)比如:我们现在要设比如:我们现在要设计一个智能电饭煲,计一个智能电饭煲,可以实现定时做饭,可以实现定时做饭,做稀饭,做干饭,做做稀饭,做干饭,做炖菜,预约启动等炖菜,预约启动等2024/7/13下节课讨论题目下节课讨论题目Windows编程的基本方法是事件系统,编程的基本方法是事件系统,请问事件系统有什么优势?达到了哪些请问事件系统有什么优势?达到了哪些程序设计的原则程序设计的原则2024/7/13作业作业1.书上书上P204页第页第1、2题题2024/7/13
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!