参考自《大象UML》
对于软件来说,架构需要描述业务架构和系统架构。
业务架构的目标时为业务领域建立一个维护和扩展的逻辑结构,描述业务的构成。业务架构对我们理解客户业务有重要作用,另一方面,业务架构是软件架构的重要输入。
业务架构来源于两个主要的输入:业务用例和领域模型,如果没有业务架构,只有业务用例和领域模型 时,我们将不能看到业务全貌。不论是业务用例还是领域模型,他们都只是业务领域的一部分,尤其是业务用例本身就是一个独立的单元,仅凭这些的理解无法全貌了解业务领域。
业务架构可以使用领域宝和组织结构包来表示业务主要领域和组织结构关系。见图,图中描述了业务领域主要的业务模型及其组织结构,从某个角度来说,业务架构图很像商业模式,事实上,建立业务架构的目的除了理解业务之外,最重要的一个作用是为业务重组做准备。
业务架构图
而业务架构和核心模型的关系如下图,用例模型、领域模型所描述的业务过程,通过抽象可得到业务架构,反过来,业务架构对用例模型和领域模型有着重要的指导作用,尤其在业务架构改进的时候,某些用例会需要重组,领域模型也可能重构
业务架构与业务用例模型、领域模型的关系
软件架构需要说明业务架构如何分布在计算机环境中,并得以执行。
一个典型的软件架构包括两个视角:广度视角和深度视角
广度视角就是常见的软件层次结构,它关注软件的分层,规定每一层的职责以及层之间的通信标准
深度视角,软甲架构还需要描述深度视角,深度视角是指广度视角中每一层的详细说明,它关注每一层以及每个部分的具体实现架构
业务实体层的深度视角视图