面向对象概念+用例图
面向对象_B_UML
![面向对象_B_UML](https://img.taocdn.com/s3/m/173919e4998fcc22bcd10d2c.png)
12/27/2014
聚合(Aggregation)
聚合关系也用于表示对象之间部分和 整体关系,但关系比较松散。
12/27/2014
21
泛化(Generalization)
泛化用于表示对象之间一般和特殊的 结构关系。
22
12/27/2014
依赖(Dependency)
依赖表示两个或多个模型元素之间语 义上的关系 。
包(Package)
包名
包也是一种模型元素,可以把语义相 近的模型元素组织在一个包里,增加 对模型元素的可维护性。
18
12/27/2014
关联(Association)
关联就是类或对象之类链接的描述。
12/27/2014
19
组合(Composition)
组合关系用于表示对象之间部分和整 体关系,关系很紧密。
2. 关联(Association )
0..1
*
3. 泛化(Generalization) 4. 实现(realization)
12/27/2014 4
UML产生与发展
1996年,一些机构将UML作为其商业策略已日
趋明显。UML的开发者得到了来自公众的正面 反应,并倡议成立了UML成员协会,以完善、 加强和促进UML的定义工作。当时的成员有DEC、 HP、I-Logix、 Itellicorp、 IBM、ICON Computing、MCI Systemhouse、Microsoft、 Oracle、Rational Software、TI以及Unisys。 这一机构对UML 1.0(1997年1月)及UML 1.1 (1997年11月17日)的定义和发布起了重要的 促进作用。
UML各种图例齐全—用例图、类图、状态图、包图、协作图、顺序图详细说明画法和功能
![UML各种图例齐全—用例图、类图、状态图、包图、协作图、顺序图详细说明画法和功能](https://img.taocdn.com/s3/m/af110567856a561252d36fc0.png)
UML各种图例面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了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描述了作为一个外部的观察者的视角对系统的印象.强调这个系统是什么而不是这个系统怎么工作.用例图与情节紧紧相关的.情节scenario是指当某个人与系统进行互动时发生的情况.下面是一个医院门诊部的情节.“一个病人打电话给门诊部预约一年一次的身体检查.接待员找出在预约记录本上找出最近的没有预约过的时间,并记上那个时间的预约记录.”用例Use case是为了完成一个工作或者达到一个目的的一系列情节的总和.角色actor是发动与这个工作有关的事件的人或者事情.角色简单的扮演着人或者对象的作用.下面的图是一个门诊部Make Appointment用例.角色是病人.角色与用例的联系是通讯联系communication association(或简称通讯communication)角色是人状的图标,用例是一个椭圆,通讯是连接角色和用例的线.一个用例图是角色,用例,和它们之间的联系的集合.我们已经把Make Appointment作为一个含有四个角色和四个用例的图的一部分.注意一个单独的用例可以有多个角色.用例图在三个领域很有作用.决定特征(需求).当系统已经分析好并且设计成型时,新的用例产生新的需求∙客户通讯.使用用例图很容易表示开发者与客户之间的联系.∙产生测试用例.一个用例的情节可能产生这些情节的一批测试用例.类图类图Class diagram通过显示出系统的类以及这些类之间的关系来表示系统.类图是静态的-它们显示出什么可以产生影响但不会告诉你什么时候产生影响.下面是一个顾客从零售商处预定商品的模型的类图.中心的类是Order.连接它的是购买货物的Customer和Payment.Payment有三种形式:Cash,Check,或者Credit.订单包括OrderDetails(line item),每个这种类都连着Item.UML类的符号是一个被划分成三块的方框:类名,属性,和操作.抽象类的名字,像Payment是斜体的.类之间的关系是连接线.类图有三种关系.关联association-表示两种类的实例间的关系.如果一个类的实例必须要用另一个类的实例才能完成工作时就要用关联.在图中,关联用两个类之间的连线表示.dependencies关系.如果另一个的包B改变可能会导致一个包A改变,则包A依赖包B.包是用一个在上方带有小标签的矩形表示的.包名写在标签上或者在矩形里面.点化线箭头表示依赖对象图Object diagrams用来表示类的实例.他们在解释复杂关系的细小问题时(特别是递归关系时)很有用.这个类图示一个大学的Department可以包括其他很多的Departments.这个对象图示上面类图的实例.用了很多具体的例子.UML中实例名带有下划线.只要意思清楚,类或实例名可以在对象图中被省略.每个类图的矩形对应了一个单独的实例.实例名称中所强调的UML图表.类或实例的名称可能是省略对象图表只要图的意义仍然是明确的.顺序图类图和对象图是静态模型的视图.交互图是动态的.他们描述了对象间的交互作用.顺序图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线.消息用从一个对象的生命线到另一个对象生命线的箭头表示.箭头以时间顺序在图中从上到下排列.协作图协作图也是互动的图表.他们像序列图一样也传递相同的信息,但他们不关心什么时候消息被传递,只关心对象的角色.在序列图中,对象的角色放在上面而消息则是连接线.对象角色矩形上标有类或对象名(或者都有).类名前面有个冒号(:).协作图的每个消息都有一个序列号.顶层消息的数字是1.同一个等级的消息(也就是同一个调用中的消息)有同样的数字前缀,再根据他们出现的顺序增加一个后缀1,2等等.状态图对象拥有行为和状态.对象的状态是由对象当前的行动和条件决定的.状态图statechart diagram显示出了对象可能的状态以及由状态改变而导致的转移.我们的模型例图建立了一个银行的在线登录系统.登录过程包括输入合法的密码和个人账号,再提交给系统验证信息.登录系统可以被划分为四种不重叠的状态:Getting SSN, Getting PIN, Validating, 以及Rejecting.每个状态都有一套完整的转移transitions来决定状态的顺序.状态是用圆角矩形来表示的.转移则是使用带箭头的连线表示.触发转移的事件或者条件写在箭头的旁边.我们的图上有两个自转移.一个是在Getting SSN,另一个则在上Getting PIN.初始状态(黑色圆圈)是开始动作的虚拟开始.结束状态也是动作的虚拟结束.事件或条件触发动作时用(/动作)表示.当进入Validating状态时,对象并不等外部事件触发转移.取而代之,它产生一个动作.动作的结果决定了下一步的状态.活动图活动图activity diagram是一个很特别的流程图.活动图和状态图之间是有关系的.状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程动作流程.活动图告诉了我们活动之间的依赖关系.对我们的例子来说,我们使用如下的过程.“通过ATM来取钱.”这个活动有三个类Customer, ATM和Bank.整个过程从黑色圆圈开始到黑白的同心圆结束.活动用圆角矩形表示.。
面向对象系统分析与设计-UML基础-用例图
![面向对象系统分析与设计-UML基础-用例图](https://img.taocdn.com/s3/m/e6c589531711cc7931b716f8.png)
30
订货系统用例图
<<extend>> 信用卡支付 <<include>> 下订单 <<extend>> <<include>> 计算订单价钱 <<extend>> 退货处理 选择仓库 <<extend>> 退货服务 发货 顾客 缺货 发货者 收款员 付款 <<extend>> 信用卡系统
管理者
货物管理
UseCase
Actor
预定
取车
还车 客户
34
泛化关系
泛化关系(Generalization Association)是表示一般 与特殊的关系。用于共享用例的共同功能行为。用例 可以继承父用例的含义和行为,也可以对父用例的行 为进行增加和修改。子用例可以出现在父用例出现的 任何位置。 泛化关系用泛化箭线(带空心三角箭头的实线)表 示,从子用例发出,指向父用例。如果需要可以在箭 线上标出联系的名称。
32
关系
用例除了与参与者有联系以外,用例之 间还存在着一定的关系。参与者之间还存有 关系。关系类型包括: 关联关系 包含关系 扩展关系 泛化关系
33
关联关系
关联关系用于描 述参与者与用例之间 的关系。在 UML 中用 实线表示。例如,客 户启动系统的取钱功 能,表示客户启动与 用例的关联。关系方 向显示是谁启动了通 信。建立通信之后, 信息是可以双向流动 的。
第四章 用例图-UML面向对象分析、建模与设计-吕云翔-清华大学出版社
![第四章 用例图-UML面向对象分析、建模与设计-吕云翔-清华大学出版社](https://img.taocdn.com/s3/m/eb04f225fab069dc5122014c.png)
依赖关系
特性 作用 执行过程 对基用例的要求
include
extend
增强基用例的行为
增强基用例的行为
包含用例一定会执行
扩展用例可能被执行
在没有包含用例的情况下,在没有扩展用例的情况下, 基用例可以是也可以不是 基用例一定是良构的 良构的
表示法
箭头指向包含用例
是用例的重要服务对象,而次参与者处于一
种协作地位。
系统管理员
用例与参与者
在确定用例时可以通过参与者入手来寻找用例:
参与者的主要任务是什么? 参与者需要系统的什么信息? 参与者可以为系统提供什么信息? 系统需要通知参与者发生的变化和事件吗? 参与者需要通知系统发生的变化和事件吗?
用例的特征
用例的特征保证用例能够正确地捕捉功能性需求,同时也是判断用 例是否准确的依据。
不改变基用例的同时,根据需要自由地向用
例中添加行为。
检查实名信息
依赖关系——扩展
扩展用例的使用包括四个部分:
基用例:需要被扩展的用例,如图5-10中的“注册”用例。 扩展用例:提供所添加的行为序列的用例,如图5-10中的“检查实名信
息”用例。 扩展关系:使用虚线箭头表示,箭头指向基用例。 扩展点:基用例中的一个或多个位置,表示在该位置会根据某条件来决
一个父参与者的直接实例,这就要求属于抽象父
直接客户
电话客户
参与者的外部对象一定能够属于其子参与者之一。
网上客户
用例的概念 用例与参与者 用例的特征 用例的粒度
用例
用例的概念
用例是类元提供的一个内聚的的功能单元,表明系统与 一个或多个参与者之间信息交换的顺序,也表明了系统 执行的动作。
用例图是面向对象方法提供的建模方法
![用例图是面向对象方法提供的建模方法](https://img.taocdn.com/s3/m/b0b891a285868762caaedd3383c4bb4cf7ecb7bd.png)
用例图是面向对象方法提供的建模方法
用例图是面向对象方法提供的一种建模方法,可以用于描述特定领域或特定场景内的简单行为。
它是支持软件开发的一个有用工具,用于提供定义系统隐患行为的语言。
它又可以被称为用例图,它提供了一个更高级别的描述,它使得我们能够从一种非常抽象的角度来看待整个系统。
用例图是一种结构化的、由角色与事件组成的建模工具,其中角色表示参与者,而事件代表角色之间的交互。
这里所提到的“角色”可以是用户、系统设备或其他第三方机构。
用例图由多个部分组成,每个部分都有不同的含义。
用例图的图形由多个元素组成,包括用例框图、用例连接器、用例描述卡片和角色框图。
用例框图是所有用例图绘制的基础,它提供了一种可视化的方式来描述角色之间的交互。
该图显示了当角色发出用例请求时,参与者之间会发生什么样的交互情况。
用例连接器是一种把角色与用例框图联系起来的工具。
它的目的是定义每个角色将如何与框图中的其他元素交互。
用例描述卡片是定义用例的文档。
这张卡片中包括用例名称、参与者、输入参数、输出参数等信息。
角色框图显示了参与者之间的关系,它可以帮助我们更好地理解系统中参与者之间的作用。
总而言之,用例图是面向对象方法提供的一种有效的建模方法,可以帮助定义和描述特定领域或场景内的简单行为。
它提供了一种更高级别的分析,帮助项目团队进行更好的设计和系统调整,确保系统的发展。
此外,它还可以帮助我们更好地理解系统中参与者之间的作用,从而保证系统的可用性。
实验报告1--用例和用例图
![实验报告1--用例和用例图](https://img.taocdn.com/s3/m/fc8c1b15844769eae009ed7c.png)
中北大学软件学院实验报告
专业:软件工程
方向:软件开发与测试
课程名称: UML
班级:
学号:
姓名:
辅导教师:井超
2017年3月制
4.用例图如下所示
1).系统参与者
系统角色
2).图书管理
图书管理用例图3).图书借阅和还书用例图
图书的借阅和归还用例4).图书管理系统的整体用例图
图书管理系统的整体用例图
5.实验结论及心得
通过本次实验,我掌握了在课堂上学习的用例图等。
加深了对书本知识的认识和记忆。
在实验中我学会了去如何操作ro se工具图。
通过ro se工具图,可以去清晰的去展示一个关系等。
使用非常方便。
软件设计与体系结构-第四章-面向对象的软件设计方法课件
![软件设计与体系结构-第四章-面向对象的软件设计方法课件](https://img.taocdn.com/s3/m/44fe7868b80d6c85ec3a87c24028915f814d8418.png)
l 概念模型与顶层架构设计:
l 在用户需求和相关的业务领域中,概念及概念关系的抽取
l 用户界面设计:
l 设计每个界面中的所有界面元素,确定初步的界面布局,定义用户界面动作对软件系统中设计元
素的要求
l 数据模型的设计:
l 确定设计模型中需要持久保存的类的对象及其属性,定义持久持久存储数据之间的组织方式,并
.
26
概念模型和顶层架构设计
l 边界类: 其职责包括: l 边界控制: l 包括定义数据的格式及内容转换,输出结果的呈现,软件运行过程中界
面的变化与切换等。 l 外部接口: l 实现目标软件系统与外部系统或外部设备之间的信息交流和互操作,主
要关注跨越目标软件系统边界的通信协议 l 环境隔离: l 对目标软件系统与操作系统、数据库管理系统、中间件等环境软件进行
事件流中步骤(1)
l (3)如果账户余额小于取款金额,则显示信息“账户余额不足,请重新输入”,并返回主事件流
中步骤(1)
l (4)顾客在确认取款金额前右以选择取消交易。
l 后置条件: 如果取款成功,系统从账户余额中减去相应数额,并返回等待状态;如果顾客取消交易,
则返回等待状态
.
19
用例的分析与设计
体技术没有关系 l 顶层架构的设计 l 目的: 为后续的分析和设计活动建立一种结构和划分
.
24
概念模型和顶层架构设计
l 关键概念来源: l 为建立以UML类图表示的领域概念模型,首先必须标识关键概念。关键
概念的来源包括: l (1)业务需求描述、用例说明; l (2)业务领域中的相关规范、标准、术语定义。 l (3)反映业务领域知识的既往经验。 l 业务需求描述 l 业务领域中的相关规范、标准、述评呼定义 l 反映业务领域知识的既往经验
面向对象建模--用例图和类图实验报告
![面向对象建模--用例图和类图实验报告](https://img.taocdn.com/s3/m/e88162e56294dd88d0d26b64.png)
1.(1)
(2)
(2)
教师评语
签名:徐冬日期:11月18日
成绩
软件工程
实验地点
计—201
指导教师
时间
2014-11-10
一、实验目的及要求
在学习了UML用例图的基本理论、基本知识的基础上,通过实验理解并掌握在项目需求调查阶段中用例图和类图的制作;熟练应用CASE工具Rational Rose 200பைடு நூலகம்的使用;
二、实验设备(环境)及要求
PC机、Rational Rose工具软件
面向对象建模用例图和类图专业班级软件工程实验地点计201指导教师20141110一实验目的及要求在学习了uml用例图的基本理论基本知识的基础上通过实验理解并掌握在项目需求调查阶段中用例图和类图的制作
《信息系统分析与设计》实验报告
实验序号:5 实验项目名称:面向对象建模--用例图和类图
学 号
姓 名
专业、班级
2.类图
(1)绘制“鸟类”类图,参考实验数据文档
(2)根据以下描述画出类图,并注明多重性关系:一个学生可以选
修多门课程,也可能没有任何课程;一门课程可以被多个学生选修;
一个老师可以教多门课程或者不教课;每门课程至少有一个老师,也可以有多个老师任教;每门课程可以有0或1本教材,每本教材只能用于一门课程。
三、实验内容与步骤
1.用例图
(1)画出下图的用例图。
(2)一台自动饮料售货机共有6种不同饮料,售货机上有6个按钮,分别对应6种饮料,顾客可以通过按钮来选择所要的饮料。每个按钮旁有一个指示灯,用来表示该售货机中是否还有这种饮料可售。售货机有一个硬币槽的找零槽,用来收钱和找钱,假设一位顾客购买矿泉水,不用找零,请给出描述上述场景的用例图。
面向对象的分析与设计——用例图实验
![面向对象的分析与设计——用例图实验](https://img.taocdn.com/s3/m/4301c3033868011ca300a6c30c2259010202f333.png)
面向对象的分析与设计——用例图实验实验目的1、熟悉UML用例图的功能和元素2、学会识别参与者和用例3、掌握用例图的绘制方法4、学会编写用例描述实验内容:任务一:分析图书管理系统的登录模块,且绘制用例图用例图主要在系统需求分析阶段和系统设计阶段使用。
在系统需求分析阶段,用例图用来获取系统的需求,理解系统应当如何工作;在系统设计阶段,用例图用来规定系统要实现的行为。
1、分析用户登录模块的功能需求提供输入“用户名“和“密码“的文本框,验证用户身份的合法性。
2、识别参与者在用户登录模块中,根据工作内容和操作权限的不同,可细分为4类参与者:图书借阅员、图书管理员、系统管理员、图书借阅者。
图书借阅员必须先进行登录,然后才可以执行借出或归还图书的操作;图书管理员必须先进行登录,然后才可以执行编制书目、图书入库等操作;系统管理员必须先进行登录,然后才可以进行系统的维护操作;图书借阅者也必须先进行登录,然后才能查询图书借阅情况或查询图书馆藏书信息。
3、识别用例用户登录模块的主要功能是:输入“用户名“和“密码“,验证用户身份的合法性,故主要用例有两个:输入用户名和密码、验证用户身份。
4、绘制用例图操作步骤:1)运行Microsoft Office Visio 20072)选择“软件和数据库”中的“UML模型图”模板3)鼠标点击选择“UML用例”,展开UML用例图的图标4)用鼠标选拉图标进行绘图5、描述用例用例名称验证用户身份用例编号简要说明验证用户所输入的“用户名“和“密码“是否有效参与者图书管理员、系统管理员、图书借阅员、图书借阅者当前状态等待审查使用频率较高前置条件已输入有效的“用户名“和“密码“后置条件登录进入系统基本操作流到“用户信息“数据表中检索是否存在相应的“用户名“和“密码“备选操作流如果“用户名“和“密码“有误,显示提示信息。
任务二分析网上书店的业务需求,且绘制用例图站在客户的角度分析,网上书店要实现的基本功能主要有以下几种:(1)用户注册(2)用户登录(3)图书查询与浏览(4)用户订购图书(5)用户购物车管理(6)订单维护(7)个人信息维护当客户打开网上书店后,无需登录即可查询图书,还可查看图书的详细信息。
19-面向对象分析
![19-面向对象分析](https://img.taocdn.com/s3/m/a3464c32580216fc700afdd5.png)
图书馆系统的第2张类图
图书管理员 职工号 姓名 读者 姓名 身份证号 借书卡号 借书限额 可用限额 图书目录 图书 馆藏流水号 状态 罚款细则
图书品种 书名 国际书号 作者 出版社 出版日期 简介 价格 馆藏数量 可借数量
分析模型与用例模型
用例:外观
类图:内部结构 交互图:内部行为
软件的基本组成——类
• 学习OOA,找到实现用例功能的类
:系统
:图书管理 员
Loop
输入读者借书卡 读者信息 输入书号 图书信息
: 图书管理 员 : 借书窗口
系统做了些什么 (事件流),谁 去做的(对象)?
: 读者 : 图书
1. 提供读者借书卡(号) 2. 验证读者身份 2.1. 取读者信息 2.2. 检查读者借书条件
不同类别的概念(续)
• 规格说明:系统中关于对象的规格信息的描述。
– 如图书品种,每种图书有一个唯一的馆藏号,同时该 图书还包含一些描述信息,如书号、价格、作者、出 版社等,多本图书对象共用这些规格说明。这是一种 经过了抽象的概念,应该识别为概念类。
• 业务规则或政策:系统中经常使用的业务规则或 政策的文字描述。
4、关联的导向性(Navigability)
• 角色的导向性特征表示可以通过关联从源类 导向到目标类上。也就是说给定关联一端的 对象就能够容易并直接地得到另一端的对象。 • 识别关联的导向可以推迟,与设计实现有关。 通常是源对象存储了对目标对象的一些引用
读者 Reader
1 登记 1..*
借书记录 Loan
属性的表示
借书记录 borrowDate:Date returnDate:Date
面向对象设计用例建模
![面向对象设计用例建模](https://img.taocdn.com/s3/m/f86e4bdab14e852458fb57cf.png)
案例:编辑图元的方法
可用光标选择一个图元
案例:新建图元的方法
由一组菜单项控制
(当前图元) (如:直线的首尾、矩形的四角)
最新创建的图元为当前图元 鼠标指定文本起点,光标变为 I 形
当前图元上显示出控制点
新建文本
图元的编辑
通过拉动图元的控制点 激活文本编辑
新建直线、矩形、椭圆
鼠标按下指定起点(或左上角) 光标变为十字形 鼠标释放指定终点(或右下角)
Lesson8: 面向对象设计
用例建模
案例---交互式图形编辑系统
交互式图形编辑系统
用于创建、编辑、浏览图形 图形由直线、矩形、椭圆和文本组成
约束条件
提供可视化编辑手段 可浏览多个图形 不考虑图形的保存和装入
用例建模
Use Case 目标
捕获功能需求、提供系统描述 指导系统设计,系统测试的依据 开发者与最终用户的共识
系统用户 与系统通信的其他系统
例如:
参与者的一般特殊关系 不同的责任
用到case,受益于case 各种使用过程、步骤
优先描述主要功能
分析参与者的工作
次要功能:异常处理、不常见的功能 独立于系统实现的解决方法
围绕本质功能描述
用例之间关系
用例之间关系
泛化关系generalization,一般特殊关系,类似于继承 例:
编辑图形、删除图形
创建图元
创建文本 创建椭圆 创建矩形
《包含》 创建图形 用户 《包含》 《包含》 浏览图形 删除图形 《包含》 修改位置 删除图元 编辑直线 《包含》 编辑图形 创建直线 《包含》 编辑图元 《包含》 选择图元
面向对象需求分析——用例图和活动图
![面向对象需求分析——用例图和活动图](https://img.taocdn.com/s3/m/d972787cae1ffc4ffe4733687e21af45b307fe30.png)
面向对象需求分析——用例图和活动图面向对象软件开发的方法有:a,面向对象分析(OOA)b,面向对象设计(OOD)c,面向对象实现(00I)d,面向对象测试(OOT),e,面向对象维护(OOM)这几个主要大步骤。
下边我们就从面向对象的角度来学习UML的相关图。
这里介绍面向对象分析阶段的用例图和活动图。
面向对象分析阶段,我们要明确系统的职责,范围和边界;确定软件的功能和性能;构建需求模型(用例模型)。
首先在这里说一下,为什么将这两个图放在一起,主要原因就是活动图的一个目的是更细致的描述用例图,和文档的配合使用,使用例图更加清楚明了。
先介绍一下:用例图1,概念:用例是系统的一个功能单元,是对用户需求的描述。
2,组成:参与者,用例及其之间的关系(包括关联关系,泛化关系,包含关系,扩展关系):3,用例建模的步骤:a,确定系统的范围和边界;b,确定系统的用例和参与者;c,描述用例;d,对用例分类,并确定用例之间的关系;e,建立用例图,并定义用例图的层次结构;f,评审用例模型。
下边我们看个例子:这是一个教务管理系统的总用例图和一个子一级用例图,当然还可以再分:在上述6个步骤中,我简单总结一下:a,系统边界,就是一个系统内部所有元素与系统外部事物的分界线。
b,用例和参与者,需要我们根基实际情况去抽象。
c,描述用例,这个我重点写一下(举例,选课注册):用例编号:0101用例名称:选课注册执行者:学生功能:实现学生选课注册的过程类型:主要用例,基本用例级别:一级过程描述:1,学生输入系统账号和密码,系统进行验证;2,查询课程信息3,查询个人选课信息4,若可以选课,则进行选课注册,并将选课信息写入数据库中5,返回选课注册是否成功异常事件流处理:1,学生的账号和密码错误,允许重新输入(3次)2,学生未按时交纳学费,不可选课3,学生人数已达到上限,不可选课。
(当然在这里在把下边的活动图,添加进来即可)d,用例分类和确定之间的关系,有端点用例,基本用例,主要用例,辅助用例等,关系弄准确就可以。
第3章用例和用例图
![第3章用例和用例图](https://img.taocdn.com/s3/m/b236074b561252d381eb6e05.png)
3.1 用例
用例(use case)是Ivar Jacobson发明的. 其它的中文译 名有: 用况、用案等. 它是站在用户的角度看待系统、 定义系统 ;使用用户能够看懂的语言来表述
定义1: 用例是对一个活动者(actor,角色,参与者)使用 系统的一项功能时所进行的交互过程的一个文字描述序 列. 定义2: 用例是系统、子系统或类和外部参与者交互的动 作序列的说明, 包括可选的动作序列和会出现异常的动 作序列. 用例是代表系统中各个项目相关人员之间就系统的行为 所达成的契约, 软件开发过程是用例驱动的.
18
面向对象分析与设计 & UML
3.4.1 泛化关系
泛化关系代表一般与特殊的关系, 与继承类似. 在泛化关系中, 子用例继承了父用例的行为和含义, 子 用例也可以增加新的行为和含义或覆盖父用例中的行 为和含义.
右图的例子演示了 泛化关系
19
面向对象分析与设计 & UML
3.4.1 泛化关系
•
可以用来表示参与者与参与者之间,用例与用例之间的 特殊/一般化关系
33
面向对象分析与设计 & UML
3.6 用例的描述
用例描述一般包括的内容:
用例的目标 用例是怎么启动的 参与者与用例之间的消息如何传送 用例中除了主路径外, 其它路径是什么 用例结束后系统的状态 其它需要描述的内容
描述用例时的原则是尽可能写得“充分”, 而不是形式 化、完整或漂亮.
柜员机系统中,银行后台系统就是一个参与者; 2)硬件设备:如果系统需要与硬件设备交互时,如在 开发IC卡门禁系统时,IC卡读写器就是一个参与者; 3)时钟:当系统需要定时触发时,时钟就是参与者
UML各种图总结-精华
![UML各种图总结-精华](https://img.taocdn.com/s3/m/c541ebdea0116c175f0e48eb.png)
UML各种图总结-精华UML(UnifiedModelingLanguage)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。
下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。
一、基本概念如下图所示,UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。
静态图分为:用例图,类图,对象图,包图,构件图,部署图。
动态图分为:状态图,活动图,协作图,序列图。
1、用例图(UseCaseDiagrams):用例图主要回答了两个问题:1、是谁用软件。
2、软件的功能。
从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。
2、类图(ClassDiagrams):用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。
在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。
各种关系的强弱顺序:泛化=实现>组合>聚合>关联>依赖2.1.泛化【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。
例如:老虎是动物的一种,即有老虎的特性也有动物的共性。
2.2.实现【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现。
2.3.关联【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。
双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
【代码体现】:成员变量2.4.聚合【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。
uml9种图模型
![uml9种图模型](https://img.taocdn.com/s3/m/7efeb013a76e58fafab00316.png)
2.4 部署图
部署图描述任何基于计算机的应用系统的物理或逻辑的配置。它可以描述系统硬件的物理拓扑结构和在此结构上执行的系统软件,也能描述系统节点的拓扑结构和通信路径、节点上运行的构件、构件中的逻辑单元等。
部署图中有以下几个主要的模型元素:节点、构件、对象、接口、连接和依赖关系。节点描述一个物理设备以及在其上运行的软件系统,用一个立方体来表示。连接是节点之间的通信路径,用实线段来表示。构件、对象、界面和依赖关系同之前的介绍相同。
用例图有以下几种模型元素:用例(Use
Case)、参与者(Actor)、关联关系(Association)、包含关系(Include)、扩展关系(Extend)以及泛化关系(Generalization)。用例是以一个椭圆形来表示,椭圆中心是用例的名称;参与者就是与所要建模的系统交互的外部用户、进程或其他系统,参与者是以一个人形的图标表示;关联关系描述参与者与其需要交互的用例之间的通信路径,用一条实线段表示;包含关系描述一个用例利用另一个用例完成某个过程,用一个带箭头的虚线段并在虚线段上以“《include》”作为标识来表示,箭头指向被包含的用例;扩展关系描述一个用例在原有的另一个用例的基础上,扩展了那个用例的部分功能,和包含关系类似,也是以一个带箭头的虚线段表示,不同的是虚线段上显示的是“《extend》”,箭头指向被扩展的用例;泛化关系描述用例之间的一般和特殊的关系,特殊用例是在继承了一般用例的特性的基础上添加了新的特性,泛化关系和扩展关系有相似之处,不同的是扩展关系的需要明确标明被扩展用例的扩展点,扩展用例只能扩展这些扩展点,泛化关系用一个带有空心三角箭头的实线段表示。
在有的文献书籍中,将这九种模型图分为三大类:结构分类、动态行为和模型管理,结构分类包括用例图、类图、对象图、构件图和部署图,动态行为包括状态图、活动图、顺序图和协作图,模型管理则包含类图。本文则从动态和静态的角度分别介绍UML的九种模型图。
第七章-面向对象设计PPT课件
![第七章-面向对象设计PPT课件](https://img.taocdn.com/s3/m/aa148604195f312b3169a5de.png)
面向对象的软件设计过程
7.1 设计用例实现方案
本节介绍UML交互图的语言机制和用例实现方案的设 计方法。
UML的交互图包括顺序图和协作图,适于用例实 现方案的表示。
用例实现方案的设计方法有三个步骤: (1) 提取边界类、实体类和控制类; (2) 构造交互图; (3) 根据交互图精化类图。
7.1.1 顺序图
(1) 界面控制:包括输入数据的格式及内容转换,输出结果的 呈现,软件运行过程中界面的变化与切换等。
(2) 外部接口:实现目标软件系统与外部系统或外部设备之间 的信息交流和互操作。主要关注跨越目标软件系统边界的 通信协议。
(3) 环境隔离:将目标软件系统与操作系统、数据库管理系统、 应用服务器中间件等环境软件进行交互的功能与特性封装 于边界类之中,使目标软件系统的其余部分尽可能地独立 于环境软件。
UML四种类型的消息
(1) 简单消息(Simple Message) 以一种简单、抽象的函数表示对象之间的信息传 递,不考虑通信过程的内部细节。简单消息在 UML顺序图中用普通的有向箭头表示。
(2) 同步消息(Synchronous Message) 消息源发出消息后必须等待消息处理过程完毕并返 回处理结果后,消息源才可继续执行后续操作。前 面所述的自调用消息应该是同步的。同步消息的表 示图元与简单消息相同,这表明UML在缺省情形 下认为简单消息即为同步消息。
第七章 面向对象的设计方法
设计用例实现方案 设计技术支撑方案 设计用户界面 精化设计模型 RUP中的分析与设计流程
面向对象的设计方法
基于UML的面向对象设计方法将分析模型转换为设 计模型。
面向对象: 分析模型---顶层架构图、用例与用例图、领域概念 模型构成。 设计模型----- 以包图表示的软件体系结构图 以交互图表示的用例实现图 完整、精确的类图 复杂对象的状态图 描述流程化处理过程的活动图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
状态图(State Chart Diagram)
※状态图是一个类对象所可能经历的所有历程的 模型图。状态图由对象的各个状态和连接这些 状态的转换组成 。
初始状态 Available
assigned subscription
time out
状态
lock
Locked
to buy
Sold
unlock
转换 exchange
类图(Class Diagram)
※类图描述系统中类的静态 结构。不仅定义系统中的类, 表示类之间的联系如关联、 依赖、聚合等,也包括类的 内部结构(类的属性和操作)
顺序图 (Sequence Diagram)
※ 顺序图显示对象之间的动 态合作关系,它强调对象 之间消息发送的顺序,同 时显示对象之间的交互。
面向方面程序设计(Aspect-Oriented programming, AOP)方法
面向Agent的程序设计(Agent-Oriented programming) 方法
其它后面向对象程序设计 泛型程序设计(generic Programming,GP) 面向构件程序设计 敏捷方法(Agile Methodologies)
构件图(Component Diagram)
※ 构件图为系统的构件建模型—构件 即构造应用的软件单元—还包括各 构件之间的依赖关系,以便通过这 些依赖关系来估计对系统构件的修 改给系统可能带来的影响
部署图(Deployment Diagram)
部署视图描述位于节点实例上的运行构件实例的安排。节 点是一组运行资源,如计算机、设备或存储器。这个视图 允许评估分配结果和资源分配。
注释事物 是UML模型的解释部分
依赖 关联 泛化 实现
一条可能有方向的虚线 一条实线,可能有方向 一条带有空心箭头的实线 一条带有空心箭头的虚线
NewPro cessor
state
NewPackage
功能模型
功能模型表示变化的系统的“功能” 性质,它指明了系统应该“做什么。
数据流图 用例图(Use Case Diagram)
用例: 表示可以被行 为者感受到的、 系统的一个完 整的功能
ChangeBattery
行为者(Actor) : 表示位于系统之外 并和系统进行交互 的人或其它系统
WatchRepairPerson
储蓄系统
存款
● 用例:取款
取款
●参与者:储户
●事件流:
① 储户在读卡机、帐号、并验证帐号;
1. 确定系统边界
系统中有什么? 必须创建它们
系统外有什么? 不需要创建,但必须考虑与它们的接口
确定行为者(Actor) :角色/参与者 确定用例(Use-case) 简述行为者和用例
确定行为者…
行为者总在系统外,不是系统的 一部分
阶段内的迭代 (或求精)
面向对象开发
迭代:软件开发过程的一种内在属性。 阶段间的迭代 阶段内工作步骤的迭代
工作重点:分析阶段。 定义面向问题的对象,不断充实和扩充对象。 对生命周期各阶段的区分不重要、不明显。 “无缝”连接:分析阶段得到的对象模型也适用 于设计和实现阶段。
课外阅读:后面向对象时代
功能模型
用例图(Use Case Diagram) 用例模型描述的是外部行为者(actor)所理解的系统 功能 一幅用例图包含的模型元素有 系统 行为者 用例:脚本 用例之间的关系
用例图
系统边界: 用于划定系统的功能范围
SimpleWatch
ReadTime
WatchUser
SetTime
/* Global data (system state) accessible by various functions */ BOOL detector_status[1000]; int detector_locs[1000]; BOOL alarm_status[1000]; /* alarm activated when status set */ int alarm_locs[1000]; /* room number where alarm is located */ int neighbor_alarms[1000][10]; /*each detector has at most */ /* 10 neighboring alarm locations */
UML语法描述
是对一组具有相同属性、相同操 类 作、相同关系和相同语义的对象
的描述
对象
接口
是描述了一个类或构件的一个服 务的操作集
协作
定义了一个交互,它是由一组共 同工作以提供某种协作行为的角 色和其他元素构成的一个群体
用例 是对一组动作序列的描述
主动 对象至少拥有一个进程或线程的 类类
构件 是系统中物理的、可替代的部件
❖功能变化引起软件结构的整体修改
较好
较差
❖通过对象实例或派生类
❖标准函数库不是自含的和独立的
❖方便修改和扩充,且不影响原有类的使用 ❖模块重用,则相应的数据也必须重用
较易 ❖可分解成相互独立的小产品 较好
❖稳定性好,易修改,易理解
较难 ❖分而不解 较差
❖稳定性较差,较难修改,较难理解
喷泉模型(Fountain Model)
The system would monitor status of the smoke detectors.
Whenever a fire condition is reported by any smoke detector, the system should determine the location where the fire condition was reported, and sound the alarms in the neighboring locations.
客
计
观 世
OOA OOD OOP
算 机
界
世
界
特性 思维方法
稳定性 可重用性
开发大型软件
可维护性
面向对象方法
与人类习惯的思维方法一致,解空间与问 题空间一致
❖ 以对象为核心,数据以及数据上的操作 封装为一个统一体--对象 ❖ 软件系统由对象组成,以对象间的消息 模拟实体间的联系
❖ 抽象思维,归纳思维,演绎思维 ❖ 开发围绕建立问题领域的对象模型,是 一个逐步深化的渐进过程
第9章
面向对象方法引论
问题
为什么面向对象软件工 程方法优于传统软件工
程方法呢?
An automated fire-alarm system for a large building
There are 80 floors and 1000 rooms. Different rooms are fitted with smoke detectors and fire alarms.
Object-Oriented Approach
class detector
Attributes status, location, neighbors
Operations create, sense_status, get_location, find_neighbors
class alarm
分
实体具有静态的属性和动态的行为
析 、
解空间(求解域)
设
计算机中的实体(解空间对象)
计 和
编
程
面向过程程序
面向对象程序
面向对象=对象+分类+继承+通信
软件系统由对象组成,而每个对象用它本身的一组属性和它可 以执行的一组操作来定义。
具有相同属性和操作的对象划分为类;单个对象视为某类的实 例。
③ 储户键入密码;
④ 系统检验密码;
有错:退出ATM卡;
⑤储户按确认键,输入取款金额;
⑥ ATM把帐号和取款金额传递给银行系统,取回确认信息和帐户余额;
ATM输出现金,并显示帐户余额;
ATM记录事务到日志文件;
⑦ 储户取出ATM卡。
示例:订单处理系统
问题陈述 公司从各种供应商购买产品,然后再推销 每季度向客户发布一次产品目录 客户以提交商品列表并向公司付费的方式购买 商品,公司填写订单并把商品送到客户所在的 地址 订单处理软件记录从收到订单直到商品被运送 到客户的整个过程 运输公司提供快捷服务,以最快、最有效的方 法来运送客户订购的商品 客户可能退货,要求重新订货,有时要投诉
Function-Oriented Approach
The functions which operate on the system state: interrogate_detectors(); get_detector_location(); determine_neighbor(); ring_alarm(); reset_alarm(); report_fire_location();
UML概述
统一建模语言 UMULM中L一是共有国九际种图对: 它们象是管用例理图、组类图织、 对图象 、OM图 状、 态G顺图批序、准图活的、动协 图基作 、 构件于图面、向部署对图象技
术的标准建模 语言。
用例图( Use Case Diagram )
※用例图是从用户角 度描述系统功能, 是 用户所能观察到的系 统功能的模型图,用 例是系统中的一个功 能单元
9.3 面向对象建模
三种模型 UML概述
三种模型
对象模型………………….对谁做 表示静态的、结构化的系统的“数据”性质。
动态模型…………………….何时做 表示瞬时的、行为化的系统的“控制”性质,它 规定了对象模型中的对象的合法变化序列。
功能模型……………………….做什么 表示变化的系统的“功能”性质,它指明了系统 应该“做什么”。