软件工程四十年及其发展

时间:2023-02-11 15:05:28
程序加上文本和起来成为软件,软件是为开发的,是由人开发的。   软件系统可能是人类所创造的最错综复杂的事情,软件工程还很年轻,需要继续探索和尝试。   软件工程的定义有很多版本,IEEE给出的定义是:(1)将系统的、规范的、可量化的方法应用于软件开发,运行和维护,即将工程应用于软件。(2)在(1)中所述方法的研究。所以,软件工程也不神秘,他研究是我们日常软件开发中的工作方式,正是因为人的心理难以琢磨,人大脑处理复杂性时速度和容量的局限。 软件工程知识体系层次,包括:过程、瀑布、增量和迭代、统一过程、敏捷运动、过程评估和CMM方法、功能分解、数据流、实体关系、面向对象、UML、模式运动、工具等等。 一言以蔽之,整个软件史可以归纳为抽象水平的不断提高。当今的软件密谋系统(softwere­­ in tensive system)有一系列共同特征;它们通常都相当复杂,分散部署,并发写作,同时还在持续不断地演化。不仅如此,这类系统大多不是孤立的,系统之中嵌入系统,单个系统不过是其中一个元素而已。软件工程的未来将面临这样严峻的考验:任何推动世界向未来发展的进步举动,都依赖于目前尚未问世的软件。这样,打造复杂软件系统的能力将影响个人和机构,甚至人类文明。这是软件开发人员的荣耀:我们也已并将继续改变这个世界。文明运行在软件之上。讨论软键工程未来发展趋势,首先要思考一下计算模型和软件开发本身的变化和趋势。从计算模型而言,我们注意到:CPU运算�力按摩尔动律快速提升;并行运算技术以及多核多线程技术使服务器的处理能力飞速提升;互联网的速度发展使得云计算成为可能,经过互联网相连的服务器集群在服务器端提供了更强大的计算能力。从软件开发而言;由于计算功能向服务器端的快速集中,提供高速并行运算能力和可能性的中间件技术被广泛采用,甚至已经成为构点大型软件系统的必选项;由于采用了中间件技术,软件开发者可更集中关注业务逻辑,从而减少编写的代码行数;计算功能的增强,是软件越来越易用,从而使软件变得无处不在;为了使分布在互联网上系统能够互相协作,SOA成为下一个热点,互联网的普及,将单乘分散的开发人员聚合在一起,只要有一个合适的基础和好的框架,就可以开发出产品及的开发工具(以EclipseIBOSSMySQLSubversio为例)开原成为了一种趋势;B/S结构的系统非常容易升级;在上述大趋势的作用下,软件工程的趋势如下:需求工程,渐成热点用例的优势在于用自然语言抽象了用户和目标系统的交互,避免了混入分析。设计和实现细节,也可以别不懂具体技术的的业务及测试人员真正理解。给予领域的框架(DSSA)和模型驱动开发(MPD)老树开花。迭代敏捷形成标准。敏捷的三个要素是开发,坦诚合作和自适应性。坦诚合作是敏捷的精髓,它更多的思考了如何去激发开发人员的工作热情,这是几十年软件工程发展过程中相对别忽略的领域。 对软件工程感兴趣的同志可参考《程序员》 2008 9 4                 朱鹏举

本文出自 “朱鹏举” 博客,转载请与作者联系!