软件工程的历史和发展趋势

软件工程的历史和发展趋势

在学习、工作、生活中,很多人都写过论文,可以促进经验,交流知识。相信很多朋友对写论文很苦恼。以下是我整理的关于软件工程历史和发展趋势的论文,希望对你有所帮助。在学习、工作、生活中,很多人都写过论文,可以促进经验,交流知识。相信很多朋友对写论文很苦恼。以下是我整理的关于软件工程历史和发展趋势的论文,希望对你有所帮助。

软件工程的历史与发展趋势1摘要:软件是一种特殊的产品。随着其规模和复杂程度的增加以及应用范围的扩大,需要从技术和管理两方面对软件开发过程进行控制。本文以软件工程为背景,回顾了近40年来软件工程在理论、方法和实践方面的成就。最后,结合互联网技术和平台的挑战,初步探讨了软件工程需要面对的新挑战。

关键词:软件危机;组件;建筑;软件项目管理;中间件

1,软件工程的出现

1.1软件危机

20世纪中期,计算机刚刚从军事领域应用到民用领域,当时的编程工作被视为艺术家的创作。当时计算机硬件非常昂贵,程序员追求的是如何在处理器能力和内存空间有限的约束下,写出执行速度快、体积小的程序。这个程序充满了各种令人困惑的技巧。这个时候软件制作就非常依赖开发者的智力了。

20世纪60年代,计算机的应用范围大大扩展,对软件系统的需求和软件本身的复杂程度急剧上升。传统的开发方法在质量和效率方面无法满足用户的需求。这就是所谓的“软件危机”

为了解决这一问题,1968年北约会议上首次提出了“SotfwraeEngineeirng”的概念,将软件开发从“艺术”和“个人行为”转变为“工程”和“群体协同工作”。其基本思想是应用计算机科学的理论和技术,以及项目管理的原理和方法。根据预算和进度,实现符合用户要求的软件产品的定义、开发、发布和维护是一个项目。从此,一门新的学科——软件工程诞生了。

到目前为止,为了达到最初的目标,软件工程界提出了一系列的理论、方法、语言和工具来解决软件开发过程中的一些问题。然而,由于软件固有的复杂性、多变性和不可见性,软件开发周期长、成本高、质量低的问题依然存在。根据IEEE 2002年发表的报告,即使在IT业最发达的美国,2001年美国本土公司开发的软件产品中,每1000行代码中也有0.37个错误,对于美国以外的其他国家,这个比例更高。

1.2软件与其他产品的区别

软件是一种特殊的产品,人们通常看到的是它的载体,但真正有意义的是载体上的计算机或信息。

软件不同于一般的精神产品,也不同于一般的物质产品。作家的作品是一种精神产品,它没有使用价值,但可以被人们阅读和欣赏。如果把软件当成作品,发现它的价值在于人们的使用,没有人喜欢看它的源代码。

软件也不同于传统的工业产品。工业产品设计出来后,主要成本是原材料成本和生产过程费用,但生产任何软件的主要成本是设计和实现软件的成本,以及软件投入使用后的维护成本。生产线上制造软件的成本很低。用户购买商品后,就拥有了商品的所有权和使用权。而用户购买的软件只有其有限的“使用权”。工业产品会随着使用而磨损,但软件在使用过程中不会磨损。在相同的硬件条件下,用户1年前使用的软件和5年后使用的软件没有区别。传统的工业产品是在车间里生产的,生产过程是看得见摸得着的,很容易衡量生产过程中的消耗和进度。但是软件开发过程是在人脑中的,所以很难衡量它的进度。

所谓“软件工程”,就是将这个过程“可视化”和“量化”,把看不见的思维活动变成看得见的“文档”或其他看得见的东西。

2、软件工程方法和技术

在过去的30年中,软件工程的研究和实践取得了巨大的进步。虽然离彻底解决“软件危机”还有相当大的差距(能否彻底解决目前仍有争议),但软件工程的方法对软件产业的发展起到了巨大的推动作用。自20世纪60年代以来,出现了结构化程序设计技术、计算机辅助软件工程(CASE)、面向对象语言和方法、软件过程和软件过程改进研究等一系列成果,并应用于实践。目前软件工程使用的主要方法和技术可以分为技术和管理两大类。

2.1技术视角

主要包括:软件开发范式和软件设计方法。软件开发范式侧重于软件工程的方向,即如何正确编写软件以满足需求;软件设计方法侧重于软件工程的“方法”,即如何完成高层概念模型到低层概念模型的映射。

软件工程理论在实践中的应用集中于软件复用。参考目前成熟的工业产品开发模式,软件复用可以避免软件开发中的重复劳动。它在已有成果的基础上,充分利用过去应用系统开发中积累的知识和经验,着眼于新应用的独特组件。通过使用软件复用技术,我们可以在开发应用系统时充分利用现有的开发成果,消除软件生命周期中的许多重复性任务,提高软件开发的效率。同时,复用高质量的已有成果可以避免二次开发中引入的错误,从而提高软件质量。

实现软件复用的关键技术包括软件构件技术、领域工程和软件体系结构。

软件构件是指在应用系统中可以明确识别的构件,可复用构件是指具有相对独立功能和可复用价值的构件。目前,组件的概念不仅包括源代码,还包括需求、需求规格说明、系统和软件架构、文档、测试计划、测试用例及数据以及其他对开发活动有用的信息,可称为可复用软件组件。软件构件技术是支持软件复用的核心技术,其主要研究内容包括:如何有目的地生产构件,从现有系统中提取构件;组件的本质特征是什么,组件之间的关系是什么?如何描述组件;如何分类、组织和检索组件。

研究实践表明,由于特定领域所需的软件具有相似的需求,软件复用在特定领域更容易成功,从而出现了领域工程。领域工程是为一组相似或类似系统的应用工程建立基本能力和必要基础的过程,涵盖了建立可复用软件构件的所有活动。包括卡耐基梅隆大学软件工程研究所(CMU/SEI)在内的许多研究机构已经提出了一些领域分析方法。

如果软件复用只停留在代码阶段,对开发者的好处是有限的。软件体系结构技术使软件复用从代码复用发展到设计复用和过程复用。在建筑工程领域,人们用建筑来表达建筑物的整体结构。在软件工程的研究中,引入了术语体系结构。其核心内容是软件系统的结构,包括以下实体:组件、组件之间的交互、限制、由组件和连接器组成的拓扑结构、设计原则和准则。