什么是软件工程
编辑软件工程(engineering,英文:软件工程)是一门系统地、描述性地、定量地研究软件的开发、运行、维护等整个生命周期的学科;即工程对软件的应用。
软件工程的英文单词softwareengineering最早出现于1968年的北约软件工程学会,当时是为了鼓励人们认真思考软件危机。从那时起,作为一个专业,以及一个学术领域,这个领域仍然与它的姊妹领域工程相比,它相对年轻。关于它是否符合定义存在讨论。它是一个从简单地将软件视为编程的局限性中有机发展起来的领域。最近的趋势包括方面、敏捷和模型-驱动。
软件工程历史
编辑1941年现代数字计算机首次出现时,操作指令是通过接线给出的,工作人员很快意识到这种设计方法不灵活,并开发了冯·诺依曼结构的“内置程序”。它是“硬件”和“软件”之间的区别,并且伴随着处理计算复杂性的抽象。
编程语言在20世纪50年代开始出现,这也是向抽象迈出的一大步。主要语言,如Fortran、ALGOL和C++OBOL,分布在20世纪50年代末,处理科学、算法和管理方面的问题Dijkstra 于 1968 年发表了他的种子般的论文“Goto statements Are Been Harmful”,David Parnas 于 1972 年引入了模块化和信息隐藏的关键概念,以帮助程序员克服软件系统不断增加的复杂性。管理硬件的系统也被引入,其中最著名的是 1969 年出现的 Unix。1967 年,simula 语言引入了面向对象的编程范式。
随着软件的这些进步,计算机硬件也随之发展。微型计算机于 20 世纪 70 年代中期推出,使得购买计算机作为爱好并为其编写软件在经济上变得可行。软件开发过程 (SDLC) 也开始出现到了 20 世纪 80 年代中期,它已经成为集中式软件开发的共识。在 1970 年代末和 80 年代初,受 Simula 启发出现了几种新的面向对象编程语言:C++、Smalltalk、Objective-C。
开源软件在 90 年代初开始出现,引入了 Linux 和“集市”或去中心化软件开发。然后,互联网和万维网在 90 年代中期出现,再次震撼了软件工程。方法偏向分布式系统,Java编程语言也通过虚拟机在抽象上向前迈进了一步,通过参与的程序员的协作制定了敏捷宣言,面向更便宜、更快的开发以及更敏捷的开发过程。
当前软件工程的定义仍然存在争议,因为今天的从业者克服了无数的障碍,以更快、更便宜和更快的方式开发软件。
软件工程的教育
编辑编程知识是成为软件工程师的主要先决条件。然而,仅此还不够。许多软件工程师拥有计算机科学学位,有些人评论说,真正的软件工程师短缺,因为软件工程课程需要高等教育然而,专门引入了一个新的软件工程学位作为本科后学位,CCSE定义了标准国际本科课程。
2004年,IEEE计算机协会提出了SWEBOK,并被采纳为软件工程师应该了解的知识范围的标准ISO/IEC24773。
欧盟委员会正在 Erasmus Mundus 项目中向欧洲内外的学生提供欧洲软件工程硕士学位,这是一个涉及欧洲四所学校的双专业项目。
详细信息字段
编辑软件工程分为10个领域。
- 软件需求:软件需求的提取、分析、规范、验证。软件需求工程领域独立存在。
- 软件设计:通常使用计算辅助软件工程 (CASE) 工具并使用 UML 等标准格式来完成。
- 软件开发:使用编程语言构建软件。
- 软件测试
- 软件维护:软件系统有时在首次完成后很久就会出现问题,需要改进。
- 软件配置管理:由于软件系统非常复杂,因此必须以标准化和结构化的方式管理其配置(版本和源代码控制)。
- 软件工程管理:与项目管理密切相关,但软件中存在与其他管理学科不同的细微差别。
- 软件开发流程:从业者对于构建软件的流程存在激烈争论,主要范式是敏捷流程和瀑布流程。
- 软件工程工具,请参阅 CASE。
- 软件质量
百科词条作者:小小编,如若转载,请注明出处:https://glopedia.cn/264892/