体系结构模型是什么?
体系结构模型,该模型描述系统如何被组织为一组相互通信的构件
体系结构分类
- 小体系结构关注单个程序的体系结构。在这个层次上,我们关注单个的程序是如何补分解为构件的。
- 大体系结构关注包括其他系统、程序和程序构件的复杂企业系统体系结构。
非功能性需求影响最大
对体系结构有显著影响的需求”的研究中确认了这一点, 他们发现非功能性需求对于系统体系结构的影响最大
体系结构视图
- 逻辑视图。这个视图将系统中的关键抽象显示为对象或对象类。应该可以将系统需求与这个逻辑视图中的实体联系起来。
- 进程视图。这个视图显示系统在运行时如何通过相互交互的进程来构成。该视图对于做出关于非功能性系统特性(例如性能、可用性)的判断很有用。
- 开发视图。这个视图显示软件如何面向开发任务进行分解;也就是说,该视图显示了软件如何分解为由单个开发者或开发团队实现的构件。该视图对于软件开发管理者和程序员都很有用。
- 物理视图。这个视图显示系统硬件以及软件构件如何分布在系统中的处理器上。该视图对于规划系统部署方案的系统工程师很有用
- 概念视图。Hofmeister等人( Hofmeister,Nord, and Soni 2000 )提出使用相似的视图,但向其中增加了一个概念视图。这个视图是一种系统的抽象视图,可以作为将高层需求分解为更详细的规格说明的基础,帮助工程师确定可以复用的构件,以及表示一个产品线(在第15章中介绍)而不是单个系统。图6-1描述了一个打包机器人的体系结构,可以作为一个概念系统视图的例子。
体系结构模型
分层体系结构
分离和独立性的思想是体系结构设计的基础,因为这可以使变更被局部化。
- 层是指一组提供相关服务的子系统,多半是通过使用其它层的服务来实现本层的功能。
- 封闭体系结构:每一层只能访问其相邻的下一层(如OSI 7层模型)
- 开放体系结构:每一层可以访问比其低的层次(JavaSwing)
知识库体系结构
客户—服务器体系结构
管道—过滤器体系结构
子系统分解
分解原则
- 耦合与内聚
- 封闭性与开放性
耦合
耦合:两个子系统之间的依赖程度,如果是松耦合关系,那么对一个子系统进行改变则对另外一个子系统影响不大
内聚
内聚
- 描述子系统内部各实现类之间的依赖程度,如果一个子系统中含有许多相互关联的类并且执行类似的操作,那么就是高内聚,反之就是低内聚。
- 我们总是希望系统是高内聚,低耦合。
封闭性
如果一个子系统能独立的被其他子系统所使用,我们说这个子系统具有封闭性
开放性
如果一个子系统对外提供的服务能够被方便扩充,我们说这个子系统具有开放性