当前位置:文档之家› 软件工程发展概述

软件工程发展概述

软件工程发展概述摘要:本文简单介绍了软件工程。

分别从软件工程的定义、发展历程、现在发展动态以及未来发展趋势做出简单分析,使我对软件工程的过去、现在和未来有了进一步的了解和认识。

关键词:定义;过程;动态;趋势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 第二阶段——传统软件工程为迎接软件危机的挑战,人们进行了不懈的努力。

这些努力大致上是沿着两个方向同时进行的。

一是从管理的角度,希望实现软件开发过程的工程化。

这方面最为著名的成果就是提出了大家都很熟悉的“瀑布式”生命周期模型。

后来,又有人针对该模型的不足,提出了快速原型法、螺旋模型、喷泉模型等对“瀑布式”生命周期模型进行补充。

另外,确定了一些重要文档格式的标准,包括变量、符号的命名规则以及原代码的规范式。

第二个方向,侧重与对软件开发过程中分析、设计的方法的研究。

这方面的重要成果就是在70年代风靡一时的结构化开发方法,即面向过程的开发或结构化方法以及结构化的分析、设计和相应的测试方法。

3.2.3第三阶段——现代软件工程软件不是纯物化的东西,其中包含着人的因素,于是就有很多变动的东西,不可能像理想的物质生产过程,基于物理学等的原理来做。

早期的软件开发仅考虑人的因素,传统的软件工程强调物性的规律,现代软件工程最根本的就是人跟物的关系,就是人和机器(工具、自动化)在不同层次的不断循环发展的关系。

面向对象的分析、设计方法(OOA和OOD)的出现使传统的开发方法发生了翻天覆地的变化。

随之而来的是面向对象建模语言(以UML为代表)、软件复用、基于组件的软件开发等新的方法和领域。

与之相应的是从管理的角度提出的软件过程管理。

即关注于软件生存周期中所实施的一系列活动并通过过程度量、过程评价和过程改进等涉及对所建立的软件过程及其实例进行不断优化的活动使得软件过程循环往复、螺旋上升式地发展。

迄今为之,为了达到最初设定的目标,软件工程界已经提出了一系列的理论、方法、语言和工具,解决了软件开发过程中的若干问题,而软件工程正式从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。

4.软件工程的发展现状4.1 软件工程技术现状及发展趋势软件工程自二十世纪六十年代末诞生以来,经历40余年的坎坷,它已经成为计算机科学领域一门综合性和工程性的独立学科。

现在以及未来若干年内,软件工程的研究热点将主要集中在软件重用和软件构件技术、中间件、标准化技术等方面。

4.1.1软件重用和软件构件技术软件重用和软件构件技术是软件工程领域长期研究的一个主要热点问题。

其中,构件是核心和基础,重用是方法和手段。

构件的重用,能使软件开发人员减少甚至摆脱写代码的低效工作,致力于更高层次的搭构件,把更多精力放在问题定义过程,促使问题空间与求解空间尽可能一致。

在构件和构架模型中,有必要把构件与构件间的交互作用相分离,以提高构件的独立性和可重用性。

业界目前关注的问题主要集中在构件和构架的清晰准确地描述、构件库的管理、可重用构件和构架的获取等方面。

目前流行的NET和J2EE采用两种不同的构件模型和技术,NET采用COM/COM+模型,J2EE采用EJB模型。

4.1.2中间件技术软件重用及构件化应用开发和运行需要有不同层次的中间件平台的支撑。

中间件兴起以后,构件技术才逐渐走向现实。

构件必须在中间件平台上才能发挥作用,只有在适当的中间件平台上,软件才有可能被抽象和隔离,最终成为构件。

因此中间件技术近年来成为软件工程关注的焦点和软件业发展的关键。

中间件按功能大致可分为5类:数据库访问、远程过程调用、通信、事务处理和分布对象中间件。

中间件技术将对软件重用和软件构件技术的发展带来深刻的影响。

4.1.3标准化技术标准化既是软件重用和软件构件技术发展的需要,也是其必然结果,同时还是软件产业健康发展的强力支撑。

软件工程标准包括软件标准和软件过程标准。

而软件过程标准的建立是软件工程成熟的重要标志。

最近几年,国际软件工程标准化活动异常活跃,产生了从企业到国际一级的各种各样的标准,对世界软件产业产生了巨大的规范化引导作用。

目前,国际流行两大软件工程标准框架。

一个是国际标准化组织(ISO/IEC)的软件工程和系统工程标准分技术委员会提出的软件工程标准框架。

另一个是美国国防部提出的软件工程标准指南。

4.2 软件产业的发展现状4.2.1国外软件产业发展现状20世纪90年代以来,世界软件产业获得了飞速发展。

据IDC统计,全球软件业的年均增长率一直保持在15%~20%之间。

目前,全球软件业已经开始进入成熟期。

产业分工较为明确,产业成熟度较高,成本已成为企业竞争的首要因素。

发达国家的软件企业从降低成本考虑,逐步集中力量发展核心业务;利用全球的人力资源,将大量非核心业务向发展中国家转移。

国外很多项目的开发都是基于一些图形化的东西来做的,他们的目的是尽量少写代码甚至不写代码。

代码能够通过图形化的方式自动生成,这样的一个好处就是如果用户的需求变化或者业务逻辑发生变化,我们需要做的就是对图形表示的调整,然后重新自动生成代码,这也就是国外开发很注重对项目的概念和逻辑分析的原因。

他们的重点是把业务规则和需求用图形化的方式表现出来,然后通过CASE 工具自动生成代码。

所以当国人还在不停的开发一个又一个的MIS 工具的时候,国外已经把很多精力放到了CASE 工具的制作上。

4.2.2 中国软件产业的发展状况近期国内信息化投资呈现加速趋势,软件产业整体发展较为平稳,得益于持续的政策支持和资金投入,软件服务化进程将不断加快,推动了软件产业结构继续调整优化。

相关主题