1. 软件体系结构已经从软件工程中分离出来; 在传统的软件工程中,在"需求分析"后到"软件设计"的过程中,存在一条很大的鸿沟;

 

软件体系结构则是为了解决了这个问题而产生大的;

 

2.软件体系结构: 确定了系统的组织结构(organiation) /拓扑结构(topology),以及显示了系统需求和构成元素之间的关系,提供了一些设计决策的基本原理;

理解为:

是系统的------------ > 总体框架总体架构;

是风险承担者进行交流的手段;

决定了开发组织结构;

明确了系统设计及实现的约诉;

制约了系统质量属性;

是推理及控制更为简单,有助于循序渐进的原型设计;

.....是可传递和重用的模型; 通过研究软件体系结构可预测软件质量;

 

 

3.几个概念:

 

架构:是architecture   :   它是对软件系统的系统组织,是对构成系统的  
  构件的接口,行为模式,协作关系等体系问题的决策总和。它不仅涉及  
  到结构与行为,而且还涉及到系统的使用,功能,性能,适应性,重  
  用性,可理解性,经济性和技术约束的权衡和美学考虑。   
    
框架:才是framework:它是一种为特定的领域内的应用提供可扩展模板的构架实例。

 

 

体系结构 > 架构:是architecture >  框架:才是framework

 

 

框架(Framework) 可以说,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。因此构件库的大规模重用也需要框架。

 

框架通常以构件库的形式出现,但构件(compontent)库只是框架的一个重要部分。框架的关键还在于框架内对象间的交互模式和控制流模式。    
设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,

 

 

************ >>>> 框架(Framework)> 构件(compontent)/设计模式

构件通常是代码重用,而设计模式是设计重用,框架则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。

 

体系结构>框架>设计模式是面向对象中复用粒度不一样的要素。体系结构粒度最大,它可以看成(构件,连接器,约束)的一个集合,

 

 

 

4. 描述一个软件的体系结构方法: 1995年 kruchten 提出4+1 视图模型

 

体系架构模型需求 体系的架构_架构设计

 

1.逻辑试图: 反映最终用户的需求, 支持系统的功能需求,---------> 功能试图 ---- 提供给用户看的

2.开发试图: 侧重软件开发模块的组织及管理 --------------------> 模块试图 ---- 提供给开发人员看的

3.进程试图: 侧重于系统的运行特性,主要关注一些非功能需求;如性能和可用性... > 网络环境下分布进程的操作表示..

4.物理试图: 是将软件映射到硬件上,--------------------------------> 拓扑图;

场景      : 是最重要的需求抽象,将四个试图有机联系在一起;

 

1.2 描述了系统的静态结构;

3.4 描述了系统的动态结构;

 

 

5. 常见的体系结构:

体系结构描述了系统的结构风格...............................

 

A> 分层风格; 层次系统中最广泛的应用是--->分层次通讯协议;

 

B>C2风格:compontent to compontent; 多个构件通过连接件绑定到一起形成的风格; C2

 

C>C/S :占据了重要地位,系统经历了:集中宿主计算时代-->  到C/S的演化;

::::集中计算时代:依靠大型机/小机,80年代的WAX;集中式的系统是用户共享贵重的大型机及资源;随着PC机的发展>>>>

::::C/S时代:80年代后出现了C/S,解决资源不对称及实现资源共享提出来的;主要包含:DBMS+客户服务程序+网络;有胖客户和廋客户之分;

 

D>三层C/S结构:产生于2000 年,在C/S基础上加了中间层,增加了应用服务器,负责业务逻辑;....以减轻客户端的负担.....保证了数据库的安全,客户端不能直接访问DBMS,必须通过应用服务器提供的服务才能访问;该结构分成表示层+功能层+数据层;

三层结构关键要考虑各层间的"通讯"问题~~~~~~~

 

E>B/S:属于三层结构;适合于广域网的应用;

 

F>公共对象请求代理(CORBA)结构:分布式对象技术标准,-------------> 突出特点是引入中间件;

 

G>异构结构风格

 

H>特定领域软件体系结构(RSSA) domain specticl soft aritichect

出现了系统族/程序族的概念.... 为了更好的系统重构;;;;

 

 

-------------------------------------------------------------------

 

6.基于系统体系结构的开发模型(ABSDM)

 

>>>> 传统的开发模型:   软件体系结构的确定是在分析之后,概要设计之前的位置...................这也是提出体系结构的主要原因!

 

>基于系统体系结构的开发模型 则将软件开发划分为6个过程:(体系结构======架构)

 

 1架构需求--> 2架构设计 --> 3架构文档化 -->4架构复审 --> 5架构实现 --6架构演化 并不断重复上述过程.........

 

 

 1.需求是软件的一种约束;是用户对软件的期望./2.选择系统结构风格/3.文档化主要是输出:::> "需求规格说明书"/"质量设计说明书"/4复审体系结构/5结构的实体实现/6.优化,不断完善..............

 

 

7.软件体系结构的评估方法:

 

A>调查问卷及检查表

B>基于场景的评估

C>基于度量的评估