acm-header
登录

ACM通信

BLOG@CACM

“创新互联网应用软件工程”20年


20年前,在第十届国际万维网会议上,哈尔·阿贝尔森和菲利普·格林斯彭发表了一篇题为“从麻省理工学院开设的一门学科中学习”的论文。1讨论的主题是“创新互联网应用软件工程”。

在2006/2007年的某个时候,我在浏览一门名为“互联网应用软件工程”的类似主题/课程时看到了他们的论文。

我既不是麻省理工学院的学生,也不是院士,但作为一名软件专业人员,我对这门学科的重点和意图印象深刻。这门课程强调“工程软件”,同时教授使用当前/新兴技术的“创新互联网应用程序的开发”。

Abelson和Greenspun会议论文以一个问题开篇:“为什么软件工程是计算机科学本科课程的一部分?”即使在今天,这个问题仍然重要。业界希望软件开发人员同时也是一个伟大的软件工程师。一个学生在他们的本科学习中真正实践了多少软件工程?即使一个学生在一个学生项目中应用/使用软件工程原则,他们的评估是否基于他们的技能?

Abelson和Greenspun论文继续强调软件工程,并进一步指出:

为了对未来20年的信息系统做出贡献,除了计算机科学核心课程的材料之外,我们还必须教学生:

  • 面向对象的设计,其中每个对象都是Web服务(分布式计算)
  • 关于并发和事务
  • 如何在无状态协议之上构建有状态的用户体验
  • 关于关系型数据库管理系统。
    软件工程教学作者Hal Abelson和Philip Greenspun,第十届国际万维网会议,2001年。1

在20年后的2021年,Abelson和Greenspun的这些观点需要得到学术界和工业界的关注。在过去的20年里,

  • Internet应用程序在规模、复杂性和可用性方面已经得到了发展。
  • 在业务需求的驱动下,这些Internet应用程序的底层前端/后端Web技术和执行平台发生了多次变化。
  • 随着技术和平台的发展,这些变化使得软件行业能够开发和支持以用户为中心的、多通道的、安全的、易适应/可集成/可访问的、智能的、可伸缩的、多租户的、地理/区域无关的和真正的24/7高性能互联网应用程序。

但是——它们是否影响了Abelson和Greenspun的主题“创新互联网应用软件工程”的愿景和使命?这篇论文的标题超越了这些技术和平台的变化。我相信内容每年都在修改。更重要的是,除了技术和平台,参加这门课程的学生还必须学习/理解:

  • 现实生活中的情况/挑战和

这个主题一定是逐渐灌输的

  • 通过课程内容强调模块化、分布式、可扩展性等的重要性。

向前一步:回顾行动

当我最近参与到一个学院的IT本科生课程设置时,我再次想起了Abelson和Greenspun上述论文和我在2006/2007年阅读的《互联网应用软件工程》课程内容。在教授学生构建端到端(全栈)互联网应用程序时,我回忆起他们对各种软件工程学科/方法的顺利集成。

今天,在对IT本科课程进行评估时,我问自己:

考虑到学生学习“XYZ面向对象编程”、“Web技术”、……“分布式与云计算”等作为独立课程/学科,

  • 我们如何确保学生能够采用系统的、有纪律的、可量化的方法来使用这样的范例和技术来开发和维护软件(组件/应用程序/产品)?
  • 他们将如何能够开发一个可生产和可维护的软件?

这个问题更多的是关于时间窗口和习惯。如果他们能找到一个喜欢软件工程,并且在某种程度上喜欢软件工程原则的新人,工业界将会非常高兴。

教育机构试图在自己的限制条件下匹配行业期望和学生愿望。他们绝对不可能完全负责让每个学生成为伟大的软件专业人士。此外,对于每个教育机构和计算机科学/ it部门来说,设计一门课程并教授一门像“创新互联网应用软件工程”这样的课程可能并不容易。

为了实现这些目标,在给定的限制条件下,很少有教育机构在必修课和选修课中考虑逻辑线索。一个典型的逻辑线程是不断提高学生的编程水平。同样的思路也存在于他们提供的各种课程中,如“Web技术”、“Python入门”、“区块链技术”、“数据科学与分析”、“分布式和云计算”、“比特币和加密货币”等。

但缺失的维度是将这些孤立的知识应用于构建应用程序的工程方法;也就是说,学生似乎没有学习“XYZ应用软件工程”。他们甚至没有在解决问题的过程中根据软件工程方法进行评估。

事实上,在教育学生各种编程语言、(Web/Mobile…)技术和新技术领域等方面,软件工程维度的这一小步将对学生和行业产生巨大的影响。因此,在教授“使用Python进行数据科学/分析”时,您甚至可以想到“数据科学应用的软件工程”。

简而言之,Abelson和Greenspun的论文需要得到工业界和学术界的关注,他们需要思考:

  • 2021年的愿景和议程应该是什么?
  • 除了核心的计算机科学课程之外,学者们还应该教授IT本科生“未来20年的工程创新信息系统”吗?

参考文献

1)教授软件工程——麻省理工学院的课程:Hal Abelson和Philip Greenspun
于2001年5月1日至5日在第十届国际万维网会议(香港)上发表。

Vivek s Buzruk他是SarvaTech Consultants Inc.的DevOps顾问。他是位于印度浦那的Pimpri Chinchwad工程学院(PCCoE) IT部门的“研究委员会”成员,主要专注于DevOps洞察和定制软件开发。


没有发现记录

Baidu
map