领域模型(二)

前言

MODEL-DRIVEN DESIGN(模型驱动设计)利用模型来为应用程序解决问题。

团队成员通过UBIQUITOUS LANGUAGE(通用语言)交流进行知识消化,以便有效建模,而MODEL-DRIVEN DESIGN绑定模型与实现,以此为出发点做出的软件产品才能在完全理解核心领域的基础上提供丰富的功能。


有效建模的要素

1、绑定模型与实现。实现要反映模型的变化,实现不能脱离模型,凭空实现;

2、通用语言。团队沟通同一问题领域要统一语言,以模型为语言核心;

3、开发一个蕴含丰富知识的模型;

4、提炼模型。要选择性简化和有意结构化;

5、头脑风暴和试验。不断地对模型进行可行性测试;


什么是知识消化?

答:开发人员和领域专家等团队人员之间共同协作,共同收集领域相关信息,信息来源多种多样,有可能是书籍资料、电子文档、也有可能是人们的专业知识、经验等。他们通过消化吸收这些领域知识并将它组织为有用的形式,即模型。知识消化是一种探索,它永无止境。


什么是通用语言?

答:

1、领域模型可成为软件项目通用语言的核心。

2、UBIQUITOUS LANGUAGE的词汇包括类和主要操作的名称。语言中的术语,有些用来讨论模型中已经明确的规则,还有一些来自施加于模型上的高级组织原则(如CONTEXT MAP和大型结构等)。

3、通用语言的更改就是对模型的修改。

4、在敏捷过程中,需求是随着项目的前进而演变的,故用不断精化后的UBIQUITOUS LANGUAGE重新组织需求应该是项目演变过程中的一部分。


什么是解释性模型?

答:与驱动设计模型(对象模型)相比,解释性模型具有一定的自由度,不一定是类图等对象模型,它可以用一种不同的方式来呈现领域,帮助团队成员更好、更直观的理解驱动设计模型。


MODEL-DRIVEN DESIGN

定义:Model-Driven Dsign(模型驱动设计)不再将分析模型与程序设计分离开,而是寻求一种能够满足这两方面需求的单一模型;

表现:不考虑技术问题,程序设计中的每个对象都反映了模型中所描述的概念。从模型中获取用于程序设计和职责分配的术语,让程序代码成为模型的表达,代码的修改可能会是模型的改变;

实现:完全依赖模型的实现通常需要支持建模范式的软件开发工具和语言,比如面向对象的编程;

结果:软件开发于是就成了一个不断精化模型、设计和代码的统一的迭代过程;


HANDS-ON MODELER(亲身实践的建模者)

四个必须

任何参与建模的技术人员,不管在项目中的主要职责是什么,都必须花时间了解代码。

任何负责修改代码的人员都必须学会用代码来表达模型。

每一个开发人员都必须不同程度地参与模型讨论并与领域专家保持联系。

参与不通工作的人都必须有意识的通过UBIQUITOUS LANGUAGE与接触代码的人及时的交换关于模型的想法。

原文地址:https://www.cnblogs.com/wly1-6/p/14509188.html