版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Copyright2023ByNeusoftGroup.AllrightsreservedUML建模基础
——类图第1页一、类图
类图是面向对象系统建模最常用图,类图描述了类、接口以及它们之间关系。类图用来为系统静态设计视建模。类图组成部分包括:类。接口。依赖、类属、实现或关联关系。类图还能够具有注释、约束、包或子系统。第2页第3页第4页第5页1.1类构造概念对一组具有相同属性、操作、关系和语义对象描述一种对象是一种类实例包括:名称(name)属性(attributes)操作(operations)第6页
UML中,描述一种属性语法如下:
visibilityattribute-name[multiplicity]:type=initial-value可见性属性名[多重性]:类型[=初始值]
属性描述第7页符号种类语义+Public(公共)任何能看到这个类类都能看到该属性#Protected(受保护)这个类或者它任何子孙类都能看到该属性
Private(私有)只有这个类本身能看到该属性
Package(包)在同一种包中任何类能看到该属性可见性visibility第8页RationalRose中表达:公私第9页属性初始值设置:能够通过在属性名称和数据类型之后添加等于号(=)来为属性指定默认值,如下列图所示。第10页属性多重性:多重性为可选项,它体现该类每个实例属性值个数。能够像应用于类之间关系中那样把多重性应用于属性。[0..1],[1],[*]([0..*]),[1..*],[1..3]例如,Student类具有属性Grades。不希望该属性只包括单个值,而是希望它包括该学生所有成绩,能够是任意多种。第11页
数据类型能够是任何顾客需要内容,包括:来自程序设计语言如VisualBasic、C++、C#和Java任何标准数据类型。
属性类型表达:冒号“:”后跟属性值数据类型。数据类型表达依赖于实现语言,如有程序设计语言要求浮点数用保存字“Float”表达,有则要求用保存字“Real”表达。第12页定义为类属性(staticattibute),用下划线指明maxCount:Integer=0jobID:Integercreate(){jobID=maxCount++}schedule()Job类属性实例属性类操作实例操作第13页UML中描述一种操作语法如下:
Visibility
operating-name(parameter-list):return-type
参数表
parameter-name:typemultiplicity=default-value
操作描述第14页
操作(Operation)表达类能够提供功能服务。它在UML类矩形框中用文字串说明,如下列图所示。
操作名批示类可提供功能服务,它后跟圆括号中参数列表是可选项,即一种操作能够有参数,也能够没有参数。参数列表由逗号分隔操作形式参数组成,其格式为:参数名:类型=缺省值,…第15页Student类返回列表是返回给调用者单个变量值,它能够表达该操作程序运行一种成功标志或者计算值。第16页边界类(Boundaryclass)接口与系统外部某些事物媒介控制类(ControlClass)负责协调用例行为实体类(EntityClass)
封装了数据以及数据有关操作1.2类分类第17页(1)边界类边界类帮助系统接口与系统外部进行交互。边界对象将系统与其外部环境变更(与其他系统接口变更、顾客需求变更等)分隔开,使这些变更不会对系统其他部分造成影响分类顾客接口类帮助与顾客进行通信类,通过标准I/O设备提供人机界面系统接口类帮助与其他系统进行通信类,系统接口对象隐藏如何与外部接口通信细节设备接口类或Timer提供对硬件设备软件接口第18页-19-示例:识别边界类每对参与者/用例定义一种边界类第19页
(2)控制类本身不完成任何功能,负责协调其他类工作控制类并不能处理用例需要执行一切事务。相反,它协调其他用例实行此功能对象活动。控制类将工作委派给已被指定负责此项功能对象。控制类一般被当作一种乐队指挥,它指挥(控制)参与usecase其他对象行为,通知对象什么时候执行以及执行什么。一般一种usecase会对应一种(或多种)控制类,来控制usecase任务流程第20页-21-示例:识别控制类一般,每个用例定义一种控制类伴随分析继续,一种复杂用例控制类能够发展为多种第21页第22页
(3)实体类是系统中要永久保存逻辑数据构造。一般代表系统中信息存放对应于系统中名词有时Actor也可作为实体类第23页2识别对象和类类和对象识别类识别贯通于整个系统分析、实现过程中:分析阶段主要是识别问题域有关类;设计阶段需要加入某些反应设计思想、办法类以及其他某些实现问题域所需类;编码阶段,加入某些编程语言有关类。类识别某些办法
名词识别法,根据用例确定类,CRC分析法,根据边界类、控制类、实体类帮助识别系统中类、对领域进行分析,利用领域分析成果确定类。UML和设计模式24第24页(1)名词识别法根据系统问题域中概念和命名,从系统描述中名词及名词性短语中寻找。这些名词往往能够标识为对象或类。UML和设计模式25第25页(2)根据用例确定类针对每一种用例,回答如下问题来辅助识别类:用例描述中出现了哪些实体?用例完成需要哪些实体合作?用例执行过程中会产生并存放哪些信息?用例要求与之关联每个角色输入是什么?用例反馈给与之关联每个角色输出是什么?用例需要操作哪些硬件设备?UML和设计模式26第26页
不关怀系统运作流程及实体之间通信状态,而只考虑系统中人员、组织、地点、表格、报告等实体,通过度析将他们识别为类(或对象)。被标识实体有:系统需要存放、分析、处理信息实体;系统内部需要处理设备;与系统交互外部系统;系统有关人员;系统组织实体。(3).系统实体识别法第27页例:有一种购物超市,顾客可在货架上自由挑选商品,由收款机收款,收款机读取商品上条型码标签,并计算商品价格。收款机应保存所有交易统计,以备帐务复查及汇总使用。通过度析问题陈说,确定下列几类实体:⑴信息实体:交易统计、商品、税务信息、销售统计、货存统计。⑵设备:收款机、条型码扫描器。⑶交互系统:信用卡付款系统。⑷人员职责:收款员、顾客、会计、经理。以上列出实体,都能够直接识别为类。第28页名词识别法
有关类:有关类是指那些显著属于问题域类,一般表达这些类名字名词经常出目前需求陈说中。含糊类:那些我们不能肯定地和无二义性地分类为有关类类。我们需要对它们深入进行分析后才能确定其是有关类还是属性或者无关类。无关类:无关类是那些问题域之外类,我们无法陈说它们目标。有经验开发人员在他们候选类初始表中就不包括无关类,这样识别和消除无关类步骤就能够省略了。第29页-30-识别实体类分析用例事件流中名词、名词短语找出系统所需实体对象,这些名词也许是:对象、对象特性和状态参与者、描述信息、系统之外从这些名词、名词短语中进行筛选,抽取出系统对象,并抽象成类综合考虑在系统中意义、作用和职责对于所识别类进行命名第30页-31-名词筛选法识别实体类基本思绪:将用例文档作为输入,找出文档中名词或名词性短语,形成了实体类初始候选列表合并那些含义相同名词删除那些系统不需要处理名词删除作为参与者名词删除与实现有关名词删除那些作为其他实体类属性名词对剩下名词,综合考虑它在目前用例以及整个系统中含义、作用以及职责,并基于此确定合适名字,作为初始实体类存在第31页-32-实体类其他起源除了用例文档之外,从与顾客和专家进行访谈中得到信息,也可作为实体类起源系统原始需求书/问题描述该领域有关文献、专家意见或个人知识过去类似系统在背面职责分派中也许识别某些新实体类实体类命名要用该领域中最经常使用名称第32页
识别问题域中实体,实体描述一般用名词、名词短语、名词性代词形式出现。用指定语言对系统进行描述;从系统描述中标识名词、名词短语、名词性代词;识别确定(取、舍)类。描述过程应与领域专家共同合作完成,并遵循问题域中概念和命名。第33页
识别问题域中实体,实体描述一般用名词、名词短语、名词性代词形式出现。用指定语言对系统进行描述;从系统描述中标识名词、名词短语、名词性代词;识别确定(取、舍)类。为了发觉对象和类,开发人员要在系统需求和系统分析文档中查找名词和名词短语,包括:可感知事物、角色、事件、互相作用、人员、场所、组织、设备和地点等。第34页
识别问题域中实体,实体描述一般用名词、名词短语、名词性代词形式出现。用指定语言对系统进行描述;从系统描述中标识名词、名词短语、名词性代词;识别确定(取、舍)类。根据下述标准深入确定类:①去掉冗余类:如两个类表述同一信息,应保存最具有描述能力类。②去掉不相干类:删除与问题无关或关系不大类。③删除含糊类或性质独立性不强类:有些初始类边界定义不确切,或范围太广,应当删除。⑤所描述操作不宜作为对象类,所描述只是实现过程中临时对象,应删去。第35页案例—银行网络系统
一、问题陈说
银行网络系统包括人工出纳和分行共享自动出纳机;各分理处用自己计算机处理业务(保存帐户、处理事务等);各分理处与出纳站通过网络通信;出纳站录入帐户和事务数据。自动出纳机与分行计算机通信;自动出纳机与顾客接口,接收钞票卡;发放钞票;打印收据;分行计算机与拨款分理处结帐。要求系统正确处理同一帐户并发访问;网络费用平均摊派给各分理处。第36页ATM(AutoTradeMachine)银行网络系统包括人工出纳和分行与分理处共享自动出纳机。银行网络ATM系统自动出纳机自动出纳机自动出纳机出纳站分理处计算机分理处计算机出纳站帐户帐户顾客分行计算机自动出纳机…第37页确定类采取名词识别法:检查问题陈说中所有名词,得到初始类:软件银行网络出纳员分行系统自动出纳机帐户帐户数据出纳站分理处访问分理处计算机
事务事务数据钞票卡顾客顾客分行计算机钞票收据费用安全措施统计保管根据下述标准深入确定类:①去掉冗余类:如两个类表述同一信息,应保存最具有描述能力类,如“顾客”与“顾客”是反复描述,由于“顾客”更具有描述性,故保存它,删除“顾客”。②去掉不相干类:删除与问题无关或关系不大类,如“费用”。第38页确定类采取名词识别法:检查问题陈说中所有名词,得到初始类:软件银行网络出纳员分行系统自动出纳机帐户帐户数据出纳站分理处访问分理处计算机
事务事务数据钞票卡顾客顾客分行计算机钞票收据费用安全措施统计保管③删除含糊类:有些初始类边界定义不确切,或范围太广,应当删除。如“系统”、“安全措施”、“统计保管”、“银行网络”。④删除那些性质独立性不强,而应当是类“属性”候选类:如“帐户数据”、“收据”、“钞票”、“事务数据”。第39页采取名词识别法:检查问题陈说中所有名词,得到初始类:软件银行网络出纳员分行系统自动出纳机帐户帐户数据出纳站分理处访问分理处计算机
事务事务数据钞票卡顾客顾客分行计算机钞票收据费用安全措施统计保管⑤所描述操作不宜作为对象类,并被其本身所操纵,所描述只是实现过程中临时对象,应删去。如“软件”,“访问”。确定类第40页最后确定11个类为:
分行计算机分行出纳站出纳员分理处计算机自动出纳机帐户钞票卡事务顾客采取名词识别法:检查问题陈说中所有名词,得到初始类:软件银行网络出纳员分行系统自动出纳机帐户帐户数据出纳站分理处访问分理处计算机
事务事务数据钞票卡顾客顾客分行计算机钞票收据费用安全措施统计保管确定类第41页-42-从用例中识别分析类第42页-43-实例-旅游申请系统中分析类第43页(1)关联(2)聚集和组合(3)泛化(4)依赖(5)实现3.类之间关系第44页关联(1).关联定义
关联(association):模型元素之间一种语义联系,它是对具有共同构造特性、行为特性、关系和语义链描述。关联能够分为单向关联,双向关联。单向关联双向关联第45页关联关系是指类之间语义联系。关联能够具有如下特性:关联名称角色名称多重性导航性第46页①关联名关联名★假如关联关系已经清楚,就无需关联名第47页②关联角色★
在关联每一种端点上有一种角色。每一种角色具有一种名字,用来描述其类被其他类看作是什么:把它称为角色名假如类名与角色名相同,则不标出角色名,类关系通过添加角色来深入丰富。在类图中使用角色能够帮助读者理解第一种类对于第二个类作用。关联角色第48页
下列图显示了player类和Team类在关联中分别扮演两个角色。第49页
③多重性(mutiplicity)用来批示一种类多少对象与另一种类一种对象有关。能够在类关系任何一端添加多重性,来批示出多重性,如下列图所示。第50页
多重性是非负整数开集一种子集。另一端上多重性是指,对于本端一种对象,需要另一端对象个数。把多重性规约表达成由用逗号分开整数间隔序列组成字符串,间隔代表整数范围(也许无限),其格式为:下限..上限其中下限和上限都是文字整型值,说明从下限到上限整数闭区间。另外星号(*)能够用于上限,表白不限制上限。
假如多重性规约由单个(*)组成,那么它就表白了无穷非负正整数范围,也即它等价于0..*。
第51页AB有多少A对象与B一种对象有关有多少B对象与A一种对象有关??第52页0,10:0或100..*:0到多种11..n:1到多*:0到多关联角色关联多重性在UML中,常用关联多重性表达格式如下:0..10或111*0或多种885,7..105或7~10第53页成绩单11学生有一种系11..*专家工作系0..11专家系主任课程0..*0..*学生选修第54页第55页静态构造模型:实体类类图
第56页第57页读图过程读出类:读出关系:从图中关系最复杂(也就是线最密集)类开始阅读,本图中最复杂就是Order类。
1)OrderItem和Order之间是组合关系,根据箭头方向可知Order包括了OrderItem。
2)Order类和Customer、Consignee、DeliverOrder是关联关系。也就是说,一种订单和客户、收货人、送货单是有关。第58页读图过程多重性:用来说明关联两个类之间数量关系源类及多重性目标类及多重性分析Customer(1)Order(0…n)订单是属于某个客户,网站客户能够有0个或多种订单Order(1)Consignee(1)每个订单只能够有一种收货人Order(1)OrderItem(1…n)订单是由订单项组成,最少要有一种订单项,最多能够有n个Order(1)DeliverOrder(1…n)一种订单有一种或多种送货单说明:系统根据订单项产品所属商户,将其分发给商户,拆成了多种送货单!DeliverOrder(1)OrderItem(1…n)一张送货单对应订单中一到多种订单项DeliverOrder(1)Consignee(1)每张送货单都对应着一种收货人Peddlery(1)DeliverOrder(0…n)每个商户能够有有关0个或多种送货单OrderItem(1)Product(1)每个订单项中都包括着唯一一种产品Peddlery(1)Prodcut(0…n)产品是属于某个商户,能够注册0到多种产品第59页(一)、定义系统对象类定义过系统需求,就能够根据系统需求来识别系统中所存在对象。系统对象识别能够通过寻找系统域描述和需求描述中名词来进行,从系统需求描述中能够找到名词有银行(Bank)、帐户(Account)、客户(Customer)、资金(Funds),这些是对象图中候选对象。第60页(一)、定义系统对象类从上述分析可知,系统最少具有3个主要类:Bank、Account、Customer。在银行中,对帐户进行存钱、取钱、转帐操作,要保存业务统计。因此在系统中还应有代表这些业务统计对象存在:存(Deposit)、取(Withdraw)、转帐(Transfer),这三个类都是一种业务统计,故可抽象出父类:Transaction。接着需确定这些对象属性和行为。第61页类BankGUI系统主界面示例图第62页类QueryDialog帐户查询对话示例图第63页DWDialog界面(存款)示例图第64页DWDialog界面(取款)示例图第65页界面类AccountDialog示例图1第66页界面类AccountDialog示例图2当按下主窗口“注销帐户”或“修改帐户信息”按钮时,对话框QueryDialog弹出,操作员填写帐号并确定提交后,系统弹出对话框AccountDialog,显示帐户详细信息。第67页界面类AccountDialog示例图3第68页类TransferDialog示例图第69页银行简化系统类图第70页第71页类A代码:PublicclassA{publicBtheB;publicA(){}}类B代码:PublicclassB{publicB(){}}4)导航性假如关联是单向,则称为导航关联。导航性描述了源对象通过链接访问目标对象。箭头表白了导航方向性,只有源对象才能访问目标对象,反之,目标对象不能访问源对象。导航性第72页(2)聚集和组合聚集聚集(aggregation):表达类之间一种涣散整体与部分组成关系,是一种特殊关联。表达“整体/部分”关联关系。“hasa”,表达聚合中每一种部分能够属于其他整体。被表达为在整体一端用一种空心菱形修饰简单关联第73页第74页
组合
组合(composition):表达类之间一种紧密整体与部分组成关系,也是一种特殊关联。表达组合中每一种部分只能属于一种整体组合确实只是一种特殊关联,用整体端有实心菱形箭头简单关联修饰它。第75页聚集与组合区分①聚集涣散,组合紧密;
●第76页3.聚集与组合区分
①聚集涣散,组合紧密;②一种部分事物对象能够属于多种聚集对象,但一种部分事物对象仅能属于一种组合对象;
●第77页3.聚集与组合区分①聚集涣散,组合紧密;②一种部分事物对象能够属于多种聚集对象,但一种部分事物对象仅能属于一种组合对象;③聚集对象生命周期能够不一样,但组合对象则是同存同亡。●第78页(3)泛化
泛化(generalization):表达事物之间一般与特殊关系。也能够称为继承关系。表达“一般/特殊”关系。“is-a-kind-of”也就是继承关系带空心箭头实线表达,箭头指向父元素。
第79页泛化目标自顶向下属性继承。能够使得子类共享父类属性和操作,实现继承。自底向上实例替代。能够使得子类实例用于任何父类被申明使用地方,实现多态。第80页泛化表达:例子表达第81页(4)依赖
依赖(dependency):表达两个元素X、Y,假如X变化必然造成Y变化,则称Y依赖X。
第82页
依赖表达:例子表达第83页(5)实现一种元素完成另外一种元素操作功能,则二者之间组成实现关系。如接口类及其实现;接口没有属性,只有申明操作办法(对于办法没有实现部分),而由实现类详细定义实现部分。第84页关联类□深入描述关联属性、操作以及其他信息。关联类通过一条虚线与关联连接。图5.6使用关联类关联
第85页第86页限定关联□在关联端紧靠类图标处能够有限定符(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吸盘碗产业规划专项研究报告
- 农业生产产品质量提升方案
- 35KV电线拆旧后续改建方案
- 四年级下册语文《古诗两首》说课稿
- 新能源物资供应及售后服务方案
- 导游实务学习通超星期末考试答案章节答案2024年
- 互联网+国际贸易综合训练学习通超星期末考试答案章节答案2024年
- 公园树木修剪与养护专项方案
- 可回收材料分类机产业规划专项研究报告
- 人造颚产业运行及前景预测报告
- ICU谵妄患者的护理
- 合同审查之思维体系与实务技能
- 新人教版七年级上册初中数学全册教材习题课件
- 2024至2030年中国软件和信息技术服务产业全景调查及投资咨询报告
- 2024至2030年中国月子中心行业市场需求与投资规划分析报告
- 第06讲:记叙顺序(讲解)-2024年中考语文记叙文阅读讲与练(全国)原卷版
- 住宅小区物业快递柜合作合同2024年
- 1《百合花》第一课公开课一等奖创新教学设计统编版高中语文必修上册
- 2024至2030年中国超短波电台行业产销形势与应用规模预测报告
- 2024至2030年成都市酒店市场前景调查及投资策略分析报告
- 2024新译林版三年级英语上册全一册全部教案(共34课时)
评论
0/150
提交评论