文档章节

am与dm的关系

汇流工作室
 汇流工作室
发布于 2015/09/22 17:52
字数 1047
阅读 8
收藏 0

DM将按实现环境进一步细化AM,此时需明确地定义对象的界面、操作的语义以及处理与实现相关的其他问题。如DBMS、编程语言的特征、是否为分布式系统等。

DM由设计的对象块组成,更进一步地说,软件对象块组成DM的实际结构并显示系统是如何设计的。这些块将实现为源代码。

对象块是实际实现的抽象,每个块的实现可能是源代码中的一个特定类,即由一个类实现一个块。然而,一个块也可以由几个不同的类来实现,因此,块成为抽象源代码的一种方法.


汇流工作室

在面向对象语言中,程序员实际编写的模块就是类。当使用一种特定语言时,应该直接使用相关的概念,例如00语言中的类(class)或Ada语言中的包(package)。此外,使用的术语是对象或者类。

在开发DM时,一个简单的规则是:首先在AM基础上机械地生成DM.即将分析中获得的每一个对象都初始化为块。该转换规则意味着在模型之间的过渡中可获得清晰的可跟踪性。

为软件系统建模时必须在AM中为系统提供一个健壮的结构,由于AM中的每个对象已成为DM中的一个块,因此,在AM中引人的改变仅局限于引起DM中 对应块的改变。可跟踪性是系统开发中 的重要特性,每一个系统在它的生命期间无疑会发生变化,无论变化是由新的需求引起的还是由其他原因引起的,总是需要知道改变源代码的位置,这就是可跟踪性 的巨大优势。

可跟踪性是双向的,就是说还可以从DM中的块返回到AM中的对象,以便查阅它们发生了什么变化。即使系统发生了大的改变,也能容易地找出其工作流程。

功能的局部化也很重要,它可使得系统的改变不致于影响过大。

下面将构造前面描述的回收机系统的例子,这个描述虽然是一个被简化的概要描述.但能清楚地表示工作模型,并足以相当容易地表现一个完整的构造过程。

DM的语义与AM有些不同.AM用逻辑术语来描述,它是所建系统的一张概念图。DM是所建实际系统的抽象,第一个DM是从AM直接映射而来的,它的 最终结构将要反映实现环境对构造的影响, 但又要保持设计不违反AM中所建立的逻辑结构,所以DM需要保证设计既有合理的逻辑结构又具有鲁棒性。

在DM中,块的语义应该反映实际系统中对象存在的语义,而且对象间的联系也应该真实反映系统中对象之间所发生的实际关系。例如,多数语言确实没有实 现扩展联系的方法。在实现阶 段,必须确定如何实现这种关联,并改变DM来反映这种关系.同样的,如果编程语言没有提供继承性机制,必须在实现中反映AM中的继承性.

在建立DM的过程中,第一个概念是系统软件结构,把它放在第一位是因为必须考虑实现环境,有可能导致结构发生改变.也有可能需要把系统分配到计算机系统中的不同结点上.所以系统 需要分成多个块,甚至可能需要改造成全新的块.封装到现存的DBMS中。


© 著作权归作者所有

汇流工作室
粉丝 0
博文 17
码字总数 8796
作品 0
闵行
私信 提问
Linux 内核中的 Device Mapper 机制

Device Mapper 是 Linux2.6 内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构,如图 1。 图1 Device Mapper的内核体系架构 在...

又右耳刀
2013/08/20
169
0
linux下使用kpartx挂载虚拟文件系统

在linux中,如果映像文件(.img)含有分区表的话,那么用losetup这个程序来加载文件系统就有点力不从心了。因为losetup只能加载无分区的文件系统映像文件。不过有一个好东西配合losetup却可以来...

加油2018
2014/08/14
1K
0
DM 源码阅读系列文章(二)整体架构介绍

作者:张学程 本文为 DM 源码阅读系列文章的第二篇,第一篇文章 简单介绍了 DM 源码阅读的目的和规划,以及 DM 的源码结构以及工具链。从本篇文章开始,我们会正式开始阅读 DM 的源码。 本篇...

TiDB
03/26
17
0
Linux内核驱动之DDR3引脚说明

一 DDR3引脚描述 4bit和8bit位宽芯片一般采用78球FBGA封装 16bit位宽芯片一般采用96球FBGA封装 下列信号方向都是针对DDR3芯片来说的 A0-A9,A10/AP,A11,A12/BC#,A13,A14 input 地址输入信号,...

wangubuntu
2018/03/23
0
0
DM 源码阅读系列文章(十)测试框架的实现

作者:杨非 本文为 DM 源码阅读系列文章的第十篇,之前的文章已经详细介绍过 DM 数据同步各组件的实现原理和代码解析,相信大家对 DM 的实现细节已经有了深入的了解。本篇文章将从质量保证的...

TiDB
07/24
33
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 如果是个帅小伙你愿意和他出去吗

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 小小编辑推荐:《Ghost 》游戏《死亡搁浅》原声 《Ghost 》游戏(《死亡搁浅》原声) - Au/Ra / Alan Walker 手机党少年们想听歌,请使劲儿戳...

小小编辑
48分钟前
77
5
java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
16
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部