业务领域建模Domain Modeling

领域建模简介

  领域模型(domain model)是对领域内的概念类或现实世界中的可视化表示。领域模型也叫做概念模型、领域对象模型和分析对象模型。领域模型和类都是对现实中的实体的描述,但是它们之间是有区别的,领域模型是对现实世界概念类的表示,不是软件对象的表示。它不用来描述软件类、架构或者软件对象。

结合工程实践建模

  我的工程实践是做一款类似于facerig的软件,可以通过摄像头等设备实施捕捉到用户的面部,输入为视频流,并且实时映射到卡通模型上,并且将模型覆盖到人脸,达到换脸的效果。

1、Collect application domain information

      首先收集系统主要业务的功能性需求与非功能性需求,用户需求。

  功能性需求

    (1)设计并训练好的模型,可以对输入的视频流处理实时捕捉人脸特征点;

    (2)将特征点映射到模型上,使其与人脸变化同步,并且覆盖到视频流中的人脸;

    (3)收集和响应用户的数据和行为。

2、Brainstorming

   (1)列出重要的应用程序域概念

   (2)列出它们的属性

   (3)列出它们之间的关系

3、Classifying the domain concepts

   (1)类

   (2)属性/属性值

   (3)关系:association, inheritance, aggregation

4、Document result using UML class diagram

使用DDD方法

  DDD本身是一套完整、详尽的方法论,从如何需求沟通(构建领域知识),到高层设计(战略建模)、详细设计(战术建模)

  • 创建实体
    • 基于通用语言和领域知识,需要首先分辨出实体。
    • 实体是领域中需要唯一标识的领域概念。如果两个实体所有状态都一样,但标识不一样,就是两个不同的实体。
    • 实体同样需要属性来描述

                

 

 

  • 创建值对象
    • 值对象是领域中不需要唯一标识的领域概念。
    • 如果两份对象所有状态都一样,我们就认为是同一个值对象。值对象也可以理解为一组聚合的属性。例如地址信息,类目信息。

                 

 

 

  • 创建聚合根
    • 聚合根是一个实体,将一组模型聚合在一起,与外部模型划分开来。这一组模型全部关联着聚合根,只有聚合根负责与外部访问。
    • 聚合根有助于保持领域模型关联的简化和生命周期的维护。

                 

 

结合我自己的工程实践,分为如下几个类:用户类,用户操作类,模型操作类,模型管理类,视频流类与视屏流信息处理类

 

 

 

posted @ 2019-11-24 23:53  H1K  阅读(195)  评论(0编辑  收藏  举报