面向对象分析与设计分析课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《面向对象分析与设计分析课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 分析 设计 课件
- 资源描述:
-
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、的特征及相互关系 听取问题域专家的见解听取问题域专家的见解领域专家领域专家包括技术人员、管理者、老职员和包括技术人员、管理者、老职员和富有经验的工人等富有经验的工人等阅读相关材料阅读相关材料阅读各种与问题域有关的材料,学习相关行业和阅读各种与问题域有关的材料,学习相关行业和领域的基本知识领域的基本知识借鉴以往的系统借鉴以往的系统查阅以往在该问题域中开发过的同类系统的分析查阅以往在该问题域中开发过的同类系统的分析文档文档,吸取经验,发现可以复用的类,吸取经验,发现可以复用的类 正确地运用抽象原则正确地运用抽象原则对什么进行抽象对什么进行抽象问题域问题域当前目标当前目标系统责任系统责任忽略与系统责
展开阅读全文