UML学习个人总结――ROSE使用_第1页
UML学习个人总结――ROSE使用_第2页
UML学习个人总结――ROSE使用_第3页
UML学习个人总结――ROSE使用_第4页
UML学习个人总结――ROSE使用_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、Rational Rose使用一、几种UML工具汇总。目前市场上UML工具比较多,我们将列出比较有影响力的UML工具。Rational Rose: 如果不提及由Rational软件公司开发的Rational Rose建模工具,那就无需考虑UML工具的完整性。Rational Rose(Rose代表“Rational Object-oriented Software Engineering”对UML来说,是一款可视化的建模工具。它有不同的版本来满足不同的需求。Rational Rose提供上面我们谈到所有的特征。除此之外,Rational Rose也可以支持在同样的环境下进行数据模型的设计。Ra

2、tional Rose更有趣的特征就是能够将UML中的图作为网页和图片发布。这就使得你能够在不安装Rational Rose的情况下分享你的应用设计。Together Control Center:由美国的Borland 公司开发的Together Control Center(源于Togethersoft是一款可视化的UML建模工具。Together Control Center支持UML图、MVC 建模、正向工程技术和自动更新工程技术,以及双向工程技术,并且可以集成到比如IBM WebSphere Studio的集成开发环境。它不但支持文档编制,并且可以支持协作建模环境。Together

3、Control Center的另一个特征是pattern repository。pattern repository使得经常使用的图和设计形式能够在建模中重新使用。它还支持Rational软件统一开发过程和极限编程方法等。Poseidon:源于Gentleware的Poseidon在ArgoUML开源软件中有其坚固的根基。作为开源的ArgoUML建模工具是一款实用的工具,包含全部UML特征的并且可以免费获得。Gentleware已经采取措施使得ArgoUML成为一款很好的建模工具。使用Poseidon不同的格调来满足不同的需求。Poseidon通过使用单一用途的插件来支持正向技术和自动更新技术

4、以及文档编制。Gentleware并没有忘记它的开源的特性,因此,为个人软件开发者免费提供UML Community Edition 1.5的Poseidon。二、Rational Rose工具介绍与使用。Rational Rose 是一种面向对象的统一建模语言软件设计工具,用于可视化建模和公司级水平软件应用的组件构造。就像一个戏剧导演设计一个剧本一样,一个软件设计师使用Rational Rose,以演员(数字、使用拖放式符号的程序表中的有用的案例元素(椭圆、目标(矩形和消息/关系(箭头设计个种类,来创造(模型一个应用的框架。当程序表被创建时,Rational Rose记录下这个程序表然后以设

5、计师选择的C+, Visual Basic, Java, Oracle8, CORBA或者数据定义语言(Data Definition Language来产生代码。Rational Rose 的两个受欢迎的特征是它的提供反复式发展和来回旅程工程的能力。Rational Rose允许设计师利用反复发展(有时也叫进化式发展,因为在各个进程中新的应用能够被创建,通过把一个反复的输出变成下一个反复的输入。(这和瀑布式发展形成对比,在瀑布式发展中,在一个用户开始尝试之前整个工程被从头到尾的完成。然后,当开发者开始理解组件之间是如何相互作用和在设计中进行调整时,Rational Rose能够通过回溯和更新

6、模型的其余部分来保证代码的一致性,从而展现出被称为"来回旅程工程"的能力.Rational Rose是可扩展的,可以使用刻下载附加项和第三方应用软件.它支持COM/DCOM (ActiveX, JavaBeans, 和Corba组件标准.Rational Rose界面图:Rose支持的模型图 静态结构建模描述系统中的物理结构部署图Deployment diagram静态结构建模描述代码构件的物理结构以及构件之间的依赖关系。组件图有助于分析和理解组件之间的影响程度构件图Component diagram动态行为建模描述满足用例要求所需进行的活动以及活动间的关系的图活动图Act

7、ivity diagram动态行为建模显示系统中类的对象所有可能的状态以及事件发生时状态的转换条件状态图Statechart diagram动态行为建模按时间顺序显示用例中特定情形的操作流程顺序图Sequence diagram动态行为建模从对象组织结构的角度显示用例中特定情形的操作流程协作图Collaborationdiagram系统功能建模用例图从用户的角度描述系统功能的使用者和主要的系统操作流程。显示用例与参与者及其相互关系用例图Use-case diagram静态结构建模显示系统中的类和包,提供系统构件及其相互关系类图Class diagram建模角度描述图标模型图 三、使用案例网上选

8、课系统主要包括如下功能:管理员通过管理界面进入,建立本学期要开的各种课程、将课程信息保存在数据库里并可以对课程进行改动和删除。学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行三种操作:查询已选课程、选课以及付费。同样,通过业务层,这些操作结果存入数据库中。本系统拟使用Java语言通过三层模型实现:数据核心层,业务逻辑层和接入层。其中,数据核心层包括对于数据库的操作;业务逻辑层作为中间层对用户输入进行逻辑处理、再映射到相应的数据层操作;而接口层包括用户界面,包括系统登入界面、管理界面、用户选课界面等。本系统涉及的用户包括管理员(Registrar和学生(Student,他们是用

9、例图中的活动。数据库管理系统是另外一个活动者。注:因为付费方式的多样化,所以在此将不讨论涉及到付费有关的设计。添加课程事件流:1.管理员选择进入管理界面,用例开始。2.系统提示输入管理员密码。3.管理员输入密码。4.系统验证密码。A1:密码错误5.进入管理界面,系统显示目前所建立的全部课程信息。6.管理员选择添加课程。7.系统提示输入新课程信息。8.管理员输入信息。9.系统验证是否和已有课程冲突。A2:有冲突10.系统添加新课程,提示课程添加成功。11.系统重新进入管理主界面,显示所有课程。12.用例结束。其他事件流:A1:密码错误1.系统提示再次输入。2.用户确认。3.三次错误,拒绝再次访问

10、。4.否则进入添加课程事件流第5步。A2:有冲突1.系统提示冲突,显示冲突课程信息。2.用户重新输入。3.继续验证直到无冲突。4.进入添加课程事件流第10步。注:删除课程事件流和修改课程事件流与此类似,在此不再详述。选课事件流:1.学生进入选课登入界面,用例开始.2.系统提示输入学号和密码.3.学生输入学号密码.4.系统验证:A1;验证失败。5、进入选课主界面。6、学生点击选课。7、系统显示所有课程信息。8、学生选择课程。9、系统验证课程是否可选。A2:不可选。10、系统提示课程选择成功,提示学生交费。11、用例结束。错误流:A1:验证失败1.系统提示验证失败,提示重新输入。2.三次失败,拒绝

11、访问。3.成功,转选课事件流第5步。A2:不可选1.系统提示不可选及原因。2.学生重新选课。3.重新验证直至成功。4.转选课事件流死10步。注:查询事件流比较简单,在此不详述。点击浏览器中的Use Case View中的Main,弹出用例图窗口,添加用例如下图: 活动者包括:People , Registrar , Student ,Database.其中Registrar和People之间是概括(generalization关系, Student和People之间也是概括(generalization关系。用例包括:Select Course , Query Course , Pay for

12、 Course ,Add Course ,Modify Course , Delete Course.在用例图中分析了各个用例的事件流,故在此不在叙述。根据用例里的事件流描述,得到各个用例的活动图。1.2.1 Add Course 活动图在浏览器中,使用鼠标右键点击Use Case View,在弹出的菜单里选择“New”“Activity Diagram”,则在Use Case View 中添加一项”State/Activity Model” ,该项产生一个名为“New Diagram”的活动图,将其改为“Add Course”.Add Course 活动图如下: 分成三个泳道:用户接口,业务

13、逻辑接口,数据库接口。1.2.2 Delete Course 活动图在浏览器中,使用鼠标右键点击”State/Activity Model”,在弹出的菜单里选择“New”“Activity Diagram”,该项产生一个名为“New Diagram”的活动图,将其改为“Delete Course”.Delete Course 活动图如下: 同样分成三个泳道:用户接口,业务逻辑接口,数据库接口。1.2.3 Modify Course 活动图在浏览器中,使用鼠标右键点击”State/Activity Model”,在弹出的菜单里选择“New”“Activity Diagram”,该项产生一个名为“

14、New Diagram”的活动图,将其改为“Modify Course”.Modify Course 活动图如下: 1.2.4 Query Course 活动图在浏览器中,使用鼠标右键点击”State/Activity Model”,在弹出的菜单里选择“New”“Activity Diagram”,该项产生一个名为“New Diagram”的活动图,将其改为“Query Course”.Query Course 活动图如下: 1.2.5 Select Course 活动图在浏览器中,使用鼠标右键点击”State/Activity Model”,在弹出的菜单里选择“New”“Activity D

15、iagram”,该项产生一个名为“New Diagram”的活动图,将其改为“Select Course”.Select Course 活动图如下: 序列图主要由活动者(actor、对象(object、消息(message、生命线(lifeline和控制焦点(focus of control组成。1.3.1 Select Course 序列图与协作图查找Select Course用例的对象,包括有:界面课程对于业务层的操作,也应该有对象进行处理。事件流中设计的角色有:学生、数据库。分析对象角色之间交互的消息,本用例主要有以下交互:1.学生通过界面发送选课命令。2.界面向控制对象请求课程信息。3

16、.控制对象向数据库发送查询数据消息。4.控制对象暂存数据库的查询结果。5.界面对象从控制对象中取得所有的课程信息。6.在界面上显示所有的课程信息。7.界面对象发送命令要求控制对象删除课程信息。8.学生选择课程。9.界面对象要求学生输入学好。10.界面对象向控制对象发送信息,查询该学生是否可以选择选定的课程。11.控制对象从数据库中查询关联信息。12.控制对象判断是否可以选课。13.如果可以选课,则向数据库中添加关联信息。14.向界面对象返回信息。根据以上分析,整理的最终Select Course序列图如下: s t a b a s ei n t,i n tt,i n t选择Select Cou

17、rse 序列图,按“F5”可以直接生成Select Course的协作图,如下: 1.3.2 Add Course 序列图与协作图查找Add Course用例的对象,包括有:界面课程对于业务层的操作,也应该有对象进行处理。事件流中设计的角色有:管理员、数据库。分析对象角色之间交互的消息,本用例主要有以下交互:1.管理员进入管理界面,选择添加课程功能。2.界面提示用户输入课程信息。3.界面对象创建一个课程对象。4.通过控制对象来对课程信息进行合法性检查。5.控制对象向课程对象返回结果。6.控制对象向数据库查询课程相关信息。7.控制对象对查询结果进行判断。8.控制对象向数据库中插入数据。9.在界面

18、上显示结果。10.控制对象撤消建立的课程对象。根据以上分析,整理的最终Add Course序列图如下: 选择Add Course 序列图,按“F5”可以直接生成Add Course的协作图,如下: 1.3.3Modify Course 序列图与协作图采用同样的方法分析,Modify Course序列图如下: 选择Modify Course 序列图,按“F5”可以直接生成Modify Course的协作图,如下: 1.3.4Delete Course 序列图和协作图删除课程的过程,涉及的对象有:管理员界面控制对象数据库这些对象的交互如下:1.管理员输入待删除的课程信息(IID等。2.界面对象将信

19、息发送给控制对象。3.控制对象查询课程信息是否有效。4.控制对象向界面返回信息,如果课程信息有效,则要求界面提示管理员确认删除。5.管理员确认删除课程。6.界面将确认删除的信息发送给控制对象。7.控制对象将确认删除对象的信息发送给数据库。8.数据库实施删除,并将结果返回过控制对象。9.控制对象将结果返回给界面。Delete Course序列图如下: 选择Delete Course,按“F5“可以直接生成Delete Course的协作图,如下: 1.3.5Delete Course 序列图和协作图Query Course序列图,如下: 选择Query Course,按“F5“可以直接生成Que

20、ry Course的协作图,如下: 1.3.6Registrar Login序列图和协作图管理员要对课程信息进行更改时,要输入用户名和密码,以确保其拥有相应的权限。事件流如下:1.系统提示管理员输入用户名和密码。2.管理员输入用户名和密码。3.系统检查用户名和密码的合法性。4.将检查结果返回给用户。查找Registrar Login用例的对象,从事件流中发现涉及以下对象:界面控制对象数据库事件流中设计的角色有:管理员、数据库。分析对象、角色之间交互的消息,主要有以下交互:1.界面对象提示用户输入注册信息。2.用户输入注册信息。3.界面将注册信息提交给控制对象。4.控制对象到数据库中查询注册信息

21、。5.控制对象判断注册信息是否合法。6.控制对象将检查结果返回到界面对象。7.界面对象显示结果。根据以上分析,最终的Registrar Login序列图,如下: 选择Registrar Login, 按“F5”可以直接生成Registrar Login的协作图,如下: 1.4. 1类的创建通过对本系统的分析可以抽象出7个类:P eople (Student和R egistrar的基类、S tudent(学生类、Registrar(管理员类、F ormObject(界面类、C ourse(课程类 、ControlObject(控制对象类、DataBase(数据库类。P eople主要有以下属性和

22、操作:姓名(name年龄(age查询姓名(getname设置姓名(setname查询年龄(getage设置年龄(setageRegistrar(管理员类主要有以下属性和操作:管理员编号(regID初始化(构造函数(registrar查询管理员信息(getregistrar设置管理员编号(setregID查询管理员编号(getregIDStudent(学生类主要有以下属性和操作:学号(studentID初始化(构造函数(student查询对象学号(getstudentID设置对象学号(setstudentIDDataBase(数据库类主要有以下属性和操作:连接的数据库名称(位置(dbpath查询

23、课程(Querycourse添加课程(Addcourse删除课程(Deletecourse查询所有的课程(Q uerycourse查询关联(Queryassociation添加关联(Addassociation查询选择的课程信息(Queryselectcourse查询密码(QuerypassWD取得数据库名称(getDBpath设置数据库名称(setDBpath打开数据库(OpenDBControlObject(控制对象类主要有以下属性和操作:验证课程的合法性(verifycourse判断能不能添加指定的课程(canadd判断能不能修改指定的课程(canmodify通过ID查询课程(Query

24、coursebyID确认删除(confirmDelete查询所有的课程(getallcourse查询关联(queryassociation判断是不是能选择(canselect查询课程列表(QuerycourseList验证管理员的合法性(Verifyregistrar检查密码(checkpassWD构造函数(conttrolObjectC ourse(课程类主要有以下属性和操作:课程名称(name开课教室(classroom课程号(courseID授课教师(teacher选课的学生(students开课起始时间(firstlessondate允许选课的学生人数(maxstudents设置课程名

25、称(setname设置开课教室(setclassroom设置课程号(setcourseID设置授课教师信息(setteacher设置开课起始时间(setfirstlessondate设置允许选课的学生人数(setmaxstudents查询课程名称(getname查询开课教室(getclassroom查询课程号(getcourseID查询授课教师信息(getteacher查询开课起始时间(getfirstlessondate查询允许选课的学生人数(getmaxstudentsF ormObject(界面类 主要有以下属性和操作:查询课程信息(getcourseInfo显示选课成功信息(shows

26、uccessInfo查询课程编号(getcourseID显示确认页(showconfirmpage确认删除(confirmdelete选择命令(selectcommand显示课程列表(displaycourseList查询选择的课程(Queryselectcourse构造函数(FormObject1.4. 2类图的建立最后详细的类图,如下: 分析一个课程类(对象(C ourse的状态变化过程课程对象被创建,添加到数据库中。管理员可以删除、修改课程信息,在某个学期开设该课程,如果选修人数超过指定人数,就不再允许学会选这门课。学期结束,课程的状态结束。在浏览器中选择“Logical View”,按

27、下鼠标右键,在弹出的菜单里选择“N ew”,再选择“State Diagram”,创建一个新的状态图。同时将名字改成“C ourse”,如图: 在选课系统中,包括MainProgram类(主程序、People类、C ontrolObject类、Student类、Registrar 类、Course类和D ataBase类。其中,People类是Student类和R egistrar类的基类,所以Student类和R egistrar类依赖People类。F ormObject类和C ontrol O bject类都和Course类相关,FormObject类和C ontrolObject类依赖

28、C ourse类。C ontrolObject类和DataBase类相关,ControlObject类依赖DataBase类。在浏览器中选择“C omponent View”,按下鼠标右键,在弹出的菜单里选择“N ew”,再选择“Component”,创建一个新的组件。如图: (其中各个组件的创建,不再做详细的叙述分析该系统大致在服务器端使用了二台主机,一台做为数据库服务器,使用了O racle服务器。另一台是同一局域网上的机器,作为HTTP服务器,上面运行了HTTP服务器进程以及业务逻辑,同时还连接了打印机。在浏览器中选择“Deployment View”,建立部署图,如下: rose帮助位

29、于HELP>>CONTENTS>>ROSE JA V A>>HOW TO >>FORW ARD ENGINEER FROM ROSE TO JA V A SOURCE1、打开你要专化的目标diagram2、选择你要转化的包或者类3、单击tools>java/j2ee> Syntax Check 来检查目标代码是否符合规范,比如命名错误。4、察看rose log窗口(下方察看检验结果,如果有错误,即errors那么生成的代码很可能无法通过编译5、根据需要校正这些组件或者图(Correct the components as needed

30、.6、复步骤3直到检验不出错误,然后你就可以进入下一步了(Generating Java Source froma Component Diagram假设以上步骤已经搞定了error7、选择你要转化的包或者类8、单击Tools > Java/J2EE > Generate Code一般来说如果你还没有将一个package或者组件映射到一个rose的classpath目录中(就是指定生成的东西放哪里,那么系统不会允许你在接下来的界面里点ok,那么现在就编辑目标路径9、点classpath entries下的edit按钮,再出现的界面右上角找new(insert(删除左边那个,然后在列

31、表里新增的行里选择目标路径,你可以选择目标是生成一个zip,jar,还是一个目录,我们选择目录。指定目录,ok,那么你选择的路径就新建成功了,选择这个路径,点ok回到界面10、现在你看到classpath entries里有东西了,选择右侧列表里你要转换的包或者组件,点assign,即分配给目标classpth,理论上你可以把选择好的包组件或者类图分别分配个多个classptah对象。点ok开始生成11、成功后就可以到指定的classpath下看代码了,生成的代码之间拥有如类图所示的关系。反向工程就是通过java代码生成或者更新一个模型的过程。rose帮助位于HELP>>CONTENTS>&g

温馨提示

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

评论

0/150

提交评论