当前位置:文档之家› MyEclipse UML 建模

MyEclipse UML 建模

MyEclipse UML 建模
MyEclipse UML 建模

MyEclipse 6 Java 开发中文教程
第十七章 MyEclipse UML 建模
第十七章 MyEclipse UML 建模 ........................................................................................ 1 17.1 介绍 ................................................................................................................... 1 17.1.1 UML概念及常见建模工具 ......................................................................... 1 17.1.2 MyEclipse的UML工具 .............................................................................. 2 17.2 系统需求............................................................................................................ 4 17.3 创建UML模型仓库 ............................................................................................. 4 17.4 创建及修改UML 图 ........................................................................................... 5 17.4.1 创建UML 图形 ........................................................................................ 5 17.4.2 类图和常见修改功能................................................................................ 6 17.4.3 正向工程 - UML 类图生成Java代码 ..................................................... 12 17.4.4 反向工程 - Java 代码生成UML 类图.................................................... 13 17.4.5 绘图工具................................................................................................ 17 17.4.6 用例图(Use Case Diagram)................................................................... 18 17.4.7 活动图(Activity Diagram) .................................................................. 18 17.4.8 序列图(Sequence Diagram) ............................................................. 20 17.5 常见问题.......................................................................................................... 21 17.6 小结 ................................................................................................................. 22 17.7 参考资料.......................................................................................................... 22
17.1 介绍
17.1.1 UML 概念及常见建模工具
UML 是什么?在回答这个问题之前,请您思考这样一种现象。路边有一棵很大很粗的 银杏树,好了,现在让几个从事不同职业的人,或者是操不同方言的人,来给别人介绍这棵 银杏树,你猜会出现什么样的情况?考古者会说:哦,这是一棵古树,很有科研价值,对于 研究这一带的地志迁移很有帮助, 假设用无缝取样法看看年轮, 甚至能了解几百年来的气候 变迁。农民朋友会说:这是一棵长势喜人的银杏树,不过银杏是雌雄异株,嫁接上对应性别 的枝条后,能够收成很多银杏。生物学家会说:银杏(Ginkgo Liloba L.) ,植物界,裸 子植物门,银杏纲,银杏目,银杏科,银杏属,银杏种,俗称白果,公孙树。……当然,如 果是外国人来介绍银杏,则另是一番情况。最后,请各位把见到的银杏树画出来,那估计又 是各有千秋,甚至如果碰到印象派画家,画出来的图让你都认不出这还是棵银杏。因为,人 们表达自己的形式是千奇百怪的,在软件行业,也是如此。在 UML 之前,各式各样的图表 被用来描述软件系统,这带来了知识交流过程中的阻碍。UML 的提出,就是为了部分的解 决软件系统的描述问题。好了,现在我们就用专业点的属于来介绍 UML:统一建模语言 (Unified Modeling Language,UML) ,是一种直观化、明确化、构建和文档化软件系统产 物的通用可视化建模语言。 它捕捉了被构建系统的有关决策和理解, 用来理解、 设计、 浏览、 配置、维护以及控制系统的信息,可以与所有的开发方法、生命阶段、应用领域和媒介一同
1 刘长炯著

MyEclipse 6 Java 开发中文教程
使用。简言之,就是一组标准化的可扩展的可视化建模语言,结果表现为图形,注意它不是 一门编程语言, 只用来描述系统, 不能用来开发和实现系统功能。 1997 年, OMG 组织 (Object Management Group 对象管理组织)发布了统一建模语言。UML 的目标之一就是为开发团 队提供标准通用的设计语言来开发和构建计算机应用。UML 提出了一套 IT 专业人员期待多 年的统一的标准建模符号。通过使用 UML,这些人员能够阅读和交流系统架构和设计规划 --就像建筑工人多年来所使用的建筑设计图一样。截至到目前为止,UML 已经推出了 2.0 版 本,在企业中获得了广泛的应用。当然,它也有一些缺陷,例如一些新的软件结构,如 SOA 等,就无法用 UML 描述。另外,还有个很重要的地方就是 UML 并没有规定图的颜色,但 是也没规定 UML 图不能带彩色,因此,UML 的图主要在于形状,颜色本质上是黑白的。 常见的 UML 建模工具比较多。用的最多的当属 Rational Rose(现在被 IBM 收购) ,它 的特点主要是老牌,出来的图看着比较正规,不过和工具的整合不够紧密,是商业的收费软 件。另外还有 Borland Together,它的最强大的功能当属动态的代码和图形同步功能,即从 代码生成图,并且代码改动或者图改动后,都会同步到对应的地方,这个几乎是无人能及, 在生成顺序图等功能上也是很强大的,它是用 Java 语言开发的,有 Borland Together for Eclipse 这样的版本, 便于在 Eclipse 下使用。 还有一款就是 Sybase 出品的 Power Designer, 它的主要特色就是数据库建模和 UML 建模合二为一,可以从数据库生成模型,也可以从模 型生成数据库代码,是公司数据库管理员必备软件,可惜也是商业收费的。微软 Office 的 Visio 也能进行 UML 建模,只可惜,出来的图不甚标准,也无法从图生成原型代码。开源的 UML 建模工具中,用的比较广泛的当属 ArgoUML,实际上 MyEclipse 的也是基于它二次开 发了一下而已。 另外, Netbeans 6 也提供了 UML 建模功能。 Eclipse 也有对应的 UML 插件, 然而多数都是收费软件(这当属 Eclipse 社区被大公司控制的必然结局) ,读者可以自行搜 索,或者使用参考资料中介绍的一款 EclipseUML,以及一款国产的 UML 建模软件。当然 还有很多的免费 UML 建模工具可以使用,通过 Google 搜索即可。
图 17.1 典型 UML 建模工具界面
17.1.2 MyEclipse 的 UML 工具
MyEclipse 的 UML 建模工具实际上是基于 ArgoUML 开发的,并加入了反向工程和正 向工程的能力, 可以从代码生成 UML 图或者从图生成代码。 MyEclipse UML 为开发人员提 供了下面的 UML 功能:
2 刘长炯著

MyEclipse 6 Java 开发中文教程
UML 图: 用例图,类图,序列图,协作图,状态图,活动图,部属图 ? 集成的图片编辑器,大纲视图和属性视图 ? UML 透视图 ? 不限位置的绘制工具 ? 通过热区直接编辑接点和连接内容 ? 图片保存在 UML Model Repository(UML 模型仓库)文件中 (例如 cardemo.umr) ? 包含 UML 模型文件的项目类型以及文件存储位置不受限制 ? 从模型生成 Java 代码 ? 导出图形为图片文件,支持多种格式:GIF、PNG、PS、EPS 和 SVG ? 从任何 MyEclipse J2EE 或者 Eclipse Java 项目生成类图 o 批量反向工程处理任何项目或者源代码目录,Java 包或者单独类的组合 o 从 Eclipse 的 Package Explorer 透视图拖拽任何 Java 类或者接口添加进 UML 类图上 o 自定义反向工程设置 ? 从 Outline 视图将任何 UML 元素拖放到任何兼容的 UML 图中 ? 对类图进行自动布局 另外,MyEclipse 还提供了专门的 UML 透视图,来便于进行 UML 的设计工作。MyEclipse UML 透视图提供了精心调整过的的界面组织来方便进行建模活动。默认视图包括 UML Diagram Editor(UML 图形编辑器) ,Outline(大纲)视图,已经自定义的 Properties (属 性)视图。工具栏上的操作按钮进行了调整和增加,这样依赖使创建新图的过程快速和方便 的多。图 17.2 列出了对各部分进行了标示的 UML 透视图。
?
图 17.2 MyEclipse UML 透视图
3 刘长炯著

MyEclipse 6 Java 开发中文教程
17.2 系统需求
由于 MyEclipse 集成 ArgoUML 实现 UML 的开发功能,而 ArgoUML 当前版本则需要 JDK/JRE1.5 或者更高版本,因此必须安装这些版本的 JDK/JRE 之后运行 MyEclipse 才可 使用。当然 MyEclipse All IN One 版本本身已经自带了 JRE 1.5,无需额外配置。对操作系 统的支持上,则致辞 Windows Vista,XP,2003 和 2000 以及 Linux,而苹果的 Mac 系统 则不支持,这是因为 SWT 本身的一个向 SWT 中插入 Swing 组件的 Bug 所导致的。本书中 的例子和截图均在 Windows XP 中文版 SP2 下运行和测试。
17.3 创建 UML 模型仓库
MyEclipse UML 使用一种特殊的文件格式来保存所有的 UML 图形以及模型元素到单 一文件中, UML Model Repository (UMR)。 即 UMR 文件的后缀是" .umr" , 并且在 Package Explorer 视图中以图标 的方式进行区分显示。在 Eclipse 项目中可以创建任意多个 UMR 文件。其实 UMR 文件的真实存储格式是 ZIP,可以使用 7Zip,WinZIP,WinRAR 等软件 打开,就跟 JAR 文件的存储格式差不多。 使用 MyEclipse UML 创建图形的第一步工作,就是用新建 UML 向导来创建一个 UML 模型仓库文件(UMR) 。为了方便起见,我们事先已经创建了一个名为 UMLTest 的 Java 项 目。 具体步骤如下: 1. 启动新建 UMR 向导。可以通过使用菜单 File > New > UML Model Repository, 或者点击工具栏上的按钮 2. ,也可以来启动创建 UML 模型文件的向导。
在 Enter or select the parent folder(输入或者选择父目录)一栏中选中要保存文 件的项目, UML Model Repository 在 (UML 模型仓库) 一栏中, 输入文件名, UML 在 Root Model Name(UML 根模型名称)一栏中,输入想要的名字。此过程可以参考图 17.3 进行相关的设置。
图 17.3 新建 UMR 向导及空模型文件 3. 选择 Finish 按钮,关闭向导对话框,并在刚指定的位置下创建 UML 文件,稍后 MyEclipse 会启动 UML Diagram Editor(UML 图形编辑器) 。默认情况下新建的
4 刘长炯著

MyEclipse 6 Java 开发中文教程
UMR 文件只有一个空的类图,参考图 17.3 右侧大纲视图。 4. 切换 MyEclipse 透视图为 MyEclipse UML,这样便于修改和创建 UML 图。
17.4 创建及修改 UML 图
本节我们会简单介绍常见的几种 UML 图形的概念以及创建方式。由于本书重点在于 MyEclipse 的工具使用上,所以 UML 的概念我们并没有打算做 100%的详细介绍,图的种 类也选择了常用的几种,其它的读者可以自行查找资料进行学习。这样省出的篇幅,用于加 入后续章节的其它内容,给读者提供更多方面的参考资料。
17.4.1 创建 UML 图形
单个 UML 模型文件可以包含任意数目的和任何类型的 UML 图形。向文件中添加图形, 需要在编辑器中打开 UML 文件,然后从编辑器工具栏上左数第一个按钮,从下拉列表中选 择要建的图的类型即可,参考图 17.4。另外还可以从 Outline(大纲)视图下点击视图中的 类似按钮,也可以创建图形,参考图 17.2。支持的 UML 图形列表列表则参考表 17.1。由于 这一特征,如果你想和别人分享做好的 UML 模型,把这个文件发给对方即可(当然前提是 他安装有 MyEclipse 或者 Argo UML 来查看它) 。
图 17.4 使用编辑器器工具栏来创建图形 用例图 类图 序列图 协作图 状态图 活动图 部署图 表 17.1 可以创建的 UML 图类型列表 当一个模型文件中加入了多个图之后, 如何进行切换到想编辑的图呢?有两个地方可以 进行图之间的切换:第一个地方是在大纲视图,双击需要修改的图的名字即可;另一个地方 就是在打开的图的编辑器的工具栏上,有一个下拉的列表可以切换图。此过程请参考图
5 刘长炯著

MyEclipse 6 Java 开发中文教程
17.5。
图 17.5 在大纲和编辑器中切换多个图 向编辑器的图中加入 UML 元素可以通过单击编辑器工具栏上的按钮来完成,另外双击 工具栏上的组件按钮可进入 Mass Add(批量添加)模式,此时每点击一次画布就加入一个 元素,要退出此模式可以点击编辑器工具栏上的光标状 Select(选择)按钮 即可。另外, 带有下拉列表选择的功能,例如矩形绘制,也可以进入批量添加模式。在后面几节的的内容 中,笔者将会对各种类图的概念,图形特点和创建方式逐一进行介绍。 如果要将绘制的图形导出为图片文件,也比较容易,在编辑器的画布空白处右键点击, 然后选择菜单 Export as image, 接着在弹出的对话框中输入要保存的图片文件名以及存储 路径即可,支持这些导出格式:PNG,GIF,PostScript,Encapsulated PostScript(封装 过的 PostScript)和 SVG(Scalable Vector Graphics,可伸缩矢量图形)格式。这样导出 的图片可以用作图软件来处理,或者插入到文档或者网页中进行显示。
17.4.2 类图和常见修改功能
实际建模时候,大概类图是最经常用到的一种图形了。类图表示不同的实体(人、事物 和数据)如何彼此相关;换句话说,它显示了系统的静态结构。类图可用于表示逻辑类,逻 辑类通常就是业务人员所谈及的事物种类――订单,商品,顾客,经理,管理员,账户等等。 类图也可以表现面向对象中提到的接口。在 Java 语言中,几乎所有的类,都可以用类图来 表示,之所以用了几乎这个不确定词,是因为 UML 本身有其局限性,例如下面的例子就无 法准确的用 UML 表示出来(模拟人和眼睛的关系) : public class Person { class Eye {} } ,这样的结构在 Java 中随处可见,是内部类,但是却无法用 UML 很好的表示出来。类似 的其它内容还有 Web 服务,JSP 等严格说也可以作为类描述的 Java 模块,但是这些都无 法很好的用 UML 表示,不过,按照 UML 的规定,开发工具可以自行扩充模型后来对这些 内容进行建模。 类图上使用包含三个部分的矩形来描述,如图 17.6 所示。最上面的部分显示类的名称, 中间部分包含类的属性(成员变量)列表,最下面的部分包含类的操作(或者说"方法"、函 数)列表。 当在一个类图上画一个类元素时,你必须要有顶端的区域,下面的二个区域是 可选择的(当图描述仅仅用于显示系统的高层架构时,下面的两个区域是不必要的) 。 位于类图最顶部的,是类名。类名上可以显示图标,也可以不显示,这是可选的功能, 同理所有的 UML 图都可以拥有定制的图标,这是可以扩展到内容。 类的属性栏(中部区域)在分隔线上列出类的属性列表。属性节是可选择的。每个属性 的定义使用如下格式:
6 刘长炯著

MyEclipse 6 Java 开发中文教程
name : attribute type 即 名称 : 属性 类型。例如图中的变量定义 username:String,是类型在后,属性名在前, 等价于 String username 这样的 Java 代码。如果此模型和实际的编程语言无关,作为业务
图 17.6 单个类图 系统的描述图,是可以出现中文类型的描述,例如:单价:美元这样的变量定义;如果要用 此图生成代码,则只能使用标准的变量定义和类型。个别的建模工具,例如 Together,支 持给属性名加入别名方便阅读和理解。 类操作列表位于类图长方形的第三个(最底部)区域中,它也是可选的。和属性一样, 类的操作以列表显示。操作使用下列格式定义: name(parameter list) : type of value returned 即:操作名 (参数列表) : 返回值类型。构造器也包含在操作列表中。如图 17.6 中所示的, <>Student()表明这是一个构造器(构造器没有返回值) ;而 getUsername():String 则定义了一个返回值为 String 类型的方法 getUsername(); 另外 setUsername(in username : String)定义了一个设置用户名的方法,输入参数是 String 类型的,参数名为 uername,in 这个标记用来指示参数是输入值(当然不是必须的,不写 in 也可以) 。 除了类之外,常见的类图还包括接口。接口如图 17.7 中左上的 IMoveable 所示,定义 了一个行走和停止的行为。实际上接口中也可以规定属性,但是 MyEclipse UML 在这里不 支持这样的格式。 如果一个类需要实现一个接口, 则可以通过带有闭合的单向箭头的虚线进 行连接,即表示实现定义。例如图中的 Animal 实现了 IMoveable 接口,用 Java 到代码来 表示就是:class Animal implements IMoveable。
图 17.7 接口和类继承,实现,关联 类之间可以有继承关系,通过带有闭合单向箭头的实线进行连接。例如图 17.7 中,类 Cat 继承自 Animal。另外,类和类之间还可以有关联关系等,例如一个家庭对应多只猫。 双向关联关系已实现的方式连接,并在线上显示关联类型。例如图中的 House 关联着多只 Cat。表 17.2 列出了双向关联中的可能只所表示的含义的描述信息。如果是单向关联,则用
7 刘长炯著

MyEclipse 6 Java 开发中文教程
不封闭的单向箭头来表示:→,从一个类连接到另一个类。此外还可以有聚合等关系,我们 就不多做介绍了,有兴趣的读者可以阅读参考资料中的 IBM 网站中的文章获得更多信息。 表示 0..1 1 0..* * 1..* 3 0..5 5..15 含义 0 个或 1 个 只能 1 个 0 个或多个 0 个或多个 1 个或我个 只能 3 个 0到5个 5 到 15 个 表 17.2 双向关联中可能的多重值描述 另外一个很重要的概念就是可见性。 在面向对象的设计中, 存在属性及操作可见性的记 号。UML 识别四种类型的可见性:public,protected,private 及 package(和 Java 中的 内容对应的非常好) 。UML 规范并不要求属性及操作可见性必须显示在类图上(其实 MyEclipse 生成的图使用不同的和 Eclipse 中一致的图标来表示可见性了,但是别的工具一 般是按照 UML 的规范来使用记号来标识的) ,但是它要求为每个属性及操作定义可见性。 为了在类图上的显示可见性,放置可见性标志于属性或操作的名字之前。虽然 UML 指定 四种可见性类型,但是实际的编程语言可能增加额外的可见性,或者不支持 UML 定义的 可 见 性 。 表 17.3 显 示 了 UML 支 持 的 可 见 性 类 型 的 不 同 标 志 。 可 见 性 的 例 子 如 : +username:String 这样的属性定义。 标志 + # ~ 表 17.3 可见性列表 在 Java 的开发中,经常会遇到包(Package)这个概念。UML 中也支持类似的概念: 软件包, 用来将多个相关的类或者接口组织在一块。 软件包使建模者能够组织模型分类器到 名字空间中, 这有些象文件系统中的文件夹。 把一个系统分为多个软件包使系统变成容易理 解,尤其是在每个软件包都表现系统的一个特定部分时。软件包在 UML 中以文件夹的方式 进行显示,并在文件夹头部显示包名,文件夹中包含类或者接口。图 17.8 中列出了一个包 含两个类的软件包 lang。 可见性类型 Public Protected Private Package
图 17.8 软件包及注释 另外,和常见的编程语言支持注释一样,UML 也支持注释(Comment) ,如图 17.8 右 侧即是一个注释元素以及注释关联线。注释可以加到任何对象上。
8 刘长炯著

MyEclipse 6 Java 开发中文教程
现在关于 UML 的概念已经做了这么多的介绍,接下来就来看看在 MyEclipse 中如何绘 制类图。首先自然是打开新建的 Class 图,然后可以看到 UML 编辑器的工具栏按钮列表: 图标 英文提示 Select Broom New Package New Class New Association New Generalization New Interface New Realization New Dependency New Attribute New Operation New Association Class New Comment New Comment Link New Rectangle Zoom In Zoom Out 表 17.4 类图编辑器工具栏 在这些工具栏中,最常用的当属类图编辑功能了。点击 UML 编辑器工具栏上的 按钮 即可创建一个新的类。双击类图的三个方框的空白处:类名,属性列表和操作列表处,即可 快速修改类名或者加入新的属性和操作定义。 如果双击已经存在的属性或者操作定义, 则可 以变为文本输入框,进入修改模式来修改。基本上所有的 UML 元素都支持此种修改方式, MyEclipse 的术语叫 Text hot-zone (文字热区) 文字热区是节点或者连接点的中间的可编 。 辑区域,例如关联类的连线中间,通过双击可以激活。激活后,热区内显示方形的可编辑输 入框。输入框内可以直接输入文本,也支持删除、复制、粘贴、剪切带操作。要提交文字热 区内地修改使之生效, 可以点击文字热区之外的任何地方即可, 随后编辑区消失并代之以显 示原来被编辑的 UML 内容。 关于类图编辑和热区,可以参考图 17.9。 说明 恢复为准备选中状态 扫帚 (点击后向各个方向拖动 可以使图形对齐) 新建包 新建类 新建关联等关系(下拉选择) 新建泛化类(继承) 新建接口 新建实现类 新建依赖类(下拉选择) 新建属性 新建操作 新建关联类 新建注释 新建注释连接 新建方形(下拉选择) 放大 缩小
9
刘长炯著

MyEclipse 6 Java 开发中文教程
图 17.9 快速编辑类,连接区和编辑区和 Text hot-zone 另外一种热区, Connection hot-zone,即连接热区,它位于哪里呢?它位于类图的 四周,鼠标移过时可以看到多出的几个按钮,一般提供连接到节点的一些关联类,自关联, 子类,依赖等等,可以点击按钮到另一个节点来完成连接,也可以只单击按钮自动生成一个 对应的关联类。 要修改图形的大小,需要把鼠标放到图形的四个角上的某一个,出现黑色的小方块后, 拖动即可调节其大小(不过图有个最小值,不能调节的比最小值还小) 。要移动元素,可以 用鼠标画框的方式选中需要移动的元素, 然后再其中的任意一个元素上点击并拖放即可移动 图形的位置。 最后一个和编辑有关的就是 Properties(属性)视图,当选中不同的元素时,会显示 对应的可以修改的属性值,如图 17.10 所示。例如选中类 A 中的属性后,此时 Properties 视图如图 17.10 所示。Properties 视图中也可以编辑对应的值,并且以多页标签的方式来显 示所有可以修改,添加或者删除的内容(相对比下,在编辑器的画布上能改的属性则非常有 限) Properties 标签下的工具栏, 。 可以处理一些操作例如转到上级 (Go Up) 新建属性(New , Attribute),新建数据类型(New Datatype),新建版型(New Stereotype),以及删除模型 (Delete from Model) 等等。 Name 输入框中可以修改属性名, 在 Type 可以选择数据类型, Initial Value 中可以输入初始值,Visibility 中可以选择可见度,包括 Protected(受保护的), Public(公开的)和 Private(私有的) 。Changeability 中则可以选择是否为可以修改的值。 Modifiers 中则可以修改修饰符。实际上每种元素都有它自己特定的属性,但大部分都是用 不到的属性,所以我们就不打算在这里做完整的介绍了。
图 17.10 UML Properties 视图 Properties 视图中另外一个相对固定的标签页就是 Ducumentation(文档) ,可以用来
10 刘长炯著

MyEclipse 6 Java 开发中文教程
给每个 UML 的元素撰写一些说明文档(实际上这些内容是和 JavaDoc 中的标记所对应的, 因为 MyEclipse 或者 ArgoUML 毕竟是 Java 语言开发的嘛) 。在这一页,Author 框输入作 者信息,Version 框输入版本,Since 框输入什么时候开始有,Deprecated 则指示是否为废 弃的类或者属性等信息,See 则输入参考信息,Documentation 则输入详细的注释信息。
图 17.11 Ducumentation 标签 当选中图形的最外层时,例如直接选中类图本身,此时就可以修改 Presentation 标签 下和图形显示有关的属性了。Display(显示)右侧的两个复选框分别可以指定是否显示属 性(Attributes)和操作(Operations)列表。Bounds(边界)则指定图形的坐标和大小,坐 标的格式是:x,y,width,height,即:横坐标,纵坐标,宽度,高度。需要说明下在计算 机绘图中,坐标的起点一般都是左上角,也即(0,0)这个点。Body Fill Color 指定了图形 的主体填充色彩。Header Fill Color 则指定了头部填充色彩(类图中位于最上侧,即类名显 示处) 。Line 则指定了线条(一般是边框等)的显示颜色。如图 17.12 所示。
图 17.12 Presentation 标签 最后两个标签分别是 Constrains 和 Tagged Values。Constrains 主要可以给元素添加, 删除和修改一些限制信息,一般情况下使用不到。Tagged Values 则列出了做了标记的值列 表,例如当按照图 17.11 中设置了文档后,类的 Tagged Values 显示的内容列表如图 17.13 所示。在这个标签的工具栏上可以删除一些标签,还可以双击 Tag(标记)和 Value(取值) 进行相关值的编辑。
11
刘长炯著

MyEclipse 6 Java 开发中文教程
图 17.13 Tagged Values 标签 好了,关于类图的介绍基本上到此为止。现在需要大家做的是练习,开发出如图 17.14 所示的 UML 类图,这个图包括了类,接口以及包和关联关系等。可以参考配套视频,然后 自己做一下练习。
图 17.14 UML 类图练习目标
17.4.3 正向工程 - UML 类图生成 Java 代码
在实际的项目开发中,如果设计出来的图不能变成 Java 代码,那的确是让 UML 的功 能大打折扣,尤其是详细到每个类的属性和操作,包名这样的详细设计,如果过后还需要一 点点的把对应的代码写出来, 的确让人头痛。 所幸的是, MyEclipse 的 UML, 或者说 ArgoUML 以及大多数的专业一点的 UML 设计器,都提供正向工程—从 UML 类图生成特定语言,例 如 Java,C++等的源代码,说点题外话就是这当中做的最好的当属 Borland Together。相 比较来说,MyEclipse 的这个生成功能,有时候会出现错误,导致无法完整的产生代码。 MyEclipse 支持直接从 UML 类图中的类定义生成 Java 代码。操作步骤如下: 1. 打开包含类图的 UML 仓库文件(UMR) ,这些类必须按照 Java 的规范进行设计才 可生成 Java 代码; 2. 选择菜单 UML > Generate Java... ,来启动正向工程(Forward-Engineering)向 导,如图 17.15 所示。
图 17.15 选择菜单 Generate Java... 随后, 将会弹出如图 17.16 所示的正向工程向导对话框。 按照下列步骤进行操作即可 (也 可参照图中的箭头提示) :
12 刘长炯著

MyEclipse 6 Java 开发中文教程
1. 点击对话框中的 Java Output Folder(Java 输出目录)右侧的 Browse 按钮,在 弹出的对话框中选择任何 Java 或者 J2EE 项目的源代码目录 (一般名为 src) 然后 , 点击 OK 按钮关闭对话框。被选中的目录将存放从类图所最终生成的 Java 代码。 2. 在 Generate Java source for selected UML Java entities 生成选中的 UML Java ( 实体的 Java 源代码)下面的类来列表中,选中一个或者多个需要翻译为 Java 代码 的类。 3. 点击 Finish 按钮来关闭对话框,然后进行代码生成处理过程。
图 17.16 UML 正向工程向导 在稍后可能会出现一些警告和提示的对话框。 一般包括: 无返回类型的操作定义没有写 入 void 类 型 , 例 如 : setAge(in age:Integer) 应 该 加 入 void 修 改 为 : setAge(in age:Integer):void;一些非法的关联选项(虽然画图的时候可以随便来画,但是生成的时候, 务必确保这些关联有实际的意义) 。这种情况下,对应的 Java 代码就不能生成,只有修正 了这些问题才能如期产生代码。还有的时候是 MyEclipse 本身的 Bug,导致生成的类文件 是空白的。总之此功能不是很完备。 在生成过程结束后,就可以在指定的源代码目录中看到生成的类文件的 Java 源码了。
17.4.4 反向工程 - Java 代码生成 UML 类图
在实际的项目开发中,就笔者所接触过的情况来说,经常会出现在项目的末期,需要交 文档的时候,大家纷纷把自己本来没做的 UML 设计(本来按照规则是应该在初期进行的) 补上来,这时候,从代码生成 UML 类图的功能就有用了。当然,也有一种情况是,虽然早 期进行了 UML 设计,然而毕竟计划不如变化,到了项目后期,大多数类的代码早就和设计 的时候有了出入,这时候,都可以用到从代码生成 UML 类图的功能。 MyEclipse 的 Java 代码到 UML 反向工程的过程有两种不同的方式可以实现, 包括批量 处理模式和拖放模式,下面我们对这两种模式一一进行介绍。
13 刘长炯著

MyEclipse 6 Java 开发中文教程
批量处理模式:该模式下可以把任意 Java 项目中源代码目录中的任何选中的类、接口 等定义转换成 UML 的类图(注意不支持从 JSP,HTML 之类的文件生成 UML 定义) 。让我 们按照下列步骤进行操作: 1. 打开原来的测试项目 HibernateDemo,然后在项目 UMLTest 中新建一个 UML 模型文 件 HibernateDemo.umr, 并双击并打开这个 UMR 文件。 当然也可以选择以前创建的任 何 Java 或者 J2EE 项目,只要项目中包含源代码即可。 2. 选择菜单 UML > Reverse Engineer UML from Java... 来启动 MyEclipse UML 反向 工程向导。随后即弹出 UML 反向工程向导对话框,如图 17.17 所示。
图 17.17 UML 反向工程向导第一页 3. 在向导对话框中选中需要反向工程处理的 Java 包或者类,然后点击 Next 按钮进入下 一页,如图 17.18 所示。
14
刘长炯著

MyEclipse 6 Java 开发中文教程
图 17.18 UML 反向工程类图生成设置 在图 17.18 中进行反向工程的选项设置, 一般情况下保持默认设置即可。 这些设置包括 Java Process(Java 处理)下的选项:Create class diagrams(生成类图);Hide class / interface details(隐藏类和接口的详细内容)。以及另一个选项栏目 Java UML Generation(Java UML 生成):Model Java attribute as(将 Java 属性建模为)UML attributes(UML 属性)或者 UML associations(UML 关联);Model Java arrays as(将 Java 数组建模为)UML datatype(UML 数据类型)或者 UML multiplicity 1...n(UML 一对多)。 5. 点击 Finish 按钮来开始反向过程处理过程。 稍等片刻后, 即可看到反向过程的执行结果汇总对话框, 并让我们可以选中生成的一个 或者多个类图,如图 17.19 所示。检查 Outline 视图中的 UML 图列表,可以看到反向工程 是基本上每个包都生成了一个类图, 而不是像大家想象的那样都把类放到了一张图上。 例如 在这个例子中就生成了两个新类图:_classes 和 dao_classes。这样,双击这两个类文件就 可以看到生成的类文件了,非常方便。基本上还没碰到过什么大问题。稍后将 UML 导出为 图片,就可以在项目文档中自由的引用了。 4.
15
刘长炯著

MyEclipse 6 Java 开发中文教程
图 17.19 反向工程汇总对话框 接下来要介绍的,是反向工程的另一个模式:拖放模式。这个模式适合于快速小批量的 从 Java 代码中所定义的类和接口生成对应的 UML 类图, 可以无缝的将任何 Java 类和接口 添加到任一个 UML 模型的类图中。操作步骤如下: 1. 从 Package Explorer 视图中,选中一个或者多个类或者接口(需要提示大家的是, 除了源代码包里面的类可以选中,Library 里面的类也可以被选中) ; 2. 鼠标单击并拖动选中的类和接口(不放开鼠标左键移动光标)放到当前打开的 UML 图形编辑器中的类图,如图 17.20 所示; 3. 此时将会弹出如图 17.18 所示的 UML 反向工程类图生成设置信息, 一般取默认值即 可,或者按照图 17.18 后所附带的说明进行定制; 4. 点击 Finish 按钮即可启动生成类图向导。 当向导结束后,即可看到在类图上生成了对应的类定义,以及其相互关系。如图 17.21 所示。
图 17.20 拖放类和接口
16
刘长炯著

MyEclipse 6 Java 开发中文教程
图 17.21 反向过程向导所生成的类图
17.4.5 绘图工具
除了绘制标准的 UML 类图之外,很多时候在图上加入一些自由绘制的形状标注,或者 多边形,或者任意位置的提示文字,会更便于阅读和使用一些。MyEclipse UML 包含了一 组画图工具,可以用来画一些简单的形状或者是加入文字,这些内容可以放入任意类型的 UML 图中。 绘图工具位于 UML 编辑器的工具栏上, 并且可以通过下拉的方式选择需要绘制 的形状,如图 17.22 左侧图所示。当选中了一种图形后,工具栏上的按钮就可以保持此形状 的选中状态,便于以后重复画图。图 17.22 右侧图展示了绘制结果。
图 17.22 绘图工具栏下拉菜单及绘制的图形 绘图工具支持的类型有:Rectangle - 矩形;RRect ― 圆角矩形;Circle - 环形; Line - 直线; Text - 带框的文本; Polygon ― 多边形;Spline - 拟合曲线;Ink - 墨水印。线型和颜色,以及文字的颜色和字体等属性,都可以在 Properties 视图下的
17 刘长炯著

MyEclipse 6 Java 开发中文教程
Presentation 标签页中进行设置。
17.4.6 用例图(Use Case Diagram)
在类图之外,第二个经常用到的 UML 图,也许就是用例图了。用例图描述了系统提供 的功能单元。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求, 包括基于基本流程的"角色"(actors,也就是与系统交互的其他实体)关系,以及系统内用 例之间的关系。用例图一般表示出用例的组织关系--要么是整个系统的全部用例,要么是完 成具有功能的一组用例。要在用例图上显示某个用例,可绘制一个椭圆,然后将用例的名称 放在椭圆的中心或椭圆下面的中间位置。 要在用例图上绘制一个角色 (表示一个系统用户) , 可绘制一个人形符号。角色和用例之间的关系使用简单的线段来描述,如图 17.23 所示。
图 17.23 用例图 在这个图中,定义了两个角色:普通用户和管理员,还定义了 4 种用例:注册,登录, 修改和删除。不管角色和用例,都是可以集成的,例如上图中删除这个用例继承自修改。集 成的符号和类图中的一样,都是一个封闭的实线箭头。每个角色所能参与的用例,通过连接 线进行关联。如图中所示的,普通用户只能注册和登录,而管理员则拥有更多的能力。 绘制用例图非常简单,点击工具栏上的 按钮可以创建一个新角色,点击 则创建一
个新的用例。 和类图编辑一样, 双击角色或者用例图, 可以快速输入它们的名称。 点击 这个按钮即可创建关联关系。其它的功能例如继承,扩展,包含等等,和类图都是一样的, 点击按钮后拖放连接即可形成相对关系。 一般来说,用例更多的是一种系统描述图,里面的角色和用例都是和具体类无关的,也 不能从它们生成代码,它们代表的是一组相关类的抽象。 现在,就请读者完成如图 17.23 所示的用例练习。
17.4.7 活动图(Activity Diagram)
活动图表示在处理某个活动时, 两个或者更多类对象之间的过程控制流。 活动图可用于 在业务单元的级别上对更高级别的业务过程进行建模,或者对低级别的内部类操作进行建 模。就我个人的经验来说,一般用来绘制系统的流程图。 一个活动图中只能有一个起点和一个终点。 如图 17.24 所示, 展示了一个用户注册+邮 件确认的注册过程活动图。在图中,黑色的实心圆表示起点,而整个活动的结束点以实心圆
18 刘长炯著

MyEclipse 6 Java 开发中文教程
环表示。活动使用一个圆角矩形(活动的名称包含在内)来表示,例如:输入用户名,确认 注册等等。菱形表示一个分支结构,常代表程序设计语言中的 if/else 这样的判断流程,例 活动跳转使用带打开箭头的线段来表示。 另 如用户名有效性检查这一活动即代表判断流程。 外, 活动图还支持用分叉和合并来表示并发的流程处理表示, 例如图中的输出提示信息和发 送确认邮件,是两个并列进行的操作,并在确认注册处合并。最后流程从注册成功处转向结 束。除此之外,活动图还支持对象流。活动图不但可以显示控制流,还可以显示对象取值的 流,对象流的状态表达了对象是活动的输入还是输出。对于输入值,由对象流状态至活动的 虚线来表示, 如果活动具有一个以上的输出值或后续的控制流, 则可以用分支和合并来进行。 因为一般较少看到对象流的用法,所以在此我们就不多做介绍了。
图 17.24 活动图 在 MyEclipse 中创建活动图比较容易,首先请按照 17.4.1 节的内容,创建一个活动图。 接着双击活动图在编辑器中打开,可以看到编辑器的工具栏出现和绘制活动图有关的图标。 点击对应的图标即可创建节点,双击状态,或者连接线,可以编辑其名称或者提示文字。这 些工具如表 17.5 所示。 图标 英文提示 New Action State New Transition New Initial New Final State New Junction New Fork
19
说明 新建活动状态 新建跳转 新建初始状态 新建结束状态 新建分支结构 新建分叉
刘长炯著

MyEclipse 6 Java 开发中文教程
New Join New Object Flow State 表 17.5 活动图编辑器工具栏
新建合并 新建对象流状态
现在请读者按照视频进行练习,完成如图 17.24 所示的活动图。提示:Transition 连接 线可以拐弯,先点击起始状态的圆角矩形,然后点击一点,最后再点击终点,如果重点在另 一个跳转线上,那么两条线将会合并为一条。
17.4.8 序列图(Sequence Diagram)
序列图显示具体用例(或者是用例的一部分)的详细流程。它几乎是自描述的,并且显 示了流程中中不同对象之间的调用关系,同时还可以很详细地显示对不同对象的不同调用。 序列图有两个维度:垂直维度以发生的时间顺序显示消息/调用的序列;水平维度显示消息 被发送到的对象实例。一个序列图的例子如图 17.25 所示。 序列图的绘制非常简单。横跨图的顶部,每个框(参见图)表示每个类的实例(对象) 。 在框中,类实例名称和类名称之间用空格/冒号/空格来分隔,例如,张三 : Male。如果某个 类实例向另一个类实例发送一条消息, 则绘制一条具有指向接收类实例的开箭头的连线, 并 把消息/方法的名称放在连线上面,例如追求(rose)。对于某些特别重要的消息,您可以绘制 一条具有指向发起类实例的开箭头的虚线,将返回值标注在虚线上,例如拒绝:boolean。如 果绘制出包括返回值的虚线,那么这些额外的信息可以使得序列图更易于阅读。 阅读序列图也非常简单, 17.25 表示了一个张三追求小雯并间接和小雯妈产生联系的 图 序列过程。从左上角启动序列的“驱动”类实例开始,然后顺着每条消息往下阅读。虽然图 中所示的例子序列图显示了每条被发送消息的返回消息,但这只是可选的。另外,实例也可 以自己调用自己,例如张三高兴的唱歌()方法。
20
刘长炯著

UML设计模式考试题

UML设计模式考试题 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。 该模式中包含的角色及其职责 工厂(Creator)角色 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。 抽象(Product)角色 简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。 具体产品(Concrete Product)角色 简单工厂模式的特点: 简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。 在这个模式中,工厂类是整个模式的关键所在。它包含必要的判断逻辑,能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。用户在使用时可以直接根据工厂类去创建所需的实例,而无需了解这些对象是如何创建以及如何组织的。有利于整个软件体系结构的优化。 请问什么是责任链器模式,责任链模式包含哪些角色、可以应用在哪些场景?定义:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。角色:处理者、具体处理者。场景:有许多对象可以处理用户的请求,希望程序在运行期间自动确定处理用户的那个对象;希望用户不必明确指定接受者的情况下,向多个接受者一个提交请求;程序希望动态指定可处理用户请求的对象集合 设计模式六大原则-单一职责原则、开放封闭原则、依赖倒转原则、里氏代换原则、迪米特法则、合成/聚合复用原则 标签:扩展编程设计模式class测试工作 2012-07-31 09:26 1823人阅读评论(0) 收藏举报 分类:OO(1) 原则,故名思议则是本质的意思。所谓擒贼先擒王,研究设计模式自然要先了解设计原则,所有的模式都是在这些原则的基础之上发展起来的,有的是侧重一个,有的是多个都有所涉及。看完设计模式之后,我感觉到每个模式都有这些原则的影子,还渗透着面向对象的三大属性,也觉得这些原则也都有相通之处,,正是有了他们才使我们由代码工人转为艺术家。下面我来点评一下六大原则,望各位拍砖: 1、单一职责原则(Single Responsibility Principle,简称SRP) 单一职责原则,就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会消弱或者一直这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破

酒店管理系统 UML建模分析

课程设计报告 课程名称UML建模与分析 设计题目酒店管理系统 专业班级12级软卓 指导教师徐卓然 小组成员: 酒店管理系统需求文档 1. 背景说明: 随着人民生活水平的提高,餐饮,住宿,娱乐业在

服务行业中占有越来越重要的地位。要使在当前酒店行业日趋激烈的竞争中脱颖而出,必须努力发展自己的特色。在酒店管理方面也要有自己的管理特色,避免传统管理方法的失误,使得酒店的信誉以及各个管理方面都能出现零失误,以及能给管理者和普通的营业员带来操作上的方便,对整个酒店各个方面的业务带来快捷、方便、高效的服务,使用户能够对这个软件感到满意。 目前大多数酒店提供的服务多种多样,规模大小也各不相同,但稍具规模的酒店必含下面三类服务:饮食、住宿和娱乐。由于我们对酒店行业没有具体的接触和实质性的了解。此次设计只能在一些收集到的基本材料与个人直观认识的基础上,简单模仿中等规模的酒店设计管理系统。 2.部门划分

2.1 饮食管理部 它是酒店基本部门之一。它提供服务的特点是实时性强、持续时间短,强调效率。例如,顾客人数、顾客所用的菜及其它饮料等种类繁多,数量不等;后勤各种活动如采购等频繁发生。对于饮食部门,需要较长时间保留的信息主要是财务信息,一方面便于期末汇总,另一方面便于向上级报告。 2.2 住宿管理部 它也是酒店基本部门之一。住宿管理部门的主要职责有: A.给个房间布置各种设备、分类、编号、制定收费标 准、分配服务人员。 B.登记旅客信息,确认其身份,登记其入住、退房。 C.统计各类房间的客满程度。 D.对本部门的财务流动进行登记处理。

2.3 娱乐管理部门 娱乐是酒店非主流服务,它的存在除了赢利,更多的是为了吸引顾客食宿。娱乐部门的特点与饮食部门很相似,可以用计算机完成并且有必要用计算机完成的有: A制定收费标准,分配负责人. B收入支出财务处理:编号、财务来源去处的摘要、数量、单价、数额、结余、经手人等。这些信息都需要长时间保留并上报。 C、酒店KTV、洗浴城和酒吧的管理与经营、 2.4 大厅部门 大厅部门是直接与客户打交道的部门,主要负责任务: A、客房的预定,客户入住登记,退房登记。 B、负责结账。 C、对礼仪队的分配与管理。

《UML系统分析和设计》

《UML系统分析和设计》

软工14级《UML系统分析与设计》 大作业 问题定义: 设计某医药公司进销存管理信息系统的进货、库存、销售三个组成部分。 进货子系统有 药品验收处理 1 产生进货传票(进货传票编码、商品编码、品名、规格、厂商、有效 期、进价、进货数量)。 2进货传票将被打印给供货商作为收货凭证。一次进货可有多项药品,由进货传票编码唯一标识;一种药品由商品编码唯一标识。系统设有一个商品目录(商品编码、品名、规格、厂商、有效期、销售价格)。 3当进货的药品是新药品(商品目录中没有的药品)时,进货子系统自动把新药品写入商品目录。 库存子系统有 1进货入库 2销售出库 处理维护库存帐(商品编码、品名、规格、厂商、有效期、进货量、进价、出库量、销售价、库存数量、库存下限量、库存上限量),库存帐不能做修改操作, 当进货入库时,根据进货传票产生一条新记录,库存数量加上进货量; 当销售出库时,根据销售传票产生一条新记录,库存数量减去出库量;商品编码是各药品的唯一标识字。 库存子系统设库存自动报警,当库存数量大于库存上限量或者小于库存下限量时,给出警告信息。 销售子系统有 定价处理和销售处理。 1定价处理有一个商品价格表(商品编码、品名、规格、厂商、有效期、建议价格、销售价格、批准责任人)首先由销售管理员定建议价格,经过经理批准后确定销售价,并自动更新商品目录的销售价; 2销售处理在公司的销售窗口,售货员根据顾客要求查找商品目录和库存帐,如果有货(库存数量满足顾客要求),一项销售成立,产生销 售传票的一条记录,一次销售可有多项记录,由销售传票唯一标识。销 售传票的数据结构是(销售传票编码、商品编码、品名、规格、厂商、 有效期、销售价、销售数量)。销售传票是库存子系统记录库存帐的依据。 销售传票将被打印给顾客作为提货凭证。 以上为本次试题的基本部分(称基本系统),为必做部分。事实上的进销存系统还有其它组成,例如“退货处理”、“客户管理”、“供货商管理”、“定价管理”等,有兴趣的同学可以选做或者补充某些附加内容。

23种设计模式_UML_类图及对应示例代码

23种设计模式UML 类图及对应示例代码(一) 收藏 1.DoFactory.GangOfFour.Abstract.Structural Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。 using System; namespace DoFactory.GangOfFour.Abstract.Structural { ///

/// MainApp startup class for Structural /// Abstract Factory Design Pattern. ///

class MainApp { ///

/// Entry point into console application. /// public static void Main() { // Abstract factory #1 AbstractFactory factory1 = new ConcreteFactory1(); Client client1 = new Client(factory1); client1.Run(); // Abstract factory #2 AbstractFactory factory2 = new ConcreteFactory2(); Client client2 = new Client(factory2); client2.Run(); // Wait for user input Console.Read(); } } // "AbstractFactory" abstract class AbstractFactory { public abstract AbstractProductA CreateProductA(); public abstract AbstractProductB CreateProductB(); } // "ConcreteFactory1" class ConcreteFactory1 : AbstractFactory { public override AbstractProductA CreateProductA() { return new ProductA1(); } public override AbstractProductB CreateProductB() { return new ProductB1(); } }

(完整版)3DSMAX课程标准

3DSMAX课程标准 课程名称: 3DSMAX 课程代码:210002 适用专业:艺术设计专业 学时:72 学分:3 一、课程性质 本课程的先修课程应为计算机文化基础、图形图像处理,学生应热爱所学专业,具有爱岗敬业和团队精神,具有理论联系实际、实事求是的科学态度,有较强的自学能力。《3ds MAX 三维动画》课程是计算机辅助设计专业的一门重要的专业课。目前3D Studio MAX 软件广泛应用于影视媒体、广告设计、机械设计和建筑设计等领域,本课程旨在讲授该软件的主要功能和操作技巧,为计算机辅助设计专业的学生将来从事产品的开发设计等工作领域打下基础。 二、设计思路 本课程应采用深入浅出的教学方法,突出动手能力的培养,提升学生的综合素质和职业能力。首先用比较浅显、有趣的技法制作模型,使学生快速建立对本课程的兴趣,从而学生得以能快速入门,了解和掌握3ds MAX应用的基本过程和方法;接着循序渐进引导学生掌握3ds MAX的高级建模技巧、贴图的制作与应用、摄影机的设置、布光方法和渲染输出效果图的方法;最后还要补充PhotoShop在3ds MAX效果图中的后期处理、简单动画等方面的应用。 三、课程培养目标 通过理论和实验教学,使学生掌握三维建模的一般方法,具备运用修改器工具制作三维变形造型,并运用材质编辑工具给三维体赋予材质,掌握放置灯光和摄像机的方法,能创建一个完整的场景,最后通过参数设置制作动画。 四、课程内容、要求及教学设计 (一)先(已)修课程和预备知识:计算机文化基础、图形图像处理 (二)相关职业资格:应该获得,鼓励获得计算机等级资格证书。

(四)课程教学资源条件 1.任课教师要求:学院教师必须为艺术类专业且应具有3年以上教学或实践经验。2.教学设施:计算机房、设计公司 3. 知识拓展:美学基础、形态构成基础、计算机基础等 4. 选用教材:?3ds MAX三维动画? 黄心渊林杉刘小玲高等教育出版社 注:其余可根据版本更新,结合当时情况而定,还可收集、参考网络中好的,优秀的案例精选,共享的精品课程内容来增加、补充教学。 5. 考核评价: ●平时练习、作业 30% ●独立制作一个完整场景与模型的效果图(上机) 60% ●提问、考勤 10% 五、编制说明 制定人: 审核人: 时间:

UML课程设计报告_汽车租赁系统的需求分析与设计

课程设计报告 2009 ~ 2010 学年第二学期 教学单位信息工程与技术系 课程名称 UML统一建模语言课程设计课程设计题目汽车租赁系统的需求分析与设计指导教师 XXXX 学生姓名 XXXXX 专业名称计算机科学与技术(数据库)年级 08级 汽车租赁系统的需求分析与设计

一.课程设计目的 UML统一建模课程是一门面向对象开发方法的设计语言。UML统一建模课程设计实验课,着重加强面向对象建模技术。使用UML统一建模语言,用需求模型简化业务领域;用分析模型验证用例的正确性,一致性,完备性,可行性;用设计模型标识解决方案。通过模型实现了从业务领域到软件领域的映射。通过建模,使问题可视化,形式化。通过一序列的建模和迭代活动,对于提高学生综合素质十分必要。 UML统一建模课程是本科类计算机专业的一门骨干课程,技术复杂,应用范围广。本课程设计实验主要内容:构建系统的分析模型、设计模型。主要目标如下: 1. 掌握面向对象的分析技术、设计技术; 2. 构建“汽车租赁系统”的需求分析模型和设计模型; 二.课程设计题目描述和要求 本课程设计中包含: A.软件需求分析 B.汽车租赁系统的需求分析 C.系统的UML基本模型 D.系统中的类 E.系统的配置与实现 1、系统目标 系统的整体目标是:利用互联网和信息化技术,结合汽车租赁经营的实际运作情况,建设一个覆盖汽车租赁经营全部业务的“汽车租赁系统”,通过该系统提高企业信息化水平,完善经营管理体系,提高员工素质,进一步加强企业市场竞争能力。 2、功能要求 “汽车租赁系统”中的功能需求可以包括以下几个方面: ●客户可以通过不同的方式(包括电话、前台、网上)预订车辆; ●能够保存客户的预订申请单; ●能够保存客户的历史记录; ●工作人员可以处理客户申请; ●技术人员可以保存对车辆检修的结果。 满足上述需求的系统主要包括以下几个模块: ●基本数据维护模块:该模块提供了使用者录入、修改并维护基本数据的途径。 ●基本业务模块:在系统中,客户可以填写汽车租赁申请表,工作人员处理这些表格;

实验一 设计模式综合应用(一)附源码+UML图

注:班里的可以向我要工程文件 实验一设计模式综合应用(一) 一、实验目的: 熟练掌握Java设计模式中的命令模式和观察者模式,并培养学生将两者综合应用到具体软件项目中的能力。 二、实验内容: 制作如图1所示GUI界面,需求如下: 1. 鼠标左键点击界面时,在鼠标所在位置填充一个直径为20像素的圆, 并在界面上方的标签上显示“新增圆点位于:(x,y)”; 2. 鼠标右键点击时,则实现undo操作,将最后填充的圆点从界面中删除, 并在界面上方的标签上显示“删除圆点位于:(x,y)”; 3. 界面下方的标签随时显示“鼠标位于:(x,y)”; 图1 GUI界面 三、实验要求: 1. 绘制和撤销圆点使用命令模式; 2. 两个标签内容的变更使用观察者模式; 3. 在代码实现之前,进行UML类图设计;

4. 根据UML类图,在eclipse中编程实现程序的功能。 四、实验学时:2+2学时(课外2个学时) 五、提示: 1.设计一个Circle类,该类对象用来记录某个填充圆的信息; 2. 每填充一个圆点,就实例化一个Circle类对象,并将其放置到具体命令对 象关联的List对象中,用来作为undo操作的依据; 3. 填充圆可以使用Graphics的fillOval方法; 4. 删除圆可以先将Graphics对象的颜色设置为画布的背景色,再使用 Graphics的fillRect方法; 5. 标签显示内容的需求不用观察者模式就可以轻松实现,但要求使用观察者 模式进行设计; 5. 实验完成后,将UML文件和程序的工程文件打包,命名为“实验一.rar”, 并上传至ftp://10.10.3.72。 六UML图 七源代码 1. package lsu.egg.sy1; public class Circle { private int x; private int y;

三维动画制作课程标准

课厦 程门 标软 准件 职 业 技 术 学 院 【三维动画制作】 课程代码:04143090 学时、学分:64学时、4学分 适用专业:游戏设计 编写人员:苏明辉、林晓丹、吴辉煌 专业建设指导委员会审批: 系部审批:

1课程性质与定位 《三维动画制作》是游戏设计专业的课程。该课程根据人才培养方案的要求制定,对动漫设计与制作专业起到辅助作用,是一门以实践为主,结合理论共同教学的课程。课程以美术为基础,结合软件基础类课程为前导,利用实践结合课堂的模式,基于工作过程的教与学,通过强化学生的操作技能,让学生熟练掌握三维动画制作的基础技术,让学生确实提高动画中期制作能力。 课程设计在理念上主要注重了以下几点:以职业能力为述求,重点突出学生的能力,强调以学生为主要,理论和实践一体化。 2课程设计思路 《三维动画制作》在课程建设中,首先根据专业人才培养目标及职业岗位群体对课程的需求确定课程目标,明确培养目标中的定位,分析课程的性质,确定课程内容。并以真实项目及工作流程为依据,融合序化教学内容,在教学实施工程中,根据教学内容的不同,采取相应的教学方法和手段,对教学效果进行检查廉价,判断是否达到课程目标要求。通过本课程学习,使学生能够应用3dsmax软件进行一般模型的制作、常见贴图与材质的绘制与制作,能深刻理解动画制作的完整流程。能够胜任使用3dsmax软件进行的基础动画制作,为系统地学习后续动漫专业的知识与技能打下坚实的基础。 具体思路如下: 1.教学内容上强调实用性,突出行业岗位实用能力培养,制定切合实际的教学标准,以岗位能力出发选择相关知识点、技能点,形成理论与实际相结合的课程模式。 2.教学模式上通过情景、过程、类比、模拟等教学模式提高学生的综合能力。通过多种形式教学途径与手段,通过课堂教学与实践教学紧密结合的育人模式调动学生学习积极性和主动性。 3.在教学方式上,采用“案例法”、“任务驱动”的方式使教学内容合理流动,使学生完成任务的过程中不知不觉实现知识的传递、迁移和融合,在研发认识和实践训练中深怕必须的专业理论和实践技能。

第三章 产品建模技术

第三章机械CAD/CAM建模技术 ?3.1 几何建模概述 ?3.2 三维几何建模技术 ?3.3 特征建模技术 ?3.4 产品结构建模

3.1 几何建模概述 一、机械CAD/CAM几何建模概述 1. 几何建模的概念 CAD的几何建模(Geometry Modehelling):是以计算机能够理解的方式,对实体进行确切的定义,赋予一定的数学描述,再以一定的数据结构来描述几何实体,从而在计算机内部构造一个实体模型。 包含:几何信息、拓补信息和其它属性数据

几何建模的方法:将对实体的描述和表达建立在几何信息和拓扑信息的基础上。 建模:把人们对的三维事物的认识描述到计算机内部,让计算机理解的过程大致可以分为三个阶段,即几何建模、产品建模和产品结构建模。

2. 几何建模技术的发展 线框模型(Wireframe Model) 20世纪60年代中期表面模型(Surface Model) 20世纪70年代中期实体模型(Solid Model) 20世纪70年代后期

几何建模的发展初期(线框建模时代),CAD技术主要用于计算机绘图。表面(曲面)建模和实体建模的出现,使用户基于统一的产品的数字化模型可生成工程分析的工程模型和供数控加工的工艺模型,实现CAD/CAE/CAM集成化。 产品结构建模是近年来出现的一种面向装配的建模技术,它包含了产品从零件、部件到总成的完整信息。

二、机械CAD/CAM几何建模技术的基本知识1)几何信息和拓扑信息 1.几何信息:指物体在空间的形状、尺寸及位置的描述。 用数学表达式来描述。但是数学表达式的几何元素是无界的,在实际应用中需要把数学表达式和边界条件相结合。 几何元素:点、直线或曲线、平面或曲面 组成几何模型的主要部分,可用合适的数据结构进行组织并存储在计算机内,供CAD/CAM使用。

UML系统分析和设计

软工14级《UML系统分析与设计》 大作业 问题定义: 设计某医药公司进销存管理信息系统的进货、库存、销售三个组成部分。 进货子系统有 药品验收处理 1 产生进货传票(进货传票编码、商品编码、品名、规格、厂商、有效 期、进价、进货数量)。 2进货传票将被打印给供货商作为收货凭证。一次进货可有多项药品,由进货传票编码唯一标识;一种药品由商品编码唯一标识。系统设有一个商品目录(商品编码、品名、规格、厂商、有效期、销售价格)。 3当进货的药品是新药品(商品目录中没有的药品)时,进货子系统自动把新药品写入商品目录。 库存子系统有 1进货入库 2销售出库 处理维护库存帐(商品编码、品名、规格、厂商、有效期、进货量、进价、出库量、销售价、库存数量、库存下限量、库存上限量),库存帐不能做修改操作, 当进货入库时,根据进货传票产生一条新记录,库存数量加上进货量;

当销售出库时,根据销售传票产生一条新记录,库存数量减去出库量;商品编码是各药品的唯一标识字。 库存子系统设库存自动报警,当库存数量大于库存上限量或者小于库存下限量时,给出警告信息。 销售子系统有 定价处理和销售处理。 1定价处理有一个商品价格表(商品编码、品名、规格、厂商、有效期、建议价格、销售价格、批准责任人)首先由销售管理员定建议价格,经过经理批准后确定销售价,并自动更新商品目录的销售价; 2销售处理在公司的销售窗口,售货员根据顾客要求查找商品目录和库存帐,如果有货(库存数量满足顾客要求),一项销售成立,产生销售传票的一条记录,一次销售可有多项记录,由销售传票唯一标识。销售传票的数据结构是(销售传票编码、商品编码、品名、规格、厂商、有效期、销售价、销售数量)。销售传票是库存子系统记录库存帐的依据。销售传票将被打印给顾客作为提货凭证。 以上为本次试题的基本部分(称基本系统),为必做部分。事实上的进销存系统还有其它组成,例如“退货处理”、“客户管理”、“供货商管理”、“定价管理”等,有兴趣的同学可以选做或者补充某些附加容。 作业要求: 1.针对上述需求,请用面向对象的系统分析和设计方法完成附件中作业要求; 2.解答时可以查询资料、可以讨论、可以使用建模工具(如Rose、together等),

UML选择题

UML选择题

-、选择题 1.封装是指把对象的(A)结合在一起,组成一个独立的对象。 A. 属性和操作 B.信息流 c.消息和事件 D.数据的集合 2.封装是一种(C)技术,目的是使对象的生产者和使用者分离,使对象的定义和实現分1开。 A. 」_程化 B.系统维护 C.信息隐敞 D.产生对象 3.面向对象方法中的(D)机制使子类可以自动地例有(复制)父类全部属性和操作。 A.约東 B.对象映射 c.信息隐蔽 D.继承 4.在c++中,使得在多个类中能够定义同一个操作或属性名,并在每一个类中有不同的实現的一种方法是(B)。 A.继承 B.多态性 C.约束 D.接口 1.UML的软件开发以(A)为中心,以系统体系结构为主线,采用循环、迭代、渐增的方式进

行开发。 A.用例 B.对象 C.类 D.程序 2.uML的(B)模型图由类图、对象图、包图、构件图和配置图组成。 A.用例 B.静态 C.动态 D.系统 3.uML的(c)模型图由活动图、顺序图、状态图和协作图组成。 A.用例 B.静态 C.动态 D.系统 4.UML的最终产物就是最后提交的可执行的软 件系统和(D)。 A.用户手册 B.类图 C.动态图 D.相应的软件文档资料 5.在u ML的需求分析建模中,(B)模型图必 须与用户反复交流并加以确认。 A.配置 B.用例 C.包 D.动态 1.可行性研究分析包括经济可行性分析、技术可行性分析和(B)。

A.风险可行性分析 B.法律可行性分析 c.资源可行性分析 D.效益可行性分析 2.uML的客户需求分析模型包括(A)模型、初始类图、初始对象图和活动图组成。 A.用例 B.静态 C.动态 D.系统 3. uML客.J·?需求分析使用的 CRC卡上“责任”一栏的内容主要描述类的( C )和操作。 A.对象成员 B.关联对象 C.属性 D.私有成员 4.uML客户需求分析产生的用例模型描述了系 统的(D)。 A.状态 B.体系结构 c.静态模型 D.功能要求 5.在u ML的需求分析建模中,用例模.型必须与 (D)反复交流并加以确认。 A.软件生产商 B.用户单位领导 C.软件开发人员 D.问题领域专家 6.在u ML的需求分析建模中,对用例模.型中的 用例进行细化说明应使用(A)《图一>文字一>

图书管理系统UML建模

图书管理系统UML建模: 1.1、确定系统涉及的总体信息 (1)读者: ?借书 ?还书 ?书籍预定 (2)图书馆管理员: ?书籍借出处理 ?书籍归还处理 ?预定信息处理 (3)系统管理员: ?增加书目 ?删除或更新书目 ?增加书籍 ?减少书籍 ?增加读者帐户信息 ?删除或更新读者帐户信息 ?书籍信息查询 ?读者信息查询 1.2.确定系统的参与者 (1)分析系统所涉及的问题领域和系统运行的主要任务:?分析使用该系统主要功能部分的是哪些人 ?谁将需要该系统的支持以完成其工作 ?系统的管理者与维护者 (2)图书馆管理系统的参与者: ?读者(借阅者) ?图书馆管理员 ?图书馆管理系统维护者 1.3.确定系统的用例 1.3.1借阅者请求服务的用例 (1)查询借阅者信息 (2)查询书籍信息 (3)增加书目 (4)删除或更新书目 (5)增加书籍 (6)删除书籍 (7)添加借阅者帐户

(8)删除或更新借阅者帐户 1.3.2 图书馆管理员处理借书、还书等的用例 (1)处理书籍借阅 (2)处理书籍归还 (3)删除预定信息 1.3.3系统管理员进行系统维护的用例 (1)查询借阅者信息 (2)查询书籍信息 (3)增加书目 (4)删除或更新书目 (5)增加书籍 (6)删除书籍 (7)添加借阅者帐户 (8)删除或更新借阅者帐户 1.4.使用Rational Rose绘制用例图的步骤(具体详见教材P83-92) 1.创建用例图 2.用例图工具栏按钮简介 3.工具栏的定制 4.添加参与者与用例 5.添加参与者与用例之间的关系 6.添加用例之间的关系 1.5.图书馆管理系统的用例图 1.5.1借阅者请求服务的用例图

3DMAXVRAY效果图表现课程标准

《3DMAX+VRAY效果图表现》课程标准 一、课程概述 (一)制定依据 本标准依据《艺术设计专业园林景观工程设计与技术方向人才培养方案》中的人才培养规格要求和对《3DMAX+VRAY效果图表现》课程教学目标要求而制定。用于指导其课程教学与课程建设。 (二)课程的性质与地位 本课程通过系统学习3DMAX理论知识与技能,使学生了解三维设计基本原理,掌握三维建模的基本方法、材质的使用编辑、灯光效果以及VRAY 渲染器的使用等基本设计技能,并能运用于三维景观效果图的制作中。要求学生掌握3DMAX与VRAY渲染器的基本理论、制作方法,加强3DMAX 软件的操作运用,利用课余时间扩展相关知识。从而为今后从事实际工作 (三)课程设计思路 《3DMAX+VRAY效果图表现》是艺术设计专业园林景观工程设计与技术方向学生的专业技术课程,是开启他们进入园林景观设计殿堂的第一步。考虑到高职学生以技能为主,因此在尽量减少纯粹的理论知识讲授,而是以实际案例项目中所需要用到的关键知识点为基础,以项目驱动的形式,

由教师布置项目,学生自主操作,教师辅导,成果点评分享,以此来加深学生对3DMAX的软件性质与软件要求的认识,为后续的各项课程打下基础。 (四)课程容选取的依据 以知识适度够用为原则,选取关键知识点,以达到让学生知道3DMAX 是做什么的、该怎么做和以后会怎么做即可。更多的知识点将依靠后续的课程设置来逐渐讲授。本课程容的分为两个模块,一个是3DMAX基本操作,一个是效果图案例制作。在3DMAX基本操作模块,将讲授3DMAX必修的基础性容和学习应该达到的基本要求。而效果图案例制作模块则选择几个代表性的设计案例来讲授制作。 1.学习情境中的知识点与现实密切相关 学习情境中的知识点必须与学生现实生活密切相关,以激发他们的学习兴趣。 2.学习领域课程设计基于认知规律,从简单到复杂 学习型的知识点,基于认知规律,从简单到复杂。学习任务在包含前一个任务的基础上增加知识点,难度层层推进,有序实现教学目标。 3.注重学生的可持续发展能力 4.课程结构是静态的,教学载体是动态的、开放的 在确定课程容时,各个载体包含的知识点是静态的,老师或学校可根据自己的情况选择合适的载体。 二、课程目标 (一)总目标 通过校企合作的任务驱动型项目活动培养学生具有良好职业道德、专业技能水平、可持续发展能力,使学生掌握三维效果图制作的基础技能,初步形成一定的学习能力和课程实践能力,并培养学生诚实、守信、负责、善于沟通和合作的团队意识,及其重质量、守规和安全意识,提高学生的职业能力,并通过理论、实训、实习相融合的教学方式,边讲边学、边学

试题管理系统UML系统分析与设计

《信息系统分析与设计》课程设计报告 班级:信管1002 姓名: 学号:

试题管理系统 课程设计要求: 1、应画出该系统的完整用例图。 2、给出负责模块的用例的详细事件流描述。 3、从用例的事件流描述中获取候选的实体类,确定类之间的关系 并画出正确的类图。 4、画出用例的顺序图以及协作图。 5、根据用例的事件流描述,画出用例的活动图。 6、根据类图,画出类的状态图。 7、最后给出系统的构件图、部署图。 8、具有完整清晰的设计流程。 9、各图布局合理、美观。 10、提供完整的课程设计说明书。 课程设计说明书的正文应包含以下几部分: 1、封面; 2、系统分析:给出详细分析过程; 3、系统设计:给出系统的UML图; 4、遇到的问题及解决方案。 摘要 传统的试题管理方法因受到时间、空间和管理维护等因素的限制, 已很难适应

现代信息社会教育教学发展的需求。随着计算机技术、网络技术和数据库技术的成 熟与稳定以及全国各高校校园网的建立和教育教学管理信息化程度的不断提高, 试 题管理系统获得了前所未有的发展前景与强大的技术支持。因此, 教学管理者希望 有一个集试卷分类、试卷管理、试题管理等功能于一体的网络试题库管理系统, 以 提高管理效率。而利用计算机自动生成试卷,并通过积累逐步形成有效试题库,使 试题和试卷的管理高效便捷,同时也使教学方式和考试方式有更多选择。这对提高 教学效率,有效利用资源和使传统的教学方式逐步走向自动化具有重要作用。 所开发的系统提供了试卷分类、试卷管理、试题管理及试卷生成等功能,为教师提 供了一个功能强大的平台,通过这个平台教师可以根据实际教学情况来组成相应的 试题与试卷,并轻松的管理试题库与试卷库,在实际应用中可以有效减轻教师的工 作量。 关键词:试题管理;试卷管理;UML;信息系统分析 目录 一、试题库管理系统的调查及初步分析 (2) (一)试题库管理系统的开发背景 (2) (二)试题库管理系统的需求分析 (3)

uml与设计模式

返回总目录
目 录
第 10 章 UML 与设计模式 ...................................................................................2 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 10.10 10.11 什么是模式 ................................................................................................2 为什么要使用设计模式 ............................................................................3 模式的分类 ................................................................................................4 模式的组成元素 ........................................................................................6 模式的质量 ................................................................................................7 一个简单的模式例子 代理模式 ............................................................8 UML 对模式的支持 ..................................................................................9 应用设计模式进行系统设计 ..................................................................14 模式选择举例 评估项目 ......................................................................15 模式应用举例 形状编辑器 ................................................................20 小 结 ..................................................................................................36

图书馆管理系统UML建模作业

图书馆管理系统UML建模

1 系统功能需求 ①借阅者可以通过网络查询书籍信息和预定书籍。 ②借阅者能够借阅书籍和还书。 ③图书管理员能够处理借阅者的借阅和还书请求。 ④系统管理员可以对系统的数据进行维护,如增加、删除和更新书目,增加、删除和更新借 阅者帐户,增加和删除书籍。 ⑤系统主要包括以下几个模块: 基本数据维护模块 基本业务模块 数据库管理模块 信息查询模块 2 基本数据维护模块 基本数据维护模块包括的主要功能模块: ①添加借阅者帐户 ②修改更新借阅者帐户信息 ③添加书目 ④修改和更新书目信息 ⑤添加书籍 ⑥删除书籍 3 基本业务模块 基本业务模块包含的功能: ①借书 ②还书 ③书籍预留 ④取消书籍预定 4 数据库模块 数据库模块的功能: ①借阅信息管理 ②书籍信息管理 ③帐户信息管理 ④书籍预留信息管理 5 信息查询模块 信息查询模块主要是查询数据库中的相关信息: ①查询书籍信息 ②查询借阅者信息 系统的参与者主要有三类:读者(也可称为借阅者)、图书馆管理员、图书馆管理系统维护者。

1、系统中的类 读者类Reader 图书馆人员类LibraryStaff 图书馆管理员类LibraryManager系统管理员类SystemManager 图书馆馆长类LibraryBoos

图书馆数据库类LibraryDatabase 图书馆资源数据库ResourcesDatabase 图书馆读者数据库ReaderDatabase 图书馆工作人员数据库LibraryStaffbase 图书馆资源类LibraryResources 实物书籍类BooksResources电子书籍类ElectronicResources 书类Book Magazine杂志类

ug课程标准

附件四理实一体课程的课程标准参考格式(非项目课程) 《三维CAD/CAM》课程标准 课程编码:课程类别:专业技术课 适用专业:数控技术应用授课单位:塔城地区乌苏职业技术学校 学时:72 编写执笔人及编写日期:张红茂2016年5月19日 审定负责人及审定日期: 一、课程定位 1.课程性质与作用 本课程是机械制造及自动化专业、数控专业和模具专业必修的一门专业技术课程,其功能:旨在培养学生对流行的UG、Pro/E等三维CAD/CAM软件的三维建模功能的掌握能力,并对现代设计方法有所认识。在现代设计与加工领域,由于大量曲面体的存在,使传统的使用二维工程图来表达零件的方法受到了冲击,三维数字化模型应运而生,数字化模型已成为曲面零件的标准化表达方式。本课程就是要让学生能够生成零件的三维数字化模型,为数字化制造技术及应用打下坚实的基础。通过前序课程的学习,学生已基本具备手工编制简单零件程序的能力,而对于一般复杂程度及其以上的零件编程,借助CAD模型采用电脑自动编程,弱化了高级程序编制能力,是学生提高水平和能力的较轻松的一条途径。因此,本课程的基本定位是培养具有数字化设计与制造能力的复合型高级技能型人才。 2.课程基本理念 该课程属于计算机辅助设计与辅助制造(CAD/CAM)类课程,该课程是在学生学完必要的专业基础课及相关专业课程的基础上开设的一门专业核心课程,该课程又是连接专业课与学生技能的技术类课程。该课程囊括了CAD、CAM两大项。其中,学生平时表达设计成果、设计理念、机械与模具结构及搞毕业设计等都需使用到该课程所教授CAD 的知识及技能,具体内容包括二维曲线的绘制与编辑、实体建模、曲面建模、工程制图、装配的方法与技巧等。而CAM是将建模原理等理论知识与编程加工等实践过程相结合,将加工过程中的干涉检验等虚拟仿真与工件到机床坐标系转换等实际操作相结合,将软件编程的软环节与定位装卡等硬环节相结合,深入分析数字化制造过程中加工规划、数控加工等关键环节。该方式特别适用于单件小批量零件的加工及新产品的试制,是模具专业必备知识之一,同时也是数控和机制专业提高能力的重要途径。综上所述,学习该课程是为适应机械产品三维设计及加工等岗位作准备。 3.课程设计思路

uml设计模式三个工厂类图代码详解

工厂模式在《Java与模式》中分为三类: 1)简单工厂模式(Simple Factory):不利于产生系列产品; 2)工厂方法模式(Factory Method):又称为多形性工厂; 3)抽象工厂模式(Abstract Factory):又称为工具箱,产生产品族,但不利于产生新的产品; 这三种模式从上到下逐步抽象,并且更具一般性。 GOF在《设计模式》一书中将工厂模式分为两类:工厂方法模式(Factory Metho d)与抽象工厂模式(Abstract Factory)。将简单工厂模式(Simple Factory)看为工厂方法模式的一种特例,两者归为一类。 二、简单工厂模式 简单工厂模式又称静态工厂方法模式。重命名上就可以看出这个模式一定很简单。它存在的目的很简单:定义一个用于创建对象的接口。 在简单工厂模式中,一个工厂类处于对产品类实例化调用的中心位置上,它决定那一个产品类应当被实例化, 如同一个交通警察站在来往的车辆流中,决定放行那一个方向的车辆向那一个方向流动一样。 先来看看它的组成: 1) 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中它往往由一个具体类实现。 2) 抽象产品角色:它一般是具体产品继承的父类或者实现的接口。在java中由接口或者抽象类来实现。 3) 具体产品角色:工厂类所创建的对象就是此角色的实例。在java中由一个具体类实现。 三、工厂方法模式 工厂方法模式是简单工厂模式的进一步抽象化和推广,工厂方法模式里不再只由一个工厂类决定那一个产品类应当被实例化,这个决定被交给抽象工厂的子类去做。 来看下它的组成: 1)抽象工厂角色:这是工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。在java中它由抽象类或者接口来实现。 2)具体工厂角色:它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象。 3)抽象产品角色:它是具体产品继承的父类或者是实现的接口。在java中一般有抽象类

uml中的关系

uml中的关系 1、关联 双向关联: C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。 在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针。对象引用本身就是有向的,更适合表达我们所讨论的那种关系。所以这种关系在设计的时候比较少用到,关联一般都是有向的。 使用ROSE 生成的代码是这样的: class C1 ...{ public: C2* theC2; }; class C2 ...{ public: C1* theC1; }; 双向关联在代码的表现为双方都拥有对方的一个指针,当然也可以是引用或者是值。 单向关联: C3->C4:表示相识关系,指C3知道C4,C3可以调用C4的公共属性和方法。没有生命期的依赖。一般是表示为一种引用。 生成代码如下:

class C3 ...{ public: C4* theC4; }; class C4 ...{ }; 单向关联的代码就表现为C3有C4的指针,而C4对C3一无所知。 自身关联(反身关联): 自己引用自己,带着一个自己的引用。 代码如下: class C14 ...{ public: C14* theC14; }; 就是在自己的内部有着一个自身的引用。 2、聚合/组合 当类之间有整体-部分关系的时候,我们就可以使用组合或者聚合。

聚合:表示C9聚合C10,但是C10可以离开C9而独立存在(独立存在的意思是在某个应用的问题域中这个类的存在有意义。这句话怎么解,请看下面组合里的解释)。 代码如下: class C9 ...{ public: C10 theC10; }; class C10 ...{ }; 组合(也有人称为包容):一般是实心菱形加实线箭头表示,如上图所示,表示的是C8被C7包容,而且C8不能离开C7而独立存在。但这是视问题域而定的,例如在关心汽车的领域里,轮胎是一定要组合在汽车类中的,因为它离开了汽车就没有意义了。但是在卖轮胎的店铺业务里,就算轮胎离开了汽车,它也是有意义的,这就可以用聚合了。在《敏捷开发》中还说到,A组合B,则A需要知道B的生存周期,即可能A负责生成或者释放B,或者A通过某种途径知道B 的生成和释放。 他们的代码如下: class C7 ...{ public: C8 theC8; }; class C8 ...{ }; 可以看到,代码和聚合是一样的。具体如何区别,可能就只能用语义来区分了。 3、依赖

信息系统建模答案

《信息系统建模》 一、单选题 1.(A或者B)可用于描述用户接口、设备控制器和其他具有反馈的子系统,它还可用于描述在生命其中期中跨越多个不同性质阶段的被动对象的行为,在每一个阶段该对象都有自己特殊的行为。 A.状态机视图B.模型管理视图C.动态视图D.静态视图 2.()是对象与其他外部世界相互关联的唯一途径。 A.消息传递 B.状态转换 C.接口 D.函数调用 3.()是在分析模型的基础上,添加了设计元素的结果,使得分析模型更加接近系统实现。A.领域模型 B.数据模型 C.设计模型 D.概念模型 4.在UML活动图中,()表示活动需要输入的对象或者作为活动的处理结果输出的对象。A.并发控制 B.决策点 C.对象 D.活动 5.UML通过图形化的表示机制从多个侧面对系统的分析和设计模型进行刻画,其中()包括构件图,它描述软件系统中各组成构建,构件的内部结构以及构件之间的依赖关系。A.行为视图 B.构件视图 C.结构视图 D.用例视图 6.在UML顺序图中,如果一条消息从对象a传向对象b,那么其()是一条从b指向a 虚线有向边,它表示原消息的处理已经完成,处理结果(如果有的话)沿原消息传回。A.返回消息 B.创建消息 C.自消息 D.销毁消息 7.在UML中,()可以对模型元素进行有效地组织,如类,用例,构件,从而构成具有一定意义的单元。 A.构件 B.包 C.节点 D.连接 8.()描述软件系统中的构件及构件之间的构成关系和依赖关系。 A.状态图 B.对象图

C.构件图 D.部署图 9.泛化使得()操作成为可能,即操作的实现是由它们所使得的对象的类,而不是由调用者确定的。 A.多重 B.多态 C.传参 D.传值 10.在用例图中,执行者之间的关系只有()一种。 A.扩展 B.包含 C.继承 D.实现 11.以下哪个选项不是状态图中三个常用的活动之一? A.入口动作 B.出口动作 C.动作 D.中间动作 12.如果用例A和用例B相似,但A的动作序列是通过改写B的部分动作或者扩展B的动作而获得的,则称()。 A.用例A包含用例B B.用例A扩展用例B C.用例A继承用例B D.用例A实现用例B 13.UML 中所谓的“泛化”可以用以下哪个术语来代替?A或者B A.聚合 B.继承 C.抽象 D.封装 14.在UML活动图中,()表示操作之间的信息交换。 A.控制流 B.信息流 C.初始活动 D.活动 15.在面向对象程序设计中,对象与对象之间的协作是通过_________机制来实现的。A.参数传递 B.消息传递 C.深拷贝 D.浅拷贝 16.一般情况下,可以将面向对象中的聚合概念区分为()关系。 A.继承 B.关联 C.组合 D.聚合

相关主题
文本预览
相关文档 最新文档