领域建模中的七种坏味道信息
在结构化系统剖析与设计要领(Structured Systems Analysis and Design Method,SSADM)中,这被称之为“信宿(Information Sink)”。
坏味道信息 #3 – 两条信息位于一个地方(1NF)
将两条信息放在一个地方会引起杂乱。名字“John Smith”可以根据名和姓举行存储。可是,这是一种坏味道。在一些场景之中,将名字存在一个地方是合适的,但在另一些场景中却不是这样。要害的问题在于,你是不是需要自力地剖析或处置惩罚这两个信息条目。通常情形下,这被称之为违反“第一范式(First Normal Form)”或1NF。只管1NF确实是一项设计规则,可是它也可以指导我们发现两条差别数据的现实指向是统一个。违反第一范式通常会通过检察真实的数据来识别,由于数据一样平常会借助名字来举行引用。另外一个样例就是种族(Race),它包罗了“Jedi”(一个信仰/宗教)以及“IC1”(英国警方所使用的种族分类)。
坏味道信息#4 – 没有关联
系统中的营业工具应该是毗连起来的。当你无法识别两个营业工具之间的关系时,你需要询问用户一个主要的问题:这两件事之间的关联是什么?是直接关联吗?照旧通过其他的事情?
这是一个很严重的坏味道。凭据履历判断,这通常会导致信息的丢失。在企业级系统中,缺失的通常是组织化的结构。
坏味道信息 #5 – 一对一关系,它们是不是统一件事?
当你遇到一对一关系时,通常会有两种可能的诠释。第一,营业职员用多个术语表达相同的事情,因此两个营业工具现实上应该是一个工具。第二,一对一关系现实上应该是一对多关系,可是你并不知道缘故原由。例如,汽车和司机可能是一对一的关系,可是当你深入挖掘的时间,你会发现统一时间一辆汽车只能由一位司机举行驾驶。众多的司机可以在差别的时间驾驶统一辆汽车。这里缺失的信息就是关系的暂时性特征。
坏味道信息 #6 – 多对多(缺失约息)
多对多关系有时间会表达合理的关系。但大多数的时间,它们讲明缺失了“毗连的(link)”营业工具。在关系型软件设计中,多对多关系会用毗连实体(link entity)来取代。毗连实体通常也是一个营业工具,它具有关于关系自己的信息。在上面的例子中,一个雇员在差别的时间内里(暂时性的)会有多个事情头衔或者他们会将自己的时间破费在多个角色上。再次强调一遍,这种坏味道信息会资助我们跟踪潜在的信息缺失。
坏味道信息 #7 – 未界说的功效(缺失约息)
模子中的每个要领都应该举行界说。要领中引用的任何事情都应该在营业模子之中。以getAge为例:
getAge根据年份来盘算年事:
getAge = (today() – Employee.date of birth) / 365
出生日期和获取当前日期的功效缺失了。它们应该被加到营业模子之中。
总结一下,历程是这样的:
- 识别会给用户交付价值的输出。若是你还没有支持这个输出的领域模子,那就建立一个。检查模子中的坏味道信息,直到它们不再存在。制止。
这种方式会比传统的领域建模快得多而且越发专注。你接纳领域建模却不会陷于“障碍(spinning your wheels)”的状态会令你的朋侪感应受惊的。
侧边栏(Sidebar) - 领域模子
领域模子是组织中某个方面的简化,可能是产物、运作或者是市场。领域模子是特定于组织及其事情方式的。只管模子可能会使用业界尺度的术语,可是模子会为特定的组织及其情况建立明确的词汇表。领域模子通常会形貌从事这项营业的人所体贴的信息。鉴于大多数的营业系统主要关注于网络、处置惩罚以及提供数据,以是可以顺理成章地说,相识信息是什么而且以一种清晰的方式来对信息举行分类是很主要的。一样平常来讲,领域模子包罗营业实体,而营业实体会关联数据和行为。营业实体之间的交互通常也会举行声明。领域建模的示例包罗实体—关系模子以及工具模子。
“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与
我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。
热门文章
使用“扫一扫”即可将网页分享至朋友圈。