软件体系结构基础
9-软件体系结构基础
软件体系结构:
一个软件系统的体系结构规定了系统的计算部件和部件之间的交互。以部件、连接件和配置组成。
部件:承载系统的主要功能、包括处理与数据。
连接件:定义了部件间的交互,是连接的抽象表现。
配置:定义了部件与连接件之间的关联方式。
理解高层抽象:
连接件是一个与部件平等的单位。
部件与连接件是比类、模块等软件单位更高层的抽象。
区分软件体系结构的抽象和实现:
以部件、连接件和配置为基本单位组织的模型就是软件体系结构的抽象,基本目的是描述软件的整体功能组织,不涉及程序设计语言提供的各种编程机制。
依赖编程机制,从部件、连接件、配置等单位向模块、构件、进程等传统单位进行转换,他们组成的模型就是软件体系结构的实现。

体系机构的风格
①主程序/子程序风格:将系统组织成层次结构,包括一个主程序和一系列子程序。主程序是系统的控制器,负责调用子程序的执行,各子程序又是一个局部的控制器,负责调用子子程序的执行。
优点:结构清晰,易于理解,强控制性。
缺点:程序调用是一种强耦合的连接方式, 难以修改和复用。程序调用的连接方式限制了各部件的数据交互。

②面向对象式风格:该风格将系统组织为多个独立的对象,每个对象封装其内部的数据,并基于数据对外提供服务,不同对象之间通过协作机制共同完成系统任务。(数据封装,职责驱动)
优点:内部可修改性,易开发、易理解、易复用的结构组织。
缺点:无法消除接口的耦合和标识的耦合性,引入面向对象的副作用,更难实现程序的正确性。

③分层风格:根据不同的抽象层次将系统组织为层次式结构,每个层次被建立为一个部件,不同部件之间通常用程序调用方式进行连接。
优点:结构清晰,易于理解,支持并行开发,内部可修改性,易复用
缺点:交互协议难以修改,性能损失,难以确定层次数量和粒度。

④MVC风格:该风格以程序调用为连接件,将系统功能组织为模型、视图、控制三个部件。
模型封装了系统的数据和状态信息,提供数据服务和执行业务逻辑
视图封装了用户交互,提供业务展现
控制封装了系统控制逻辑,根据用户行为调用需要执行的业务逻辑,并根据执行后的系统状态决定后续的业务展现。
优点:易开发性、视图和控制的可修改性,适用于网络系统开发的特征。
缺点:增加系统复杂性,模型修改困难。

分层和MVC的区别

界面响应,可修改性,web条件,关联方向
体系结构4+1视图模型
①逻辑视图:显示了系统中对象与对象类的关系
②开发视图:显示了软件开发过程被分解的单独组件
③进程视图:显示了系统运行时一组交互的进程
④物理视图:显示了系统硬件和软件组件如何分布在处理器上
⑤场景视图/用例视图:通过用例将其他视图串联起来。
(发际城里用)


体系结构设计文档描述的视角
逻辑视角:关注静态结构,类型和实现的复用。
组合视角:关注功能分解和子系统的构造。
接口视角:关注服务的定义、服务的访问。
信息视角:关注持久化信息。