Domin Modeling for A StyleTransfer Project

Posted on 2019-11-25 19:53  Jonahmoon  阅读(131)  评论(0编辑  收藏  举报

Domin Modeling for A StyleTransfer Project

本文阐述基于深度学习框架的风格迁移系统项目的业务领域建模,为系统抽象业务模型,对后续的开发工作进行指导。

一、What is Domain Modeling   

  领域模型(又称概念模型、领域对象模型、分析对象模型)是对领域内的概念类或现实世界中对象的可视化表示分析方法:专注于分析问题领域本身、发掘重要的业务领域概念、建立业务领域概念之间的关系。

  领域模型是描述业务用例实现的对象模型是对业务角色和业务实体之间应该如何联系和协作以执行业务的一种抽象, 从业务角色内部的观点定义了业务用例,为产生预期结果确定了业务人员以及他们处理和使用的对象之间应该具有的静态和动态关系并且注重业务中承担的角色及其当前职责。

  领域模型设计的步骤为:

    1. 从业务描述中提取名词;

    2. 从提取出来的名词中总结业务实体,区分名词中的属性、角色、实体、实例,形成问题域中操作实体的集合;

    3. 从业务实体集合中抽象业务模型,建立问题域的概念(例如在前面的例子中,我们把容易变质的水果称之为“短期保持水果”,当然也可以是其它说法,只要能跟用户达成共识即可);

    4. 用UML提供的方法和图例进行领域模型设计、确定模型之间的关系;

 

二、Requirment of Project

       本项目基于风格迁移技术搭建一套可交互系统,前端采用基于bootstrap的web形式,同时为移植移动端做好准备,后端基于TensorFlow/caffe/caffe2深度学习框架,逻辑上提供能够让用户选择风格训练图片、视频,或者提供资源进行风格提取,达到自定义风格的目的。用户在确定好风格模型和目的图片或视频以后,本平台提供实时风格迁移视频功能,并提供直播接口。

  本项目用例建模见https://www.cnblogs.com/jonahmoon/p/11752529.html

三、Domin Modeling of Project

本项目业务领域建模主要分为以下四个步骤进行完成。

1、Collect application domain information 

       第一步是收集应用领域信息并关注系统所处理主要业务的功能需求,以及其他非功能性需求和用户的需求。

       功能性需求包括:

    (1)核心的数据处理分析模块提供风格抽取训练模型,和依据风格模型进行风格迁移两种基本算法功能接口;

    (2)web服务器环境提供基本的后台功能,包括数据存储和预处理,用户信息管理等功能;

    (3)前端模块用于收集和响应用户的数据和行为,并图形化反馈用户信息。

      非功能性需求包括:

      可用性、可靠性、系统性能以及其他扩展非功能性需求(包括物理、安全、实施、维护等)

2、Brainstorming

      第二步需要充分发挥主观能动性,可分为三个小步骤进行:

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

   (2)列出它们的属性

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

     根据第一步列出的所有功能性需求和非功能性需求,可得出如下的几个类:

   (1)数据处理分析模块:

     属性:算法ID,算法类型,资源类型(GPU,CPU),资源数量,漏洞类型,语言环境,其他详细信息等。

   (2)服务器模块:

     属性:服务器ID,服务器类型,运行环境、功能接口,数据库类型等。

   (3)前端模块:

     属性:UI模块、功能接口、数据传输、cache、配置等。

3、Classifying the domain concepts

     第三步将领域概念分为:

   (1)类

   (2)属性/属性值

   (3)关系:association, inheritance, aggregation

     根据第二步的分析, 我们可以抽象抽三个类:数据处理分析模块类、前端模块类、服务器类。

4、Document result using UML class diagram