体系结构复习资料

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

1.软件危机的原因:

软件规模越来越大软件复杂度越来越高

2.what is SA ?

Dewayne Perry和A1exander Wo1f

软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。

处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组合连接起来。

软件系统的体系结构定义系统由计算构件和构件之间的相互作用组成。构件可以是客户机和服务器、数据库、过滤器或者是在一个分层系统中的层。构件之间的相互作用在这个设计层次上可以是简单和相似的,比如过程调用,共享变量的访问。但是它们也可以是复杂和语义丰富的。比如客户机-服务器协议(client-server protocols)数据库存取协议(database-accessing protocols),异步事件多点传送(asynchronous event multicast)和管道数据流(piped streams)

Mary Shaw和David Garlan

软件体系结构是软件设计过程中的一个层次,这一层次超越计算过程中的算法设计和数据结构设计。

软件体系结构处理算法与数据结构之上关于整体系统结构设计和描述方面的一些问题,如全局组织和全局控制结构、关于通讯、同步与数据存取的协议,设计构件功能定义,物理分布与合成,设计方案的选择、评估与实现等。

Kruchten

软件体系结构有四个角度,它们从不同方面对系统进行描述:概念角度描述系统的主要构件及它们之间的关系;模块角度包含功能分解与层次结构;运行角度描述了一个系统的动态结构;代码角度描述了各种代码和库函数在开发环境中的组织。

3.软件设计层次

体系结构级:系统性能与构件之间的整体联系。这个级别的构成元素是模块,模块通过各种方式互连,通过操作算子将子系统组装成一个系统。

代码级:这个级别的设计问题包括算法和数据结构;其构成元素是编程语言原语。

执行级:这个级别的设计问题包含存储器的映射、数据格式配置、堆栈和寄存器的分配。4.风格、设计模式、框架

体系结构风格独立于实际问题,强调了软件系统中通用的组织结构。比如管道线,分层系统,客户机-服务器等等。

设计模式是软件问题高效和成熟的设计模板,模板包含了固有问题的解决方案。设计模式可以看成规范了的小粒度的结构成分,并且独立于编程语言或编程范例。设计模式的应用对软件系统的基础结构没有什么影响,但可能对子系统的组织结构有较大影响。每个模式处理系统设计或实现一种特殊的重复出现的问题。它为解决抽象部分和实现部分独立变化的问题提供了一种通用结构。因此,设计模式更强调直接复用的程序结构。

应用框架是整个或部分系统的可重用设计,表现为一组抽象构件的集合以及构件实例间交互的方法。可以说,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程。

体系结构风格、设计模式和应用框架的概念是从不同的目的和出发点讨论软件体系结构,它们之间的概念经常互相借鉴和引用。

5.软件体系结构研究的内容和范畴

新的体系机构描述语言来解决体系机构描述问题。

体系结构领域知识的总结性研究。这个领域关心的是工程师通过软件实践总结而来的各种体系机构原则和模式的分类和阐释。

针对特定的领域的框架的研究。

软件体系结构形式化支持的研究。

6.体系结构设计原则

抽象,分而治之,封装和信息隐藏,模块化,高内聚和低耦合,关注点分离,策略和实现的分离,接口和实现的分离。

可以用“合适性、结构稳定性、可扩展性、可复用性”这些特征量来评估。

合适性:即体系结构是否适合于软件的“功能性需求”和“非功能性需求”。高水平的设计师应当能够分析需求文档,判断出哪些需求是稳定不变的,哪些需求是可能变动的。于是根据那些稳定不变的需求设计体系结构,而根据那些可变的需求设计软件的“可扩展性”。

可扩展性是指软件扩展新功能的容易程度。可扩展性越好,表示软件适应“变化”的能力越强。

可复用性是指成果被复用的容易程度。

7.架构师与设计师、企业软件架构

8.

数据流系统虚拟机

批处理序列解释器

管道和过滤器基于规则系统

调用和返回系统数据中心系统(知识库)

主程序和子程序数据库

面向对象系统超文本系统

多级分层黑板

独立构件

通讯进程

事件系统

9.七种通用的风格

管道和过滤器、对象、隐式调用、层、知识库、解释器和过程调用。

10.异构体系结构

大多数系统都是由很多风格组合而成的

一种是使用层次结构

一种是允许单一的构件使用复合的连接件。

第三种组合方法是,用完全不同的体系结构风格来阐述体系结构的一个角度。

其他常见的体系结构

分布式处理(比如心跳算法)

主程序/子程序组织结构

特定领域的软件体系结构(参考模型)

状态转换系统(State Transition System)

11.流行的软件体系结构

CORBA 规范

Sun的java平台

Microsoft的.NET平台

相关文档
最新文档