软件体系结构及一些基本的概念

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件体系结构的定义 (2)Mary Shaw和David Garlan认为软件体系结 构是软件设计过程中的一个层次,这一层次超越计 算过程中的算法设计和数据结构设计。体系结构问 题包括总体组织和全局控制、通讯协议、同步、数 据存取,给设计元素分配特定功能,设计元素的组 织,规模和性能,在各设计方案间进行选择等。软 件体系结构处理算法与数据结构之上关于整体系统 结构设计和描述方面的一些问题,如全局组织和全 局控制结构、关于通讯、同步与数据存取的协议, 设计构件功能定义,物理分布与合成,设计方案的 选择、评估与实现等。

技术进步

每个新的体系结构的诞生,都给技术的进步 带来深远影响
WWW
三层结构
CORBA J2EE .NET
一个实例 JSP and Servlet
JSP + JavaBean
JSP + JavaBean +Servlet
规范化循环
土方法 专门的解决方法 实践提高 新的问题 模型与理论 规范化
体系结构不匹配的总结:
软件体系结构不匹配的原因是深层次的。
靠尝试来总结设计经验缺少规范性。
简单地改进编译、链接过程不能真正解决问题,应从 文档、描述方法等方面来解决。
为什么研究软件体系结构
软件系统规模和复杂性的增大使现有的软件工程方 法难以应对 对总体的系统结构设计和规格的说明比选择计算算 法和数据结构明显重要

捕获需求
通过对相似系统的总结、吸收,更利于理解 新的相似系统的需求 用户在旧系统基础上提出新需求

设计方案的选择
有众多已有体系结构供参考 通过对体系结构的度量,可知哪种体系结构 最有效

分析和描述复杂系统的高层属性 方便人员交流
知道了采用的体系结构,也就知道了此系统 有何优缺点 对体系结构的命名,使交流变得简单
Software Structure and Architecture
SA对SE的贡献
开发团队的组织结构 捕获需求 设计方案的选择 分析和描述复杂系统的高层属性 人员交流 技术进步 ……

开发团队的组织结构
按体系结构设计出的组件,划分开发小组 构建新的类似系统时,每个小组贡献自己的 组件
软件体系结构的定义 (3)Kruchten指出,软件体系结构有四个角度,它 们从不同方面对系统进行描述:概念角度描述系统 的主要构件及它们之间的关系;模块角度包含功能 分解与层次结构;运行角度描述了一个系统的动态 结构;代码角度描述了各种代码和库函数在开发环 境中的组织。
软件体系结构的定义
(4)Hayes Roth则认为软件体系结构是一个抽 象的系统规范,主要包括用其行为来描述的功 能构件和构件之间的相互连接、接口和关系。
软件体系结构的兴起
起初,人们把软件设计的重点放在数据结构和算法的选择上,随着软 件系统规模越来越大、越来越复杂,整个系统的结构和规格说明显得 越来越重要。软件危机的程度日益加剧,现有的软件工程方法对此显 得力不从心。对于大规模的复杂软件系统来说,对总体的系统结构设 计和规格说明比起对计算的算法和数据结构的选择已经变得明显重要 得多。在此种背景下,人们认识到软件体系结构的重要性,并认为对 软件体系结构的系统、深入的研究将会成为提高软件生产率和解决软 件维护问题的新的最有希望的途径。
体系结构不匹配问题 ——解决办法
四、桥接技术:可重用部件和当前系统部件的连接协 调。
加入部件和连接——作为不匹配部件之间的中介,完成数据转
换和协议切换,协调部件间的动作。 对部件做包装——使这些部件的输出和输入能直接和其他部件 交互。 ——比较常用 “握手”技术——即交互双方通过交换信息,然后确定双方 都可以接受的方式来进行交互。 ——在底层的部件中实现,如Modem通讯。
总结:
软件体系结构为软件系统提供了一个结构、行为和属 性的高级抽象,由构成系统的元素的描述、这些元素 的相互作用、指导元素集成的模式以及这些模式的约 束组成。软件体系结构不仅指定了系统的组织结构和 拓扑结构,并且显示了系统需求和构成系统的元素之 间的对应关系,提供了一些设计决策的基本原理。
体系结构 = 组件 + 连接件 + 约束 Architecture = Components + Connectors + Constrains
SA在SE中的地位

Guide to the Software Engineering Body of Knowledge (SWEBOK) from http://www.swebok.org/ © IEEE
SA在SE中的地位

Guide to the Software Engineering Body of Knowledge (SWEBOK) from http://www.swebok.org/ © IEEE
http://www.cs.utexas.edu/users/EWD/ http://www.cs.utexas.edu/users/EWD/ewd01xx/EWD196.PDF
Байду номын сангаас
程序=?
程序 = 算法 + 数据结构(1960’s )
程序 = 子程序 + 子程序(1970’s ) 对象 = 算法 + 数据结构 程序 = 对象 + 对象(1980’s) 程序 = 组件 + 连接件(1990’s)
体系结构不匹配问题 ——不匹配因素
不匹配问题: 基于部件的开发方法要求部件间互联, 部件是在体系结构的约束下进行开发的, 不同体系结构下的部件在互联时会发生冲突或不匹配。 导致不匹配的四个因素: 1. 部件的性质 2 .连接的性质 3 .全局体系结构的性质 4 .构造过程
体系结构不匹配问题 ——不匹配因素
软件体系结构的定义 (5)David Garlan和Dewne Perry于1995年在IEEE 软件工程学报上又采用如下的定义:软件体系结构 是一个程序/系统各构件的结构、它们之间的相互 关系以及进行设计的原则和随时间进化的指导方针 。
软件体系结构的定义
(6)Barry Boehm和他的学生提出,一个软件 体系结构包括一个软件和系统构件,互联及约 束的集合;一个系统需求说明的集合;一个基 本原理用以说明这一构件,互联和约束能够满 足系统需求。
SA之重要
好的软件体系结构,是好的软件的必要 条件。
“Good architectural design has always been a major factor in determining the success of a software system.”
第一章
软件体系结构概论
软件体系结构的兴起和发展
软件体系结构的定义 (1)Dewayne Perry和A1ex Wo1f曾这样定义:软 件体系结构是具有一定形式的结构化元素,即构件 的集合,包括处理构件、数据构件和连接构件。处 理构件负责对数据进行加工,数据构件是被加工的 信息,连接构件把体系结构的不同部分组组合连接 起来。这一定义注重区分处理构件、数据构件和连 接构件,这一方法在其他的定义和方法中基本上得 到保持。
一、部件性质 包括: 1.总体结构——构造部件的基础 构成系统框架的来自类库的复用部件功能冗余 部件中存在不需要的冗余代码 2.控制模式——哪些部件控制整个计算次序 已有的系统纳入到新的系统中时,控制事件队列互不相 容,确定控制主进程或重新设计主进程带来的工作量。 3.数据模式——部件处理数据的方式等。 部件为要处理的数据定义了一些特殊的属性。某些部件 数据组织方式对于另一些部件来说是不可行的。这就需要对数 据组织方式进行修改
体系结构不匹配问题 ——不匹配因素
体系结构不匹配问题 ——不匹配因素 2.数据模式 在软件包中限定了在交互过程中传递的 数据类型不同,必须开发数据转换程序来统一 这不同的参数。
栈和 队列参数传递 ASCll串文件 传递数据
数据转换程序
体系结构不匹配问题 ——不匹配因素
三、全局体系结构 整个系统的拓扑结构和特殊的部件、连接。
好的体系结构

与大多数好的设计一样
是一系列相容的原理和技术的产物,在项目的各
个阶段保持一致 在各种变化面前表现出弹性 在产品的整个生命周期中充当向导 重用成熟的工程知识
SA之重要

最早指出SA的重要性的 是大师Edsger Dijkstra (1930-2002)
“..the larger the project, the more essential the structuring!”(1968)
软件体系结构的定义 (7)1997年,Bass,Ctements和Kazman在《使用 软件体系结构》一书中给出如下的定义:一个程序 或计算机系统的软件体系结构包括一个或一组软件 构件、软件构件的外部的可见特性及其相互关系。 其中,"软件外部的可见特性"是指软件构件提供的 服务、性能、特性、错误处理、共享资源使用等。
SA的先哲
SA发展



1980’s 使用非正式的框图 依靠专家的特定经验 不规范、多样地使用体系结构模式和风格 1990’s 认识到了体系结构的价值 开发过程中要求体系结构文档,并开始体系结构评审 产品化、商业化的体系结构标准和组件集成框架开始出现 规范化体系结构设计中的词汇、符号和工具 软件体系结构的书籍和课程 2000’s 概念尚不统一,描述规范也不能达成一致认识,在软件开发 中体系结构尚不能发挥重要作用
软件体系结构
主讲教师:梁荣华
rhliang@zjut.edu.cn
88320869
“软件体系结构”你早就知道
Client/Server Three-tier P2P Distributed ……

“建筑体系结构”
“建筑体系结构”
“建筑” (Architecture)= 体系结构
OBST系统 以数据库为通信中心 的星形的体系结构。 阻止操作并发 , 认为 操作并发就冲突。 Aesop系统
需要分布计算操作并 发来加快速度
四、构造过程
体系结构不匹配问题 ——不匹配因素
难点: 来自不同的软件包的代码集成。 一个软件包的输入、输出能被 其他软件包识别,需要修改这 些接口。
构造和其他程序的接口
软件体系结构脱胎于软件工程,但是借鉴了 计算机体系结构和网络体系结构中的很多宝 贵的思想,成为计算机科学的一个最新的研 究方向。
解决好软件的重用、质量和维护问题 ——研究软件体系结构的根本目的
软件体系结构在国内未引起人们广泛注意的原因:
软件体系结构从表面上看起来是一个老话题,似乎没有 新东西。 与国外相比,国内对大型和超大型复杂软件系统开发的 经历相对较少,对软件危机的灾难性体会没有国外深刻, 因而对软件体系结构研究的重要性和必要性的认识还不很 充分。
建筑学特性: 建筑基础——地基、材料、材料的构件 建筑的层次性——原始建材、基础构件、整体框架
建筑模式(Pattern)——建筑的规模和形态
软件构成特性:
软件基础——计算机硬件、软件的基本组成、软件组合块
软件的层次性——对象、构件、框架 软件设计模式(Design Pattern)——软件的规模和形态
依赖于
调用软件包的基本代码
依赖于
系统定义的基本部件
当需要集成的软件较多时,会 成为非常复杂的问题。
系统代码的组成
体系结构不匹配问题 ——解决办法
一、改变可重用部件的设计; ——实现困难:得不到部件的源码。
二、软件行业组织提供统一的规范,包括符号集、新的设计机 制和工具。 三、提供可重用的软件部件的体系结构描述文档 基本部件,即用到的函数库描述; 基于相同的抽象层次的其他部件的接口描述; 部件的应用范围描述。 ——形式化描述有助于解决体系结构不匹配问题。
二、连接的性质 限定了交互过程中的:交互特性——协议 交换的数据类型——数据模式 1 .协议 并发的处理方式:由一个回调函数来接收所有的消息,该回调 函数接收到消息以后再根据不同的消息类型来触发不同的 回调函数 事件的广播机制——在建立一个连接时,用广播的方式通 知所有的其他对象一些全局状态的改变。 简单应答,各个对象在复杂操作时提供协调和同步。这种 方式较主要。 传统的顺序处理方式 发出请求→等待响应→继续下一个消息。
相关文档
最新文档