BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Jean-Jacques Dubray 关注 3 他的粉丝 ,译者 陈亮 关注 0 他的粉丝 发布于 2010年11月30日. 估计阅读时间: 3 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

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?

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

MDA那一波不提也罢 by 江南 白衣

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

Re: MDA那一波不提也罢 by zhang 3

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

软件工程需要吸纳其他工程的成功经验 by 景 志刚

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

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

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

Re: MDA那一波不提也罢 by yi guolei

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

会写程序的程序 by Shichao Liu

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

Re: 会写程序的程序 by sun job

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

深有感触 by Yan Zhirong

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

baidu by wu tao

好,软文 by wu tao

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

10 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT