书签 分享 收藏 举报 版权申诉 / 65
上传文档赚钱

类型Java面向对象程序设计(第2版)第17章课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4145221
  • 上传时间:2022-11-14
  • 格式:PPT
  • 页数:65
  • 大小:547.55KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Java面向对象程序设计(第2版)第17章课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Java 面向 对象 程序设计 17 课件
    资源描述:

    1、统一建模语言UMLUML模型系统体系结构n UML:Unified Modeling LanguageUnified:BoochRumbaughJacobson UML UML由世界著名的面向对象技术专家由世界著名的面向对象技术专家G.BoochG.Booch、J.RumbaughJ.Rumbaugh、I.JacobsonI.Jacobson发起,在发起,在BoochBooch方法,方法,OMTOMT方法和方法和OOSEOOSE方法基础上,广方法基础上,广泛征求意见,汲众家之长,几经修改而完成的。泛征求意见,汲众家之长,几经修改而完成的。1997年被年被OMG(Object Managemen

    2、t Group)采纳为业界标准。)采纳为业界标准。Modeling:建模建模UML用于建模,即表达模型设计,而且自身拥有四层体系结构。用于建模,即表达模型设计,而且自身拥有四层体系结构。模型是系统一个抽象的概括,强调系统设计特定的重要方面,同时忽略模型是系统一个抽象的概括,强调系统设计特定的重要方面,同时忽略大量底层的编程细节。而建模就是为了捕捉、描述系统的核心。同一研究对大量底层的编程细节。而建模就是为了捕捉、描述系统的核心。同一研究对象不同人建立的模型可能同样好或同样差。象不同人建立的模型可能同样好或同样差。建模的益处:建模的益处:理解和认识系统的结构和行为,掌握系统的本质特征。理解和认识

    3、系统的结构和行为,掌握系统的本质特征。在创建系统之间,了解系统的风险并进行化解。在创建系统之间,了解系统的风险并进行化解。是开发团队沟通的重要形式,为使用系统的人提供帮助。是开发团队沟通的重要形式,为使用系统的人提供帮助。Language:是一种可视化建模语言,有语法和语义,消除了自然语言的歧义。是一种可视化建模语言,有语法和语义,消除了自然语言的歧义。虽然与具体面向对象语言无关,但学会虽然与具体面向对象语言无关,但学会UML的的关键之处是将关键之处是将UML模型与具体代码实现相互结合;模型与具体代码实现相互结合;UML modelSource codeObject structuresExe

    4、cuting programUMLProgramming languageAbstract view ofAbstract view ofSpecifiesSpecifies模型与代码之间的关系模型与代码之间的关系四层元模型体系结构四层元模型体系结构Run-time Instance运行实例层运行实例层Model模型层模型层Metamodel元模型层元模型层Metametamodel元元模型层元元模型层Classperson1:PersonPersonToolAssociationInfrastructure Library:Core:Constructs:ClassInfrastructur

    5、e Library:Core:Abstraction:Relationships规定元模型的语言规定元模型的语言规定模型的语言规定模型的语言定义描述语义域的语言定义描述语义域的语言n UML的主要特点:的主要特点:建模设计上的标准化与可视化的结合 建模设计上的语言无关性。建模设计上标准性与扩展性的统一。n 使用使用UML的的CASE(Computer-Assisted Software Engineering)工具)工具 Rational Rose PowerDesignern CASE工具的功能工具的功能构造模型并进行详细说明,可以检查模型语法正确与否。正向工程(生成数据结构、代码、文档)和

    6、逆向工程(代码生成模型)便于团队对模型的共享访问、安全管理、交流(共享相同概念)对模型文档的版本进行识别、存储和管理n UML视图(视图(View):描述软件系统的不同方面):描述软件系统的不同方面所关心视图所关心视图客户客户用例视图分析者分析者用例视图、逻辑视图设计者设计者用例视图、逻辑视图、构件视图开发者开发者用例视图、逻辑视图、构件视图、进程视图、部署视图测试者测试者用例视图、部署视图系统集成者系统集成者进程视图、部署视图逻辑视图构件视图进程视图部署视图用例视图结构视域实现视域行为视域环境视域用户视域4+1视图模型视图模型不同开发者对视图的关心角度不同开发者对视图的关心角度n UML图(

    7、图(Diagram):用于描述模型,是模型元素的一个集合单元。):用于描述模型,是模型元素的一个集合单元。用例图:需求捕获用例图:需求捕获类类 图:类及类之间的相互关系图:类及类之间的相互关系对象图:对象以及对象之间的相互关系对象图:对象以及对象之间的相互关系构件图:构件及其相互依赖关系构件图:构件及其相互依赖关系部署图:构件在各节点上的部署部署图:构件在各节点上的部署顺序图:强调对象时间顺序的交互顺序图:强调对象时间顺序的交互协作图:强调对象协作的交互协作图:强调对象协作的交互状态图:类所经历的各种状态状态图:类所经历的各种状态活动图:对工作流程建模活动图:对工作流程建模 结结 构构 行行

    8、为为敏捷软件原则:需要时再添加UML的主要图类型的主要图类型活动图用例图协作图对象图类图状态图序列图WorkflowScenariosInter-class behaviorInter-class behaviorStructureStructureInteraction equence between objectsUML图在设计过程中的演化关系图在设计过程中的演化关系发现类方法:名词短语;公共类;用例导出;发现类方法:名词短语;公共类;用例导出;CRC(类、职责、协作)(类、职责、协作)提炼类方法:系统范围内;清晰目的;不能孤立;有属性;类功能单一;提炼类方法:系统范围内;清晰目的;不能孤

    9、立;有属性;类功能单一;Association&GeneralizationStructureTypeDiagram用例模型图用例模型图用例图静态模型图(状态模型)静态模型图(状态模型)类图、对象图、构件图、配置图、包图动态动态模型图模型图行为模型行为模型交互图顺序图协作图(通信图)活动图状态变化模型状态变化模型状态图UML图的类型划分图的类型划分n UML视图与图对应关系视图与图对应关系图视图视图主要概念主要概念Use case diagramUse case view用例、参与者、关联关系、用例、参与者、关联关系、扩展关系、包含关系、泛化关系扩展关系、包含关系、泛化关系Object dia

    10、gramUse case and logic view对象、链接关系对象、链接关系Sequence diagramUse case and logic view对象、消息对象、消息Collaboration diagramUse case and logic view类元、链接关系、消息类元、链接关系、消息Activity diagramUse case and logicview活动、迁移、起始活动、终止活动、分支活动、迁移、起始活动、终止活动、分支与合并、分叉与汇合与合并、分叉与汇合Class diagramlogic view类、关联关系、聚合关系、组合关系、泛类、关联关系、聚合关系、组

    11、合关系、泛化关系、依赖关系、接口、包化关系、依赖关系、接口、包Package diagramlogic view包、依赖关系、泛化关系包、依赖关系、泛化关系State diagramlogic view状态、迁移、起始状态、终止状态、判定状态、迁移、起始状态、终止状态、判定Component diagramComponent view构件、接口、依赖关系构件、接口、依赖关系Deployment diagramDeployment view节点、构件、依赖关系、关联关系节点、构件、依赖关系、关联关系BABAUse caseBA用例图主要模型元素及其含义用例图主要模型元素及其含义参与者(角色)参与

    12、者(角色)用例用例包含关系包含关系扩展关系扩展关系关联关系关联关系泛化关系泛化关系参与者是针对用例所扮演的角色,可以人也可以是事物参与者是针对用例所扮演的角色,可以人也可以是事物。用例是功能,功能是完整的、外部可见的、相互独立的用例是功能,功能是完整的、外部可见的、相互独立的。完整含义:用例的执行逻辑必须完整,即有主要执行的完整含义:用例的执行逻辑必须完整,即有主要执行的流程,也有各种次要流程和意外处理流程。流程,也有各种次要流程和意外处理流程。外部可见的:不是内部功能,是参与者可以感知的。外部可见的:不是内部功能,是参与者可以感知的。相互独立的:用例开始执行到最终结束不依赖于其他用相互独立的

    13、:用例开始执行到最终结束不依赖于其他用例例是参与者和用例之间的通信渠道,如果没有箭头,则代是参与者和用例之间的通信渠道,如果没有箭头,则代表通信是双向的。表通信是双向的。是用例与用例的一种依赖关系:它允许被包含用例中的是用例与用例的一种依赖关系:它允许被包含用例中的公共行为从包含用例中分解出来。如公共行为从包含用例中分解出来。如B用例包含用例包含A用例,用例,则意味着则意味着B用例要执行,必须先执行用例要执行,必须先执行A用例。用例。是用例与用例的关系:是用例与用例的关系:B用例扩展用例扩展A用例,表示用例,表示A用例在用例在某种条件满足下,可以执行某种条件满足下,可以执行B用例。因而用例。因

    14、而B用例是用例是A用例用例的额外功能;另外当的额外功能;另外当B用例的执行可以由用例的执行可以由A用例而来,也用例而来,也可以由其他途径而来时(没有包含那种强制含义),可以由其他途径而来时(没有包含那种强制含义),B用用例和例和A用例也是一种扩展关系。用例也是一种扩展关系。是用例与用例、参与者与参与者之间的一种继承关系,是用例与用例、参与者与参与者之间的一种继承关系,表示一个用例(角色)将继承另一用例(角色)的所有表示一个用例(角色)将继承另一用例(角色)的所有功能(语义含义)。功能(语义含义)。Actor_1Actor_2Actor用例图是对需求中系统功能的规格说明(不对系统约束进行说明),

    15、并被作为验收测用例图是对需求中系统功能的规格说明(不对系统约束进行说明),并被作为验收测试的依据。试的依据。用例图模型的建立过程:确定参与者和用例;确定参与者与用例之间的关系,确定参用例图模型的建立过程:确定参与者和用例;确定参与者与用例之间的关系,确定参与者之间的关系,确定用例之间的关系;确定需求边界,在用例图中用矩形框表示;与者之间的关系,确定用例之间的关系;确定需求边界,在用例图中用矩形框表示;对用例功能进行描述,形成文档。对用例功能进行描述,形成文档。【例】包含二个角色,四个用例。其中B用例和A用例之间的关系为包含,即B用例执行前必须先执行A用例;C和A的关系为扩展,即A用例在某种条件

    16、满足下,可以扩展出C用例;D用例和A用例的关系为继承,表明D将拥有A用例的所有功能。参与者1和参与者2之间的关系为继承,表示参与者2除了可以驱动A、B用例外,还可以驱动参与者1的所有用例,即图中的D用例。Actor_1ACBDActor_2用例规格说明格式用例规格说明格式用例说明要素用例说明要素说明说明简要描述概述参与者涉及的参与者前置条件用例开始所需的条件主事件流对正常事件的流程进行描述备选流定义异常事件后置条件用例结束后的系统状态表示类及其关联关系的图表示类及其关联关系的图+display()-getNumOpenSlots()+setStatus()+numCanisters:int-n

    17、umWafers:int-size:floatCanister类名属性操作+:可见-:不可见类图类图长短式;抽象类和具体类表示;类多重性表示;封装表示长短式;抽象类和具体类表示;类多重性表示;封装表示操作属性:类型类名*University1 Component主要的模型元素:主要的模型元素:类、关联、泛化、依赖关系、接口、包。类、关联、泛化、依赖关系、接口、包。类中属性和操作的类范围和对象范围类中属性和操作的类范围和对象范围+Canister()+display()-getNumOpenSlots()+setStatus()+numCanisters:int-numWafers:int-si

    18、ze:floatCanister静态属性构造方法静态方法此三者专属于类,其他属性和方法虽然在类中定义,实际为对象而服务。对象图为类图实例,是类图的一个快照对象图为类图实例,是类图的一个快照对象图对象图长式长式属性=值对象名:类名对象名:类名短式短式类图类图对象图对象图类具有3个分栏:名称、属性和操作对象只有两个分栏:名称和属性类的名称栏只有类名对象名称栏为:“对项目:类名”或“:类名”类的属性分栏定义了所有属性的特征定义了属性的当前值类中列出了操作不包含操作,因为对象所有操作相同类图是对象图的抽象,类有关联,关联是对象图中链接的抽象,类图中的关联有名称、角色、多重性以及约束等。对象图是类图的一

    19、个实例,对象有链接,链接是关联的实例,链接有名称、角色,但没有多重性。类图和对象图的比较类图和对象图的比较类是数据类型,类是数据类型,UML在表示所有语言数据类型上不够;在表示所有语言数据类型上不够;用构造型(用构造型(stereotype)进行数据类型(模型元素)的扩展。)进行数据类型(模型元素)的扩展。Integer基本int数据类型MyInterfaceJava语言的接口Colorredgreenblue用户自定义枚举类型泛化:抽象类与继承关系的泛化:抽象类与继承关系的UML表示表示 泛化构造型:泛化构造型:、抽象类在编程上的可替换(抽象类在编程上的可替换(Interchageable)

    20、与多态性)与多态性CurrentAccountDepositAccountOnlineAccountAccountgetBalance()Account ac;ac=new CurrentAccount();System.out.println(ac.getBalance();ac=new DepositAccount();System.out.println(ac.getBalance();可替换性多态性关联(一):关联(一):关联名、关联方向、关联角色、关联多重性关联名、关联方向、关联角色、关联多重性class Person Compony employer;.class Company

    21、Person employee;.类A类B角色a 角色b 关联名 关联多重性 关联多重性 PersonCompanyemployee employer WorksFor 0.*0.1 关联(二)实现:类图为关联,对象图为链接,代码实现为引用;关联(二)实现:类图为关联,对象图为链接,代码实现为引用;类图中的关联关系将决定对象图、序列图中对象的交互关系类图中的关联关系将决定对象图、序列图中对象的交互关系PersonCompanyemployee employer WorksFor 0.*1 john:PersonICI:CompanyWorksFor tom:PersonWorksFor 用代码

    22、表示类图多重性含义用代码表示类图多重性含义(一)(一)class A B b;.class B A a;.A、B两个类对象可以引用对方也可以不引用,总之可自由选择;两个类对象可以引用对方也可以不引用,总之可自由选择;0.1a0.1bAB用代码表示类图多重性含义用代码表示类图多重性含义(二)(二)A类对象必须引用类对象必须引用B类对象,类对象,B类对象则可以引用也可以不引用类对象则可以引用也可以不引用A对象对象class A B b;A(B _b)if(_b=null)/throw NullLinkError b=_b;class B A a;.0.1a1bAB用代码表示类图多重性含义用代码表示

    23、类图多重性含义(三)(三)class A B b;A(B _b)if(_b=null)/throw NullLinkError b=_b;b.setA(this);class B A a;void setA(A _a)if(_a=null)/throw NullLinkError a=_a;先产生先产生B类对象,再产生类对象,再产生A类对象,只要类对象,只要A类对象产生时,二者就类对象产生时,二者就构成了相互引用;如果产生对象的方式反过来,如法炮制。构成了相互引用;如果产生对象的方式反过来,如法炮制。1a1bAB关联(三):关联的元数关联(三):关联的元数(一元关联或自关联或递归关联、二元关联

    24、、三元关联)(一元关联或自关联或递归关联、二元关联、三元关联)对象存在一元链对象存在一元链接和三元链接吗接和三元链接吗Servantheader clerk Manage 0.*1 header:ServantClerk_n:ServantClerk_1:ServantMailMessageAttachment*composition*ComputerProcessor*1aggregation关联(四):聚合(部分是整体的一部分)关联(四):聚合(部分是整体的一部分)组合(整体拥有部分)组合(整体拥有部分)主要概念主要概念聚和聚和传递性、非对称性传递性、非对称性组合组合传递性、非对称性、依赖

    25、性、固定性传递性、非对称性、依赖性、固定性特征特征一般关联一般关联聚合聚合组合组合标记标记实线实线空心菱形空心菱形实心菱形实心菱形拥有拥有无无弱弱强强多重性多重性任意任意任意任意整体为整体为1传递性传递性无无有有传方向传方向无无整体与部分整体与部分关联(五):关联约束关联(五):关联约束约束关键词约束关键词含义含义subset一个关联是另一个关联的子集ordered表示有序对象changeable关联可变addonly关联可以动态添加,但不能修改frozen关联不能修改xor两个关联之间是互斥关系委员会人subset*1成员主席主席是成员中的一员:委员会有一个成员主席是成员中的一员:委员会有一

    26、个成员的引用集合,有一个的引用集合,有一个“主席引用主席引用”,主席,主席对象被对象被“主席引用主席引用”引用外,在成员引用引用外,在成员引用集合中也存在一个引用指向主席对象。集合中也存在一个引用指向主席对象。多边形线段*ordered多边形中存在一个线段的引用集合,多个线段对象的引用是以有序的方式加入集合当中。多边形中存在一个线段的引用集合,多个线段对象的引用是以有序的方式加入集合当中。购房合同人公司xor购房合同的主体只能有一个,要么是人,要么是公司。购房合同的主体只能有一个,要么是人,要么是公司。人公司雇主0.1*工人*0.1老板人.雇主=人.老板.雇主用标记值来表示约束老板:人工人1:

    27、人工人2:人A:公司老板:人工人1:人工人2:人A:公司B:公司约束条件下的对象链接图约束条件下的对象链接图没有约束条件下的可能存没有约束条件下的可能存在的对象链接关系图在的对象链接关系图关联(六):关联类;产生条件(多重性中的多对多;将对应关系进行存储关联(六):关联类;产生条件(多重性中的多对多;将对应关系进行存储)ModuleStudent*RegistrationMark:Integer1class Registration private int mark;private Student student;Registration(Student st)student=st;mark=

    28、0;class Module private Vector registrations=new Vector();public void enroll(Student st)registrations.addElement(new Registration(st);CustomerAccountCurrentAccountDepositAccountOnlineAccountHolds0.11关联(七):关联与类的泛化关联(七):关联与类的泛化CustomerCurrentAccountDepositAccountOnlineAccount Directory Filename0.1class

    29、 Directory private Hashtable theFiles;.关联(八):受限(关联(八):受限(qualified)关联的表示及实现;)关联的表示及实现;name是theFiles中的Key DirectoryFile*interfaceMyClassMyInterfaceinterface MyInterface.class MyClass implements MyInterface .MyClassMyInterface接口表示及实现接口表示及实现class MyDependentClass .void myFunction1(MyReferencedClass r).

    30、MyReferencedClass myFunction2().void myFunction3()MyReferencedClass m dependence(reference to a class)parameteror return typeor local variable typeMyDependentClassMyReferencedClass依赖的表示和实现依赖的表示和实现依赖的表示和实现依赖的表示和实现MyClassMyInterfaceUseClass class UseClass void myFunction(MyInterface mi)Studentjack:Stu

    31、dent包及包图包及包图包是UML的模型元素之一,是一种分组机制,把一些模型元素组织成语义上相关的组。包可以包含类、接口、组件、结点和其他包,包之间有引入、依赖、继承的关系。包图用来描述系统模型的体系结构层次,一个包就是一个子系统,包图是设计中的概念,在建模时起到归类的作用,对于实际系统没有意义,不需要转化成可执行的系统。包图中涉及到的注解到包名边的构造型主要有:系统模型 子系统模型是其他包的一个访问接口视图包另一个包的代理由模式组成的包Package包名,可含有包路径包层次ABDC A包在类定义层次使用了包在类定义层次使用了B包继承了包继承了D包,包,在对象层次调用了在对象层次调用了C包中的

    32、对象。包中的对象。顺序图(序列)图顺序图(序列)图顺序图又称为序列图,描述对象之间动态的消息交互关系,体现对象间消息传递顺序图又称为序列图,描述对象之间动态的消息交互关系,体现对象间消息传递的时间顺序。图顶层的水平轴为交互的对象,对象下的虚线代表对象生命线,虚的时间顺序。图顶层的水平轴为交互的对象,对象下的虚线代表对象生命线,虚线上的矩形框表示对象接受消息后被激活期,代表方法的执行,对象间消息交互线上的矩形框表示对象接受消息后被激活期,代表方法的执行,对象间消息交互从图的最顶端开始,自上向下体现的是消息交互的时间顺序。从图的最顶端开始,自上向下体现的是消息交互的时间顺序。myObject:My

    33、ClassmyObject1:MyClass11.1Operation1()Client1Operation()Client端端是消息的发是消息的发送端送端,拥有拥有myObject的引用的引用Operation()是是MyClass的方法,的方法,该方法中有该方法中有myClass1对对象的引用象的引用Operation1()是是MyClass1的方法的方法a是MyClass的声明 a.Operation()b是MyClass1声明 b.Operation1()交互图中的消息交互图中的消息1)消息格式:)消息格式:序号序号条件条件重复次数重复次数回送值:回送值:=操作名(参数表)操作名(参数

    34、表)2)消息四种类型:简单消息、同步消息、异步消息和返回消息)消息四种类型:简单消息、同步消息、异步消息和返回消息简单消息同步消息异步消息返回消息消息的类型消息的类型内部消息的表示方法内部消息的表示方法:A:B消息中的构造型消息中的构造型3)内部消息和循环消息表示方法)内部消息和循环消息表示方法4)消息中的构造型:创建消亡用同步消息,)消息中的构造型:创建消亡用同步消息,、建立顺序图步骤建立顺序图步骤1.确定交互的类对象2.在序列图左上角画一个矩形框代表该对象,使用 UML标记方法:object:Class3.画一个延长矩形框在该对象下面表示一个操作的执行。4.画一个箭头指向右边。myObje

    35、ct:MyClassmyObject1:MyClass1operation1()5.确定那个对象处理该消息。6.用操作的名称给该箭头命名。7.系统使用一个拉长的矩形框表示一个过程的开始。8.如果是同步消息(方法调用),则接受消息对象被激活的矩形框不要超过发消息对象的矩形框。myObject:MyClass合作图(协作)图合作图(协作)图用于描述相互合作的对象间的交互关系,模型元素由类元或对象、链接、消息构成。用于描述相互合作的对象间的交互关系,模型元素由类元或对象、链接、消息构成。类元角色:描述对象在交互中扮演的角色类元角色:描述对象在交互中扮演的角色winner:Account链接:用实线表

    36、示两个类元(对象)之间的链接,用构造型表明链接的种类链接:用实线表示两个类元(对象)之间的链接,用构造型表明链接的种类类型类型含义含义全局性(global)表明该链接是由类中关联的实例化局部性(local)表明该链接是操作中的一个局部变量。参数性(parameter)表明该链接是操作中的传入变量自我性(self)表明该链接是自身发送的消息1:count(part)1.2:getNumber()a:Assemblyclientpart:CatalogueEntry消息:格式同顺序图消息:格式同顺序图:Component*Client:Assembly1:cost()1.1*:cost():Com

    37、ponentClient:Assembly1:cost()1.1*:cost()合作图中的循环消息表示法合作图中的循环消息表示法对象的创建与撤销对象的创建与撤销new:合作中新产生的对象或链接:合作中新产生的对象或链接destroy:合作中销毁的对象或链接:合作中销毁的对象或链接transient:合作中产生又销毁的对象或链接:合作中产生又销毁的对象或链接Client:Orderline:OrderLinedestroy1:remove(line)1.1:destroy消息构造型链接撤销对象撤销顺序图和合作图的相互转化顺序图和合作图的相互转化1:getTotal()1.2.1:getLocat

    38、ion()1.1*:getValue()1.2:getShipping():Orderclient:Customer:OrderLine:OrderLine*getLocation()getShippingCost()*getValue()getTotal()client:Order:CustomergetLocation()getShippingCost()*getValue()getTotal()活动图活动图活动图用于描述系统需求各用例内活动的执行顺序或类方法中主要活动的执行流程。活动图用于描述系统需求各用例内活动的执行顺序或类方法中主要活动的执行流程。l活动:活动由子活动或动作构成,动作

    39、是不可再分的活动,其执行不能被打断,动作不能象活活动:活动由子活动或动作构成,动作是不可再分的活动,其执行不能被打断,动作不能象活动那样拥有入口动作、出口动作和内部迁移,活动和动作都拥有相同的动那样拥有入口动作、出口动作和内部迁移,活动和动作都拥有相同的UML表示符号。表示符号。模型元素模型元素活动名活动活动迁移迁移分支与合并分支与合并开始活动开始活动结束活动结束活动分叉分叉汇合汇合l迁移:由带箭头的实线表示,表示动作状态的转移,当迁移上无条件时,称为无条件动作流,当迁移:由带箭头的实线表示,表示动作状态的转移,当迁移上无条件时,称为无条件动作流,当有条件时,条件满足迁移发生。有条件时,条件满

    40、足迁移发生。l分支与合并:一个入迁移,多个具有互斥条件的出迁移,迁移沿判定条件为真的分支迁移;合并分支与合并:一个入迁移,多个具有互斥条件的出迁移,迁移沿判定条件为真的分支迁移;合并:将多个具有互斥条件的入迁移合并成一个出迁移,即当有一个入迁移发生时,就会引起出迁移:将多个具有互斥条件的入迁移合并成一个出迁移,即当有一个入迁移发生时,就会引起出迁移。迁移也可以分叉和汇合,分叉形成并发迁移,汇合则对迁移进行同步。迁移也可以分叉和汇合,分叉形成并发迁移,汇合则对迁移进行同步。l开始活动与结束活动:开始活动是活动图的开始,只能有一个,结束活动是活动图的结束,一个开始活动与结束活动:开始活动是活动图的

    41、开始,只能有一个,结束活动是活动图的结束,一个活动图可以存在多个结束活动。活动图可以存在多个结束活动。状态图状态图描述系统或类可能有的不同状态及其引起状态迁移的事件,描述系统或类可能有的不同状态及其引起状态迁移的事件,对象的状态决定了对象的行为。对象的状态决定了对象的行为。模型元素模型元素迁移迁移条件判定开始状态开始状态结束状态结束状态状态状态状态名entry/Action_1do/Action_2exit/Action_3.l状态:由状态名和活动组成。在状态图中,状态名唯一;活动是在该状态下执行的事件状态:由状态名和活动组成。在状态图中,状态名唯一;活动是在该状态下执行的事件和动作,是可选项

    42、。每个状态有有入口、执行和出口三个标准事件,每个事件对应一个动和动作,是可选项。每个状态有有入口、执行和出口三个标准事件,每个事件对应一个动作。如果在状态的活动区还画有一个或多个状态图,则称为嵌套状态。作。如果在状态的活动区还画有一个或多个状态图,则称为嵌套状态。l迁移:由带箭头的实线表示,表示状态的转移,迁移的完整描述为迁移:由带箭头的实线表示,表示状态的转移,迁移的完整描述为“事件(参数)事件(参数)条条件件/动作动作”,迁移可以接判断,判断一入多出,且出迁条件互斥。,迁移可以接判断,判断一入多出,且出迁条件互斥。条件判断条件判断l开始状态与结束状态:开始状态是状态图的开始,对于同一层次状

    43、态图而言只能有一个开始状态与结束状态:开始状态是状态图的开始,对于同一层次状态图而言只能有一个(嵌套的状态图可以有自己的开始状态和结束状态),结束状态是状态图的结束,一个状(嵌套的状态图可以有自己的开始状态和结束状态),结束状态是状态图的结束,一个状态图可以有多个结束状态。态图可以有多个结束状态。状态图与活动图的相同点和不同点状态图与活动图的相同点和不同点相同点:相同点:1)图中的建模元素有相似之处。)图中的建模元素有相似之处。2)对系统或对象在生存周期的状态和行为进行描述。)对系统或对象在生存周期的状态和行为进行描述。不同点:不同点:1)状态图中迁移发生时,必须有事件发生或条件满足,而活动图

    44、的迁移可以无条件或没)状态图中迁移发生时,必须有事件发生或条件满足,而活动图的迁移可以无条件或没有事件发生。有事件发生。2)状态图对于系统状态的描述可以横跨多个用例,而活动图则是针对同一用例内部的动)状态图对于系统状态的描述可以横跨多个用例,而活动图则是针对同一用例内部的动作执行给出描述。作执行给出描述。构件图构件图构件图描述构件及其相互依赖关系,用于将系统逻辑设计与物理模块进行对应。构件图描述构件及其相互依赖关系,用于将系统逻辑设计与物理模块进行对应。模型元素模型元素构件构件接口接口依赖依赖Interface构件:相对逻辑设计上的类和对象,构件是和物理系统构件:相对逻辑设计上的类和对象,构件

    45、是和物理系统相关的一个概念,不同的语言对构件的定义有所不同,相关的一个概念,不同的语言对构件的定义有所不同,UML中的构件含义包括代码文件,也指数据库、动态链中的构件含义包括代码文件,也指数据库、动态链接库、接库、web页面等。页面等。依赖:构件中的关系以依赖的形式表达,可分为编译依依赖:构件中的关系以依赖的形式表达,可分为编译依赖和调用依赖两类。赖和调用依赖两类。接口:构件和接口存在实现和调用两种关系。接口:构件和接口存在实现和调用两种关系。ComponentA.javaB.java1A+Operation(B)().:voidB 构件构造型:构件构造型:、构件依赖中使用的含义构件依赖中使用

    46、的含义部署图部署图部署图描述了构件在物理硬件上的分布情况。部署图描述了构件在物理硬件上的分布情况。模型元素模型元素结点构件构件Component结点结点关联关联结点:表示某种计算资源的物理对象,包括计算机、外部设备(打印机、读卡器、通信设结点:表示某种计算资源的物理对象,包括计算机、外部设备(打印机、读卡器、通信设备等),结点内部放置构件,表示构件部署在该结点上,同一个结点内部的构件关系用依备等),结点内部放置构件,表示构件部署在该结点上,同一个结点内部的构件关系用依赖表达。赖表达。关联:结点之间的关联表示结点之间物理连接以及其上用的通信协议。关联:结点之间的关联表示结点之间物理连接以及其上用

    47、的通信协议。依赖依赖 部署图中的构造型:用来表达结点通讯使用的协议等。部署图中的构造型:用来表达结点通讯使用的协议等。经典案例案例案例1 工厂仓库管理信息管理工厂仓库管理信息管理需求需求public class Part private String name;private long number;private Double cost;public Part(String _name,long _numbr,double _cost)name=_name;number=_number;cost=_cost;public String getName()return name;public

    48、long getNumber()return number;public double getCost()return cost;问题问题潜在需求:仓库零件非常多,这样设计的问题有:1、对象属性冗余,造成内存浪费以及维护上的困难。2、仓库中没有零件无法记录零件类型。针对需求针对需求NO1-3的设计的设计Part-numbernamecost:long:String:Double+getName()getNumber()getCost().:String:long:doublepublic class Part private CatalogueEntry entry;public Part(C

    49、atalogueEntry e)entry=e;ScrewsBolts上述问题的解决方案上述问题的解决方案public class Part private CatalogueEntry entry;public Part(CatalogueEntry e)entry=e;public double cost()return entry.getcost();Part成本查询的相应调整成本查询的相应调整1CatalogueEntry-numbernamecost:long:String:Double+getName()getNumber()getCost().:String:long:doubl

    50、ePart-entry:CatalogueEntry+cost().:Double1CatalogueEntry-numbernamecost:long:String:Double+getName()getNumber()getCost().:String:long:doublePart-entry:CatalogueEntryscrew:CatalogueEntrynumbernamecost.=28834=screw=0.02bolts:CatalogueEntrynumbernamecost.=10117=bolt=0.03:Part:Part:Part:Part:Part1:cost(

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Java面向对象程序设计(第2版)第17章课件.ppt
    链接地址:https://www.163wenku.com/p-4145221.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库