更新时间:2024-08-30 GMT+08:00
分享

逻辑模型

逻辑模型描述系统的逻辑功能模块分解,将系统分解为相应的逻辑功能元素,并描述各逻辑功能元素之间的关系。元素介绍如下表所示:

表1 逻辑模型元素介绍

元素名

图标

含义

System

广义上,系统是指提供给市场,被客户注意、获取、使用或者消费,并能满足客户某种需求的载体,包括各种有形的物品、无形的电子产品、服务及观念。

狭义上,系统指能独立满足客户某种需求、并符合客户的理解及业界划分习惯的实体。

SubSystem

子系统是一个独立的能够满足特定功能的组合,通过一个或多个它所实现的接口来提供行为。

  1. 完全封装自己的内容,通过接口提供行为。
  2. 可由组件/模块或更小的子系统组成。
  3. 是平台或更大的子系统的组成部分,与其他子系统相对独立。
  4. 必须是交付件(能够支持异步开发和外包)。

Module

(IEEE 610.12-1990)系统中一个逻辑上可分离的部分。系统设计中模块特指系统设计阶段输出的系统最小分解部件,系统设计阶段将模块当作黑盒、不涉及模块的内部结构,但要明确给出模块的功能、模块之间的接口。

Service

服务,是指具备明确的业务特征,由一个或多个关联紧密的微服务组成,可直接面向客户/用户进行打包、发布、部署、运维的软件单元。用户可以从业务特征、安装部署、监控运维的角度感知到服务的存在。规模上介于Subsystem与FM(Function Module功能模块)之间的逻辑架构模型元素。Service的功能更加内聚,对外依赖少,接口稳定。

Component

组件,可独立加载、部署和运行的二进制代码,采用轻量级通讯机制、松耦合高内聚的软件架构构建单元,部署时不能跨节点类型部署(计算机百科全书:组件是软件系统中具有相对独立功能、接口由契约指定、和语境有明显依赖关系、可独立部署、可组装的软件实体)。

SDK

Software Development Kit,软件开发工具包。

Layer

层,辅助图形,不属于架构元素,一般是分层设计,例如网络层、应用层,常见的7层网络模型。

Plane

面,同Layer属于辅助图形,不属于架构元素,在嵌入式系统里常见用户面、管理面等。

MS

MicroService,微服务,是指可独立设计开发部署测试、粒度较小、采用轻量级通讯机制、松耦合高内聚的软件单元。一般来说,用户感知不到微服务的存在。

Domain

域,用于在架构表达、开发管理、对外介绍的过程中,表达系统的层次关系或内部分组,一般由多个服务组成,可以是一级(域)或多级(域/子域,或者域/1级子域/2级子域…)。域和子域不对应实际的设计开发实体,可以根据需要灵活调整。域这个概念,来自于云化产品。以前逻辑架构的实体,这个实体一般指的是子系统,但这个架构实体,带有比较严重嵌入式情节。为此云化产品,习惯用域来表示逻辑架构的实体。

SubDomain

子域,用于在架构表达、开发管理、对外介绍的过程中,表达系统的层次关系或内部分组,域和子域交互使用。

Interface

接口,可以是单个接口,也可以是抽象的一组接口的组合。

圆形接口与矩形接口意义相同,仅形状不同

Provided Interface

暴露接口。提供接口动作,和Required Interface之间建立Association,表明一个组件提供另外一个组件需要的接口。

Required Interface

请求接口。和Provided Interface之间建立Association,表明一个组件需要的接口是由另外一个组件提供的。

Composition

组合,是整体与部分的关系,但部分不能离开整体而单独存在。

Aggregation

聚合,是整体与部分的关系,且部分可以离开整体而单独存在。

Realization

实现,是一种类与接口的关系,表示类是接口所有特征和行为的实现。

Dependency

依赖,是一种使用的关系,即一个类的实现需要另一个类的协助。

Usage

使用,是一种使用的关系。表明一个模块在运行的时候,需要使用另外一个模块。

Association

关联,是一种拥有的关系,它使一个类知道另一个类的属性和方法。

建模步骤

参考建议步骤是按逐层分解的方式画图设计,示例步骤分解顺序为:System->Susbsystem->Component->Module,其它的分解顺序结构可参考该方式调整即可,如果产品线有统一的分解规范要求,以产品线要求规范步骤为准。

  1. 创建0层逻辑模型图。

    1.工程初始化创建时会在逻辑视图>逻辑模型包目录下默认创建一个逻辑模型图,可当作0层逻辑模型,如果是非初始化结构建目录 ,则选择要创建图的包节点 ,单击包后的菜单,选择“新建图”

    2.图类型选择4+1视图>逻辑视图>逻辑模型,输入图名称,单击保存即可。

  2. 创建0层模型逻辑元素。

    在0层模型图创建完后,从工具箱中拖入System、Subsystem元素到0层逻辑模型图中。

  3. 创建1层逻辑模型和逻辑元素。

    1. 在Subsystem元素下创建子图,子图即为1层逻辑模型,从工程树上将Subsystem元素拖入到1层逻辑模型图中,选择link方式,然后在该Subsystem元素下添加Component元素,建立逻辑关系。
    2. 在0层模型上选中Subsystem元素右键“新增图”或者在工程树上的Subsystem元素节点右键“新增图”,在新增图界面图类型仍为逻辑模型。
    3. 元素创建完子图后,在所有图中元素图形右下角有一个眼镜图标,双击该图标可快速打开这个元素的子图,如下图所示:

    4. 将Subsystem1以Link的形式拖入1层逻辑模型,如下图所示:

    5. 新增的Component组件元素再从工具箱中拖入到图中的Subsystem元素内部,构成包含的父子关系,如下图所示:

  4. 创建2层逻辑模型。

    1. 参考1层模型创建方式,2层逻辑模型是基于Component1创建子图,如下图所示。

    2. 在Component1的子图中引用该父Component1元素到图中,再到图中的从工具箱中创建Module元素到组件下,构成包含的父子关系,在2层模型中会对Module定义对外接口,和使用的接口。
    3. Module1暴露实现的接口,提供给外模块调用,连线关系使用Realization。
    4. Module2使用其他模块实现提供的接口,以引用的方式拖入图中,连线关系为Usage,如下图所示:

建模示例

最终实现的一个由0层到1层、2层依次展开各层级结构的一个分解逻辑模型图。

0层逻辑模型。

1层逻辑模型。

2层逻辑模型。

相关文档