• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

模型驱动开发,传统编程方式的终结?

发布: 2008-8-06 16:50 | 作者: 网络转载 | 来源: Sawin | 查看: 17次 | 进入软件测试论坛讨论

领测软件测试网

你的明星程序员,你记不清他已多少次拯救你的公司了,可能会说,“如果我用编程的方式实现系统可能要快很多。”你知道他说的可能是对的。但是,这是个大系统,或者请慢,他打算对什么编程呢?是谁为他创建了系统规范?难道他不是团队的一部分吗?或者这个系统确实很小,一个人就能够确定规范,开发测试?即使这样,你愿意所有的信息都只存在这一个人的头脑中?如果他不小心发生车祸,或者你的竞争对手为他提供了一份他无法抗拒的待遇,这时会怎样呢?系统交付以后又会怎样呢?最终用户能够修改实现吗?或即使是理解系统?将来升级,系统维护起来方便吗?

这将我们带入到模型驱动开发的另一个主要用途,把系统和软件开发更多地纳入到系统和软件工程规则中。模型驱动开发是关于开发和维护系统的,系统并不只是由应用程序组成,还包括其他的部分,使得人们可以理解这个应用程序。一个模型可以包含明显可执行的部分,但它几乎总是还有其他部分,并不能被运行,比如需求,系统的粗略框架,商业模型和分析模型。在项目开发时,所有这些都应该被创建出来并保持最新,它们对于将来的维护非常重要。

模型驱动开发的现代工具提供了运行一个(或部分)模型的能力,这使得可以更早得到确认,系统能按预定方式工作。换句话说,这意味着项目风险被极大地降低。在模型驱动开发中,测试也变得更加重要,因为能够被更早和更频繁地进行。这种方式,会使你对在项目后期,应用程序的各部分能够统一合作具有更多地信心。直观地,你可能以为所有这些额外的工作会延长开发周期,但是经验显示,产品上市时间实际上是缩短了。你花费更少的时间用于实现和测试阶段,更多的时间用于分析和设计阶段,当你迭代重复这些过程时,你会发现,这种方式的好处是实实在在的。

UML 2.0 的作用

无疑,统一建模语言(UML,Unifid Modeling Language)就是设计用来进行模型驱动开发的语言。它第一次标准化是在1997 年,作为当时各种面向对象分析方法之争的结果。然后它迅速成为最流行的建模语言,用于“可视化、构造和存档在基于软件的系统创建过程中的产品”。

我们沿着这条道路已经走了五年,用户和工具提供商对于UML 语言都有了更多的经验。我们知道什么很有用处,也知道什么需要被改进。而且,软件工业在这些年也发生了变化,需要去支持一些新的技术,比如基于构件的开发和可执行的模型。这些需求还不能用现在的UML 合适地处理。为了解决这些问题,对UML 大的修订工作两年前由OMG 开始启动,预计于2002 年底前完成。

在语言中新增加的性能,用于对系统架构建模,都是些很重要的部分,使得更容易创建任何复杂度的实际系统。对这种规模可伸缩性的关注也扩展到了其他领域,包括对行为进行建模的图形,比如顺序图和状态机。既然UML 试图适合很多参与方的需要,它需要变成一种相当大的语言,但是并不是每一个人都需要知道语言的所有部分。它被有意识地分割成几种视图或图形,允许你关注于只与你相关的专门领域。其他人可能希望工作在其他的视图上,模型将保持这些视图间的一致性。

工具的考虑

工具实现模型驱动开发的方式各不相同,给予用户或多或少的灵活性。双向工程是一个可怜人的选择,他不能在模型中捕获到系统行为,并且他还把自己与某种特定的编程语言绑定在一起,这还是一种以代码为中心的方法,所有这些都将使你感到难受。在一些紧急的场合,你甚至会忘记模型,比如一个项目就要到达最后期限(看起来在某处总有一个最后期限)了。在项目的最后,你得到了一个可工作的应用程序,还有一个没有实际用处的模型。这时,你甚至怀疑建模的重要性了。

对双向工程问题的一个让步就是在模型中直接插入编程代码,因此强迫你更新模型以确保最终得到一个可执行的应用程序。这同样使你感到难受,又被绑定到某种特定编程语言,你还不得不在模型的很多地方插入代码片断。这很像在C 程序中插入汇编代码,尽管有时这是必要的,但是将来维护会是问题并可能伤害你。

考虑直接在模型中提供指定系统行为的能力,上述两种方法都变得过时。在模型驱动开发中,你只需按一个键,在你选择的平台上,就能获得自动生成的任何语言的代码,这样在模型这一级上就能实现应用程序的可移植性。你不需要修改代码,改变你的系统就能直接反应到模型的实现上。当然,目前还有一些路需要走,大部分的工具厂商目前都有他们自己的语言映射,但要实现MDA 的目标,就需要有对不同语言和平台的标准映射和脚本。好消息就是这种前景正在展现。模型驱动开发确实正在起作用,并必将改变我们开发系统的方式。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

22/2<12

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网