软件体系结构基础

9-软件体系结构基础

软件体系结构:

一个软件系统的体系结构规定了系统的计算部件和部件之间的交互。以部件、连接件和配置组成。

部件:承载系统的主要功能、包括处理与数据。

连接件:定义了部件间的交互,是连接的抽象表现。

配置:定义了部件与连接件之间的关联方式。

理解高层抽象:

连接件是一个与部件平等的单位。

部件与连接件是比类、模块等软件单位更高层的抽象。

区分软件体系结构的抽象和实现:

以部件、连接件和配置为基本单位组织的模型就是软件体系结构的抽象,基本目的是描述软件的整体功能组织,不涉及程序设计语言提供的各种编程机制。

依赖编程机制,从部件、连接件、配置等单位向模块、构件、进程等传统单位进行转换,他们组成的模型就是软件体系结构的实现。

image-20220821231548968

体系机构的风格

①主程序/子程序风格:将系统组织成层次结构,包括一个主程序和一系列子程序。主程序是系统的控制器,负责调用子程序的执行,各子程序又是一个局部的控制器,负责调用子子程序的执行。

优点:结构清晰,易于理解,强控制性。

缺点:程序调用是一种强耦合的连接方式, 难以修改和复用。程序调用的连接方式限制了各部件的数据交互。

image-20220821233848281

②面向对象式风格:该风格将系统组织为多个独立的对象,每个对象封装其内部的数据,并基于数据对外提供服务,不同对象之间通过协作机制共同完成系统任务。(数据封装,职责驱动)

优点:内部可修改性,易开发、易理解、易复用的结构组织。

缺点:无法消除接口的耦合和标识的耦合性,引入面向对象的副作用,更难实现程序的正确性。

image-20220821235109231

③分层风格:根据不同的抽象层次将系统组织为层次式结构,每个层次被建立为一个部件,不同部件之间通常用程序调用方式进行连接。

优点:结构清晰,易于理解,支持并行开发,内部可修改性,易复用

缺点:交互协议难以修改,性能损失,难以确定层次数量和粒度。

image-20220822000126396

④MVC风格:该风格以程序调用为连接件,将系统功能组织为模型、视图、控制三个部件。

模型封装了系统的数据和状态信息,提供数据服务和执行业务逻辑

视图封装了用户交互,提供业务展现

控制封装了系统控制逻辑,根据用户行为调用需要执行的业务逻辑,并根据执行后的系统状态决定后续的业务展现。

优点:易开发性、视图和控制的可修改性,适用于网络系统开发的特征。

缺点:增加系统复杂性,模型修改困难。

image-20220822003244430

分层和MVC的区别

image-20220822005504155

界面响应,可修改性,web条件,关联方向

体系结构4+1视图模型

①逻辑视图:显示了系统中对象与对象类的关系

②开发视图:显示了软件开发过程被分解的单独组件

③进程视图:显示了系统运行时一组交互的进程

④物理视图:显示了系统硬件和软件组件如何分布在处理器上

⑤场景视图/用例视图:通过用例将其他视图串联起来。

(发际城里用)

image-20221118183033693 image-20220830004236070

体系结构设计文档描述的视角

逻辑视角:关注静态结构,类型和实现的复用。

组合视角:关注功能分解和子系统的构造。

接口视角:关注服务的定义、服务的访问。

信息视角:关注持久化信息。


软件体系结构基础
http://example.com/2022/06/15/计算机基础/软件工程/9-软件体系结构基础/
作者
PALE13
发布于
2022年6月15日
许可协议