系统分析与设计ch2类图_第1页
系统分析与设计ch2类图_第2页
系统分析与设计ch2类图_第3页
系统分析与设计ch2类图_第4页
系统分析与设计ch2类图_第5页
已阅读5页,还剩36页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

类图

--设计者必备浙江大学软件学院程学林1开发流程分析类与设计类区别分析类三高

高于设计实现,不必应用采用的设计模式,系统框架等。

高于语言实现,不必理会采用哪一种特性的语言来编码。

高于实现方式,可以不考虑采用哪一种具体的实现方式。设计类设计类是系统实施中一个或多个对象的抽象;设计类所对应的对象取决于实施语言。议程设计师必学元素创建设计类识别类、方法、依赖关系、泛化关系,并在设计类图中表示。理解接口与实现、抽象类、保护等级、类层级、公有类、枚举类型应用UML:

常用类图表示法图16-1常用UML类图表示法定义:设计类图图16-2两种透视图中的UML类图类图既可以用于概念透视图,也可以用于软件透视图。用设计类图(DesignClassDiagram,DCD),表示在软件透视图和设计透视图中的类图依赖关系结构说明语法依存如果一个类依靠另一个类的服务来完成其职责(角色),则它们之间的关系称为依赖关系依赖关系表示的是类之间的调用关系,即用一个类去调用另外一个类,被调用的类表现为调用类的局部变量、方法的参数,调用类调用被调用类的静态方法。很有可能就是“依赖”关系:ClassA中某个方法的参数类型是ClassB;这种情况成为耦合;ClassA中某个方法的参数类型是ClassB的一个属性;这种情况成为紧耦合;ClassA中某个方法的实现实例化ClassB;ClassA中某个方法的返回值的类型是ClassB;ClassA中调用了ClassB的静态方法;依赖关系“查询酒店数据”用例的序列图依赖关系依赖端/客户端(client)依赖关系(dependency)被依赖端/支持端(supplier)关联(组合)关系(Association)依赖关系(dependency)依赖端/客户端(client)依赖关系-类型使用依赖UsageCallParameterSendinstantiate抽象依赖Abstraction授权依赖Permission绑定依赖Binding注解:概念上,包括泛化、关联和实现在内的所有关系都是某种依赖。泛化、关联和实现本身都有足够重要的语义,使之有理由作为UML中有别于其他种类的独立关系。而每种衍型语义上与简单依赖没用那么大的差距,所以不作为一种独立的关系来处理。这是UML处理在突出所遇到的重要的关系种类和不使建模者为过多的关系选择所困扰之间做出的一个平衡摘自:《UML用户指南》依赖关系与关联关系的区别从类之间关系的时间角度来分,关联表示类之间的“持久、静态”关系,一般需要“持久化”的,或者说需要保存到数据库中的,是一种重要的业务之间的关系。另外,依赖表示类之间的是一种“短暂、动态”关系,这种关系是不需要保存的。从类之间关系的强弱程度来分,关联表示类之间的很强的关系;依赖表示类之间的较弱的关系。设计类之间的关系遵循的原则:首先判断是否是一种“关联”关系,若不是再判断是否是“依赖关系”,一般情况下若不是关联,就是依赖关系依赖关系(Dependencyrelationship):是类与类之间的连接,依赖总是单向的。关联关系(Associationrelationship):是一种结构关系,是指一个类的对象与另一个类的对象之间的关系(具有多重性)。关联可以有方向,即导航。一般不作说明的时候,导航是双向的,不需要在线上标出箭头。关联在代码中一般表示为属性(成员变量)泛化关系结构说明语法泛化

它是较一般类和较具体类之间的分类关系,即:一般与特殊泛化:标识各个类之间的共同性。

指明特化类(子类)的对象可取代泛化类(父类)的对象。是“is-a”关系。形状

{抽象}圆圈父类子类抽象类泛化关系泛化关系泛化关系一般端(general)泛化关系(generalization)特定端(specific)泛化关系父类与子类父类(superclass)子类(sublass)泛化关系(generalization)泛化关系继承个体数目0..1改成1重新定义“场所”子类增加专有的属性泛化和关联集合关系个体关系接口和实现

符号类接口用于描述类的外部可见行为,是一种行为规范或规定。它呈现为一个圆圈与名称一同出现。验证类的实现是其内部视图,涵盖了其行为的秘密类的接口提供了其外部视图,因此在隐藏其结构以及其行为的秘密时,强调了抽象接口和实现publicinterfaceICargoTransport{ /**@modelguid{66855DC0-6F08-42DE-ADA1-FD06625C8605}*/ publicvoidloadCargo();}publicclassTruckimplementsICargoTransport{publicStringgo(){ returnnewString("Itisgoing!");

} /**@modelguid{4E19DF60-35EA-4827-943A-51CC99255A48}*/ publicvoidloadCargo(){ }}抽象方法与抽象类?没有方法体的方法,且首部用关键字abstract修饰,就是抽象方法。包含抽方法的类,必须定义为抽象类,用关键字abstract修饰。抽象方法与抽象类使用说明(一)含有抽象方法的类必须定义为抽象类。publicclassAAnimal //错误{ publicStringname; publicintage; publicvoidprint() { System.out.println("名字:"+name); System.out.println("大小:"+age); } publicabstractvoidrun(); publicabstractvoidcry();}抽象方法与抽象类使用说明(二)不能由抽象类直接创建对象。它只能做为父类使用,由它派生的子类必须实现抽象类中所有的抽象方法,才能创建对象。抽象方法的实现:子类重写父类的抽象方法,增加方法体,使之成为一个非抽象方法。可以空实现。classTest{ publicstaticvoidmain(String[]args){ AAnimala; a=newAAnimal(); //错误

}}classDogextendsAAnimal{ Stringtype; publicDog() { type="宠物狗"; } publicvoidrun(){ } publicvoidcry() { System.out.println("汪汪叫"); }}classTest{ publicstaticvoidmain(String[]args){ Doga; a=newDog(); ="欢欢";a.age=2; a.print(); a.cry(); System.out.println("这是一只"+a.type);}}续抽象方法与抽象类使用说明(三)如果子类没有实现抽象基类(父类)中所有的抽象方法,则子类也必须定义成一个抽象类。即:抽象的子类也必须使用修饰符:abstract可以将没有任何抽象方法的类声明为abstract,避免由这个类直接创建任何的对象。abstractclassDogextendsAAnimal{ Stringtype; publicDog() { type="宠物狗"; }

//publicvoidrun(){ } publicvoidcry() { System.out.println("汪汪叫"); }}抽象类抽象操作抽象类(abstractclass)抽象操作(abstractoperation)子类提供了具体操作抽象类接口与抽象类的区别类是对对象的抽象,可以把抽象类理解为把类当作对象,抽象成的类叫做抽象类.而接口只是一个行为的规范或规定,证明其是表述一类“我能做…”,抽象类更多的是定义在一系列紧密相关的类间,而接口大多数是关系疏松但都实现某一功能的类中.接口基本上不具备继承的任何具体特点,它仅仅承诺了能够调用的方法;一个类一次可以实现若干个接口,但是只能扩展一个父类抽象类和接口就是定义为不可变的,而把可变的放到子类去实现,实现了oop中的一个原则,把可变的与不可变的分离。…保护等级用一个类创建一个对象后,通过对象可以访问这个类的成员变量和成员方法,但这种访问是有一定限制的。这种限制取决于在声明变量和成员方法时使用的修饰符:public、private、protected、friendly(未使用修饰符)。保护等级(java)保护等级保护等级的可见性保护等级(protected)类层级类层级的属性与操作类属性class-scopedattribute类操作class-scopedoperation公有类公有类枚举类型枚举类型属性枚举值操作枚举类型“床型种类”枚举类型枚举类型从OO到关系型数据库静态关系主键与外键主键(primarykey)外键(foreignkey)类设计-重点加工的部分把中文的类名称、属性名称、操作名称都变成英文。针对每一个用例,建立BCE类图,并且加上BCE类之间的依赖关系。针对前述提到的依赖关系、泛化关系、保护等级可见性、抽象类、类层级属性与操作、公有类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论