软件工程的发展历程

上传人:jin****ng 文档编号:149466487 上传时间:2022-09-07 格式:DOC 页数:6 大小:59KB
收藏 版权申诉 举报 下载
软件工程的发展历程_第1页
第1页 / 共6页
软件工程的发展历程_第2页
第2页 / 共6页
软件工程的发展历程_第3页
第3页 / 共6页
资源描述:

《软件工程的发展历程》由会员分享,可在线阅读,更多相关《软件工程的发展历程(6页珍藏版)》请在装配图网上搜索。

1、软件工程的发展历程The Development of Software EngineeringAbstract : The emergence of software crisis has promoted the formation and development of software engineering. This paper describes the software project from Object Oriented Software Engineering, to Component Based Software Engineering, to Service Ori

2、ented Software Engineering, and summarizes the development course of the past 20 years, as well as the revelation of software engineering development. Key words:Software Engineering;OOSE;CBSE;SOSE摘要:软件危机的出现,促进了软件工程学的形成和发展。该文介绍了软件工程 从面向对象的软件工程(Object Oriented Software Engineering)、到基于组件的软 件工程(Compone

3、nt Based Software Engineering、到面向服务的软件工程(Service Oriented Software Engineering)的发展,总结其近20年的发展历程以及从软件工 程的发展得到的启示。关键词:软件工程;OOSE; CBSE; SOSE1 引言随着计算机的发展,计算机的应用日益广泛,计算机软件的开发、维护工作 显得越来越重要。如何才能开发出用户满意的软件;如何以较低的成本开发出高 质量的软件;怎样使所开发的软件在运行过程中容易维护,以延长软件的使用周 期;如何提高软件开发、维护过程中的自动化程度,提高软件开发效率;软件工 程如何管理等。这些就是软件工程研究

4、的问题1。软件工程是指导计算机软件开 发和维护的学科。软件工程的目的是在规定的时间、规定的开发费用内,开发出 满足用户需要的、质量合格的软件产品。计算机系统的发展、软件应用的日益广 泛和软件危机的困扰促进了软件工程的产生和发展。2 软件工程的各个阶段2.1面向对象的软件工程(O OSE)自从1985年首次提出面向对象的概念以来,面向对象技术作为一种全新的软 件开发方法开始在软件工程领域越来越被广泛使用。80年代末90年代初,面向对 象的软件工程方法呈现百花齐放、百家争鸣的局面。其中,引人注意的是Booch、 Rumbaugh和Jacobso n为代表的三种面向对象技术。这三种主要的面向对象方法

5、各 有优缺点,而希望采用面向对象方法的用户并不深知这些方法的优缺点及相互之 间的差异,因而很难根据应用特点选择合适的建模方法和建模语言。于是,出现 了 UML。面向对象技术在软件工程领域的全面应用即是面向对象的软件工程方 法。它包括面向对象的分析(OOA)、面向对象的设计(OOD)、面向对象的编程 (OOP)、面向对象的测试(O OT )和面向对象的软件维护(O OSM)等主要内容。面 向对象的分析和设计建模技术是面向对象软件工程方法的重要组成部分2。OOA的基本任务是针对问题域和系统责任,运用OO方法,建立一个反映问 题域的OOA模型,不考虑与系统实现有关的因素(包括编程语言、图形用户界面、

6、 数据库等等),从而使OOA模型独立于具体实现。00D的基本任务是根据已确立的系统对象模型,运用面向对象技术,进行 系统软件设计。其中包括两方面的工作:一是把OOA模型直接搬到OOD,做为 00D的一个部分;二是针对具体实现中的人机界面、数据存储、任务管理等因 素补充一些与实现有关的部分。这些部分与00A采用相同的表示法和模型结构。 从00A到00D不存在转换,只有很局部的修改或调整,并增加几个与实现有关 的独立部分。00A与00D的工作是连续的、无缝的,允许有一定的相交,也允 许从00D返回到0 0A。OOP的工作就是用同一种面向对象的编程语言把00D模型中的每个成分书 写出来。00T即是对

7、于用00技术开发的软件,在测试过程中继续运用00的概念和 原则,进行以对象概念为中心的软件测试。00SM。面向对象的软件工程方法为改进软件维护提供了有效的途径。程序 与问题域一致,各个阶段的表示一致,从而大大降低了理解的难度;系统中最容 易变化的因素(功能)作为对象的服务封装在对象内部,对象的封装性使一个对象 的修改对其他影响很小,从而避免了波动效应。00SE可较好的描述系统与其用户之间的信息交换机制,即用于向软件系统 提出需求后,软件系统完成这项需求的过程。00SE方法遵循瀑布式的软件开发 过程,首先是描述与系统交互有关的用户视图,然后建立分析模型,最后的构造 过程则完成交互设计、实现和测试

8、。00SE方法的最大特点是面向用例。用例(use case)代表某些用户可见的 功能,实现一个具体的用户目标。用例代表一类功能而不是使用该功能的某一具 体实例。用例是精确描述需求的重要工具,贯穿于整个软件开发过程,包括对系 统的测试和验证过程。2.2基于组件的软件工程(CBSE)如何更好地实现软件重用一直是软件工程的重要研究课题。 00技术的出现 是软件开发技术的巨大进步,但怎样实现大粒度的重用以提高软件的可维护性和 可扩展性仍是一个难题,CBSE的发展从根本上解决这一问题:由于C0M/DC0M、 JavaBeans/EJB等组件标准的出现,CBSE趋向实用。1990年开始在基于面向对象 技术

9、的基础上发展了组件技术,它丰富了重用手段和方法,逐渐成为研究的热点。 组件(Component)是可用来构成软件系统的即插即用(plug and play)的软件成 分,是可以独立地制造、分发、销售、装配的二进制软件单元。CBSE是指用装 配可重用软件组件的方法来构造应用程序。它包含了系统分析、构造、维护和扩 展的各个方面,在这些方面中都是以组件方法为核心的。与传统的软件重用方法比较,CBSE有以下特点:1)即插即用。组件可以方便地集成于框架中,不用修改代码,也不用重新编译。2)以接口为核心。组件的接口和实现是分离的。组件通过接口实现与其他组件的 框架的交互,组件的具体实现被封装在内部,组装者

10、只关心接口,不必知道其实 现细节。3)标准化。组件的接口必须严格地标准化,这是组件技术成熟的标志之一,目前 主要的组件标准有Microsoft的C0M/DC0M,Java的JavaBeans和EJB,0MG组织 的COR-BA。可以说,计算机界很久以前就有用组件来装配成应用软件的想法, 但始终未能成为现实,其中的一个主要原因是组件标准的缺乏。正是由于出现了 以上较为成熟的组件标准,才使得CBSE由梦想走向现实。4)组件通过市场销售和分发。大量成熟的组件可以通过市场购得,市场的竞争机 制也可以保证组件生产的质量的提高、种类的增加和价格的降低。CBSE的意义:(1)CBSE从根本上改变了软件生产方

11、式正是福特创造了汽车的流水线制造法,才开创了工业化大规范生产的新纪 元。而福特制造的精髓就是将汽车生产的重点从制造每一个零件转到装配,汽车 制造者不必自己设计制造每一个零件。大部分零件由外购而来。过去的软件生产 方式与旧的汽车生产方式十分相似,开发者往往要编写程序中的绝大多数代码。 因此,如果能实现像组装汽车或机器一样地进行软件开发,将是软件工程的巨大 进步。(2)CBSE提高了软件重用率,保护了已有的投资生产好的组件可以分发销售给多个其他用户,一方面大大降低单个组件的成 本,另一方面大大降低软件开发中的重复劳动。目前在各家企事业单位中存在着 许多旧的计算机软件系统,可以将这些系统分成模块后通

12、过组件技术封装起来, 成为新系统的组成部分。这种通过标准的接口将旧的程序代码隐藏起来的做法, 巧妙地保护了已有的软件投资。(3)CBSE使开发者将更多的注意力放到业务流程和业务规则上去由于开发者的主要工作是构造框架和装配组件,使他们可以摆脱编程的细节 问题,将更多的精力投入到与用户交流。另外,一切业务管理者也可以在更高的 层次上,用偏近于业务而不是偏近于计算机的语言进行讨论。(4)CBSE开发的系统的维护十分方便由于CBSE是模块化开发,如果某个模块需要修改,只需用修改好的模块替 换掉以前的模块,不用重新编译整个系统。若想扩展系统的功能,也只需将符合 框架的约束条件的接口要求的扩展模块直接加入

13、到该系统即可。由此可见,CBSE 开发的系统的维护和升级都十分方便。(5)CBSE降低了对系统开发者的要求尽管CBSE没有消除系统开发者和使用者之间的分界线,但却移动了这条分 界线。这是因为CBSE的开发者主要任务是装配已有模块,不需要有很高的编程 技巧。从而使更多的人可以构造适用于自己的系统。在开发环境中,仅仅在构造 组件时才需要对编程语言的熟悉和高超的技巧。2.3面向服务的软件工程(SOSE)随着网络技术的普及与网络技术的发展,以网络为基础的信息系统应用与服 务已成为国民经济可持续发展、社会生活与国家安全保障的重要支柱。我们正在 走向面向服务的软件工程(SOSE)时代。面对市场需求的快速变

14、化,要求企业系统具有敏捷服务、快速重构、资源重 用及自由扩充等特点。这样就应运而生了面向服务的架构(Service Oriented Architecture, SOA) 7。它定义了构成系统的服务,通过描述服务之间的交互提 供特定的功能特性,并且将服务映射为具体的某种实现技术。SOA的核心概念是 服务,即把软件的某些功能独立出来,使之能独立运行,并且在逻辑关系上和运 行的应用系统成为一个层次。它接受来自所有授权对象的请求,使得服务可以同 时为多个应用程序提供相同的功能,大大增大软件复用程度,减少开发和维护成 本。一个服务是服务提供者为实现服务请求而执行的一个工作单元(应用程序), 是一些良定

15、义的操作,也就是说,一个服务实现了一个应用的功能,它是一个粗 粒度的、可发现的软件实体,通过一组松散耦合和基于消息的模型与其它的应用 或服务交互。如图1所示,SOA主要包括三个主体:服务请求者、服务注册者和服务提供者。图1 SOA的体系图(1) 服务请求者。又称服务消费者,是需要使用服务的应用程序或其它的服务。 通过对注册中心的服务进行查询后,根据接口说明信息并使用某种传输协议与服 务绑定并执行服务功能。(2) 服务注册者。集中存储服务信息,以便于服务请求者查找。同时服务提供者 可以把所要提供的服务在服务注册者处进行注册。(3) 服务提供者。即服务的拥有者,它将各种信息及功能封装成用于业务流程

16、的 可重用组件的应用程序函数;负责将服务信息发布到服务注册者,响应服务请求 者的命令并为之提供高质量的服务。SOA的提出代表着标准化、松耦合、粗粒度的软件体系结构的出现,更代表 着不拘泥于具体技术实现方式的一种新的软件开发思想。随着SOA逐渐走向成 熟,它正在成为下一代主流开发技术。3 联系与区别CBSE与00技术有着密切的关系,实际上00技术对于CBSE既不是必要条 件,也不是充分条件。首先,组件不一定要用00语言编写,任何一种可以实现组件标准接口和所 需功能的语言都可以用来编写组件。虽然由于00语言的种种特殊点,一般认为 它是编定组件的最自然的语言。但国外有一些专家反而认为目前使用的00技

17、术 如如Java, Corba和ActiveX并不稳定和足够成熟,并不是最佳选择。而且,CBSE扬弃了00技术的某些特点多态性和继承性是00技术的重要特 点。但是,对象之间的继承性可能造成系统间的级联影响,即父类的改动会引起 相应的子类的性质的自动变化。这些性质对于CBSE显然是不利的。CBSE更重视 的是封装性,它希望程序修改导致的影响严格限制在组件的内部。另外,CBSE的涵盖面要广于00技术。CBSE包括了系统分析,系统的设计 与建模,项目组织,组件的开发的管理等各个方面,而00技术通常只包含00A, 00D,00P这3个方面。00SE是将00技术运用于软件生命周期的各个阶段,每个阶段都有

18、相应的规 范模型来描述。必须将00方法学和软件工程基本理论进行有机结合,从而形成 完整严密的00SE理论体系,并能够应用于软件工程实践中。00SE具有广阔的 应用前景,必定能够大大提高软件生产率和软件可靠性,提高软件质量。而CBSE 的出现改变了软件开发的各个环节,它是软件生产技术的巨大进步,它从根本上 解决大粒度的软件重用问题和大大提高软件的可维护性、可扩展性,并有效保护 已有的投资。4 启示与总结纵观软件工程的发展历史,我们可以得到以下启示:1研究工程理论和实践需要有系统科学的思想软件工程的技术和方法贯穿着系统科学的基本思想。系统科学是一门探索系 统的存在方式和运动变化规律的学问,是对系统

19、本质的理性认识,是人们认识客 观世界的一个知识体系。软件工程中的一些重要方法,如结构化方法、面向对象 方法等都沿用了系统科学的思想方法。软件工程的发展趋势要求在集成和发展现 有理论和方法的基础上继续深入研究其支撑理论体系,并建立新的理论基础。从 系统论和工程系统论的角度进行研究有助于软件工程重大理论和实践问题的突 破。2软件工程管理任重道远 大量事实表明,为了解决软件危机,既要有技术措施(方法、工具),又要有必要 的组织管理措施。软件工程需要从管理和技术两方面研究如何科学、正确、合理 地开发和维护软件。现有的软件项目开发大都还属于粗放型阶段,需要遵循软件 工程的思想和方法向产业化和精细化的方向

20、发展。软件工程过程包含一系列软件 工程活动,如软件规格说明、软件开发、软件确认、软件演进等。研究软件过程 的可视化管理和定量管理以及科学适用的经济分析技术是业内人士面临的迫切 任务。3软件工程的新技术新方法将不断涌现 软件工程的发展历程告诉我们,科学技术的发展是没有止境的。软件工程的发展 历史本身就是一个不断提出问题又不断解决问题的过程。从软件工程开发方法的 进化来看,人们先是从面向一大堆数字信息(DO)到面向过程(P0),再从面向过 程提升到面向对象(0O),再从面向对象演进到面向服务(SO)。这一漫长的过程 必然导致大量新技术新方法的不断涌现,从而推动软件工程的长足进步。 参考文献1 陈惠

21、恩,张成姝.实用软件工程.2 版.北京:清华大学出版社, 20092 刘红霞,刘红艳.传统的软件工程方法与面向对象的软件工程方法比较 .雁北 师范学院学报,2002,18(2)3 长沙大学计算机科学与技术系.软件工程的发展与启示.中国信息导 报,2005.9:59-614 冯健文,林璇.基于组件的软件工程(CBSE)研究.江西师范大学学 报, 2004, 28(1) :32-35 王珏,张建沛,张菁软件工程的新发展:CBSE.应用科技,2002,29(6): 48-506 毕忠东 , 刘启明 . 面向对象的软件工程与面向对象的建模方法 . 福建电 脑, 2007, 8: 54-557 魏东, 陈晓江, 房鼎盛. 基于 SOA 体系结构的软件开发方法研究. 微电子学与计算机, 2005, 22(6) : 73-768 李长云,李赣生,李莹,胡军.面向服务的软件开发 .计算机工程,2005,31( 17): 52-54

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!