论软件工程的发展历程及前景展望_(学年论文).docx_第1页
论软件工程的发展历程及前景展望_(学年论文).docx_第2页
论软件工程的发展历程及前景展望_(学年论文).docx_第3页
论软件工程的发展历程及前景展望_(学年论文).docx_第4页
论软件工程的发展历程及前景展望_(学年论文).docx_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科学年论文论文题目:论软件工程的发展历程及前景展望 学生姓名: 学 号: 专 业: 班 级: 指导教师: 完成日期: 2013年 11月 20日软件工程系本科学年论文论软件工程的发展历程及前景展望 目录序言1一、计算机的发展历程1(一)软件工程概念实际存在两层含义11、从狭义概念看12、从广义概念看2(二)软件工程及其原理概述2二、软件工程的发展历程2(一)中国软件工程发展2(二)软件的本质特性是构造性和演化性3(三)软件工程学科范围4(四)软件工程的发展趋势41、全球化软件协作交付42、社区驱动的软件交付43、模块化5(五)在软件工程发展中的软件危机51、产生软件危机的原因:52、软件危机问题分析63、软件危机的问题解决7三、软件技术的变革性的阶段7(一)软件技术发展的趋势7(二)软件产业在中国发展很快,但是还存在三个问题8(三)推进软件产业的发展的三个对策8(四)软件人才的培养10小结10参考文献1212论软件工程的发展历程及前景展望内容摘要软件是一种特殊的产品,随着其规模和复杂性的提高、使用范围的扩大,需要从技术和管理两方面对软件的开发过程进行控制,随着软件外包市场的蓬勃发展和软件工程工具的进步,越来越多的企业开始打造软件交付的日不落帝国。本文分析了软件工程的诞生及发展历程,介绍了软件工程未来的发展趋势。又从软件工程这门学科和技术出现的背景出发,回顾了软件工程在近40年来理论、方法和实践中的成果。最后结合Internet技术和平台的挑战,初步讨论了软件工程需要面对的新挑战。关键词:软件工程 现状 发展 The development and Prospect of software engineering.Abstractthe software is a kind of special product, with its size and complexity increase, the use of range expansion, the need for control in the software development process from the technology and management of the two party. This paper analyzes the birth and the development of software engineering, and introduces the development trend of the future of software engineering. From the background of emergence of the discipline of software engineering and technology of software engineering, reviews the achievements in the past 40 years theory, method and practice. Finally, the combination of Internet technology and platform challenge, preliminary discussed the new challenges facing software engineering. Keywords: software engineering present situation 序言从上世纪90年代初起,计算学科(Computing)的发展远远超越了计算机科学的边界,形成了计算机科学、计算机工程、软件工程、信息系统与信息技术等若干独立学科。计算机工程从电子工程学科中分离出来,旨在研究计算机硬件的相关工程问题,而软件工程从计算机科学中的一个学科方向发展成为与之并重的一门独立学科,重点研究如何以系统的、可控的、高效的方式开发和维护高质量软件的问题。一、计算机的发展历程从1946年世界上出现第一台电子计算机以来,计算机技术发展十分迅速,并且广泛应用于生产、科研和社会生活的其它领域。伴随着计算机的广泛应用,计算机软件在计算机系统中的地位越来越重要。人们需要的软件越来越多,而且趋向大型化和复杂化,使软件开发变得越来越复杂,程序设计人员越来越满足不了需要,软件产品质量也变得难以满足各方面的要求,加上软件生产率低,导致软件成本大幅度上涨,软件生产在工业发达国家中占有很重要的地位。软件工程学科诞生后,人们为软件工程给出了不同的定义,而美国梅隆卡耐基大学软件工程研究所(SEI)给出的定义则是软件工程是以工程的形式应用计算机科学和数学原理,从而经济有效地解决软件问题。但目前普遍使用的软件工程定义是由IEEE给出的,即软件工程是将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护。(一)软件工程概念实际存在两层含义1、从狭义概念看软件工程着重体现在软件过程中所采用的工程方法和管理体系,例如,引入成本核算、质量管理和项目管理等,即将软件产品开发看作是一项工程项目所需要的系统工程学和管理学。2、从广义概念看软件工程涵盖了软件生命周期中所有的工程方法、技术和工具,包括需求工程、设计、编程、测试和维护的全部内容,即完成一个软件产品所必备的思想、理论、方法、技术和工具。(二)软件工程及其原理概述软件工程是一门交叉性的工程学科,它是将计算机科学、数学、工程学和管理学等基本原理应用于软件的开发与维护中,其重点在于大型软件的分析与评价、规格说明、设计和演化,同时涉及管理、质量、创新、标准、个人技能、团队协作和专业实践等。从这个意义上看,软件工程可以看作由下列3部分组成。a.计算机科学和数学用于构造软件的模型与算法;b.工程科学用于制定规范、设计范型、评估成本以及确定权衡等;c.管理科学用于计划、资源、质量、成本等管理。二、软件工程的发展历程(一)中国软件工程发展从60年代到90年代,60年代还是手编程序,当时应用在不断的发展,手编程序需要大量的人参与,所以出现了软件危机,软件工程被正式提出来。开始注重程序结构的研究,程序设计语言和编辑系统得到了应用。到了70年代出现了结构化分析和设计方法,程序设计方法学成为研究热点,到80年代CASE工具和环境的研制成为热点,面向对象技术开始出现并逐步流行。到了90年代软件复用和软件构件技术得到广泛的应用。中国软件工程是软件产业的支柱学科,软件工程是1980年开始,软件产业是1982年由国家科委首先组织软件界的人讨论怎么样建设综合的软件产业。软件与软件工程,软件是客观世界中问题空间与解空间的具体描述,是追求表达能力强、更符合人类思维模式,具有易构造性和易演化性的计算模型。软件工程是应用计算机科学理论和技术,以及工程管理原则和方法,按预算和进度来实现满足用户要求的软件产品的定义、开发、发布和维护的工程,或以之为研究对象的学科。(二)软件的本质特性是构造性和演化性软件是典型的知识产品,是客观世界中问题空间与解空间的具体描述,所以软件是有结构的,构造性是软件的本质特性。软件既然是客观事物的反映,是知识的提炼体现和固化,客观世界在不断发展,新需求、新技术不断出现,因而软件系统要不断升级和演化,因此演化性和构造性都是软件的本质特性。软件工程主要研究什么?主要研究软件过程和软件的开发范型,来寻找理论与方法以及工程管理技术,同时要控制软件的质量和软件开发的效率,这些都需要CASE工具环境的支撑。随着软件技术的发展,软件工程的研究范围和内容也在不断变化和发展。其发展经历了如下3个阶段:第一阶段,即传统软件工程阶段:20世纪70年代,为了解决软件项目失败率高、错误率高以及软件维护任务重等问题,人们提出软件开发工程化的思想,希望使软件开发走上正规化的道路,并努力克服软件危机。形成了软件工程的概念、框架、方法和手段。第二阶段,即过程软件工程阶段:80年代末逐步发展起来的面向对象的分析与设计方法,形成了完整的面向对象技术体系,使系统的生存周期更长,适应更大规模、更广泛的应用。这时,进一步提高软件生产率、保证软件质量就成为软件工程追求的更高目标。软件开发开始进入以过程为中心的第二阶段。这个时期人们认识到,应从软件生存周期的总费用及总价值来决定软件开发方案。在重视发展软件开发技术的同时,人们提出软件能力成熟度模型、个体软件过程和群组软件过程等概念。软件开发过程从目标管理转向过程管理。第三阶段,即构件软件工程阶段:进入20世纪90年代以后,软件开发技术的主要处理对象为网络计算和支持多媒体信息的WWW。为了适应超企业规模、资源共享、群组协同工作的需要,需要开发大量的分布式处理系统。这一时期软件工程的目的在于不仅提高个人生产率,而且通过支持跨地区、跨部门、跨时空的群组共享信息,协同工作来提高群组、集团的整体生产效率。因整体性软件系统难以更改、难以适应变化,所以提倡基于部件(构件)的开发方法,即部件互连及集成。同时人们认识到计算机软件开发领域的特殊性,不仅要重视软件开发方法和技术的研究,更要重视总结和发展包括软件体系结构、软件设计模式、互操作性、标准化、协议等领域的重用经验。软件重用和软件构件技术正逐步成为主流软件技术。(三)软件工程学科范围如果从知识领域看,软件工程学科是以软件方法和技术为核心,涉及计算机的硬件体系、系统基础平台等相关领域,同时还要涉及一些应用领域和通用的管理学科、组织行为学科。例如,通过应用领域的知识帮助我们理解用户的需求,从而可以根据需求来设计软件的功能。在软件工程中必然要涉及组织中应用系统的部署和配置所面临的实际问题,同时又必须不断促进知识的更新和理论的创新。为了真正解决实际问题,需要在理论和应用上获得最佳平衡。(四)软件工程的发展趋势1、全球化软件协作交付 全球化的世界必然带来全球化的软件交付模式。根据Forrester的数据,目前87%的开发团队是分布式的,56%有两个以上的开发地点,同时企业的合并和收购趋势不断产生众多新的分布式开发团队,企业为了提供全球化的247支持和开发能力,也在不断加强全球化软件协作交付能力。随着软件外包市场的蓬勃发展和软件工程工具的进步,越来越多的企业开始打造软件交付的日不落帝国:他们在美国完成项目概念设计,在欧洲完成系统架构设计,在中国完成软件编码和测试,在印度为软件用户提供售后支持。在强大的软件工程工具和平台的支撑下,他们开始与时间赛跑,在全球化软件交付环境中,他们几乎实现了24小时不间断的软件交付和支持服务,他们实现了在尊重每个软件从业人员人权的同时,软件交付速度的最大化。2、社区驱动的软件交付 社区驱动的软件交付是IT文化进化到今天的一个产物。年轻的一代比他们的父辈更热衷于社交导航,即人与人之间的协作是由社区驱动的,通过人与人之间的沟通和影响,引导他们航行于信息世界,相互密切协作完成指定任务。于是,演进中的IT文化催生了社区驱动的软件交付,也同时催生了社区驱动的软件交付的工程方法和平台。随着敏捷开发和社会网络模型日益普及,组织开始有兴趣复制经过验证的、开放社区治理的软件交付模型,于是全球化的技术平台带来了新兴的软件交付模式:社区驱动的软件交付模式。在这种软件交付模式中,虽然项目一般都会有某个组织领导,但它更强调个体的创造性和能力,项目的交付是由分布在全世界不同地方的开放社区技术人员和最终用户共同完成的,他们基于公共的社区协作环境,通过Web来共享创新思想,开发和测试软件,最终完成软件的交付。他们的共同特点就是他们对某一领域技术的执着和热爱。3、模块化 随着全球化的发展趋势和全球化市场竞争压力的增加,一方面企业需要更多的业务灵活性和创新能力;另一方面企业面临的IT环境复杂度的增加和历史遗留系统的增加,对企业的IT提出了新的挑战。模块化的思想恰恰能够帮助企业从根本上解决这一问题,它一方面通过抽象、封装、分解、层次化等基本的科学方法,对各种软件构件和软件应用进行打包,提高对企业现资产的重用水平和能力;另一方面,基于模块化思想,业界提出了SOA技术,它提供一组基于标准的方法和技术,通过有效整合和重用现有应用系统和各种资源,对各种服务进行服务组件化,并基于服务组件实现各种新的业务应用的快速组装,帮助企业很好应对业务的灵活性要求。它通过有效平衡业务的灵活性和IT的灵活性、平衡业务的灵活性和IT的复杂度,为IT人提供了一个业务视角,让IT人学会用业务的眼睛看世界,有效的拉近了IT和业务的距离。(五)在软件工程发展中的软件危机1、产生软件危机的原因:(1)用户对软件需求的描述不精确,可能有遗漏、有二义性、有错误,甚至在软件开发过程中,用户还提出修改软件功能、界面、支撑环境等方面的要求。(2)软件开发人员对用户需求的理解与用户的本来愿望有差异,导致开发出来的软件产品与用户要求不一致。(3)大型软件项目需要组织一定的人力共同完成,多数管理人员缺乏开发大型软件系统的经验。各类人员的信息交流不及时、不准确、有时还会产生误解。(4)软件项目开发人员不能有效地、独立自主地处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误。(5)缺乏有利的方法学和工具方面的支持,过分的依靠程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化。2、软件危机问题分析 软件工程即为解决这一危机提出的在软件生命周期全过程中使用的一整套技术方法的集合。包含三个要素:方法:完成软件开发各种任务的技术方法工具:为运用方法而提供的自动或半自动的软件工程支撑环境过程:为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。使用最广泛的两种方法:传统方法学和面向对象方法学。软件工程的原理是:(1)用分阶段的生命周期计划严格管理项目概要计划里程碑计划项目控制计划产品控制计划验证计划运行维护计划(2)坚持进行阶段评审;(3)实行严格的产品控制基准配置管理(Baselineconfigurationmanagement);(4)采用现代程序设计技术;(5)结果应能清楚地审查setstandards;(6)开发小组的成员应该少而精(1+12);(7)承认不断改进软件工程实践的必要性(总结和创新);(8)开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性;(9)软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。3、软件危机的问题解决 要克服软件危机,就要认真分析软件危机的原因,探索用工程的方法进行软件生产的可能性,即用现代工程的概念、原理、技术和方法进行计算机软件的开发、管理、维护和更新。软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法。软件工程的诞生只能大大减少软件开发成本并提高软件质量,不能从根本上消除软件危机。(1)充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。(2)推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。(3)根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件也是一种产品,同样存在生存周期。把软件生存周期划分为几个阶段后,软件开发按照每个阶段的基本任务进行并产生相应的工作结果,这样有利于对软件开发过程进行管理,有利于提高软件产品质量。软件是程序以及开发、使用和维护程序所需的所有文档。软件质量从可维护性、可靠性、可理解性和效率等方面对软件作较全面的评价。三、软件技术的变革性的阶段(一)软件技术发展的趋势21世纪软件技术的发展,21世纪前沿研究十分活跃,往往从某种侧面或层次对信息技术提出一种新型模式或理念,软件技术驱动力依然存在,随着计算机平台从单机、机群、局域网到互联网的转移,软件技术的发展正进入一个变革性的阶段。从资源共享与管理的角度探讨未来网格系统的应用模式,从人机交互的角度研究未来网络系统应用模式、从软件即服务的理念出发,提出了一种新型软件形态并着重探讨软件的协同性和动态性、以特定于领域的代码自动生成为基础,探讨基于中间件的软件系统的开发方法与技术。有对等计算、语义网、自治计算随需即取等,这些都是在互联网发展环境平台基础上,软件技术发展的趋势。(二)软件产业在中国发展很快,但是还存在三个问题第一个问题是,基础软件所占份额尚小,在产业中的基石作用未能凸显,基础软件是软件产业的基石,是软件产业的主要核心竞争力。在中国软件产业规模中,近年来,基础软件虽有较快的增长,但所占的份额尚小,在产业中的基石作用未能凸显,所以我国虽然是软件应用大国,因为渗透各行各业,但还不会是一个软件产业的大国,更不是一个软件产业的强国。第二个问题是:缺乏具有国际竞争力的跨国燃烧企业集团,我国软件企业自主创新能力不够强,缺少品牌产品,还没有形成面向领域的专业化软件企业集团。2006年中国软件产业年鉴上看出,统计2005年中美软件企业前三强软件销售额对比,中国软件企业前三强是华为、海尔、中兴,如果我是搞软件的话,软件都不是我们以为的软件企业,当然华为是很强的软件企业,华为年产值19亿美元,美国软件前三强,IBM613亿美元,所以这方面可以看到差距很大,有待形成具有国际竞争力的跨国软件企业集团。第三个问题是:软件人才结构性的矛盾突出。产业发展的品牌化需要相对应的人才质量,但是现在高管人才供给匮乏,缺少高层次高素质的创新型人才。产业发展规模化需要相对应的人才规模,现在离产业发展需求的人才规模还有较大的差距。产业发展多元化,需要高层次,实用型,复合交叉型的人才。现在缺少面向产业,适应社企业需求,工程能力强的人才,学生我进入企业学要有一到两年的转型,才能真正适应企业的工作,形成企业人才滞后的现象。学术界和研究院所,对软件的需求,人才的结构,人才的培养,以及自主创新体系的建设问题上要很好的解决,要很好解决产业的结构模式,组织模式和生产方式,产学研结合,这样才能真正协调发展,推进软件产业的发展。(三)推进软件产业的发展的三个对策对策一:坚持自主创新,突破基础软件,推广构件技术。要集中资源大力发展基础软件。基础软件的基础性是应用软件开发与运行的基础,它的关键性反映基础软件是保障国家政治、经济、军事等方面信息化的安全。基础软件具有垄断性,拥有大量用户的软件必然在市场上形成垄断,使得后期的同类产品很难超越,基础软件垄断厂商能对构成竞争的应用软件厂商进行有效的制约。高转移成本性,用户选择新的基础软件的转移成本,要有协调成本、购置成本,学习成本所组成,所以它很容易被锁定与控制。根据这些特性,一定要发展自主的基础软件,来提高我国信息产业核心竞争力,来规避民族软件产业的风险,为国家信息化保驾护航,从这里看到基础软件是软件产业的基石。从美国、日本、印度三国来看,基础软件在软件产业的基石作用,美国掌握了绝大部分通用基础软件核心技术与产品,分享全球软件产业约40%市场份额,日本研发绝大部分嵌入式基础软件核心技术与产品,拥有全球软件产业10%的市场份额,印度原先忽视基础软件的研发,所以落后于注重嵌入式基础软件的研发而后来居上的韩国,在这条线上,紫色是韩国,蓝色是印度,所以从这上面可以看到,后来发现这问题,重视基础软件开发以后,又重新超越韩国,所以从这里可以看到基础软件的重要性。同时要建设我国自主的软件平台,这里包括通用的软件平台和领域的软件平台。再有就是要推广构件技术,突破软件工业化生产关键技术。软件工业化生产关键技术比如软件复用与软件构件技术,需求工程技术,可信计算技术等,这些都是当前关注加以研究的关键技术。对策二:提高企业的创新能力,使企业成为创新主体,首先要全方位的创新,实精深透做事,为企业提供创新的内部动力。所谓全方位的创新,要从理念、技术、管理、机制等几个方面推进创新,理念创新可以推进技术创新,从而研发核心产品,可以改进管理,促进产业化建立创新的机制来保持持续的创新,所以持续的创新很关键。实精渗透做事,做实做精理解需求,在做深的基础上提出新的需求,做透就是向横向发展,交叉发展,提出创新发展的新方向,这样使创新不断持续发展。政产学研相结合,为企业提供创新的外部支持,政府的作用在制定相关的法律法规,建立以公共构件库体系为核心的公共软件基础设施,组织制定和发布技术标准,研究机构和大学要研究先进的软件技术和管理方法,深入企业技术管理相关的培训、咨询和指导,而且培养高层次、实用型,符合型国际化的软件人才。企业要面向领域、结合应用,变革生产方式,提高能力,做强做大,发展成专业化的企业集团和企业联盟。结合可以使企业兼顾三代产品,通过创新持续发展。企业和用户相结合,面向应用提出需求,企业和学研机构相结合可以关注研发孕育第三代产品,我们常说代表未来发展趋势的产品,正在基础研究过程中的产品。它参与工程化开发第二代产品,这代产品应该极具市场潜力的产品,正在工程化研发中的产品。企业和市场结合,来主持产业化,批量生产第一代产品,是传统的产品,在生产线上批量生产。政企结合营造政策环境和创新的氛围,所以结合可以使企业兼顾三代产品,通过创新持续发展。对策三:建立软件产业的结构模式/组织模式,面向需求培育人才,通过创新实现产业跨越式发展。软件产业的结构模式,包含软件产业的技术基础,工业化生产技术支撑软件产业,以构件技术,促进软件产业的合理分工,以及软件构件业,系统集成组装与构件业,中间的一块是软件基础设施。(四)软件人才的培养 软件产业的组织模式,在某一领域内,以既有创造能力,又装备软件产业基础设施的龙头企业带动一批具有创新能力的中小型软件企业,形成具有国际竞争力的跨国软件企业集团。既增强产学研结合,企业之间又增强合作的模式,才能真正发展大型跨国燃烧企业。面向产业需求创新培养模式,大量培养创新型人才。软件人才素质要求很特殊,既要求从事软件的人细致、严谨、认真、甘于寂寞、乐于奉献,责任感强,同时要求软件人员兴趣广泛、思路开阔、善于观察自然和社会,具有创新创业精神,所以软件创意型产业是客观世界的描述,要求你具备这样的境界和能力,所以我喻之为动静结合,还要有国营的技术,良好的文化底蕴与艺术素养,所以作为一个软件人才来说,素质要求很高的。现在软件人才队伍的结构亟待合理,软件人才需求的结构是宝塔型,软件人才目前培养供给的结构是两头小中间大,而且人才知识、能力结构问题,反映在人才培养偏重学科型,面向产业、适应企业需求,实际工程能力

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论