构件化开发方法在J2EE项目中的应用
- 格式:pdf
- 大小:120.22 KB
- 文档页数:4
J2EE框架下基于构件的软件复用技术研究的开题报
告
一、选题的背景和意义
随着信息技术的快速发展,软件系统的规模和复杂度不断增加,软
件开发周期变得越来越长,软件开发成本也越来越高。
在这种情况下,
提高软件的重用性已经成为了一种非常重要的途径,能够有效地降低软
件的开发成本,提高软件的开发效率和软件的质量。
在J2EE平台上,基于构件的软件复用技术是一种非常重要的技术,可以大大提高系统的可重用性和可维护性。
本文将针对基于构件的软件
复用技术在J2EE框架下的应用进行研究,探索其在软件开发中的实际应用。
二、研究内容和方案
本文将分为以下几个部分进行研究:
1. 系统分析与设计:在本部分中,首先对现有的基于构件的软件复
用技术进行分析,包括其原理、优缺点等,然后结合J2EE框架的特点,设计出适合J2EE框架下基于构件的复用技术框架。
2. 构件开发:在本部分中,根据设计出的框架,采用Java语言进行构件开发,重点研究构件的设计原则、构件的接口定义和构件与框架之
间的交互等内容。
3. 构件的集成和测试:在本部分中,将开发好的构件进行集成测试,重点考虑构件的接口协议和外部系统的互操作性。
4. 系统性能测试:在本部分中,本文将对构建的系统进行性能测试,验证其在实际应用中的工作效率和稳定性。
三、预期的结果和意义
本文将研究基于构件的软件复用技术在J2EE框架下的应用,在实际开发中使得软件具有更好的重用性和可维护性。
通过本文的研究,可以大大降低软件开发成本,提高软件的开发效率和软件的质量。
本文将为企业在软件开发中采用基于构件的复用技术提供指导和帮助,为相关领域的研究提供参考和借鉴。
软件构件技术成熟度及应用软件构件技术是指将软件系统划分成若干个可以独立开发、测试、维护和复用的模块,这些模块被称为构件。
构件技术的发展可以提高软件开发效率、降低维护成本、增强软件的可重用性和可扩展性。
随着软件工程领域的不断发展,软件构件技术也逐渐成熟起来,并在各个领域得到了广泛的应用。
软件构件技术的成熟度主要体现在以下几个方面:首先,软件构件技术的标准化程度日益提高。
软件构件技术是一个复杂的领域,涉及到模块化设计、接口标准、组件通信等方面的问题。
随着软件开发领域的不断发展,各种软件构件的标准也日益完善,例如,微软的COM技术、Java的JavaBeans技术、EJB技术等都成为了软件构件技术的标准。
其次,软件构件技术的工具支持日益完善。
随着软件构件技术的普及和发展,越来越多的软件开发工具开始支持构件化开发模式,例如,各种IDE工具(集成开发环境)中都提供了构件的开发和管理功能,如Eclipse、Visual Studio等。
另外,软件构件技术的理论基础日益完善。
软件构件技术涉及到计算机科学的诸多领域,包括软件工程、计算机网络、分布式系统等。
随着各种理论研究的不断深入,软件构件技术的理论基础也得到了很大的加强,例如,软件构件的形式化方法、构件的组装和部署技术等。
最后,软件构件技术的实际应用日益广泛。
软件构件技术的成熟度不仅体现在理论研究和工具支持上,更重要的是它的实际应用。
随着各种行业对软件质量和开发效率的要求不断提高,越来越多的软件开发项目开始采用构件化开发模式,例如,银行业的金融软件、电信业的通信软件、制造业的企业资源计划(ERP)软件等都采用了构件化开发模式。
软件构件技术的应用已经覆盖了各个行业和领域,并且取得了显著的成效。
下面以几个典型的行业为例,简要介绍软件构件技术的应用情况。
首先是金融行业。
金融行业是对软件可靠性和性能要求非常高的行业,因此对软件开发技术的要求也非常高。
在金融行业的软件开发中,构件技术大量应用于交易系统、风险管理系统、结算系统等领域,通过构件化开发模式,不仅加快了软件开发的效率,而且提高了软件的可靠性和可维护性。
基于构件复用的软件项目实施过程分析软件项目实施过程是指将软件项目开发计划转化为可执行的活动,以实现软件的设计、开发和交付。
构件复用是软件开发中一个重要的概念,可以提高软件项目的效率和质量。
下面将对基于构件复用的软件项目实施过程进行分析。
第一步,需求分析和规划。
在这一阶段,项目团队需要与客户合作,了解和分析项目的需求,并规划项目的开发计划。
在构件复用的角度看,团队需要评估现有的构件库,并确定需要开发新构件的需求。
根据需求分析的结果,团队可以制定特定的构件复用计划和策略,包括构件的选择与集成方式等。
第二步,构件库评估和选择。
在构件复用的实施过程中,团队需要评估现有的构件库,并选择适合项目需求的构件。
评估构件库包括对构件的功能、质量、稳定性等进行评估,以确保所选构件符合项目需求和质量标准。
同时,团队还需要考虑构件与项目其他组件的集成情况,避免出现不兼容性或冲突的问题。
第三步,构件开发和集成。
根据项目需求和构件复用计划,团队需要进行构件的开发和集成工作。
对于已有的构件库中没有提供的构件,团队需要进行开发,并确保开发的构件符合项目的质量要求。
在集成过程中,团队需要考虑构件之间的依赖关系和接口定义,以确保构件能够正确地集成到项目中,且能够和其他构件进行有效地交互。
第四步,测试和验证。
在构件复用的实施过程中,团队需要对构件进行测试和验证,以确保构件的功能正确性和质量可靠性。
测试包括单元测试、集成测试和系统测试等,以确保构件能够在项目中正常运行,并满足项目的需求。
第五步,文档编写和发布。
在构件复用的实施过程中,团队需要编写构件的文档,包括构件的接口文档、使用手册等。
这些文档可以帮助用户了解和使用构件,并提供必要的支持。
同时,团队还需要对构件进行发布,包括构件的打包、文档发布和上线等。
第六步,维护和更新。
构件复用并不是一次性的工作,团队在项目实施过程中还需要对构件进行维护和更新。
这包括对构件的功能更新、错误修复、性能优化等,以确保构件能够持续地满足项目的需求和用户的期望。
基于构件的软件工程随着信息技术的飞速发展,软件工程已经成为一个不可忽视的领域。
而基于构件的软件工程,作为一种新的软件工程方法学,更是引领了软件开发的革命性变革。
构件是可复用的软件组成模块,它既可以被独立开发,也可以被独立部署。
根据可重用性程度,可将构件分为原始构件和成品构件。
原始构件是未经任何修改即可使用的构件,而成品构件则是经过一定程度的修改后才能使用的构件。
基于构件的软件工程(CBSE)是一种将软件系统构建成可复用构件的软件开发方法。
它依赖于已有的构件库,通过组合和定制现有构件来创建新的软件系统。
这种开发方式大大提高了软件开发的效率和质量。
需求分析:明确软件系统的需求,包括功能需求和非功能需求。
构件库管理:建立和维护构件库,并对每个构件进行详细描述。
构件组合:根据需求分析的结果,从构件库中选择合适的构件,通过组合和定制来创建新的软件系统。
测试与验证:对组合后的软件系统进行测试和验证,确保其满足需求。
部署与维护:将软件系统部署到目标环境中,并进行后续的维护和升级。
提高开发效率:通过复用已有的构件,可以大大减少开发时间和成本。
提高软件质量:由于每个构件都经过严格测试和验证,所以组合后的软件系统的质量可以得到保证。
提高可维护性:由于构件是可独立部署和升级的,所以当软件系统需要维护或升级时,只需替换或升级相应的构件,而无需对整个系统进行修改。
促进团队合作:由于每个团队成员都可以根据需要选择和定制构件,所以可以更灵活地分配任务,促进团队合作。
基于构件的软件工程是一种革命性的软件开发方法,它通过复用已有的构件来创建新的软件系统,大大提高了开发效率和质量。
随着软件工程理论的不断发展和完善,基于构件的软件工程将在未来的软件开发中发挥越来越重要的作用。
随着信息技术的飞速发展,软件工程研究显得愈发重要。
本文将从构件软件工程的背景、现状和研究问题等方面出发,全面深入地探讨构件软件工程的相关研究。
构件软件工程的研究可以上溯到20世纪60年代,当时软件危机引起了人们对软件开发的。
1.引言构件技术是在软件开发中避免重复劳动的解决方法,被视为解决软件危机、提高软件生产效率和质量的切实可行的途径。
人们期望通过复用以前的代码或组件来减少编码的工作量,提高软件开发效率。
其中,软件复用适用于系统生存周期的各个阶段,表现为分析复用、设计复用、代码复用、测试复用以及以项目为中心的文档复用等。
其中,代码复用技术最直接、应用最广[1-3]。
本文在面向构件开发思想的基础上,设计并架构了覆盖PLM 业务范围的多层分布式系统结构,将构件技术,UML [4]和FORM L 设计相结合,详细介绍了面向代码的构件开发方式,并分析了其组成部分在PLM 系统中的实现。
2.基于构件技术的PLM 的系统结构产品生命周期管理(PL M ,Product life cy cle m anagement)是指管理产品从需求、规划、设计、生产、经销、运行、使用、维修保养、直到回收再用的全生命周期中的信息与过程。
其涵盖CAD 、PDM 、SC M 、C RM 等产品全生命周期各阶段的解决方案,并通过PLM 进行连接与集成[2]。
PL M 系统是以J2EE 中间件技术为主线,设计模式采用MVC ,在各层开发中采用了基于构件的中间件技术。
图一基于构件的中间件开发的P L M 系统技术结构如图一所示,传统的构件(CORBA 、COM 、VCL 、E JB)也具有粒度大,松耦合的特点,都可以实现可插拔,可替换。
我们的系统中主要应用的是COM 、VCL 和EJB 。
其中EJB 用在商务逻辑层,COM 、VCL 用在界面表现层做底层技术。
实现支持SDI 、M DI 、M TI 界面风格和属性化开发,即直接引用OM 类和OM 接口的一些属性,由编译器自动生成代码。
界面层每个构件都是一个子窗口,都有属性和方法。
每个属性都有个属性名,如BiCo lor,Fo ntSize 等。
属性类型可以是字符型或整型或浮点型。
构件的方法与函数类似。
由一个符号作为名称,还有一组参数和返回值。
基于构件的软件开发方法应用研究作者:聂磊来源:《硅谷》2009年第20期[摘要]基于构件的软件开发是以构件为组装蓝图,以可复用软件构件为组装模块,支持组装式复用,以提高软件生产效率和软件产品质量的有效途径。
对软件构件技术、基于构件的软件开发方法进行较深入的研究,并在此基础上将构件技术引入到软件项目设计中来,探讨如何利用软件构件技术开发软件项目。
[关键词]软件开发构件技术应用研究中图分类号:TP3文献标识码:A文章编号:1671—7597(2009)1020093--01一、引言随着软件开发规模和复杂性、社会对软件开发速度和数质量要求的不断提高,“软件危机”现象愈加明显,提高软件生产率成为软件产业当务之急。
为此,人们提出了软件复用思想,而构件技术是软件复用技术的最新发展趋势。
基于构件的软件开发技术近年来取得了突飞猛进的发展,这不仅对软件产业的技术革新影响深远,还将为许多其它领域带来巨大的效益。
构件化技术对软件开发工厂化是非常重要的。
有了构件才能通过构件的组装、互连,实现软件的工程化开发。
二、软件构件技术(一)软件工程概念软件工程的概念主要是针对20世纪60年代“软件危机”而提出的。
它首次出现在1968年NATO(北大西洋公约组织)会议上。
自这一概念提出以来,围绕软件项目,人们开展了有关开发模型、方法以及支持工具的研究。
其主要成果有:提出了瀑布模型,开发了一些结构化程序设计语言、结构化方法等。
并且围绕项目管理提出了费用估算、文档复审等方法和工具。
(二)软件构件技术构件最早由Meliroy在1968年NATO软件工程会议上提出。
构件是可复用的软件组成成份,可被用来构造其他软件。
它可以是被封装的对象类、类树、一些功能模块、软件框架、软件构架(或体系结构)、文档、分析件、设计模式等。
构件分为构件类和构件实例,通过给出构件类的参数,生成实例,通过实例的组装和控制来构造相应的应用软件。
例如,如果有一个开发人员创建了一个能让一个客户进入公司的数据库的构件,那么其他程序员就不必重新编写这个功能,而是从公司的构件库中直接提取这个构件,并将其应用在新程序中。
软构件技术的描述及在管理信息系统开发中的应用[摘要]随着新技术的不断发展,推行基于构件的软件开发技术是当前软件生产的世界潮流,是软件产业化革命的必然发展趋势。
软件业都在探寻“提高软件开发效率”的可行途径,而软件的构件技术成为影响产业的关键技术之一。
本文将对软件构件技术进行比较全面的描述并对使用软件构件技术开发MIS系统进行研究及分析。
[关键词]软件构件技术;MIS1软件构件技术概述软件构件技术就是一种类似于“零部件组装”集成组装式的软件生产方式。
它把零件、生产线和装配运行的概念运用在软件产业中,彻底打破了手工作坊式的软件开发模式。
构件是软件的构成元素,构件具有一定的功能和结构,并符合一定的标准,可以完成一个或多个特定的服务,构件隐藏了具体的实现,通过接口对外提供服务。
一般而言,构件是软件系统中具有相对独立功能,可以明确辨识接口、由契约指定和语境有明显依赖关系、可独立部署、可组装的软件实体,并且可以重复使用。
广义上讲,构件可以是数据,也可以是被封装的对象类、软件构架、文档、测试用例等。
软件构件库作为一种支持软件复用的基础设施和软件资产的管理设施,它提供对软件构件的描述、分类、存储和检索等功能,它为基于构件的软件开发提供了有效的支持,提高了软件开发效率和软件产品质量。
2管理信息系统(MIS)管理信息系统(Management Information System)是计算机应用最为广泛的领域之一,是由计算机技术、网络通信技术、信息处理技术、管理科学和人组成的一个综合系统,用于提供信息,以支持一个组织机构的运行、管理和决策成功开发的关键是要有一个完善的方法论做基础。
现有的MIS开发方法很多,但是随着MIS复杂性的不断增加和Internet技术的发展,这些方法在满足了一定需求的同时,也存在着很多的不足。
基于可复用构件的软件开发方法是建设高效可靠、应变能力强、易操作、易维护MIS软件的有效途径。
本文在分析了现有信息系统面临的问题和MIS开发方法不足的基础上,结合软构件技术给出了一个管理信息系统的开发分析。
构件模板动态实例化技术的研究与应用
构件模板动态实例化技术是软件工程领域中的一项创新技术,它通过在软件开发过程中动态生成组件模板,以适应不断变化的业务需求。
这项技术的核心在于提高软件的灵活性和可扩展性,同时降低开发成本和维护难度。
在软件开发的早期阶段,构件模板动态实例化技术允许开发者定义一组通用的组件模板,这些模板可以根据不同的需求进行定制和扩展。
通过使用参数化设计,模板可以在运行时根据输入参数动态生成具体的组件实例。
例如,在构建一个电子商务平台时,可以使用构件模板动态实例化技术来创建商品展示、用户登录、购物车等模块。
这些模块的模板可以包含通用的布局和功能,但在具体实现时可以根据不同的商品类别、用户权限或购物流程进行调整。
在应用层面,构件模板动态实例化技术可以显著提高开发效率。
开发者可以重用已有的模板,减少重复编码的工作量。
同时,这种技术也支持快速迭代,使得软件能够迅速响应市场变化和用户反馈。
此外,构件模板动态实例化技术还有助于提高软件的可维护性。
由于模板的通用性,当需要对软件进行升级或修改时,开发者只需更新模板即可,而不必修改每个组件实例。
这大大减少了维护成本,并降低了引入错误的风险。
在实际应用中,构件模板动态实例化技术已经被广泛应用于各种软件系统,包括企业资源规划(ERP)系统、客户关系管理(CRM)系统以
及在线服务平台等。
随着技术的不断发展,预计这项技术将在更多领域得到应用,为软件开发带来革命性的变化。
构件化软件工程在当今数字化时代,软件已成为推动社会发展和创新的重要力量。
随着软件应用的日益广泛和复杂,软件开发的方法和技术也在不断演进。
构件化软件工程作为一种新兴的软件开发方法,正逐渐受到业界的关注和重视。
什么是构件化软件工程呢?简单来说,它是一种将软件系统分解为可复用的构件,并通过组合这些构件来构建软件的方法。
这些构件具有相对独立的功能和明确的接口,可以在不同的软件系统中重复使用。
构件化软件工程的出现并非偶然。
在传统的软件开发过程中,开发人员往往需要从头开始编写代码,这不仅效率低下,而且容易出错。
当软件规模不断增大、复杂度不断提高时,这种开发方式的弊端愈发明显。
构件化软件工程的理念就是通过复用已有的成熟构件,减少重复开发的工作量,提高软件开发的效率和质量。
那么,构件化软件工程有哪些优点呢?首先,它显著提高了软件开发的效率。
由于可以复用现有的构件,开发人员不需要在每个项目中都重新实现相同的功能,从而节省了大量的时间和精力。
这使得软件开发能够更快地响应市场需求,缩短产品的上市时间。
其次,构件化软件工程有助于提高软件的质量。
经过多次使用和验证的构件,其稳定性和可靠性通常更高。
而且,构件的标准化接口有助于减少因接口不匹配而导致的错误,从而提高软件的整体质量。
再者,它增强了软件的可维护性。
当软件需要进行修改或升级时,只需要对相关的构件进行调整,而不需要对整个系统进行大规模的改动。
这降低了维护的难度和成本,也减少了因维护而引入新错误的风险。
此外,构件化软件工程还促进了软件开发的分工协作。
不同的团队可以专注于开发不同的构件,然后通过组合这些构件来构建完整的软件系统。
这种分工协作的方式可以充分发挥各个团队的优势,提高开发的效率和质量。
然而,要实现构件化软件工程,也面临着一些挑战。
构件的设计和开发就是一个关键问题。
构件需要具有良好的通用性、可扩展性和可维护性,这对设计人员的要求很高。
如果构件设计不合理,可能会导致复用性差,甚至无法在其他项目中使用。
基于J2EE企业构件框架的构件组装技术的研究的开题报告一、研究背景及意义随着企业信息化建设的深入推进,企业架构的复杂性和规模不断提升。
为了应对这种情况,J2EE企业构件框架逐渐成为了一种热门技术。
J2EE企业构件框架是以构件为基本单位的应用开发模式,可以帮助企业快速构建复杂的软件系统。
然而,在实际使用中,构件的组装和集成仍然是一个难点问题,特别是对于中小企业来说,缺乏成熟的、易于使用的组装技术更是制约了构件框架的使用效果。
因此,研究基于J2EE企业构件框架的构件组装技术对于提高软件开发效率,降低开发成本具有重要意义。
二、研究内容及方法本研究将探索一种基于J2EE企业构件框架的构件组装技术,主要研究内容包括以下方面:1. 构件组装技术框架建立:本研究将根据J2EE企业构件框架的特点和构件组装的特性,建立一种适合构件组装的技术框架。
2. 构件组装算法研究:本研究将探索一种基于J2EE企业构件框架的构件组装算法,该算法将结合构件的属性和功能进行自动组装,同时考虑组装的正确性、性能和可扩展性等因素。
3. 系统实现与验证:本研究将针对研究内容,实现一个基于J2EE企业构件框架的构件组装系统,并通过实验验证研究结论的正确性和实用性。
本研究将采用实验研究方法,结合理论分析和实际应用,通过对J2EE企业构件框架相关文献的调研并对模型进行实验验证,来确定研究结论。
三、预期结果及意义本研究将探索一种基于J2EE企业构件框架的构件组装技术,并采用实验验证的方法,探索该技术的实用性和可行性。
预期结果有两个方面的意义:1. 实用性:本研究将为中小企业提供一种易于使用的、成本较低的构件组装技术,帮助企业快速构建自己的软件系统,提高软件开发效率,降低开发成本。
2. 学术意义:研究内容关注构件组装技术,对构件框架的进一步深入理解,将为相关研究领域提供新的思路和方法,拓展该领域的研究范畴。
四、研究计划及进度安排本研究预计分为以下几个研究阶段:1. 调研阶段(1-2周):主要进行J2EE企业构件框架相关文献的调研,了解构件框架的相关概念、设计原理、开发流程等内容。
构件化开发方法和应用J2EE 是SUN 公司为满足企业级应用开发的需要而推出收稿日期:2006-01-07E-mail :drlf@作者简介:龙飞(1974-),男,江西萍乡人,硕士研究生,研究方向为网格和软件工程;何钦铭,男,教授,博士生导师,研究方向为问题求解与机器学习基础研究、网络信息搜索等。
构件化开发方法在J2EE 项目中的应用龙飞,何钦铭(浙江大学计算机学院,浙江杭州310027)摘要:构件化开发方法(component-based development ,CBD )是软件复用的新发展,主张通过设计和复用能独立完成特定功能的组件来组装软件,从而提高软件复用度。
探讨了在J2EE 应用开发中遇到的实际问题,即现有J2EE 框架中缺乏组件规化设计标准和相应开发指导方法的问题,讨论在软件开发过程中应用CBD 方法的基本原则和步骤,以及利用CBD 技术解决上述问题的方法。
最后结合一个E-LEARNING 项目,说明如何在J2EE 项目开发过程应用CBD 技术,以及所能达到的效果。
关键词:构件化方式开发;框架技术;软件复用;J2EE;E-LEARNING 中图法分类号:TP311.52文献标识码:A文章编号:1000-7024(2007)03-0591-04Using component-based development in J2EE application projectLONG Fei,HE Qin-ming(College of Computer Science,Zhejiang University,Hangzhou 310027,China):Component-based development is an improvement of software reuse,which emphasizes designing and using the componentsproviding independent services to build software system so as to improve the software reuse.The problems emerged in the process of J2EE application development about lacking standard of marking out and designing components,development guidance in J2EE frame-work are discussed.And the solution is given by presenting the primary principle and process of using CBD technology in J2EE application development.At last how to use CBD technology in the J2EE software process with an E-LEARNING project is illustrated and the ad-vantage of CBD technology issummarized.:component-based development;framework;software ruse;J2EE;E-LEARNING2007年2月计算机工程与设计Feb.2007第28卷第3期Vol.28No.3Computer Engineering and Design的Java2规范的企业版,是一个分布式的服务器应用程序设计环境,它提供了服务器应用的运行基础框架环境和用来创建应用的J2EE API 。
J2EE 平台定义了J2EE 容器作为管理组件,并为组件提供调用J2EE API 的运行环境[1]。
典型的J2EE 应用按照MVC (model-view-controller )模式把系统分为3层:表示层、业务逻辑层、数据库层。
对应于这种分层结构,系统中存在3类组件,分别是表现层组件、业务层组件和数据资源层组件,另外有很多通用代码经过长期的使用和提炼,沉淀为基础组件。
他们之间的关系如图1所示。
由于J2EE 平台只是一个框架式的标准,它并没有关于组件的规划设计、实现、测试和组装的详细标准,因此在实际的J2EE 应用开发中,会遇到如下问题:①系统被纵向划分为3层,即使是一个最简单的业务流程也会遇到怎样在各层中划分组件的功能范围,定义组件间的交互接口。
②J2EE 应用必须部署在J2EE 容器中之后才能运行,这显然会迟缓单元测试和集成测试的进行,不利于监督和控制项目的质量和进度。
③J2EE 应用的部署是一个复杂的过程,如果在设计时没有准确地规划组件所提供的服务而导致服务过于分散或不适当的集中,都会造成部署意图的难以理解和项目维护的困难。
以上问题或多或少地存在于当前所有的J2EE 项目中,产生这些问题的原因并不是J2EE 架构本身存在着缺陷,而是由于在开发中缺少组件化标准和相应开发方法的指导。
这些问题可以通过在项目实施中引入CBD 方法而得到缓解。
构件化开发方法是把CBD 思想应用于软件工程的过程:利用框架化分解问题的分析方法,把业务领域问题分解成许多独立的已知解的子问题,为各个子问题定义接口,选择使用、扩展现有组件或自定义并实现新的组件;规划出组件系统蓝图,在系统框架的支持下,组装组件以构造新的系统。
构件化软件开发的一般过程为:需求分析,系统功能分析,组件规划和定义,选用、开发和测试组件,组件组装,系统测试,系统发布。
与普通软件开发过程的最大不同在于组件的规划和组装。
在需求分析和系统功能分析中把业务领域问题细分成已知解的子问题之后,就要针对具体的子问题选择实现方式,进行组件规划。
要考虑的问题有:是否存在现有的组件可以直接利用或在其基础上加以扩展后使用,是否有多个子问题间存在共通点据此可以定义出一个新的通用组件,或者定义出功能相对独立的业务组件以封装不同的业务逻辑。
规划组件是综合考虑所有子问题的实现,在规划中不仅要考虑组件的可复用性、粒度和实现难度,还要考虑应用组件时对上下文环境的要求和与其它组件交互的接口等条件。
在定义组件时,应该关注于识别那些粗粒度的组件,复用大的组件更节省工作量;小的组件更有可能被经常用到,但是使用它们节省的工作量小。
组件的粒度、可复用性和实现成本的关系是,组件粒度越大,组件的可复用性就越差,而其成本却越高[2],如图2所示。
我们的目标是在控制成本的情况下,尽可能地定义和使用大粒度的组件。
这些组件应该是功能相对独立,符合以下软件工程的基本原则:分离考虑的原则;组件的定义是高内聚和低耦合的;组件的封装使得在应用组件时无需了解其内部的具体实现。
按照以上思路设计出来的组件,由于集成和提供了大小适当、功能相对独立的服务,使整体业务流程更易于理解,方便了集成和部署工作。
在使用构件化方式开发项目时,系统最终由大大小小的组件构成,怎样才能保证组件可以实现互操作呢?基本要求是它们必须对使用到的接口具有统一的理解,用一致的方式来描述接口[3]。
在MVC 架构中,为了隔离相关性,各层组件间传递参数时应尽量使用通用的数据结构,如使用Java 的通用集合类、Map 类,或者使用JDBC 的结果集、离线结果集。
通过统一组件间的接口,不但可以增加组件的适用性,减少组件组装的代码,而且有利于利用现代测试技术模拟组件间的交互行为,在系统集成和部署前进行充分的测试[5]。
综上所述,通过在J2EE 项目中应用CBD 方法可以获得以下好处:①基于组件的设计使我们更关注业务组件的集成,在更大的粒度上来封装独立性较强的业务逻辑,从结构上分解商业应用系统,减少整体的复杂度。
②组件规划有利于项目管理者准确、灵活地分配和调整任务,更好地把握项目的进度。
③构件化开发适合极限编程中提倡的“迭代开发”方式[6],不必等所有组件都完成之后才开始组装系统,可以把开发过程划分为多个子过程,在每一个子过程中适当地选择实现部分组件。
这样在每个子过程完成时,我们都能把一个可以运行的系统的子集交给用户,有利于客户对开发过程的充分参与。
④组件化开发对现代测试技术有良好的支持。
由于组件的相对独立性,在系统集成之前,当组件还在开发时就可以进行充分的单元测试和组件功能测试。
另外由于组件间关系简单,组件间交互都基于明确定义的组件接口,可以很轻松地利用现代测试技术模拟组件间的交互关系,测试部分集成的功能实现。
方法在项目电力培训系统中的应用以下是CBD 方法应用于一个具体J2EE 项目的实施过程。
2.1项目介绍电力培训系统是一个基于J2EE Web 架构的E-LEARNING平台,为变电所员工提供工作相关培训,包括设备资料库浏览、课程演示、变电所模型演示,及提供测验和考试以考察员图1J2EE 分层体系中组件间关系图2影响组件价值的粒度因素组件粒度可复用性组件成本工学习情况等功能。
系统按功能分为6大模块:系统管理、资料文件管理、交流中心管理、模拟变电所、考试中心、论坛。
其中系统管理模块提供保障系统正常运行所需的设置和管理操作,资料文件管理模块主要供员工查阅电力设备的资料和信息,交流中心提供课堂讲义等教学资料的学习和交流功能,在模拟变电所员工可以动手操作电力设备的模型,考试中心模块维护题库、组织测试和考试,论坛则提供员工学习之余交流的场所。
2.2需求分析在本系统中每个模块都是一个相对独立的业务流程,拥有不同的业务对象。
系统管理中的业务对象有人员、角色、权限、消息和通知等,主要操作是人员管理、权限维护、消息和通知的发布维护及其它独立的系统操作。
在资料文件管理、交流中心管理、考试中心3个模块中,设备资料、交流中心的讲义、考试中心的题库都属于知识的范畴,具有一些相同的属性和操作,如浏览、查询、维护操作以及知识的上传、审批和审批消息通知操作(低级别的用户可以上传知识,但需要管理员的审批通过方能生效)。
考试中心的测试和考试是比较通用的模块,尽管存在一些个性化要求(如测试时间长度不限,在中途退出测试时可以选择保存结果以便下次继续),但是总的流程还是比较明确的。
具体的操作有按用户定义算法选题、试卷派发、测试和考试、保存考试结果和分数、统计报表和排名等。
模拟变电所使用flash实现人机交互产生互动效果,而论坛则可以在著名的Jive论坛上稍做修改实现。
2.3系统框架项目采用了符合MVC模式的Struts框架作为项目实现系统框架。
Struts为创建Web应用提供一个开源框架,它能够很好的分离表现层,使之独立于事务和数据层[4]。
在Struts框架中,只要加入少量的胶合代码,就可以轻松的拼装出需要的业务流程。