找回密码
 立即注册
搜索
查看: 241|回复: 0

MDA的好处

[复制链接]

76

主题

807

回帖

1169

积分

金牌会员

积分
1169
发表于 2004-9-15 09:45:50 | 显示全部楼层 |阅读模式
MDA的好处

生产率
MDA将开发人员的注意力转移到开发PIM上,虽然很多时候仍然需要做很多复杂的工作定义额外的信息来指导模型的转换。但是这种工作只需要做一次,并能应用到不同的技术平台上。虽然定义转换规则的工作量是比较大的,但是它仅仅由高水平的软件架构师来完成,一旦创建完成,就可以分发到项目组中使用,主要的开发人员只需要将注意力放在开发PIM上面。由于它们创建PIM的过程与具体的平台无关,它们可以免于陷入具体的实现细节当中。这些实现细节可以在从PIM到PSM模型转换的过程中被自动加入。
这就从两方面提高了生产率:
一方面,最好的实践表明模型技术将系统分离成不同的模块,这种分离是MDA的基础,简化了每个系统模块,使得他们易于创建、开发、重用和维护。PIM开发人员由于不需要设计和撰写平台相关的细节,减少了工作量。在PSM和Code层面,开发人员仅需要编写少量的代码,因为大部分的框架代码都已经从PIM中自动生成了。
另一方面,从模型中自动生产高质量的、完全的实现代码,将使得开发者解放出来,他们可以花更多的时间去解决商业逻辑的问题,这样可以使得系统更加符合客户需求,在更短的时间内完成更多的功能性需求的分析和设计。
能够带来这种效率提升的前提是我们拥有一个能够完全实现从PIM到PSM自动化转换的工具。这就暗示着我们的系统大部分信息都必须融入到PIM当中,并能够被工具所理解。由于详细设计不再仅仅是纸张,而是能够直接产生代码的驱动力,所以就要求PIM必须完整、准确,对系统建模的要求比传统的开发方式要高很多。

轻便性
MDA关注的是平台无关的模型,而它天生就具有轻便的特点。对于多种流行的平台,很多工具将会支持从PIM到此平台的PSM的转换。对于那些不是很流行的平台,开发人员可以选择支持插入功能的工具,将为这种平台定义的转换规则嵌入到工具中使用。
对于将来可能产生的新的技术和平台,软件工业将会分发相应的转换规则。这能够使得我们迅速地将PIM使用新的技术实现,并发布到新的平台中。

互操作性
从PIM中生成的多个PSM之间可能存在一定的关系,在MDA中,它们被称为桥接器(bridges)。由于PSM针对一个特定的目标平台,所以它们相互之间不能够直接通信。无论如何,我们需要将一个平台的概念转换到另一个平台的相关概念,这就是我们常说的互操作性。MDA解决这一问题的方法是,不光从PIM生成PSM,还生成连接PSM的桥接器。
假设我们从PIM中生成两种目标平台的PSM,我们所需要的弥补两个PSM之间鸿沟的桥接器接信息都是可得的。对于一个PSM中的每个元素都是从PIM中的元素转换得到的;对于PIM中的每一个元素都会转换到2个PSM中的对应元素。因此我们可以推断一个PSM中的元素和另一PSM中的元素是有关系的。同时我们也知道两个平台的技术细节,因此我们就掌握了为PSM之间生成桥接器的所有有用信息。
举例,一个PSM是Java平台模型,另一个PSM是关系数据库模型。对于PIM中的一个元素Customer,转换到Java平台模型中是Java Class;转换到关系数据库模型中是一张表。创建Java对象和数据库表之间的桥接器接是非常容易的。为了从数据库中获得数据,我们查询Customer表,实例化Java对象并保存数据到对象中;为了保存对象,我们从Java对象中获得数据并保存到Customer数据库表中。
我们可以通过使用工具产生PSM以及它们之间的桥接器来实现跨平台的互操作性。你可以通过投资PIM的方式来将你从繁杂的技术细节变更中“拯救”出来。

可维护性和文档问题
在MDA中,模型是对代码的最佳诠释,PIM完全可以当做设计文档来对待。与传统的文档相比,一个很大的不同就是当完成PIM的创建之后,PIM不会象传统的文档那样被“抛弃”。对系统的改变首先是要更改PIM,再从PIM重新生成PSM和代码。根据代码更新设计文档的工作是单调乏味和耗时的。然而,使用MDA模型,代码和文档总是保持同步。由于代码由模型生成,你可以知道模型和代码总是保持同步状态,系统新的开发者可以迅速接手,因为他们拥有一个可读性高的系统结构图。这些特性对于维护人员来说都是一种福音,都可以显著降低维护成本。

软件质量问题
在开发过程中,如果发现了一个错误,修补它的花费越多,那么交付日期就越推后。基本的PIM可以减少系统复杂性,提高系统质量。模型帮助我们在团队成员之间提高沟通效率,减少错误。自动生成代码可以减少我们手写代码“误敲”带来的缺陷。MDA模型测试工具能帮助开发者在编码之前自动化测试他们的应用程序――模型级别。需要说明的是,设计缺陷和应用程序逻辑错误此时无法被发现。
通过MDA开发应用程序,由模型自动化生成和转换代码技术,尽责的PIM定义,减少低端的代码编写,不牺牲灵活性、可控制前提下的质量保证体系。我们都知道,较少的手写代码和早期的bug发现可以提高按时完成一个高质量系统的可能性,减少了质量保证花费,从而使预算可控。
代码生成器根据经过实践考验的设计模式来生成代码。由于模型和模式框定了你的应用程序框架和实现,可以确保你的产品的各个模块都是同等质量的代码,开发人员水平参差不齐的问题也在一定程度上避免了。

充分地延长系统的生命周期
需求变更或者修改功能时可以迅速反映:将PIM和PSM分离使得需要更改实现技术时作出快速反映,因为不需要更改PIM。当平台相关的系统被维护时,原有架构可能满足不了新需求。这时,很多公司的做法不是重新设计架构,而是给系统应用补丁,这会造成架构变得脆弱。使用MDA,功能和架构被单独定义,当新的热门技术出现时,我们可以使用现有的设计来产生新的实现,这在很大程度上延长了系统的生命周期。
同时MDA在对系统互操作性上的努力,也能够使得遗产系统起死回生。对系统做一些改变,自动化产生data integration bridges和connection来和新的系统进行集成,这也延长了系统的生命周期。

测试和仿真
由于模型可以用来生成代码,他们同样也可以被用来根据需求进行验证、根据组织结构来测试,还可以直接用来仿真系统行为。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|海浩社区

GMT+8, 2025-9-19 17:30 , Processed in 0.075849 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表