[工学]软体系结构 南理工1概述

上传人:tia****nde 文档编号:70785916 上传时间:2019-01-18 格式:PPT 页数:47 大小:947.46KB
返回 下载 相关 举报
[工学]软体系结构 南理工1概述_第1页
第1页 / 共47页
[工学]软体系结构 南理工1概述_第2页
第2页 / 共47页
[工学]软体系结构 南理工1概述_第3页
第3页 / 共47页
[工学]软体系结构 南理工1概述_第4页
第4页 / 共47页
[工学]软体系结构 南理工1概述_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《[工学]软体系结构 南理工1概述》由会员分享,可在线阅读,更多相关《[工学]软体系结构 南理工1概述(47页珍藏版)》请在金锄头文库上搜索。

1、软件体系结构 1. 绪论,赵学龙 ,2,2019/1/18,“建筑体系结构”,3,2019/1/18,“计算机体系结构”定义是1964年C. M. Amdahl在介绍IBM 360系统时提出的:计算机体系结构是程序员所看到的计算机的属性,即概念性结构与功能特性。 “软件体系结构”的概念是20世纪90年代中期David Garlan和Mary Shaw在An Introduction to Software Architecture中提到的。,http:/www.cs.utexas.edu/users/EWD/ http:/www.cs.utexas.edu/users/EWD/ewd01xx/

2、EWD196.PDF,4,2019/1/18,软件体系结构是一个软件系统的高层结构,它高度抽象,超越了算法和数据结构,基本着眼点是系统结构和需求与实现之间的交互,是一个用于理解系统级目标的框架。 Mary Shaw和David Garlan认为,软件体系结构是软件设计过程中,超越计算中的算法设计和数据结构设计的一个层次。体系结构问题包括各方面的组织和全局控制结构,通信协议同步,数据存取,给设计元素分配特定功能,设计元素的组织,规模和性能,在各设计方案间进行选择等。,5,2019/1/18,软件体系结构对软件生命周期中的各个阶段以及项目的管理有着重要的影响。体系结构设计是基于需求分析的一个迭代的

3、过程,这就不可避免地会与需求分析阶段进行交互。体系结构的设计又是后续阶段详细设计的基础。在开发阶段,开发人员正确地理解系统的体系结构是开发工作顺利进行的前提。在测试阶段,体系结构对测试起指导作用。在维护阶段,维护中的大量时间都花费在对现存代码的理解上,如果原始的设计结构能够得到清楚和明确的表达,特别是高层次的表达,就可以大大减少花在这方面的时间,而如果不知道系统的体系结构则使维护工作很难进行。对于一些已经存在但是不知其体系结构的系统,甚至有必要进行体系结构重构。另外,体系结构对于项目的组织管理也具有重要的意义,合理的体系结构设计还有利于开发任务在开发人员之间的分配,有利于开发人员之间关系的协调

4、。,6,2019/1/18,综上所述,软件体系结构是整个软件设计成功的基础和关键所在:,软件体系结构是软件开发中各种角色之间进行交流的手段 软件体系结构是早期设计决策的体现 软件体系结构制约着软件的质量属性 软件体系结构是可重用的模型 软件体系结构影响着开发和维护组织的组织结构 软件体系结构为软件系统的整个开发过程都提供了有力的支持,7,2019/1/18,1、软件体系结构研究的主要内容,软件体系结构描述语言 体系结构描述构造与表示 体系结构的设计、分析与验证 体系结构发现、演化与重用 基于体系结构的软件开发方法 特定领域的软件体系结构 软件体系结构支持工具 软件产品线体系结构,8,2019/

5、1/18,(1)软件体系结构描述语言,软件体系结构描述语言(Architecture Description Language,简称为ADL)是一种形式化语言,它在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体的语法和概念框架。基于底层语义的工具为软件体系结构的表示、分析、演化、细化、设计过程等提供支持,包括构件、连接件和约束三个基本元素。主要的体系结构描述语言有C2,UniCon,MetaH,Aesop,SADL,Rapide,Wright等。ADL的目的就是提供一种规范化的体系结构描述,以便与人交流,并能够用提供的工具对许多实例进行分析。,9,2019/1/18,(2)体系结

6、构描述构造与表示,按照一定的描述方法,用体系结构描述语言对体系结构进行说明的结果则称为体系结构的表示,而将描述体系结构的过程称为体系结构构造。在体系结构描述方面,Kruchten提出的“4+1”模型是当今软件体系结构描述的一个经典范例,该模型由逻辑视图、开发视图、过程视图和物理视图组成,并通过场景将这四种视图有机地结合起来,比较细致地描述了需求和体系结构之间的关系。而Booch从UML的角度出发给出了一种由设计视图、过程视图、实现视图和部署视图,再加上一个用例视图构成的体系结构描述模型。IEEE于1995年成立了体系结构工作组,综合了体系结构描述研究的成果,并参考业界的体系结构描述的实践,起草

7、了体系结构描述标准IEEE P1471。,10,2019/1/18,(3)体系结构的设计、分析与验证,生成一个满足软件需求的体系结构的过程即为体系结构设计。体系结构设计的本质在于:将系统分解成相应的组成成分,并将这些成分重新组装成一个系统。软件体系结构设计是软件设计中非常重要的一个环节,软件开发过程中只要需求和体系结构确定之后,这个软件基本上也就定型了。体系结构设计有过程驱动方法和问题列表驱动方法。体系结构设计研究的重点内容之一是体系结构风格,体系结构风格在本质上反映了一些特定的元素按照特定的方式组成一个特定的结构,该结构应有利于上下文环境中的特定问题的解决。 体系结构是对系统的高层抽象,并只

8、对感兴趣的属性进行建模。由于体系结构是在软件开发过程之初产生的,因此好的体系结构可以减少和避免软件错误的产生和维护阶段的高昂代价。体系结构是系统集成的蓝本、系统验收的依据,体系结构本身需要分析与测试,以确定这样的体系结构是否满足需求。比较重要的体系结构分析(评估)方法有体系结构权衡分析方法(Architecture Tradeoff Analysis Method,简称为ATAM)、软件体系结构分析方法(Software Architecture Analysis Method,简称为SAAM)和中间设计积极评审法(Active Reviews for Intermediate Design,

9、简称为ARID)。,11,2019/1/18,(4)体系结构发现、演化与重用,对于一个已经存在但是不知道其体系结构的软件系统,对其进行维护是一件很困难的事情,这时可以通过体系结构发现来解决这个问题。体系结构发现就是从己经存在的软件系统中提取出软件体系结构,这可以帮助维护人员理解系统,保证维护工作的顺利进行。 由于系统需求、技术、环境、分布等因素的变化而最终导致软件体系结构的变动,称为软件体系结构演化。而体系结构重用是属于比代码重用更高级的设计重用。重用是软件工程领域所倡导的有效技术之一,体系结构级的重用会导致大批构件的重用,不仅极大地提高了软件开发的效率、降低了软件开发的成本,而且对于提高多种

10、软件质量都有很大的作用。,12,2019/1/18,(5)基于体系结构的软件开发方法,在本质上,软件体系结构是对软件需求的一种抽象解决方案。在引入了体系结构的软件开发之后,应用系统的构造过程变为 “问题定义软件需求软件体系结构软件实现”, 可以认为软件体系结构架起了软件需求和软件设计之间的一座桥梁。在基于构件和软件体系结构的软件开发逐渐成为主流的开发方法的情况下,已经出现了基于构件的软件工程。,13,2019/1/18,(6)特定领域的软件体系结构,特定领域的软件体系结构(Domain Specific Software Architecture,简称为DSSA)是一门以软件重用为核心,研究软

11、件应用框架的获取、表示和应用等问题的软件方法学。DSSA将软件体系结构理论应用到具体领域,因为特定领域的应用具有相似的特征,所以可以借鉴领域中己经成熟的软件体系结构。通过特定领域的软件体系结构,可以实现解决方法在某个领域内的重用。,14,2019/1/18,(7)软件体系结构支持工具,几乎每一种软件体系结构描述语言都有相应的支持工具,如Unicon, Aesop等体系结构支持环境,C2的支持环境ArchStudio等。除了软件体系结构描述语言的支持工具外,还有一些基于软件体系结构的开发方法的支持工具,例如ABC(architecture-based component composition)

12、是一种基于软件体系结构面向构件的软件开发方法,ABC-Tool就是ABC方法的支持工具。另外还有一些支持体系结构静态分析的工具、体系结构性能仿真工具等,但是与其他成熟的软件开发环境相比,体系结构的支持工具还不是很实用。,15,2019/1/18,(8)软件产品线体系结构,软件体系结构的开发是大型软件系统开发的关键环节,对于软件产品线的开发来说更是具有至关重要的作用。在这种开发生产中,基于同一个软件体系结构,可以创建具有不同功能的多个系统。在软件产品族之间共享体系结构和一组可重用的构件,可以降低开发和维护的成本。,16,2019/1/18,2 SA的定义,“There is no standar

13、d, universally-accepted definition of the term, for software architecture is a field in its infancy, although its roots run deep in software engineering. ” http:/www.sei.cmu.edu/architecture/definitions.html 软件体系结构尚处在发展期,对于其定义,目前学术界尚未形成统一意见,不同学者有不同看法。,17,2019/1/18,SA的定义,Booch, Rumbaugh, and Jacobson

14、, 1999: An architecture is the set of significant decisions about the organization of a software system, the selection of the structural elements and their interfaces by which the system is composed, together with their behavior as specified in the collaborations among those elements, the compositio

15、n of these structural and behavioral elements into progressively larger subsystems, and the architectural style that guides this organization-these elements and their interfaces, their collaborations, and their composition (The UML Modeling Language User Guide, Addison-Wesley, 1999). 体系结构是一系列重要决策的集合

16、,这些决策与以下内容相关:软件的组织,构成系统的结构元素及其接口的选择,这些元素在相互协作中明确表现出的行为,这些结构元素和行为元素进一步组合构成的更大规模的子系统,和引导这一组织包括这些元素及其接口、它们的协作、它们的组合的体系结构风格。,18,2019/1/18,SA的定义,定义1: (BoochRumbaughJacobson定义) 软件体系结构组织,元素,子系统,风格,19,2019/1/18,SA的定义,定义2: (Bass定义) Bass等人在Software Architecture in Practice一书中提到,程序或计算系统的软件体系结构是系统的一个或多个结构,包括软件构件(components)、构件的外部可视属性(propenies)和构件之间的关系。 这里的外部可视属性,是指其他构件认为该构件所具备的特征,如所提供的服务、具有的性能特点、错误处理机制、共享资源的用法等。要注意的是,此定义中,特意未指明什么是构件,什么是关系。构件既可以是对象,也可

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号