高级软件工程 (16).ppt

上传人:hyn****60 文档编号:82468575 上传时间:2023-03-25 格式:PPT 页数:46 大小:187KB
返回 下载 相关 举报
高级软件工程 (16).ppt_第1页
第1页 / 共46页
高级软件工程 (16).ppt_第2页
第2页 / 共46页
点击查看更多>>
资源描述

《高级软件工程 (16).ppt》由会员分享,可在线阅读,更多相关《高级软件工程 (16).ppt(46页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、软件体系结构软件体系结构 1/46高级软件工程高级软件工程软件体系结构软件体系结构1软件体系结构软件体系结构 2/46高级软件工程高级软件工程存在超越对象的东西存在超越对象的东西 相关的概念包括:相关的概念包括:Pattern(Pattern(模式模式)Architecture(Architecture(体系结构体系结构)Aspect(Aspect(侧面侧面)Grady Grady BoochBooch 2001 20012软件体系结构软件体系结构 3/46高级软件工程高级软件工程1995:“Design Patterns,Elements of Reusable Object-Oriente

2、d Software”Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides1996:“Software Architecture”Mary Shaw,David Garlan1997:“Aspect-Oriented Programming”Gregor Kiczales,etc 1999:Application Server3软件体系结构软件体系结构 4/46高级软件工程高级软件工程1、Motivation2、Definition3、Benefit4、Example 内内 容容4软件体系结构软件体系结构 5/46高级软件工程高级软件工程1

3、、MotivationN.Wirth(1976):程序程序=“算法算法+数据结构数据结构”对于软件的描述不全面对于软件的描述不全面规模增加规模增加复杂性增加复杂性增加演化频繁演化频繁 需要重新考虑对软件的认识需要重新考虑对软件的认识5软件体系结构软件体系结构 6/46高级软件工程高级软件工程什么是稳定的?什么是稳定的?程序:程序:过程过程对象对象服务:服务:业务业务客户客户软件:软件:功能功能体系结构体系结构需要什么?需要什么?提供交流基础提供交流基础反映高层设计反映高层设计便于系统演化便于系统演化 贯穿软件生命周期的贯穿软件生命周期的相对稳定的相对稳定的 描述描述6软件体系结构软件体系结构

4、7/46高级软件工程高级软件工程2、Definition至今没有被广泛接受的定义至今没有被广泛接受的定义(1)Mary Shaw,David Garlan(Software Architecture:Perspectives on an emerging discipline,1996),p3:The architecture of a software system defines that System in terms of computational components and interactions among those components(2)Bass,Clements,K

5、azman(Software Architecture in Practice,1997):The software architecture of a program or computing system is the structure or structures of the system,which comprise software components,the externally visible properties of those components,and the relationships among them.7软件体系结构软件体系结构 8/46高级软件工程高级软件

6、工程Rational的观点:的观点:USDP:Unified Software Develop Process(Jacobson,1999)Use-Case DrivenArchitecture-CentricIterative and Incremental Philippe Kruchten(4+1 view):逻辑、文件、进程、设备脚本逻辑、文件、进程、设备脚本模型的视图模型的视图use-case modelanalysis modeldesign model8软件体系结构软件体系结构 9/46高级软件工程高级软件工程对软件系统结构的总体说明对软件系统结构的总体说明构件构件+关系关系+约

7、束约束构件:构件:软件系统由哪些部分构成软件系统由哪些部分构成例如:数据库、服务器等例如:数据库、服务器等关系:关系:这些部分之间的交互关系是什么这些部分之间的交互关系是什么例如:例如:RPC、共享内存等共享内存等约束:约束:这些关系有什么约束这些关系有什么约束例如:互斥、依赖、安全性等例如:互斥、依赖、安全性等与其它领域体系结构概念的比较9软件体系结构软件体系结构 10/46高级软件工程高级软件工程相关概念:相关概念:模式模式:模式是对特定场景下解决一般设计问题的类模式是对特定场景下解决一般设计问题的类和相互通信对象的描述和相互通信对象的描述框架框架:一个框架是一个可复用设计,它是由一组抽象

8、类一个框架是一个可复用设计,它是由一组抽象类及其实例间协作关系来表达的及其实例间协作关系来表达的 构件构件:构件是可以被复用的软件实体构件是可以被复用的软件实体由构件规约与构件实现两部分组成由构件规约与构件实现两部分组成构件可分为共性构件、领域构件、特定系统构件构件可分为共性构件、领域构件、特定系统构件构架构架:构架是一类特殊的构件,是软件系统体系结构的构架是一类特殊的构件,是软件系统体系结构的显式表示,显式表示,构架具有领域相关性构架具有领域相关性10软件体系结构软件体系结构 11/46高级软件工程高级软件工程软件体系结构的发展软件体系结构的发展(1)高级编程语言)高级编程语言(2)数据结构

9、与算法)数据结构与算法(3)软件结构)软件结构(Dijkstra)(4)抽象数据类型抽象数据类型(5)程序族()程序族(David Parnas)(6)软件体系结构软件体系结构是研究热点,尚未进入成熟阶段是研究热点,尚未进入成熟阶段11软件体系结构软件体系结构 12/46高级软件工程高级软件工程KWIC(Parnas):):Key Word In Context 系统接受系统接受一个有序的行集合一个有序的行集合每行是一个有序的单词集合每行是一个有序的单词集合每个单词是一个有序的字符集合每个单词是一个有序的字符集合任意行可以被任意行可以被“循环移位循环移位”(将第一个单词移至最后)(将第一个单词

10、移至最后)系统输出系统输出 按字母表排序的按字母表排序的所有行的所有所有行的所有“循环移位循环移位”行行4、Example12软件体系结构软件体系结构 13/46高级软件工程高级软件工程例如:例如:I am a teacherI give lecture of ASEWe learn software architecture nowa teacher I amam a teacher II am a teacherteacher I am a ASE I give lecture of give lecture of ASE II give lecture of ASElecture of

11、ASE I give of ASE I give lecture.13软件体系结构软件体系结构 14/46高级软件工程高级软件工程所考虑的问题:所考虑的问题:(1)处理算法的变化)处理算法的变化例如,何时进行移位例如,何时进行移位(2)数据表示的变化)数据表示的变化例如,行、单词、字符的不同存放方式例如,行、单词、字符的不同存放方式(3)系统功能的增强)系统功能的增强例如,部分单词的过滤例如,部分单词的过滤(4)性能)性能空间、时间空间、时间(5)复用)复用构件的复用程度构件的复用程度14软件体系结构软件体系结构 15/46高级软件工程高级软件工程(1)主程序)主程序/子程序加共享数据子程序加

12、共享数据输入输入主控制程序主控制程序循环移位循环移位排序排序输出输出字符集字符集索引索引排序过的索引排序过的索引输入介质输入介质输出介质输出介质15软件体系结构软件体系结构 16/46高级软件工程高级软件工程优点:优点:允许数据有效地表达允许数据有效地表达计算问题被划分到不同的模块中计算问题被划分到不同的模块中缺点:缺点:处理变化的能力不足处理变化的能力不足例如:数据存储格式的变化将影响例如:数据存储格式的变化将影响 到几乎所有的模块到几乎所有的模块不易进行处理算法的改进与系统功能增强不易进行处理算法的改进与系统功能增强对复用的支持不明显对复用的支持不明显16软件体系结构软件体系结构 17/4

13、6高级软件工程高级软件工程(2)抽象数据类型)抽象数据类型输入输入主控制程序主控制程序循环移位循环移位输出输出字符集字符集 排序排序输入介质输入介质输出介质输出介质17软件体系结构软件体系结构 18/46高级软件工程高级软件工程优点:优点:算法与数据表示可以在独立的模块中改变算法与数据表示可以在独立的模块中改变对复用的支持好对复用的支持好缺点:缺点:对功能增强支持不足对功能增强支持不足18软件体系结构软件体系结构 19/46高级软件工程高级软件工程(3)隐式调用(事件)隐式调用(事件)输入输入主控制程序主控制程序循环移位循环移位排序排序输出输出输入介质输入介质输出介质输出介质行行行行19软件体

14、系结构软件体系结构 20/46高级软件工程高级软件工程与主程序与主程序/子程序模式的不同:子程序模式的不同:数据接口更加抽象数据接口更加抽象不直接将存储格式暴露给计算模块不直接将存储格式暴露给计算模块当数据被修改时,计算体被隐式调用当数据被修改时,计算体被隐式调用交互是基于交互是基于“主动数据主动数据”进行的进行的优点:优点:对功能增强的支持好对功能增强的支持好对复用的支持好对复用的支持好 缺点:缺点:难以控制隐式调用模块的处理顺序难以控制隐式调用模块的处理顺序占用空间资源较多占用空间资源较多20软件体系结构软件体系结构 21/46高级软件工程高级软件工程(4)管道流水线)管道流水线输入介质输

15、入介质输出介质输出介质输入输入循环移位循环移位序列化序列化输出输出21软件体系结构软件体系结构 22/46高级软件工程高级软件工程优点:优点:维护处理的直接性维护处理的直接性支持复用支持复用易于修改易于修改缺点:缺点:不便于进行引入交互机制不便于进行引入交互机制对空间的利用不足对空间的利用不足22软件体系结构软件体系结构 23/46高级软件工程高级软件工程数据流系统数据流系统批处理系统批处理系统 管道管道/过滤器系统过滤器系统调用调用/返回系统返回系统 主程序主程序/子程序系统子程序系统面向对象系统面向对象系统独立构件独立构件通信进程系统通信进程系统事件系统事件系统虚拟机虚拟机解释器解释器基于

16、规则的系统基于规则的系统数据为中心的系统数据为中心的系统数据库数据库超文本系统超文本系统5、Category23软件体系结构软件体系结构 24/46高级软件工程高级软件工程Pipes and Filters(1)基本结构)基本结构(2)特征)特征过滤器是独立实体,相互之间不共享状态过滤器是独立实体,相互之间不共享状态过滤器不了解其它过滤器的信息过滤器不了解其它过滤器的信息24软件体系结构软件体系结构 25/46高级软件工程高级软件工程(3)例子)例子利用利用 Unix Shell 编写的程序编写的程序ls|find.编译器编译器词法分析词法分析语法分析语法分析语义分析语义分析代码生成代码生成2

17、5软件体系结构软件体系结构 26/46高级软件工程高级软件工程(4)优点)优点允许设计者将一个系统的整体输入允许设计者将一个系统的整体输入/输出行为理解输出行为理解为各个独立过滤器行为的简单合成。为各个独立过滤器行为的简单合成。对复用的支持好:任何两个过滤器之间,如果交流对复用的支持好:任何两个过滤器之间,如果交流的数据格式匹配,即可以连接在一起。的数据格式匹配,即可以连接在一起。系统的维护与扩展方便:新的过滤器可以添加到现系统的维护与扩展方便:新的过滤器可以添加到现有系统中,或者利用改进的过滤器替换老的过滤器。有系统中,或者利用改进的过滤器替换老的过滤器。方便系统分析:例如,吞吐量、死锁等方

18、便系统分析:例如,吞吐量、死锁等并发性好:每一个过滤器可以作为一个单独的任务并发性好:每一个过滤器可以作为一个单独的任务实现,可以与其它过滤器并行执行。实现,可以与其它过滤器并行执行。26软件体系结构软件体系结构 27/46高级软件工程高级软件工程(5)缺点)缺点经常导致批处理方式。过滤器易被认为是一个经常导致批处理方式。过滤器易被认为是一个将输入数据转换成输出数据的模块,不利于交互。将输入数据转换成输出数据的模块,不利于交互。在维护或响应两个分离但相关的数据流时,利用在维护或响应两个分离但相关的数据流时,利用管道管道/过滤器方式不易。过滤器方式不易。由于依赖于实现,这样的系统可能强迫一种最由

19、于依赖于实现,这样的系统可能强迫一种最一般的数据传输标准,从而导致了为每一个过滤器进一般的数据传输标准,从而导致了为每一个过滤器进行数据语法分析的工作,增加了复杂性,降低了性能。行数据语法分析的工作,增加了复杂性,降低了性能。27软件体系结构软件体系结构 28/46高级软件工程高级软件工程Data Abstraction and Object-Oriented Organization(1)基本结构)基本结构:对象对象:调用调用28软件体系结构软件体系结构 29/46高级软件工程高级软件工程(2)特征)特征对象负责维持本身的完整性:维护内部变量对象负责维持本身的完整性:维护内部变量对象具有信息

20、隐藏特性:对象的内部结构对其它对象具有信息隐藏特性:对象的内部结构对其它对象不可见。对象不可见。(3)优点)优点封装:封装:继承:继承:多态:多态:(4)缺点)缺点过程调用依赖于对象标识的确定过程调用依赖于对象标识的确定不同对象的操作关联性弱不同对象的操作关联性弱29软件体系结构软件体系结构 30/46高级软件工程高级软件工程Event-Based Implicit Invocation(1)基本结构)基本结构30软件体系结构软件体系结构 31/46高级软件工程高级软件工程(2)特征)特征一个部件可以广播一个或多个事件,或者向系统一个部件可以广播一个或多个事件,或者向系统注册,希望接受一个或多

21、个事件。注册,希望接受一个或多个事件。一个事件的激发隐含地导致了对其它模块的过程一个事件的激发隐含地导致了对其它模块的过程的调用。的调用。(3)优点)优点事件广播者不必知道哪些部件会被事件影响,部事件广播者不必知道哪些部件会被事件影响,部件之间关系弱。件之间关系弱。对软件复用提供有力的支持。对软件复用提供有力的支持。易于系统升级。易于系统升级。(4)缺点)缺点部件放弃了对计算的控制。部件放弃了对计算的控制。不易准确测试系统性能。不易准确测试系统性能。31软件体系结构软件体系结构 32/46高级软件工程高级软件工程Layered systems(1)基本结构基本结构内核层内核层基本工具基本工具有

22、用的系统有用的系统过程调用过程调用不同元素组合不同元素组合用户用户32软件体系结构软件体系结构 33/46高级软件工程高级软件工程(2)应用)应用分层通信协议分层通信协议操作系统操作系统数据库系统数据库系统(3)优点)优点支持基于抽象程度递增的系统设计,使得设计者支持基于抽象程度递增的系统设计,使得设计者可以把一个复杂系统按递增的步骤分解开。可以把一个复杂系统按递增的步骤分解开。支持功能扩展,每一层至多和相邻的层次交互。支持功能扩展,每一层至多和相邻的层次交互。支持复用,只要服务接口定义不变,不同的实现支持复用,只要服务接口定义不变,不同的实现可以交换使用。可以交换使用。(4)缺点)缺点适应面

23、不宽适应面不宽 33软件体系结构软件体系结构 34/46高级软件工程高级软件工程Repositories(1)基本结构基本结构 黑板黑板(共享数据)(共享数据)知识源知识源知识源知识源知识源知识源知识源知识源知识源知识源知识源知识源知识源知识源知识源知识源知识源知识源存储器存储器计算计算直接存取直接存取34软件体系结构软件体系结构 35/46高级软件工程高级软件工程(2)特点)特点知识源之间的交互只通过黑板完成知识源之间的交互只通过黑板完成问题的解决是通过知识源不断地改变黑板完成的问题的解决是通过知识源不断地改变黑板完成的(3)应用)应用(数据库)(数据库)信号处理信号处理松耦合代理数据共享存

24、取松耦合代理数据共享存取其它例子:其它例子:带有全局数据库的批处理系统带有全局数据库的批处理系统编程开发环境编程开发环境编译器等编译器等 35软件体系结构软件体系结构 36/46高级软件工程高级软件工程Interpreters(1)基本结构)基本结构输入输入模拟模拟解释解释引擎引擎存储器存储器数据存取数据存取数据数据计算状态机计算状态机内部内部解释器解释器状态状态解释执行中解释执行中的程序的程序输出输出36软件体系结构软件体系结构 37/46高级软件工程高级软件工程(2)作用)作用解释器通常被用来建立一种虚拟机解释器通常被用来建立一种虚拟机以祢合程序语义与硬件语义之间的差异以祢合程序语义与硬件

25、语义之间的差异典型的例子是专家系统典型的例子是专家系统37软件体系结构软件体系结构 38/46高级软件工程高级软件工程Process Control(Loop)(1)背景)背景当软件被用来操作一个物理系统时,软件与硬件当软件被用来操作一个物理系统时,软件与硬件之间可以粗略地表示为一个反馈循环,这个反馈循环通之间可以粗略地表示为一个反馈循环,这个反馈循环通过接受一定的输入,确定一系列的输出,最终使环境过接受一定的输入,确定一系列的输出,最终使环境达到一个新的状态。达到一个新的状态。适合于嵌入式系统,涉及连续的动作与状态。适合于嵌入式系统,涉及连续的动作与状态。38软件体系结构软件体系结构 39/

26、46高级软件工程高级软件工程(2)控制系统的定义)控制系统的定义过程输入变量控制器设置点操作变量差受控变量39软件体系结构软件体系结构 40/46高级软件工程高级软件工程(3)控制系统模型的构成)控制系统模型的构成计算型模型计算型模型过程定义:包括操作某些过程变量的机制过程定义:包括操作某些过程变量的机制控制算法:用来决定如何操纵过程变量控制算法:用来决定如何操纵过程变量数据元素数据元素过程变量:指定的输入、操纵变量等过程变量:指定的输入、操纵变量等设置点:受控变量的参考值设置点:受控变量的参考值传感器:用于获得控制所需的过程变量值传感器:用于获得控制所需的过程变量值控制环模型控制环模型建立控

27、制算法之间的关系,它收集关于过程建立控制算法之间的关系,它收集关于过程实际的和欲达到的状态,并调节过程变量,实际的和欲达到的状态,并调节过程变量,以使实际状态向目标状态发展以使实际状态向目标状态发展40软件体系结构软件体系结构 41/46高级软件工程高级软件工程Other Familiar Architecture(1)分布式处理)分布式处理特定拓扑结构:特定拓扑结构:星型、环型、令牌环、层次等星型、环型、令牌环、层次等客户客户/服务器模型:服务器模型:松散耦合的计算模式松散耦合的计算模式(2)主程序)主程序/子程序组织子程序组织主程序调用各个子程序主程序调用各个子程序通常需要提供一个控制循环

28、通常需要提供一个控制循环41软件体系结构软件体系结构 42/46高级软件工程高级软件工程(3)特定于领域的体系结构)特定于领域的体系结构DSSA:Domain Specific Software Architecture缩小考虑范围缩小考虑范围增加描述能力增加描述能力提高代码复用率提高代码复用率提高开发效率提高开发效率(4)状态转换系统)状态转换系统许多被动系统的公共组织是状态转换系统许多被动系统的公共组织是状态转换系统这种系统根据一组状态和命名的转换来定义这种系统根据一组状态和命名的转换来定义这些转换可以使系统从一种状态过渡到另一种状态这些转换可以使系统从一种状态过渡到另一种状态42软件体系

29、结构软件体系结构 43/46高级软件工程高级软件工程Heterogeneous Architecture(1)异构是不可避免的)异构是不可避免的不同风格的结构适合于不同的应用场合不同风格的结构适合于不同的应用场合新系统需要和老系统协调工作新系统需要和老系统协调工作(2)异构体系结构的复合)异构体系结构的复合层次式层次式以某种体系结构实现的系统,其组成部分以某种体系结构实现的系统,其组成部分内部可以是另一种体系结构,其连接部分内部可以是另一种体系结构,其连接部分内部也可以具有体系结构。内部也可以具有体系结构。对等式对等式系统以一种体系结构实现一个子系统,系统以一种体系结构实现一个子系统,以另外一

30、种体系结构实现另一个子系统以另外一种体系结构实现另一个子系统43软件体系结构软件体系结构 44/46高级软件工程高级软件工程(3)处理异构复合匹配问题的方法)处理异构复合匹配问题的方法不同构件之间不能协调工作的原因可能是它们不同构件之间不能协调工作的原因可能是它们事先作了对数据表示、通信、包装、同步、语法等方事先作了对数据表示、通信、包装、同步、语法等方面的假设(统称形式)。面的假设(统称形式)。解决方法(以构件解决方法(以构件A与与B为例):为例):形式形式A改变为改变为B的形式的形式在数据传输过程中从在数据传输过程中从A的形式转变为的形式转变为B的形式的形式为为B提供进口提供进口/出口转换器出口转换器A与与B协商以一种中间形式交流协商以一种中间形式交流IDLRTF44软件体系结构软件体系结构 45/46高级软件工程高级软件工程算法改变数据表示改变功能改变性能复用共享数据ADT隐式调用管道/过滤器+若干体系结构风格的比较若干体系结构风格的比较45软件体系结构软件体系结构 46/46高级软件工程高级软件工程思思 考考 题题1、模式与框架、体系结构的关系是什么?、模式与框架、体系结构的关系是什么?2、OMA、DNA、J2EE之间的共性与差别在哪里?之间的共性与差别在哪里?3、应用服务器的功能与结构是怎样的?、应用服务器的功能与结构是怎样的?46

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com