IBM提出的一种multi-point的体系结构模型,共有5个viewpoint,关注点在设计上,特别适用于迭代设计过程,由4个View(逻辑、开发、进程和物理)以及1个特殊viewpoint场景来描述体系结构,不同的涉众可选取自己关系的view来理解。
逻辑视图Logicalview,逻辑视图从总体功能组织的角度来描述软件系统的高层结构,其主要内容是软件体系结构的抽象规格,主要关注点是满足用户的各项需求,尤其是功能需求、质量属性需求和约束。以面向对象的方式对系统进行分解,分解为关键抽象,组织成对象和对象集,最终分解出component、connector、configuration等模块。(针对终端用户)
开发视图Developmentview,开发视图描述了软件体系结构在开发中的实现与演化。对子系统进行划分,说明了模块之间和子系统之间的导入导出关系。主要考虑软件模块的组织和实现(分层、复用、变更、软件管理)。(针对编程人员和软件管理者)
进程视图Process view,进程视图关注软件体系结构的运行时表现,考虑在静态结构中难以分析的性能、可靠性等非功能需求,也会描述为保障系统完整性和容错性而需要的进程并发及其分布。进程是一组任务组成的一个执行单元,程序需要被切分成不同的进程来支持并发,从而带来较高的性能和吞吐量。(针对集成人员)
物理视图将软件映射到硬件,包含网络、task以及对象映射为节点时的拓扑结构和通信,考虑与硬件相关的非功能需求。(针对系统工程师)
场景将上面的视图元素组织在一起,通过一小组重要的场景来表现各视图的工作,考虑系统一致性和验证,针对其他视图和评估者等所有用户。
2. 4+1view的示例 (重点)
公司每天都要做大量的代码处理工作:简单的语言互转(例如将Java转换为C++,或者反之),各种语言程序的自动集成与测试,对不同语言进行切片等程序分析,进行编码的转换(Unicode转换为GBK)……
为了更好地完成上述工作,该公司购买了很多工具软件。但是因为工具软件的注册数量限制,而且一台机器也无法提供足够的资源同时支持很多工具软件,所以各工具软件被分散地安装在整个局域网内,形成了可以利用的分散资源。这种分散使得各种资源的寻找和利用都面临着很大的问题,效率低下.
在局域网的每一个机器上都安装客户端:
用户可以通过客户端向服务器申请获得特定类型的资源;
用户可以通过客户端向资源的管理机器请求使用获得的资源。
局域网内有多台服务器:
服务器维护资源的分布及使用情况;
服务器可以为提出申请的用户分配相应的资源;
为了防止服务器故障导致系统崩溃,提高系统的可靠性,需要使用多台并发服务器;
系统要定期复查拥有资源机器的加入与退出情况;
定期向服务器通报最新的资源使用及空闲情况;
提供统一的资源管理接口,方便客户端对资源的远程使用;
要易于接受新的资源类型,具有好的可扩展性。
逻辑视图:
开发视图:
进程视图:
部署视图: