机械设计及理论论文.docx

上传人:b****6 文档编号:6359555 上传时间:2023-01-05 格式:DOCX 页数:48 大小:433.76KB
下载 相关 举报
机械设计及理论论文.docx_第1页
第1页 / 共48页
机械设计及理论论文.docx_第2页
第2页 / 共48页
机械设计及理论论文.docx_第3页
第3页 / 共48页
机械设计及理论论文.docx_第4页
第4页 / 共48页
机械设计及理论论文.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

机械设计及理论论文.docx

《机械设计及理论论文.docx》由会员分享,可在线阅读,更多相关《机械设计及理论论文.docx(48页珍藏版)》请在冰豆网上搜索。

机械设计及理论论文.docx

机械设计及理论论文

分类号密级

UDC

 

硕士学位论文

企业级应用中面向对象框架的研究

 

学位申请人:

xxx

学科专业:

机械设计及理论

指导教师:

xxx

 

论文答辩日期 2005年月日学位授予日期

答辩委员会主席评阅人

AThesisSubmittedinPartialFulfillmentoftheRequirements

fortheDegreeofMasterofEngineering

ResearchonObject-OrientedFrameworkof

EnterpriseApplication

Candidate:

FanJuyiMajor:

MechanicalDesign&TheorySupervisor:

Prof.HuYujin

HuazhongUniversityofScienceandTechnology

Wuhan430074,P.R.China

May,2004

摘要

软件复用是在软件开发中避免重复劳动的解决方案。

通过软件复用,可以提高软件开发的效率和质量。

近十几年来,面向对象技术出现并逐步成为主流技术,为软件复用提供了基本的技术支持。

软件复用研究重新成为热点,被视为解决软件危机,提高软件生产效率和质量的现实可行的途径。

框架技术的发展使软件复用技术达到了一个新的阶段,同时,企业级应用的发展对软件复用技术提出了需求,并为软件复用技术提供了新的实践环境。

框架是一个软件产品的半成品,它含可变和不变部分,通过对可变部分的定制得到不同的应用系统。

由于当前通用的EJB是面向事务的重量级框架,本文提出了一种轻量级的面向领域模型的框架。

本文以企业级应用和软件复用技术为背景,提出了企业级应用的框架模型,阐述了框架的设计、算法以及实现。

文章主要包括以下几点:

首先,讲述现有程序开发的问题,提出采用框架技术的必要性。

接着,对面向对象框架和设计模式进行了全面的探讨。

然后,通过抽象业务系统中核心的组件,定义组件之间的协作规约,实现一个系统的框架,并描述用C++平台实现框架的过程。

最后,用一个实例验证了框架的可行性和有效性。

关键词:

企业级应用,软件复用,框架

ABSTRACT

Softwarereuseoffersasolutiontoeliminaterepeatedworkandimproveefficiencyandqualityinthesoftwaredevelopment.Intherecenttenyears,object-orientedtechnologyhasappearedandbecomeamainstreamtechnology,therebyprovidingfundamentaltechnologysupportforsoftwarereuse.Softwarereuseregainsmoreattentioninsoftwareengineeringresearchandisconsideredapracticalandfeasibleapproachtosolvingthesoftwarecrisis.Itcanimprovesoftwareproductivityandquality.Frameworktechnologyadvancestheresearchofsoftwarereuse.ThedevelopmentofEnterpriseApplicationneedthesoftwarereuse,anditgivesanewbackgroundtosoftwarereuse.

Frameworkisageneraldesignofsomeapplications,itcomprisesvariableandconstantparts.Wecangetaspecificapplicationbyspecifyingthevariableparts.ThepopularframeworkisEJB,butitistransaction-orientedandheavyweight.Sothisdissertationputforwardalightweightframeworkwhichisdomain-oriented.BasedonEnterpriseApplicationandsoftwarereuse,thisdissertationpresentaframeworkofenterpriseapplication,andexpounditstheory,design,algorithmsandimplementation.Thisdissertationincludesseveralaspectsasfollows:

Firstly,depicttheproblemexistinginthesoftwaredevelopmentanddemonstratethenecessityofusingframeworktechnology.Then,discusstheobject-orientedframeworkanddesignpatternindetail.Next,implementaframeworkofapplicationbyabstractingkeycomponentsofEnterpriseApplicationanddefiningagreementamongcomponentsanddepictthedetailoftheframeworkimplementationusingC++.Finally,weuseanexampletoprovevalidityoftheframework.

KeyWords:

EnterpriseApplication,softwarereuse,frameworktechnology

第一章绪论

1.1研究背景

随着计算机技术的发展和信息时代的到来,电子商务,电子政务得到了蓬勃的发展,在企业级应用需求不断增长的今天,对企业级应用的研究也越来越深入。

作为企业级应用本身也经历着一种渐进式的改变,如今的企业级软件面临着一些明显的挑战。

其中包括可伸缩性、安全和处理不同厂商技术的需要。

另一个重要的问题就是,随着全球信息化的发展,对企业级应用开发的要求与日俱增。

这样众多的企业级应用开发使开发人员不堪重负。

那么一个很现实的问题摆在我们面前:

众多的企业级应用中是否有相同的部分可以重用?

该如何实现软件的重用?

其实,软件重用一直存在着软件开发的过程中。

通过对软件复用技术的研究和探讨,我们发现以复用为目的开发的软件,不但实现了代码的复用,而且实现了设计,分析,以至于测试的复用。

复用的概念己经得到了广泛的扩展。

软件复用是缩短企业级应用开发周期,降低开发成本,保证开发成功的最有效的方法。

而且软件复用思想早已在企业级应用的开发平台中得到了运用[1]。

然而,对小规模复用的长期研究与实践表明,小规模的代码复用如类、数据结构等的复用,并没有给软件工业带来人们所期望的软件生产率的大幅度提高、软件产品质量稳定可靠的前景。

对于代码复用,程序语言并不能很好地支持复杂软件特性的描述。

随着软件系统规模和复杂度的日益升级,人们逐渐意识到,系统总体结构的设计和规范说明比算法和数据结构重要得多,并认为软件体系结构复用即框架的研究会成为提高软件复用度的最有希望的途径[2]。

1.2国内外的现状和发展趋势

1.2.1软件复用的趋势

复用概念的第一次引用是在1968年NATO软件工程会议上,Mellroy的论文“大量生成的软件构件”中。

在此之前,子程序的概念也体现了复用的思想。

但其目的是为了节省当时昂贵的机器内存资源,并不是为了节省开发软件所需的人力资源。

然而子程序的概念可以用于节省人力资源的目的,从而出现了通用子程序库,供程序员在编程时使用。

例如,数学程序库就是非常成功的子程序复用的例子。

在其后的发展过程中,有许多复用技术的研究成果和成功的复用实践活动[3]。

但是,复用技术在整体上对软件产业的影响却并不尽人意。

这是由于技术方面和非技术方面的种种因素造成的,其中技术上的不成熟是一个主要原因。

近十几年来,面向对象技术出现并逐步成为主流技术[4],为软件复用提供了基本的技术支持[5][6]。

软件复用研究重新成为热点,被视为解决软件危机,提高软件生产效率和质量的现实可行的途径。

在具体的软件开发中,存在不同层次的复用,它们分别是:

●代码级的复用

●组件级的复用

●框架的复用

其中,框架的复用是软件复用的发展趋势[7]。

从现在企业级应用的实际开发情况来看,在当今面向对象的软件开发中获得最大限度的复用技术就是框架复用[8]。

一个大的应用系统往往可以由多层互相协作的框架组成[9]。

使用框架,可以获得代码重用、设计重用、分析重用[10]。

框架能够重用代码。

可以说,框架是实现了一个特定领域的具有相同需求的部分功能,开发具体应用系统的人员只需要在其上完成应用系统特有的需求功能即可。

因此,框架的大部分代码被重用。

框架能够重用设计。

它提供可重用的抽象算法及高层设计,并能够将大系统分解成更小的组件,而且能够描述组件间的内部接口[11]。

这些标准接口使在已有的组件基础上通过组装建立各种各样的应用系统成为可能。

只要符合接口定义,新的组件就能插入到框架中,组件设计者就能重用框架的设计。

框架能够重用分析。

所有的人员若按照框架的思想来分析事务,那么就能将应用系统划分为同样的组件,采用相似的解决办法,从而使采用同一框架的分析人员之间能够进行沟通。

采用框架技术进行软件开发的主要特点包括:

●软件开发人员主要专注于对应用系统核心业务的了解,可以不必了解系统许多的底层实现细节,使需求分析更加充分。

●领域内的软件结构一致性好。

●建立更加开放的系统。

●重用代码大大增加,软件生产的效率和质量也得到了提高。

●框架是设计开发人员经验的总结,可以让那些经验丰富的人员去设计框架和领域组件,而不必限于低级的重复性编程。

●可以采用快速原型技术,从而加快开发。

●有利于在一个项目内多人协同工作,利用框架,不同的小组可以专注于白己的任务。

●大粒度的重用使得平均开发费用降低。

开发周期缩短,开发难度减小,系统的维护费用降低,系统的适应性、灵活性增强。

1.2.2软件复用和企业级应用

企业级应用一般指企业级软件,有以下几个特点:

●含一系列访问数据库的小程序,且这些小程序相对比较独立。

●包含许多企业经营和业务的各种数据的数据库。

●处理各种业务的程序可以互操作,能够有机地集成在一起。

在当今的企业级应用中,软件复用技术被广泛的应用。

使用软件复用技术,可以使企业级应用的开发获得以下好处:

(1)加快企业软件发展速度

当今企业级应用的需求在频繁的变化,甚至在一个项目的进行过程中,企业的需求都可能发生变化。

那么如何才能适应这样的变化呢?

答案是使用软件复用技术。

软件复用能够提高软件生产率,缩短软件开发周期。

软件复用能够支持快速原型设计,利用可复用框架可以快速有效的构造出应用程序的原型,以获得用户对系统功能的反馈。

(2)提供企业级应用的稳定性

企业级应用的一个特点就是对高稳定性的要求,大多数企业的应用必须提供24X7小时的服务。

用可复用的构件构造系统时,除了能加快软件的开发速度外,同时还为企业级应用的稳定性做出了保障。

因为可复用构件经过了高度的优化,并且在实践中经过了考验。

由于使用经过考验的构件,减少了可能的错误。

(3)提供企业级应用的伸缩性

对于企业级应用来说,可伸缩性是一个很重要的指标。

可伸缩性是指一个应用系统的体系结构能够在何种程度上满足用户发展需求的特性。

满足这种不断变化的需求的办法就是使用框架技术。

在企业级应用的开发中,只要开发出可复用的框架,当有新的需求到来时,我们可以利用已有的框架,就可以开发出新的应用。

1.2.3框架的现状

尽管企业级应用设计到非常多的层面,本文将集中研究核心的层次,即业务模型框架的实现,现今典型的业务模型框架是基于J2EE平台的EJB组件[12],EJB是面向以事务为中心的企业软件,其核心是事务[13],不是领域模型,也就是说,在寻求一个纯粹领域模型的框架来支持应用的时候,EJB组件是不适合的,如果勉强使用,也就引起对EJB的种种误解,典型的如下:

1.EJB技术的一项最根本的技术缺陷来自于对象序列化技术,对象序列化技术是EJB跨平台通讯的基础,所有的EJB之间通讯都依赖了对象序列化技术的应用。

从设计架构上看,这是个简单清晰的设计,通过对象的序列化实现了对象在多个进程之间的复制传递。

但非常遗憾的是,设计者对于Java平台对于对象序列化的实现的考虑却做的很草率,对象序列化的性能很差[14]。

2.另一项EJB技术更为严重的缺陷来自于RMI(远程方法调用),EJB更限定必须遵守COBRA规范的RMI-IIOP技术,实际上我质疑所有采用分布式对象调用的技术,包括COBRA、COM+、RMI等,这种技术的根本原理上都是一样的,通过本地的一个远程对象代理,通过网络上的多次通讯实现对远程对象的方法调用,这种设计架构的初衷是隐藏对象的具体位置,可以让对象使用者不用关心对象的实际位置,但是这种方法的实现性能极差,像COBRA这种系统的设计者当初就没有把性能问题作为一个重要问题去考虑,但正是性能问题,导致隐藏对象位置这个目的实际上也并没有达到,因为通过通讯访问远程对象的性能太差,因此使用者处于系统性能的考虑不得不考虑远程对象和本地对象的区别。

更可悲的是,EJB的上层设计上也没有能够把远程对象和本地对象的差别消除,用EJB设计人员自己的说法,远程对象调用和本地对象调用在语义上就无法统一起来。

既然上层就必须区分远程对象和本地对象,那底层技术上就完全没有必要采用这种性能很差的设计了。

从COBRA开始,这种分布式对象访问的技术就是不成熟的,EJB墨守了分布式对象技术的陈规,导致自己背上了沉重的包袱,使用者必须很小心地使用EJB技术,稍有不慎就会导致系统性能大幅度下降。

3.与前面提到的两个根本缺陷相比,EJB技术的其他方面的问题就显得微不足道了,比如EJB本身定义的复杂性,实体Bean的性能问题等等,相信这些问题一定可以解决,或者很容易被新的设计替换掉,比如复杂性问题可以通过工具解决,实体Bean可以用轻量级的对象持久层代替等等。

实际情况是,所有这些问题都是开发人员试图使用EJB并没有提供的领域模型,轻量级的业务模型只能由开发人员自己定制新的框架来完成[15]。

缺失了轻量级的领域模型框架,EJB3标准似乎在这个方向上竭尽全力,但直到现在,市场上仍未发现成熟的产品。

1.3论文内容及结构

本论文以软件复用思想为指导,来探讨企业级应用中通用框架的实现,并用C++构建了一个可复用框架(framework框架),这个框架为开发企业级应用的编程人员提供了一个方便灵活,可扩展的平台。

本论文主要研究了以下内容:

1.分析了软件复用的发展趋势以及软件复用在企业级应用的状况,提出构建企业级应用框架的必要性。

2.基于软件复用的思想,为企业应用系统设计一个通用的框架,从对企业应用的分析中抽象出对象及其关系的概念,并根据功能的不同进行逻辑分层。

给出了本文框架的所有类及其接口,实现了框架模型。

3.在框架模型的基础上,研究了设计模式以及其它面向对象技术在框架的设计和实现中的运用。

4.结合实际的应用系统,应用框架模型进行开发,通过简洁的实现代码说明了此框架的可行性及高效性。

第二章介绍了框架的概念,特征,开发方法,和其它复用技术的比较,框架文档。

第三章介绍了设计模式以及其对框架开发的影响。

第四章是企业应用系统的框架设计和实现问题。

第五章以此框架实现CRM系统中的一个模块,验证了此框架的可用性。

第六章总结本文的研究内容,指出了进一步的研究方向。

第二章框架

2.1框架的定义

最早的框架概念起源于Smalltalk环境,Smalltalk-80的用户接口框架,就是Model--View-Controller(MVC),可能是最早被广泛使用的框架。

当Apple公司开发了支持基于Macintosh的应用的用户接口框架后,以及Interviews和ET++的用户接口框架也被开发和使用后,框架逐渐被人们认识和重视。

框架也被应用到其他领域如操作系统等。

Taligent公司成立(1992年)后,致力于开发一个基于框架的完全面向对象的操作系统,它发布了很多用于加快应用开发的工具,包含了一百多个面向对象的框架。

框架也随之得到了更多设计人员的关注、用框架开发模式,使软件开发更象一个工业的生产过程。

JohnsonandFoote,DesigningReusableClasses中的定义:

"Aframeworkisasetofclassesthatembodiesanabstractdesignforsolutionstoafamilyofrelatedproblems."这是披引用得最多的关于框架的定义。

经过精心设计的框架,可以方便快速的扩展功能,提取通用功能,而且改善性能,提高软件的稳定性,使维护更容易和方便。

框架不仅仅是一些类和程序的集合,它来自于对象之问内在的联系。

是这些对象的内在天然联系,才使得框架发挥作用,使开发者只用扩展框架行为就可以用来适应商业需求[16]。

2.2框架的特征

(1)模块化

框架通过封装多变的实现细节于固定的接口之后,提高了软件的模块性。

框架通过将把由设计和实现的变化所带来的影响进行局部化来改善应用程序的质量。

这有助于理解和维护现有的软件。

(2)可复用性

框架提供的固定接口被定义成类属组件,并可被用来创造新的应用程序。

这样就提高了可复用性。

框架的可复用性利用了有经验的开发者在该特定领域中的专业知识和开发努力,避免了后继开发人员针对该领域中的同一问题和需求做重复的劳动。

框架组件的复用能大幅度的提高后继开发人员的产量,同时还能改善软件的质量、性能和可靠性。

(3)扩展性

框架通过提供显式的钩子方法(HookMethods),允许应用程序来扩展其固定的接口,这样就提高了框架的扩展性。

钩子方法系统的为框架的固定的接口和由于不同的需求而产生的应用程序行为之问进行解耦。

框架的这种扩展性对于保证及时地定制新的应用程序服务和特征是十分必要的。

(4)反向控制

框架是一种运行时体系结构,这种结构被称为“反向控制”。

它使得标准的应用程序过程能被可由框架派发机制激活的事件处理对象一步步地定制。

当事件发生时,框架的派发器被事件处理对象的钩子方法调用,对事件作出反应,执行该事件的特定的代码过程。

反向控制允许框架(而不是应用程序)决定何种方法被激活来相应外部事件。

(5)白盒框架和黑盒框架

白盒框架在很大程度上依靠面向对象语言特征如继承和动态绑定来获得可扩展性。

在这种框架中,已有的功能被服用和扩展,通过;(l)从框架基类继承得到新的子类;

(2)重载预定义的钩子方法。

白盒框架需要应用程序开发人员对框架的内部结构非常的熟悉。

黑盒框架通过为组件定义接口,使其能通过对象组合技术嵌入到框架中来获得扩展性。

在这种框架中,已有的功能被复用和扩展,通过:

(1)一致的接口规范来定义组件;

(2)使用设计模式将组件集成到框架中去。

与白盒框架不同,黑盒框架使用组合和代理而不是继承,所以黑盒框架比白黑框架更容易使用和扩展。

但是,黑盒框架开发起来更加困难,需要框架的开发者定义良好的接口和钩子方法。

2.3框架的分类

可以按不同的方法对框架进行分类,最重要的方法有:

框架所描述的问题领域和框架的使用方式。

根据框架描述的问题领域,我们可以将框架大致分为三种类型:

(1)应用程序框架

应用程序框架旨在提供一个全范围的、功能性的创建一个应用所需的基础设施。

这个功能集通常涉及很多方面,例如用户界面GUI、文档、数据库等。

一个最典型的应用程序框架的例子就是C++类库MFC,MFC被用来构建MSWindows上的应用程序。

(2)支持框架

支持框架通常定位于非常专业的计算机相关的领域,例如存储管理或者文件系统。

对于这类领域的支持有利于简化程序的开发。

典型的支持框架被用在应用系统和应用程序框架之间的连接[17]。

(3)领域框架

领域框架捕获了特定问题领域的专业知识和经验:

如制造控制框架和多媒体框架就是领域框架的例子。

领域框架是目前框架技术运用的热点。

同一领域中的系统的需求和功能必然具有显著的共性,其实现也常常具有共性。

领域模型描述了需求方面的共性。

对于己生产了许多系统或更新较为频繁的领域,建立基于共同功能的软件框架将由于促进软件复用而得到显著的回报[18]。

如果说领域模型描述了一系列问题,领域软件框架则描述了一系列解决方案、将领域分析的产品转化并映射到一个实现的构架。

领域框架并不是单个系统的表示,而是能够适应领域中多个系统的需求的一个高层次的设计。

他包含组件以及组件互连的规则。

当开发本领域的一个新系统时,满足当前系统需求特点的系统结构,可以使用这些构件按照规则构成。

一些领域分析方法包括了生成通用软件框架的步骤,如ODM的说明模型和FODA的特征模型,这对开发一个通用体系结构通常有指导作用。

根据使用框架的方式,可以将框架分为两类:

(1)体系结构驱动框架。

这种方法主要依赖于继承机制:

框架使用者通过继承框架中的类和重载类中的操作来生成应用程序。

这种方法的主要缺点是框架使用者不得不自己去实现该框架中的种种行为,这就意味着要编写大量的代码。

(2)数据驱动框架。

要使得框架去适应应用程序的特定需求,这在很大程度上依赖于对象组合。

这种框架描述了对象是如何被组合的,但是它的功能在很大程度上取决于框架使用者传递到框架中的对象。

所以,数据驱动框架易于使用但是功能上有所限制。

为了处理使用体系结构驱动和数据驱动所带来的问题,一个较好的模式是框架以体系结构驱动为基础,又包含数据驱动层,从而使得该框架既有良好的扩展性,又便于使用。

2.4与其它面向对象技术的比较

在基于框架的软件开发中,有一些其它的面向对象复用技术与框架密切相关,它们是类库、组件和设计模式[27]。

2.4.1框架与类库

类库是一组相关的、可复用的类的集合,这些类提供了通用的功能。

类库的典型例子如C++的I/O流库和标准模板库(STL)。

类库强调的是代码复用,它们是面向对象环境下的“子程序库”。

在基于框架的开发过程中,类库扮演着重要的角色。

框架通常将类库集成到其内部来简化开发工作,并通过类库来完成一些基本的任务如字符串处理、文件管理等。

所有的框架都是类库,但并不是所有的类库都是框架。

框架通过下列方式来扩展类库的功能:

框架是包含特定领域对象体系结构和功能的“半成品”。

框架中的组件在一起合作,为一类相关的应用程序提供了一个标准的体系结构骨架,通过从框架组件继承和组合可以得到完整的应用程序。

与之相比,类库不是针对特定领域,并只提供较小范围内的复用。

与框架的运行时的“反向控制”相比,类库则是被动的。

当使用类库时,需要写应用程序的主体并调用想要复用的代码。

当使用框架时,应该

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1