ImageVerifierCode 换一换
格式:PPT , 页数:181 ,大小:2.11MB ,
文档编号:5171620      下载积分:29 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-5171620.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(面向对象分析与设计分析课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

面向对象分析与设计分析课件.ppt

1、面向对象分析与设计面向对象分析与设计-分析分析-问题域问题域(抽象的来源)(抽象的来源)OOA模型模型(类图)(类图)抽象抽象OOA是将问题域中的事物抽象为系统中的对象是将问题域中的事物抽象为系统中的对象系统责任系统责任(抽象的目标)(抽象的目标)抽象的目标是系统责任抽象的目标是系统责任需求需求用况的概念解决了对需求的描述问题用况的概念解决了对需求的描述问题需求模型需求模型(用况图)(用况图)5.2 5.2 基本思路基本思路问题的提出:问题的提出:在系统尚未存在时,如何描绘用户需要一个什么样的系统?如何规范地定义用户需求?考虑问题的思路:考虑问题的思路:把系统看作一个黑箱,看它对外部的客观世界

2、发挥什么作用,描述其外部可见的行为外部可见的行为。系统是由一条系统是由一条边界包围起来边界包围起来的未知空间的未知空间只通过有限只通过有限的几个接口的几个接口与外部交互与外部交互系统边界以外系统边界以外是与系统进行是与系统进行交互的参与者交互的参与者把内外交互情况描把内外交互情况描述清楚,就确切地述清楚,就确切地定义了系统的需求定义了系统的需求系统边界系统边界系统边界:一个系统所包含的所有系统成分与系统以外系统边界:一个系统所包含的所有系统成分与系统以外各种事物的分界线。各种事物的分界线。系统:被开发的计算机软硬件系统,不是指现实系统。系统:被开发的计算机软硬件系统,不是指现实系统。系统成分:

3、在系统成分:在OOA和和OOD中定义并且在编程时加以实中定义并且在编程时加以实现的系统元素现的系统元素对象对象对对象象对象对象对象对象对象对象对象对象对象对象参与者参与者(人员人员)参与者参与者(设备设备)参与者参与者(外系统外系统)参与者:在系参与者:在系统边界以外,统边界以外,与系统进行交与系统进行交互的事物互的事物人员、设备、人员、设备、外系统外系统5.3 系统边界与参与者系统边界与参与者现实世界中的事物与系统之间的关系现实世界中的事物与系统之间的关系分四种情况分四种情况(1)被抽象为系统中的对象)被抽象为系统中的对象汽车飞机奖杯钟表起重机职员楼房天平(2)只作为系统外部的参与者与系统交

4、互)只作为系统外部的参与者与系统交互(4)与系统无关)与系统无关操作员(3)既是系统中的对象,本身又作为参与者与系统交互)既是系统中的对象,本身又作为参与者与系统交互人员人员系统的直接使用者系统的直接使用者直接为系统服务的人员直接为系统服务的人员设备设备与系统直接相联的设备与系统直接相联的设备为系统提供信息为系统提供信息在系统控制下运行在系统控制下运行不与系统相连的设备不与系统相连的设备 计算机设备计算机设备 外系统外系统上级系统上级系统子系统子系统其它系统其它系统如何发现参与者如何发现参与者考虑人员、设备、外系统考虑人员、设备、外系统什么是用况什么是用况I.Jacobson:用况是通过使用系

5、统功能的某些部分而使用系统的一种具体方式。每个用况是通过使用系统功能的某些部分而使用系统的一种具体方式。每个用况包括一个由参与者发动的完整的事件过程。它详细说明了参与者和用况包括一个由参与者发动的完整的事件过程。它详细说明了参与者和系统之间发生的交互。因此,一个用况是一个由参与者和系统在一次对系统之间发生的交互。因此,一个用况是一个由参与者和系统在一次对话中执行的特定的相关事务序列。全部用况的集合则说明了所有可能存话中执行的特定的相关事务序列。全部用况的集合则说明了所有可能存在的系统使用方式。在的系统使用方式。对象技术词典对象技术词典:1对一个系统或者一个应用的一种单一的使用方式所进行的描述。

6、对一个系统或者一个应用的一种单一的使用方式所进行的描述。2关于单个参与者在与系统的对话中所执行的处理的行为陈述序列。关于单个参与者在与系统的对话中所执行的处理的行为陈述序列。UML:对系统在与它的参与者交互时所能执行的一组动作序列(包括其变体)对系统在与它的参与者交互时所能执行的一组动作序列(包括其变体)的描述。的描述。?本书的定义:本书的定义:用况是对参与者使用系统的一项功能时所进行的交互过程用况是对参与者使用系统的一项功能时所进行的交互过程的描述,其中包含由双方交替执行的一系列动作。的描述,其中包含由双方交替执行的一系列动作。5.4 用况(用况(use case)对象图的用处是很有限的,主

7、要是展示数据结构的例子”。考虑:需要其它对象(或本对象)提供什么服务由系统管理或使用其信息,或者在系统中呈现某些行为的各类组织生命线和消息不在概览的层次上出现。问题:增加了概念的复杂性,缺乏编程语言支持“依赖是这样一个关系,它表明一个或者一组模型元素的详细说明或者实现需要另外一些模型元素。同一种状态下对象的行为规则是始终一致的。包图:辅助模型,各种模型图的组织机制,系统规模较大时使用。多继承特殊类的内部情况是一种基本的模型元素;(1)取消没有特殊性的特殊类UML提供了多种构件表示方式,可以有选择地采用。二元关联(binary association)组合片段(combined fragment

8、):若干交互片段的组合例如:学校的教师、学生、教务员 和 警卫活动图可以描述各种不同的行为,例如:一个接口说明了一个合约;确定参与者和用况之间的关系体现了控制流之间的通信关系2整体-部分关系即聚合关系。术语术语“use case”use case”的准确含义的准确含义使用情况使用情况是对一项系统功能使用情况的一般描述,它对于每一次使是对一项系统功能使用情况的一般描述,它对于每一次使用都普遍适应,既不是应用实例,也不是举例说明。用都普遍适应,既不是应用实例,也不是举例说明。因此译为因此译为“用况用况”,而不是,而不是“用例用例”。几点说明:几点说明:(1 1)一个用况只描述参与者对单独一项系统功

9、能的使用情况;一个用况只描述参与者对单独一项系统功能的使用情况;(2 2)通常是平铺直叙的文字描述,)通常是平铺直叙的文字描述,UMLUML也允许其他描述方式;也允许其他描述方式;(3 3)陈述参与者和系统在交互过程中双方所做的事;)陈述参与者和系统在交互过程中双方所做的事;(4 4)所描述的交互既可能由参与者发起也可能由系统发起所描述的交互既可能由参与者发起也可能由系统发起;(5 5)描述彼此为对方直接地做什么事,不描述怎么做;)描述彼此为对方直接地做什么事,不描述怎么做;(6 6)描述应力求准确,允许概括,但不要把双方的行为混在一起;)描述应力求准确,允许概括,但不要把双方的行为混在一起;

10、(7 7)一个用况可以由多种参与者分别参与或共同参与。一个用况可以由多种参与者分别参与或共同参与。内容与书写格式内容与书写格式:名称名称行为陈述(分左右栏)行为陈述(分左右栏)调用语句调用语句控制语句控制语句括号或标号括号或标号收款收款输入开始本次收款的命令;作好收款准备,应收款总作好收款准备,应收款总 数置为数置为0,输出提示信息;,输出提示信息;for 顾客选购的每种商品 do 输入商品编号;if 此种商品多于一件 then 输入商品数量 end if;检索商品名称及单价;检索商品名称及单价;货架商品数减去售出数;货架商品数减去售出数;if 货架商品数低于下限货架商品数低于下限 then

11、call 通知上货通知上货 end if;计算本种商品总价并打印编号、计算本种商品总价并打印编号、名称、数量、单价、总价;名称、数量、单价、总价;总价累加到应收款总数;总价累加到应收款总数;end for;打印应收款总数;打印应收款总数;输入顾客付款数;计算应找回款数,计算应找回款数,打印付款数及找回款,打印付款数及找回款,应收款数应收款数计入账册。计入账册。例例如何定义用况如何定义用况针对单个用况的描述策略:针对单个用况的描述策略:把自己当作参与者,与设想中的系统进行交互。考虑:交互的目的是什么?需要向系统输入什么信息?希望由系统进行什么处理并从它得到何种结果?把上述交互过程描述出来。定义系

12、统中所有的用况:定义系统中所有的用况:(1)全面地了解和收集用户所要求的各项系统功能,找出所有的参与者,了解与各项功能相关的业务流程;(2)把用户提出的功能组织成适当的单位,每一项功能完成一项完整而相对独立的工作;(3)穷举每一类参与者所使用的每一项系统功能,定义相应的用况;(4)检查用户对系统的各项功能需求是否都通过相应的用况做了描述。参与者参与者基用况基用况 includeextendinclude用况用况 基用况基用况 基用况基用况 被包含用况被包含用况 延伸用况延伸用况 用况用况 5.5 5.5 用况图用况图参与者参与者参与者参与者模型元素:模型元素:参与者参与者用况用况延伸延伸包含包

13、含泛化泛化5.5 5.5 用况图用况图用况之间的关系用况之间的关系包含、延伸、泛化包含、延伸、泛化延伸延伸包含包含问题:问题:延伸与包含的相似性延伸与包含的相似性延伸的方向问题延伸的方向问题“条件条件”和和“延伸点延伸点”问题问题“泛化泛化”问题问题系统边界问题系统边界问题Perform ATMPerform ATMTransactionTransactionWithdrawWithdrawDepositDepositFundsFunds泛化泛化TransfeTransfer r FundsFunds 用况的两种复杂情况用况的两种复杂情况1 1、两个(或多个)参与者共享一个用况、两个(或多个)

14、参与者共享一个用况不同种类的参与者可能都要使用某一项系统功能,因不同种类的参与者可能都要使用某一项系统功能,因此它们可能共享同一个用况此它们可能共享同一个用况例:例:系统维护系统维护登录登录系统管理员系统管理员普通用户普通用户2、一个用况的执行,可能需要两个(甚至多个)参与者同时一个用况的执行,可能需要两个(甚至多个)参与者同时与系统交互。与系统交互。例:网上购物例:网上购物网上购物客户供货商用况图的开发过程用况图的开发过程确定系统边界确定系统边界发现参与者发现参与者 定义用况定义用况 建立用况之间的关系建立用况之间的关系 确定参与者和用况之间的关系确定参与者和用况之间的关系 绘制用况图绘制用

15、况图 使用用况图的几条建议使用用况图的几条建议最重要的工作是对用况的描述最重要的工作是对用况的描述不要过分深入地描述系统内部的行为细节不要过分深入地描述系统内部的行为细节 运用最主要概念,加强用况内容的描述运用最主要概念,加强用况内容的描述不要陷入延伸与包含、延伸点、泛化等问题的争论和辨别不要陷入延伸与包含、延伸点、泛化等问题的争论和辨别了解用况的局限性了解用况的局限性主要作用是描述功能需求主要作用是描述功能需求5.6 开发过程与建议开发过程与建议概念:概念:对象(对象(object)是系统中用来描述客观事物的一个实体,)是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属

16、性和施加于这组它是构成系统的一个基本单位,由一组属性和施加于这组属性的一组操作构成。属性的一组操作构成。类(类(class)是具有相同属性和操作的一组对象的集合,)是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,它由一它为属于该类的全部对象提供了统一的抽象描述,它由一个类名、一组属性和一组操作构成。个类名、一组属性和一组操作构成。类和对象的关系类和对象的关系集合与成员,对象是类的实例集合与成员,对象是类的实例在一般在一般-特殊结构中,特殊类特殊结构中,特殊类的对象实例在逻辑上也都是其的对象实例在逻辑上也都是其一般类的对象实例。一般类的对象实例。不直接创建对象实

17、例的类称为不直接创建对象实例的类称为抽象类(抽象类(abstract class)学生学生本科生本科生研究生研究生例:例:第第6 6章章 发现对象,定义对象类发现对象,定义对象类6.1 对象和类的概念及其运用对象和类的概念及其运用主动对象(主动对象(active object)至少有一个操作不需至少有一个操作不需要接收消息就能主动执行的对象要接收消息就能主动执行的对象用于描述具有主动行为的事物用于描述具有主动行为的事物主动对象的类叫做主动类(主动对象的类叫做主动类(active class)被动对象(被动对象(passive object)每个操作都必须在每个操作都必须在消息的驱动下才能执行的

18、对象消息的驱动下才能执行的对象类的语义类的语义OO方法中的类在不同的语境下有两种不同的语义:方法中的类在不同的语境下有两种不同的语义:1.一个类代表由它的全部对象实例所构成的群体一个类代表由它的全部对象实例所构成的群体日常语言表达中的例子:日常语言表达中的例子:“公司里有管理人员、技术人员和市场人员公司里有管理人员、技术人员和市场人员”“马路上汽车很多马路上汽车很多”在在OO模型中:模型中:每个类都是由它的全部对象实例所构成的集合每个类都是由它的全部对象实例所构成的集合类代表了它的全部对象实例。类代表了它的全部对象实例。2.一个类代表属于该类的任意一个对象实例一个类代表属于该类的任意一个对象实

19、例从大量的个体中抽象出一个概念,再运用这个概念时就从大量的个体中抽象出一个概念,再运用这个概念时就可以代表其中的任何一个个体,例如:可以代表其中的任何一个个体,例如:“学生有一个学号,属于一个班级,要上课学生有一个学号,属于一个班级,要上课”在在OO系统模型中定义了一个类,它就可以代表它的任系统模型中定义了一个类,它就可以代表它的任何一个对象实例,例如:何一个对象实例,例如:汽车与发动机之间的聚合关系,表示任何一辆汽车都有一台发汽车与发动机之间的聚合关系,表示任何一辆汽车都有一台发动机,任何一台发动机都可以装在动机,任何一台发动机都可以装在01辆汽车上辆汽车上实现关联的类含有两个属性,分别是指

20、向两端的类的对象实例的指针或者对象标识。被动操作(passive operation):由系统管理或使用其信息,或者在系统中呈现某些行为的各类组织当需要展现接口的细节时,就需要表示出它与构件之间的实现关系和使用关系。或者 响应其它操作的请求间接地完成这种功能的某些局部操作?定义2:如果类A的全部对象都是类B的对象,而且类B中存在不属于类A的对象,则A是B的特殊类,B是A的一般类。对什么进行抽象问题域长处:对状态复杂多变,并且在不同状态下呈现不同行为的对象,通过状态建模将有助于准确地认识和描述对象的行为。部署图(deployment diagram)可变性(changeability)froze

21、n,addOnlyinstantiate关于OOA/OOD分工的两种不同观点依赖(类图、包图、用况图、构件图)(4)考察属性与操作的适应范围主动性:YesNoUML提供了多种构件表示方式,可以有选择地采用。依赖在一个模型中出现并不含有任何运行时的语义,它完全是以参与这种关系的模型元素的名义而不是以其实例的名义给出的。避免市井俚语和无意义的符号从实现的角度看,用类实现n元关联是最自然的选择instantiate注意业务流程和执行过程的差别和并发描述的误差在类的抽象层次建模在类的抽象层次建模理由:理由:(1)充分性:模型中一个类描述了它的全部对象实例)充分性:模型中一个类描述了它的全部对象实例(2

22、)必要性:个别对象实例不能代表其他对象实例)必要性:个别对象实例不能代表其他对象实例(3)符合人类的思维方式:在概念层次上表达描述事物规律)符合人类的思维方式:在概念层次上表达描述事物规律(4)与)与OOPL保持良好的对应保持良好的对应(5)避免建模概念复杂化)避免建模概念复杂化(6)消除抽象层次的混乱)消除抽象层次的混乱如何运用类和对象的概念如何运用类和对象的概念从对象出发认识问题域从对象出发认识问题域将问题域中的事物抽象为对象;将问题域中的事物抽象为对象;将具有共同特征的对象抽象为类将具有共同特征的对象抽象为类用类以及它们之间的关系构成整个系统模型;用类以及它们之间的关系构成整个系统模型;

23、归纳归纳演绎演绎在模型中用类表示属于该类的任何对象在模型中用类表示属于该类的任何对象在类的规约中说明这个类将创建那些对象实例在类的规约中说明这个类将创建那些对象实例在程序中用类定义它的全部对象在程序中用类定义它的全部对象编程时静态声明类的对象编程时静态声明类的对象运行时动态创建类的对象运行时动态创建类的对象类类 名名压缩方式压缩方式类类 名名属性名属性名:类型名类型名操作名操作名()展开方式展开方式主动类主动类active类类 名名衍型(衍型(stereotype)用关键字或者用关键字或者用图标表示用图标表示类名类名UML2 主动类表示法主动类表示法主动主动类类 名名6.2 表示法表示法在在模

24、型模型中用类符号来表示一个类中用类符号来表示一个类它代表了属于该类的全部对象实例它代表了属于该类的全部对象实例对象名对象名:类名类名压缩方式压缩方式属性名属性名=值值UML的对象表示法:的对象表示法:细节方式细节方式对象名对象名:类名类名匿名对象匿名对象:类名类名压缩方式压缩方式属性名属性名=值值细节方式细节方式:类名类名用所谓“匿名对象”代表类的任何一个对象实例,然而这恰恰是类的作用。6.3 发现对象发现对象研究问题域研究问题域亲临现场深入调查研究亲临现场深入调查研究直接观察并向用户及相关的业务人员进行调查和直接观察并向用户及相关的业务人员进行调查和交流交流,考察问题域中各种各样的事物、它们

25、的特征及相互关系 听取问题域专家的见解听取问题域专家的见解领域专家领域专家包括技术人员、管理者、老职员和包括技术人员、管理者、老职员和富有经验的工人等富有经验的工人等阅读相关材料阅读相关材料阅读各种与问题域有关的材料,学习相关行业和阅读各种与问题域有关的材料,学习相关行业和领域的基本知识领域的基本知识借鉴以往的系统借鉴以往的系统查阅以往在该问题域中开发过的同类系统的分析查阅以往在该问题域中开发过的同类系统的分析文档文档,吸取经验,发现可以复用的类,吸取经验,发现可以复用的类 正确地运用抽象原则正确地运用抽象原则对什么进行抽象对什么进行抽象问题域问题域当前目标当前目标系统责任系统责任忽略与系统责

26、任无关的事物忽略与系统责任无关的事物只注意与之有关的事物只注意与之有关的事物,抽象为系统中的对象,抽象为系统中的对象 例如:学校的教师、学生、教务员例如:学校的教师、学生、教务员 和和 警卫警卫忽略与系统责任无关的事物特征忽略与系统责任无关的事物特征只注意与之有关的特征,抽象为对象的属性或操作只注意与之有关的特征,抽象为对象的属性或操作 例如:教师的专业、职称例如:教师的专业、职称 和和 身高、体重身高、体重正确地提炼对象正确地提炼对象 例如:对书的不同抽象例如:对书的不同抽象在图书馆管理系统中以一本书作为一个对象实例在图书馆管理系统中以一本书作为一个对象实例在书店管理系统中以一种书作为一个对

27、象实例在书店管理系统中以一种书作为一个对象实例由系统管理或使用由系统管理或使用其信息,或者在系其信息,或者在系统中呈现某些行为统中呈现某些行为的各类人员的各类人员由系统管理或使用由系统管理或使用其信息,或者在系其信息,或者在系统中呈现某些行为统中呈现某些行为的各类组织的各类组织由系统进行管由系统进行管理的各种物品理的各种物品其他其他策略与启发策略与启发(1 1)考虑问题域:)考虑问题域:抽象事物抽象事物事件事件文件文件结构结构人员人员组织组织物品物品设备设备由系统进行管理或由系统进行管理或控制,或者在系统控制,或者在系统中呈现某些行为的中呈现某些行为的各种设备各种设备例如:课程、计例如:课程、

28、计划、交易、账户划、交易、账户需要长期记忆的事件需要长期记忆的事件例如:银行的取款、例如:银行的取款、存款,保险公司的索存款,保险公司的索赔,车辆管理中的驾赔,车辆管理中的驾驶违章驶违章泛指各种表格、档案、证件、票据等文件泛指各种表格、档案、证件、票据等文件例如:业务报表,人事档案,身份证,合例如:业务报表,人事档案,身份证,合同,商品订单等同,商品订单等 注意三个问题:非基础数据,同一事物的注意三个问题:非基础数据,同一事物的重复描述,多种事物信息组合重复描述,多种事物信息组合从结构得到启发,从结构得到启发,联想到新的对象联想到新的对象其他一切有助于发其他一切有助于发现对象的事物现对象的事物

29、(2 2)考虑系统边界:)考虑系统边界:考察在系统边界以外与系统交互的各类参与者考察在系统边界以外与系统交互的各类参与者考虑通过那些对象处理这些参与者的交互考虑通过那些对象处理这些参与者的交互人员人员设备设备外系统外系统(3 3)考虑系统责任:)考虑系统责任:检查每一项功能需求是否已有相应的对象提供,检查每一项功能需求是否已有相应的对象提供,发现遗漏的对象发现遗漏的对象审查与筛选审查与筛选(1)舍弃无用的对象)舍弃无用的对象通过属性判断:通过属性判断:是否通过属性记录了某些有用的信息?是否通过属性记录了某些有用的信息?通过操作判断:通过操作判断:是否通过操作提供了某些有用的功能?是否通过操作提

30、供了某些有用的功能?二者都不是二者都不是无用无用(2)对象的精简)对象的精简只有一个属性的对象只有一个属性的对象班级班级班主任班主任姓名姓名11班级班级班主任姓名班主任姓名只有一个操作的对象只有一个操作的对象输出设备输出设备格式转换器格式转换器文件格式转换文件格式转换输出设备输出设备文件格式转换文件格式转换call数据信息 例如传送一个数据文件因此,除非你有一些对谓词演算感到舒服的读者,我愿意推荐使用自然语言。4 用况(use case)2确定参加交互的对象和参与者问题的提出:在系统尚未存在时,如何描绘用户需要一个什么样的系统?如何规范地定义用户需求?系统边界:一个系统所包含的所有系统成分与系

31、统以外各种事物的分界线。类的属性或操作不适合该类的全部对象实例(1)一个用况只描述参与者对单独一项系统功能的使用情况;问题:对象的属性与操作定义在系统运行中动态变化,例如:另一对控制结点,用来表示并发行为“定时图用于表示交互,此时的主要目的是考虑时间问题。(3)推迟到OOD考虑的问题构件中的类与这个构件之间的关系依赖(dependence)控制信息 例如一次函数调用,或唤醒一个进程4 用况(use case)例:售货员售货,商品售出第8章定义对象间的关系例:创建、删除、复制、转存第7章 定义对象的属性和操作不同种类的参与者可能都要使用某一项系统功能,因此它们可能共享同一个用况把与销售有关的操作

32、组织成销售接口提问:一个n元关联中所涉及的类的数量是否可以小于n?依赖(dependence)Booch等UML用户指南的解释接口(interface)“接口是一种类目,它表示对一组紧凑的公共特征和职责的声明。2确定参加交互的对象和参与者只注意与之有关的特征,抽象为对象的属性或操作收集了大量的模型图,从9种发展到13种把内外交互情况描述清楚,就确切地定义了系统的需求例:课程实习中每两名学生在一台设备上合作完成一个题目(4)考察属性与操作的适应范围限定符用简单的类和关联的概念解决创建控制流,立即响应,延迟响应,不响应如何建立的消息(控制流内部)目前大部分建模工具支持分离方式,通过模型规约来描述模

33、型元素的细节限定符(qualifier)详后它代表了属于该类的全部对象实例顺序图:辅助模型,清晰地表示一组对象之间的交互,对类图起到补充作用。(3)表示数量不定的组成部分*如何运用类和对象的概念(3)与实现条件有关的对象)与实现条件有关的对象例如:与例如:与图形用户界面(图形用户界面(GUI)数据管理系统数据管理系统硬件硬件 及及操作系统操作系统 有关的对象有关的对象推迟到推迟到OOD考虑考虑6.4 对象分类对象分类(1 1)将对象抽象为类,用类表示它的全部对象)将对象抽象为类,用类表示它的全部对象(2 2)审查和调整)审查和调整类的属性或操作不适合该类的全部对象实例类的属性或操作不适合该类的

34、全部对象实例例:例:“汽车汽车”类的类的“乘客限量乘客限量”属性属性进一步划分特殊类进一步划分特殊类属性及操作相同的类属性及操作相同的类经过抽象,差别很大的事物可能只保留相同的特征经过抽象,差别很大的事物可能只保留相同的特征考虑能否合并为一个类考虑能否合并为一个类属性及操作相似的类属性及操作相似的类考虑能否提升出一个一般类考虑能否提升出一个一般类同一事物的重复描述同一事物的重复描述例:例:“职员职员”和和“工作证工作证”取消其中一个取消其中一个(3 3)类的命名)类的命名类的名字应适合该类(及其特殊类)的全部对象实例类的名字应适合该类(及其特殊类)的全部对象实例反映个体而不是群体反映个体而不是

35、群体使用名词使用名词 或或 带定语的名词带定语的名词避免避免市井俚语和市井俚语和无意义的符号无意义的符号使用问题域通用的词汇使用问题域通用的词汇使用便于交流的语言文字使用便于交流的语言文字可以用本地文字和英文双重命名可以用本地文字和英文双重命名属性(属性(attributeattribute)是用来描述对象静态特征的一个数据项。)是用来描述对象静态特征的一个数据项。实例属性实例属性(instance attribute)和和类属性类属性(class attribute)的区别的区别例如:仪表类例如:仪表类输入电压、功率及各种规定的质量指标输入电压、功率及各种规定的质量指标类属性类属性编号、出厂

36、日期、精度等实际性能参数编号、出厂日期、精度等实际性能参数实例属性实例属性第第7 7章章 定义对象的属性和操作定义对象的属性和操作7.1 属性和操作属性和操作 操作(操作(operationoperation)是用来描述对象动态特征(行为)的)是用来描述对象动态特征(行为)的一个动作序列一个动作序列。近义词:方法(近义词:方法(methodmethod),服务(),服务(serviceservice)被动操作被动操作(passive operation):):只有接收到消息才能执行的操作只有接收到消息才能执行的操作 编程语言中的函数、过程等被动成分编程语言中的函数、过程等被动成分主动操作主动操

37、作(active operation):):不需要接收消息就能主动执行的操作不需要接收消息就能主动执行的操作编程语言中的进程、线程等主动成分编程语言中的进程、线程等主动成分 实现级细节方式实现级细节方式分析级细节方式分析级细节方式7.2 属性和操作的表示法属性和操作的表示法类类 名名属性名属性名:类型名类型名=值值操作名操作名(参数表参数表):返回类型:返回类型类类 名名属性名属性名:类型名类型名操作名操作名()用衍型表示用衍型表示主动操作主动操作主动主动 类名类名操作名操作名()主动主动操作名操作名()类名类名操作名操作名()主动主动操作名操作名()操作名操作名()主动主动操作名操作名()7

38、.3 7.3 定义属性定义属性(1 1)策略与启发)策略与启发按常识这个对象应该有哪些属性?按常识这个对象应该有哪些属性?人人姓名、地址、出生年月姓名、地址、出生年月在当前的问题域中,对象应该有哪些属性?在当前的问题域中,对象应该有哪些属性?商品商品条形码条形码根据系统责任,这个对象应具有哪些属性?根据系统责任,这个对象应具有哪些属性?乘客乘客手机号码手机号码建立这个对象是为了保存和管理哪些信息?建立这个对象是为了保存和管理哪些信息?物资物资型号、规格、库存量型号、规格、库存量为实现操作的功能,需要增设哪些属性?为实现操作的功能,需要增设哪些属性?传感器(信号采集功能)传感器(信号采集功能)时

39、间间隔时间间隔是否需要增加描述对象状态的属性?是否需要增加描述对象状态的属性?设备设备状态状态 用什么属性表示关联和聚合?用什么属性表示关联和聚合?课程课程任课教师,汽车任课教师,汽车发动机发动机(2)审查与筛选)审查与筛选是否体现了以系统责任为目标的抽象是否体现了以系统责任为目标的抽象例:书例:书重量?重量?是否描述对象本身的特征是否描述对象本身的特征例:课程例:课程电话号码?电话号码?是否可通过继承得到?是否可通过继承得到?是否可从其他属性直接导出?是否可从其他属性直接导出?(3)推迟到)推迟到OOD考虑的问题考虑的问题规范化问题规范化问题对象标识对象标识性能问题性能问题(4)属性的命名与

40、定位)属性的命名与定位命名:原则与类的命名相同命名:原则与类的命名相同定位:针对所描述的对象定位:针对所描述的对象适合类(及其子类)的全部对象实例适合类(及其子类)的全部对象实例(1 1)对象行为分类)对象行为分类系统行为系统行为例:创建、删除、复制、转存例:创建、删除、复制、转存对象自身的行为对象自身的行为算法简单的操作算法简单的操作例:读、写属性值例:读、写属性值对象自身的行为对象自身的行为算法复杂的操作算法复杂的操作计算或监控计算或监控7.4 7.4 定义操作定义操作考虑系统责任考虑系统责任有哪些功能要求在本对象提供?有哪些功能要求在本对象提供?考虑问题域考虑问题域对象在问题域对应的事物

41、有哪些行为?对象在问题域对应的事物有哪些行为?分析对象状态分析对象状态对象状态的转换是由哪些操作引起的?对象状态的转换是由哪些操作引起的?追踪操作的执行路线追踪操作的执行路线模拟操作的执行,并在整个系统中跟踪模拟操作的执行,并在整个系统中跟踪(2)策略与启发)策略与启发审查对象的每个操作是否真正有用审查对象的每个操作是否真正有用是否直接提供系统责任所要求的某项功能?是否直接提供系统责任所要求的某项功能?或者或者 响应其它操作的请求间接地完成这种功能响应其它操作的请求间接地完成这种功能的某些局部操作?的某些局部操作?调整调整取消无用的操作取消无用的操作审查操作是不是高内聚的审查操作是不是高内聚的

42、一个操作应该只完成一项单一的、完整的功能一个操作应该只完成一项单一的、完整的功能调整调整拆分拆分 或或 合并合并(3 3)审查与调整)审查与调整考虑问题域考虑问题域对象行为是被引发的,对象行为是被引发的,还是主动呈现的?还是主动呈现的?(4 4)认识对象的主动行为)认识对象的主动行为操作执行路线逆向追踪操作执行路线逆向追踪与参与者直接交互的对象操作与参与者直接交互的对象操作问题:分析阶段为什么要给出操作流程?问题:分析阶段为什么要给出操作流程?关于关于OOA/OOD分工的两种不同观点分工的两种不同观点(5)操作过程描述)操作过程描述可采用流程图或活动图可采用流程图或活动图yesno动作陈述框,

43、在框内动作陈述框,在框内填写要执行的动作。填写要执行的动作。条件判断框,给出一条件判断框,给出一个判断条件。个判断条件。转接,用于连接各个框,转接,用于连接各个框,表示它们之间的转接关系。表示它们之间的转接关系。入口入口/出口标记,指出出口标记,指出操作的开始或结束。操作的开始或结束。流程图:流程图:活动图:在流程图基础上进行了一些扩展,活动图:在流程图基础上进行了一些扩展,有更强的描述能力(第有更强的描述能力(第9章介绍)章介绍)命名:动词或动宾结构命名:动词或动宾结构定位:定位:与实际事物一致与实际事物一致例:售货员例:售货员售货,商品售货,商品售出售出在一般在一般-特殊结构中的位置特殊结

44、构中的位置适合类的全部对象实例适合类的全部对象实例(6)操作的命名和定位)操作的命名和定位商品商品售出售出从主语从主语-谓语谓语-宾语结构看对象操作的设置宾语结构看对象操作的设置“售货员销售商品售货员销售商品”操作应该放在哪里?操作应该放在哪里?售货员售货员售货售货call7.5 接口的概念及用途接口的概念及用途早期的面向对象方法并没有把接口作为正式的早期的面向对象方法并没有把接口作为正式的OO概念概念 和系统成分,只是用来解释和系统成分,只是用来解释OO概念概念“操作是对象(类)对外提供的访问接口操作是对象(类)对外提供的访问接口”20世纪世纪90年代中后期,接口才作为一种系统成分出现年代中

45、后期,接口才作为一种系统成分出现在在OOPL中,并且被中,并且被UML作为一种模型元素作为一种模型元素UML对接口的定义及解释:对接口的定义及解释:“接口(接口(interface)是一种类目(是一种类目(classifier),它,它表示对一组紧凑的公共特征和职责的声明。一个接表示对一组紧凑的公共特征和职责的声明。一个接口说明了一个合约;实现接口的任何类目的实例必口说明了一个合约;实现接口的任何类目的实例必须履行这个合约。须履行这个合约。”“一个给定的类目可以实现多个接口,而一个接口一个给定的类目可以实现多个接口,而一个接口可以由多个不同的类目来实现。可以由多个不同的类目来实现。”(1)一个

46、用况只描述参与者对单独一项系统功能的使用情况;在书店管理系统中以一种书作为一个对象实例自然语言与形式化语言结合使用*“依赖:两个建模元素之间的一种关系,其中一个建模元素(独立元素)的一个改变将影响到另一个建模元素(依赖元素)。主要成分是类规约(class specification),即对每个类的详细说明。问题:对象的属性与操作定义在系统运行中动态变化,例如:“对象生命期中的一种条件或者情形,在此期间它满足某些条件,执行某些活动,或者等待某些事件。(1)带有属性和操作的关联整体-部分(whole-part)关联端点的修饰在UML2的变化定义2:如果类A的全部对象都是类B的对象,而且类B中存在不

47、属于类A的对象,则A是B的特殊类,B是A的一般类。由系统管理或使用其信息,或者在系统中呈现某些行为的各类组织UML对各种箭头的用法现实生活中人或其他事物之间传递的信息,例如:第10章 模型规约(自学)组合(composition)是聚合关系的一种特殊情况,它表明整体对于部分的强拥有关系,即整体与部分之间具有紧密、固定的组成关系。系统是由一条边界包围起来的未知空间体现了控制流之间的通信关系responsibility以面向对象方法为核心,以其他模型图作为补充交互概览图采用活动图的构造方式把多个交互组织到一个图中。为什么引入接口的概念为什么引入接口的概念售货员售货员商品商品采购员采购员callca

48、ll针对不同的应用场合组织对象的操作针对不同的应用场合组织对象的操作售货员售货员商品商品销售销售采购员采购员采购采购把与销售有关把与销售有关的操作组织成的操作组织成销售接口销售接口把与采购有关把与采购有关的操作组织成的操作组织成采购接口采购接口可替换(例如根据销可替换(例如根据销售策略的变化开发一售策略的变化开发一个新的商品类)个新的商品类)接口提供了更灵活的衔接机制接口提供了更灵活的衔接机制接口(接口(interface)是由一组操作所形成的一个集合,它由一个名字和代表其是由一组操作所形成的一个集合,它由一个名字和代表其中每个操作的特征标记构成。中每个操作的特征标记构成。特征标记(特征标记(

49、signature)代表了一个操作,但并不具体地定义操作的实现代表了一个操作,但并不具体地定义操作的实现特征标记特征标记:=(:,:):interface接口名称接口名称操作操作1()()操作操作n()()表示法(详细方式):表示法(详细方式):接口与类的关系接口与类的关系接口由某些类实现(提供),被另外某些类使用(需要)接口由某些类实现(提供),被另外某些类使用(需要)前者与接口的关系称为实现前者与接口的关系称为实现(realization)后者与接口的关系称为后者与接口的关系称为使用使用(use)interface销售销售查询()查询()售出()售出()售货员售货员商品商品使用使用实现实现

50、同一个接口同一个接口 对实现者而言是供接口(对实现者而言是供接口(provided interface)对使用者而言是需接口(对使用者而言是需接口(required interface)表示法(简略方式):表示法(简略方式):托球托球-托座托座使用者使用者提供者提供者提供者的供接口(托球)提供者的供接口(托球)使用者的需接口(托座)使用者的需接口(托座)售货员售货员商品商品销售销售例:例:interface销售销售查询()查询()售出()售出()售货员售货员商品商品在一个类上可以画出它所有的供接口和需接口在一个类上可以画出它所有的供接口和需接口类类供接口供接口需接口需接口一个接口可以由多个类使

侵权处理QQ:3464097650--上传资料QQ:3464097650

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


163文库-Www.163Wenku.Com |网站地图|