实验五实现_第1页
实验五实现_第2页
实验五实现_第3页
实验五实现_第4页
实验五实现_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验五 实现一、 实验目的1、 了解Classics公司设计模型的不同部分。2、 描述Classics公司设计模型在Vb和Vc+中的实现。3、 讲述visual Studio 在Rational Rose中的整合特性。二、 实验内容(一)概述l 如何使用Rational Rose生成VB和Vc+代码l 如何利用代码变化来修改模型l 如何如何导入和使用模型中的COM组件的类型库试验分成两个部分,分别是VC+双向工程和vb双向工程。(二)设计模型就领域专家所知晓的对象而言,分析模型表示了系统。设计模型代表了同一个的系统,但是它代表了能更加接近源代码的抽象层。例如,设计模型中的类有指定的语言和模型特

2、性,这些特性定义到代码的映射。下图表示了基于vb的POS系统实现的客户应用的设计模型的一部分。用户界面从business objects中分离出来,组成一个自己的包POS Client UI。这种分离有助于管理这两个概念包,组织一个模型的方法有几种。设计类的构造型指明了这个类与什么样的源代码项是一致的。例如,下图中的frmMain类就是用VB表单实现的。图 4 .1 部分设计模型图(三) 组件视图组件视图表示了软件模块,它们在一起能实现系统。组件需要将每一个类都映射到一种适当的实现语言和源代码项目。例如,为了给逻辑视图中的每一个类生成代码,这些类都必须被分配到一个或几个组件上。同样,为了用源代

3、码项目来修改模型,一个和该项目向对应的组件必须存在与模型中。一个模型可以包含若干个使用不同语言的组件,但是,一个类仅能分配到使用相同实现语言的组件上。下图显示了使用VB Stand EXE 项目来实现的POS系统。可以看出,这个模型中与导入了几个COM 组件的类型库。COM component(COM:组件对象模型)是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。由此带来的好处是多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;可以在

4、多个应用系统中重复利用同一个组件;可以方便的将应用系统扩展到网络环境下;COM与语言,平台无关的特性使所有的程序员均可充分发挥自己的才智与专长编写组件模块。图 4 .2 (四) 组件视图组件视图是用组件图来描述的。一个组件视图显示了组件是如何通过依赖关系联系起来的。组件图也显示了被导入的构造型为“接口”的类的COM组件的接口。该图也描述了与Classics公司模型的POS系统组件包有关的组件。图中的一个部分表示了POS Client组件和Credit Services及Till Services COM 组件是有关系的。这两种COM组件的类型库已经引入到了模型中。在组件图中,可以看到Credi

5、t Services组件提供了一个名为IcreditCardAuthorization的接口。接口能通过在建模好的POS Client组件来实现。图 4 .3(五) 为何导入类库导入COM组件的类库到模型中,可以显示模型中的类是如何使用的,并且显示是如何依赖其他组件上的类 的,这些组件上的实现语言是无关的。l 可以通过显示模型中的类是如何示例、使用,与一个COM组件中的部件联系的方式重用COM组件。l 显示模型中的类是如何实现一个COM组件中的接口l 当详述属性和操作时,使用一个COM组件定义的数据类型。下图表示了ALT对象CProduct是如何实现Product coclass的默认接口的。

6、你能画出从coclass到它的默认接口的联系。当编译的时候,生成的代码会给出相同的结果。图 4 .4 (六) 部署视图部署视图显示了运行着的系统的不同的过程,以及它们是如何相关联的。部署视图在Rose浏览器中可以视为不同的节点。部署视图可以用一个独立的图来描述,这个图可以用双击浏览器中的部署视图节点来打开。下图显示了Classics公司系统的部分部署视图。正如你所看到的,一个Bar Code Reader设备,一个Credit Card Reader设备,一个Receipt Printer设备和POS Client过程连起来。同样,POS Client过程有一个相连的服务器。当生产VB或VC+

7、代码时,Rational Rose 没有使用部署视图。图 4 .5(七) Visual Studio 整合特性Rational Rose 在Visual Studio环境中被紧密地整合起来。因此可以生成骨架代码,改变源代码,就可利用代码的变化来更新模型,也可以利用模型的改变来更新代码。在模型和代码中转换的过程被称为双向工程。Rational Rose 为Microsoft Visual Studio应用的双向工程提供了下面所示的特性:l 组件任务工具l 代码更新工具l 模型助手l 类图导入器图 4 .6(八)组件任务工具组件任务工具为你提供一个容易使用的接口:l 创建模型中的新组件l 将类分配

8、到组件上l 将组件和Microsoft Visual Studio 项目联接起来上图显示了Classics公司模型的组件任务工具的内容。在POS Client组件被分配了8个模型元素。组件任务工具显示了在源代码中实现了的模型元素。例如,三个表单,frmLogon ,frmMain,frmPriceOverride,有VB表单图标。你可以通过拖住右边窗格中的类,放到左边窗格中的组件上,将类分配到组件上。(九)模型助手模型助手提供了用两种方法来创建模型中的VB和VC+的类的属性和操作。它同样让你定制从类代码的生成。利用模型助手可以:l 创建类中的属性和操作l 预览从类中生成的代码l 详述类的实现细

9、节模型助手显示了关于类的信息,以及类在源代码中的实现。模型助手将类规范中创立的每个UML元素都映射到相应的源代码元素。下图所示的模型助手表示了Classics公司模型中的POS交易类。 图 4 .7(十)代码跟新工具使用代码跟新工具,可以将模型中包含的信息转变为Microsoft Visual Studio源代码。代码跟新工具可以将模型中的组件及相应的VS项目转换为代码。代码跟新工具可以:l 在同一时间,生成和跟新使用不同语言进行实现的多个项目。l 预览每个类生成的代码l 利用打开的模型助手,进一步详述模型中的类和代码之间的映射。l 若发现重命名或删除了模型中任何的项目内容,保持模型和代码的一

10、致。图 4 .8(十)模型跟新工具使用模型跟新工具,可以使用MVS项目的反向工程来创建一个新的项目模型,或者使用修改了的代码来跟新一个已经存在的模型。模型跟新工具可以:l 同时跟新使用不同实现语言的多个组件。l 若发现在代码中重命名或删除了任何模型元素,要保持模型和源代码的同步。l 向模型中增加新的组件图 4 .9(十二)模型的入侵检测系统每一个已生成的代码项目在代码中都被附上一个模型标识(模型ID)。它允许代码项目通过实际名字和模型元素相匹配。例如,mQuantity属性的模型ID是ModelId=37C347220154。代码跟新工具和模型跟新工具都要使用模型ID来将模型和代码进行同步。模

11、型ID在双向工程中,对于代码的正确性来说,是必须具有的。不允许对已经添加的模型ID进行编辑。图 4 .10(十三)类库导入类库导入允许你导入一个COM组件的类库到模型中。也可以从Windows浏览器中拖动一个COM组件到Rational Rose中,还可以使用Tools->COM->Import Type Liberary命令。一个类库包含着从外部角度来观察的COM组件的描述。这个描述包括了组件的类,接口,文件信息服务程序接口,特性(UML中称为属性),方法(UML中称为操作),数据类型等等。为了给COM组件暴露的接口和数据类型提供中性语言描述,类库信息是必须的。此处 ,不说明一个

12、类库中不同种类的项目。在本次实验的最后,给出一下参考地址。图 4 .11(十四)简介 此处,可以尝试一个双向工程。下面的练习有两个部分,Visual C+(ATL)开发和VB开发。你可以只做一个。首先,在下面的开始处,你将被视为POS Server 项目团队的一元。该团队负责开发在服务器上运行的软件。在其他部分,你会被视为是POS Client项目团队的成员,该团队使用VB来实现允许在客户机上的软件。你开始开发的ATL Inventory 组件会在后面的部分使用到。图 4 .12(十五)VC+ 开发在你开始实验时,你就处于POS Server开发工作的早期循环中。POS Server给POS客

13、户机提供了共同服务。这些服务包括了信用卡认证,产品搜索,销售交易记录,基本现金管理功能。大多数的服务是由运行在服务器上COM对象来提供的,这些服务也管理存储数据库。客户应用使用DCOM来使用服务器组件,因此对于客户机而言,无需使用特别的编码来使服务器组件可见。下面的实验是使你能了解导入类库和创建一个基于模型中接口的实现的ATL的过程。ATL,Active Template Library活动模板库,是一种微软程序库,支持利用C+语言编写ASP代码以及其它ActiveX程序。通过活动模板库,可以建立COM组件,然后通过ASP页面中的脚本对COM对象进行调用。这种COM组件可以包含属性页、对话框等

14、等控件。在这个实验中,你要VC+ IDE来创建一个新对象,并利用逆向工程来生成模型。三、 实验步骤1、 注册DLL(动态链接库)Classics公司应用是依赖于共同组件(DLLs)的,这个共同的组件要你允许应用程序前注册。2、 定义虚拟路径映射Classics公司模型包含着对能够实现已建立好模型的系统的vc+项目的引用,Rational Rose 利用虚拟文件路径来保存这些引用。这些引用依赖于你在自己计算机上安装示例的位置。你必须定义一个虚拟路径映射,文件能映射到源代码所在位置的实际路径。 3、导入一个DLLClassics公司应用程序依赖一些存在的组件。使用组件的种种优点直接来源于可以将它们

15、动态的插入或卸出应用。为了实现这种功能,所有的组件必须满足两个条件:第一,组件必须动态链接;第二,它们必须隐藏(或封装)其内部实现细节。动态链接对于组件而言是一个至关重要的要求,而消息隐藏则是动态链接的一个必要条件。为了显示应用程序是如何使用这些DLLs的,这些DLLs必须导入到模型中来。以SalesServices.dll为例,给出导入步骤:4、检查导入的DLLs 此处,重新查看已导入的DLL,并在模型中组织其内容。5、实现接口 在Rose VC+中实现接口是一个在Rose VC+和VS VC+之间相互影响的过程。Vc+的IDE是Integrated Development Environm

16、ent.IDL是接口描述语言6、创建ATL组件和项目 以下的步骤是用模型跟新工具创建了IProduct和IProductInventory接口的新的ATL组件,(使用新的ATL组件能保持模型的同步)。7、修改IDL(interface definition language)文件 因为Rose VC+没有在IDL文件中事先声明,文件必须手工修改。8、将接口转换为简单的ATL对象l From Rose Visual C+, right-click on the IProduct interface and click COM -> New ATL Object. l In the Component drop-down box, select InventoryServices (this should be the only option available). >Click OK. l Repeat this process for the IProductInventory interface.l In the Rose browser component view, drag an

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论