• 业务领域建模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本身是一套完整、详尽的方法论,从如何需求沟通(构建领域知识),到高层设计(战略建模)、详细设计(战术建模)

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

                    

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

                     

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

                     

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

  • 相关阅读:
    MySql批量插入数据
    MyBatis批量插入
    poi读取合并单元格
    Vboxmanage改动uuid报错的解决的方法
    MySQL 删除数据库中反复数据(以部分数据为准)
    C3P0 APPARENT DEADLOCK
    使用Mybatis-Generator自己主动生成Dao、Model、Mapping相关文件
    [ACM] POJ 2635 The Embarrassed Cryptographer (同余定理,素数打表)
    cocos2dx中关于Action动作的相关API的具体介绍
    时光轴三之 ExpandableListView版时光轴效果
  • 原文地址:https://www.cnblogs.com/H1K777/p/11925289.html
Copyright © 2020-2023  润新知