- 7
- 0
- 约8.53千字
- 约 8页
- 2017-06-19 发布于湖北
- 举报
第 19章 概念模型
采用我们使用的相同的对象模型表示法来描述运行中程序的堆结构——即结构中有什么
对象,他们是怎样通过属性联系起来——可以更抽象地用来描述一个系统或由系统操作所处的
环境的状态空间。我把这些称为“概念模型”;在课本中,称其为“数据模型”。在练习4,
示范例子和对象建模表示法描述波士顿地铁系统结构的过程中,你已经动手建立了一些概念模
型。
表示法自身十分简单,并且一旦你以面向实现的观点看,将Java对象换为现实世界的实体,
将属性换为关系等等,模型会很容易理解。学习本课程之后,你应该能够读懂概念模型。
另一方面,通过编写概念模型,你会得到更多练习。这涉及到进行恰当的抽象——正如你
设计一个抽象数据类型的接口时必须做的。想做好很难,但障碍尤其与对象模型无关。要找到
问题的实质,并将其简洁地表达通常并不容易。
一旦越过这个障碍,并构造了一个概念模型,你就成功了一半。有个说法:如果你能准确
地描述要解决的问题,那么你就在解决这个问题上有了进展。在软件设计上,这个进展比成功
一半要好得多。
所以要学会建立概念模型必须多加练习。在这个过程中有很多乐趣,当你的建模技术有所
提高时,你会发现自己已成为一名优秀的设计师了。当你的概念结构清晰时,代码的结构也会
变得简单和清晰,这样写代码会更有建设性。
在本讲中,我会给出关于如何建增量模型的一些见解。在这些部分,模型会以最终形式出
现。
19.1 原子、集合、关系
我们将从集合、关系和原子开始建立模型结构。原子是一个原始的实体,有如下性质:
不可分割性:不能分解为更小的部分;
不变性:属性永远不变;
不可解释性:没有任何内置属性,比如“数”。
除了基本粒子,现实世界很少有东西是原子的。但这不影响我们将它们以原子建模。事实
上我们的建模方法完全没有内置复合的概念。建立一个模型x,x由y和z两部分组成,我们会将
x、y和z都视为原子的,并将制约关系用它们之间的外在的关系表示。
一个集合仅仅是原子的汇集,没有重复计数和次序的概念。关系是联系原子的结构。数学
上,它是一系列对子,每一对由两个原子以指定顺序组成。你可以将关系想象为一个有两列的
表,其中每个表目是一个原子。列的顺序很重要,行的顺序无关紧要。行中的每个列必须有一
个表目。
在集合和关系上定义一些操作符会更方便些。我们将用它来说明我们的图形化模型,但它
们也能被用在更多易表现的约束上。
给出两个集合,s和t,可以将它们的并集写成s+t,交集写成st,差集写成s-t。我们用
no s表示s为空集,用some s表示s为非空集合。用s in t表示s中的每个元素也是t中的元素。
1
s=t表示s中的每个元素都是t中的元素,且反之亦然。
给出一个集合s和一个关系r,s.r表示s在r下的映射——即s中的元素通过r映射形成的集
合。我们可以将它定义成这样的形式:
s.r = {y | some x: s | (x,y) in r}
给出一个关系r,我们将r的转置写成~r ——即镜像关系,将其这样定义:
~r = {(y,x) | (x,y) in r}
最后,我们将r的传递闭包写成+r :它是将x与y联系的关系,如果存在一些原子
z1,z2,…,zn的有限序列如下:
(x,z1) in r
(z1,z2) in r
(z2,z3) in r
(zn,y) in r
并将r的自反传递闭包记为*r ,即把传递闭包作补充,将每个原子与它自己关联。你可以
将传递闭包设想为将某关系做1,2,3…次应用时的映射;自反传递闭包则包括0次应用。
让我们看一些例子。假设有一个存在或曾经存在过的人的集合Person;男人和女人的集合
Man和Woman;一个将父辈和子辈联系起来的关系parents;还有一个将一个人和配偶联系起来
的关系spouse。
你能解释以下语句么?在现实世界中哪些是正确的?
no (Man Woman)
Man + Woman = Person
all p: Person | some p.spouse = p.spouse.spouse = p
all p: Person | some p.spouse
all p: Perso
您可能关注的文档
最近下载
- 2025《麻江县蓝莓产业发展现状调研分析报告》4900字.docx
- 2026年国网安全管理方案.docx VIP
- 2025年北京师范大学学科教学培养方案 .pdf VIP
- 初级消防试题及答案大全.docx VIP
- 核医学教学课件:血液和淋巴显像.ppt VIP
- 重庆市各地方周氏支族源流(1-170支族).doc VIP
- 建筑工程质量管理体系流程图.docx
- 淋巴系统核医学检查课件.ppt VIP
- (高清版)B-T 6003.1-2022 试验筛 技术要求和检验 第1部分:金属丝编织网试验筛.pdf VIP
- (已压缩)TUCST007-2020房屋建筑与市政基础设施工程施工安全风险评估技术标准.docx VIP
原创力文档

文档评论(0)