软件体系结构 PPT
•
1.1what is SA ?
• 这种全局结构的设计和规划问题包括 全局组织 结构;全局控制结构;通信和同步以及数据存 取协议;规定设计元素的功能;设计元素的组 合;物理分布;规模和性能;演化的维度;设 计方案的选择等。 • 1随着软件系统的规模和复杂性不断增加,系 统的全局结构的设计和规划变得比算法的选择 以及数据结构的设计更加重要。 • 2人们普遍认为,为系统设计一个合适的体系 结构是系统取得长远的成功的关键因素。 • 3非形式化的。
1.1what is SA ?
e.g. 每个Filter都有输入端和输出端,例如一个MPEG-1解码Filter它的输入是MPEG编码的 流数据,它的输出端是一解码过的流数据。DirectShow正是通过将不同的Filter连接在一起 完成特定的功能的,我们将这些Filter的连接叫做Filter Graph,如下图A给出是播放AVI的 Filter Graph:
1概述
• 它是一种简单的、清楚的、完善的方式 形成的 • 软件工程师需要一种更好的视角来理解 软件,并试图找到一种新的方法来构建 更复杂的大型软件系统 • SA (software architecture) • 一个简单程序到复杂系统软件的距离是 十年
1概述-需求开发的主要困难
1概述-软件危机的原因
• 软件规模越来越大 • 随着软件应用范围的增广,软件规模愈来愈大。 随着软件应用范围的增广,软件规模愈来愈大。大 型软件项目需要组织一定的人力共同完成, 型软件项目需要组织一定的人力共同完成,而多数管 理人员缺乏开发大型软件系统的经验, 理人员缺乏开发大型软件系统的经验,而多数软件开 发人员又缺乏管理方面的经验。 发人员又缺乏管理方面的经验。各类人员的信息交流 不及时、不准确、有时还会产生误解。 不及时、不准确、有时还会产生误解。 软件项目开发人员不能有效地、 软件项目开发人员不能有效地、独立自主地处理大 型软件的全部关系和各个分支, 型软件的全部关系和各个分支,因此容易产生疏漏和 错误。 错误。
软件体系结构
刘兴
计算机学院软件工程系
软件体系结构内容
• • • • • • • 1概述 2软件体系结构风格 3案例研究 4软件体系结构的分析与评估(略) 5流行的软件体系结构 6设计模式与软件架构 7企业架构师和设计师、企业软件架构简介
1概述
• • • • 我们要 其他人是怎么玩的?
汇编语言、宏替换、高级语言编译器、数据类型
1.1定义
• Dewayne Perry和A1exander Wo1f Perry和 • • • • • 软件体系结构是具有一定形式的结构化元素, 软件体系结构是具有一定形式的结构化元素,即构 件的集合,包括处理构件、数据构件和连接构件。 件的集合,包括处理构件、数据构件和连接构件。 处理构件负责对数据进行加工, 处理构件负责对数据进行加工,数据构件是被加工 的信息, 的信息,连接构件把体系结构的不同部分组合连接起 来。 这一定义注重区分处理构件、数据构件和连接构件, 这一定义注重区分处理构件、数据构件和连接构件, 这一方法在其他的定义和方法中基本上得到保持。 这一方法在其他的定义和方法中基本上得到保持。
1.1what is SA ?
• 软件系统的体系结构定义系统由计算构件和构件 之间的相互作用组成。构件可以是客户机和服务 器、数据库、过滤器或者是在一个分层系统中的 层。构件之间的相互作用在这个设计层次上可以 是简单和相似的,比如过程调用,共享变量的访 问。但是它们也可以是复杂和语义丰富的。比如 客户机-服务器协议(client-server protocols)数据库存取协议(databaseaccessing protocols),异步事件多点传送 (asynchronous event multicast)和管道 数据流(piped streams)
1.3体系结构设计原则
体系结构是指软件系统的基本和主体的形 态,也就是软件系统中“最本质”的东 西。一个软件系统的体系结构设计得好 不好,可以用“合适性、结构稳定性、 可扩展性、可复用性”这些特征量来评 估。
1.2软件体系结构研究的内容 和范畴
• 风格、设计模式、框架 • 1.体系结构风格(architecture styles) • 体系结构风格独立于实际问题,强调了 软件系统中通用的组织结构。比如管道 线,分层系统,客户机-服务器等等。
1.2软件体系结构研究的内容 和范畴
• 风格、设计模式、框架 • 2.设计模式 • 设计模式是软件问题高效和成熟的设计模板,模板包 含了固有问题的解决方案。设计模式可以看成规范了 的小粒度的结构成分,并且独立于编程语言或编程范 例。设计模式的应用对软件系统的基础结构没有什么 影响,但可能对子系统的组织结构有较大影响。每个 模式处理系统设计或实现一种特殊的重复出现的问题。 它为解决抽象部分和实现部分独立变化的问题提供了 一种通用结构。因此,设计模式更强调直接复用的程 序结构。
•
1概述-软件危机的原因
• 软件复杂度越来越高 • 软件不仅仅是在规模上快速地发展扩大, 软件不仅仅是在规模上快速地发展扩大,而且其复 杂性也急剧地增加。 杂性也急剧地增加。软件产品的特殊性和人类智力的 局限性,导致人们无力处理“复杂问题” 局限性,导致人们无力处理“复杂问题”。 所谓“复杂问题”的概念是相对的, 所谓“复杂问题”的概念是相对的,一旦人们采用 先进的组织形式、 先进的组织形式、开发方法和工具提高了软件开发效 率和能力,新的、更大的、 率和能力,新的、更大的、更复杂的问题又摆在人们 的面前。 的面前。
软件各级抽象
软件体系结构使系统在体系结构级达到重用 程序族在信息隐藏和软件结构设计上具 有相同的模式(设计模式抽象) 软件体系结构
程序族 数据类型抽象、封装、信息 隐藏、多态性
抽象数据类型 软件结构研 究的开始 数据结构 与算法 高级程序 设计语言
软件划分与构造、方便系统的开发与维护
程序=数据结构+算法
•
• Kruchten • 软件体系结构有四个角度,它们从不 软件体系结构有四个角度, 同方面对系统进行描述:概念角度描述 同方面对系统进行描述:概念角度描述 系统的主要构件及它们之间的关系; 系统的主要构件及它们之间的关系;模 角度包含功能分解与层次结构; 块角度包含功能分解与层次结构;运行 角度描述了一个系统的动态结构; 角度描述了一个系统的动态结构;代码 角度描述了各种代码和库函数在开发环 境中的组织。 境中的组织。
1.2软件体系结构研究的内容 和范畴
• 风格、设计模式、框架 • 3.应用框架(application framework) • 应用框架是整个或部分系统的可重用设计,表 现为一组抽象构件的集合以及构件实例间交互 的方法。可以说,一个框架是一个可复用的设 计构件,它规定了应用的体系结构,阐明了整 个设计、协作构件之间的依赖关系、责任分配 和控制流程。
• Hayes Roth • 软件体系结构是一个抽象的系统规范, 软件体系结构是一个抽象的系统规范, 系统规范 主要包括用其行为来描述的功能构件和 构件之间的相互连接、接口和关系。 构件之间的相互连接、接口和关系。
• David Garlan 和 Dewne Perry • 软件体系结构是一个程序/系统各构 软件体系结构是一个程序/ 件的结构、 件的结构、它们之间的相互关系以及进 行设计的原则和随时间演化的指导方针。 行设计的原则和随时间演化的指导方针。
1.1what is SA ?
• 软件设计层次
• 体系结构级:系统性能与构件之间的整体联系。这个 级别的构成元素是模块,模块通过各种方式互连,通 过操作算子将子系统组装成一个系统。 • 代码级:这个级别的设计问题包括算法和数据结构; 其构成元素是编程语言原语。 • 执行级:这个级别的设计问题包含存储器的映射、数 据格式配置、堆栈和寄存器的分配。
• Barry Boehm • 软件体系结构包括一个软件和系统构 互联及约束的集合; 件,互联及约束的集合;一个系统需求 说明的集合; 说明的集合;一个基本原理用以说明这 一构件,互联和约束能够满足系统需求。 一构件,互联和约束能够满足系统需求。
• Bass,Ctements 和 Kazman Bass, • 软件体系结构包括一个或一组软件构 件、软件构件的外部的可见特性及其相 互关系。其中, 软件外部的可见特性” 互关系。其中,“软件外部的可见特性” 是指软件构件提供的服务、性能、特性、 是指软件构件提供的服务、性能、特性、 错误处理、共享资源使用等。 错误处理、共享资源使用等。
图A 播放AVI文件的Graph Filter图 上图中每个模块分别代表了不同的Filter,媒体文件Filter从硬盘读取AVI文件,AVI分离 Filter将文件分离为音频流和视频流,AVI解码Filter对视频流进行解码并送往Video表现Filter, 由后者将各帧在显示器上显示,默认的DirectSound设备用DirectSound将音频流输 出。。
1.1定义
• Mary Shaw和David Garlan Shaw和 • • 软件体系结构是软件设计过程中的一个层次, 软件体系结构是软件设计过程中的一个层次,这一层次超越计 算过程中的算法设计和数据结构设计。 算过程中的算法设计和数据结构设计。 体系结构问题包括总体组织和全局控制、通讯协议、同步、 体系结构问题包括总体组织和全局控制、通讯协议、同步、数 据存取,给设计元素分配特定功能,设计元素的组织, 据存取,给设计元素分配特定功能,设计元素的组织,规模和性 在各设计方案间进行选择等。 能,在各设计方案间进行选择等。 软件体系结构处理算法与数据结构之上关于整体系统结构设计 和描述方面的一些问题,如全局组织和全局控制结构、关于通讯、 和描述方面的一些问题,如全局组织和全局控制结构、关于通讯、 同步与数据存取的协议,设计构件功能定义,物理分布与合成, 同步与数据存取的协议,设计构件功能定义,物理分布与合成, 设计方案的选择、评估与实现等。 设计方案的选择、评估与实现等。