MDA软件范型中的数据库表模式演变机制研究

2017-05-31 08:43丛昕杨德仁杨志诚
软件导刊 2017年5期
关键词:数据库设计

丛昕 杨德仁 杨志诚

摘要摘要:MDA是以模型及其转化为中心的软件建模范型。软件要处理数据库表中存储的数据,其数据存储模式的设计至关重要。数据存储模式是PSM的重要组成部分,在数据库表模式设计方法中,传统方法没有将库表模式设计有机地融入软件设计过程中,或存在设计鸿沟,或实体来源具有随意性且缺乏可追溯性。基于扩展的MDA软件范型,探索MDA软件范型中的数据库表模式及其演变机制,从BM到CIM以及PIM,最后到PSM建模,详细探索了库表模式在这些模型中的形态及其转化机制,该机制生成的数据库表模式具有可追溯性。

关键词关键词:MDA;数据库表模式;演变机制;数据库设计

DOIDOI:10.11907/rjdk.161766

中图分类号:TP302

文献标识码:A文章编号文章编号:16727800(2017)005001704

0引言

随着计算机软件技术的快速发展,对象管理组织(the Object Management Group ,OMG)提出了一种基于模型驱动开发技术的新型软件范型,即模型驱动的软件构架(MDA)。MDA是以模型及其转化为中心的软件建模范型。软件要处理在数据库表中存储的数据,其数据存储模式的设计至关重要,其表现形式是数据库表模式,而目前针对数据库表模式演变的研究非常少。本文从业务层面(Business Model,BM)建模入手,逐步完成数据库表的模式演变。建模的最终核心内容是生成可操作性强、利于编码的数据库表模式,这也一直是相关领域研究的焦点[14]。

1相关研究综述

在MDA思想提出后,国内外有许多研究人员致力于MDA相关理论及其技术的研究,提出了很多基于MDA的模型表示方法和模型间转换机制。然而,这些表示方法中的数据库表模式演变存在一些不完善之处,并且仍未形成统一标准。

基于视角,对象管理组织规定了MDA软件范型的3种模型:①聚焦于系统环境及需求,但不涉及系统内部结构与运作细节的计算独立模型(Computation Independent Model,CIM);②聚焦于系统内部细节,但不涉及实现系统

具体平台的平台无关模型(Platform Independent Model,

PIM);③聚焦于系統落实的特定具体平台,但没有规定建模技术细节的平台相关模型(Platform SpecificModel,PSM) [5]。Kirikova 等[6]认为计算独立模型分为人类智能信息处理过程模型和人工智能信息处理过程模型;Yamin等[7]用类图描述平台无关模型,但并未对类图到平台的相关模型进行研究;Sharifi等[8]用活动图作为描述业务模型的表示图形之一,未涉及数据库表的模式演变研究。

与国外相比,国内关于MDA的研究起步较晚,对于MDA相关理论及其建模技术的研究不够成熟,只有少部分研究涉及到MDA建模设计,并未见对其数据库表演变模式的研究。台湾学者邱郁惠[5]在其著作中使用的建模流程是:定义业务流程、分析业务流程、定义系统范围、分析系统流程、分析业务规则、定义静态结构、定义操作及方法。其优点是把UML与MDA的模型关联了起来,缺点是繁杂而不合理,CIM和PIM之间的过渡有鸿沟,PSM也并非代码;刘敏[9]进行了基于业务模型的扩展研究,李波[10]的重点是PIM到PSM的转换机制研究,二者均没有具体类到数据库表模式的研究;孟志伟[11]提出,数据库的概念结构设计是将分析得到的用户需求抽象为概念模型的过程。即在需求分析的基础上,设计出能够满足用户需求的各种实体以及体现它们之间相互关系的概念结构设计模型[11];文斌[12]对面向对象的数据库设计方法进行了研究与探讨,使用实体—关系模型方法(E-R方法)进行设计,分别通过实例进行说明,但着重点在实例的步骤和过程上;张念[13]针对传统E-R模型在大型数据库设计中的不足, 提出了一种基于UML的、以用例驱动整个研发过程的方法,此方法可以在进行系统分析的同时规划数据库, 产生对应的数据库表,但并没有抽象到数据库模式的高度,因此需要进一步研究。

2MDA中的数据库表模式及其演变机制

MDA 软件范型是一种新型的软件开发范型,也是一套标准和技术。其基于面向对象的思想,一切遵循人类对事物的认知过程,从理解问题到认知问题,从分析问题到解决问题,建立相互对应的模型,从而达到实现系统的目的。各模型之间的逻辑关系需遵循进化性(继承性)、可追溯性和可转化性的关系。

2.1MDA主要模型

MDA的主要模型包括3种,计算无关模型(Computation Independent Model,CIM)、平台无关模型(Platform Independent Model,PIM)与平台相关模型(Platform Specific Model,PSM)。经过前期研究[15],为了更完整地进行信息建模,在CIM建模之前增加业务模型(Business Model , BM)过程。BM是对业务的描述,以及对业务实施的初步分析。BM用业务用例图、活动图及业务对象图进行建模。

MDA软件范型中4个模型层次是自然演变的,其结构层次清晰,设计没有鸿沟,是系统设计的良好选择[3]。其PSM中的类和对象可作为E-R图(Entity Relationship Diagram)中“E”的来源,其演变机制值得深入研究。下面将对4层模型结构作详细分析。

(1)业务模型(BM)。业务模型(BM)是第一层抽象模型,旨在捕获系统语境中最重要的对象类型。业务模型的建立是为了业务运行而并非为了系统信息化,主要指通过需求者对业务在系统环境下的直观和简要描述,业务人员对其描述进行高度的凝练和提取。业务模型具有复杂性、多维性和广泛性。业务建模的目的是为了定义和表示业务的目的、行为和结构。

业务过程模型是系统需求模型(CIM)的基础,CIM建模阶段需从BM建模中找出可信息化的部分。

(2)计算无关模型(Computation Independent Model,CIM)。計算无关模型(CIM)是一种需求分析模型,主要用来对某具体行业内一个项目的业务需求及其系统功能需求进行分析,而对于系统的内部细节不作过多考虑。计算无关模型由业务需求和系统功能需求两部分组成。其中,业务需求是从业务员的角度出发,对一个项目在非计算机环境下的情况进行简单描述;系统功能需求是从系统用户的角度出发,对一个软件的功能需求进行简单描述。

(3)平台无关模型(Platform Independent Model,PIM)。平台无关模型(PIM)是一种系统分析模型,主要用来对系统内部的结构和执行细节进行详细分析,并对业务的逻辑性和完整性进行分析和规范,而对于系统的实现技术及具体平台不作任何考虑。PIM来源于计算无关模型,它是连接需求分析与系统详细设计的关键模型。

(4)平台相关模型(Platform Specific Model,PSM)。平台相关模型(PSM)是一种系统详细设计模型,它依据相关的实现技术和具体平台完成系统的详细设计。PSM来源于平台无关模型,基于不同实现平台的选择,一个PIM模型可以产生多个PSM模型。数据库表就是在这一层得到的最终形式。

2.2数据库表模式演变机制

2.2.1数据库表模式演变原理

MDA软件范型的目标之一是通过提高软件开发的抽象层次实现系统之间的互操作性[9]。而软件要处理在数据库表中存储的数据,其数据存储模式的设计则显得至关重要。数据库表模式演变的原理如下:在业务域,业务单据表是数据库表的初期形式,它在分析域依据第三范式进行分解,成为鲁棒图的重要组成部分,在设计域中分配职责并确定类的方法时,不断对类、关系和方法名等进行优化,完善系统逻辑,从而形成完整清晰的数据库表模式。

它主要包含以下几个性质:①抽象性,指在MDA建模过程中,通过关注分离实现层次之间的交互,将设计从架构中分离出来;②层次性,在基于MDA软件范型探索数据库表的模式演变过程中,数据库表在不同层次具有不同的表现形式;③可追溯性,数据库表在每个层次的变换形态均有出处,有现实依据,不依赖于头脑风暴,实现了从模型到代码的有机转化;④精化性,从业务域到设计域,数据库表在每一层的表现都比其在上一层的表现更为细化和准确,各表之间的关系更明了。

2.2.2数据库表模式演变机制

通过上文对各个域模型的分析,基于统一建模语言,数据库表的演变机制如下:①在业务域,数据库表还是基础的表现形式,它基于现实中的业务单据表、业务对象和业务Actor/Worker等信息,对它们进行整理、提取;②基于业务域,需求域主要是提取活动图中可信息化的部分,生成系统用例图。数据库表在这一层没有明显升华;③基于需求域,在分析域中依据第三范式对业务域中的对象进行分解,数据库表体现在鲁棒图的实体对象中;④基于分析域,在设计域中通过分配职责并确定类的方法形成序列图,通过优化和整理形成完整的类图。类图包含实体类、边界类和软件类3部分。其中的实体类进一步生成E-R图,最后形成适用于编码的数据库表模式;⑤基于前期生成的数据库表,在代码域即可使用具体的编程语言,如JAVA、C#等进行编码。

2.2.3数据库表模式演变过程图示化表示

现将数据库表模式演变用形象的图示进行表示,方便下一步详细讲解,如图1所示。

2.2.4数据库表演变过程详细说明

如图1所示,数据库模式的演变历程从业务模型(BM)、计算无关模型(CIM)、平台无关模型(PIM)到平台相关模型(PSM),旨在消除设计模型之间的鸿沟。

首先,在业务域,根据现实需求画出业务用例图,然后进一步细化用例图中的每一条用例,生成活动图,活动图的形成涉及到现实中的业务规则、业务Actor/Worker、业务单据表和业务对象。活动图中的每个对象节点都持有对象和数据,这是业务单据的来源,在活动图中它们会等待一个合适的机会来流通[9]。而业务单据、业务对象、业务Actor/Worker三者又是分析域中鲁棒图的一部分。

其次,在需求域,依据活动图,提取其中可以信息化的部分,生成系统用例图,对其实现用例逻辑,写出系统用例规约。

然后,在分析域,根据系统用例规约,获取对象属性,完善在需求域中得到的鲁棒图中的实体对象,以及找出鲁棒图的边界对象和控制对象。依据第三范式分解业务单据图,提取出形成分析域中鲁棒图的实体对象。将鲁棒图中与实体对象有直接关系的控制对象转换为序列图中相关实体类的方法,也即给类分配职责[10]。类图包含实体类、边界类和软件类三部分。

最后,在设计域,根据鲁棒图确定类的序列,将鲁棒图进一步转化为序列图。根据分析域中的实体类得到E-R图,从而生成数据库表模式,由此进入到最后的代码域中。

3相关研究比较

管理系统中数据库设计的传统方法主要分为结构化分析法、信息建模法、CRC法和ICONIX法,以下将分别总结其优缺点。

3.1数据流法(Data Flow Approach)

数据流法(Data Flow Approach)又称为结构化分析法。其基本策略是跟踪数据流,即研究问题域中数据如何流动,以及在各个环节上进行何种处理,从而发现数据流和加工。问题域被映射为数据流图(DFD),并用处理说明和数据字典进行详细说明。用来描述概念数据模型的主要工具是E-R(实体—联系)模型,又称为E-R 图。优点是有严格的法则,较强调研究问题域。缺点是它仍然是间接映射问题域,与结构化设计概念不一致,从分析到设计的过渡比较困难,且数据流与加工的数量太多,引起分析文档的膨胀。

3.2信息建模法(Information Modeling)

信息建模法(Information Modeling)由实体—关系法(E-R方法)发展而来,与数据库设计有很深的渊源,其核心概念是实体和关系。实体描述问题域的事物,含有属性;关系描述事物之间在数据方面的联系,也可以带有属性。发展之后的方法也把实体称作对象,并使用类型和子类型的概念,作为实体(对象)的抽象描述[14]。其优点是它注重信息存储模式建模,但忽视了软件功能建模机制。

3.3CRC法(Candidates、Responsibilities、Collaborators)

CRC法(Candidates、Responsibilities、Collaborators)主要是利用头脑风暴的方法来挖掘建模初期的设计思想,优点明显,即工具非常便利、简单,可以被随时移动、修改或丢弃。但缺点也不可忽视,即缺乏可靠的现实依据,容易在后期编码过程中出现问题。

3.4ICONIX过程

ICONIX过程是尽早进入编码阶段,缩短分析设计周期的软件开发方法,其基于极限编程(XP)和敏捷软件开发的思想,合理地简化统一过程(RUP)。只使用4个UML图(用例图、健壮性图、时序图、类图)完成所有工作。ICONIX也是用例驱动的架构,与极限编程一样,相对较小,比较紧凑,但又不像极限编程摒弃了分析与设计过程[9]。因此,ICONIX是一种高效的建模方法[9],但类的来源没有现实依据。

3.5方法比较

综上所述,数据流法过早设计数据细节而致使设计文档膨胀;信息建模法注重信息存储模式建模,而忽视了软件功能建模机制;CRC方法则主要利用头脑风暴法收集对象及其协作机制,缺乏可追溯性;ICONIX是一种高效的建模方法,但类的来源没有现实依据。相比之下,MDA软件范型从现实世界的业务层面入手,逐步进行分析设计,减少步骤间的设计鸿沟,使其平滑过渡,生成可操作性强、完整直观的数据库表模式。

通过前面几种方法的比较,可以发现每种建模方法各有优缺点。但通过与实际案例相结合,可以看到上述方法自然、清晰地提供了一个数据库表生成的过程,在建模过程中步步为营,有理有据,建模过程中对数据列表及模型的表示更加清晰,模型间的转换更加平滑,弥补了模型层次间数据库表转化的鸿沟,成功指导模型间的平滑过度,并使PIM成功转化到PSM,最终设计出实用性强、符合客户需求的系统。

4结语

本文主要研究了MDA软件范型中的数据库表模式演变机制。首先比较了几种传统的数据库设计路线,然后深入研究和阐述了MDA软件范型中各個建模阶段之间的关系,进而提出一种更为直观和完整的建模步骤;接着基于笔者前期的研究,抽象出了业务建模过程,并整合了各个建模阶段之间的关系;然后基于对相关理论的深入研究,提出了一种MDA软件范型中数据库表模式演变的机制,最终设计出实用性强、符合客户需求的系统,并对该数据库表模式演变机制进行了验证。

参考文献参考文献:

[1]YANG D R, XUE M. Software process paradigm and its constraint mechanisms [C].International Conference on Software Engineering and Service Science, 2011:842845.

[2]DEREN YANG, MIN LIU, SHENGGUO WANG.Objectoriented methodology meets MDA software paradigm[C].Proceedings of the 3rd International Conference on Software Engineering and Service Science(ICSESS 2012),IEEE Press,2012:208211.

[3]R M NOORULLAH.Grasp and GOF patterns in solving design problems[J]. Journal of Current Engineering Research,2011.

[4]DEREN YANG,FULIN SU,TAO ZHOU.Applying robustness analysis to MDA software process paradigm[C].2012 International Symposium on Instrumentation & Measurement, Sensor Network and Automation (IMSNA),2012:419422.

[5]邱郁慧.系统分析师UML实务手册[M].北京:机械工业出版社,2008:1718.

[6]HE MAN, LIU XIANGWEI,HAO CHENGMIN. Research on transformation method from PIM to relation PSM [J].Computer Engineering, 2010, 36(3):5860.

[7]YAMIN M, ZUNA V. Requirements analysis and traceability at CIM level[J]. SoftwareEngineering & Applications, 2010, 3(9):845851.

[8]SHARIFI H R, MOHSENZADEH M. A new method for generating CIM using businessand requirement models [J]. World of Computer Science and Information Technology Journal, 2012, 2(1):812.

[9]刘敏.基于业务模型的MDA软件范型扩展研究[D].银川:北方民族大学,2014.

[10]李波.面向对象技术在MDA软件范型中的应用研究[D].银川:北方民族大学,2014.

[11]孟志伟.管理信息系统的数据库设计[J].信息与电脑,2009(7):9092.

[12]文斌,李荣国.面向对象的数据库设计方法[J].荆门职业技术学院学报,2002,17(3):2325.

[13]张念,陈薇.基于UML的面向对象数据库设计思想及在HR系统中的应用[J].计算机应用与软件,2009(8): 138140.

[14]面向对象的分析[EB/OL].http://sei.pku.edu.cn/~swz/OO/analysis1.pdf.

[15]DEREN YANG,MIN LIU,BO LI.Modeling business for MDA software paradigm[J].International Journal of Database Theory and Application,2014,7(4):155168.

责任编辑(责任编辑:黄健)

猜你喜欢
数据库设计
医疗设备信息管理系统的设计与实现
图书馆入馆教育考试系统分析与设计
试论数据库设计在网站开发中的应用
面向等级考试,探讨高校理工科计算机基础课程教学改革