使用EnterpriseArchitect进行UML建模-6-顺序图
2020年智慧树知道网课《面向对象与UML(山东联盟)》课后章节测试满分答案
绪论单元测试1【判断题】(20分)UML是面向对象的软件建模语言,可应用到软件开发全过程。
A.对B.错2【判断题】(20分)面向对象是当今主流的软件开发思想。
()A.对B.错3【多选题】(20分)下列哪些工具可以用来进行UML建模?()A.MicrosoftOfficeVisioB.EnterpriseArchitect(EA)C.RationalRoseD.StarUML4【多选题】(20分)我们要从本课程中学到哪些知识?()A.面向对象的基础知识B.UML软件建模C.面向对象的设计原则D.面向对象编程语言5【多选题】(3分)平时分析问题,总要获取哪些方面的信息?()A.事物之间的关系是什么?B.事物的特征和行为是什么?C.问题中涉及哪些事物?D.事物之间如何协作完成任务?第一章测试1【多选题】(20分)以下对软件建模描述正确的是()A.每个模型可以有多种表达方式,从不同角度来刻画系统。
B.描述同一个系统的多个模型只能相对孤立,不能完全孤立,完全孤立的模型是不完整的C.要正确建模,模型必须准确反映软件系统的真实情况。
D.越庞大复杂的系统,建模的重要性越大。
E.模型是对现实世界的简化,但不能掩盖重要的细节。
2【单选题】(20分)模型的实质是什么?()A.对现实的复杂化B.对现实的简化C.便于交流D.可视化3【单选题】(20分)对软件模型而言,下面说法的是()A.是软件的标准文档B.是软件的中间形态C.是人员交流的媒介D.是软件升级和维护的依据4【单选题】(20分)以下关于模型的说法的是()A.一个好的模型包括那些有广泛影响的主要元素,而忽略那些与给定的抽象水平不相关的次要元素。
B.模型必须是可视化的。
C.通过建模可以帮助人们理解复杂的问题。
D.模型是对现实的简化。
5【单选题】(20分)以下哪一个选项不能当做模型?()A.交通地图B.地球仪C.电路设计图D.灭火器第二章测试1【单选题】(20分)在下面所述中,关于UML的说法不正确的是()A.UML不是过程也不是方法,但允许每一种过程和方法使用它。
Enterprise Architect 入门教程
EA入门教程一、安装及汉化过程访问,下载最新的Enterprise Architect(以下简称EA)安装包及汉化包。
执行安装程序:【图1】基本是一路“next”就可以安装成功了。
然后执行汉化包:【图2-1】也是一路“下一步”就可以了,请注意在选择汉化路径的时候,需要浏览到原来安装的目录下。
这里就已经安装好了EA汉化版软件了。
【图2-1】二、新建项目打开EA汉化版,我们可以看到:【图3】点击“创建新项目”:【图4】输入EA项目文件的保存路径,同时保存进入下一步。
【图5】这里可以选择一些基本的模型包,我们这里选择了几个常用的,接下来EA会自动在项目浏览器中生成这些模型包。
【图6】三、项目浏览器的使用项目浏览器是EA项目的核心窗口,我们创建的全部元件及图形,都将在项目浏览器中进行管理。
展开一个预设的模型包,我们可以看到树形结构的项目浏览器中,有着图表,包(类似文件夹),和元件。
双击图表会打开图表:【图7】双击元件将打开该元件的属性对话框:【图8】四、新建图表和新建元件在项目浏览器的节点上,我们可以点击右键“添加”–>“新增图表”,打开新增图表的对话框:【图9】输入图表名称并选择好了需要的图表类型,点击“确定”就可以生成图表了,同时EA将会打开该图表。
【图10】新增元件有两种方法,一是从工具箱中将元件拉到图表上面,同时EA将打开该元件的属性对话框,填写好元件的名称及相关的配置,便能生成一个元件。
【图11-1-2-3】二是从项目浏览器或者图表中右键“添加”–>“新增元件”,从打开的新增元件对话框中产生。
当然,这样产生的元件,将只是在项目浏览器中看到,需要将它拉到图表中才能放置在图表上。
【图12-1-2-3】五、工具箱的使用工具箱里面有着EA中全部的元件,可以从工具箱的顶部“More Tools”按钮上,点击切换当前工具箱的元件类型。
【图13-1-2】六、其他窗口的介绍在EA顶部工具栏空白处点击右键,便可以看到全部的窗口列表。
Enterprise Architect 中文经典教程
Enterprise Architect 中文经典教程资料整理:/bluid/一、Enterprise Architect简介Enterprise Architect是一个对于软件系统开发有着极好支持的CASE软件(Computer Aided Software Engineering)。
EA不同于普通的UML画图工具(如VISIO),它将支撑系统开发的全过程。
在需求分析阶段,系统分析与设计阶段,系统开发及部署等方面有着强大的支持,同时加上对10种编程语言的正反向工程,项目管理,文档生成,数据建模等方面。
可以让系统开发中各个角色都获得最好的开发效率。
二、创建新项目安装好了EA汉化版后,启动软件。
点击“创建新的项目”,打开创建新项目对话框。
【图1】这里可以选择各种的初始的模板包。
我们选择了其中几个,然后确定打开了项目浏览器。
我们的项目将从这里开始了。
【图3】三、EA软件配置在使用软件之前,我们先来对它进行配置。
打开“工具”-->“选项”。
【图4】常规配置中,比较重要的是作者这项。
因为在EA项目的团队协作中,作者是每个人的身份标识。
在代码工程中,最好把文件编码设置成UTF8或者是GB中文。
其他方面的配置,因为都是中文的,也比较容易理解。
有些不明的地方,可以多琢磨。
另外对于最下面的十种编程语言,可以根据自己的需要,进行一些配置。
比如PHP,可以配置PHP4或者是PHP5,那么生成的代码也是有些不同的。
还可以隐藏其他没有用到的语言。
四、用例图,类图的使用用例图(use case)用例图是我们做系统分析的通常第一步,是非常重要的。
毕竟大部分的开发流程,都将需求分析作为首要步骤,也是必要步骤。
将系统需求化作图型表达出来。
首先是在项目浏览器中,右键“添加”-->“新建图表”。
【图5】然后可以加入一些角色和用例,在每次在工具箱里面拉出一个元件,都将打开这个元件的设置对话框,在对话框内填入元件的名称等信息。
enterprise architecture制作uml类图教程
看点开源代码学习下,本想找个代码查看方便点的工具,便于理清代码层次,结果发现了Enterprise Architect这一好工具,试用下来还挺方便的。
功能上和Rational Rose大致是一类,用处很广,很多我都不懂,知道能画各种UML图,支持的源码语言类型包含如下图中几种,下面是简单记录用Enterprise Architect 从一个完整的开源代码生成出来类图。
1、project---new project 建立工程,会弹出配置框,选择要包含的图形,只是分析代码结构,选择'class'类图即可(如下图),完成工程建立。
2、在右侧Project Browser窗口中,在目录上右键选择Code
Engineering---Import Source Directory(如下图).选择好源码目录及语言类型后,“OK”开始导入,导入的过程即会生成工程配置中包含的图类型,默认是以命名空间为单元生成逻辑图。
3、导入完成后,在Project Browser窗口中,源码目录下,即可选择打开生成的类图(如下图)。
4、生成出来的图,可以通过菜单Diagram---Copy Image将图片复制到别的文档中进行处理。
UML九种建模图--顺序图
UML九种建模图--顺序图概述顺序图是⼀种交互图(interaction diagram).交互图展现了⼀种交互,它由⼀组对象或参与者以及它们之间可能发送的消息构成。
交互图专注于系统的动态视图。
顺序图是强调消息的时间次序的交互图。
组成顺序图主要有4个标记符:对象、⽣命线、消息和激活。
对象三种表⽰⽅法1.包括对象名和类名,2、只有类名3.只有对象名⽣命线⽣命线⽤于描述对象的存在周期,对象下⽅的虚线就是该对象的⽣命线。
激活控制焦点是指活动者或对象处于执⾏状态的时间段消息消息⽤于描述对象间交互的⽅式及内容。
消息分为四种:同步消息、异步消息、返回消息、⾃关联消息1.同步消息:⼀个对象向另⼀个对象发出同步消息后,将处于阻塞状态,⼀直等到另⼀个对象的回应表⽰⽅式:2.异步消息:⼀个对象向另⼀个对象发出异步消息后,这个对象可以进⾏其他的操作,不需要等到另⼀个对象的响应表⽰⽅式:3.返回消息:同步消息的返回消息表⽰⽅式:4.⾃关联消息:⽤来描述对象内部函数的互相调⽤表⽰⽅式:还有顺序图中对于流程控制的模块:复合⽚段复合⽚段有多种,在此主要介绍⼀下⼏种:条件判断、可选、循环、同步1.条件判断:⽤于描述代码中if…else…这种结构标记为“alt”例如:2.可选:是⼀种特殊的“条件判断”,它只是⼀个if,没有else if或else 可选的标记为:opt3.循环:是指代码中的for、while之类的语句块循环的标记为:loop例如:下图中[m,n]是指⾄少执⾏m次,最多执⾏n次4.同步:⽤于描述多线程的情况同步的标记是:par画顺序图的步骤:1. 确定交互的范围2. 确定参与交互的活动者与对象3. 确定活动者、对象的⽣存周期4. 确定交互中产⽣的消息5. 细化消息的内容。
UML实践----用例图、顺序图、状态图、类图、包图、协作图
UML实践----用例图、顺序图、状态图、类图、包图、协作图2009-01-20 作者:Randy Miller 来源:网络面向对象的问题的处理的关键是建模问题。
建模可以把在复杂世界的许多重要的细节给抽象出。
许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目的是展示出UML的精彩之处。
UML中有九种建模的图标,即:∙用例图∙类图∙对象图∙顺序图∙协作图∙状态图∙活动图∙组件图∙配置图本课程中的某些部分包含了这些图的细节信息的页面链接。
而且每个部分都有一个小问题,测试一下你对这个部分的理解。
为什么UML很重要?为了回答这个问题,我们看看建筑行业。
设计师设计出房子。
施工人员使用这个设计来建造房子。
建筑越复杂,设计师和施工人员之间的交流就越重要。
蓝图就成为了这个行业中的设计师和施工人员的必修课。
写软件就好像建造建筑物一样。
系统越复杂,参与编写与配置软件的人员之间的交流也就越重要。
在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”。
现在它已经成为了软件行业的一部分了。
UML提供了分析师,设计师和程序员之间在软件设计时的通用语言。
UML被应用到面向对象的问题的解决上。
想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的。
一个模型model就是根本问题的抽象。
域domain就是问题所处的真实世界。
模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的。
记住把一个对象想象成“活着的”。
对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations)。
对象的属性的值决定了它的状态state。
类Classes是对象的“蓝图”。
一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数)。
对象是类的实例instances。
用例图用例图Use case diagrams描述了作为一个外部的观察者的视角对系统的印象。
UML6总体设计鲁棒性分析(顺序图、协作图)、类建模(设计类图)
分析阶段顺序图-举例(续)
: Admin 1: 选择进入系统管理界面
系统
2: 提示输入用户名/密码 3: 输入用户名密码登录
4: 用户合法性验证
5: 返回显示所有课程 6: 选择添加课程 7: 提示输入新课程信息 8: 输入新课程信息提交
10: 返回显示所有课程
9: 系统验证
分析阶段顺序图-举例说明
▪ 直接对着基本事件流开始描绘交互细节 ▪ 系统内部对象不发掘,直接以系统代表。 ▪ 参与者就是用例的发起者,直接拖动到画图区最左
一列;如果该用例不是直接被参与者启动的,两种 策略:
• 做出说明,不再重复前面的用例的交互细节。 • 完整描述从参与者发起前一个用例交互到本用例结束的
全过程。
分析类图(初步类图)
UML建模技术-
交互视图
交互视图
▪ 交互视图包括顺序图和协作图,通常用作表达对象 间消息用。
▪ 在分析阶段,对用例的基本事件流做图形描述时, 可使用顺序图/协作图,此时描绘的是参与者在系统 边界处和系统交互的细节。
▪ 在设计阶段,由于要进一步发掘业务对象,使用顺 序图/协作图用于启发发现新的对象,从而更新类图。 此时描绘的是系统内部对象间的交互细节,不断启 发发现新的对象,最终识别和归纳为新的类。
部课程。
鲁棒性分析设计
▪ Robust(鲁棒性)是分析阶段初步得出业务 对象之后在总体设计阶段需要进行的工作。
设计阶段的顺序图-举例(续)
▪ 发现需要以下对象:
• 界面 • 课程 • 对于业务层的操作,也应有对象进行处理 • 参与者包括管理浏览区右点某个用例,选择“new”下的 “Sequence Diagram”,即顺序图,双击右侧出现其作图区。
Enterprise Architect手册范本
Enterprise Architect手册简介生命周期软件设计方案——Enterprise Architect是以目标为导向的软件系统。
它覆盖了系统开发的整个周期,除了开发类模型之外,还包括事务进程分析,使用案例需求,动态模型,组件和布局,系统管理,非功能需求,用户界面设计,测试和维护等。
利用EA,设计人员可以充分利用13 UML 2.0图表的功能——EA支持全部13种 UML 2.0图表和相关的图表元素;包括:结构图表:类、对象、合成元素、包、组件、布局;行为图表:使用案例、通信、序列、交互概述、行为、状态、时序;扩展:分析(简单行为)、定制(需求、变动和UI设计)。
EA提供使用工具,能够跟踪依赖关系、支持大型模型,帮助您管理大型复杂的工程;含有CVS或SCC提供工具,以时间快照为基线,通过比较来跟踪模型变动,从而实现版本控制;含有类似explorer的项目视窗,为您提供直观高性能的工作界面。
EA还含有一个所见即所得形式的模板编辑器,提供强大的文档生成和报告工具,能够生成复杂详细的报告,报告可以按照公司或客户要求的格式提供所需信息。
EA具备源代码的前向和反向工程能力,支持多种通用语言,包括C++, C#, Java, Delphi, , Visual Basic和PHP,除此,还可以获取免费的CORBA和Python附加组件。
EA提供一个内置的源代码编辑器,含语法突出功能,确保能够在一致的工作环境中快速导航和查找您的模型源代码。
对于Eclipse或Visual 工作人员,Sparx Systems还提供到这些IDE的轻量链接工具,您可以在EA中进行建模,而后直接跳转到自己偏爱的编辑器中进行源代码的进一步开发。
代码生成模板还允许您对生成的源代码进行定制,使之同公司规范相符。
EA还提供对大多数软件开发语言和数据库架构的逆向工程支持,令您的应用程序可视化,从源代码、Java.jar文件甚至是.Net二进制汇编语言中获取完整框架。
13种uml简介、工具及示例
13种uml简介、工具及示例UML(Unified Modeling Language)是一种用于软件开发的标准化建模语言,它使用图形表示法来描述软件系统的不同方面。
在软件开发过程中,使用UML可以帮助开发人员更清晰地理解系统的结构和行为,从而更好地进行设计和实现。
UML提供了包括结构模型、行为模型和交互模型在内的多种建模方式,其中每种模型都有各自的符号和语法规则。
通过使用这些模型,开发人员可以将系统分解成不同的部分,然后逐步细化这些部分的设计,以便更好地组织和管理项目。
在UML中,最常用的建模元素包括用例图、类图、时序图、活动图、状态图等。
每种图表都有其特定的用途和表达能力,开发人员可以根据实际需要选择合适的图表进行建模。
除了建模元素外,UML还定义了一系列的建模工具,这些工具可以帮助开发人员更高效地进行建模和分析。
其中一些常用的建模工具包括Enterprise Architect、Rational Rose、StarUML等。
下面将对13种UML简介、工具及示例进行详细介绍:1. 用例图(Use Case Diagram)用例图是UML中描述系统功能和用户交互的基本图表之一。
它用椭圆表示用例,用直线连接用例和参与者,展示了系统外部用户和系统之间的交互。
用例图可以帮助开发人员更清晰地理解系统的功能需求,从而指导系统的设计和实现。
示例:一个简单的在线购物系统的用例图包括用例“浏览商品”、“添加商品到购物车”、“提交订单”等,以及参与者“顾客”和“管理员”。
2. 类图(Class Diagram)类图是UML中描述系统结构和静态关系的基本图表之一。
它用矩形表示类,用线连接类之间的关系,包括关联关系、聚合关系、继承关系等。
类图可以帮助开发人员更清晰地理解系统的对象结构和类之间的关系,从而支持系统的设计和重构。
示例:一个简单的学生信息管理系统的类图包括类“学生”、“课程”、“教师”等,以及它们之间的关系如“选修”、“授课”等。
使用starUML一步一步画顺序图
使⽤starUML⼀步⼀步画顺序图顺序图:是UML中能表现出⼀个过程中各个详细步骤的模型图,过程可以理解为⼀个功能的执⾏过程。
下⾯我们以⼀个简单的影院管理系统中售票功能为例来⼀步⼀步完成顺序图的构建。
建模⼯具:starUML版本:5.0.2.1570(新版本下⾯也适⽤)1:⾸先确定功能的主功能场景如下所⽰。
(1)顾客向售票员提供剧⽬名称,和场次要求(时间)。
(2)售票员查询⽤户提供的剧⽬所在演出厅票务和位置信息。
(3)系统显⽰剧⽬信息和演出厅信息。
(4)顾客查看票价和演出厅所剩位置信息,并提供⾃⼰想要的位置。
(5)售票员选择位置,并确认。
(6)系统显⽰座位信息和交易⾦额。
(7)⽤户选择⽀付⽅式,并⽀付。
(8)系统更新演出厅信息,⽣成交易票据并将交易信息发送到外部的账务系统。
(9)系统打印票据。
(10)顾客携带票据离开。
2:找出系统中的参与者顾客系统售票员数据库3:建⽴项⽬打开starUML,选择默认⼯程然后新建⽴顺序图:在项⽬的最右边栏:Analysis Model -> ADD Diagram -> Sequence Diagram之后项⽬的最左端如下:select :选中某个元素object:对象Stimulus:对象与对象间消息SelfStimulus:对象间⾃调⽤的消息Combined Fragment:结合⽚段,⽐如循环⽚段等,分⽀⽚段Interaction Operand:交互操作Frame :框架,主题(图最外⾯的边界)4:加⼊相应元素,如下图所⽰,最外⾯添加的是⼀个Frame。
要是想更改Frame或者Object的名称,我们在最右边属性修改即可。
5:添加消息的过程如下所⽰:⿏标左击 Stimulus,然后松开,之后将⿏标移⾄源Object⽣命线上,⿏标左击不松开,拉⾄⽬的Object上即可。
6:按照主功能场景画出的图⼀步步画出来的图就是这样啦:ps:。
使用EnterpriseArchitect画UML类图
使用EnterpriseArchitect画UML类图以下是我用使用Enterprise Architect 10 (build1005)试用版画UML类图的过程:首先,点击File菜单选择New Project菜单项,新建一个工程,选择路径保存之后,会弹出以下对话框,选择“Basic UML 2 Technology”,勾选"Class"打开Project Browser,如下图然后,右击"Class Model",点击“Add”菜单的“Add Diagram”菜单项,如下图在下图里选择“UML Structural”,接着选择“Class”,名字自己定义接着在T oolbox里选择“Class”,并拖拽到中间的画板里,如下图拖拽完之后,会弹出一个Class属性框,可以输入类的名字,作者的名字,还可以选择语言,如PHP,如下图接下来就可以设置类的属性和方法了,有几种方式:(1)选中你想设置的类,例如“MyClass”,然后在右击之后弹出的菜单里选择“Features & Properties”菜单的“Attributes”菜单项,“Operations”菜单项,就可以设置类的属性和方法了,如下图所示:(2)选中你想设置的类,点击那个类似放大镜的小图标,在弹出的浮动工具栏选择那两个小方块,一个是用来设置属性,一个是用来设置方法的,如下图(3)快捷键:Ctrl+Shift+F9:设置属性Ctrl+Shift+F10:设置方法用上述的(1),(2)两种方法来设置属性,会弹出以下对话框,在对话框里输入属性名字,类型,作用域,然后记得点击“Save”按钮保存,再点击“New”按钮可以在不关闭下面的对话框的前提下继续添加属性点击上图的“Close”按钮后,就设置好了,如下图:用上述的(1),(2)方法来设置方法,会弹出以下对话框,然后可以输入方法名,方法的参数,返回值类型,作用域,同样要记得点击“Save”按钮来保存你的设置哦!然后点击“Close”按钮,就设置好了,如下图:用快捷键设置属性的话,就会以下画面,可以直接编辑属性的名字和类型,更详细的设置可以在点击属性后弹出的属性对话框里设置。
面向对象分析与设计课件第6章 顺序图与通信图建模
Ad d (Ch ro m o so m e )
loop [nt So rtByAcco m m o d a ti o n () Cro ssOve r(Ch ro m o so m e )
m u ta ti o n ()
CanbeEnded(int): Boolean
图6-1 顺序图中常见的对象
6.1.2 生命线(lifeline)
生命线是从对象图标向下出来的延伸的一条直线,也是和对象紧密联系在 一起的一种模型元素,用于表示对象的生存期或生存期内的某个时间片段。
事实上,在顺序图中,对象和生命线是不可分割的同一个元素,生命线是 对象的一个组成部分,代表了对象的整个或部分生命期。顺序图中即不存在 没有生命线的对象,也不存在没有对象的生命线。当然这并不排除生命线分 支的概念。
除了图形符号,UML还使用消息表达式的方式来描述消息。 按照对象间交互的形式,可以把消息分成方法调用、发送信号、创建实例 和销毁对象等多种形式。其中,最常用的形式就是对象间的方法调用。
6.1.4 消息(Message)
描述方法调用或发送信号的消息的语法格式定义如下: [returnvalue=] message_name (arguments) : type_of_return_value return_value:是消息的可选部分,表示存储消息返回值的变量。这个变 量可以是发送者的一个属性、整个交互的全局属性、或者是某个拥有交互的 类的属性。 message_name:表示消息名称,可以是接收者的某个方法名或发送的信号 名等。 arguments:表示消息参数列表,是一个用逗号分隔的若干个参数构成的 列表,其中每个参数都可以是参数名或参数值。 type_of_return_value:返回值类型。
[工作]Enterprise_Architect教程
Enterprise_Architect教程相关设置后 点击“Generate”生成即可。
九 将包导入成XML形式依次单击“Project->XML Schema->Import XML Schema”如图21所示在“Filename”后面单击确定生成的XML文档的名称及路径 然后单击“Import”即可十 画图的线的弯曲 自动布局 改变线的连接点的方法首先在“活动图”中对“实线”点击右键 必须是实线 虚线不起作用 然后点击“Set Line Style” 而后“Bezier”拖动中间的点调整线的弯曲。
Auto Routing(自动布局的方式) Direct 改变线的连接点 十一 活动图及时序图的绘制11.1.活动图的绘制在已建立的“Package”上右键单击->New…->New Diagram…->在弹出的窗口左边选择“UMLBehavioral”(如图22所示)在“New Diagram”的右边“Diagram Types”窗口中选择“Activity” 最后单击OK保存退出。
此时 我们发现“Project Browser”窗口中增加了一个如图23所示的对象“Class Medel”。
在左边的“Toolbox”中我们看到相关的工具。
如图24及表3所示Activity Activity RelationActivity活动状态Control Flow控制流Structured Activity嵌套活动Object Flow对象流Action动作Interrupt Flow中断流Partition分区CommonObject对象Note注释Central Buffer Node 中央缓冲节点Constraint约束条件Datastore数据存储Document文档 附加文档附件Decision判断Artifact人工 表示任意的系统任意的信息块Merge合并Requirement需求描述Send发送Issue问题描述Initial最初的Change变化描述Final最终的Boundary 分界线Flow Final 流结束Dependency 依赖关系Region区域Realize实现Exception异常Trace追踪Fork/Join并发Information Flow数据流Note Link注释链接 11.2.时序图的绘制在已建立的“Package”上右键单击->New…->New Diagram…->在弹出的窗口左边选择“UM LBehavioral”(如图25所示)在“New Diagram”的右边“Diagram Types”窗口中选择“Sequence” 最后单击OK保存退出。
Enterprise Architect UML指南
Enterprise Architect UML指南/resources/tutorial/uml-tutorial.html1.应用UML进行数据库建模1.1介绍当需要为软件系统系统提供一种可靠,灵活而又高效的对象持久化方法时,当今的设计师和架构师们面临着众多的选择。
从技术的层面上,这个选择往往介于完全面向对象,对象关系混合,完全关系化和建立在公开或专有文件格式上的常规解决方案之间(如:XML,OLE的结构化存储)。
从提供者的层面上,Oracle,IBM,Microsoft,POET 和其它的公司提供了相似,但是彼此间往往不相容的解决方案。
本文仅论述这些选择中的一种,即在完全关系数据库上层面向对象的类模型进行分层。
这并不表明它是唯一、最好而又简单的解决方案,但是从实用的角度看,它是最常用的一种类型,却也是最容易被用错的一种。
我们先快速浏览两个设计领域的模型,并试图把它们连接起来:第一,介绍用UML表达面向对象的类模型;第二,关系数据库模型。
对每一个领域我们只涉及影响到我们任务的主要功能。
然后我们将关注从类模型到数据库模型映射的技术和问题,包括对象持久性,对象行为,对象和对象标识之间的关系。
我们将总结对UML数据profile的回顾(Rational Software 推荐)。
一些面向对象设计,UML 和关系数据库建模的相似性也会被提及。
类模型是UML用来表达软件系统逻辑结构的主要工件。
它用来记录数据需求和模型领域内对象的行为。
本文不讨论创建和详细描述该模型的技术,我们将假设已经存在一个设计好的类模型,它需要映射到关系数据库上。
类模型类在UML中是一个基本的逻辑实体。
它定义了一个结构单元的数据和行为。
一个类是一个模板或运行时创建实例和对象的模型。
当开发一个逻辑模型,如UML中的结构层次,我们将明确地把它们当作类来处理。
当面对动态图时,如顺序图和协作图,我们也要处理类的实例和对象,以及它们运行时的内部动作。
Enterprise Architect 中文经典教程
一、Enterprise Architect简介Enterprise Architect是一个对于软件系统开发有着极好支持的CASE软件(Computer Aided Software Engineering)。
EA不同于普通的UML画图工具(如VISIO),它将支撑系统开发的全过程。
在需求分析阶段,系统分析与设计阶段,系统开发及部署等方面有着强大的支持,同时加上对10种编程语言的正反向工程,项目管理,文档生成,数据建模等方面。
可以让系统开发中各个角色都获得最好的开发效率。
二、创建新项目安装好了EA汉化版后,启动软件。
点击“创建新的项目”,打开创建新项目对话框。
【图1】这里可以选择各种的初始的模板包。
【图2】我们选择了其中几个,然后确定打开了项目浏览器。
我们的项目将从这里开始了。
【图3】三、EA软件配置在使用软件之前,我们先来对它进行配置。
打开“工具”-->“选项”。
【图4】常规配置中,比较重要的是作者这项。
因为在EA项目的团队协作中,作者是每个人的身份标识。
在代码工程中,最好把文件编码设置成UTF8或者是GB中文。
其他方面的配置,因为都是中文的,也比较容易理解。
有些不明的地方,可以多琢磨。
另外对于最下面的十种编程语言,可以根据自己的需要,进行一些配置。
比如PHP,可以配置PHP4或者是PHP5,那么生成的代码也是有些不同的。
还可以隐藏其他没有用到的语言。
四、用例图,类图的使用用例图(use case)用例图是我们做系统分析的通常第一步,是非常重要的。
毕竟大部分的开发流程,都将需求分析作为首要步骤,也是必要步骤。
将系统需求化作图型表达出来。
首先是在项目浏览器中,右键“添加”-->“新建图表”。
【图5】然后可以加入一些角色和用例,在每次在工具箱里面拉出一个元件,都将打开这个元件的设置对话框,在对话框内填入元件的名称等信息。
现在我们是表达一个用户注册和登录的场景:【图6】加入关联,用例图中最常用的关联是“使用use”,当然也经常会用到“包含include”“扩展extend”。
EnterpriseArchitect学习之用例图
EnterpriseArchitect学习之⽤例图⽤例模型⽤例模型⽤来记录系统的需求,它提供系统与⽤户及其他参与者的⼀种通信⼿段。
执⾏者⽤例图显⽰了系统和系统外实体之间的交互。
这些实体被引⽤为执⾏者。
执⾏者代表⾓⾊,可以包括:⽤户,外部硬件和其他系统。
执⾏者往往被画成简笔画⼩⼈。
也可以⽤带«actor»关键字的类矩形表⽰。
上图中,备选⽅案的画法是,创建⼀个类元素,名称(Name)命名为客户,把构造型(Stereotype)设为Actor,并设置Feature and Compartment Visibility的Structure Compartment可见。
在下图中,执⾏者可以详细的泛化其他执⾏者:⽤例⽤例是有意义的单独⼯作单元。
它向系统外部的⼈或事提供⼀个易于观察的⾼层次⾏为视图。
⽤例的标注符号是⼀个椭圆。
使⽤⽤例的符号是带可选择箭头的连接线,箭头显⽰控制的⽅向。
下图说明执⾏者“Customer”使⽤“Withdraw”⽤例。
⽤途连接器(uses connector)可以有选择性的在每⼀个端点有多重性值,如下图,显⽰客户⼀次可能只执⾏⼀次取款交易。
但是银⾏可以同时执⾏许多取款交易。
多重性设置是在⽤途连接器的两端分别设置。
⽤例定义⼀个典型的⽤例包括:名称和描述需求约束情形情形图附加信息名称和描述⽤例通常⽤⼀个动词词组定义,⽽且有⼀个简短的⽂字说明。
需求需求定义了⼀个⽤例必须提供给终端⽤户的正式功能性需求。
它们符合构造⽅法建⽴的功能性规范。
⼀个需求是⽤例将执⾏⼀个动作或提供多个值给系统的约定或承诺。
约束⼀个约束是⼀个⽤例运⾏的条件或限制。
它包括:前置条件,后置条件和不变化条件。
前置条件指明了⽤例在发⽣之前需要符合的条件。
后置条件⽤来说明在⽤例执⾏之后⼀些条件必须为“真”。
不变化条件说明⽤例整个执⾏过程中该条件始终为“真”。
情形情形是⽤例的实例在执⾏过程中,事件发⽣流程的形式描述。
使用Enterprise Architect进行UML建模-6-顺序图
顺序图
逻辑视图 运行视图
需求用例 开发视图 部署视图
在经典的4+1模型视图中, 类图主要在运行视图中 使用。
顺序图
顺序图主要与捕捉系统各组成部分之间的 交互的次序有关。 使用顺序图,可以描述执行特定用例时, 会触发哪些交互,以及这些交互以何种次 序发生。 顺序图显示许多相关的交互的其他信息, 但它的长处是表现交互的次序。
顺序图的主要元素
参与者 时间 事件、信号与消息
嵌套消息 消息箭头
同步消息 异步消息 返回消息 创建消息 销毁消息
活动条
顺序图的使用
描述用例
描述顶层用例:描述用例与用例之间的调用次 序。 描述单个用例:描述用例的使用场景。
顺序片段(sequence fragment)(UML2.0)
主要用来捕捉内部细节、显示复杂的交互。
类似C#中的Break语句,对条件成立跳出任何一个交互。(一般是 Loop) If(…) … Else …
Opt Neg Par region
没有Else的if:If(…) … 声明一些不执行的交互。例如,SqlConnection在ExecuteReader时, 不能执行去执行另外一个SQL语句。 申明此片段内的交互能顺利的并行执行,不需考虑线程与锁定。 声明一些关键的必须同步或锁定的交互。
类型 参数 用途
Ref Assert Loop Min times,times,max[ guard_condition]
分解顺序图,类似用例的Include关系 断言,对其中的所有操作都必须成功,否则声明无效,并抛出异常。 类似C#中的For循环语句,循环指定次数的调用。
Break Alt [guard_condition 1] … [guard_condition 2] … [else] [guard_condition]
Enterprise Architect 入门教程
Enterprise Architect 7.0入门教程一.简介生命周期软件设计方案——Enterprise Architect是以目标为导向的软件系统。
它覆盖了系统开发的整个周期,除了开发类模型之外,还包括事务进程分析,使用案例需求,动态模型,组件和布局,系统管理,非功能需求,用户界面设计,测试和维护等。
为整个团队提供高级的UML 2.0建模工具。
EA为用户提供一个高性能、直观的工作界面,联合UML 2.0最新规范,为桌面电脑工作人员、开发和应用团队打造先进的软件建模方案。
该产品不仅特性丰富,而且性价比极高,可以用来配备您的整个工作团队,包括分析人员、测试人员、项目经理、品质控制和部署人员等。
丰富系统设计Enterprise Architect是一个完全的UML分析和设计工具,它能完成从需求收集经步骤分析、模型设计到测试和维护的整个软件开发过程。
它基于多用户Windows平台的图形工具可以帮助您设计健全可维护的软件。
除此,它还包含特性灵活的高品质文档输出。
用户指南可以在线获取。
快速、稳定、高性能统一建模语言能够以一致方式构建强健和可跟踪的软件系统模型,而EA为该构建过程提供了一个易于使用和快速灵活的工作环境。
端到端跟踪Enterprise Architect提供了从需求分析、软件设计一直到执行和部署整个过程的全面可跟踪性。
结合内置的任务和资源分配,项目管理人员和QA团队能够及时获取他们需要的信息,以便使项目按计划进行。
在UML 2.0上构建通过UML(统一建模语言),您可以构建严格的可追踪的软件系统模型。
EA为UML构建软件模型提供了一个快速便捷的应用环境,它支持OMG定义的新UML2.0标准。
Enterprise Architect的基础构建于UML 2.0规范之上,不仅如此,使用UML Profile还可以扩展建模范围,与此同时,模型验证将确保其完整性。
产品含有免费的extensions for BPMN 和Eriksson-Penker profile,能够将业务程序、信息和工作流程联合到一个模型内。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
类型 参数
用途
Ref
分解顺序图,类似用例的Include关系
Assert
断言,对其中的所有操作都必须成功,否则声明无效,并抛出异常。
Loop Break Alt
Opt
Min
类似C#中的For循环语句,循环指定次数的调用。
times,times,max[g
uard_condition]
类似C#中的Break语句,对条件成立跳出任何一个交互。(一般是 Loop)
开发视图
部署视图
在经典的4+1模型视图中,
类图主要在运行视图中 使用。
顺序图
顺序图主要与捕捉系统各组成部分之间的 交互的次序有关。
使用顺序图,可以描述执行特定用例时, 会触发哪些交互,以及这些交互以何种次 序发生。
顺序图显示许多相关的交互的其他信息, 但它的长处是表现交互的次序。
顺序图的主要元素
参与者 时间 事件、信号与消息
嵌套消息 消息箭头
同步消息 异步消息 返回消息 创建消息 销毁消息
活动条
顺序图的使用
描述用例
描述顶层用例:描述用例与用例之间的调用次 序。
描述单个用例:描述用例的使用场景。
顺序片段(sequence fragment)(UML2.0)
主要用来捕捉内部细节、显示复杂的交互。
使用Enterprise Architect进行UML建模
——顺序图(sequence diagram)
用例图描述系统能够做什么。 类图描述组成系统结构的各种类型。 交互图描述系统如何运作。
交互图有:顺序图、通信图、时序图。 顺序图是交互图中应用最广泛的一种。
顺序图
逻辑视图
运行视图
需求用例
ቤተ መጻሕፍቲ ባይዱ
Par
申明此片段内的交互能顺利的并行执行,不需考虑线程与锁定。
region
声明一些关键的必须同步或锁定的交互。
演练
[guard_condition1] If(…)
…
…
[guard_condition2] Else
…
…
[else]
[guard_condition] 没有Else的if:If(…) …
Neg
声明一些不执行的交互。例如,SqlConnection在ExecuteReader时,不
能执行去执行另外一个SQL语句。