常用管理信息系统开发工具
本章主要内容 本章主要就管理信息系统开发过程应用到的常用工具结合实例进行了介绍,包括Visio、Access、Rational Rose 2003。 学习目标 能够熟练、灵活运用各种工具 能够综合运用前面章节所学知识进行管理信息系统开发
1 Visio图表开发工具 2 ACCESS数据库开发工具 3 UML建模工具 4 Rational Rose需求分析工具
1 Visio图表开发工具 Visio是由Microsoft推出的一种配有一整套范围广泛的模板、形状和先进工具绘图环境,利用Visio可以轻松自如地创建各式各样的业务图表和技术图表。Microsoft Office Visio 2003提供的模板、形状和绘图工具可用于创建有效的业务图表和技术图表来分析业务流程、安排项目日程、形象地表达思维过程以及绘制组织结构图。
1.1 认识Visio环境 在Visio环境下通过打开一个模板来开始创建 Microsoft Office Visio 图表。初次运Visio,可以看到如图1所示工作环境,通过单击某一类别的模板,查看具体的模板的缩略图(如图2所示),选择某一具体模板后,在绘图页的左侧打开一个或多个模具。模具包含创建图表所需的形状。 例如,打开流程图模板时,它打开一个绘图页和包含流程图形状的模具(如图3所示)。模板还包含用于创建流程图的工具(例如为形状编号的工具)以及适当的样式(例如箭头)。
图1 Visio工作环境
图2 Visio模板类别
Visio 绘图环境包括菜单、工具栏、包含形状的模具、绘图页和位于绘图页右侧的任务窗格。绘图页用于创建绘图,所创建的绘图表示打印页面,并包含帮助调整形状位置的网格。使用任务窗格可以在工作或与其他小组成员协作时快速访问各种类型的信息。Visio 菜单和工具栏与其他 Microsoft Office 系统程序中的菜单和工具栏类似,可以用来打开、打印和保存图表。
图3 Visio 绘图环境
需要快速阐明想法,但不知道如何进行的时候,可以使用图示库。只需单击“帮助”下拉菜单中选取“图示库”即可单击目录中的某个图表类型,开始浏览通过 Visio 模板创建的图表集合,如图10.4所示。
1.2 Visio的文件格式 Visio的文件格式主要有下列三种 绘图文件(*.vsd):用来储存绘制好的图表,可以包含多个绘图页面及所使用之样板。 样版档(*.vss):用来储存各种图件的文件格式 范本文件(*.vst):可以将绘图档与开启的样板一起储存,并事先作好环境设定
1.3 Visio的基本操作 1. 放大和缩小绘图页 2. 移动形状 3.调整形状的大小 4.添加文本 5.连接形状
例1:利用“连接线”工具实现如图5所示的两个“进程”形状的连接。
绘制步骤如下: (1)新建文件:选择“文件→新建→组织结构图→组织结构图”; (2)添加形状:将“总经理”形状拖到绘图页上,将鼠标停放在“经理”形状上,会出现如图6(b)所示的提示“拖到绘图页上,然后直接置于该职位的上级形状上”,根据提示拖动两个“经理”形状放到“总经理”图形上……,再拖动3个“职位”图件到到“经理”图形上,如图6(c)所示;
图 6(c) 添加形状布局 图6(b) “经理”形状提示
图6(d) 设置形状文本格式
图6(e) 文本设置对话框
(3)布局排版:单击“组织结构图”工具栏中的:重新布局、水平布局、垂直布局、调整布局、增大图形间间距(组织结构图→更改间距); 图6(f) 形状布局效果图 (4)文字排版:给图形添加文字并进行排版、定义线条颜色 (5)颜色调整:为不同图形填充颜色(最终效果图如图6(a)所示)
2 ACCESS数据库开发工具 数据库是长期存储在计算机内的可共享的信息的集合,这种集合与特定的主题或目标相联系,例如,所有对学生信息管理的信息集合。下面我们以实例介绍如何利用Access创建一个学生选课的数据库。
例4 用Access创建一个学生选课的数据库,在该数据库中包含了学生信息表,课程信息表,以及选课表。 1.创建数据库 图7(a) 保存新建的数据库
2.创建数据表:保存数据库后我们看到的是如图7(b)所示的界面,双击使用设计器创建表,开始创建一个数据表。 图7(b) 新建的db_student数据库
接下来我们设计一个学生信息表。双击 使用设计器创建表,打开设计界面。在字段名称一栏中填入需要描述学生的信息的字段名,(字段名最好不要用中文来命名,这样以后编程的时候不会有太多麻烦,同时也要注意不要用数据库的保留字,比如temp,这样的话和数据库程序会有冲突,尽量用表名+下滑线+名称的方式来命名,
图7(c) 数据库表设计器
在数据库表设计器窗口的下方的常规选项卡可以对各字段进行进一步的设置,比如修改sno学号字段文本长度为10,设置birth出生日期字段输入掩码为短日期格式“####/##/##”如图7(d)所示。
修改完毕之后,点击工具栏上的保存图表保存我们的新创建的表,如图7(e)所示,点击确定保存后会跳出一个警告对话框,告诉你表尚未定义主键。没有主键的话就不能确定这记录在表中没有唯一的标识,点击“是”,创建主键,我们选择学号作为主键,创建完毕后,学号字段旁边会有一个钥匙形的图标出现,作为主键的属性取值是不能有重复值出现,也不能为空。点击“否”可以以后再创建主键。创建时只要选中作为主键的属性,在工具栏上点击 图标即可。
3. 录入数据:创建完成student表后,可以看到如图10 3 .录入数据:创建完成student表后,可以看到如图10.7(g)所示的student表文件出现在数据库中,双击打开即可录入数据,如图10.7(h)所示。
在录入OLE对象的数据时,只需点击菜单“插入->对象”在弹出的窗口中选择由文件创建,并使用浏览按钮可以确定对应的学生的图片文件路径即可,如图7(i)所示。
4.建立表之间的关系 首先单击“工具”菜单下的“关系”命令,弹出“关系”对话框,上面还有一个“显示表”对话框如下图,通过“显示表”对话框可以把需要建立关系的“表”或“查询”加到“关系”对话框中去,如图7(j)所示:
将三个表“Student”,“Course”和“SC”都选中,单击“添加”按钮把它们都添加到“关系”对话框上,如图7(k)所示,单击“关闭”按钮把“显示表”对话框关闭。以后再需要打开它时,只要在“关系”对话框上单击鼠标右键,选择“显示表”命令就可以了。
这个对话框可以帮助我们编辑所建立的关系,通过左面的列表框可以改变建立关系的两个字段的来源。可以单击“新建...”按钮创建新的关系,或者单击“联接类型”为联接选择一种联接类型。
3 UML建模工具 UML(Unified Modeling Language)又称统一建模语言或标准建模语言,是始于1997年的一个OMG(Object Management Group)标准,它是一个支持模型化和软件系统开发的图形化语言,它使用面向对象的概念进行系统建模的一组表示方法;能够对软件开发所有阶段提供模型化和可视化的支持。 作为一种建模语言,UML的定义包括UML语义和UML表示法两部分。 (1)UML语义:描述基于UML的精确元模型定义元模型为UML的所有元素在语法和语义上提过了简单、一致、通用的定义性说明,使开发人员能在语义上取得一致的理解。 (2)UML表示法:定义UML符号的表示法,为开发人员提供了使用这些图形符号和文本语法实现系统的建模标准。
标准建模语言UML的重要内容可以由图8所示:
3.1 用例图 用例图是从用户角度描述系统功能,并指出各功能的执行者。在UML中用例(Use case)表示为一个椭圆。图9显示了一个学生选课系统的用例图。其中选课“Select Course”,查询课程“Query Course”,添加课程“Add Course”,修改课程“Modify Course”以及删除课程“Delete Course”都是用例的实例。概括地说,用例具备如下特点: 用例捕获某些用户可见的需求,实现一个具体的用户目标; 用例由操作者,并为操作者提供具体的值; 用例可大可小,但必须是对一个具体用户的目标实现的完整描述。 在UML中执行者(Actor)表示为一个 “人形”图标,是指用户在系统中所扮演的角色,图9中有两个执行者,用户“User”、学生“Student”、管理员“Adimin”和数据库“Database”。需要指出的是执行者在用例图中用人形图表示,但执行者未必是人,例如图9中的“Database”。
UML中多个执行者之间的联系使用泛化关系描述,(一个带有空心三角的箭头)这种联系实际上也就是类与类之间的关系,如图9中的Student和Administrator与User之间的联系,箭头指向User,说明User是超类。 UML中与用例相关的联系可以使用四种方式:泛化关系、关联关系、包含关系和扩展关系。 1、泛化关系:一个用例可以被列举为一个或多个用例,称为用例泛化。当父用例被使用时,任何子用例也可以使用。使用一个带有空心三角的箭头由子用例指向父用例。如图10所示
2、关联关系 执行者与用例之间可以使用关联关系描述,用单向箭头表示,表示执行者与用例之间的通信,执行者触发用例,并与用例进行信息交换。一个执行者可以与多个用例关联,如Student既可以使用用例“Select Course”也使用了用例“Query Course”。反过来一个用例也可一有多个执行者,对于同一个用例,不同的执行者可以通过该用例得到目的不同的取值。 3、包含关系:对于一个复杂的用例可以用其他更简单的用例来描述,也就是说一个用例可以包含其他用例具有的行为,并把它所包含的用例的行为作为自身的一部分,称之为包含关系。这类似于创建一个新类时可以通过继承父类并附加描述来实现。在UML中包含关系使用虚线箭头加<<include>>字样表示,箭头指向的是被包含用例,如图11所示。
4、扩展关系:一个用例被定义为基础用例的增量扩展,这样通过扩展关系就可以把新的行为插入到已有用例中。在UML中包含关系使用虚线箭头加<<extend>>字样表示,箭头指向的是被扩展的用例,如图12所示。
3.2 静态图 静态图包括类图、对象图和包图。其中类图描述系统中类的静态结构,不仅定义系统中包含的类,类之间的联系(关联、依赖、聚合等),还包括类的内部结构(类的属性和操作),如图13显示了某公司的类图,包括Company和Department两个类。
对象图是类的实例,几乎与类图完全相同的标识。他们的不同的在于对象图只是在系统的某一时间段存在,显示某时刻对象和对象之间的关系。对于对象图来说无需提供单独的形式。类图中就包含了对象,所以只有对象而无类的类图就是一个"对象图"。如图14显示了一个公司部门的实例图,从图中可以看出d1和d2都是类Department的实例,即对象,两个对象的name属性取值为分别为Sales和R&D。
包图用于描述系统的分层结构,由包和类组成。对大型系统进行建模时,经常需要处理大量的类、接口、构件、节点和图,只是就有必要对这些元素进行分组,把语义相近的并且倾向于一起变化的元素组织起来加入同一个包,这样方便理解和处理整个模型。 包的作用不仅仅为模型元素分组,它还为所用有的模型元素构成一个命名空间,这也意味着一个模型包内各个同类建模元素不能具有相同的名字,不同的模型包内的各个建模元素可以具有相同的名字。图15显示了一个包括了学生选课系统中的一个用户的包。
3.3 行为图 行为图是描述系统动态模型和组成对象间的交互关系。包括状态图和活动图(State /Activity Diagram),其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常状态图是对类图的补充,使用时并不需要对所有类画状态图,仅需要对那些有多个状态并且其行为受外界环境影响并发生改变的类画状态图。活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。 状态图是一个状态和转换的图,描述了某类的实例对事件接收的响应。在对象或者其他实例的状态图的活动状态配置里,在任何时候都存在一个或者多个活动的状态。如果一个状态是活动的,离开这个状态的转换可能会激发另一个动作的执行,使得一个状态代替原来的状态。状态图在某一时刻处理某个事件而在处理另外的事件之前必须完成这个事件的结果。也就是说,事件处理过程中,事件之间不能相互作用。
图16表示学生选课系统中课程的状态图。课程根据需要被创建后,如果要添加课程,要将其加入到数据库中,所以转移至”In Database”状态,在有修改、删除等监护条件发生时,分别转移至被修改”Modified” 和被删除”Deleted”状态,在发生选课时,要根据数据库中的已经选课的人数作为监护条件,只有学生选课人数没有超过最大选课人数值时可以安排选课进入“In Schedule”状态,如果选课学生人数已经达到最大选课人数则进入“locked”状态,由被修改、被删除或被锁定状态可进入结束状态。
活动图是状态图的一个特殊例子,在该状态图中所有的或大部分的状态都是活动状态或动作状态,所有或大部分的转换由源状态中活动的完成所触发。活动图表示一个程序或工作流。 活动图是强调计算过程中顺序的和并发步骤的状态图。活动图通常出现在设计的前期,即在所有实现决定前出现,特别是在对象被指定执行所有活动前。在活动图中状态代表活动的执行,就像一个计算或真实世界不间断的操作,而转换由操作的完成触发。活动图可以附属于操作和用例的实现。 在活动图中状态主要是活动状态或动作状态。活动状态是某种状态的速记,该状态有内部计算和至少一个输出完成转换,该转换由状态内活动的完成来激发。如果转换有监护条件,那么可以有多个输出转换。动作状态是原子状态,即它们不会被转换中断。 通常,活动状态用于对这一个过程的某个执行步骤建模。如果模型中的所有状态都是活动状态,那么计算的结果不会依赖于外部事件。如果并发活动不访问同一个对象且并发活动的相对完成时间不影响结果,那么计算过程是确定的。 活动图中的活动可以依照不同的准则划分为几组。每个组代表活动职责的一些有意义的部分,每个组被称作泳道。泳道是活动图的内容的组织单元。它没有内在的语义,但可以根据建模者的意愿使用。通常,每个泳道代表真实世界组织内的一个组织单元。
图17显示了学生选课系统中的添加课程的活动图,用户首先要输入要添加的课程信息,软后通过验证课程信息,再进一步创建一个用于完成添加的课程对象,然后查询数据库中查询该课程,判断是否已存在,如果存在提示重新输入,否则可以完成在数据库添加,添加完毕后还要判断是否添加成功,根据成功与否给出提示,结束。该图由泳道(Swimline)分成了三个组分别为用户接口、业务逻辑接口和数据库接口,用户在用户接口完成输入添加课程的信息,并且接收是否添加成功的信息提示;在业务逻辑接口主要完成业务逻辑的处理,包括验证课程、创建课程对象、判断课程是否存在、添加是否成功等;数据库接口中完成查询、添加。
3.4 交互图 交互图中表示对象之间交互的方式。包括合作图和顺序图,二者与活动图密切相关。顺序图表示按时间排序的交互,着重表现参与交互对象的生命线和它们交换的信息。顺序图不表示对象之间的链接。根据目的不同,顺序图有不同的形式。合作图表示执行操作的对象间的交互。它类似于对象图,表示了实现高层操作所需的对象和它们之间的链接。 信息的时间顺序用信息流箭头上的序号表示。顺序图中用箭头的几何顺序代表时间顺序,因此不用序号。合作图中必须使用顺序号来判断消息的顺序以及并行线程。顺序图和合作图表达的是类似的信息,但使用不同的方法表示。有时在顺序图中使用序号是为了方便,或为了允许切换到合作图。顺序图和合作图用不同的方式表示了类似的信息。顺序图表示信息的确切次序,更适合于实时说明和复杂的情形。 顺序图具有两个方向:垂直方向代表时间;水平方向代表参与相互作用的对象(见图18)。通常,时间沿页面向下延伸(如果需要,坐标轴也可以反转)。通常只有消息的顺序是重要的,但是在实时应用中,时间轴可以是一个实际的测量。对象的水平次序没有重要意义。
每个对象显示在单独的列里。一个对象符号(带有对象名称的矩形框)放置在代表生成这个对象的消息的箭头的末端,其垂直位置表示这个对象第一次生成的时间。如果一个对象在图的第一个操作之前就存在,对象符号就画在任何消息之前处在图的顶部。从对象符号画一条虚线到对象销毁的那一点(如果销毁发生在概图表示的范围内)。这条线称为生命线。一个大的X放在对象停止存在的那一点,即,或者放在表示销毁对象的消息的箭头的头部,或者放在对象自己销毁的那一点。对于对象活动的任何阶段,生命线加粗到两倍的实心线。这包括主动对象的整个生命和被动对象的激活——对象的某个操作执行的阶段,包括这个操作等待它所调用的操作返回的时间。如果这个操作直接或间接的递归调用它自己,另一条两倍实心线覆盖在它上面以表示双重激活(可以是多于两个)。对象的相对次序没有重要意义,尽管合理的安排它们以使消息箭头所覆盖的距离最小是有帮助的。对激活的注释可以放在附近的空白处。 每个消息显示为一个从发送消息的对象的生命线到接收消息的对象的生命线的水平箭头。在箭头相对的空白处放置一个标号以表示消息被发送的时间。在许多模型中,消息被认为是瞬时的,至少是原子的。如果一条消息需要一定的时间才能到达,消息箭头就应该对角的向下画以使接收时间晚于发送时间。两端都可以有标号来表示消息接收或者发送的时间。
合作图表示对象之间的关系;更适合于理解对象的全部作用和过程设计。表示角色间交互的视图,即合作中实例及其链的位置。与顺序图不同,合作图明确的表示了角色之间的关系。另一方面,合作图也不将时间作为单独的维来表示,所以必须使用顺序号来判断消息的顺序以及并行线程。顺序图和合作图表达的是类似的信息,但使用不同的方法表示。(见图19)
3.5 实现图 构件图表明了软件构件之间的依赖关系。构件是指系统中的一个物理实现片段,包括软件代码(源代码,二进制代码,可执行代码)或者相应成分,例如脚本或命令行文件。有些构件带有身份标识,并有物理实体,包括运行时的对象,文档,数据库等。构件只在实现域中存在--它们是计算机的物理组成部分,可以与其他构件相连,由类似构件替换,移动,获得等等。模型可以表示构件间的依赖关系。构件有两个特怔:封装了实现系统功能的代码和某些构成系统状态的实例对象。 构件图表示了构件类元,以及其中定义的类和构件间的关系,构件被表示为一个矩形,其一侧有突出的两个小矩形。构件名字标在矩形中,虚线箭头从一个构件指向其他构件上的接口。如图20所示的是一个学生选课系统中的用户组件图。
部署图定义系统中软硬件的物流体系结构,它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可以显示连接的类型以及构件之间的依赖性。节点实例包括运行时的实例,如构件实例和对象。构件实例和对象还可以包含对象。 部署图有描述符形式和实例形式。实例形式表现了作为系统结构的一部分的具体节点上的具体构件实例的位置,如图21所示的学生选课系统的部署图。这是部署图的常见形式。
描述符形式说明哪种构件可以存在于哪种节点上,哪些节点可以被连结,类似于类图。节点符号可以带有构件实例,说明构件存在或运行于该节点上。构件符号可以带有对象,说明对象是构件的一部分。构件之间用虚线箭头相连(可能穿过接口),说明一个构件使用了另一个构件的服务。图22显示了一个描述形式的部署图。
4 Rational Rose需求分析工具 Rose是美国Rational公司的面向对象的建模工具,利用该工具可以建立用UML描述的软件系统模型,它支持用例图(Use Case Diagram)、活动图(Activity Diagram)、序列图(Sequence Diagram)、合作图(Collaboration Diagram) 、状态图(Statechart Diagram)、构件图(Component Diagram)和部署图(Deployment),而且可以自动生成C++,Java,VB等语言代码。
4.1 启动Rational Rose2003 启动Rational Rose 2003,出现如图10.23所示的启动界面,启动界面消失后进入到Rational Rose 2003的主界面,首先弹出如图24所示的创建模型对话框,该对话框共有三个选项卡,分别为New(新建模型)、Existing(现有模型)和Recent(最近打开模型)。如果不需要任何系统模板,可以单击“Cancel”按钮,显示Rational Rose 2003的主界面,如图25所示。
Rational Rose 2003的主界面中的标题栏显示当前正在编辑的模型名称,菜单栏包括了所有操作的菜单,工具栏包含了最长用的一些操作的快捷方式,用户可以自行添加或者删除工具栏中的按钮,默认的工具栏从左到右分成7组,其功能说明如表10.2所示: Rational Rose 2003的工作区被分成三部分,左边是树形结构的浏览视图和文档窗口,其中上半部分是当前项目模型的树形视图,下半部分是对应的文档区,当选中的树形视图中的某个对象时,下面的文档区会显示对应的文档内容。文档区包含与模型元素规范窗口中完全相同的信息,描述模型元素或者关系,描述角色、约束、目的以及模型元素基本行为等信息,文档窗口中输入的一切都将显示为生成的代码中的说明语句,以后不必输入系统代码的说明语句。右边是主要的编辑区,在编辑区可以打开模型中的任意一张图,并且利用左侧的工具箱对图进行修改。下边部分是日志窗口,主要用来记录对模型所做的重要动作,日志的显示是按时间顺序执行某些命令和操作后,应用程序的进展情况、结果和错误,可以保存日志。
4.2 使用Rational Rose2003 使用Rational Rose进行设计的基本过程是: 启动 选择目标项目或向导创建模型 创建各种模型图 生成代码框架
1.创建模型 创建模型是使用Rational Rose的第一步,模型可以从头创建,也可以借助框架向导,框架是一系列预定义的模型元素,可以定义某种系统的体系结构,也可以提供一系列可重用构件。在默认的情况下,Rose模型都以扩展名为.mdl的文件进行保存。 要创建模型,需要按照如下步骤进行: 从菜单中选择“File”选择“New”,或者单击标准工具栏中的“New”按钮 在弹出的创建模型窗口(如图24)中选择要用到的框架模板,单击“OK”或者“Cancel”按钮(表示不使用任何模板),如果选择了某框架模板,则Rose会自动加载框架模板的默认包、类和构件。比如选择J2EE框架,如图26所示。
2.保存模型 模型进行编辑后应该定时保存,模型的保存可以通过“File”菜单中“Save”进行。 另外日志也可以进行保存,单击日志窗口,激活日志窗口后通过在日志窗口内右键单击,在弹出的快捷菜单中选择“Save log as”进行保存。 3.模型导入/导出 Rational Rose可以将设计的模型及模型元素导出到Petal文件(.ptl),以便可以将模型或模型元素导到另一个模型,或者在不同的平台之间传送模型或模型元素,或者将一个模型或它的元素添加到一个新的软件版次。整个模型、类、逻辑包以及构件包都可以导到Petal文件中。 模型导出的步骤为: 点击“File”菜单中的“Export Model”选项,如图10.27所示。 在弹出的对话框中对导出的模型文件命名,如图28所示。 *.ptl格式文件类似于模型文件(*.mdl),但是只是模型文件的一部分。模型文件*.mdl则保存完整的模型。 在Rational Rose中也可以导入已有的模型及模型元素,导入时可选择的文件类型有:模型(.mdl)、petal(.ptl)、类别(.cat)和子系统(.sub)。 Rose会将导入的元素和当前模型中的相关元素进行比较,提示是否要用导入的元素取代当前模型中的元素。导入元素之后,Rose会更新当前模型中的所有模型图。 模型导入的步骤与导出的步骤类似: 点击“File”菜单中的“Import Model”选项,如图29所示。 在弹出的对话框中对选择要导入的模型文件的类型和名称,如图30所示
4.发布模型 利用Rational Rose 2003 可以通过Web发布器(Web Publisher)方便地将Rose模型发布到Web,这样可以便于没有安装Rose的用户通过浏览器顺序或非顺序地进行浏览模型。在发布模型之前,应当创建一个新的文件夹。 发布模型的步骤为: (1)选择菜单中的“Tools->Web Publisher”,在弹出的对话框中选择要发布的模型视图和包,如图31所示。
(3)选择发布时使用图注的方法,Notation默认选项为UML。 (2)设置发布内容所需要的细节。Documentation Only选项只显示用在创建模型时在文档窗口输入的信息,对于模型的属性、操作、联系等均不显示。Intermediate选项显示模型General标签中的属性。Full选项用于发布所有模型元素的属性,包括模型元素规范Detail标签项中的属性。 (3)选择发布时使用图注的方法,Notation默认选项为UML。 (4)选择“Include Inherited Items”(是否发布继承项目) (5)选择“Include Properties”(是否发布属性) (6)选择Include Associations in Broswer”(是否发布关联,即模型元素之间的联系) (7)输入发布模型的HTML文件名 (8)如果要选择框图的图形文件格式,可以单击Diagrams按钮,弹出如图32所示的Diagrams Options对话框。 (9)设置完成后,单击“Publish”按钮,Rose将发布模型的所有Web页面。 (10)如果需要可以点击“Preview”来预览发布的模型,如图33所示。
5.生成代码框架 Rational Rose作为一种应用最为广泛的UML建模工具,可以将所建模型映射成多种编程语言,如Java,C++和Visual Basic等,即从模型生成相应的代码,称之为前向工程。而且Rational Rose 也支持从编程语言重新构造UML模型,即从用户原来的软件系统导出改系统的模型,称之为逆向工程。
下面以Java为例说明使用Rose从模型生成代码框架的步骤如下: (1)检查模型:检查模型通常包括一致性检查、非法访问的检查、语言语法检查等。为了发现模型中的问题和不一致性,从菜单中选择“Tools->Check Model”命令Rose即可将发现的错误写入日志窗口。模型中还有可能存在例如不同包之间的两个类存在关系式是否存在非法访问的问题,可以选择菜单“Report->Show Access Violations”选项进行检查,根据不同的生成语言,还可以进行语言语法检查,如使用Java可以选择“Tools->Java->Syntax Check”。按照检查出的错误提示逐一修改错误,直到没有错误为止,转入下一步。 (2)创建组件:在浏览窗口中选择“Component View”右键选择“New->Component”为创建好的类创建组件。 (3)将类映射到组件:通过选中组件图中或浏览器中用于实现类的组件图标,右键打开组件的规范窗口(Specification),选择Realizes标签,选中Show all classes复选框,在类的列表中找到并有简单机所要实现的类,在快捷菜单中选择Assign,如图10.34所示。 (4)设置代码生成属性:生成代码框架中所包含的类、属性、组件等元素根据语言的不同可以设置一些生成代码的属性,需要选择“Tools->Options”命令,然后选择相应的语言标签进行设置。如图10.35所示。 (5)选择要进行生成代码转换的类、组件和包:生成代码时可以一次生成一个或多个类、一个组件、或一个包。 (6)生成代码:使用“Tools->Java->Generate Code即可生成相应的代码框架。
4.3 Rational Rose 2003 全局设置 为了方便用户在Rational Rose 2003环境工作,可以通过菜单“Tools->Options”进行设置,如图10.36所示对Rose属性进行设置的对话框。通过该对话框可以对字体的大小、样式、颜色等属性进行设置,还可以设置模型的保存方案,比如自动保存模型的时间,是否创建备份文件等。
4.4 Rational Rose框图设计 Rose模型包括很多框图,下面仅以用例图为例介绍如何利用Rose进行模型设计。 现有某网上选课系统主要包括如下功能:管理员通过管理界面进入,建立本学期要开的各种课程、将课程信息保存在数据库里并可以对课程进行改动和删除。学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行操作包括:查询已选课程、选课。这些操作都要存入数据库。本系统者涉及的用户包括管理员(Registrar)和学生(Student),他们是用例图中的活动。数据库管理系统是另外一个活动者。可以按照如下步骤创建该系统用例图模型: (1)右键点击浏览器中的 “Use Case View”文件夹。 (2)在弹出的菜单中单击“New->Use Case View”命令,如图37所示 (3)输入新创建的用例图名称,如图38所示窗口,添加用例如下图。 (4)双击新创建的用例图将其打开,进入用例图的设计界面,可以根据图形建模的工作需要,将左边部分的用例图的工具箱中的元素拖放到右边的设计窗口中去,如单击“Actor”选项后,拖放到设计窗口,可以参照图9完成的用例图设计。
提示:(1)如果在工具箱中看不到需要的工具按钮,可以通过菜单“View->toobars->Configure”进行设置,如图39所示。或者在工具箱处右键单击鼠标,在弹出菜单中选择“Customize”选项自行定义工具栏,如图40所示。 (2)对于设计窗口中不需要的模型元素,可以单击选中后,按快捷键“Ctrl+D”删除,或者在左侧的浏览窗口右键单击该模型元素,在快捷菜单中选择“Delete”。