首页 第2章面向对象与UML(2学时)

第2章面向对象与UML(2学时)

举报
开通vip

第2章面向对象与UML(2学时)2014/5/51面向对象与UML上讲回顾UML的三位创始人分别是?UML于哪年被OMG组织正式批准?是什么版本?请说出UML是一种什么样的语言?请说出一种4+1观点分别是什么?你现在能说出几种UML图?2014/5/522014/5/53一些面向对象的概念1UML组成2本讲主要内容2014/5/54一些面向对象的概念1UML组成2当前正在讲述……2014/5/55无处不在的对象类类是加工小甜饼的模子可以用类压出许多新的小甜饼对象世界由对象而构成。对象无处不在。考虑到的属性和行为越多,所建立的模型就越符合实际。真正...

第2章面向对象与UML(2学时)
2014/5/51面向对象与UML上讲回顾UML的三位创始人分别是?UML于哪年被OMG组织正式批准?是什么版本?请说出UML是一种什么样的语言?请说出一种4+1观点分别是什么?你现在能说出几种UML图?2014/5/522014/5/53一些面向对象的概念1UML组成2本讲主要内容2014/5/54一些面向对象的概念1UML组成2当前正在讲述……2014/5/55无处不在的对象类类是加工小甜饼的模子可以用类压出许多新的小甜饼对象世界由对象而构成。对象无处不在。考虑到的属性和行为越多,所建立的模型就越符合实际。真正制造洗衣机的工程师普通人群2014/5/56继承(Inheritance)一些权威人士认为:抽象对于建模者来说是最重要的技术。我们应该弄清楚什么应该纳入模型中,什么应该舍去。家用商品家用电器家具家用电器2014/5/57封装(Encapsulation)当一个对象执行自己的操作时,它对外隐蔽了操作的细节。爆米花是怎么炸出来的?关心这个干吗?2014/5/58多态(Polymorphism['pɔli'mɔ:fizəm])不同的类具有相同名称的操作,每个类都能够知道如何执行自己的操作。2014/5/59一些面向对象的概念1UML组成2当前正在讲述……对模型中最具有代表性的成分的抽象把事物结合在一起聚集了相关的事物(类图,构件图,部署图,对象图,用例图,顺序图,协作图,状态图,活动图)UML组成图一个结构良好的模型所应该遵循的有一套贯穿整个语言且一致应用的公共机制,使得UML变得较为简单,且风格(建筑)一致。2014/5/511一些面向对象的概念1UML组成2当前正在讲述……注释2014/5/512UML构造块——(1)事物  代表面向对象中的类,对象等概念,是构成图的最基本的常用的元素。一个模型元素可以用于多个不同的图中。注释类和对象类是对一组具有相同属性、相同操作、相同关系和相同语义的对象的抽象UML中类是用一个矩形表示的,它包含三个区域,最上面是类名、中间是类的属性、最下面是类的方法对象则是类的一个实例2014/5/514类的可视化表示——属性图3.4类和类的属性图3.6属性可以带类型和缺省值2014/5/515类的可视化表示——操作图3.7类的操作放在属性列表之下,并用一条分割线与属性隔开图3.8操作的型构图3.10省略符号说明还有没列出来的属性或操作接口接口是描述某个类或构件的一个服务操作集用例用例是著名的大师IvarJacobson首先提出的,现已经成为了面向对象软件开发中一个需求分析的最常用工具用例——系统的一个功能:系统的一组使用场景、执行的一系列动作。UseCase构件在实际的软件系统中,有许多要比“类”更大的实体,例如一个COM组件、一个DLL文件、一个JavaBeans、一个执行文件等等。为了更好地对在UML模型中对它们进行表示,就引入了构件(也译为组件)构件是系统设计的一个模块化部分,它隐藏了内部的实现,对外提供了一组外部接口。在系统中满足相同接口的组件可以自由地替换构件节点为了能够有效地对部署的结构进行建模,UML引入了节点这一概念,它可以用来描述实际的PC机、打印机、服务器等软件运行的基础硬件节点是运行时存在的物理元素,它表示了一种可计算的资源,通常至少有存储空间和处理能力包对于一个中大型的软件系统而言,通常会包含大量的类,因此也就会存在大量的结构事物、行为事物,为了能够更加有效地对其进行整合,生成或简或繁、或宏观或微观的模型,就需要对其进行分组。在UML中,提供了“包(Package)”来完成这一目标注释元素注释事物则是用来锦上添花的,它是用来在UML模型上添加适当的解释部分注释2014/5/523注释元素(续)图3.14附加的注释可以提供有关类的更多信息2014/5/524一些面向对象的概念1UML组成2当前正在讲述……2014/5/525关联:连接(connect)模型元素及链接(link)实例。依赖:表示一个事物以某种方式依赖于另一种事物。泛化:表示一般与特殊的关系,即“一般”元素是“特殊”关系的泛化。聚合、组合:表示整体与部分的关系。UML构造块——(2)关系事物之间的关系。2014/5/526关联:连接(connect)模型元素。依赖:表示一个事物以某种方式依赖于另一种事物。泛化:表示一般与特殊的关系。聚合、组合:表示整体与部分的关系。(二)关系事物之间的关系。2014/5/527(1)关联(Associations)对象之间以某种方式发生关联当Susan打开电视机时,她与TV之间就发生了单向关联对象之间也可以以多种方式发生关联妞妞与丫丫既是同学也是好朋友28定义:当类之间在概念上有连接关系时,类之间的连接叫做关联。PersonCompanyworksforemployeeemployer角色角色*1多重性多重性关联关系描述(1)关联(Associations)Tip:关联(Association)表示两个类之间存在某种语义上的联系。关联关系提供了通信的路径,它是所有关系中最通用、语义最弱的。使用一条实线来表示关联关系。方向单向双向(1)关联—方向(Navigation)Employeeemployeeemployer图4.3两个类之间的不同关联可以表示在一幅图中队员和球队之间的关联PublicclassUser{    PublicListGetOrder()      {    returnnewList();} }PublicClassOrder{      PublicUserGetUserByOrderID(stringOrderId)      {             ReturnnewUser();}}(1)关联—方向(Navigation)练习:请描述如下User类与Order类之间关联的方向。2014/5/531(1)关联—多重性(multiplicity)1rideride一个类可以和多个类关联2014/5/532(1)关联—多重性(multiplicity)BasketballTeam1多个类可以和同一个类关联关系——多重性多重性Howtoexplainmultiplicity?2014/5/533特定数字多重性及UML表示法可能的关联表示:特定数字/非特定数字/特定范围/枚举非特定数字*定义:多重性(multiplicity),即一个类的单个对象和另一个类的多个对象关联。表示多重性的方法是在参与关联的类附近的关联线上注明多重性数值。“0..*”或“*”:表示“0”或“多”;“1..*”:表示“1或多”;特定范围m..n多重性及UML表示法枚举,orHowtoReadit?练习:我们经常去图书馆借书,那么图书与学生之间关系的多重性应该如何表示?对于这幅图这个双向关联我们应该怎么去读它?(2)关联—依赖(Dependencies)思考:请列举程序中存在依赖关系的例子。有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X。对于类间关系而言,Dependency(依赖关系)表示一个类依赖于另一个类的定义,其中一个类的变化将影响另外一个类。关系——依赖2014/5/539(2)关联——依赖局部变量静态方法方法的参数ClassA{publicvoidFunction1(){ClassBb=newClassB();b.Operation1();deleteb;}}voidFunction2(){ClassB.Operation2();}PublicvoidFunction3(ClassBpara){Strings=para.field1;}类之间常见的依赖关系如下:类B以局部变量的形式存在于类A的方法中类B以参数的形式传入类A的方法类A调用类B的静态方法关系——依赖2014/5/540(3)关联——聚合组合在关联关系中,有两种比较特殊的关系:聚合和组合2014/5/542(3)关联—聚合(Aggregation)一个典型的计算机系统就是聚集的一个例子——它由许多不同类型的对象组合而成的。聚合关系:聚合(Aggregation)是一种特殊形式的关联。聚合表示类之间的关系是整体与部分的关系。计算机机箱显示器键盘鼠标音箱2014/5/543(3)关联—组合(Composition)在组成体中,部分体有时可能会先于组成体消亡,如果组成体被销毁,则部分体随组成体一同被销毁组合关系:Composition。组合是聚合的变种,加入了一些重要的语义。如果发现“部分”类的存在,是完全依赖于“整体”类的,那么就应该使用“组合”关系来描述。树树叶树枝树根聚合与组合The"nosharing"ruleisthekeytocomposition.Anotherassumptionisthatifyoudeletethewhole,itshouldautomaticallyensurethatanyownedpartsalsoaredeleted.2014/5/544练习:俱乐部与会员、汽车与轮胎、多边形与点。Window窗体由滑动条slider、头部Header和工作区Panel组合而成。(3)关联——聚合组合14汽车轮胎Windows窗体PanelHeaderSlider1*ClubPerson13..*PolygonPoint聚合与组合Aggregationisthepart-ofrelationship.The"nosharing"ruleisthekeytocomposition.Anotherassumptionisthatifyoudeletethewhole,itshouldautomaticallyensurethatanyownedpartsalsoaredeleted.2014/5/546三种关联的比较关系——比较2014/5/548(3)关联关系——聚合A包含有B的全局对象ClassClassA{PrivateClassB*b;publicFunction(){b=newClassB();}}B在合适的时机创建ClassAhasaClassB,notcomposedbyClassB.是一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的组成部分。Aggregation(聚合关系)是一种弱的“拥有”关系。2014/5/549(3)关联关系——组合A包含有B的全局对象ClassClassA{PrivateClassBb1,b2;publicClassA(){b1=newClassB();b2=newClassB();}}ClassAhasaClassB,andcomposedbyClassB.是一种强的拥有关系,体现了严格的部分和整体的关系,部分和整体的生命周期一致。Composition(组合关系)是一种强的“拥有”关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。2014/5/550(4)继承和泛化图4.14动物王国的继承关系泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。2014/5/551抽象类——指没有实例的类,定义一些抽象的操作,即不提供实现方法的操作,只提供操作的特征。并附以{abstract}。交叠泛化——在继承树中,若存在某种具有公共父类的多重继承,称为是交叠{overlapping}的。否则是不交的{disjoint}。完全泛化——一般类特化出它所有的子类,称为完全泛化,记为{complete}。不完全泛化——即未特化出它所有的子类,称为是不完全泛化的,表示为{incomplete}.继承与泛化{incomplete}(4)继承和泛化{abstract}有关泛化的约束(4)继承和泛化{complete}{incomplete}{incomplete}请解释如下这幅图的涵义其他关联2014/5/5552014/5/556(1)关联上的约束(ConstraintsonAssociations)图4.5可以对关联施加约束。在这个例子中,Serves关联上的{ordered}约束说明银行出纳员要按照顾客排队的次序为顾客服务图4.6表示两个关联之间的{or}约束2014/5/557(2)关联类(AssociationClasses)图4.7关联类对关联的属性和操作建模。它与所对应的关联线之间通过虚线连接起来,并且还可以和其他类关联关联类(2)关联类Associationclassesallowyoutoaddattributes,operations,andotherfeaturestoassociations2014/5/558(2)关联类WhatbenefitdoyougainwiththeassociationclasstoOffsettheextranotationyouhavetoremember?Theassociationclassaddsanextraconstraint,inthattherecanbeonlyoneinstanceoftheassociationclassbetweenanytwoparticipatingobjects.2014/5/559(2)关联类当它作为一个完全的类时,将不再具有一个潜在的约束:Person与Meeting之间一对一的关系。2014/5/560(2)关联类YoucanhaveonlyonecompetencyforeachcombinationofPersonandSkill.ThetopdiagraminFigure5.14wouldnotallowaCompanytohavemorethanoneRoleonasingleContract.SoWeshoulddesignroleasafullclass.2014/5/5612014/5/562两个以上的类之间也可以互相关联。(2)关联类(AssociationClasses)2014/5/563(3)链(Links)图4.8链是关联的实例。链连接的是对象而不是类。和对象名要加下划线一样,链名也要加下划线例如:特定的队员效力一个特定的球队2014/5/564(4)限定关联(QualifiedAssociations)图4.11房间预订列表和它所包含的预订登记之间具有“一对多”多重性图4.12UML的限定符图标,当你使用它时,你限定了一种关联*当关联的多重性是一对多时,产生查找问题。一个类必须要依赖一个具体的属性值来找到正确的对象。这通常是一个标识符号——限定符(qualifier)。2014/5/565(5)自身关联(ReflexiveAssociations)图4.13自身关联的关联线从某个类出发又回到其自身。自身关联也可以指明角色名、关联名、关联方向和多重性一个类的对象可以充当多种角色时,自身关联就可能发生。人治疗病人医生带有职责的递归关联2014/5/566一些面向对象的概念1UML组成2当前正在讲述……2014/5/567一些面向对象的概念1UML组成2当前正在讲述……2014/5/5命名为事物、关系和图起名范围给一个名称以特定含义的语境可见性怎样让其他人使用或者看见名称完整性事物如何正确、一致的相互联系执行运行或模拟动态模型的含义是什么UML基本组成——规则一个结构良好的模型应该遵循的规则。2014/5/569一些面向对象的概念1UML组成2当前正在讲述……UML公共机制规格说明构造块语法及语义的文字叙述,及描述系统的细节修饰基本图形符号的修饰:+,-,#,斜体等。通用划分类与对象之二分接口与实现之分离扩展机制非闭合语言,可扩展UML有一套贯穿整个语言且一致应用的公共机制,使得UML变得较为简单,且建筑风格一致。UML公共机制——扩展机制优秀的扩展机制。防止UML变得过于复杂,实现必要的扩展和调整。构造型:在实际的建模过程中,可能会需要定义一些特定于某个领域或某个系统的构造块标记值:则是用来为事物添加新特性的。标记值的表示方法是用形如“{标记信息}”的字符串约束:是用来增加新的语义或改变已存在规则的一种机制。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过它是不能够放在元素中的,而是放在相关的元素附近72(1)构造型——模型元素的分类与标记双尖括号+字符串——《string》一般与类名写在一起也可作为类内操作的分类标识2014/5/573(1)构造型——模型元素的分类与标记图3.11可以使用构造型来组织属性和操作列表2014/5/574(2)标记值——模型元素的特性规格说明{标记名=标记值,。。。,标记名=标记值}描述模型元素的特性2014/5/575(3)约束——模型元素的语义扩展与约束{约束}约束规定某个条件或命题必须保持为真,否则该模型无效。约束TheUMLallowsyoutouseanythingtodescribeconstraints.Theonlyruleisthatyouputtheminsidebraces({}).Youcanusenaturallanguage,aprogramminglanguage,ortheUML‘sformalObjectConstraintLanguage(OCL),whichisbasedanpredicate[‘predikit]calculus(谓词计算).2014/5/576图3.13用花括号括起来的规则表达式限制了洗衣机的容量值只能三者选一{capacity=16or18or20lb}2014/5/577(3)约束——模型元素的语义扩展与约束图3.13用花括号括起来的规则表达式限制了洗衣机的容量值只能三者选一{capacity=16or18or20lb}1245789102014/5/51.面向对象概念2.UML基本组成——构造块事物关系图3.UML基本组成——规则4.UML基本组成——公共机制本节回顾
本文档为【第2章面向对象与UML(2学时)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
旋律
几年的财务工作经验,现认财务主管一职!精通各种财务管理软件
格式:ppt
大小:26MB
软件:PowerPoint
页数:0
分类:
上传时间:2018-05-20
浏览量:14