4-软件体系结构概念解析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件体系结构王映辉博士(后),教授,博导Mail:wyh_925@163.com22020年3月15日6时5分软件体系结构Part1:软件体系结构概念P1-1、软件体系结构的定义P1-2、若干研究内容P1-3、需要研究的问题Part1:软件体系结构概念Mail:wyh_925@163.com42020年3月15日6时5分P1-1、软件体系结构的定义1)背景2)关于软件体系结构的定义Mail:wyh_925@163.com52020年3月15日6时5分P1-1、软件体系结构的定义1)背景60年代以前,即以Algol60为代表的高级语言出现以前,软件开发基本上都是汇编程序设计。-冯诺依曼结构随着高级语言的应用,特别是70年代中后期,由于结构化开发方法的出现与广泛应用,软件开发中出现了概要设计与详细设计,软件结构已经作为一个明确的概念出现在系统的开发中。-基于功能模块的软件结构Mail:wyh_925@163.com62020年3月15日6时5分80年代中期--90年代初,面向对象语言和面向对象开发方法开始出现并得到快速发展。从多个侧面,支持软件结构的设计。特别是,90年代以后,提出了基于构件的软件开发。此时以软件过程为中心,强调软件开发采用构件化技术和体系结构技术,要求开发出的软件具备很强的自适应性、互操作性、可扩展性和可重用性。-基于构件的软件体系结构在这一阶段:软件体系结构已经作为一个明确的文档和中间产品存在于软件开发过程中;软件体系结构作为一门学科逐渐得到人们的重视,并成为软件工程领域的研究热点。Mail:wyh_925@163.com72020年3月15日6时5分新一代计算语言的出现,均蕴涵着软件体系结构的研究!二进制位基本指令过程代码类代码系统构造子机器语言汇编语言过程式高级语言OO语言SA描述语言体系结构技术的研究,使软件复用从代码复用发展到设计复用和过程复用。计算机语言的变迁与复用的提升Mail:wyh_925@163.com82020年3月15日6时5分纵观SA技术发展过程,大体上经历了四个阶段:①无体系结构设计阶段:研究主题集中于计算模型与高级语言的开发。其中遵循了冯诺依曼体系结构②程序结构设计阶段:开展了有关结构化程序设计的研究③模块结构阶段:出现了多种模块结构。并以控制流图、数据流图等工具,支持算法结构与程序结构的设计;④构件结构阶段:面向问题,以描述系统的高层抽象结构为中心,不关心具体的实现细节,并从多个侧面,支持多种模式的软件体系结构设计。Mail:wyh_925@163.com92020年3月15日6时5分结论:(1)观点:D.E.Perry将软件体系结构视为软件开发中第一类重要的设计对象。BarryBoehm明确指出:“在没有设计出体系结构及其规则时,那么整个项目不能继续下去;而且体系结构应该看作软件开发中可交付的中间产品”。(2)作用:为软件开发中不同人员提供了共同交流的语言;体现并尝试了系统早期的设计决策;系统设计的抽象:基于体系结构的软件开发,为实现框架和构件的共享与复用提供了有力的支持。Mail:wyh_925@163.com102020年3月15日6时5分2)关于软件体系结构的定义[1]Garlan&Shaw:软件体系结构(SA)是一个三元组:SA={components,connectors,constrains}其中:构件(component)可以是一组代码,如程序的模块;也可以是一个独立的程序(如数据库的SQL服务器)连接件(connector)是关系的抽象,用以表示构件之间的相互作用。如过程调用、管道、远程过程调用等限制(constrain):用于对构件和连接件的语义说明Mail:wyh_925@163.com112020年3月15日6时5分[2]CFRP:软件体系结构(SA)是一个四元组:SA={elements,interfaces,connections,connection-semantics}其中:元素(elements):构成软件系统的实体,包括一组处理元素和一组数据元素接口(interface):每个元素有一个接口连接(connection):元素之间关系的模型,用于生成系统的拓扑结构连接语义(connection-semantics):用于连接的语义描述。包括静态连接语义(如实例连接)和动态连接语义(如消息连接,过程调用),信息转换协议(如管道)等。Mail:wyh_925@163.com122020年3月15日6时5分[3]Perry&Wolf:软件体系结构(SA)是一个三元组:SA={elements,form,rational}其中:元素(elements):构成结构的实体。分成三类:处理元素(processingelements),数据元素(dataelements),连接元素(connectingelements)。形式(form):一组专有的特性(properties)和关系(relationship)。其中特性用于限制软件体系结构元素的选择,关系用于限制元素组合的拓扑结构。准则(rational):元素组合的“生成”规则。Mail:wyh_925@163.com132020年3月15日6时5分[4]Vestal:软件体系结构(SA)是一个三元组:SA={components,idioms/styles,commonpatternsofinteraction}其中:构件(components):构成软件系统的实体。固定术语/风格(idioms/style):一些特定的元素、按照特定的方式组成一个特定结构,该结构应有利于上下文环境下的特定系列问题的解决。通用互操作模式(commonpatternsofinteraction):关系的模型化。用于生成系统的拓扑结构。Mail:wyh_925@163.com142020年3月15日6时5分[5]IEEE610.12-1990软件工程标准词汇中的定义:SA={component,connector,environment,principle};即软件体系结构是一个四元组,是以:构件,构件之间的关系,构件与环境之间的关系为内容的某一系统的基本组织结构,以及指导上述内容设计与演化的原理。Mail:wyh_925@163.com152020年3月15日6时5分[6]Boehm:软件体系结构是一个五元组:SA={components,connections,constraints,stakeholders'needs,rationale}软件体系结构的五要素为:构件;连接件;约束;涉众(风险承担者)需求;能够展示由构件、连接件和约束所定义的系统在实现时如何满足系统不同人员需求的原理。Mail:wyh_925@163.com162020年3月15日6时5分、定义[1]和定义[2]都强调了体系结构是由构件、连接件及其约束(或连接语义)组成的。即从构造的角度,审视软件体系结构。根据上述各种体系结构的定义,可以发现:[1]Garlan&Shaw:软件体系结构(SA)是一个三元组:SA={components,connectors,constrains}[2]CFRP:软件体系结构(SA)是一个四元组:SA={elements,interfaces,connections,connection-semantics}Mail:wyh_925@163.com172020年3月15日6时5分、定义[3]和定义[4]出于可用性的考虑,通过强调体系结构风格和规则等,精化了定义[1]和定义[2]。根据上述各种体系结构的定义,可以发现:[3]Perry&Wolf:软件体系结构(SA)是一个三元组:SA={elements,form,rational}[4]Vestal:软件体系结构(SA)是一个三元组:SA={components,idioms/styles,commonpatternsofinteraction}Mail:wyh_925@163.com182020年3月15日6时5分、定义[5]和[6]不仅强调了体系结构的基本构成,还强调了体系结构的环境。不同的环境(需求、设计决策),将影响设计与演化的原理。即以质量角度,审视软件体系结构。根据上述各种体系结构的定义,可以发现:[5]IEEE610.12-1990软件工程标准词汇中的定义:SA={component,connector,environment,principle};[6]Boehm:软件体系结构是一个五元组:SA={components,connections,constraints,stakeholders'needs,rationale}Mail:wyh_925@163.com192020年3月15日6时5分结论:软件体系结构的要素,主要涉及:*构成成分(构件、连接件);*拓扑结构(构件和连接件构成);*限制;*设计原则与指导方针。根据上述各种体系结构的定义,可以发现:Mail:wyh_925@163.com202020年3月15日6时5分P1-2、若干研究内容目前,软件体系结构研究主要集中在如下几个领域展开:1)软件体系结构描述语言ADL2)体系结构构造3)软件体系结构分析、设计、验证4)软件体系结构发现、演化与复用5)基于体系结构的软件开发方法研究6)特定领域的体系结构DSSA7)软件体系结构支持工具Mail:wyh_925@163.com212020年3月15日6时5分P1-2、若干研究内容1)软件体系结构描述语言ADLDarwin和Wright分别将演算和CSP作为其数学基础,适用于分布、并发类型的体系结构描述C2是一种基于构件和消息的ADL,适用于大型频繁交互的层次型图形用户界面的软件的体系结构描述ACME是一种体系结构互换语言,支持从一种ADL向另一种ADL规格说明转换。其它比较有影响的ADL,如Aesop,Unicon,Rapide,SADL,MetaH,Weaves等。Mail:wyh_925@163.com222020年3月15日6时5分2)体系结构构造体系结构描述语言体系结构概念体系结构表示这一过程称为体系结构构造。在体系结构描述方面:P.Kruchten提出的“4+1”模型:即逻辑视图、开发视图、过程视图和物理视图,并通过场景将这四个视图有机的结合起来,比较细致地描述需求和体系结构之间的关系。Mail:wyh_925@163.com232020年3月15日6时5分N.Medvovonic则总结了用UML描述体系结构的三种途径:①不改变UML用法而直接对体系结构建模;②利用UML支持的三种扩充机制(Stereotype,TaggedValue,Constraints)扩展UML的元模型实现对体系结构建模概念的支持;③对UML进行扩充,增加体系结构建模元素。在体系结构描述方面:Booch从UML的角度,给出了一种由设计视图、过程视图、实现视图和布署视图,再加上一个用例视图的体系结构描述模型,同时给出一种体系结构元模型。UML描述观:Mail:wyh_925@163.com242020年3月15日6时5分事实上,判断一个语言是否适合用作体系结构描述语言的关键在于:它能否表达体系结构描述语言应该表达的概念与抽象。如果需要转化,其复杂性如何。IEEEP1471标准:IEEE于1995年成立了体系结构工作组(AWG),综合体系结构描述研究成果,并参考业界的体系结构描述的实践,起草了体系结构描述框架标准即IEEEP1471。该标准框架强调体系结构视点(Viewpoint)的概念,并从多个视点描述体系结构。Mail:wyh_925@163.com252020年3月15日6时5分3)软件体系结构分析、设计、验证体系结构分析:包括结构分析、功能分析和性能分析SAAM:Kazman等人提出了一种体系结构性能分析的方法SAAM,并运用场景技术,提出了基于场景的结构分析方法。ATAM:MarioR.Barbacci等人则提出了

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功