软件工程的发展历程

上传人:ni****g 文档编号:549531930 上传时间:2023-06-21 格式:DOCX 页数:5 大小:34.22KB
返回 下载 相关 举报
软件工程的发展历程_第1页
第1页 / 共5页
软件工程的发展历程_第2页
第2页 / 共5页
软件工程的发展历程_第3页
第3页 / 共5页
软件工程的发展历程_第4页
第4页 / 共5页
软件工程的发展历程_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《软件工程的发展历程》由会员分享,可在线阅读,更多相关《软件工程的发展历程(5页珍藏版)》请在金锄头文库上搜索。

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)、面向对象的测试(OOT)和面向对象的软件维护(OOSM)等主要内容。面 向对象的分析和设计建模技术是面向对象软件工程方法的重要组成部分2。OOA的基本任务是针对问题域和系统责任,运用OO方法,建立一个反映问 题域的OOA模型,不考虑与系统实现有关的因素(包括编程语言、图形用户界面、 数据

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

7、0技术开发的软件,在测试过程中继续运用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的COM/DCOM,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技术 如Java, Corba和ActiveX并不稳定和足够成熟,并不是最佳选择。而且,CBSE扬弃了00技术的某些特点多态性和继承性是00技术的重要特 点。但是,对象之

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号