版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022-4-25UML系统建模与分析设计1第四章第四章 系统分析与对象类建模系统分析与对象类建模l任何建模语言都以静态建模机制为基础任何建模语言都以静态建模机制为基础,标准建模语言标准建模语言UML也不例外。也不例外。l类和对象的建模,是类和对象的建模,是UML建模的基础。我们认为建模的基础。我们认为,熟练掌握基本熟练掌握基本概念、区分不同抽象层次以及在实践中灵活运用概念、区分不同抽象层次以及在实践中灵活运用,是三条最值得注意是三条最值得注意的建模基本原则。的建模基本原则。2022-4-25UML系统建模与分析设计2知识图谱知识图谱2022-4-25UML系统建模与分析设计3知识图谱知识图谱
2、2022-4-25UML系统建模与分析设计4本章目的:本章目的:l掌握系统分析的内容与方法掌握系统分析的内容与方法l掌握系统分析规格说明书的基本书写格式掌握系统分析规格说明书的基本书写格式l了解寻找和确定一个系统中对象类的方法了解寻找和确定一个系统中对象类的方法l掌握掌握UMLUML中对象类属性和操作的定义和描述方法中对象类属性和操作的定义和描述方法l掌握对象类之间的关系及其表示方法掌握对象类之间的关系及其表示方法l掌握利用包(子系统)的层次关系描述系统体系结构掌握利用包(子系统)的层次关系描述系统体系结构l掌握类和对象建模方法掌握类和对象建模方法2022-4-25UML系统建模与分析设计54
3、.1系统分析系统分析l根据建立的用户需求模型在系统分析阶段要进一步确立三个系统模型: 对象静态模型、对象动态模型和系统功能模型l系统分析活动的成果:v系统的静态结构模型、动态行为模型、必要的需求分析说明、系统分析说明书等一起构成系统的分析模型, v系统分析活动的成果成为下一步系统设计的基础。2022-4-25UML系统建模与分析设计6l面向对象的开发方法的基本任务是建立对象模型,是软件系统开发的面向对象的开发方法的基本任务是建立对象模型,是软件系统开发的基础。基础。l步骤:步骤:v先应当考察该系统的先应当考察该系统的对象静态结构模型对象静态结构模型 UML中的对象类图中的对象类图(Class
4、Diagram)与对象图与对象图(Object Diagram)表达了对象模型的静态结构,能够有效地建立专业领域的计算机系统表达了对象模型的静态结构,能够有效地建立专业领域的计算机系统对象模型。对象模型。v然后再考察在任何时刻对象及对象之间联系的改变,即对象的然后再考察在任何时刻对象及对象之间联系的改变,即对象的动动态结构模型的描述态结构模型的描述v接下来就是观察系统如何进行内部数据的传送和处理,即接下来就是观察系统如何进行内部数据的传送和处理,即系统功系统功能结构模型能结构模型的描述的描述2022-4-25UML系统建模与分析设计74.1.1 建造对象类静态结构模型l对象类静态结构模型描述了
5、系统的静态结构,它指出类间对象类静态结构模型描述了系统的静态结构,它指出类间的关系、通过继承,合成机制来组织对象结构的关系、通过继承,合成机制来组织对象结构描述。描述。 由系统中使用的类以及它们之间由系统中使用的类以及它们之间的关系组成,是描述系统的一种图式的关系组成,是描述系统的一种图式. 类图是构建其它图的类图是构建其它图的基础。基础。l将对象间的关系明确标注在关联线上,使对象之间彼此的将对象间的关系明确标注在关联线上,使对象之间彼此的关联关系更加清晰明了关联关系更加清晰明了l建立对象类静态结构模型,其开发过程是建立对象类静态结构模型,其开发过程是不断反复精炼的不断反复精炼的,并对对象类静
6、态结构模型进行整体性和一致性的检查并对对象类静态结构模型进行整体性和一致性的检查2022-4-25UML系统建模与分析设计8面向对象的思想面向对象的思想2022-4-25UML系统建模与分析设计9面向对象思想面向对象思想l每个对象都扮演了一个角色,并为其它成员提供特定的服每个对象都扮演了一个角色,并为其它成员提供特定的服务或执行特定的行为。务或执行特定的行为。 l在面向对象世界中,行为的启动是通过将在面向对象世界中,行为的启动是通过将“消息消息”传递给传递给对此行为负责的对象来完成的;同时还将伴随着执行要求对此行为负责的对象来完成的;同时还将伴随着执行要求附上相关的信息(参数);而收到该消息的
7、对象则会执行附上相关的信息(参数);而收到该消息的对象则会执行相应的相应的“方法方法”来实现需求来实现需求 l用类和对象表示现实世界,用消息和方法来模拟现实世界用类和对象表示现实世界,用消息和方法来模拟现实世界的核心思想的核心思想 2022-4-25UML系统建模与分析设计10对象类静态结构模型建模步骤l1.连线建立网络图连线建立网络图v根据对象类根据对象类CRC卡片卡片在图中画出有关联的类;在图中画出有关联的类;v如果一个类与另一个类相关联(有协作)这两类之间用线连接;如果一个类与另一个类相关联(有协作)这两类之间用线连接;v用带箭头的有向线段表示消息传递,从消息的发送者指向消息的接收者:用
8、带箭头的有向线段表示消息传递,从消息的发送者指向消息的接收者:v利用对象类利用对象类CRC卡片画出有关联(协作)关系对象类的网络图。卡片画出有关联(协作)关系对象类的网络图。l2.连接命名连接命名v复审对象类复审对象类CRC卡片卡片,评估属性操作和消息传递对象,为连接线起个有评估属性操作和消息传递对象,为连接线起个有确切含义的名字,写在连线旁确切含义的名字,写在连线旁,以表示是什么样的关系。以表示是什么样的关系。l3.确定关联基数确定关联基数v对连线的每一端评估,以确定基数。基数表示它们之间消传递的数(如对连线的每一端评估,以确定基数。基数表示它们之间消传递的数(如1对对1,1对多或多对多等)
9、。对多或多对多等)。l4.简化模型简化模型v对复杂系统的模型建立子系统图进行简化对复杂系统的模型建立子系统图进行简化l5.编制相应的文档资料。编制相应的文档资料。2022-4-25UML系统建模与分析设计11 3.3 定义系统的对象和类定义系统的对象和类 类类-责任责任-协作者(协作者(Class-Responsibility-Collaborator, 简称简称CRC)技术:)技术: 2022-4-25UML系统建模与分析设计12如何识别类如何识别类l是面向对象方法的一个难点,但又是建模的关键。常用的是面向对象方法的一个难点,但又是建模的关键。常用的方法有:方法有:l 1. 名词识别法名词识
10、别法l 2. 系统实体识别法系统实体识别法l 3. 从用例中识别类从用例中识别类l 4. 利用分解与抽象技术利用分解与抽象技术2022-4-25UML系统建模与分析设计13识别问题域中的实体,实体的描述通常用名词、识别问题域中的实体,实体的描述通常用名词、名词短语、名词性代词的形式出现。名词短语、名词性代词的形式出现。 用指定语言对系统进行描述;用指定语言对系统进行描述; 从系统描述中标识名词、名词短语、名词性代词;从系统描述中标识名词、名词短语、名词性代词;识别确定(取、舍)类。识别确定(取、舍)类。描述过程应与领域专描述过程应与领域专家共同合作完成,并家共同合作完成,并遵循问题域中的概念遵
11、循问题域中的概念和命名。和命名。2022-4-25UML系统建模与分析设计14识别问题域中的实体,实体的描述通常用名词、识别问题域中的实体,实体的描述通常用名词、名词短语、名词性代词的形式出现。名词短语、名词性代词的形式出现。 用指定语言对系统进行描述;用指定语言对系统进行描述; 从系统描述中标识名词、名词短语、名词性代词;从系统描述中标识名词、名词短语、名词性代词;识别确定(取、舍)类。识别确定(取、舍)类。为了发现对象和类,开发人员要在系统需求和系为了发现对象和类,开发人员要在系统需求和系统分析的文档中查找名词和名词短语,包括:可感知统分析的文档中查找名词和名词短语,包括:可感知的事物的事
12、物、角色角色、事件、互相作用、人员、场所、组织、事件、互相作用、人员、场所、组织、设备和地点等。设备和地点等。2022-4-25UML系统建模与分析设计15识别问题域中的实体,实体的描述通常用名词、识别问题域中的实体,实体的描述通常用名词、名词短语、名词性代词的形式出现。名词短语、名词性代词的形式出现。 用指定语言对系统进行描述;用指定语言对系统进行描述; 从系统描述中标识名词、名词短语、名词性代词;从系统描述中标识名词、名词短语、名词性代词;识别确定(取、舍)类。识别确定(取、舍)类。根据下述原则进一步确定类:根据下述原则进一步确定类:去掉冗余类:如两个类表述去掉冗余类:如两个类表述同一信息
13、,应保留最具有描述同一信息,应保留最具有描述能力的类。能力的类。 去掉不相干的类:删除与去掉不相干的类:删除与问题无关或关系不大的类。问题无关或关系不大的类。 删除模糊的类或性质独立删除模糊的类或性质独立性不强的类:有些初始类边界性不强的类:有些初始类边界定义不确切,或范围太广,应定义不确切,或范围太广,应该删除。该删除。 所描述的操作不适宜作为所描述的操作不适宜作为对象类,并被其自身所操纵,对象类,并被其自身所操纵,所描述的只是实现过程中的暂所描述的只是实现过程中的暂时的对象,应删去。时的对象,应删去。2022-4-25UML系统建模与分析设计16不关心系统的运作流程及实体之间的通信状态,不
14、关心系统的运作流程及实体之间的通信状态,而只考虑系统中的人员、组织、地点、表格、报告等而只考虑系统中的人员、组织、地点、表格、报告等实体,经过分析将他们识别为类(或对象)。实体,经过分析将他们识别为类(或对象)。 系统需要存储、分析、处理的系统需要存储、分析、处理的信息实体信息实体; 系统内部需要处理的系统内部需要处理的设备设备; 与系统交互的与系统交互的外部系统外部系统; 系统相关人员;系统相关人员; 系统的组织实体。系统的组织实体。2022-4-25UML系统建模与分析设计17例例1 有一个购物超市,顾客可在货架上自由挑选商品,由有一个购物超市,顾客可在货架上自由挑选商品,由收款机收款,收
15、款机读取商品上的条型码标签,并计算商收款机收款,收款机读取商品上的条型码标签,并计算商品价格。收款机应保留所有交易的记录,以备帐务复查及品价格。收款机应保留所有交易的记录,以备帐务复查及汇总使用。汇总使用。通过分析问题的陈述,确定以下几类实体:通过分析问题的陈述,确定以下几类实体: 信息实体:交易记录、商品、税务信息、销售记录、货存信息实体:交易记录、商品、税务信息、销售记录、货存记录。记录。 设备:收款机、条型码扫描器。设备:收款机、条型码扫描器。 交互系统:信用卡付款系统。交互系统:信用卡付款系统。 人员职责:收款员、顾客、会计、经理。人员职责:收款员、顾客、会计、经理。 系统的组织实体:
16、本例不考虑。系统的组织实体:本例不考虑。以上列出的实体,都可以直接识别为类。以上列出的实体,都可以直接识别为类。2022-4-25UML系统建模与分析设计182022-4-25UML系统建模与分析设计19l将整体类和组合类分解。可控制单个类将整体类和组合类分解。可控制单个类的规模。的规模。根据一些类的相似性建立抽象类,并建根据一些类的相似性建立抽象类,并建立抽象类与这些类之间的继承关系。立抽象类与这些类之间的继承关系。l抽象类实现了系统内部的重用,很好地控制了复杂性,抽象类实现了系统内部的重用,很好地控制了复杂性,并为所有子类定义了一个公共的界面,使设计局部化,提并为所有子类定义了一个公共的界
17、面,使设计局部化,提高系统的可修改性和可维护性。高系统的可修改性和可维护性。2022-4-25UML系统建模与分析设计204.1.2 建造对象类动态结构模型l对象类动态结构模型描述了系统的动态行为,它们指明系对象类动态结构模型描述了系统的动态行为,它们指明系统如何响应外部的事件或激励。统如何响应外部的事件或激励。l对象类动态结构模型包括对象类动态结构模型包括:v对象类状态模型对象类状态模型v交互模型交互模型2022-4-25UML系统建模与分析设计21对象类动态结构模型建模步骤l建立建立系统对象交互图系统对象交互图v评估所有用例,以便完全理解图中交互的先后顺序评估所有用例,以便完全理解图中交互
18、的先后顺序v标识驱动交互序列事件,理解这些事件如何和特定事件标识驱动交互序列事件,理解这些事件如何和特定事件相关联相关联l建造建造系统状态迁移图系统状态迁移图v为每个事件创建事件轨迹为每个事件创建事件轨迹v说明对象交互图中同步、并行、选择与反复进行的活动说明对象交互图中同步、并行、选择与反复进行的活动顺序顺序l复审模型,以验证其准确性复审模型,以验证其准确性l编制文档资料编制文档资料2022-4-25UML系统建模与分析设计224.1.3 建造系统功能处理模型l描述了系统所提供的功能描述了系统所提供的功能l建模步骤:建模步骤:v确定功能需求,利用所有用例图,完整确认是否真正符确定功能需求,利用
19、所有用例图,完整确认是否真正符合用户需求合用户需求v建立行为者交互图:描述行为者在系统环境中的交互关建立行为者交互图:描述行为者在系统环境中的交互关系系v建立活动流程图:说明行为者交互图中同步、并行、选建立活动流程图:说明行为者交互图中同步、并行、选择和反复的处理顺序择和反复的处理顺序v编制文档资料编制文档资料2022-4-25UML系统建模与分析设计234.1.4 编制系统分析规格说明文档l系统分析规格说明的文档格式与客户需求分析规格说明类系统分析规格说明的文档格式与客户需求分析规格说明类似似l客户需求分析规格说明要有客户需求分析规格说明要有用户参与制定用户参与制定,而系统分析规,而系统分析
20、规格说明主要是格说明主要是系统开发人员使用系统开发人员使用,是为下一步的系统设计,是为下一步的系统设计进行的准备工作进行的准备工作2022-4-25UML系统建模与分析设计242022-4-25UML系统建模与分析设计254.2 类和对象建模l类和对象建模用于描述一个系统的静态结构类和对象建模用于描述一个系统的静态结构l类和对象模型由若干对象类图描述类和对象模型由若干对象类图描述l类图类图由若干类的图形符号及表示其之间关联的图形符号组由若干类的图形符号及表示其之间关联的图形符号组成成l对象图是类图的一个实例对象图是类图的一个实例,它描述了类图中各个类的特定,它描述了类图中各个类的特定实例以及某
21、一时刻这些实例之间的特定链接实例以及某一时刻这些实例之间的特定链接2022-4-25UML系统建模与分析设计26类图类图l类的图形符号表示分为长式和短式。类及类型名均用英文类的图形符号表示分为长式和短式。类及类型名均用英文大写字母开头,属性及操作名为小写字母开头。常见类型大写字母开头,属性及操作名为小写字母开头。常见类型有:有:Char,Boolean,Double,Float, Integer, Object,Short, String等。等。v短式短式图形符号短式图形符号图形符号短式图形符号:由一个矩形实线方框及在由一个矩形实线方框及在方框内书写的类名表示方框内书写的类名表示v长式长式的图
22、形符号的图形符号: 也是由一个矩形实线方框表示,但它也是由一个矩形实线方框表示,但它用两条实线用两条实线分成分成3部分部分上边部分上边部分:书写类名书写类名中间部分中间部分:描述类的属性描述类的属性下边部分下边部分:描述类的操作描述类的操作2022-4-25UML系统建模与分析设计27对象图对象图l对象图是类图的一个实例,它描述了类图中类的特定实例对象图是类图的一个实例,它描述了类图中类的特定实例以及某一时刻这些实例之间的特定连接以及某一时刻这些实例之间的特定连接l对象图的图形符号表示对象图的图形符号表示:v使用了与类图相同的符号,在短式图形符号中,在对象使用了与类图相同的符号,在短式图形符号
23、中,在对象名下名下附加下划线附加下划线,对象名后接以冒号和类名,说明该对,对象名后接以冒号和类名,说明该对象是所从属的类。象是所从属的类。v 即:即: 对象名:类名对象名:类名2022-4-25UML系统建模与分析设计28示例:示例:小汽车小汽车注册号:注册号:String日期:日期: Cardata速度:速度: Integer方向:方向: Direction2022-4-25UML系统建模与分析设计29l在长式图形符号中,类与对象的图形符号表示区别:v名称:与短式相同类:类名是一个有意义的标识符对象:对象名下附加下划线,对象名后可接冒号和类名。v属性类:定义属性的类型与属性名(标识符)对象:
24、与类的属性名相同,但都有具体值v操作类:定义操作(函数)、返回类型、操作名、传递的消息 (参数)对象:与类中的操作定义相同2022-4-25UML系统建模与分析设计302022-4-25UML系统建模与分析设计31l由上图看出由上图看出:v类图是一种抽象的描述类图是一种抽象的描述,不具体表示某个现实世界的事物不具体表示某个现实世界的事物,其属性一其属性一般无确定的值般无确定的值v对象图是类图的一个实例对象图是类图的一个实例,每个对象都是相应类的一个实例每个对象都是相应类的一个实例,具体表具体表示某个现实世界的事物示某个现实世界的事物,其属性有确定的值其属性有确定的值v对象图中对象之间的关联对象
25、图中对象之间的关联,是相应类图中之间关联的一个具体实例是相应类图中之间关联的一个具体实例l对象是一个存在于时间和空间中的具体实体,而类仅代表一个抽象,对象是一个存在于时间和空间中的具体实体,而类仅代表一个抽象,抽象出对象的抽象出对象的“本质本质”。l类是共享一个公用结构和一个公共行为对象集合类是共享一个公用结构和一个公共行为对象集合 l类是静态的,对象是动态的;类是一般化,对象是个性化;类是定义,类是静态的,对象是动态的;类是一般化,对象是个性化;类是定义,对象是实例;类是抽象、对象是具体对象是实例;类是抽象、对象是具体 2022-4-25UML系统建模与分析设计32l在软件开发的不同阶段都使
26、用类图在软件开发的不同阶段都使用类图,但这些类图表示了不同但这些类图表示了不同层次的抽象。层次的抽象。,类图是研究领域的概念类图是研究领域的概念;,类图描述类与类之间的接口类图描述类与类之间的接口;,类图描述软件系统中类的实现类图描述软件系统中类的实现; 按照按照Steve Cook和和John Dianiels的观点的观点,2022-4-25UML系统建模与分析设计33按照按照Steve Cook 和和John Dianiels的观的观点,对象类图分为三个层次点,对象类图分为三个层次l概念层(conceptual)v该层对象类图描述应用领域的概念,实现它的类可从概该层对象类图描述应用领域的概
27、念,实现它的类可从概念中得出,但两者没有直接映射关系,一个概念模型应念中得出,但两者没有直接映射关系,一个概念模型应独立于实现它的软件和程序设计语言独立于实现它的软件和程序设计语言l说明层(specification)v该层对象类图描述软件的接口部分,而不是实现部分,该层对象类图描述软件的接口部分,而不是实现部分,接口可能因为实现环境,运行特性或者用户的不同而有接口可能因为实现环境,运行特性或者用户的不同而有多种实现多种实现l实现层 (implementation)v只有在实现层才会有真正类的概念出现,系统建模通过只有在实现层才会有真正类的概念出现,系统建模通过实现层接示软件的具体实现,这就是
28、常用的对象类图实现层接示软件的具体实现,这就是常用的对象类图l理解以上层次对画对象类图,读懂图很重要理解以上层次对画对象类图,读懂图很重要,各层之间没各层之间没有清晰的界限有清晰的界限2022-4-25UML系统建模与分析设计34类图的抽象层次类图的抽象层次概念层类图概念层类图, , 描述应有领域中的概念,仅包含类名,不虑细节;说明层类图说明层类图, , 描述软件的接口部分描述软件的接口部分, ,分析不针对具体语言,包含一些类的细节特性;实现层类图考虑实现问题实现层类图考虑实现问题, , 提供类的细节,提供类的细节,针对具体的语言,考虑类的实现细节2022-4-25UML系统建模与分析设计35
29、类图应用说明类图应用说明2022-4-25UML系统建模与分析设计36l领域模型是从面向对象的视角看待现实世界的结果,也就是通过类图来描述现实世界中各种事物的关系。l分析模型和领域模型是很相近的,分析模型主要是针对软件系统的分析,领域模型则更多是偏重对业务领域的分析l设计模型则是在分析模型的基础上添加设计元素的结果。与分析模型相比,设计模型中的类的属性集更趋完善;2022-4-25UML系统建模与分析设计37 1. 类(Class)的定义 对具有相似结构、行为和关系的一组对象的描述。 2.类的表示 类名类名属性属性操作操作4.3 描述对象类 简化表示简化表示2022-4-25UML系统建模与分
30、析设计38名称:每个类都有一个惟一的名称,通常采用名称:每个类都有一个惟一的名称,通常采用CamelCase格式表示格式表示属性:是已被命名的类的属性:是已被命名的类的特性,它描述该类实例中特性,它描述该类实例中包含的信息包含的信息 操作:是类所提供的服务,操作:是类所提供的服务,它可以由类的任何对象请求以影响其行为它可以由类的任何对象请求以影响其行为属性名和操作名也通常采用属性名和操作名也通常采用CamelCase格式表示,只不格式表示,只不过首字母通常为小写。过首字母通常为小写。 2022-4-25UML系统建模与分析设计394.3.1 类的属性描述类的属性描述 1. 属性的含义 属性(a
31、ttribute): 描述类所表示事物的静态性质。 2.属性的格式 可见性可见性 属性名属性名:类型类型 多重性多重性 次序次序 =初始值初始值特性特性2022-4-25UML系统建模与分析设计40类的属性 1. 属性的含义 属性(attribute): 描述类所表示事物的静态性质。 2.属性的格式 可见性可见性 属性名属性名:类型类型 多重性多重性 次序次序 =初始值初始值特性特性2022-4-25UML系统建模与分析设计41类的属性 1. 属性的含义 属性(attribute): 描述类所表示事物的静态性质。 2.属性的格式 可见性可见性 属性名属性名:类型类型 多重性多重性 次序次序 =
32、初始值初始值特性特性类型可以是类型可以是UML定义的类定义的类型,可以是型,可以是Java中的类型中的类型,也可以是类名,甚至可,也可以是类名,甚至可以自定义。在以自定义。在Rose工具中工具中并不检查其有效性。并不检查其有效性。2022-4-25UML系统建模与分析设计42类的属性 1. 属性的含义 属性(attribute): 描述类所表示事物的静态性质。 2.属性的格式 可见性可见性 属性名属性名:类型类型 多重性多重性 次序次序 =初始值初始值特性特性2022-4-25UML系统建模与分析设计43类的属性 1. 属性的含义 属性(attribute): 描述类所表示事物的静态性质。 2
33、.属性的格式 可见性可见性 属性名属性名:类型类型 多重性多重性 次序次序 =初始值初始值特性特性是对某属性“键-值”对的明确定义,书写格式为:“键=值”,是一个字符串,并不作语法检查。2022-4-25UML系统建模与分析设计44类的属性 1. 属性的含义 属性(attribute): 描述类所表示事物的静态性质。 2.属性的格式 可见性可见性 属性名属性名:类型类型 多重性多重性 次序次序 =初始值初始值特性特性格式是用一对大括号,内容是一个字符串。格式是用一对大括号,内容是一个字符串。2022-4-25UML系统建模与分析设计451、指出下面属性名的含义。、指出下面属性名的含义。?+ s
34、tudentName : String = “黎明黎明”# studentBirthDay : Date = 1999-10-21- price : Real = 12.01 R / W 2022-4-25UML系统建模与分析设计46 1. 操作的含义 操作(operation): 描述类所表示事物的动态性质。 2.操作的格式 可见性可见性 操作名操作名(参数列表参数列表):):返回类型返回类型特性特性4.3.2 类的操作描述2022-4-25UML系统建模与分析设计47类的操作 1. 操作的含义 操作(operation): 描述类所表示事物的动态性质。 2.操作的格式 可见性可见性 操作名
35、操作名(参数列表参数列表):):返回类型返回类型特性特性2022-4-25UML系统建模与分析设计48类的操作 1. 操作的含义 操作(operation): 描述类所表示事物的动态性质。 2.操作的格式 可见性可见性 操作名操作名(参数列表参数列表):):返回类型返回类型特性特性2022-4-25UML系统建模与分析设计49类的操作 1. 操作的含义 操作(operation): 描述类所表示事物的动态性质。 2.操作的格式 可见性可见性 操作名操作名(参数列表参数列表):):返回类型返回类型特性特性2022-4-25UML系统建模与分析设计501、指出下面操作名的含义。、指出下面操作名的含
36、义。?+ setName( name : String )+ getName( ) : String+ creatbook( )2022-4-25UML系统建模与分析设计51类的高级概念类的高级概念l抽象类是一种不能够被直接实例化的类,也就是说不能够抽象类是一种不能够被直接实例化的类,也就是说不能够创建一个属于抽象类的对象创建一个属于抽象类的对象l接口则是一种类似于抽象接口则是一种类似于抽象类的机制,它是一个没有类的机制,它是一个没有具体实现的类具体实现的类 2022-4-25UML系统建模与分析设计524.4 类之间的关系 UML中类的关系有中类的关系有关联关联(association) 、
37、聚集聚集(aggregation) 、 泛化泛化(generalization) 、 依赖依赖(depending)和细化和细化 (refinement)。l 关联是类之间的连结关联是类之间的连结,关联是类之间的语义联系,代表类的对象(实例)关联是类之间的语义联系,代表类的对象(实例)之间的一组连接(之间的一组连接(称为链称为链)。分为:)。分为: 1、常规关联、常规关联 2、多元关联、多元关联 3、有序关联、有序关联 4、受限关联、受限关联 5、或关联、或关联 6、关联类、关联类 7. 递归关联递归关联2022-4-25UML系统建模与分析设计53常规关联常规关联v最常见的关联,在两个类之间
38、有一条直线连接,上线写最常见的关联,在两个类之间有一条直线连接,上线写上关联名。上关联名。 在关联的两端可以写上一个称为重数的数值范围,表示在关联的两端可以写上一个称为重数的数值范围,表示该类有多少个对象可以对方一个对象连接,重数得到默该类有多少个对象可以对方一个对象连接,重数得到默认值为认值为1,符号:,符号:v“0.1”:表示:表示“零或零或1”;v“0.*”或或“*”:表示:表示“0”或或“多多”;v“1.*”:表示:表示“1或多或多”;v“5.11”:表示:表示“5至至11”;v“1,3,8”:是枚举型,表示:是枚举型,表示“1或或3或或8”。2022-4-25UML系统建模与分析设计
39、542022-4-25UML系统建模与分析设计552022-4-25UML系统建模与分析设计56 4.对关联须注意的一个问题 关联一定指的是类中关联一定指的是类中对象对象与类中的与类中的对象对象之之间的连接对应关系。间的连接对应关系。类图类图对象图对象图2022-4-25UML系统建模与分析设计57关联类关联类lOO建模的一个普遍问题是,当类之间具有多对多关系时,一些属性不能容易地放入任何一个类中。用户用户工作站工作站 授权授权*授权授权优先级优先级特权特权开始一个时间片开始一个时间片2022-4-25UML系统建模与分析设计58然而,当每个Person与雇佣它的Company间存在薪水属性时
40、会发生什么呢?薪水记录在何处呢?记录在Person类中还是在Company类中?答案是:薪水实际上是关联本身的特性,对于Person对象和Company对象之间的每个雇佣链接都存在特定雇佣的特定薪水。 UML允许你使用关联类来建模这种情况,如下图所示。2022-4-25UML系统建模与分析设计59 把类之间的关联定义成类,称为把类之间的关联定义成类,称为关联类关联类。关联类也有属性、操作并与其他的类关联。关联类也有属性、操作并与其他的类关联。2022-4-25UML系统建模与分析设计602022-4-25UML系统建模与分析设计61多元关联多元关联两个以上的类之间也可以互相关联。两个以上的类之
41、间也可以互相关联。2022-4-25UML系统建模与分析设计62有序关联有序关联ordered:有序的对象。“多”端的对象可以看作一个集合(无序的),写上ordered指明这些对象是有序的。2022-4-25UML系统建模与分析设计63或关联或关联保险公司保险公司保险合同保险合同人人公司公司*xor2022-4-25UML系统建模与分析设计64xor2022-4-25UML系统建模与分析设计65受限关联受限关联l受限关联用于一对多或多对多的关联。限制符号限制符号画成一个画成一个小方块,内标限制内容,位于靠近受限制方的关联末端。小方块,内标限制内容,位于靠近受限制方的关联末端。限制符号用来区分关
42、联限制符号用来区分关联“多多”端的对象集合。端的对象集合。l指明了在关联指明了在关联指明了在关联指明了在关联“多多”端某个特殊对象受限制,端某个特殊对象受限制,将模型中的一对多关系简化为一对一,将多对多简化为多将模型中的一对多关系简化为一对一,将多对多简化为多对一。对一。2022-4-25UML系统建模与分析设计66递归关联递归关联lUML允许一个类自己和自己关联,称为自返关联或递归关允许一个类自己和自己关联,称为自返关联或递归关联表示同类的对象之间语义上的连接。联表示同类的对象之间语义上的连接。节点节点连接连接*人人治疗治疗病人病人医生医生2022-4-25UML系统建模与分析设计67l例例
43、:在公务员类中有递归关联,公务员包括领导和办在公务员类中有递归关联,公务员包括领导和办事员,一个领导管理多个办事员,每个办事员可能被事员,一个领导管理多个办事员,每个办事员可能被0或或1个领导管理。个领导管理。2022-4-25UML系统建模与分析设计68public class Student public Student monitor; public Student stu ; public Student( ) 2022-4-25UML系统建模与分析设计69 “班级班级”和和“班长班长”两个类之间存在管理关两个类之间存在管理关系,一个班级仅可以有一个班长,一个班长只能系,一个班级仅可以
44、有一个班长,一个班长只能是一个班级的班长,标出这两个类的关系。是一个班级的班长,标出这两个类的关系。?2022-4-25UML系统建模与分析设计702022-4-25UML系统建模与分析设计71 “班主任班主任”和和“学生学生” 之间存在管理关系,之间存在管理关系,一个班主任仅可以管理一个班的学生,一个班的一个班主任仅可以管理一个班的学生,一个班的学生,只能由一个班主任来管理,标出这两个类学生,只能由一个班主任来管理,标出这两个类的关系。的关系。?2022-4-25UML系统建模与分析设计72答案答案1:2022-4-25UML系统建模与分析设计73答案答案2:2022-4-25UML系统建模
45、与分析设计74答案答案3:班主任班级11学生1.n11111.n班主任班级学生管理2022-4-25UML系统建模与分析设计75 “教师教师”和和“学生学生”两个类之间存在授课关两个类之间存在授课关系,一个教师可以教授多个学生,一个学生可以系,一个教师可以教授多个学生,一个学生可以由多个教师授课,标出这两个类的关系。由多个教师授课,标出这两个类的关系。?2022-4-25UML系统建模与分析设计762022-4-25UML系统建模与分析设计77 采购员从供货商处订货,双方需要签订订单,采购员从供货商处订货,双方需要签订订单,一个采购员可以订多个供货商的货品,一个供货一个采购员可以订多个供货商的
46、货品,一个供货商也可以给多个采购员供货。商也可以给多个采购员供货。 要求:要求: 1. 提取这个问题涉及的类提取这个问题涉及的类; 2. 定义各个类之间的关系,并画出类图。定义各个类之间的关系,并画出类图。?2022-4-25UML系统建模与分析设计781.提取本问题的类提取本问题的类?类是否提取完全了,还有没有隐藏的类是否提取完全了,还有没有隐藏的没有提取的类?没有提取的类?2022-4-25UML系统建模与分析设计791.提取本问题的类提取本问题的类2022-4-25UML系统建模与分析设计802.确定类之间的关系确定类之间的关系2022-4-25UML系统建模与分析设计812.确定类之间
47、的关系确定类之间的关系?货品是由供应商提供,但订单所订的货货品是由供应商提供,但订单所订的货品怎么样反映出来?品怎么样反映出来?2022-4-25UML系统建模与分析设计822.确定类之间的关系确定类之间的关系2022-4-25UML系统建模与分析设计834.4.2 聚集关系 聚集是一种特殊的关联,它指出类间的聚集是一种特殊的关联,它指出类间的“整体整体-部分部分”关关系。又分为:系。又分为: 其其“部分部分”对象可以是任意对象可以是任意“整体整体”对象的一部分。当对象的一部分。当“整体整体”端的重数不是端的重数不是1时,称聚集是共享的。时,称聚集是共享的。整体类整体类部分类部分类项目项目人员
48、人员2022-4-25UML系统建模与分析设计84 其其“整体整体”(重数为重数为0、1)拥有它的拥有它的“部分部分” 。部分仅。部分仅属于同一对象,整体与部分同时存在。属于同一对象,整体与部分同时存在。整体类整体类部分类部分类窗口窗口工具框工具框显示区显示区标题标题窗口窗口标题标题工具框工具框显示区显示区2022-4-25UML系统建模与分析设计85三种关联的比较三种关联的比较特征特征一般关联一般关联共享聚集共享聚集组合聚集组合聚集UML标记标记实线实线加空心加空心加黑色实心加黑色实心是否存在拥有关系是否存在拥有关系无无弱弱强强多重性多重性任意任意任意任意整体端重数为整体端重数为1传递性传递
49、性无无有有有有传递方向传递方向无无整体到部分整体到部分整体到部分整体到部分2022-4-25UML系统建模与分析设计861、举出一个具有聚合关系的类图的例子。、举出一个具有聚合关系的类图的例子。2、举出一个具有组合关系的类图的例子。、举出一个具有组合关系的类图的例子。?2022-4-25UML系统建模与分析设计87ButtonWindow1.n1Menu1.n11.n111.n2022-4-25UML系统建模与分析设计88聚集关联聚集关联组合关联组合关联聚集选项聚集选项2022-4-25UML系统建模与分析设计894.4.3 继承继承(泛化泛化)关系关系l继承指出类之间的继承指出类之间的“一般
50、与特殊关系一般与特殊关系”,父类与子类之间,父类与子类之间构成构成。一般类一般类特殊特殊人员人员教师教师学生学生2022-4-25UML系统建模与分析设计90图图 形形abstract颜颜 色色中心位置中心位置笔的粗细笔的粗细移移 动()动()旋旋 转()转() 显显 示()示()abstract2 维维abstract定位定位填充类型填充类型缩放缩放填充填充多边形多边形边数边数顶点数顶点数显示显示园园直径直径显示显示旋转旋转线线 端点端点 显示显示0 维维abstract点点 显示显示样条样条 控制点控制点 显示显示弧弧半径半径起始角起始角弧度角弧度角显示显示1 维维abstract定位定位
51、缩放缩放维数维数2022-4-25UML系统建模与分析设计91泛化的目的:泛化的目的:l实现继承实现继承 可以使子类共享父类的属性和操作。可以使子类共享父类的属性和操作。l实现多态实现多态 可以使子类的实例根据其特殊情况执行特殊可以使子类的实例根据其特殊情况执行特殊的操作,而对外的调用不变。的操作,而对外的调用不变。2022-4-25UML系统建模与分析设计92尽管每个子类的实现方法各自不同,但外界调用的方式完全一样:2022-4-25UML系统建模与分析设计93练习:建模聚合关联和组合关联 在这个练习中,将会使用目前为止学习到的所有类型的关系来创建一个类图,这些关系包括普通关联、泛化、聚合和
52、组合。读者将会综合运用自己的知识从需求构造一个类图。 下面是一个制造商和维修店使用的存货清单系统的需求列表,从这些信息构造一个类图:v 存货由两个部分组成(零件和产品)。v 产品由两个或者更多零件组成,系统可以拥有无限多个零件和产品。v 存货中的部分零件有调速轮、轮齿和加力燃烧室。v 一名仓库保管员维护货存。一名装配工组装产品,一名维修员维修产品。v 完成的产品包括1-3个标签:Manufacturer标签指示产品已经完成;Repair标签指示产品已经检修过;FCC标签指示产品中包含加力燃烧室。2022-4-25UML系统建模与分析设计942022-4-25UML系统建模与分析设计95依赖和细
53、化关系依赖和细化关系依赖(dependency): 表示两个元素X、Y,如果X的变化可能会导致Y的变化,则称Y依赖X。 依赖关系是单向的。 依赖关系不仅限于类,用例、包、构件之间都可以存在依赖关系。 2022-4-25UML系统建模与分析设计96例子例子表示表示2022-4-25UML系统建模与分析设计97依赖一般情况下是以下几种情况之一:依赖一般情况下是以下几种情况之一:la、ClassA中某个方法的参数类型是中某个方法的参数类型是ClassB;这种情况;这种情况成为耦合成为耦合lb、ClassA中某个方法的参数类型是中某个方法的参数类型是ClassB的一个属性;的一个属性;这种情况成为紧耦
54、合;这种情况成为紧耦合;lc、ClassA中某个方法的实现实例化中某个方法的实现实例化ClassB;ld、ClassA中某个方法的返回值的类型是中某个方法的返回值的类型是ClassB; 2022-4-25UML系统建模与分析设计98 public class A public B getB(C c, D d) E e = new E(); B b = new B(c, d, e); 2022-4-25UML系统建模与分析设计99依赖关系依赖关系-实例实例一、依赖关系:一、依赖关系:1、作为调用类的局部变量、作为调用类的局部变量Class A Void MethodA() B b = new B
55、(); b.MethodB(); 2022-4-25UML系统建模与分析设计100依赖关系依赖关系-实例实例2、作为调用类方法的参数、作为调用类方法的参数Class A Void MethodA(B b) b.MethodB(); 2022-4-25UML系统建模与分析设计101依赖关系依赖关系-实例实例3、调用被调用类的静态方法、调用被调用类的静态方法Class A Void MethodA() B.StaticMethod(); 2022-4-25UML系统建模与分析设计102对比对比-关联关系关联关系-实例实例1、作为调用类的引用、作为调用类的引用Class A B b; Public
56、Class A b = new B(); Void MethodA() b.MethodB(); 2022-4-25UML系统建模与分析设计103关联关系关联关系-实例实例2、作为调用类的属性、作为调用类的属性Class A B b; Public PropertyB Get return this.b; Set this.b = value; 2022-4-25UML系统建模与分析设计104细化(实现)细化(实现)l实现是规格说明和其实现之间的关系。实现是规格说明和其实现之间的关系。l两类:两类: 1) 普通类实现抽象类普通类实现抽象类 2)普通类实现接口)普通类实现接口 类接口类接口类Cl
57、ass类抽象类表示表示表示表示2022-4-25UML系统建模与分析设计105 下面几个模型图中,(下面几个模型图中,( )能够正确地表示出)能够正确地表示出“一个雇员最多有一个经理,经理可以管理多个一个雇员最多有一个经理,经理可以管理多个雇员,也可以不管理一个雇员雇员,也可以不管理一个雇员”这样的意思。这样的意思。?2022-4-25UML系统建模与分析设计106l判断以下描述中的合适的判断以下描述中的合适的UML类间关系。类间关系。v在学校中,一个导师可以指导多个研究生,一个研究生在学校中,一个导师可以指导多个研究生,一个研究生可以由多个导师指导,那么导师和研究生之间的关系是:可以由多个导
58、师指导,那么导师和研究生之间的关系是:v类类A的一个操作调用类的一个操作调用类B的一个操作,且这两个类之间不的一个操作,且这两个类之间不存在其他关系,那么类存在其他关系,那么类A和类和类B之间的关系是之间的关系是 :v森林和树木之间的关系是:森林和树木之间的关系是:v在在MFC类库中,类库中,Window类和类和DialogBox类之间的关系是:类之间的关系是:v参数类及其实例类之间的关系是:参数类及其实例类之间的关系是: ?关联关联依赖依赖聚合聚合泛化泛化实现实现2022-4-25UML系统建模与分析设计107我们常常需要在为信息建模的几种方法中选择。例如,在我们常常需要在为信息建模的几种方
59、法中选择。例如,在汽车销售系统中,从顾客的角度,以下例子如何对汽车汽车销售系统中,从顾客的角度,以下例子如何对汽车car和颜色和颜色color建模比较好?建模比较好? CarColor11+color11CarGreenCarBlackCar2022-4-25UML系统建模与分析设计108绘制类图的步骤绘制类图的步骤l分析问题域,确定需求l寻找类,确定类的含义和职责l定义类的属性和操作l确定类之间的关系l精化类和类间的关系l绘制类图2022-4-25UML系统建模与分析设计109小王小王是一个爱书之是一个爱书之人人,家里家里各类各类书籍书籍已过千册,而平时已过千册,而平时又时常有又时常有朋友朋
60、友外借,因此需要一个外借,因此需要一个个人图书管理系统个人图书管理系统。该系统应该能够将书籍的该系统应该能够将书籍的基本信息基本信息按按计算机类计算机类、非计算非计算机类机类分别建档,实现按分别建档,实现按书名书名、作者作者、类别类别、出版社出版社等等关关键字键字的组合查询的组合查询功能功能。在使用该系统录入。在使用该系统录入新书籍新书籍时时系统系统会自动按会自动按规则规则生成生成书号书号,可以修改,可以修改信息信息,但一经创建就,但一经创建就不允许删除。该系统还应该能够对书籍的外借情况进行不允许删除。该系统还应该能够对书籍的外借情况进行记录记录,可对,可对外借情况列表外借情况列表打印。另外,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中考物理复习主题单元10第24课时电路识别、连接与设计课件
- 第三章第二节节分子和原子(教案)
- 洛阳市城乡居民基本医疗保险
- 电力行业运维队伍管理办法
- 环保企业法定代表人聘用协议
- 农村公路建设施工安全规范
- 生态环境治理招投标资料清单
- 家庭舞蹈室施工协议
- 企业内部口腔科护士招聘合同
- KTV服务员录用协议书
- 部编版五年级上册《我的长生果》公开课一等奖优秀课件
- 人民调解培训课件(共32张PPT)
- 小学部编版五年级语文上册教案(全)
- 绿化养护报价表
- 《工业革命与工厂制度》
- 课程领导力-资料教学课件
- 老人租房免责协议书
- 特灵中央空调机组RTHD详细介绍
- 2023人民教育出版社在职人员招聘笔试模拟试题及答案解析
- 大学生心理健康教育论文范文3000字(8篇)
- 消费者心理学PPT完整全套教学课件
评论
0/150
提交评论