《软件体系结构-3软件体系结构的层次性.ppt》由会员分享,可在线阅读,更多相关《软件体系结构-3软件体系结构的层次性.ppt(60页珍藏版)》请在三一办公上搜索。
1、Software Architecture Perspective on an Emerging Discipline,By 王备战(M)05922580589(O)海韵园行政楼A座506,Chapter 3 软件体系结构的层次性,Contents:体系结构的基础和层次特性软件体系结构的层次结构模型从层次模型看软件体系结构,2/64,3/64,在构建一幢建筑物和构建一个软件系统之间存在着惊人的相似性。(From 软件架构师导读)简单而易于掌握的思想具有改变思想和认识的力量。牛顿与万有引力弗洛伊德:潜意识的存在是行为的动机。如果把软件和信息技术系统都想象成物理建筑,则:我们会看到什么?废弃的房屋
2、不开心的住户空房,3.1 从建筑学看软件的构成,4/64,体系结构需要基础:从建筑的基础性看软件构成地基、材料、材料构成三个方面从根本上决定了建筑物的结构、性能、功用、建造方法,形成了建筑的基础。构造软件同样需要基础。计算机硬件结构、软件的基本组成、构成软件的可用组块三个方面。讨论软件的体系结构必须首先建立一个基础:一旦确立了基础,各种观点的比较就有了共同的标准语言。,3.1 从建筑学看软件的构成,5/64,体系结构需要层次:从建筑的层次性看软件构成。建筑是由基本材料到基础构件再到整体框架逐层次发展和构成的历程。软件的体系结构也是由使用最基本的材料开始,到认识常用基础构件再到组装和构造整体框架
3、的发展过程。,3.1 从建筑学看软件的构成,6/64,体系结构需要模式:从建筑的组合性看软件构成形态和构件组成了建筑模式。20多年建立了现代建筑学的250余种“场景问题解决方案”模式,涵盖不同的规模和形态这些建筑学的思想再软件结构的研究中也得到了重视,提出并发展了软件“软件设计模式”的概念,进而又提出了“软件体系结构模式”的概念。,3.1 从建筑学看软件的构成,7/64,体系结构需要清晰的角色划分:从建筑业看各个角色的划分。,3.1 从建筑学看软件的构成,8/64,软件设计的物质基础是当前的计算机硬件,它决定了软件设计和实现的出发点。当前硬件的变革表现在两个方面非冯.诺依曼运行机制的产生并行处
4、理为特征的高性能计算机结构,3.2 软件的物质基础,9/64,计算机硬件体系结构软件是对一组数据进行处理的一串指令。根据处理指令流和数据流的数量,计算机分为:SISDSIMDMISDMIMD,3.2 软件的物质基础,10/64,多处理机系统属于MIMD系统多处理机系统分为共享存储器分布存储器工作在统一的操作系统下进行资源管理挑战:并行算法和软件的设计,3.2 软件的物质基础,11/64,分布计算系统多台计算机通过网络连接起来的大系统分布存储的多处理机系统但各自运行独立的操作系统,3.2 软件的物质基础,12/64,结论多处理机需要并行处理(解决并行任务的调度和自动分解),对软件设计提出了复杂的
5、要求,使软件设计的复杂度大大提高我们以讨论串行计算机环境下的软件体系结构为主,3.2 软件的物质基础,13/64,任何具有固定组成形式的数据、代码、数据集合、代码序列、数据和代码的结合体都可以称作结构。无论多么高层的结构,都是建立在基础结构之上的。软件结构的问题从最初的最基本、最底层的描述过渡到越来越高、越来越抽象的层次上。作为软件结构基础的思想和概念,包括四个方面:结构化控制流结构化连接模式数据结构抽象数据类型,越来越抽象,3.3 软件的结构基础,14/64,结构化控制流顺序序列转向语句goto 过程调用,3.3 软件的结构基础,15/64,结构化控制流条件语句if then if then
6、 else 开关语句Swithch Case value 1 Case value n,3.3 软件的结构基础,16/64,结构化控制流循环语句For While do Repeat untilBreakContinue,3.3 软件的结构基础,17/64,结构化控制流 事件/异常语句On goto 中断/事件控制Set to Set on/off,3.3 软件的结构基础,18/64,部件连接方式部件连接器:完成部件与部件之间的连接部件:数据、外部设备、程序段实现部件连接的四种方式过程调用远程过程调用事件触发服务连接,3.3 软件的结构基础,19/64,部件连接方式过程调用方式部件之间通过过程
7、、函数或方法实现连接必须知道对方部件的标识、对外提供的操作过程标识、参数设置远程过程调用RPC网络分布环境下的过程调用通过代理部件完成部件之间的连接,3.3 软件的结构基础,20/64,部件连接方式中断/事件触发方式通过硬件提供的中断及其控制机制实现部件连接的方式用特定名称标识中断号码就形成事件触发的部件连接方式服务连接方式服务连接方式由接口、分析器、执行器构成请求部件 接口 分析器 执行器 请求部件各类解释器、功能服务器采用的就是这种连接方式,3.3 软件的结构基础,21/64,任何具有固定组成形式的数据、代码、数据集合、代码序列、数据和代码的结合体都可以称作结构。无论多么高层的结构,都是建
8、立在基础结构之上的,作为软件结构基础的思想和概念,包括四个方面:结构化控制流结构化连接模式数据结构抽象数据类型,3.3 软件的结构基础,22/64,结构化连接模式:建立在基本控制流之上的高层次抽象,属于控制模式。指部件与部件连接关系的构成形式。条件连接循环连接查询连接中断/事件方式共享信息方式,3.3 软件的结构基础,23/64,结构化连接模式条件连接,部件A,部件 1,部件 n,条件,3.3 软件的结构基础,24/64,结构化连接模式循环连接例如编译系统中:调用词法分析、语法分析、语义分析、目标代码生成、代码优化、链接等模块,部件A,部件 1,部件 n,3.3 软件的结构基础,25/64,结
9、构化连接模式查询方式两个部件信息源:负责信息的采集信息处理部件:周期性地对信息源进行信息查询对于随机发生的信息源事件无法达到快速的实时处理,信息获取和处理构件,信息源 1,信息源 n,3.3 软件的结构基础,26/64,结构化连接模式 中断/事件触发方式处理构件不主动关心信息源的情况信息处理部件在信息源中断事件触发下启动工作可以对随机发生的信息源事件进行快速的实时处理,处理构件,信息源 1,信息源 n,3.3 软件的结构基础,27/64,结构化连接模式共享信息模式共享信息区构件进行信息源和信息处理构件的信息交换和传递需要考虑信息存取的同步和互斥问题,信息源 1,信息源 n,共享信息交换区,信息
10、处理构件,3.3 软件的结构基础,28/64,任何具有固定组成形式的数据、代码、数据集合、代码序列、数据和代码的结合体都可以称作结构。无论多么高层的结构,都是建立在基础结构之上的,作为软件结构基础的思想和概念,包括四个方面:结构化控制流结构化连接模式数据结构抽象数据类型,3.3 软件的结构基础,29/64,基本数据类型(数据结构)是继规范控制和结构化设计后在软件研究和设计中发挥巨大促进作用的软件结构概念在表达软件体系结构的时候离不开基本的数据结构,是体系结构的基本和重要方面Java 10的杂质已经让位与体系结构和更高层的结构常见的数据结构线性结构树形结构复杂结构文件结构,3.3 软件的结构基础
11、,30/64,任何具有固定组成形式的数据、代码、数据集合、代码序列、数据和代码的结合体都可以称作结构。无论多么高层的结构,都是建立在基础结构之上的,作为软件结构基础的思想和概念,包括四个方面:结构化控制流结构化连接模式数据结构抽象数据类型,3.3 软件的结构基础,31/64,抽象数据结构是一个关于软件分块或者部件的数学模型定义了所描述的部件的构成和构成成员之间的关系以及作用在部件构成之上的合法的操作和操作的性质与其在计算机内的具体的表示和实现无关定义了由一个值域和定义在该值域上的一组操作组成从类型的概念把握部件抽象数据类型的定义,四元组(D,R,P,S)表示,3.3 软件的结构基础,32/64
12、,任何具有固定组成形式的数据、代码、数据集合、代码序列、数据和代码的结合体都可以称作结构。无论多么高层的结构,都是建立在基础结构之上的,作为软件结构基础的思想和概念,包括四个方面:结构化控制流结构化连接模式数据结构抽象数据类型补充面向对象进程及其运行环境分时并发计算资源共享/并行同步实时系统,3.3 软件的结构基础,33/64,面向对象20世纪60年代提出的Simula67,Smalltalk80建立在抽象数据类型基础之上基本概念:对象、类、封装、继承、多态、方法类的层次性增加了代码的复用信息隐藏保证的对象行为的可靠性封装提高了对象作为一种模块的内聚力,3.3 软件的结构基础,34/64,进程
13、60年代初引入的概念定义进程是可以并行执行的计算部分,是一个独立的可以调度的活动进程执行某个任务时,需要分配和释放各种资源行为的规范构成程序,程序在处理机上的执行活动叫进程程序是进程的脚本,进程是程序的动态执行过程一个进程可以执行一个或者几个程序不同的进程可以包含同一个程序进程具有并行特征进程必须建立独立的数据环境(确保进程间不发生干扰)在串行计算机上,进程处理是实现程序并行和分时运行的必不可少的机制进程概念的进一步发展,提出和实现了线程等概念,3.3 软件的结构基础,35/64,分时并发计算对分时系统的需求引入基于进程的多道程序技术后使机器的利用率得到的改善,但仍然不能满足用户的需求。对任务
14、控制能力的失去(小计算量的长事件等待)、希望多个操作能同时进行分时系统的基本特征同时性独立性及时性交互作用性实现分时的方法时间片,3.3 软件的结构基础,36/64,资源共享/并行同步并行执行的任务同时需要同一个硬件和软件资源资源共享、竞争的问题并行执行的任务之间可能存在某种受限的逻辑或时序关系进程同步问题解决办法:信号量互斥信号:用于资源共享同步信号:用于任务同步,3.3 软件的结构基础,37/64,实时系统实时是指对于特定事件处理响应的高速度特性,或者指所提供的计算或服务反映最新信息状态的现实特性。实时是相对于用户容许的响应时间或容许的滞后时间,只要满足用户对时间的要求,皆可称作实时的分时
15、与实时分时的目标是提供多个用户可同时使用同一台机器或多个程序可在同一台机器上运行的软件环境实时强调的是系统对特殊时间或请求的及时响应性实时系统的实现在分时控制下的循环查询模式和事件/中断模式实时系统的特性实时时钟管理负载控制能力高可靠性,3.3 软件的结构基础,38/64,分而治之的思想横向纵向 层次性一直都是软件的问题分析和设计实施的基本和具有普遍适用的思想方法OSNetwork层次系统(Layered Systems)是一种体系结构风格,3.4 软件的层次结构模型,39/64,计算机网络的体系结构,应用层,表示层,会话层,传输层,网络层,链路层,物理层,应用层,表示层,会话层,传输层,网络
16、层,链路层,物理层,第1层协议,第2层协议,第3层协议,第4层协议,第5层协议,第6层协议,第7层协议,3.4 软件的层次结构模型,40/64,计算机操作系统的体系结构,计算机硬件(CPU、内存、I/O),基本输入输出,操作系统内核,系统调用,语言处理、系统工具、系统应用、应用程序,Shell解释运行,3.4 软件的层次结构模型,41/64,层次体系结构的对比、总结都是从硬件的构成和连接的基础开始系统设计中都考虑道了系统的升级和扩展性、兼容性建立在各基础层服务之上的系统,对于性能可以建立可追踪的分析估计以上两个体系结构的不同点上层对下层的隔层之间是否发生直接连接或调用关系以上体系结构为复杂软件
17、的分层设计提供了典范,体系结构的层次风格主要因此而得到认识的。,3.4 软件的层次结构模型,42/64,建筑的发展经历了从认识建筑材料到采用基础构件、到建立整体结构的过程。软件的发展和构造也具有类似建筑的性质。任何软件的完整结构都具有层次关系:特定的软件需要特定的硬件环境运行不存在不需要下层支持的抽象的上层结构或框架层次性是软件体系结构的不变性质,是软件构成的共同规律,3.5 软件体系结构的层次模型,3.5 软件体系结构的层次模型,第6层 应用层,第5层 系统结构模式层,第4层 资源和管理调度层,第3层 基础控制描述层,第2层 软化的硬件层,第1层 计算机硬件,软件体系结构的层次模型,44/6
18、4,硬件基础层软件运行的物质基础软化的硬件层对硬件结构和性能抽象的基础上,实现硬件的操作和控制描述软化的硬件层处理器:状态和指令集合中断:状态和中断服务,3.5 软件体系结构的层次模型,45/64,基础控制描述层建立在高级程序语言描述上的纯粹软件描述层,包括了高级语言所支持的所有程序控制和数据描述概念程序控制概念:顺序、条件、选择、循环、变量、参数、过程、函数、模块数据描述的概念:数组、队列、链表、堆栈、树、图、指针、记录支持该层面的软件系统模型主程序/子程序、结构化程序、模块化程序、面向对象程序支持该层面的设计工具程序设计语言、结构化分析、面向对象分析设计,3.5 软件体系结构的层次模型,4
19、6/64,资源和管理层作用:在基础控制描述层建立的一切数据对象和操作,都需要在操作系统的协调和控制下才能实际的实现其设计的作用和功能。进程管理、消息处理、I/O etc.该层考虑的设计模式共享资源、同步、分时系统、异常处理、并行、进程、线程、消息、远程调用 etc.该层的软件系统模型进程控制、分时系统、消息机制 etc.,3.5 软件体系结构的层次模型,47/64,系统结构模式层最高层次的软件结构概念属于体系结构风格或系统级别的设计模式最高的抽象描述层该层包含的概念有:解释器、编译器、编辑器、管道/过滤器、黑板、C/S、B/S、框架 etc.,3.5 软件体系结构的层次模型,48/64,应用层
20、从纯粹应用领域出发所建立的系统结构概念是系统结构模式层的概念经过领域应用命名的直接引用企业管理、公文处理、控制系统、CAD系统、ERP系统 etc.,3.5 软件体系结构的层次模型,49/64,3.5 软件体系结构的层次模型,50/64,3.5 软件体系结构的层次模型,51/64,3.5 软件体系结构的层次模型,52/64,体系结构的层次模型构成了SA的结构体系、知识体系。原因如下:软件研究的过程就是SA从基础到高层逐步发展的过程SA的概念是建立在软件研究和技术成果之上,是软件发展过至今的产物,3.6 软件体系结构的体系,53/64,层次模型对软件体系结构的认识体系结构是关于软件的构成部件及其
21、连接的分层的结构框架体系结构包括软件的内在概念和外在操作结构体系结构分析与设计涵盖并指导着从逻辑结构设计到运行实现的软件工程的全部过程,3.6 软件体系结构的体系,54/64,体系结构的构成基础体系结构是计算机技术发展成熟的必然产物基础包括:对硬件的软件抽象、基础控制描述、资源管理调度、系统结构模式、领域知识SA研究是整个软件领域几十年研究的继承、概括和发展,3.6 软件体系结构的体系,55/64,体系结构的描述抽象抽象在软件技术研究中一直发挥着重要的作用,每次抽象都标志着技术发展从经验向理论的转折,每次抽象都在前一次抽象基础上建立的语言(01,汇编高级);ADT(data,operation
22、);进程(并行和任务调度);事件和消息(中断);虚拟机、微内核(OS);分布式(network);领域模型(特定应用问题);SP、OO、UML(软件结构)etc.SA是目前对软件结构的最高级抽象,该抽象建立在当强所有关于软件的研究成果之上的,3.6 软件体系结构的体系,56/64,体系结构的语法和语义体系结构的组成需要使用特定的语言进行描述词汇、语法、语义、语用SA的层次性反映了几十年软件描述的基础词汇、语法集合、使用方法规范化、形式化,3.6 软件体系结构的体系,57/64,体系结构的性能分析软件的性能功能特性(Functional Properties)非功能特性(NonFunctiona
23、l Properties)只有最上层结构关系而无深层次实现描述是无法实现非功能性分析体系结构层次模型的资源及管理调度和基础控制描述层为研究非功能特性提供了支持,3.6 软件体系结构的体系,58/64,体系结构代码生成软件设计的目的是建立正确高效运行的软件代码系统SA应该支持代码的生成,提供对各个层次的部件和连接器的深层分析和表达目前,SA研究重点在:体系结构风格体系结构形式化体系结构描述语言代码的生成,3.6 软件体系结构的体系,59/64,体系结构的知识体系软件体系结构的层次模型说明了软件的构成和设计知识贯穿散布在计算机各领域中软化的硬件层:组成、汇编、接口基础控制描述层:语言、DS、OO、DB资源及管理调度层:OS系统结构模式层:DB、SE、DC应用层:Background建立统一、系统的软件知识体系,3.6 软件体系结构的体系,Thank You!,