“4+1”视图,是指从5个不一样视角来描述软件体系结构。
“4+1”分别指:编程
逻辑架构的描述能够围绕前四个视图进行组织,而后结合用例或场景进行说明,造成第五个视图。
每一个视图只关心系统的一个侧面,5个视图结合起来,才能反映系统的所有内容。安全
软件设计能够从不一样的概念角度进行描述和记录,这些角度一般被称为视图。网络
“视图表示软件体系结构的一部分,它显示软件系统的特定属性”架构
不一样的视图涉及与软件相关的不一样问题。并发
总之,软件设计是由设计过程产生的多方面的产物,一般由相对独立的正交视图组成,能够结合建筑视图理解。异步
当使用面向对象的设计方法时,逻辑视图对应设计的对象模型,经常使用描述方法有UML类图、E-R图。编程语言
逻辑架构主要支持功能需求,即系统应该为用户提供什么样的服务。
系统被分解成一组关键抽象,以对象或对象类的形式从问题中表述。分布式
类的设计遵循抽象、封装和继承的原则,这种分解不只是为了进行功能分析,也是为了理清系统各个部分的通用机制和设计元素。工具
过程架构关注设计的并发和同步方面,考虑了一些非功能性需求,好比性能和可用性。
过程视图能够在几个抽象层次上进行描述,每一个抽象层次处理不一样的关注点:性能
主要任务是经过一组定义良好的任务间通讯机制进行通讯:基于同步和异步消息的通讯服务、远程过程调用、事件广播等。
次要任务是能够经过集合或共享内存进行通讯,避免重大任务在同一过程或处理节点上进行配置假设。
物理视图描述软件到硬件的映射,主要反映在分布式方面。
物理架构主要考虑系统的非功能性需求,如可用性、可靠性(容错性)、性能(吞吐量)和可扩展性。
常见物理配置:
开发视图描述软件在其开发环境中的静态组织。
开发架构的重点:
系统的开发架构由模块和子系统图表示,表示成“导出”和“导入”关系。只有当软件的全部元素都被识别以后,才能描述完整的开发架构。
在很大程度上,开发架构考虑发展的便利性、软件管理、重用或通用性,以及工具集或编程语言施加的约束。
开发视图是需求分配的基础,便于开发团队分配工做,有助于成本评估和提早计划、监控项目进度、软件重用、可移植性和安全性的推理。经过开发视图,容易得出项目开发人员的分工配置。
实际应用中,开发视图会在逻辑视图的基础上增长大量内容,好比大量接口、辅助类等。
架构的描述决策能够围绕前四个视图进行组织,而后由一些选定的用例或场景(成为第五个视图)进行说明。
其余四个视图中的元素,能够经过一些重要的场景或用例进行更好的展现,好比:
并不是全部的软件架构都须要完整的“4+1”视图。
无用的视图能够从架构描述中省略,例如:
场景视图在任何状况下都有用。