基于构件化的软件产品开发研究

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

控制工程C ontrol Engineering of China Jan.2008V ol.15,N o.1

2008年1月第15卷第1期

文章编号:167127848(2008)0120075203

收稿日期:2007201209; 收修定稿日期:2007204229 基金项目:上海市科委发展基金资助项目(05dz05037) 作者简介:胡国奋(19622),男,浙江余姚人,高级工程师,博士,主要从事企业管理等方面的工作。

基于构件化的软件产品开发研究

胡国奋,欧阳树生

(上海宝信软件股份有限公司,上海 201203

)

摘 要:为了满足软件产品的开发对生产质量和开发周期提出的更高要求,阐述了标准化工作中的模块化在软件产品构件化开发中的重要性,回顾了基于构件的软件开发方式的发展历程,提出了基于构件的软件开发方式和相关的实施案例。通过构件化的开发方法,为企业提高了软件产品质量,缩短了产品上市的周期,取得了良好的经济效益。关 键 词:软件复用;领域模型;构件;构件库中图分类号:TP 31 文献标识码:A

C om ponent 2based S oftware Product Development and Investigation

HU Guo 2fen ,OUY ANG Shu 2sheng

(Shanghai Baosight S oftware C o Ltd ,Shanghai 201203,China )

Abstract :Along with the constant development of com puter s oftware technology ,the higher requirements for s oftware product quality and de 2velopment cycle of the s oftware product development ,the com ponent 2based s oftware development products becomes an inevitable choice.The im portance of m odularization in standard com ponent 2based s oftware development is introduced.The history of com ponent 2based s oftware devel 2opment is reviewed ,and the com ponent 2based s oftware developing methods are proposed.The success ful cases using com ponent 2based s oftware development are given.Through the development method of com ponents ,the s oftwares for enterprises can im prove product quality and short the cycle of the product on the market.

K ey w ords :s oftware reuse ;domain m odel ;com ponent ;com ponent library

1 引 言

基于构件的软件开发方式,其实质就是模块化

在软件开发上的体现。由传统的开发方法转为基于构件的软件开发方式,使软件企业实现高效的软件新产品开发是一个重要的标志。软件构件即相当于

工业流水线生产上的“标准件”[1]

。构件的最大特点是可以不断复用,可以显著降低成本,缩短开发周期。在1968年国际NAT O 软件工程会议上,提出了软件构件与“软件组装生产线”思想。此后,采用构件技术实现软件复用,并采用“搭积木”的方式生产

软件,成为软件业长期的梦想[2]

。由于技术水平限制,在很长一段时间内构件技术只是作为一种思想存在,直到C ORBA ,J2EE 和C OM ΠDC OM 出现,中间件兴起以后,构件技术才逐渐走向现实。

2 基于构件的软件产品开发方法

基于构件的软件产品开发是将大型的软件产品开发转化为系统架构开发、构件分析、提取、开发和集成。构件的集成机制(构架技术),涉及到构件

的描述、体系结构、消息通信等多种技术。构件的分析、提取工作需要对此领域具有丰富的经验,通过不断分析领域内的共性、个性的特征来完成,主

要有面向领域的特征分析等方法[3,4]

。基于构件的软件产品开发,一般是先确定系统的总体框架,然后构造各个构件,并依次把构件安装到系统中去。其中,DVR 2C A 是一个分布式的虚拟现实软件体系结构,该体系结构允许通过“组装”构件的方法来形成一个分布式虚拟现实应用系统,各构件通过该体系结构进行互操作,协同完成任务。

1)构件化技术路线 当前主流构件标准规范包括OMG 的C ORBA ,Sun 的J2EE 和Micros oft DNA (Distributed Intemet Applications )2000[5,6]。

①OMG 的C ORBA C ORBA 分布计算技术是OMG 组织在众多开放系统平台厂商提交的分布对象互操作内容的基础上制定的公共对象请求代理体系规范。C ORBA 分布计算技术,是由绝大多数分布计算平台厂商所支持和遵循的系统规范技术,具有模型完整、先进,独立于系统平台和开发语言,被支持程度广泛的特点,已逐渐成为分布计算技术

的标准。C OBRA 标准主要分为对象请求代理、公共对象服务和公共设施三个层次。最底层是对象请求代理ORB ,规定了分布对象定义(接口)和语言映射,实现对象间的通讯和互操作,是分布对象系统中的“软总线”;在ORB 之上定义了很多公共服务,可提供如并发服务、名字服务、事务(交易)服务、安全服务等各种各样的服务;最上层的公共设施则定义了组件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。

②S UN 的J2EE Sun 在1999年底推出了Java2技术及相关的J2EE 规范,J2EE 的目标是提供平台无关的、可移植的、支持并发访问和安全的,完全基于Java 的开发服务器端构件的标准。在J2EE 中,Sun 给出了完整的基于Java 语言开发面向企业分布应用规范,其中,在分布式互操作协议上,J2EE 同时支持RMI 和II OP ,而在服务器端分布式应用的构造形式,则包括了Java Servlet ,JSP ,E JB 等多种形式,以支持不同的业务需求,而且Java 应用程序具有“Write once ,run any where ”的特性,使得J2EE 技术在发布计算领域得到了快速发展。

③Micros oft DNA 2000 Micros oft DNA 2000是Micros oft 在推出Windows2000系列操作系统平台基础上,在扩展了分布计算模型,以及改造Back O f 2fice 系列服务器端分布计算产品后发布的新的分布计算体系结构和规范。在服务器端,DNA 2000提供了ASP ,C OM ,Cluster 等的应用支持。

DNA 2000融合了当今最先进的分布计算理论和思想,如事务处理、可伸缩性、异步消息队列、集群等内容。DNA 使得开发可以基于Micros oft 平台的服务器构件应用,其中,数据库事务服务、异步通讯服务和安全服务等,都由底层的分布对象系统提供。以Micros oft 为首的DC OM ,C OM ,C OM +阵营,从DDE ,O LE 到ActiveX ,提供了中间件开发的基础,如VC ,VB ,Delphi 等都支持DC OM ,包括O LE DB 在内新的数据库存取技术,随着Windows 2000的发布,Micros oft 的DC OM ,C OM ,C OM +技术,在DNA2000分布计算结构基础上,展现了一个全新的分布构件应用模型。

2)构件化开发流程 通过构件化开发的实践[7,8],改变了原来应用软件开发积累少、代码复用性低、开发周期长的状况,并在构件化服务中心的指导下,建立了构件化开发一般流程。

①首先要查询标准构件库,选择合适的构件。②对标准构件库中不完全满足开发需求的构件进行分析和抽象,可以修改或派生出新的构件;对标准构件库中不存在的构件,若对它的需求属于基础构件、通用构件,则需要组织相关人员进行开发和测试,并将新开发的构件放入构件库。

③如果相应的需求属于领域构件,则通知有关开发组,由项目组承担相关的开发工作,完工并经过测试组测试后进入构件库。

④在工作中,各项目组如果积累了成熟稳定的构件,组织一级会安排专项测试,最终将其纳入组织构件库。

构件化开发流程,如图1所示。

图1 开发流程示意图

Fig 11Diagram of development process

构件化开发和非构件化开发的流程相比,有许

多优点:

①每一个新的应用软件开发的基础不再是从头开始,流程的第一步根据待开发应用软件的特点,选择合理的构件化框架与构件,比起没有基础的从头开发,节约了大量调研、开发、调试时间。

②在每一个新的应用软件项目的开发过程中,有意识地形成新的构件,以构件的衡量要求标准来要求项目部件的开发。当项目部件的接口明晰度、稳定性等标准达到构件的要求时,就将该部件作为候选构件准备加入构件库。这样做一方面由于用构件的标准要求部件开发,大大提高了新开发部件的质量与稳定性;另一方面加速构件库的积累,形成一个良性循环,更快地提高生产率。

③维护比具体应用构件有更高复用性的开发框架型的构件,本身它是一系列的构件,同时还是进行构件化开发的容器、模板。框架构件有更高的复用性。VisualFrame C ++已经应用在交通、工业自动化、公共安全等领域,可以很容易地向其他更多领域拓展。框架构件可以容纳多个应用构件。应用构件装配到框架构件,不必改变代码,进行简单配置,就能直接运行。框架构件库的建设可以使项目开发做到十分容易,各自开发,积木式装配,大大提高了大集成化软件开发效率。

3 基于构件的软件开发应用案例

1)MES 构件化开发 根据ERP 与MES 的功能定位来看,MES 系统将管理的重点放在从订单接收

到合同准发的整个生产设计、计划和执行的过程管理。综合的整体性管理和基于生产线生产过程的管

理是ERP 和MES 功能分担的基本依据[9]

①应用系统架构设计 根据以上的定位,整个架构采用客户端、应用服务器、数据库端三层结

・67・ 控 制 工 程 第15卷

相关文档
最新文档