业务领域建模Domain Modeling

参考简书https://www.jianshu.com/p/19da6e09b0f2

一、领域建模与面向对象

  UML的创始人之一Grady Booch在2004年的IBM Developer Works Live大会的访谈中讲过一段话:我对面向对象编程的目标从来都不是复用。相反,对我来说,对象提供了一种处理复杂性问题的方式。有了对象,我们能够通过提升抽象级别来构建更大的,更复杂的系统。我认为,这才是面向对象编程运动的真正胜利。面向过程和面向对象是一个古已有之的认识论问题。之所以面向对象方法会兴起,是因为这种认识论能够帮助我们构造更为复杂的系统来解释越来越复杂的现实世界。认识到这一点,我们应该知道比掌握具体的技术更为重要的是,掌握认识论所采用的方法和分析过程。只有掌握了方法,才能自如的使用工具。
  面向对象方法与面向过程方法根本的不同,就是不再把世界看作是一个紧密关联的系统,而是看成一些相互独立的小零件。这些零件依据某种规则组织起来,完成一个特定的功能。面向对象和面向过程的这个差别导致了整个分析设计方法的革命。分析设计从过程分析变成了对象获取,从数据结构变成了对象结构。
  在面向对象分析过程中,强调的是在问题领域发现和描述对象(或概念)。在面向对象设计过程中,强调的是定义软件对象以及它们如何协作以实现需求。
一个完整的面向对象分析设计过程如下:

(1)定义用例
需求分析可能包括人们如何使用应用的情节或场景,这些情节或场景可以被编写成用例。

(2)定义领域模型
面向对象分析关注从对象的角度创建领域描述,需要鉴别重要的概念,属性和关联,面向对象分析的结果可以表示为领域模型,在领域模型中展示重要的领域概念和对象。需要注意的是,领域模型并不是对软件对象的描述,而是真实世界领域中概念的描述。

(3)分配对象职责并绘制交互图
面向对象设计关注软件对象的职责和协作,顺序图是描述协作的常见表示法,它展示出软件对象之间的消息流,和由消息引起的方法调用。

(4)定义设计类图
除了在交互图中显示对象协作的动态视图外,还可以用设计类图来有效的表示类定义的静态视图,这样可以描述类的属性和方法。领域模型表示的是真实世界的类,设计类图表示的是软件类。

  确定一组概念类是面向对象分析的核心。通过识别问题领域中的概念,应用UML表示法,领域模型被描述为一组没有定义操作的类图,它提供了概念透视图。它可以用来展示:领域对象(概念类),概念类之间的关联,以及概念类的属性。
 
  创建领域模型分为以下几个步骤:
(1)寻找概念类
(2)将概念类绘制成UML类图中的类
(3)添加关联和属性

二、领域建模示例

我们组的工程实践项目为对特定领域设计一个文本摘要提取系统,通过获取大段文本信息的关键词语获取关键信息,以协助对文本内容进行主题概括。以下针对此领域建模:

领域分析:

主体功能需求有:

①数据获取 ②数据预处理 ③提取文本主题 

  数据获取:即获取有标记的训练集测试集验证集数据,一般选取数据集: LCSTS中文数据集,其中包含大量短文本和摘要对以及部分人工评价后的摘要数据集。

  数据预处理:从LCSTS数据集获取到的是XML格式数据,需要处理获取数据集、测试集、验证集的短文本与手工标记的摘要。

  提取文本主题:利用包含编码器和解码器的seq2seq模型,编码器是一个双向LSTM,包含上下文两个方向的信息。解码器是一个单向LSTM,读取输入的词并逐字生成摘要,并将目标的词汇表映射到高维空间中。引入attention机制考虑全文为得到的字词打分排序,以帮助得到有效语义的摘要。

以UML可视化如下:

 

 

 

 

 




posted @ 2019-11-23 16:36  Ai_vril  阅读(246)  评论(0编辑  收藏  举报