软件设计过程经验谈 之 如何做好领域模型设计
2016-08-18 20:36
288 查看
经常听到领导教诲,开发的同事应该要往前走一步,去做产品?去做售前?这也是一种方式,只不过是一大步。个人觉得,在迈出这一大步之前,需要先走出一小步:从写好代码到做好设计。
下图是按照软件工程的通用做法,梳理出的标准设计指南,已经非常清晰地定义了软件设计的阶段和活动,产物规约,文档要求以及需要配合的培训。比较适合于人朋规模大、产品化程度高、外包服务模式。按照这个标准的设计指南,把每一阶段的事情做好,这是标准的开发方法论的实践指导。
有人会说,现在是移动互联网的时代,我们的产品开发要求短、频、快地上线,这种标准的设计方法已经不适合了,我觉的不完全正确。我的做法是,根据产品的愿景和市场情况,按照标准的设计指南做一些定制性的剪裁,哪怕文档全部裁完了,脑子里分析时仍然要按照这几个阶段开展对应的活动,因为这不仅是指南,更是方法论,针对这个几阶段开展过的活动,下面就梳理下我的设计经验。
首先是需求捕获和分析阶段,总是感觉需求在不断地变化,老是怪市场和产品经理,其实很多情况是我们对需求的理解不到位。既有业务理解不准确,也有支撑方式不合理。还有一点就是将原型与需求没有进行区分,原型不代表需求。将需求分析划分为业务需求与系统需求两个阶段,做好领域分析,才能根本性地适应需求的不断地变化。
接下来谈谈如何做好系统分析,在这个阶段一般又叫建领域模型,又叫概念模型,分析对象模型,它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。领域模型设计是需求分析的关键步骤。它帮助用户及需求分析人员建立业务概念,确定用户业务的问题域,系统涉及的业务范围等等。
领域模型设计的一般步骤为:
1、从业务描述中提取名词
2、从提取出来的名词中总结业务实体,区分名词中的属性、角色、实体、实例,形成问题域中操作实体的集合;
3、从业务实体集合中抽象业务模型,建立问题域的概念
4、用UML提供的方法和图例进行领域模型设计、确定模型之间的关系。注:实体之间的关系,主要有泛化、依赖和关联,关联又分了一般关联、聚合、组合等
简言之,先分析出模型实体,然后找出模型实体之间的关系。
领域模型与实数据模型的关系:领域模型是与用户沟通的一个重要工具,是需求分析人员与用户共同理解的概念,是彼此之间交流的语言。它是一个分析模型,描述的是业务中涉及到的实体及其相互之间的关系,它是需求分析的产物,与问题域相关。同时给我们需求分析人员和系统功能提供了一定的扩展视野,看到将来需求的可能变化或可能存在的问题。而数据模型是系统设计、实现的一部分,描述的是对用户需求在数据结构上的实现,当然数据模型中的概念模型设计与领域模型类似,缺乏的是实体之间更广泛的关系描述。
这里以开放平台业务管理为例,设计出的领域模型图纸,欢迎大家拍砖。
http://www.cnblogs.com/ceecy/p/3401870.html
相关文章推荐
- 软件设计过程经验谈 之 如何做好领域模型设计
- 软件设计过程经验谈 之 如何做好领域模型设计
- 如何做好软件系统的架构设计2
- 软件测试过程中如何区分什么是功能bug,什么是需求bug,什么是设计bug?
- 软件测试过程中如何区分什么是功能bug,什么是需求bug,什么是设计bug?
- DDD 领域驱动设计-如何完善 Domain Model(领域模型)?
- 架构师必看:谈软件架构师如何做好架构设计(上)
- DDD 领域驱动设计-看我如何应对业务需求变化,领域模型调整?
- 一缕阳光:DDD(领域驱动设计)应对具体业务场景,如何聚焦 Domain Model(领域模型)?
- 如何做好软件架构设计
- DDD(领域驱动设计)应对具体业务场景,Domain Model(领域模型)到底如何设计?
- DDD领域驱动设计实践篇之如何提取模型
- 如何在软件开发过程中合理的设计函数来解决实际问题
- DDD(领域驱动设计)应对具体业务场景,如何聚焦 Domain Model(领域模型)?
- 软件设计过程中面向对象UML技术如何使用
- 如何做好软件系统设计阶段质量保障
- 如何做好软件系统的架构设计?
- 如何做好数据模型设计及模型管理?
- 统一软件开发过程之1:创建领域模型
- [置顶]团队开发经验:如何带领一个项目团队并做好项目总结