构件开发

2024-07-14

构件开发(共8篇)

构件开发 篇1

2007年下半年, 我有幸参加了内蒙古自治区西部区**市一家三甲医院远程医疗会诊技术服务平台的项目开发, 并在其中担任系统平台的设计和部分开发工作, 本项目隶属于**市***三甲医院的专网, 是医院信息化建设的一部分, 在医院信息化建设和发展中具有举足轻重的地位, 随着医疗市场的激烈竞争, 充分面向社会推出自己的专家, 对提高医院的知名度, 提高医院的社会效益和经济效益具有很大的作用, 因而医院对此项目有较高的要求。

由于此平台是一个综合性的在线式基于WEB的远程技术支持平台, 存储着大量信息数据, 提供任务发布和查询, 拓扑图查询, 专家分类查询, 软件支持下载, BBS, VOD视频等服务, 功能的多样化, 必然会在软件开发中出现重复开发的现象, 所以在开发初期我从该系统的需求分析入手, 着重考虑了软件复用, 在开发过程中采用了基于构件的软件开发方法。我将软件设计为B/S结构, 三层体系架构:用户界面层, 应用逻辑层, 数据库层。用户界面层考虑到用户的易用等方面, 用的是浏览器 (如IE等) , 通过ASP.NET语言来实现同应用逻辑层构件交互;应用逻辑层用来处理各种应用功能的实现, 负责事务处理, 主要通过使用COM组件方式实现, 以构建形式进行设计开发, 考虑到以后的扩展和软件的复用性, 大大的提高了开发效率;数据库层用SQL SERVER来实现。

结合我部门的实际情况, 我部门现有的各级软件系统都是基于Windows系列平台, 且开发人员对COM组件技术也比较熟悉, 对开发语言VB.NET也很熟悉, 在这里我选择Microsoft应用服务器的解决方案, 用windows server 2003作为应用服务器, 确定使用Microsoft的COM组件技术来开发该平台。用SQL SERVER 2005为后台数据库, 用ASP.NET+IIS6.0来架构网站。

由于COM组件既可以被嵌入动态WEB页面, 还可以在LAN或桌面环境的VB.NET, VC.NET等应用中使用。另外该组件之间是彼此独立的。当应用需求发生变更时, 可能需要更换中间层的个别COM组件, 但并不影响其他组件的继续使用。组件具有若干对外接口 (属性和方法) , 可以根据不同的应用需求, 来选择使用不同的接口。即使不再使用某些接口时, COM组件本身仍然可以继续使用。同一COM组件可以在不同的应用环境中重复使用。

由于该系统以在线服务支持为主, 主要包括了用户交互操作, 资料输入, 数值处理, 数据存储等几个方面, 我们依据平台的主要功能, 为了节省开发时间和提高维护效率, 我决定把公用的代码模块都作成了组件, 例如把记录操作 (如记录的删除, 增加, 修改等) , 数据库操作, 查询做成用户管理组件, 把用户身份认证和用户类型识别作成用户管理组件, 把所有实现与数据库的连接作成连接组件, 把用户的错误操作, 与系统的交互出错等作成错误处理组件。对于各组件采用VB6语言进行编写, 并写成DLL文件, 同时注册成为COM程序, 供各个组件调用。在数据库连接方面, 我们采用了ADO技术。由于ADO采用了OLE-DB技术, 使能访问各式各样的数据并提高了访问性能。

在该平台开发过程中, 主要设计和实现了以下一些COM组件:

(1) 用户管理组件, 包括身份认证功能

我们主要定制COM组件用户管理组件User Check.dll进行用户管理处理。该组件主要完成两个功能:一是身份认证功能, 主要是提供用户登录时验明身份, 保证应用的安全性。二是根据用户所输入的账户名确定该用户的类别。

因此, 该组件具有两个接口, 每个接口代表组件的某个属性或方法。对用户的登录请求作出相应的处理:如果是普通用户登录则转入普通用户平台, 如果是管理员登录就转入管理员平台。

(2) 查询和提交信息组件

我们主要制定COM组件Query Sys.dll进行查询和提交信息处理。该组件主要完成两个功能:一是提供查询相关信息;二是提交相关信息。

该组件有两个接口, 每个接口代表组件的某个属性和方法。如果用户的请求是查询信息功能, 则将查询信息请求作出相应的处理, 并将查询结果集返回给用户。如果用户的请求是提交注册信息, 则将提交信息请求做出相应处理, 并将信息提交提示返回给用户。

(3) 连接组件

我们主要定制COM组件Conector.dll, 该组件主要完成与数据库的连接。该组件具有一个接口, 那就是确定数据源, 以便自动连接后台数据库。

(4) 错误处理组件

我们主要定制COM组件Cerror.dll, 该组件主要确定错误类集, 该组件具有一个接口, 主要是输出错误信息, 方便用户排错。

我们把编译好的组件, 将其在MST中注册, 并将其分布在服务器上, 这样就可以在设计平台过程中进行调用这些组件了。在本系统中, 我们通过以下几种方式把组件集成到系统中来:

一是连接集成, 即我们将组件直接嵌入ASP.NET主页中, 即在ASP.NET脚本中通过SET对象名=Server.Create Object (“类名”) 来引用, 使此二进制组件可以运行于服务器端。

二是容器集成, 即如果一个组件需要调用另一个组件时, 就在需调用的组件中引用另一个组件的方法。例如在使用查询和提交信息组件时就需要先调用连接组件。

我们结合连接集成和容器集成两种方式来组装系统, 以登录界面为例, 在客户端我们只提供两个输入项和一个提交信息的功能按钮, 主要通过ASP.NET来实现。在服务器端, 主要根据用户输入的信息来进行相应的处理, 这就要调用各种组件。如果用户用错误的账号和用户名来登录, 则系统调用用户管理组件, 错误处理组件和连接组件, 返回非法用户的信息。如果用户以合法的身份登录进入用户平台, 这就要调用用户管理组件, 连接组件。如果管理员以合法的身份登录进入管理员平台, 也要调用用户管理组件, 连接组件。

我们采用COM组件技术进行开发, 给我们带来了很大的好处, 例如:减少了重复输入代码的工件, 缩短了软件的开发周期;同时, 在进行系统维护时, 我们只关心组件的接口参数, 而不用再考虑组件内部的具体实现, 提高了系统的可维护性。在以后的工作中, 如果我们要扩展某些功能时, 也可以重复利用这些组件, 提高了系统的可复用性。

但在运行中, 我们也发现了一此不足之处:由于在ASP.NET中运行的COM组件是二进制代码, 当COM组件工作出错时, ASP.NET不能指出COM组件发生错误的具体位置, 只能简单显示对象创建不成功。这样就给我们在调试该平台过程中增加了难度。

综上所述, 经过整个项目组精心准备和严密实施, 该项目现在已圆满完成, 得到用户的一致好评。回顾项目的实施过程, 我体会最深的是, 随着基于构件技术开发软件的成功实施, 我们在享受它带来的便利的同时, 也要注重企业内部的构件积累。我想, 随着构件技术的不断发展, 标准的构件体系与规范化的建立, 软件企业一定会迎来快速的发展。

摘要:2007年下半年, 我参加了内蒙古自治区西部区**市一家三甲医院远程医疗会诊技术服务平台的项目开发, 担任系统平台的设计和开发工作, 该项目主要是为了充分发挥医疗专家的作用, 使他们能够为更多的普通老百姓看病而开发设计的, 它是一个在线式的远程服务平台。在项目的开发过程中, 我充分的进行基于构件的软件开发, 考虑到软件复用和以后的扩展等方面, 文中介绍了构件平台的选择, 几种COM构件的开发, 平台的实现过程。基于构件的软件开发大大提高了软件的质量, 缩短了开发周期。该项目现在已圆满完成, 得到用户的一致好评。但现在看来, 在开发过程中也出现了一些不足, 有待改进。随着构件技术的不断发展, 标准的构件体系与规范化的建立, 软件企业一定会迎来快速的发展。

关键词:构件,软件开发

构件开发 篇2

关键词:软构件;J2EE;EJB;业务管理系统

构件是可复用的软件组成部分,可被用来构造其它软件。它可以是被封装的对象类、类树、一些功能模块、软件框架、软件构架、文档、分析件、设计模式等。它是通过构件组合支持应用的开发环境和系统的总称。

本文对软构件技术进行研究,首先给出软构件技术的概念,然后从构件技术的基本思想、基于构件的软件开发、软构件技术与中间件技术的比较等方面对软构件技术进行研究探讨,在J2EE体系结构基础上,从概念层次和系统层次定义软构件。用相对独立的功能构件来建立一个房产业务管理系统。

一、软构件技术研究

“软件构件是一种组装单元,它具有规范的接口规约和显式的语境依赖。软件构件可以被独立地部署并由第三方任意地组装。构件技术是在“数据+算法”的基础上提升了对事物的认识方法,对象的概念符合人们认识世界的习惯。而构件的思想则更多地将重点从建模本身发展到对软件生产的考虑,即构件可以在应用领域的软件生产中作为零件纳入新的体系中被重用。因此,构件是00思想的沿袭和扩展,认识事物的角度从对象个体本身上升到个体在群体中的作用。

构件有几个基本属性:

(一)构件是可独立配置的单元,因此构件必须自包容;

(二)构件强调与环境和其他构件的分离,因此构件的实现是严格封装的,外界没机会或没必要知道构件内部的实现细节;

(三)构件可以在适当的环境中被复合使用,因此构件需要提供清楚的接口规范,可以与环境交互;

(四)构件不应当是持续的,即构件没有个体特有的属性,理解为构件不应当与自身副本区别,在任何环境中,最多仅有特定构件的一份副本。

二、J2EE体系结构

为了帮助进行n层应用程序开发,sun公司系统设计了基于java平台的新型企业体结构一一J2EE体系结构。J2EE采用基本java概念,提供独立于实现方法的高层AP工,是针对web服务、业务对象、数据访问和消息传送的一组规范。这组应用编程接口(API)确定了web应用与驻留它们的服务器之间的通信方式。J2EE注重两件事,一是建立标准,使web应用的部署与服务器无关;二是使服务器能控制组件的生命周期和其它资源,以便能夠处理扩展、并发、事务处理管理和安全性等问题。

J2EE平台为设计、开发、安装和部署企业应用提供基于构件的方法。这种方法不但能降低成本,还能快速跟踪设计和实施。J2EE平台能提供多层分布式应用模型,提供统一安全模式,并灵活地控制事务处理。借助J2EE,不但能更快地将客户解决方案推向市场,还能使基于J2EE构件、不依赖于平台的解决方案不被锁定到任何厂商的产品和API上。

三、基于软构件技术的管理系统开发与实现

该系统主要实现以下功能模块:项目管理、展示系统、在线销售、业内信息、系统管理等。项目管理模块是本系统的核心功能模块,它为企业用户提供项目管理、销售管理等全部功能;展示系统利用二维图片、三维全景展示图将企业在销单元展示给网站浏览者,为开发商的销售和用户的购买提供最大的方便;系统管理模块为系统管理员提供整个系统的管理功能。

(一)MVC体系结构

模型一视图一控制((model-view-controller,简称MVC)结构,是目前最常见的J2EE应用所基于的体系结构,MVC主要适用于交互式的Web应用,尤其是存在大量页面及多次客户访问及数据显示。它有效地在存储和展示数据的对象中区分功能模块以降低它们之间的连接度,这种体系结构将传统的输入、处理和输出模型转化为图形显示的用户交互模型,或者换一种说法,是多层次的Web商业应用;MVC体系结构具有三个层面:模型(Model)、视图(View)和控制器(Controller),每个层面有其各自的功能作用,MVC体系结构如下:

模型层负责表达和访问商业数据,执行商业逻辑和操作。也就是说,这一层就是现实生活中功能的软件模拟;在模型层变化的时候,它将通知视图层并提供后者访问自身状态的能力,同时控制层也可以访问其功能函数以完成相关的任务。

视图层负责显示模型层的内容。它从模型层取得数据并指定这些数据如何被显示出来。在模型层变化的时候,它将自动更新。另外视图层也会将用户的输入传送给控制器。

控制层负责定义应用程序的行为。它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作;在一个图形界面中,常见的用户输入包括点击按钮和菜单选择。在Web应用中,它包括对Web层的HTTP GET和POST的请求;控制层可以基于用户的交互和模型层的操作结果来选择下一个可以显示的视图,一个应用程序通常会基于一组相关功能设定一个控制层的模块,甚至一些应用程序会根据不同的用户类型具有不同的控制层设定,这主要是由于不同用户的视图交互和选择也是不同的在模型层、视图层和控制层之间划分责任可以减少代码的重复度,并使应用程序维护起来更简单。同时由于数据和商务逻辑的分开,在新的数据源加入和数据显示变化的时候,数据处理也会变得更简单。

(二)MVC架构的优点

1.多视图使用同一模型

模型与视图分离允许多视图使用同一企业模型。因此,企业级应用模型组件容易实现、测试和维护。

2.容易支持新类型的客户端

支持一个新类型的客户端,只需写一个视图和控制,然后把它连到现存的企业模型中。

结合MVC结构,本系统开发过程中主要采用以下模式完成表单通过业务逻辑与数据库进行交互。

四、结束语

随着J2EE的飞速发展,己经有越来越多的企业应用程序以J2EE技术为其构建的基石,J2EE本身并不是产品,它只是制定了一套创建企业应用程序的规范,不同厂商根据J2EE规范,创建了符合J2EE规范的产品,这给予了我们更多的选择创建企业应用的平台。

参考文献:

基于构件的软件开发研究 篇3

随着软件系统越来越复杂,越来越大型,软件生产不得不适应其变化,要求软件生产越来越标准化,越来越规模化以及节约化,还有越来越工业化。另外要求软件生产由手工作坊式的个人或团体的小规模生产模式不断向专业分工协作生产的社会化的模式转变。但是,我国目前的软件生产模式转变明显不够,工业化程度太低。所以,为了能够对优秀的程序更好地进行持续不断的连续使用,该领域的人员不断探索研究,逐渐形成了基于构件的软件开发,以此来实现对优秀的程序进行持续不断的连续使用。

1 基于构件的软件开发的产生背景

基于构件的软件开发是一种实现软件复用途径,它是基于分布对象技术。各种技术、非技术因素互相联系结合在一起的,共同影响软件复用的实现。如图1所示。普通的软件开发的重点是对程序的编写,而基于构件的软件开发的重点则是基于对已有的构件的组装,从而,可以更快更好地构造系统,降低了维护软件的重点,减少了支持并对大型系统进行升级所需要承担的责任,从而实现了减少软件开发所需要的费用。将应用软件加以分解,分解成一个个独立的单元 , 这种思想是构件技术的基本思想,所以属于应用类型的集成技术思想。

2 基于构件的软件开发的影响因素

基于构件的软件开发会受到诸多因素的影响,本文下面将对其影响因素加以研究。基于构件的软件开发的影响因素主要有 :商品化的产品和技术,基于该技术所集成的系统的质量的提高以及种类的变化 ;二是一些来自于经济方面的压力,不仅需要不断降低系统开发的研发成本,还要尽可能的降低维护所需要的成本 ;三是受到来自构件集成技术的影响,构件虽然无法定义一个清晰明确的概念,但是它是用来构成软件系统的一部分,是一种可以实现随时插入随时使用的软件成分,是由接口、实现和部署这三大要素加以构成的 ;另外,还受到已有软件制品因素的影响,这些软件制品是软件开发组织,用于实现新系统开发研究的。

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

基于构件的软件开发,顾名思义,开发过程离不开构件,且是以构件为核心。基于构件的软件开发进行构件收集工作时,可从需求分析阶段开始,加大了开发的效率,使开发进程变得更加高效迅速。基于构件的软件开发包括两个方面,一方面是对构件的研究开发,对目标用户的需求加以分析,然后进行构件的设计与实现,最后是成品构件 ;还有一方面就是对应用程序的研究开发,即根据功能的要求,然后基于构件的设计,对构件加以装配,在根据应用程序,最后才是对目标用户的需求加以分析。基于构件的软件开发中包括对软件系统的集成,对软件系统的集成是指在构件开发、选择和组装完成后,把相应的构件加以组装,对构件加以连接和约束,可以通过编写一些简单的代码加以实现。对系统的测试则是指测试系统的功能和稳定性,通过测试不仅可以查看系统是否能够符合所需要的要求,还可以查看有无漏洞,从而可以发现漏洞并加以修补 ;系统维护可以分为纠正性、完善性和适应性维护,通过对系统的维护可以提高软件的运行水平,让系统更加灵活,从而可以应对复杂的变化活动,从而可以更加高效科学的工作。基于构件的软件开发技术具有明显的特点,其构件是由专业的开发商提供的,所以质量有保证,另外,还可以将风险部分分散给供应商,进行风险分担,构件的维护工作是由制造商加以负责。但是,实物都是相对的,有利必有弊,其缺点是依赖于成熟的构建市场,必须要遵循一定的开发规范。

4 基于构件的软件开发与传统软件开发的比较

基于构件的软件开发与传统的软件开发有很大的区别,基于构件的软件开发,其开发方法是面向重用的,是先对目标用户的需求加以分析,然后再设计与实现,也是面向接口,面向连接的。而传统对软件的开发方法则是从软件片开始的,这种软件片粒度很小,这种技术属于面向对象的技术。基于构件的软件开发具有特别显著的优点,就是可以大大减少软件开发所花费的时间以及软件开发所需要的成本。另外,基于构件的软件开发的生命周期不同于传统的软件开发,它的生命周期按照不同的阶段可以划分为对需求的分析,选择、构建并对软件的架构加以分析和评估,其中,构架又分为应用层和构件层 ;然后是对构件加以开发,之后是选择和组装构件,还有软件系统的集成、测试、维护,其中对系统的集成是对构件加以组装、连接和约束,对系统的测试是指测试系统的功能和稳定性,系统的维护又分为纠正性维护、完善性维护和适应性维护三种。基于构件的软件开发技术与传统的软件开发技术在体系结构上也有很大的区别,软件体系结构是系统设计成败的关键。传统的应用系统体系结构,很难适应目前企业的商业环境,其从集中式框架开始,直到通过网络访问服务器的框架,都难以适应企业的商业环境。在开发过程上也有很大的区别,两者在重用元素和开发方法上都有很大的区别,软件被重视重用是从构件出现之后开始才得到了根本改变。在软件方法学方面上的区别在于,传统的软件方法学是从面向机器、面向数据、面向过程、面向功能、面向数据流、面向对象等,这一系列不断提出、不断创新的观点来反映问题的本质,而基于构件的软件开发技术的软件方法学要比传统软件开发技术丰富得多,基于构件的软件开发技术是即插即用,基于体系结构,以接口为中心,将构件按照一定的依据加以组合,另外,基于构件的开发技术是通过把自顶向下和自底向上这两种方法结合起来,从而进行软件开发。

5 结束语

随着软件系统逐渐复杂化和大型化,基于构件的软件开发的优势会越来越明显。本文主要介绍了基于构件的软件开发研究的产生背景,影响因素,如构件集成技术的影响、已有软件制品因素的影响等。基于构件的软件开发虽然已经较为普遍,但是我国目前仍然没有开发商用构件的公司,乃至全世界目前也没有,另外,基于构件的软件开发目前仍存在一些问题亟待解决,所以,基于构件的软件开发仍然需要不断的发展。

摘要:基于构件的软件开发研究简称为CBSD,也可称之为基于构件的软件工程,它不仅是目前软件开发技术的一个热点,同时也是一个需要不断克服的难点。研究表明,提高软件产品的质量和生产效率的关键因素离不开基于构件的软将工程,所以,基于构件的软件开发研究十分重要。本文主要介绍一下基于构件的软件开发研究的产生背景、影响因素、方法研究以及和传统的软件技术相比所具有的优势和特点等,希望对软件开发的研究有所帮助。

基于构件的软件开发研究 篇4

随着软件需求的激增, 软件的规模和复杂度不断增大。但软件开发效率低下, 大量人力物力财力被浪费在重复开发上。软件复用被认为是解决"软件危机"可行的、现实的解决方案, 而软件构件技术是软件复用的核心技术。

2 基于构件的软件开发

软件复用的概念是由McI1roy在1968年的NATO软件工程会议上提出的。McIlroy提出了发展以可复用源代码软件构件为基础的软件工业和利用COTS (commercial off-the-shelf) 构件工业化生产软件的观点[1]。它不仅包括对软件编码的复用还包括对软件生产过程中其它劳动成果的复用, 如项目计划书、可行性报告、需求分析、概要设计、详细设计、测试用例、文档与使用手册等。通常, 把这种可复用的元素称做软构件, 可复用的软件元素越大, 可复用的粒度越大。

因此应用系统的开发不再采用一切从零开始的模式, 而是以已有的工作为基础, 充分利用过去应用系统开发中积累的知识和经验, 从而将开发的重点集中在特有构成成分上。由于软件构件大都经过严格的质量认证和在实际运行环境中得到检验, 因此软件复用技术有助于改善软件质量。另外大量使用软件构件, 软件的灵活性和标准化程度也可以得到提高。

构件是具有内部结构和功能的软件构成元素, 可通过标准接口独立提供特定服务, 并且可由一些连接器及相关规则与其它构件组装成符合要求的新软件或构件。从抽象程度来看, 面向对象技术已达到了类级复用, 因为它是以类为封装单位的。但这样的复用粒度还太小, 不足以解决异构互操作和效率更高的复用。构件将抽象的程度提到一个更高的层次, 它是对一组类的组合进行封装, 并代表完成一个或多个功能的特定服务, 也为用户提供了多个接口。整个构件隐藏了具体的实现, 只用接口对外提供服务。

因此, 在基于构件的软件开发方法下, 程序开发模式也相应地发生了根本变化, 不再是“算法+数据结构”, 而是“构件开发+基于构架指导的构件组装”。基于构件的软件开发过程 (component-based software development, 简称CBSD) 如下图1所示, 在此过程中有五个主要的组成部分:需求分析、构件库、构件的获取、构件的复用、构件的组装[2]。

与传统的软件开发方法比较, CBSD有以下特点:

(1) 构件可以方便地集成于框架中, 不用修改代码, 也不用重新编译, 真正实现即插即用。

(2) 构件的接口和实现是分离的。构件通过接口实现与其他构件和框架的交互, 构件的具体实现被封装在内部, 组装者只需关心接口, 不必知道其实现的细节。

(3) 接口具有一定的稳定性。构件的接口一经定义就不能被修改。构件使用者一旦获得某接口的某项服务, 这一行为将是长期有效的。这就为系统开发者开发工作的稳定性提供了极大的便利。构件的接口应遵循严格的标准, 这也是构件技术成熟的标志之一。

(4) 构件应具有易扩充性。每个构件都是独立、自主的模块, 各构件间通过信息传送提供服务。但应该可以通过增加新的接口或新的构件来实现系统功能, 而不影响原构件。

计算机软件开发技术从面向对象技术 (OO) 和分布式面向对象技术 (DOO) 发展到软件构件技术, 并向构件技术方向演变, 软构件以至组件技术为应用软件产品化提供了理论基础, 这是应用软件产业化的基本方向。

3 构件的获取、管理与复用

存在大量的可复用的构件是有效地使用复用技术的前提。同时还要对大量构件进行有效的管理, 实现构件快速方便地存储、检索和提取, 是成功复用构件的保证。

3.1 构件的获取

通过对可复用信息与领域的分析, 可以得到构件。可复用信息依赖于特定的问题和特定的问题解决方法, 具有领域特定性。为此, 在识别、获取和表示可复用信息时, 应采用面向领域的策略。领域的需求具有一定的稳定性使得获取的信息可以在较长时间内多次复用。领域工程是一组相似或相近系统的应用工程建立基本能力和必备基础的过程。领域工程可划分为领域分析、领域设计和领域实现等多个活动, 活动和结果如下图2所示[3]。

在建立CBSD中, 构件获取可以有多种不同的途径:

(1) 从现有构件中获得符合要求的构件, 直接使用或作适应性修改, 得到可复用的构件。

(2) 通过遗留工程, 将具有潜在复用价值的构件提取出来, 得到可复用的构件。

(3) 从市场上购买现成的商业构件, 即COTS构件。

(4) 开发新的符合要求的构件。

在决定构件获取途径时, 开发者必须考虑不同方式获取构件的一次性成本和以后的维护成本。目前市场上已经有大量面向GUI、数据库和网络的VBX与Active控件、JavaBean和Delphi构件, 以及众多的类库、DLL接口和API, 这些源代码和目标代码大大提高了程序员的工作效率。

3.2 构件的管理

对大量的构件进行有效的管理, 以方便构件的存储、检索和提取, 是成功复用构件的必要保证。构件管理的内容包括构件描述、构件分类、构件库、人员及权限管理和用户意见反馈。其中, 构件的分类和构件库是构件管理的重点内容。

(1) 构件的分类

构件的分类至关重要, 只有合理的分类, 才能实现构件的便捷查找和有效复用。面向对象的概念由于符合事物的规律, 已经深入到各个领域。如果开发者使用面向对象的方法来对构件进行分类, 构件可以分为:面向用户的构件 (用于界面和程序外壳包装、接收用户的控制) 、面向OS内核的构件 (用于操作特定系统来提供服务) 、面向数据库的构件 (用于存取相关信息) 、面向网络的构件 (用于和Internet打交道) 。如果开发者使用面向领域的方法来对构件进行分类, 一个应用系统通常应该包括三类构件:通用基本构件 (如基本数据结构、用户界面元素等) 、领域共性构件 (领域的共性构成成分) 、应用专用构件 (应用系统的特有构成成分) 。

(2) 构件库的建立和管理

复用软件构件有两个前提条件:所需的构件已经存在和复用者能方便地找到所需的构件。由于软件构件蕴涵了大量的信息, 开发者要对其准确、简洁地描述是困难的。如果没有一个统一的场所对其进行统一的描述包装, 大规模的软件复用是不可能实现的, 所以建立大规模的公共构件库是必须的。简单来说, 构件库是一个对软件构件统一进行形式化包装、分类描述、存储管理、检索浏览的场所, 是大范围内、系统化实施软件复用的必备基础设施。

在CBSD中, 构件库管理系统是一个至关重要的部分。构件库管理系统可以有效地组织和管理大量可复用构件, 并提供相应的工具支持开发者在软件开发过程中方便地查询、理解和选取构件, 使CBSD成为现实。

3.3 构件的复用

由于每个构件在编制时针对的是满足不同需求的, 并且是基于上下文的不同假设, 在应用到一个系统时构件常常必须被改写。构件必须被改写的前提是保证构件间的冲突最小。对构件内部结构的理解程度决定了对构件适应的不同方法。常用的方法包括:白盒法、黑盒法和灰盒法。白盒法允许用户可以通过修改构件的源码使构件能与其他构件相互作用, 该方法可以对构件的特性进行细致的控制, 但修改源码可能会导致维护和升级问题。黑盒法允许用户可以得到构件的二进制可执行形式, 构件没有提供扩展机制或可编程接口API。灰盒法不允许用户修改源代码, 但提供构件自身的扩展机制或可编程接口API。

通用基本构件层为底层, 是整个集成环境和运行环境都使用的构件, 通用性好, 粒度最小, 可广泛复用, 属于黑盒复用。领域共性构件完成系统主要功能, 但通用性不如前者, 大部分使用前须进行修改和测试, 复用方式属于白盒复用或灰盒复用。

软件构件模型是关于开发可复用软件构件和构件之间相互通信的一组标准的描述。通过复用已有的软构件, 使用构件对象模型的软件开发者可以像搭积木一样快速构造应用程序。目前, 国际上已经形成了许多构件模型, 这些模型的目标和作用各不相同, 其中部分模型属于参考模型 (例如3C模型) , 部分模型属于描述模型 (例如RESOLVE模型和REBOOT模型) , 还有一部分模型属于实现模型。近年来, 已形成三个主流技术, 分别是OMG的CORBA、SUN的EJB和微软的DCOM。这些实现模型将构件的接口和实现进行了有效的分离, 提供了构件交互的能力, 从而增加了复用的机会, 并适应了目前网络环境下大型软件系统的需要。国内许多学者在构件模型的研究方面也做了不少的工作, 取得了一定成绩, 其中较为突出的是北京大学杨芙清院士等人提出的“青鸟构件模型”。

4 结束语

CBSD是借鉴传统工业生产模式, 首先是分析消费者需求, 设计整体结构框架, 然后根据需要到构件库中选择能完成相应功能的构件, 最后修改连接构件组装应用系统。在这个过程中, 构件的获取、管理和复用是该方法实施过程中的重要内容和成功的关键。

摘要:软件复用被认为是解决"软件危机"可行的、现实的解决方案, 而构件技术是软件复用的核心技术, 改变了传统的软件开发模式。构件的获取、管理和复用则是其中的重要内容。

关键词:软件复用,构件,CBSD

参考文献

[1]童怡.浅谈软件复用技术[J].福建电脑, 2009 (9) :49.

[2]陈明.基于软件构件的软件开发技术[J].漳州职业技术学院学报, 2007, 9 (2) :4-7.

用构件快速开发等级限额投票系统 篇5

投票是很多场合, 如选举、各种比赛、项目评价待方面都需要使用的一种评选方式, 投票的公正性与合理性将对投票结果产生影响。传统的投票方法通常用打分来进行投票, 但在分数投票中, 因评委打分习惯对结果将产生很大影响, 例如, A评委习惯将很好的为95分, 中等80分, 良好为60分, 而B评委习惯将很好的为85分, 中等82分, 良好为80分, 如果有4个类似B的评委, 很好和良好的分数差=4* (85-82) =12分, 而1个A评委的良好和良好的分数差=95-80=15分, 这说明4个评委还不如一个评委的分数差, 如果正好是5个评委, 4个类似B评委都认为是好的还不如一个A评委认为是好的 , 其结果可想而知, 肯定不公平。请看表1的结果。

表1中不难看出, 4个评委公认2号选手是最好的, 但结果是1号选手的分数最高, 即使有去掉一个最高分和最低分, 但如果在评委中有两个以上类似A评委, 同样会使结果偏差很大。因此使用分数投票缺少合理性, 而限额等级投票系统相对会比较公正合理。

2 限额投票系统

限额投票系统是指在从多的候选人 (选手) 中, 只能按照限定的数目进行投票, 例如, 在100个候选人 (选手) 中, 假定一等2人, 二等5人, 三等10人, 四等20人, 作为一个评委, 只能在100个选手中, 给一等的选手投2次, 给二等的选手投5次, 以此类推。这样, 评委认为是最好的都是给一等, 这种评价方法相对比较合理。

限额投票系统的主要投票规则是:

(1) 同一评委只能给同一选手投一次票, 不能同时给同一选手多次投票。

(2) 同一评委只能按事先设置好的等级数目进行投票, 不能超过设定等级的上限数, 例如, 限定二等为5人, 评委在投票时, 对二等最多只能投5人的票。

为了快速开发限额投票系统, 下面将以构件化的设计思路详细介绍限额投票系统的设计及实现。

3 限额投票系统设计及实现

3.1 限额投票系统的数据库

限额投票系统的数据库需要用到以下数据表, 如表2~表5所示。

3.2 限额投票系统的实现流程

限额投票系统的操作流程是: 评委先登录, 登录成功后直接进入显示选手信息页面, 并通过单超链接“投票”进入投票页面, 然后进行投票, 最后可以直接查看投票的结果, 整个操作流程如图1所示。

3.3 限额投票系统的主要构件

所有的构件程序代码都通过添加一个名称为DataOp类来实现, 以下构件代码都在此类中。

3.3.1 通用显示构件

此构件可以用来显示任意数据的查询结果, 返回一个StringBuilder类型的数据, 主要用于数据显示, 程序代码如下:

该方法主要有5个参数, 这些参数的主要功能是:

CSSFilename: 控制表格显示样式的样式表文件。

SQL: 需要显示数据的Select命令。

PageTitleStr: 页面标题文字。

DispDataProcessing:是否显示处理过程。

ProcessingType: 处理类型, 如添加、删除、修改、投票等。

3.3.2 通用查询数据构件

查询数据构件的设计主要用于查询某个字段对应记录的值, 通过字符型的GetFiledValue函数来实现, 它有两个参数: SQL是要执行查询的SQL语句, getFiledName是要查询数据对应的字段名, 程序代码如下:

3.3.3 数据绑定构件

数据绑定 构件的设 计是用来 将指定字 段数据绑 定到DropDownList控件, 它是通过构件函数BindFiledRecValueToDr opDownList来实现, 该函数有4个参数: myDropDownList是要绑定的对象名 (DropDownList), BindFiledName是要绑定的字段名, DispFiledName绑定对象中要显示的字段名, TableName是数据表的名称, 程序代码如下:

3.3.4 用户登录构件

用户登录构件的设计主要对用户登录进行检查, 它是通过函数check_userlogin来实现, 该函数的功能是检查用户合法性, 如果在数据库中查询有该用户信息存在, 返回为“True”, 同时将用户信息保存在Session对象中, 以便后面程序检查用户权限。否则返回“false”。该函数主要有5个参数, 这些参数的主要功能是:

TableName: 存放用户信息的数据表的名称。

UserNameFieldName: 用户信息的数据表中存放用户名的字段名。

UserNameFieldValue: 待检查的用户名的值。

PasswordFieldName: 用户信息的数据表中存放密码的字段名。

PasswordFieldValue: 待检查的密码的值。

因代码相对比较多, 考虑到版面的问题, 以后详细代码请参考以下书籍:

3.3.5 通用数据添加构件

添加记录主要用来添加等级限额表中的数据和参赛选手的数据, 添加记录其实包括两个部分, 第一个部分是填写数据的表单, 另一个是接收表单的数据保存到数据库中, 因此构件类主要有两个方法, 一个是动态生成表单, 一个是接收和处理数据。动态生成表单的代码是:

详细代码请参考:

函数DynamicBuildForm的功能是根据数据表的内容动态产生供用户填写数据的表单, 要求是在当前页面中有一个Panel, 所有产生的表单数据都会动态生成在Paenl中。在该函数主要有3个参数:

PanelcontrolName: 用于显示表单数据的Paenl控件的名称。

SQL: 需要显示数据执行查询的Select命令。

FieldMaxLenght: 生成的供用户修改的表单页面标题文字显示的长度, 主要用于控件字段显示的宽度。

接收表单数据并将数据添加到数据库的函数代码是:

它的功能是动态读取动态生成的表单中的数据, 并自动添加到指定的数据表中。

其他构件的设计因版面关系, 其他构件的设计略。

3.4 限额投票系统的界面

3.4.1 投票限额设定

投票限额设定通过程序AddGrade.aspx来实现, AddGrade. aspx页面通过 表格定位 , 页面主要 控件是一 个面板Panel (ID=" Panel1")、一个按钮 (Text=" 确定插入 ") 和一个标签 (ID=" lblMessage"), 该程序的设计界面如图2所示。

对应的事件处理代码如下:

3.4.2 选手 (候选人) 信息入库

选手 (候选人) 信息入库通过程序AddVotecontent.aspx来实现, 程序设计界面是与AddGrade.aspx完全相同, 事件处理代码也完全相同, 不同的是修改SQL语句, 将上述SQL语句修改为下面语句即可。

3.4.3 用户登录页面

用户登录页面通过Login.aspx来实现, 设计界面如图3所示。

为“登录”按钮添加以下事件处理代码:

3.4.3投票程序

投票程序包括两个部分, 显示选手信息和投票。

(1) 显示选手信息程序Vote.aspx

程序界面非常简单, 只需要在页面上添加一个Literal1即可, 通过调用构件即可实现选手信息的显示。

事件处理代码如下:

程序运行的结果如图4所示。

(2) 投票程序

投票程序通过VoteAdd.aspx来实现, 该页面的设计效果如图5所示。

事件处理代码包括4个部分:

1) 创建类的实例、定义通用变量:

2) 在Page_Load中添加以下事件 , 主要包括判断登录、绑定数据。

3) 为确定投票按钮添加处理事件:

4) 为投票等级的DropDownList控件添加处理事件:

程序运行后, VoteAdd.aspx的运行效果如图6所示。

当评委选择对应等级时, 会显示该等级限投票人数及该评委已经对该等级的投票数。当投票数据超过限额数时,“确定投票”按钮自动隐藏, 将无法进行投票。如图7所示。

3.4.4 投票结果的显示

表V_Results是用来保存投票结果的数据表, 该表是直接将页面上的选手姓名、项目名称、投票等级、 评委姓名等信息添加到数据库的原始数据, 不能直接显示投票的统计结果, 为了便于统计投票结果, 需要设计一个交叉表查询, 该表的名称是ResultsCount, 将字段F_Evaluateobject设置为交叉查询表的分组行标题, 将字段.F_Grade设置为分组列标题, 将F_Grade设置为计数值, 查询的SQL语句是:

交叉表查询的设计视图如图8所示。

投票统计结果的显示通过ResultsDisplay.aspx来实现, 设计界面只需要添加一个Literal即可, 事件处理代码直接调用通用显示构件来实现, 其代码是:

程序运行效果如图9所示。

4 结语

MIS开发中软构件技术应用研究 篇6

关键词:构件,MIS系统,软件重用

一、软构件技术概述

所谓软件构件化,就是要让软件开发像机械制造工业一样,可以用各种标准和非标准的零件来进行组装。软件的构件化和集成技术的目标是:软件可以由不同厂商提供的,用不同语言开发的,在不同硬件平台上实现的软件构件,方便地、动态地集成。这些构件要求能互操作,它们可以放在本地的计算机上,也可以分布式地放置在网上异构环境下的不同结点上。实现软件的构件化,这是软件业界多年来奋斗的目标。

二、基于软构件技术的M I S开发过程

传统的M I S系统开发方法包括:自底向上法、自顶向下法及快速原型法。以上方法各有其优缺点。“自底向上”法由于先从底层模块做起有助于发现系统的增长需要,但过于重局部而使得MIS难以实现其整体性;“自顶向下”法从上到下实现整个系统,可以为企业或机构M I S的中长期发展规划奠定基础,但其开发周期长、缺乏灵活性对下层系统的实施缺乏约束力,成本较高;快速原型法的核心即原型,不断地对原型进行补充和细化,是一种动态定义技术。虽然具有很明显的优越性,但其过分依赖于快速开发工具的支持。

软构件法克服了快速原型法需要快速开发工具支持的不足,取而代之以软件构件化技术来构造系统。大部分M I S系统,在功能上有类似之处,因而利用软件的重用技术就可以把开发过程大大简化, 就像“搭积木”一样。软构件法在确定系统总体框架、构筑总体框架、修改总体框架、构造构件及修改构件等阶段,都同一个叫做“软构件集合”的实体打交道,这个软构件集合也被称为“软构件库”。在开发MIS系统之初就应该着手准备这个软构件集合。开发M I S系统的大部分工作都集中在构造软构件阶段。这一阶段的工作特点是尽量使开发出的积木块具有较大的灵活性和变通性, 为重用做好准备。每开发出一个软构件, 都要把该软构件及其功能、调用接口等信息放入软构件集合。应用软构件技术的关键就是要借助对软构件的重用组合技术,系统开发人员绝不能忽视对软构件集合的管理。如果缺少了这一点,软构件技术就丧失了优越性,自顶向下法及快速原型法所暴露出的缺陷也会接踵而至。

基于构件的软件开发与传统开发方式不同之处在于它在分析、设计、实现等各个阶段中所充实的工作不再是从零开始,而是引导软件开发从应用系统开发转变为应用系统集成,是一个以组装为主的软件开发过程。采用构件技术开发M I S系统的设计目标是以组合开放式结构构造MIS集成一体化的环境。以生产企业MIS系统开发为例来说明基于软构件技术的MIS开发模型。生产企业MIS系统应包含以下几个子系统:生产管理、销售管理、物流管理、质量管理、人事及财务管理等几个子系统,同时应具有以下主要生成功能:功能菜单、数据库文件、数据库维护、查询、统计计算、报表生成与打印以及应用系统文档信息。由此可以得到该类企业开发模型,如图所示。

采用软构件技术开发M I S系统的设计目标是以积木组合开放式结构构造MIS集成一体化的环境。根据MIS系统的一般结构,完整的M I S系统应具有以下主要生成功能:数据库文件、功能菜单、数据库维护、查询、索引排序、统计计算、图形生成与分析、报表生成、打印、数据一致性检验、数据一致性维护及应用系统文档信息。

MIS系统生成是建立在一个个积木块——软构件的基础之上的。MIS系统的生成过程也就是从软构件库中提取软构件, 并对其进行系统集成的过程。系统集成包括了检索、定制和组合三个过程。

检索。从构件库中索取合适的、恰当的构件的过程。检索过程是软件重用活动中最重要的一个过程,对于小型应用软件的开发,重用的构件不是很多,可以采用人工检索的方法。

定制。将检索得到的构件进行一定的修改,以符合用户的具体要求的过程叫定制。为了构件定制的方便,在制作构件时应尽可能使构件的通用性高。

组合。将定制后的构件和其他模块集成在一起,形成新的应用系统的过程叫组合。组合的关键是构件的接口标准,有了标准接口,构件开发和应用系统本身的开发就可以相对独立的进行,软件开发的效率及软件质量会更高。为此,利用软构件技术开发应用软件时,一开始就必须考虑构件的接口标准问题,并在整个开发过程中引起重视。

三、软构件库的管理

软构件库的管理是一个非常重要的工作。为了适应多种M I S系统开发的需要,软构件库中应含有大量的各类软构件,对软构件库中的软构件进行有效的管理就显得尤为重要。

软构件库系统当然是一类数据库管理系统,它具备数据库的基本特征和功能, 为了向基于构件的应用系统开发提供构件, 软构件库必须能够存储构件和构件相关信息:

软构件的语义描述:描述构件功能和用途, 精确定义构件语义;

软构件的分类:对构件相同特征的聚类;

软构件的形态:构件的类型, 广义构件包括类、类树、框架、模块等;构件的技术环境, 包括构件的开发工具、配置方法和部署环境等;构件的形式:包括源代码、二级制代码等;

软构件的状态:版本、历史等时间相关构件的属性。

为了能够管理和维护M I S构件信息, 构件库管理系统必须能够提供如下的操作:

软构件的添加:把合格的M I S构件添加到构件库之中;判定构件合格与否主要是对构件的测试和认证。

软构件的检索:也就M I S构件的需求匹配, 与一般的数据库不同, 构件匹配通常不能得到完全满意的构件, 对与需求相关或相近的构件, 需要通过适配使之满足需求;由于构件的粒度不同, 需求问题的分解和构件的合成是两种配合检索的方法;

软构件集成:利用已有的M I S构件集成相应的大构件或子系统;

软构件删除:删除一个已存在的M I S构件;

软构件修改:修改一个已存在的M I S构件;

同时, 对M I S构件的所有修改都应该用文档纪录下来, 并通知MIS构件库。

建立MIS软构件库的重点也是难点在于软构件的表示和检索。一方面, 拥有大量可复用构件的组织必须以一种易于分类管理而又方便使用者检索的机制来表示和保存系统软构件;另一方面, 有效的系统软构件检索机制能够降低软件构件查找和理解的成本, 而系统软构件的合理表示和分类正是实现高效方便的检索的基础。

四、总结与展望

M I S系统采用软构件设计方法, 把应用系统划分为若干积木块, 把程序生成问题转化为软构件的设计、处理问题。对于不同的应用系统, 通过分析发现它们之间的共性与个性, 把共性部分做成标准软构件, 把用户要求存入规则库。根据软构件集成算法, 将软构件连接成完整的系统。

由此, 我们可以看出, 系统开发首先经由企业决策者和领域专家、开发人员一起对现有系统技术资料, 通过领域分析产生由用户提供的文档资料形成的领域主题文档, 明确划分三类构件库:系统构件包括各种开发工具中的窗体、按钮等构件;通用构件指各领域中可复用的功能性构件;领域专用构件是针对这一领域所开发的构件, 在特定领域中有一定的复用价值。最后的系统集成不一定是原封不动地使用领域构件和系统构件, 现实世界是复杂的, 有时需要根据系统的具体情况对构架和构件进行细化, 也就是做进一步的开发。

为了适应各种管理信息系统的开发, 在构件库中应尽可能多收集些构件进行复用。大部分的国内企业对人事薪资、财务管理都很类似, 企业生产产品各不相同, 但其销售和在库存管理上也很接近, 这些都可以作为构件放入构件库中, 方便以后直接应用。减少重复开发, 提高开发应用软件的效率, 是采用构件技术开发MIS的一大优势。

参考文献

[1]张大强程家兴:一种基于构件技术的管理信息系统开发方法[J].微计算机应用, 2004, (5)

基于构件的软件开发方法及实现 篇7

提高软件开发效率, 增强软件鲁棒性, 降低软件维护成本以及最大化软件的通用性和重用性, 一直是人们不懈追求的目标, 构件技术也因此应运而生。近年来, 构件技术不断发展, 出现了CORBA、COM/DCOM/COM+、Java Bean/EJB三大构件技术标准。与此同时, 为了更有效地将诸多构件组织成一个有机的系统, 减少系统的复杂性和提高系统的复用性, 基于构件的开发方法得到了广大研究开发人员的普遍关注并发展迅速。

1 构件的概念和标准

构件又称元件, 是指可方便地插入到语言、工具、操作系统、网络软件系统中的一种独立可重用的二进制形式的代码和数据, 它由以下3大要素构成:

(1) 接口 (Interface) 。接口告诉构件的用户该构件能完成些什么功能。

(2) 实现 (Implementation) 。实现就是让该构件得以运作的代码。一个构件可以有多个实现, 如一个构件可以同时有处理XML文件的实现和处理关系型数据库文件的实现。

(3) 部署 (Deployment) 。部署是构件的存在形式, 一般即为二进制代码或可执行文件。

同时, 一个构件之所以能成为构件, 它必须具有封装性、描述性、替换性、扩展性这4个重要属性。

(1) 封装性。封装是对构件实现和构件代码的一种隐藏。构件的使用者不必了解构件的具体实现, 只需通过构件的接口就能获得相应的功能。这样, 一旦构件内部实现需要调整, 将不会影响构件用户的使用。

(2) 描述性。由于构件的封装性, 要使用户能正确使用构件, 构件必须对自身进行描述, 以提供足够的使用信息给用户, 这些信息主要包括对构件的接口、实现和部署的描述。对接口的描述告知用户构件所提供的所有接口名及各接口所能完成的服务;对实现的描述告知用户构件是如何构造的, 如数据存储使用的是XML文件还是关系型数据库;对部署的描述则告知用户构件的运行环境, 如COM+、CORBA等。

(3) 替换性。构件的封装和描述属性使得构件具有可替换性。这是因为, 封装性保证了构件内部实现的调整不会影响到用户的正常使用, 而描述性则提供用户丰富的接口信息以供所需服务的调用, 也就是说, 只要有相同的接口, 一个构件完全可以由另一个构件替换, 哪怕它们的内部实现各不相同。

(4) 扩展性。简单地说, 扩展性就是指在不影响用户使用构件的情况下增加构件的功能。这种扩展可以藉由两种方法达成, 即:

(1) 增加接口。该方法多为构件开发者采用, 因为构件开发者可以直接对内部实现进行修改。同时, 考虑到兼容性, 构件的原有接口会得到保留, 而把新增的功能通过新添加的接口供用户调用。

(2) 授权 (Delegating Responsibility) 。该方法多为构件用户使用, 因为构件用户由于构件的封装性, 无法直接修改构件的内部实现。该方法将创建一个新的构件, 原构件无法提供的功能在此新构件中实现, 已提供功能则在此新构件中继续被调用。

图1是这两种扩展方法的示意图。

2 软件开发体系结构的实现问题

软件体系结构其设计的核心是能否使用重复的体系模式。传统的应用系统体系结构从基于主机的集中式框架, 到在网络的客户端上通过网络访问服务器的框架, 都不能适应目前企业所处的商业环境, 原因是:

(1) 企业过分地依赖于某个供应商的软件和硬件产品。这种单一供应商使得企业难以利用计算供应商的免费市场, 将计算基础设施的重要决定交给第三方处理, 这显然不利于企业在合作伙伴之间共享信息。

(2) 不能适应远程访问的分布式、多层次异构系统。封装的应用系统在出现某种组织需要时, 难以用定制来维护系统, 从而难以满足多变的需求。

(3) 不能实现分析、设计核心功能重用, 最多只能实现代码重用。

3 基于构件的开发模型

基于构件的开发模型利用模块化方法将整个系统模块化, 并在一定构件模型的支持下复用构件库中的一个或多个软件构件, 通过组合手段高效率、高质量地构造应用软件系统的过程。基于构件的开发模型融合了螺旋模型的许多特征, 本质上是演化形的, 开发过程是迭代的。基于构件的开发模型由软件的需求分析和定义、体系结构设计、构件库建立、应用软件构建, 以及测试和发布5个阶段组成, 采用这种开发模型的软件过程如图2所示。

构件作为重要的软件技术和工具得到极大的发展, 这些新技术和工具有Microsoft的DCOM、Sun的EJB, 以及OMG的CORBA等。基于构件的开发活动从标识候选构件开始, 通过搜查已有构件库, 确认所需要的构件是否已经存在。如果已经存在, 则从构件库中提取出来复用;否则采用面向对象方法开发它。之后利用提取出来的构件通过语法和语义检查后将这些构件通过胶合代码组装到一起实现系统, 这个过程是迭代的。

基于构件的开发过程就是构件组装的过程, 维护的过程是构件升级、替换和扩充的过程。其优点是构件组装模型导致了软件的复用, 提高了软件开发的效率。构件可由一方定义其规格说明, 被另一方实现。然后供给第三方使用, 构件组装模型允许多个项目同时开发, 降低了费用, 提高了可维护性, 可实现分步提交软件产品。

4 基于构件的开发方法的实现

在引入并行工程思想、领域工程思想及结合面向对象的建模机制, 一种实用的基于构件的开发模型如图3所示。

4.1 领域分析

领域分析对对象领域内的共性特征、共性需求、共性结构以及可变特征、特有需求进行归纳和一致性描述, 具体包括需求分析和详细设计等, 它将决定整个应用系统将完成哪种功能、支持哪些业务逻辑过程。由于引入迭代方法, 本阶段的工作不必也未必能面面俱到, 可以随着以后行为分析的进行而不断地调整、具体、优化。

4.2 行为分析

行为分析将确定应用系统的构架 (Architecture) 和具体要实现的功能。在领域分析的基础上, 本阶段将详细规划如何支持并实现这些需求。在引入面向对象的建模机制后, 这些工作可以藉由UML (Unfied Modeling Language, 统一建模语言) 中的用例图 (Use Case Diagram) 完成。经过领域分析和领域建模后, 领域知识已被按层次和结构分类组织, 概念结构也被转化为逻辑结构, 接下来的工作便是软件构架的确定。在软件系统中, 构架是可预制和可重构的软件骨架, 是问题域模型转化为解域模型的框架式系统。目前, 一般基于分布式体系的软件系统的构架大致可以分为用户界面层、事务逻辑处理层、数据处理层3大层。

领域建模和构架设计完成后, 整个应用系统的行为即得到确定, 进而可以对所有这些行为进行构件粒度上的划分。

4.3 构件和互操作 (Interaction) 的确定

构件是整个构架中基本的逻辑单元和数据处理单元, 依据先前的领域分析和领域建模, 可以按需进行大至类库、类, 小到函数、结构等不同粒度构件的划分, 并从模型、模板等不同角度进行构件的设计和生成。

在构件与构件、构件与用户的互操作过程中, 接口其实代替了构件的角色, 且随着接口的确定, 互操作也将得以确定, 因此接口的设计在构件的设计中至关重要, 它必须具有高度的内聚性, 即接口应该有明确的应用目的及相应的功能。一个标准的接口, 既要能清晰表达所要完成的功能, 也要具备良好的互操作性。我们常会犯的一个错误就是一个接口所表达的功能太繁杂, 从而导致接口过于庞大, 往往一个接口容纳了多个接口的功能。

在接口设计的同时, 应做好相关描述信息的文档化工作, 这些信息包括该接口的输入信息、输出信息、调用前状态、调用后状态和备注等。

4.4 构件组装和构件复用

确定了构件的接口和互操作后, 随之进行的就是整个应用系统的开发工作, 包括构件的开发、已有构件的剪裁、软件流程的衔接、构件的组装等。同时, 选取适合的已有构件以及将新开发的领域构件加入构件库是本阶段乃至整个基于构件的开发方法的关键, 它集中体现了软件复用思想。我们一般可以从Internet网上现有的构件库或商业性软件机构进行已有构件的挑选, 也可以从先前开发的各种应用系统中提取。当然, 现有构件的接口与系统的要求可能存在差距, 但并不等于该构件就不能被复用, 可以利用构件的扩展性进行进一步的剪裁加工, 以符合系统的要求。而新开发的领域构件的入库工作可以由专门的构件库管理系统完成。

在所有的构件都就绪后, 最后就是把这些构件按系统构架组装成应用系统。组装过程完成构件的连接 (Connection) 和约束 (Constraint) 工作, 一般只需要编写些基本代码, 诸如构件间的互相调用等即可。

5 结束语

如今, 随着Internet的广泛普及和电子商务的迅速成长, 分布式应用越来越多地得到各企业的采用, 而基于构件的开发方法正是一种适合企业级分布式应用的灵活、高效的开发方法, 它能轻松应对企业不断变化的商务需求, 而且能进一步降低开发、维护费用。当然, 基于构件的开发方法并不是万能的, 还需要在更多应用系统的开发中检验和改进。

参考文献

[1][美]布朗.大规模基于构件的软件开发[M].赵文耘, 译.北京:机械工业出版社, 2003.

[2]蔡明, 陈永运.J2EE架构的研究与应用[J].计算机应用与软件, 2004 (1) .

[3]蔡伟纲.NIOS (Ⅱ) 软件架构解析[M].西安:西安电子科技大学出版社, 2007.

[4]谢晓芹, 陈凯云.基于构件的叶片型面测量软件设计与实现[J].计算机工程与应用, 2004 (20) .

[5]徐建民.软构件技术在信息系统开发中的应用研究[J].微机发展, 2003 (3) .

[6]杨芙清, 梅宏主, 黄罡, 等.构件化软件设计与实现[M].北京:清华大学出版社, 2008.

[7]张友生, 等.软件体系结构[M].北京:清华大学出版社, 2006.

基于软构件的软件开发方法研究 篇8

什么是软构件

软构件技术是基于构件的软件开发方法, 由于其更多的是针对行业领域中的共性需求而不是针对某一具体的工程, 因而与传统软件工程方法不同。软构件技术能更好的利用软件行业积累的丰富经验, 提炼该领域的系统构架, 更有利于开发的软件是基于该业务领域的框架, 更能体现人性化。提高开发效率。构件是软件系统中能相互独立的单元, 它可以跟所在环境中的其他构件相互分离互不干扰, 同时软构件具有内聚性, 可以正确分辨、独立部署软件实体部分, 且重复使用。软件的重用性大大提高了软件的开发效率, 加速了开发速度。软构件可以是数据, 也可以为文档、二进制代码源代码。

基于软构件软件开发的情况

1软构件软件开发的历史进程

1968年北欧软件会议上首先提出了构件这一新的软件开发的元素概念。20世纪70年代, 基于当时信息科技水平, 软件开发及开发语言处于萌芽发展状态, 软构件这一元素还未能被考虑到作为软件编程的单元。20世纪80年代初20世纪90年代中期, 面向对象开发方式开始兴起并且逐渐达到成熟的阶段。软件开发人员开始通过采用面向对象的方法开发软件。随后, 90年代, 软构件技术得到迅速的传播发展。

2使软构件技术迅速发展的原因

通过分析传统产业的基于软构件的软件开发发展, 发现传统产业模式是标准的零部件生产, 然后再进行零部件的组装成标准构件。机械行业、建筑行业及早期发展的计算机软件产业都是基于构件为核心的模式进行发展。对软件产业也借鉴了这种模式, 认为利用软件产业的标准构件的生产和基于软构件的开发方式能很好地分析问题, 解决问题。

3基于软构件软件开发方式的优点

基于软构件开发方式因为其能进行重复性使用, 易于管理等优点, 它能降低软件开发周期;提高软件开发的效率;降低软件开发和维护所需费用;使软件更加规范标准安全;提高了开发软件的质量;增强了软件在不同操作系统下的兼容性;减少开发人员数及使开发人员更好的适应不同项目的研究开发。

4基于软构件开发方式的成败

在比较小的能被充分理解的特定领域或者当领域发展变得缓慢时, 利用基于软构件的软件开发方式开发软件比较容易成功。同时, 当软件形成市场规模时及技术规模形成时, 基于软构件软件开发方式开发软件也比较容易成功。当缺乏复用构件及管理支持时, 或是软构件没有进行良好分类导致查找困难时或是缺乏软构件库, 控制了重复利用度时, 基于软构件软件开发方式开发软件容易失败。

基于软构件的软件开发方法的理想化探讨

基于软件开发的目的、软构件的复用使用特点、资金投入量、技术实力及风险等因素, 形成了多种软件开发方法。以项目为依托的基于构件的软件开发方法是目前具有一定影响力的软件开发方式。

基于软构件的开发方法, 涉及构件生产、构件管理和构件复用3个主要过程。但由于迅速开发项目的压力、减小项目投资的要求、或对特别技术解决手段的依赖, 在这3个过程中都出现了或大、或小的差异, 进而形成了不同的方法特点。分解形成各个过程的主要层次, 提出理想的基于构件的软件开发方法。从过程分解的角度, 可以分为:输入输出层, 开发过程层, 技术、方法、规范和工具层。从研究的角度而言, 要解决的问题是合理准确地界定输入输出, 研究开发合适的技术、方法、规范和工具, 经过融合, 形成完整明确的开发步骤支持构件的生产、管理和复用。从过程合成的角度, 可以分为:领域工程、构件库工程和应用工程3阶段。从研究的角度而言, 要解决的主要问题是:清楚地界定3个过程的界限, 明确从一个过程向另一个过程转换的条件和步骤。

小结

随着的信息技术的不断发展, 软件是信息技术开发的一个方向。基于软构件的软件开发方法已经受到了计算机科学业界的广泛关注。正在逐步研究, 探讨, 完善之中。

上一篇:法律研究下一篇:农户生活