InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

软件工程的第四个十年,变革来临了吗?

作者 jean-Jacques Dubray 译者 陈亮 发布于 2010年11月29日

领域
企业架构,
过程 & 实践,
架构 & 设计
主题
DSLs ,
领域专用语言 ,
语言 ,
架构 ,
模型驱动工程 ,
编程

Jean Bezivin, Nantes大学的名誉教授,在他最新的博客中,回忆了软件工程过去四十年的历史,因为他相信颠覆的时刻即将到来。Jean认为软件工程已经发生了三次巨变:

第一次巨变在1968年10月的Garmisch NATO会议上已经讨论过了。复杂系统中所浮现出来的问题迫使我们认识到独立程序员时代已经结束了,将来的目标是“超过3万个指令的大型系统,由超过25个程序员在6个月(甚至更长)的时间内完成,并且由多层组织架构的人员来管理。
第二次巨变出现在80年代初期,编程范式从过程式编程到面向对象编程的转变。
第三次巨变是由2000年11月召开的OMG MDA创始会议所触发的。

每次巨变都有相同的特征:当我们使用熟悉的经验和方法来处理行业里的问题时,已经显得力不从心了。比如说,当面向过程的编程语言不能很好地描述现实世界的境况时,面向对象的编程语言出现了,它能够保证大型软件系统的可重用性,并且可以确保软件架构的稳定性。

现在,Jean Bezivin教授看到了一些可能重新定义软件工程的因素逐渐浮出水面。比如说“最终用户也可以是程序员”、软件工程任务的特化;大量的应用程序能够快速地抢占市场,我们称之为应用程序商店(比如说Apple, google等)、技术解决方案层出不穷的多样性、应用程序能够在适当成本基础上追求互操作性的需求、新的技术演进(例如云计算)等。他认为我们正在向一个新的世界迈进:

将来会有大量、飞速演变、相互影响的应用程序。这些应用往往是由不同的程序员使用不同的编程语言来完成的,并且他们往往不会使用传统的软件开发周期。每一个应用都会拥有特定的数据模型,状态模型和事件模型。

为了预测这个革命性时刻的到来,他给出了一个提示:

无论是实践还是技术变革,变化的总是与语言相关的那些东西,因为软件工程的实践与理论核心是语言工程。

最后,他指出了当今编程语言未来可能的发展方向,以此作为总结:

关键问题在于专业人员与作为最终用户的程序员之间的协作,但我们是否需要为最终用户开发出一套专用的软件工程实践?
文本形式的编程语言非常重要,但现在很多可视化的编程语言也渐渐出现了。这些语言提供了抽象语法,同时还带有各种具体语法,这包括文本形式的,表格形式的和可视化形式的。此类语言并非仅仅由语法来定义,还包括元模型(metamodel),模式(schema)和本体(ontologies)等等。
相对于发明新的编程语言来说,真正的难点在于如何在各种领域特定语言(DSLs)之间建立一种精确,可操作的语义关系,这构成了21世纪全新软件工程实践的核心。总之,编程语言之间的互操作性将是相应领域的重要组成部分。

软件工程的变革是否已经让我们等待太久了?如果答案是Yes的话,那么它已经开始了吗?5年后的软件工程将会是什么样的?让我们拭目以待。

查看英文原文:Four Decades of Software Engineering, are Changes Coming?

MDA那一波不提也罢 发表人 xiu calvin 发表于
Re: MDA那一波不提也罢 发表人 zhang 3 发表于
Re: MDA那一波不提也罢 发表人 yi guolei 发表于
软件工程需要吸纳其他工程的成功经验 发表人 景 志刚 发表于
下一场软件开发革命也许是“面向任务开发(TOD)” 发表人 熊 军 发表于
会写程序的程序 发表人 Shichao Liu 发表于
Re: 会写程序的程序 发表人 sun job 发表于
深有感触 发表人 Yan Zhirong 发表于
baidu 发表人 wu tao 发表于
好,软文 发表人 wu tao 发表于
  1. 返回顶部

    MDA那一波不提也罢

    发表人 xiu calvin

    MDA那一罢,除了让工具厂商赚到钱,软件公司花了钱花了时间外,没看出有啥实际影响:)

  2. 返回顶部

    Re: MDA那一波不提也罢

    发表人 zhang 3

    哈哈,英文版上一开始的回复就是MDA sucks

  3. 返回顶部

    软件工程需要吸纳其他工程的成功经验

    发表人 景 志刚

    软件工程需要吸纳其他工程的成功经验。
    乘客登上航班飞机落座后就可以放松一下了。现代航空服务保证旅客可以按时到达预订目的地。然而,乘客却没有必要了解飞机的构造,它是如何设计、制造出来的。尽管现在的技术可以实现无人驾驶,民用飞机驾驶员依然是稀缺资源。
    软件工程需要明软件(特指IT)驾驶员的行为规范。有人驾驶的软件让人更安心。

  4. 返回顶部

    下一场软件开发革命也许是“面向任务开发(TOD)”

    发表人 熊 军

    下一场软件开发革命也许是“面向任务开发(TOD)”
    zhidao.baidu.com/question/106363957.html

  5. 返回顶部

    Re: MDA那一波不提也罢

    发表人 yi guolei

    我觉得还是信任的问题,往往我们都耐不住性子来做这件事情,我想如果我们真能够耐住性子做好的话,效果还是不错滴

  6. 返回顶部

    会写程序的程序

    发表人 Shichao Liu

    如题,会写程序的程序是未来

  7. 返回顶部

    Re: 会写程序的程序

    发表人 sun job

    应该超2个不同的层面发展;第1层面是向底层发展,目标是更加抽象的软件支撑,这要求有点哲学的工程方法,结果是系统软件工程方法;第2层是向前端发展,目标是更加贴近用者的软件体验,这要求有点实用的工程方法,结果是应用软件工程方法。

  8. 返回顶部

    深有感触

    发表人 Yan Zhirong

    面向服务开发方式、面向构件的开发方式、面向框架的开发方式,我们程序员的工作在不断的被集成。无怪乎有人觉得,程序员又一次回到了个人时代。

  9. 返回顶部

    baidu

    发表人 wu tao

  10. 返回顶部

    好,软文

    发表人 wu tao