版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、UML面向对象建模基础类图与对象图第1页,共41页。任何建模语言都以静态建模机制为基础,标准建模语言UML也不例外。所谓静态建模是指对象之间通过属性互相联系,而这些关系不随时间而转移。类和对象的建模,是UML建模的基础。我们认为,熟练掌握基本概念、区分不同抽象层次以及在实践中灵活运用,是三条最值得注意的建模基本原则。第2页,共41页。一、对象类与对象 UML中的对象类图(Class Diagram)与对象图(Object Diagram)表达了对象模型的静态结构,能够有效地建立专业领域的计算机系统对象模型。 类图(Class diagram)由系统中使用的类以及它们之间的关系组成,分为长式和短
2、式。 类及类型名均用英文大写字母开头,属性及操作名为小写字母开头。常见类型有:Char,Boolean,Double,Float, Integer, Object,Short,String等。类图是构建其它图的基础。 对象是对象类的实例(instance),用对象图来描述。对象图亦分长式和短式。属性:类型类名操作类名对象名:类名属性操作对象名类与对象的描述第3页,共41页。(1)属性(attribute) 属性用来描述类的特征,表示需要处理的数据。 属性定义: visibility attribute-name : type = initial-value property-string其中:
3、可见性(visibility)表示该属性对类外的元素是否可访问。 分为: public(+) 公有的,即模型中的任何类都可以访问该属性。 private(-) 私有的,表示不能被别的类访问。 protected(#) 受保护的,表示该属性只能被该类及其子类访问。 如果可见性未申明,表示其可见性不确定。第4页,共41页。(2) 操作 对数据的具体处理方法的描述则放在操作部分,操作说明了该类能做些什么工作。操作通常称为函数,它是类的一个组成部分,只能作用于该类的对象上。 操作定义: visibility operating-name(parameter-list): return-type pro
4、perty- string 可见性 操作名(参数表);返回类型约束特性 其中:可见性同上。 参数表:参数名:类型, Parameter-name :type =default-value 返回类型:操作返回的结果类型。类图的描述第5页,共41页。类图的阅读先看清有哪些类,然后看看类之间存在的关系,并结合多重性来理解类图的结构特点以及各个属性和方法的含义第6页,共41页。类图的抽象层次概念类 描述应有领域中的概念,仅包含类名,不考虑细节;分析类 分析不针对具体语言,包含一些类的细节特性;设计类 针对具体的语言,考虑类的实现细节;第7页,共41页。类图的绘制步骤分析问题域,确定需求寻找类,确定类的
5、含义和职责定义类的属性和操作确定类之间的关系精化类和类间的关系绘制类图第8页,共41页。 类的识别 是面向对象方法的一个难点,但又是建模的关键。常用的方法有: 1. 名词识别法 2. 系统实体识别法 3. 从用例中识别类 4. 利用分解与抽象技术关键是要定义类的“属性”及“操作”。第9页,共41页。. 名词识别法识别问题域中的实体,实体的描述通常用名词、名词短语、名词性代词的形式出现。 用指定语言对系统进行描述; 从系统描述中标识名词、名词短语、名词性代词;识别确定(取、舍)类。为了发现对象和类,开发人员要在系统需求和系统分析的文档中查找名词和名词短语,包括:可感知的事物、角色、事件、互相作用
6、、人员、场所、组织、设备和地点等。描述过程应与领域专家共同合作完成,并遵循问题域中的概念和命名。第10页,共41页。识别问题域中的实体,实体的描述通常用名词、名词短语、名词性代词的形式出现。 用指定语言对系统进行描述; 从系统描述中标识名词、名词短语、名词性代词;识别确定(取、舍)类。根据下述原则进一步确定类:去掉冗余类:如两个类表述同一信息,应保留最具有描述能力的类。 去掉不相干的类:删除与问题无关或关系不大的类。 删除模糊的类或性质独立性不强的类:有些初始类边界定义不确切,或范围太广,应该删除。 所描述的操作不适宜作为对象类,并被其自身所操纵,所描述的只是实现过程中的暂时的对象,应删去。第
7、11页,共41页。. 系统实体识别法不关心系统的运作流程及实体之间的通信状态,而只考虑系统中的人员、组织、地点、表格、报告等实体,经过分析将他们识别为类(或对象)。 被标识的实体有: 系统需要存储、分析、处理的信息实体; 系统内部需要处理的设备; 与系统交互的外部系统; 系统相关人员; 系统的组织实体。第12页,共41页。例1 有一个购物超市,顾客可在货架上自由挑选商品,由收款机收款,收款机读取商品上的条型码标签,并计算商品价格。收款机应保留所有交易的记录,以备帐务复查及汇总使用。通过分析问题的陈述,确定以下几类实体: 信息实体:交易记录、商品、税务信息、销售记录、货存记录。 设备:收款机、条
8、型码扫描器。 交互系统:信用卡付款系统。 人员职责:收款员、顾客、会计、经理。 系统的组织实体:本例不考虑。以上列出的实体,都可以直接识别为类。第13页,共41页。3. 从用例中识别类 根据用例的描述来识别类;如用例的描述中出现哪些实体?用例执行过程中产生并存储哪些信息?与用例关联的角色向用例输入什么信息?用例又向该角色输出哪些信息?第14页,共41页。在确定类时,常使用两类技术: 分解技术将整体类和组合类分解。可控制单个类的规模。 抽象技术根据一些类的相似性建立抽象类,并建立抽象类与这些类之间的继承关系。抽象类实现了系统内部的重用,很好地控制了复杂性,并为所有子类定义了一个公共的界面,使设计
9、局部化,提高系统的可修改性和可维护性。第15页,共41页。定义类标识属性属性表示类的稳定特征,即为了完成客户规定的目标所必须保存的类的信息,一般可以从问题陈述中提取出或通过对类的理解而辨识出属性。分析员可以再次研究问题陈述,选择那些应属于该对象的内容,同时对每个对象回答下列问题:“在当前的问题范围内,什么数据项(复合的和/或基本的)完整地定义了该对象?”第16页,共41页。定义类定义操作操作定义了对象的行为并以某种方式修改对象的属性值。操作可以通过对系统的过程叙述的分析提取出来,通常叙述中的动词可作为候选的操作。类所选择的每个操作展示了类的某种行为。操作大体可分为三类:以某种方式操纵数据的操作
10、(如,增加、删除、重新格式化、选择);完成某种计算的操作;为控制事件的发生而监控对象的操作。第17页,共41页。 UML中类的关系有关联(association) ,聚集(aggregation) ,泛化(generalization) , 依赖(depending)和细化 (refinement)。一、关联 关联是类之间的连结,分为:1. 常规关联2. 多元关联3. 有序关联4. 受限关联5. 或关联6. 关联类公司员工0.* 顾 佣 0.*工作于管理 1.*工人老板0.1常规关联 或关联用户工作站 授权*授权优先级特权开始一个时间片关联类类之间的关系保险公司保险合同人公司*or第18页,共
11、41页。7、其它关联 递归关联(Recursive association) 即一个类到自身的关联。节点连接*递归关联 人治疗病人医生带有职责的递归关联 第19页,共41页。二、聚集(aggregation) 聚集是一种特殊的关联,它指出类间的“整体-部分”关系。1、共享聚集(shared aggregation) 其“部分”对象可以是任意“整体”对象的一部分。当“整体”端的重数不是1时,称聚集是共享的。整体类部分类、组合聚集(composition aggregation) 其“整体”(重数为0、1)拥有它的“部分” 。部分仅属于同一对象,整体与部分同时存在。整体类部分类窗口工具框显示区标题
12、共享聚集窗口标题工具框显示区组合聚集项目人员第20页,共41页。三、泛化 泛化指出类之间的“一般与特殊关系”,即继承关系。父类与子类之间构成类的分层结构。一般类特殊人员教师学生抽象类 指没有实例的类,定义一些抽象的操作,即不提供实现方法的操作,只提供操作的特征。并附以abstract。交叠泛化 在继承树中,若存在某种具有公共父类的多重继承,称为是交叠(overlapping)的。否则是不交的(disjoint)。完全泛化 一般类特化出它所有的子类,称为完全泛化,记为complete。 不完全泛化 即未特化出它所有的子类,称为是不完全泛化 的,表示为incomplete.有关泛化的约束 第21页
13、,共41页。complete人女人男人性别完全泛化交通工具drive()汽车drive()轮船drive()drive()启动轮子转动drive()启动螺旋浆Person驾驶drive()是抽象操作泛化中的多态性及带识别名称的泛化propulsionpropulsionoverlapping交通工具重叠泛化汽车船水陆两栖车第22页,共41页。继承性的实例继承树图 形abstract颜 色中心位置笔的粗细移 动()旋 转() 显 示()abstract2 维abstract定位填充类型缩放填充多边形边数顶点数显示园直径显示旋转线 端点 显示0 维abstract点 显示样条 控制点 显示弧半径起
14、始角弧度角显示1 维abstract定位缩放维数第23页,共41页。OrderLine Quantity:Integer isSatisfied1*1*1*Customer name address CreditRating()Order dataReceived isPrepaid number:String dispatch() close() Personal CustomercreditCardCorporate Customer contactName creditRating creditLimit remind() billForMonth() EmployeeProduct0.
15、1+LineItem具有泛化关系的类图第24页,共41页。案例银行网络系统一、问题的陈述 银行网络系统包括人工出纳和分行共享的自动出纳机;各分理处用自己的计算机处理业务(保存帐户、处理事务等);各分理处与出纳站通过网络通信;出纳站录入帐户和事务数据;自动出纳机与分行计算机通信;自动出纳机与用户接口,接受现金卡;发放现金;打印收据;分行计算机与拨款分理处结帐。要求系统正确处理同一帐户的并发访问;网络费用平均摊派给各分理处。第25页,共41页。ATM(Auto Trade Machine)银行网络系统包括人工出纳和分行与分理处共享的自动出纳机。银行网络ATM系统自动出纳机自动出纳机自动出纳机出纳站
16、分理处计算机分理处计算机出纳站帐户帐户用户分行计算机自动出纳机第26页,共41页。采用名词识别法:检查问题陈述中的所有名词,得到初始类:软件银行网络出纳员分行系统自动出纳机帐户帐户数据出纳站分理处访问分理处计算机事务事务数据现金卡用户顾客分行计算机 现金 收据 费用安全措施记录保管根据下述原则进一步确定类:去掉冗余类:如两个类表述同一信息,应保留最具有描述能力的类,如“用户”与“顾客”是重复的描述,由于“顾客”更具有描述性,故保留它,删除“用户”。 去掉不相干的类:删除与问题无关或关系不大的类,如“费用”。(一) 确定类第27页,共41页。采用名词识别法:检查问题陈述中的所有名词,得到初始类:
17、软件银行网络出纳员分行系统自动出纳机帐户帐户数据出纳站分理处访问分理处计算机事务事务数据现金卡用户顾客分行计算机现金 收据费用安全措施记录保管 删除模糊的类:有些初始类边界定义不确切,或范围太广,应该删除。如“系统”、“安全措施”、“记录保管”、“银行网络”。 删除那些性质独立性不强的,而应该是类“属性”的候选类:如“帐户数据”、“收据”、“现金”、“事务数据”。第28页,共41页。采用名词识别法:检查问题陈述中的所有名词,得到初始类:软件银行网络出纳员分行系统自动出纳机帐户帐户数据出纳站分理处访问分理处计算机事务事务数据现金卡用户顾客分行计算机现金 收据费用安全措施记录保管 所描述的操作不适
18、宜作为对象类,并被其自身所操纵,所描述的只是实现过程中的暂时的对象,应删去。如“软件”,“访问”。第29页,共41页。最终确定的11个类为: 分行计算机分行出纳站出纳员分理处 计算机自动出纳机帐户现金卡事务顾客采用名词识别法:检查问题陈述中的所有名词,得到初始类:软件银行网络出纳员分行系统自动出纳机帐户帐户数据出纳站分理处访问分理处计算机事务事务数据现金卡用户顾客分行计算机现金 收据费用安全措施记录保管第30页,共41页。(二)为每个建模实体准备数据词典 描述模板 对类进行精确描述,如系统中类的范围、成员、方法的限制等。(三)确定关联 关联通常用描述性动词和动词词组表示。1. 从问题陈述中抽出
19、所有可能的关联表述。 2. 问题陈述中是不明显的,或是隐含的。 3. 还有一些关联与客观世界或应用领域有关,必须同用户一起确定这种关联。第31页,共41页。 关联通常由以下方面确定:、银行网络系统问题陈述中抽取可能的关联(动词词组)、隐含的动词词组、基于问题域的知识、去掉不必要和不正确的关联第32页,共41页。.银行网络系统问题陈述中的关联 银行网络包括出纳站和自动出纳机。分行共享自动出纳机分理处提供分理处计算机分理处计算机保存帐户分理处计算机处理帐户支付事务分理处拥有出纳站出纳站与分行计算机通信出纳员为帐户录入事务自动出纳机接受现金卡自动出纳机与用户接口自动出纳机发放现金自动出纳机打印收据系
20、统处理并发访问分理处提供软件费用分摊给分理处. 隐含的动词词组分行由分理处组成分理处拥有帐户分行拥有分行计算机系统提供记录保管系统提供安全顾客有现金卡.基于问题域的知识 分理处雇佣的出纳员 现金卡访问帐户 第33页,共41页。请对系统需求进行分析!经过初步的需求分析,得到系统功能要求:1. 监视病员的病症(血压、体温、脉搏等)2. 定时更新病历3. 病员出现异常情况时报警。4. 随机地产生某一病员的病情报告。 例2 医院病房监护系统产生病情报告监视病情更新病历第34页,共41页。例2 医院病房监护系统为了对危重病人进行实时监护,随时了解病人病情,及时进行处理,建立病房监护系统。病症监视器安置在
21、每个病床,通过网络将病人的组合病症信号实时传送到中央监护系统进行分析处理。在中心值班室里,值班护士使用中央监护系统对病员的情况进行监控,监护系统实时地将病人的病症信号与标准的病诊信号进行比较分析,当病症出现异常时,系统会立即自动报警,并打印病情报告和更新病历。系统根据医生的要求随时打印病人的病情报告,系统定期自动更新病历。第35页,共41页。监视器 网络 值班护士 医生 病人 病症监视 中央监护系统 报警信号 标准病症信号库 病历库 病人病症信号 病情报告 标准病症信号 病历中心值班室 处理 组合病症信号分析确定类:去掉冗余类:保留最具有描述能力的类。 去掉不相干的类:删除与问题无关或关系不大
22、的类。 删除模糊的类或性质独立性不强的类:有些初始类边界定义不确切,或范围太广,应该删除。 所描述的操作不适宜作为对象类,并被其自身所操纵,所描述的只是实现过程中的暂时的对象,应删去。根据名词识别法和实体识别法,确定了以下初始类:第36页,共41页。一、识别系统的类 通过名词识别法和系统实体识别法等方法可以确定系统的十二个类: 医生 用户名密码 查看病情报告()要求打印病情报告()查看病历()要求打印病历() 病人 姓名性别年龄病症 提供病症信号() 用户名密码 查看病情报告()打印病情报告() 值班护士 病症监视采集频率病症信号 格式化信号数据()采集信号()信号组合()类的识别值班护士 医生 病人 病症监视 中央监护系统 报警信号 标准病症信号库 病历库 病人病症信号 病情报告 病历 标准病症信号第37页,共41页。病人病症信号 脉搏血压体温生成病症信号() 病历格式病人基本情况打印时间生成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度电器行业广告发布与推广合同2篇
- 2024年度知识产权许可合同:权利人与使用方关于知识产权使用的协议
- 2024年度辣椒产业区块链应用合同协议范本3篇
- 2024城市广场照明系统安装合同
- 2024年三轮车买卖法律协议样本版B版
- 2024年度企业内退员工生育保险合同2篇
- 2024年建筑工程招投标与合同条款解析3篇
- 2024年企业安全生产责任协议3篇
- 2024年学生课后活动安排合同3篇
- 农业设施建设项目工长合同
- 阿尔丰斯穆夏作品选上课件
- 酒店待客之道培训课件
- 学习培训类APP产品创业计划书-大学生创新创业计划书
- 学校小农场打造方案
- 客服招聘策划方案
- 临床护理问题分析
- 机电安装工程文明施工环境保护方案
- 行政组织学课件
- 人工智能导论实训报告总结
- 手术室中的急救药物管理与应用
- 2024年中华棉花集团有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论