静态结构模型类图.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 静态 结构 模型
- 资源描述:
-
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,静态结构模型类图,优选静态结构模型类图,面向对象的分析模型,功能模型:,从用户的角度获取功能需求,由用例模型表示,(,已在上堂课学习过,),;,静态结构模型,(,分析对象模型,),:描述系统的概念实体,由类图表示;,动态行为模型,:描述对象之间的交互行为,由状态图和顺序图表示。,面向对象的分析模型,面向对象的分析模型,面向对象分析的过程,第一阶段:业务领域分析,分析应用领域的业务范围、业务规则和业务处理过程,确定系统的责任、范围和边界,确定系统的需求。,在分析中需要着重对系统与外部的用户和其他系统的交互进行分析,确定交互的内容、步骤和顺序。,用例模型,第二阶段:发现和定义对象和类,识别对象和类,确定它们的内部特征:属性与服务操作。,这是一个从现实世界到概念模型的抽象过程,而抽象是面向对象分析的基本原则。,第三阶段:识别对象的外部联系,在发现和定义对象和类的过程中,需要同时识别对象与对象、类与类之间的各种外部联系,如一般与特殊、整体与部分、实例连接,(,关联,),、消息连接等联系。,对象和类是现实世界中的事物的抽象,它们之间的联系也要从分析现实世界事物的各种真实的联系中获得。,第四阶段:建立系统的静态结构模型,分析系统的行为,建立系统的静态结构模型,并将其用图形和文字说明表示出来,如绘制类图、对象图、系统与子系统结构图等,编制相应的说明文档。,第五阶段:建立系统的动态行为模型,分析系统的行为,建立系统的动态行为模型,并将其用图形和文字说明表示出来,如绘制用例图、交互图、活动图、状态图等,编制相应的说明文档。,建立静态结构模型,基本的分析过程:,Step 1,:从用例模型入手,识别概念类;,Step 2,:描述各个类的属性;,Step 3,:定义各个类的操作;,Step 4,:建立类之间的关系;,Step 5,:绘制类图,(class diagram),识别概念类,如何从用户的需求陈述中找到,“概念类”?,名词驱动的识别方法,对用户需求陈述进行“语法分析”,找出所有的名词或名词短语,对其标注下划线;,合并同义词;,将最终得到的每一个名词映射为一个类;,动词映射为类的操作,形容词,/,名词映射为类的属性。,借书用例,借书用例描述,用例描述如下:,1,图书管理员将读者借书卡提供给系统;,2,系统验证读者身份和借书条件;,3,图书管理员将读者所借图书输入系统;,4,系统记录借书信息,并且修改图书的状态和此种书的可借数量;,5,系统修改读者的可用限额;,6,重复,3-5,,直到图书管理员确认全部图书登记完毕;,7,系统打印借书清单,交易成功完成。,借书用例描述,用例描述如下:,1,图书管理员,将,读者借书卡,提供给系统;,2,系统验证,读者身份,和,借书条件,;,3,图书管理员将,读者,所借,图书,输入系统;,4,系统记录,借书信息,,并且修改,图书的状态,和,此种书,的,可借数量,;,5,系统修改读者的,可用限额,;,6,重复,3-5,,直到图书管理员确认全部图书登记完毕;,7,系统打印,借书清单,,交易成功完成。,整体/部分关联聚集,在当前问题域,对象还具备那些特定描述项?比如人作为门诊系统的患者,还需要考虑血型、药物过敏、家族病史等。,不为对象关联定义属性。,这是一种经过了抽象的概念,应该识别为概念类。,一般不使用可导出的属性。,A是一个事务,B也是一个事务,二者有关联,1)前台人员向系统提供需要预定房间的类型、时间和预定天数。,人员:系统需要保存或管理其信息的人员(如录像商店的会员、图书馆的读者),或在系统中中扮演一定角色的人员(如录像商店的职员、论文评阅教师)。,第三阶段:识别对象的外部联系,整体-部分关联有两种类型,业务规则或 :系统中经常使用的业务规则或 的文字描述。,A在物理上包含在B中/依赖于B,-selectedCourses,1)前台人员向系统提供需要预定房间的类型、时间和预定天数。,继承关系用空心三角形+实现来表示。,图书馆系统的对象,名词类别,概念类列表,显而易见的对象,读者 借书卡 图书 借书信息,借书清单,明显无意义的对象,读者身份,不确定类别的对象,借书条件 图书状态 可借数量,可用限额,图书状态总是和具体的图书联系在一起,不是一个独立的对象。同理,借书数量、可用限额是读者属性。,可借数量是某个图书品种的特性,,每本图书归属于一个图书品种,图书品种是一个隐含概念,借书条件是一种规则,可以作为对象吗?,组织机构和它的下级组织及部分(公司和子公司、医院和科室),事件:需要由系统长期记忆的事件(如在自动柜员机上的每次取款事件、每次借书事件)。,多数关联是二元的(即只存在于两个类的实例之间),在图中表示为连接两个类符号的实线路径。,角色名称应该是一个名词,能够表达被关联对象在关联中所充当的角色,角色名称紧邻关联线的末端。,组织:在系统中发挥一定作用的组织机构(如录像商店的连锁店,医疗 系统中的医院,学校中的系)。,依赖是一种使用关系,一个类A使用到了另一个类B,而这种使用关系是偶 然性的、临时性的、非常弱的,但是B类的变化会影响到A。,动态行为模型:描述对象之间的交互行为,由状态图和顺序图表示。,A是事务B或报告B的一个记录项,7系统打印借书清单,交易成功完成。,如果这些规则无法并入到其他对象中,则可以作为概念类建立。,聚合:部分与整体的关系,但彼此可分owns a,class Heart,整体-部分关联有两种类型,Step 4:建立类之间的关系,第五阶段:建立系统的动态行为模型,private Heart heart=new Heart();,比如“支付”、“现金支付”、“信用卡支付”中,“支付”就是一个抽象类,继承/泛化:一般与特殊的关系is a,练习,阅读用例描述,找出概念类,用例名:购买商品,参与者:出纳员,描述:顾客带着所要购买的商品来到收款处。出纳员记录下商品信息并收款。付款完成后,顾客带着所购买的商品和收据离开。,练习,阅读用例描述,找出概念类,用例名:购买商品,参与者:出纳员,描述:顾客带着所要购买的商品来到收款处。出纳员记录下商品信息并收款。付款完成后,顾客带着所购买的商品和收据离开。,明显无意义的对象,:,收款处,用例名称:预定房间,涉及的参与者:酒店前台,正常事件流:,1)前台人员向系统提供需要预定房间的类型、时间和预定天数。,2)系统确认有相应档次的空闲房间,并计算出总费用和定金。,3)前台人员向系统提供旅客信息(姓名、地址、联系 、证件号等)。,4)系统记录旅客信息。,5)前台人员确认已经交纳定金。,6)系统记录房间已经预定,工作完成。,用例名称:预定房间,涉及的参与者:酒店前台,正常事件流:,1)前台人员向系统提供需要预定房间的类型、时间和预定天数。,2)系统确认有相应档次的空闲房间,并计算出总费用和定金。,3)前台人员向系统提供旅客信息(姓名、地址、联系 、证件号等)。,4)系统记录旅客信息。,5)前台人员确认已经交纳定金。,6)系统记录房间已经预定,工作完成。,不同类别的概念,人员:系统需要保存或管理其信息的人员(如录像商店的会员、图书馆的读者),或在系统中中扮演一定角色的人员(如录像商店的职员、论文评阅教师)。,组织:在系统中发挥一定作用的组织机构(如录像商店的连锁店,医疗 系统中的医院,学校中的系)。,物品:需要由系统管理的各种物品(如录像商店的商品、图书),包括无形事物(如学校的一门课程、毕设题目)。,设备:在系统中被使用或由系统进行监控的设备、仪器等,系统运行中的硬件设备(如打印机)除外。,事件:需要由系统长期记忆的事件(如在自动柜员机上的每次取款事件、每次借书事件)。,不同类别的概念(续),规格说明:系统中关于对象的规格信息的描述。,如图书品种,每种图书有一个唯一的馆藏号,同时该图书还包含一些描述信息,如书号、价格、作者、出版社等,多本图书对象共用这些规格说明。这是一种经过了抽象的概念,应该识别为概念类。,业务规则或 :系统中经常使用的业务规则或 的文字描述。,业务规则通常会在用例文档之外以其他条款说明。如图书馆系统中,对不同违规行为指定不同的罚款金额,商店对不同顾客或产品有不同的折扣策略等。如果这些规则无法并入到其他对象中,则可以作为概念类建立。,通常规则可能仅有属性,或者仅有操作,比如折扣策略可能是一个纯粹的计算类。,图书馆系统的概念类,所属类目,概念类举例,人员,读者 图书管理员,组织,暂无,物品,图书 借书卡 书目 借书清单,设备,暂无,事件,借书 还书 逾期,规格说明,图书品种,政策或规则,罚款细则,图书馆系统的第,1,张类图,Step 2,:识别属性,属性是描述对象静态特征的一个数据项。,发现属性的策略:,如何为对象做一般性的描述?比如人,一般的描述信息有姓名、性别、出生日期、身高、体重等。,在当前问题域,对象还具备那些特定描述项?比如人作为门诊系统的患者,还需要考虑血型、药物过敏、家族病史等。,对象的责任是什么?在系统中对象还需要了解或提供哪些信息?比如图书馆要实现催还功能,与该责任相关的就需要为书籍或借书事项定义借书日期和期限。,对象可能处于什么状态?对象的状态不同,则可能执行的操作也不同。比如出租物品就有在库、出租、维修三个状态。,属性的表示,借书记录,borrowDate:Date,returnDate:Date,属性的有关说明:,属性的名称和解释:有些属性只适用于该问题域,是专业术语,晦涩难懂;有些常用词语在特定环境下字面的含义有所修改,为了提高清晰度,需要对这些属性进行定义。,属性的数据类型:分析时使用简单类型,如整数、实数、字符串、日期、数组、布尔等,,分析阶段因为不考虑技术实现,所以不需要考虑具体语言能支持的数据类型。,其他要求:如取值范围、缺省值等。,定义领域类属性的原则,仅定义与系统责任和系统目标有关的属性。,使用简单数据类型来定义属性。如数字、字符串、日期、布尔、文本等。还包含多种特征或规则的数据,可考虑作为独立的对象类。,一般不使用可导出的属性。,(,出生年月,年龄,),不为对象关联定义属性。属性只用于体现对象本身的内在性质,关联属性来实现,但那是设计阶段的问题,应推迟考虑。,如毕业设计题目与教师和学生存在关联,但题目中不应定义“教师姓名”、“学号”之类的属性。,图书馆系统的第,2,张类图,Step 4,:建立类之间的关系,五种关系:,泛化,(generalization),关联,(association),组合,(composition),聚合,(aggregation),依赖,(dependency),销售项,Sale,销售项条目,SalesLineItem,包含,1,1.*,关联名称,多重性,描述关联的要素,关联名称,对象在关联中的角色,多重性,导向性,1,、关联名称,多数关联是二元的(即只存在于两个类的实例之间),在图中表示为连接两个类符号的实线路径。,使用关联名称,应该反映该关系的目的,并且应该是一个动词词组。,比如教师对象和课程对象的关联名称就是“讲授”,医生和处方单的关系是“书写处方”。,关联名称应放置在关联路径上或其附近。,2,、关联角色,(Role),关联所联系的每一端叫做一个角色,角色名称应该是一个名词,能够表达被关联对象在关联中所充当的角色,角色名称紧邻关联线的末端。,贷款,客户,客户,0.1,担保人,贷款人,1,1,*,3,、关联的多重性,(Multiplicity),定义了一个类,A,的实例在一段特定的时间内能够和多少个类,B,的实例发生关联。,借书记录,*,一个读者可以有,0,个或多个借书记录,图书,1.*,一个图书品种馆藏,1,本或多本图书,处方条目,1.6,一个处方可以开出,1,个到,6,个处方条目,足球队员,11,一个足球队正好由,11,个队员组成,借书记录,0.1,一本图书可以有,0,个或,1,个借书记录,4,、关联的导向性,(Navigability),角色的导向性特征表示可以通过关联从源类导向到目标类上。也就是说给定关联一端的对象就能够容易并直接地得到另一端的对象。,识别关联的导向可以推迟,与设计实现有关。通常是源对象存储了对目标对象的一些引用,读者,Reader,借书记录,Loan,1,登记,1.*,导航箭头说明,Reader,对象可单向访问到,Loan,对象,Reader,很可能有一个,指向,Loan,对象的属性,实例连接:关联关系,class Course class Student,private Course selectedCourses;,class Teacher,private Student students;,class Student,private Teacher teacher;,Student,Course,-selectedCourses,5.*,Teacher,1,-students,Student,-teacher,0.*,关联类,关联类:,class Company class Person,class Job ,public,Person,empl,oyee;public C,ompany,emp,loyer;,String description;Date dateHired;double salary;,(4),消息连接:依赖关系,消息连接,消息连接是对象之间的通信联系,它表现了对象行为的动态联系。,一个对象需要另一个对象的服务,便向它发出请求服务的消息,接收消息的 对象响应消息,触发所要求的服务操作。,消息连接也称为,“,依赖关系,”,(Dependency),。,依赖,(4),消息连接:依赖关系,Air,依赖,(Dependency),:,use a.,依赖是一种使用关系,一个类,A,使用到了另一个类,B,,而这种使用关系是偶 然性的、临时性的、非常弱的,但是,B,类的变化会影响到,A,。,类的依赖可能由各种原因引起,例如:,一个类是另一个类的某个操作的参数,一个类在另一个类的某个操作中被使用,class Air,Human,class Human,public void breath(Air air);,5,、整体,-,部分关联(,Whole-Part,),如果对象,a,是对象,b,的一个组成部分,则称,b,为,a,的整体对象,,a,为,b,的部分对象,二者对应的关联形式称为整体,-,部分关联。这种结构可以用,b“has a”a,进行验证。,整体,-,部分关联是关联中使用较频繁的一种模式,用于对模型元素之间的组装关系进行建模。组成关系在现实生活中可以表现为以下几种形式:,客观上或逻辑上的整体事物和它的组成部分(机器和零件、人体和器官、书和章节、图和元素),组织机构和它的下级组织及部分(公司和子公司、医院和科室),团体(组织)和成员(科室和医生、班级和学生),空间上的容器事物和其包容物(车间和机器,/,工人、教室和设备),整体,-,部分关联举例(一个窗口),F,o,r,m,C,o,n,t,r,o,l,*,B,u,t,t,o,n,E,d,i,t,C,h,e,c,k,B,o,x,整体,/,部分关联,聚集,聚集(,aggregation,)是用于为整体,-,部分关系建模的一种关联,使用连接线和菱形表达,菱形一端的对象是整体对象。,整体,-,部分关联有两种类型,组合聚集,(composition aggregation),共享聚集,(shared aggregation),共享聚集,(shared aggregation),描述整体,-,部分的关系,部分可能同时属于多个整体对象。,关联路径的末端有一个空心菱形,用来表示聚集关系。,班级与学生之间的生命周期是独立的。,班级,学生,15.*,定义两个类:,class Student,class CourseClass,private S,tudent,students;/,学生数组,public addStudent(),s=new Student();/,创建学生对象,studtents.append(s);,测试,类:,Public class TestClass,Public static oid main,(,String args,),CourseClass ooad=new CourseClass();,/,创建班级对象,创建时没有创建学生对象,组合聚集,(composition aggregation),组合聚集具有很强的归属关系,部分只能是一个组合对象的成员,而且部分对象的存在是依赖于整体对象,与整体同生共死。,整体端的重数不会超过,1,(即它无法被多个整体对象共享),关系建立后是不可变更。,关联路径的末端有一个实心菱形,用来表示组合关系。,Person,1,-heart,Heart,整体,-,部分关联的实现,(,一,),Person,对象,tom,创建后,立即创建內含的,Heart,对象,class Heart,class Person,private Heart heart=new Heart();,Person tom=new Person();,Person,1,-heart,Heart,整体,-,部分关联的实现,(,二,),汽车类和遥控器类及发动机类的关系如图,写出代码,小结:对象之间的联系,继承,/,泛化:一般与特殊的关系,is a,kind of,组合:部分与整体的关系,彼此不可分,is part of,聚合:部分与整体的关系,但彼此可分,owns a,关联:对象之间的长期静态联系,has a,依赖:对象之间的动态的、临时的通信联系,use a,类间联系的强度:继承,组合,聚合,关联,依赖,通用关联分类表,分 类,举 例,A,在物理上是,B,的一部分,零件,产品,A,在逻辑上是,B,的一部分,订单项,订单,A,在物理上包含在,B,中,/,依赖于,B,产品,仓库,A,在逻辑上包含于,B,中,图书品种,图书,A,是对,B,的描述,产品规格,产品,A,是事务,B,或报告,B,的一个记录项,购物,购物项,A,为,B,所知,/,为,B,所记录,/,录入到,B,中,借书记录,读者,A,是,B,的一个成员,职工,部门,A,是,B,的一个组织单元,分公司,集团,A,使用或管理,B,医生,病案;医生,挂号单,A,与,B,相互通信,图书管理员,读者,A,与一个事务,B,有关联,图书,借书记录,A,是一个事务,,B,也是一个事务,二者有关联,借书记录,逾期记录,6,、关联原则,找出问题域中的对象远远比找出关联更为重要,注意力集中在那些需要将对象之间的关系信息记忆一段持续时间的关联,关联太多不仅不能有效展示概念模型,反而会使概念模型变得混乱,要避免关联之间的信息冗余以及减少派生关联,关联使用关联名称、角色、多重性和导向性来说明,图书馆系统的第,3,张类图,类的泛化,泛化(,Generalization,)是在多个概念之间识别共性,定义超类(一般概念)和子类(特定概念)关系的活动。,如在图书馆系统中,发现图书馆目前还收藏了其他资源,比如影碟(,VCD/DVD,)、音乐,CD,、电子书等品种。它们和图书一样可以被任何读者借出,每个对象都有条码和状态。但它们也有自己的特性,比如属性项、借阅期限、逾期惩罚不同,必须区别对待。,1,、一般,-,特殊结构,(Generalization-Specialization),如果类,A,具有类,B,的全部属性和行为,而且具有自己特有的某些属性或服务,则,A,叫做,B,的特殊类,,B,叫做,A,的一般类。这种关系也称为一般,-,特殊关系、泛化,-,特化关系、继承关系。,特点:,可以简化模型,有效地反映问题空间的分类层次。,必须确认子类一定是父类的一个特殊类型,即可以用,“,is-a-kind-of”,进行验证,注意控制泛化的粒度,额外的泛化增加复杂性,图书馆系统的泛化关系,2,、什么时候需要划分一般,-,特殊结构,类的属性或行为不适合该类的全部对象,如果定义,“,学生,”,类有,“,导师,”,属性,有,“,教学实践,”,行为的话,则该类的对象对于本科生不适合,只适合于研究生对象,采用一般,-,特殊结构重新分类,建立,“,学生,”,和,“,研究生,”,之间的一般,-,特殊结构,研究生可以继承所有学生的特性。,属性和行为相似的类,将这些类的共性抽象出来作为超类,各自特性仍旧保留而作为超类的子类。,不要将一个对象的状态变化设计为多个子类,除非对象的,多数行为,是由状态来决定,病态的继承,泛化是提高软件重用性的一种机制,但不能为了重用而滥用泛化。,不符合“,is a kind of”,采用组装结构,将复用对象作为组成元素,3,、抽象类,如果一般类,A,的每个实例还必须是它的一个特殊类的成员,那么类,A,就被称为一个抽象类,比如“学生”、“研究生”中,“学生”不是一个抽象类,比如“支付”、“现金支付”、“信用卡支付”中,“支付”就是一个抽象类,但面向对象的设计原则强调设计抽象类,比如学生,设计一个抽象学生类,然后派生出本科生和研究生,抽象类意味着不能创建该类的实例,4,、多继承,继承有单继承和多继承。,多继承是指一个子类继承了两个父类的属性和行为。,分析模型,静态模型:,类图,对象图,动态模型:,状态图,粗略的对象交互图,1,、类图,类,会员,会员代号,姓名,地址,租借记录,增加租借,取全部租借,类名,属性,服务,/,操作,类的一般,-,特殊关系,(,三角形一端是一般类,另一端是特殊类,),对象关联,(,连接线中间为关联名称,两端为角色和多重性,箭头为导向性,),聚集,(,菱形一端为整体对象,另一端为部分对象,两端可表示多重性,),组成,(,聚集的特例,表示整体对象与部分对象紧密依赖的合成关系,),图书馆系统的类图,类图的实例,首先看,“,动物,”,矩形框,它代表一个类。该类图分为三层,第一层显示类的名称,如果是,抽象类就要用斜体显示,。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法和行为。,注意前面的符号,,+,表示,public,表示,private,#,表示,protected.,类图的实例,“,飞翔,”,矩形框表示一个接口图,它与类图的区别主要是顶端有,interface,显示,第一行是接口名称,第二行是接口方法。接口还有另一种表示方法,俗称棒棒糖表示法,就是唐老鸭类实现了,“,讲人话,”,的接口。,继承关系用空心三角形,+,实现来表示。,“,大雁,”,实现了,“,飞翔,”,接口。实现接口用空心三角形,+,虚线来表示,谢谢观看!,展开阅读全文

咨信网声明:本文档由用户上传并分享,仅供学习交流、研究之用,未经授权,严禁复制、发行、汇编、翻译或网络传播等,侵权必究。
咨信网小贴示:
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】


静态结构模型类图.ppt
















自信AI助手














微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/14502923.html