软件工程发展概述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程发展概述
摘要:本文简单介绍了软件工程。分别从软件工程的定义、发展历程、现在发展动态以及未来发展趋势做出简单分析,使我对软件工程的过去、现在和未来有了进一步的了解和认识。
关键词:定义;过程;动态;趋势
1.引言
随着计算机的广泛应用,信息产业悄然兴起,越来越成为经济发展中的先导产业。目前,信息化已从整体上引导着世界经济和社会发展,信息处理技术已成为现代社会生产力、竞争力的关键,具有十分重要的战略位置。这一期间,计算机软件以其独特的知识形态,广泛渗透于国名经济建设的各行各业中,对信息采集、信息处理、信息交换以及生产过程、社会生活的变革产生了深远的影响。计算机软件,尤其是软件工程作为软件产业的依托学科已经成为信息技术的核心之一。
2.软件工程概述
软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。工程是将理论和知识应用于实践的科学。就软件工程而言,它借鉴了传统工程的原则和方法,以求高效地开发高质量软件。其中应用了计算机科学、数学和管理科学。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。
2.1软件工程定义
软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义。概括地说,软件工程是指导计算机软件开发和维护的工程学科。
根据各位学者、组织机构给出的软件工程定义,我简单的将软件工程理解为:软件工程是按照工程学的管理方式,有组织、有计划的在成本限额以内按时完成开发且能在实际机器上可靠有效地运行的软件,并不断对软件进行优化、维护及管理的工作过程。
2.2软件工程方法和技术
30多年来, 软件工程的研究和实践取得了长足进展,尽管目前离彻底解决“软件危机”还有相当的差距(对是否能彻底解决目前也存在争议),但软件工程方法对软件产业的发展还是起到了很大的推动作用。自软件工程兴起以来,陆续出现了结构化程序设计技术、计算机辅助软件工程( CASE )、面向对象语言和方法、软件过程及软件过程改善研究等一系列成果,并应用到实践中。目前软件工程中主要使用的方法和技术可以分成技术和管理两类。
2.2.1 技术的角度
主要包括:软件开发范型、软件设计方法。软件开发范型是关注软件工程的方向,即如何才是正确的编写满足需求的软件;软件设计方法关注软件工程的“途径”,即研究怎样完成从高层概念模型到低层概念模型的映射。
2.2.2工程管理的角度
参考其他成熟工作领域中的做法,软件工程也研究管理学理论在软件工程中的应用。软件项目管理方法抛弃了以前个人的作坊式开发方式,根据管理科学的理论,结合软件产品开发的实际,保证工程化系统开发方法的顺利实施。为了使软件项目的能够按照预定的成本、进度、质量顺利完成,软件管理方法对成本、人员、进度、质量、风险、文档等进行分析、管理和控制。进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的开发能力越高,表明这个企业的软件生产越趋向于成熟,其开发风险也越小。软件项目管理已经是公认的软件开发企业的核心竞争力之一。
3. 软件工程的发展历程
随着人类的发展,计算机作为第三次科技革命的主要代表产品,极大的推动了人类社会发展。与此同时,软件作为现代计算机的重要支撑部分,伴随着计算机的发展不断发展。
3.1 软件工程的发展历史
20世纪六七十年代,计算机硬件技术有了很大的发展,为计算机的广泛应用创造了条件,并要求软件与之相适应。当时的软件生产具有个体化、作坊式特点,开发工具落后,开发平台单一,程序设计语言功能差。尤其是软件维护工作,耗费大量的人力、物力和计算机资源,许多程序的个体化特性使得它们无法修改和维护。有的干脆废弃原有系统不用,从头编写新软件。与此同时,软件的规模越来越大,结构越来越复杂,软件管理和维护困难,开发费用不断增加。这种软
件开发技术、开发工具和生产方式落后的状况与计算机应用迅速普及和对软件的需求日益增加形成了尖锐的矛盾,由此而产生了“软件危机”。软件危机的产生使计算机软件专家认识到软件开发必须以新的方法作指导,原有的软件开发方法必须改变,他们决定把工程技术的思想引入软件开发领域,使软件开发走上工程学科的途径,以摆脱日益严重的软件危机。
目前,软件工程经过50多年的发展,已经深入到社会生活的各个层面,可以说,现代社会生活,几乎在每一个方面都涉及到软件工程。
3.2 软件工程的发展过程
几十年来软件工程的发展大致如下几个阶段:
3.2.1第一阶段——软件危机
20世纪60年代,计算机的应用范围得到较大扩展,对软件系统的需求和软件自身的复杂度急剧上升,传统的开发方法无法适应用户在质量、效率等方面对软件的需求。因此出现了所谓的“软件危机”。软件危机主要表现在:
①软件开发费用和进度失控。
②软件的可靠性差。
③生产出来的软件难以维护。
④软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的需要,软件产品供不应求的状况使得人类不能充分利用现代计算机硬件所提供的巨大潜力。
概括来说,软件危机包含两方面问题:
①如何开发软件,以满足不断增长,日趋复杂的需求;
②如何维护数量不断膨胀的软件产品。
为解决这个问题,1968年NATO会议上提出把软件开发从“艺术”和“个体行为”向“工程”和“群体协同工作”转化。其基本思想是应用计算机科学理论和技术以及工程管理原则和方法,按照预算和进度,实现满足用户要求的软件产品的定义、开发、发布和维护的工程。从此也诞生了一门新的学科——软件工程。
3.2.2 第二阶段——传统软件工程
为迎接软件危机的挑战,人们进行了不懈的努力。这些努力大致上是沿着两个方向同时进行的。
一是从管理的角度,希望实现软件开发过程的工程化。这方面最为著名的成