APP下载

基于构件的软件开发方法应用研究

2009-06-22

新媒体研究 2009年20期
关键词:构件软件系统

聂 磊

[摘要]基于构件的软件开发是以构件为组装蓝图,以可复用软件构件为组装模块,支持组装式复用,以提高软件生产效率和软件产品质量的有效途径。对软件构件技术、基于构件的软件开发方法进行较深入的研究,并在此基础上将构件技术引入到软件项目设计中来,探讨如何利用软件构件技术开发软件项目。

[关键词]软件开发构件技术应用研究

中图分类号:TP3文献标识码:A文章编号:1671—7597(2009)1020093--01

一、引言

随着软件开发规模和复杂性、社会对软件开发速度和数质量要求的不断提高,“软件危机”现象愈加明显,提高软件生产率成为软件产业当务之急。为此,人们提出了软件复用思想,而构件技术是软件复用技术的最新发展趋势。基于构件的软件开发技术近年来取得了突飞猛进的发展,这不仅对软件产业的技术革新影响深远,还将为许多其它领域带来巨大的效益。构件化技术对软件开发工厂化是非常重要的。有了构件才能通过构件的组装、互连,实现软件的工程化开发。

二、软件构件技术

(一)软件工程概念

软件工程的概念主要是针对20世纪60年代“软件危机”而提出的。它首次出现在1968年NATO(北大西洋公约组织)会议上。自这一概念提出以来,围绕软件项目,人们开展了有关开发模型、方法以及支持工具的研究。其主要成果有:提出了瀑布模型,开发了一些结构化程序设计语言、结构化方法等。并且围绕项目管理提出了费用估算、文档复审等方法和工具。

(二)软件构件技术

构件最早由Meliroy在1968年NATO软件工程会议上提出。构件是可复用的软件组成成份,可被用来构造其他软件。它可以是被封装的对象类、类树、一些功能模块、软件框架、软件构架(或体系结构)、文档、分析件、设计模式等。构件分为构件类和构件实例,通过给出构件类的参数,生成实例,通过实例的组装和控制来构造相应的应用软件。例如,如果有一个开发人员创建了一个能让一个客户进入公司的数据库的构件,那么其他程序员就不必重新编写这个功能,而是从公司的构件库中直接提取这个构件,并将其应用在新程序中。

基于构件的软件开发(cBSD,Component Based software Development)是以构件为组装蓝图,以可复用软件构件为组装模块,支持组装式复用,以提高软件生产效率和软件产品质量的有效途径。它包含了系统分析、构造、维护和扩展的各个方面,这些方面都是以构件方法为核心的。

软件构件技术以及基于构件的软件开发方法,与传统软件工程方法有所不同,它不仅仅针对某个具体的工程项目,而更多地是针对某一行业领域的共性需求,利用领域工程方法,将多年积累的行业经验进行总结,提炼出业务模型、特定领域的系统架构、构件库等,这样开发出来的架构和构件封装了业务的个性和变化性,具有此领域的共同特点,在此领域有很高的可复用性。有了这样的积累之后,整个应用软件的生产方式将发生很大的改变,将不再是从头做起。而是以“构件组装”的方式生产出软件应用系统。软件系统的质量、复用率和开发效率都得到大幅提高。

软件构件技术要想在实际工作得到有效利用,需要有一些平台软件来支撑,这就是我们所说的软件构件技术的支撑平台四要素,即构件运行支撑环境、构件开发/组装环境、构件管理环境和基于构件的开发方法和过程。

三、构件化开发实践——基于构件的院校办公系统

在深入研究基于构件的软件开发方法的基础上,将其运用在院校办公系统中,在较好实现系统功能的基础上,更能充分发挥基于构件的软件开发方法的优点,使该系统更易于升级和维护,使系统的安全性、可扩展性、复用性、可定制性和适应性均得到大大提高。

(一)构件体系结构与接口的设计

目前支持构件体系结构开发较成熟的模型有CORBA、COM/DCOM及J2EE三大技术体系。其中J2BE具有平台无关性、可一次开发多处运行等特点,因此我们选用J2EE技术。

J2EE技术提供了一个基于构件的开发方法来设计、开发、装配和部署企业级应用程序。J2EE平台提供了一个多层结构的分布式的应用程序模型,该模型具有重用组件的能力、基于扩展标记语言(XML)的数据交换、统一的安全模式和灵活的事务控制。

在CBSD中,系统是依靠各种构件协同工作完成系统功能。为了实现各构件间信息交换就需定义一组接口。业务构件接口设计包括逻辑控制构件接口(Session EJB接口)和业务对象构件接口(Entity EJB接口)。

在该系统中采用一组服务来完成,上层或需用方通过以XML定义的服务接口向提供者请求服务,系统中各构件也利用该接口发布和请求服务。

(二)应用系统的部署

在构件实现、装配和测试成功以后,构件就可以被部署在应用程序中了。在这一步需要连接客户端应用程序和服务器端构件。

例如,在构建运用JsP/Servlet技术基于Web的应用系统中,组装过程就是连接web服务器和应用服务器(包含EJB构件容器)。在web端JsP或Java Servlet根据业务要求调用EJB构件相应服务(接口操作)。

在开发过程中任务的分配采用全局开发采用分层模式,局部开发采用分模块方式。相应地软件开发人员分为构件生产者和构件使用者两类,构件生产者可以将主要精力放到业务逻辑部分。而构件使用人员将得到可复用构件装配到系统中,可以全身心关注与用户交互部分。全局分层模式的运用将与用户交互部分与后台逻辑处理部分严格分离,实现了真正的软件松耦合目的,另外也实现了构件的“一次编写,处处运行”目的。

四、结语

基于构件的软件开发方法极大地利用了复用技术,可以减少软件开发活动中大量的重复性工作,提高软件生产效率,降低开发成本,缩短开发周期。同时,由于可复用构件大都经过严格的测试,并在实际运行环境中得到进一步检验,因此,利用可复用构件进行软件开发有助于改善软件质量。此外,大量使用可复用构件,软件的灵活性和标准化程度也可望得到提高。

本文对软件构件技术、基于构件的软件开发方法进行了较深入的研究,并在此基础上将构件技术引入到软件项目设计中来,探讨了如何利用软件构件技术开发软件项目。关于基于构件的软件开发方法的研究,以后还需要结合更多实际项目尤其是大规模项目进行更深入的研究和探讨。在大型软构件库的支持下,利用现有的、质量好、可靠性强的软构件,按照大规模软件开发的工程规范进行开发,是满足大型系统要求的捷径。

猜你喜欢

构件软件系统
一种无人机缓冲系统
品“助读系统”之妙
直扩系统中的窄带干扰抑制
直扩系统中的窄带干扰抑制
有趣的识花软件
基于构件的软件工程技术与理论方法探讨
即时通讯软件WhatsApp
武汉工地钢材贴上电子标签
基于构件的软件开发实践
丰富多彩的Android软件