第二章统一建模语 言U ML

上传人:w****i 文档编号:91050808 上传时间:2019-06-21 格式:PPT 页数:29 大小:602.50KB
返回 下载 相关 举报
第二章统一建模语 言U ML_第1页
第1页 / 共29页
第二章统一建模语 言U ML_第2页
第2页 / 共29页
第二章统一建模语 言U ML_第3页
第3页 / 共29页
第二章统一建模语 言U ML_第4页
第4页 / 共29页
第二章统一建模语 言U ML_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《第二章统一建模语 言U ML》由会员分享,可在线阅读,更多相关《第二章统一建模语 言U ML(29页珍藏版)》请在金锄头文库上搜索。

1、第二章 统一建模语言,Unified Modeling Language,贝多芬作曲时使用五线谱,您设计软件使用UML,建筑工程使用CAD,面向对象分析的历史,Object Modeling Technology,Object-oriented software engineering,IBMRational UP,Business Process Modeling Notation,Domain-Specific Language(MS),2.1 什么是UML,UML是一种标准的图形化建模语言, 它是面向对象分析与设计的一种标准。,不是一种可视化的程序设计语言,而是一种可视化的建模语言;,不

2、是工具或知识库的规格说明,而是一种建模语言的规格说明, 是一种表示的标准。,UML用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集的系统,易于使用,表达能力强,进行可视化建模; 与具体的实现无关,可应用于任何语言平台和工具平台; 与具体的过程无关,可应用于任何软件开发的过程; 为面向对象的设计与开发中涌现的高级概念(如 协作 框架 模式和组件)提供支持; 可升级,具有广阔的适用性和可用性。,2.2 UML的目标:,功能模型:从用户的角度展示系统的功能,包括用例图。 对象模型:采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类图。 动态模型:展现系统的内部行为。包括序列

3、图,活动图,状态图。,2.3 UML三个主要模型:,2.3.1 类图(class diagram) 提供了对类及其关系进行建模的一种图形的表示法,因此它也描述了可能存在的对象。,Person,JoeSmith:Person,:Person,类,对象,Person,File,name,birthdate,changeJob,changeAddress,fileName,sizeInBytes,printFile,ClassName,attributeName1 : dataType1 = defaultValue1,attributeName2 : dataType2 = defaultValu

4、e2,Operation1(argumentList1) : resultType1,Operation2(argumentList2) : resultType2,(visibility),(visibility),(visibility),(visibility),类名:,属性:,操作:,2.3.2 链接和关联,链接(link): 是对象之间物理上或概念上的连接。,例: 孙悟空为甲骨文工作。,这里“为工作”就是一个链接。,关联(association): 描述了有着共同的结构和语义的一组链接。,例:一个人为一家公司工作。,这里“为工作”就是一个关联。,多重性(multiplicity) 指

5、定了一个类与关联类的单个实例可能相关的实例数目。它约束了相关对象的数目。 1. 一对一关系:,国家,国家名,首都,首都名,类图,hasCapital,hasCapital,hasCapital,中国 : 国家,国家名= “中国”,北京: 首都,首都名= “北京”,1,1,美国:国家,国家名=“美国”,华盛顿 : 首都,首都名=“华盛顿”,对象图,2. 一对多关系:,人,人名,小汽车,小汽车名,类图,1,*,驾驶,孙悟空: 人,人名=“孙悟空”,帕沙特: 小汽车,小车名=“帕沙特”,富康:小汽车,小车名=“富康”,对象图,标志:小汽车,小车名=“标志”,驾驶,驾驶,驾驶,3. 多对多关系:,类图

6、,人,人名,股票,股票名,持有,*,*,孙悟空: 人,猪八戒:人,人名=“孙悟空”,人名=“猪八戒”,沙悟净:人,人名=“沙悟净”,甲骨文:股票,股票名=“甲骨文”,雅虎:股票,股票名=“雅虎”,持有,持有,持有,对象图,关联终端(association end),Person,Company,*,01,employee,employer,WorksFor,关联的每一端都可以有一个关联终端名,employee,employer,孙悟空,甲骨文,猪八戒,甲骨文,沙悟净,联想,User,Directory,owner,1,*,authorizedUser,*,*,01,*,container,co

7、ntents,关联终端名对于同一个类的两个对象之间的关联是必须的。 它们可以区分一对类之间的多重关系。,拥有,访问,排序、包和序列,屏幕Screen,窗口Window,1,显示,*,ordered,对关联端的对象排序,航线Itinerary,飞机场Airport,*,*,访问,sequence,标注ordered和sequence是相同的,只是前一个不允许重复值,而后一个却可以。,bag: 允许重复值的元素集合。,限定关联(qualified association),Bank,accountNumber,Account,1,01,Bank,1,*,Account,accountNumber,

8、限定关联,增加了模型的精度,未限定,2.3.3 泛化(generalization)和继承(inheritance),交通工具,小汽车,轮船,卡车,“is a” 关系,2.3.4 聚合 aggregation 类与类之间的关系具有“整体与部分”的特点,则把这样的关联称为聚合。“has a” 关系,球队,人,*,*,成员,a 共享聚合,窗口,文本框,按钮,菜单,b 复合聚合,包含,*,*,*,2.3.4 依赖(dependency) 对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。,人Person,螺丝刀Screwdriv

9、er,screw(),人与螺丝刀的依赖关系“use a”关系,public class Person / 拧螺丝 public void screw(Screwdriver screwdriver) screwdriver.screw(); ,2.4 用例(use case)和用例图 用例用于描述系统的功能,帮助分析人员理解系统的行为。,保险商务系统,签订保险单,销售统计资料,客户数据资料,客户,保险销售员,购买饮料,供货,取货款,自动售货机系统,客户,供货人,收银员,用例: 购买一瓶饮料,小结: 在客户选择支付后 自动售货机弹出饮料,参与者: 客户 前置条件: 机器在等待投入 货币 描述:

10、异常: 取消: 脱销: 金额不足: 没有零钱: 后置条件:机器在等待投入 货币,用例描述,用例图,2.5 序列图(sequence diagram) 描述对象是如何交互的,并且将重点放在消息序列上,描述消息是如何在对象间放送和接受的。,文件打印序列图,:Computer,:PrinterServer,:Printer,:Queue,print(file),print(file),print(file),打印机空闲,打印机忙,store(file),2.5 状态图 state diagram 描述对象在生命周期内处于那些状态,每一种状态的行为以及什么样的事件引起对象状态发生改变。,名字,状态变量

11、,活动,entry/effect 1,do/activity,event 1/effect 2,event 2/effect 3,.,exit/effect 4,State1,State2,引发状态迁移的事件:,event(attribs)condition,显示,设置小时,设置分钟,do/显示当前时间,do/显示小时,do/显示分钟,modeButton,modeButton,Inc/hours=hours+1,Inc/minutes=minutes+1,modeButton,电子表状态图,DigitalWatch,modeButton(),inc(),类图,public class Sta

12、te public final int disPlay = 1; public final int setHours = 2; public final int setMinutes = 3; public int value; ,public class DigitalWatch private State state = new State(); private DigitalDisplay lcd = new DigitalDisplay(); public DigitalWatch() state.value = state.display; lcd.displayTime(); pu

13、blic void modeButton() switch(state.value) case state.disPlay : lcd.displayTime(); state.value = state.setHours; break;,case state.setHours : lcd.displayTime(); state.value = state.setMinutes; break; case state.setMinutes : lcd.displayTime(); state.value = state.disPlay; break; public void inc() swi

14、tch(state.value) case state.disPlay : break; case state.setHours : lcd.incHours(); break; case state.setMinutes : lcd.incMinutes(); break; ,2.6 活动图(activity diagram) 活动图着重描述操作(方法)实现中所完成的工作以及用例实例或对象的活动。,验证订单,执行订单,贷记帐号,结清交易,结束订单,发送失败通知,发送确认信息,股票交易处理的活动图,失败,成功,更新在线,组合投资,决策点,并发线程分流,并发线程合并,开始,结束,乘务人员,地勤人员,给养人员,清理垃圾,飞机加油,装载食品水,Actor,飞机降落,带有泳道swim lane的活动图,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号