软件工程发展史及发展趋势

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程发展史及发展趋势

一:软件工程定义

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,也提高了工作和生活效率

二:软件工程的发展历史

随着人类的发展,计算机作为第三次科技革命的主要代表产品,极大的推动了人类社会发展。与此同时,软件作为现代计算机的重要支撑部分,伴随着计算机的发展不断发展。

早在20世纪50年代,有关软件的编程语言就已经出现,但是关于软件工程这个概念却要远远晚于软件发展。据资料显示,软件工程这个概念最早出现在20世纪60年代末期。在软件工程发展的半个多世纪内,软件工程所使用的程序语言不断发展,而且有关于软件四六七零零四零二二号码论文写作工程的模型不断发展,从最早的瀑布模型到现在光为人所知的云计算,软件工程几乎每隔5-10年就会获得一次突破性发展,而且有关软件语言从最早的面向程序结构转向为面向对象,极大的提升了软件编程的效率。目前,软件工程经过50多年的发展,已经深入到社会生活的各个层面,可以说,现代社会生活,几乎在每一个方面都涉及到软件工程。1.软件工程开发过程

软件是由计算机程序和程序设计的概念发展演化而来的,是在程序和程序设计发展到一定规

模并且逐步商品化的过程中形成的。软件开发经历了程序设计阶段、软件设计阶段和软件工程阶段的演变过程。程序设计阶段

程序设计阶段出现在1946年~1955年。此阶段的特点是:尚无软件的概念,程序设计主要围绕硬件进行开发,规模很小,工具简单,无明确分工(开发者和用户),程序设计追求节省空间和编程技巧,无文档资料(除程序清单外),主要用于科学计算。软件设计阶段软件设计阶段出现在1956年~1970年。此阶段的特点是:硬件环境相对稳定,出现了“软件作坊”的开发组织形式。开始广泛使用产品软件(可购买),从而建立了软件的概念。随着计算机技术的发展和计算机应用的日益普及,软件系统的规模越来越庞大,高级编程语言层出不穷,应用领域不断拓宽,开发者和用户有了明确的分工,社会对软件的需求量剧增。但软件开发技术没有重大突破,软件产品的质量不高,生产效率低下,从而导致了“软件危机”的产生。软件工程阶段

自1970年起,软件开发进入了软件工程阶段。由于“软件危机”的产生,迫使人们不得不研究、改变软件开发的技术手段和管理方法。从此软件产生进入了软件工程时代。此阶段的特定是:硬件已向巨型化、微型化、网络化和智能化四个方向发展,数据库技术已成熟并广泛应用,第三代、第四代语言出现;第一代软件技术:结构化程序设计在数值计算领域取得优异成绩;第二代软件技术:软件测试技术、方法、原理用于软件生产过程;第三代软件技术:处理需求定义技术用于软件需求分析和描述。2.软件工程的各个阶段

面向对象的软件工程(OOSE)

自从1985年首次提出面向对象的概念以来,面向对象技术作为一种全新的软件开发方法开始在软件工程领域越来越被广泛使用。80年代末90年代初,面向对象的软件工程方法呈现百花齐放、百家争鸣的局面。其中,引人注意的是Booch、Rumbaugh和Jacobson为代表的三种面向对象技术。这三种主要的面向对象方法各有优缺点,而希望采用面向对象方法的用户并不深知这些方法的优缺点及相互之间的差异,因而很难根据应用特点选择合适的建模方法和建模语言。于是,出现了UML。面向对象技术在软件工程领域的全面应用即是面向对象的软件工程方法。它包括面向对象的分析(OOA)、面向对象的设计(OOD)、面向对象的编程(OOP)、面向对象的测试(OOT)和面向对象的软件维护(OOSM)等主要内容。面向对象的分析和设计建模技术是面向对象软件工程方法的重要组成部分。

OOA 的基本任务是针对问题域和系统责任,运用OO方法,建立一个反映问题域的OOA 模型,不考虑与系统实现有关的因素(包括编程语言、图形用户界面、数据库等等),从而使OOA模型独立于具体实现。

OOD的基本任务是根据已确立的系统对象模型,运用面向对象技术,进行系统软件设计。其中包括两方面的工作:一是把OOA模型直接搬到OOD,做为OOD的一个部分;二是针对具体实现中的人机界面、数据存储、任务管理等因素补充一些与实现有关的部分。这些部分与OOA采用相同的表示法和模型结构。从OOA到OOD不存在转换,只有很局部的

修改或调整,并增加几个与实现有关的独立部分。OOA与OOD的工作是连续的、无缝的,允许有一定的相交,也允许从OOD返回到OOA。

OOP的工作就是用同一种面向对象的编程语言把OOD模型中的每个成分书写出来。OOT 即是对于用OO技术开发的软件,在测试过程中继续运用OO 的概念和原则,进行以对象概念为中心的软件测试。

OOSM。面向对象的软件工程方法为改进软件维护提供了有效的途径。程序与问题域一致,各个阶段的表示一致,从而大大降低了理解的难度;系统中最容易变化的因素(功能)作为对象的服务封装在对象内部,对象的封装性使一个对象的修改对其他影响很小,从而避免了波动效应。

OOSE可较好的描述系统与其用户之间的信息交换机制,即用于向软件系统提出需求后,软件系统完成这项需求的过程。OOSE方法遵循瀑布式的软件开发过程,首先是描述与系统交互有关的用户视图,然后建立分析模型,最后的构造过程则完成交互设计、实现和测试。OOSE方法的最大特点是面向用例。用例(use case)代表某些用户可见的功能,实现一个具体的用户目标。用例代表一类功能而不是使用该功能的某一具体实例。用例是精确描述需求的重要工具,贯穿于整个软件开发过程,包括对系统的测试和验证过程。基于组件的软件工程(CBSE)

如何更好地实现软件重用一直是软件工程的重要研究课题。OO技术的出现是软件开发技术的巨大进步,但怎样实现大粒度的重用以提高软件的可维护性和可扩展性仍是一个难题,CBSE的发展从根本上解决这一问题:由于COM/DCOM、JavaBeans/EJB等组件标准的出现,CBSE趋向实用。1990年开始在基于面向对象技术的基础上发展了组件技术,它丰富了重用手段和方法,逐渐成为研究的热点。组件(Component)是可用来构成软件系统的即插即用(plug and play)的软件成分,是可以独立地制造、分发、销售、装配的二进

相关文档
最新文档