《《面向对象分析 》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《面向对象分析 》PPT课件.ppt(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第1010章章 面向对象分析面向对象分析计算机与信息工程学院计算机与信息工程学院梁梁 颖颖面向对象分析面向对象分析10.110.110.110.1面向对象分析的基本过程面向对象分析的基本过程10.210.210.210.2建立对象模型建立对象模型10.310.310.310.3建立动态模型建立动态模型10.410.410.410.4建立功能模型建立功能模型10.510.510.510.5定义服务定义服务本章小结本章小结10.610.610.610.6面向对象分析面向对象分析10.1 10.1 面向对象分析的基本过程面向对象分析的基本过程抽取和整理用户需求并建立问题域抽取和整理用户需求并建立问
2、题域精确模型的过程精确模型的过程实施过程:实施过程:需求需求需求需求陈述陈述陈述陈述实际需求实际需求实际需求实际需求分析模型分析模型分析模型分析模型面向对象设计阶段面向对象设计阶段面向对象设计阶段面向对象设计阶段要点面向对象分析面向对象分析10.1 10.1 面向对象分析的基本过程面向对象分析的基本过程 3 3个子模型个子模型 和和 5 5个层次个层次 对象模型 动态模型 功能模型主题层主题层类与对象层类与对象层结构层结构层属性层属性层服务层服务层面向对象分析面向对象分析10.1 10.1 面向对象分析的基本过程面向对象分析的基本过程 寻找类与对象寻找类与对象寻找类与对象寻找类与对象 识别结构
3、识别结构识别结构识别结构 识别主题识别主题识别主题识别主题 定义属性定义属性定义属性定义属性 建立动态模型建立动态模型建立动态模型建立动态模型 建立功能模型建立功能模型建立功能模型建立功能模型 定义服务定义服务定义服务定义服务(1 1)BoochBooch方法方法识别类与对象识别类与对象识别类与对象识别类与对象;识别类与对象的语义识别类与对象的语义识别类与对象的语义识别类与对象的语义;识别类与对象识别类与对象识别类与对象识别类与对象之间的关系之间的关系之间的关系之间的关系;实现类与对象。实现类与对象。实现类与对象。实现类与对象。(2 2)RumbaughRumbaugh的的OMTOMT方法方法
4、分析分析分析分析(建立现实世界模型建立现实世界模型建立现实世界模型建立现实世界模型););););系统设计系统设计系统设计系统设计(目标系统分解为目标系统分解为目标系统分解为目标系统分解为子系统子系统子系统子系统););););对象设计对象设计对象设计对象设计(对三类模型添加实现细节对三类模型添加实现细节对三类模型添加实现细节对三类模型添加实现细节););););编程编程编程编程实现。实现。实现。实现。(3 3)JacobsonJacobson方法方法(涉及整个软件生命周期涉及整个软件生命周期涉及整个软件生命周期涉及整个软件生命周期)需求分析需求分析需求分析需求分析(定义潜在角色、发现用例、详
5、细描述用例定义潜在角色、发现用例、详细描述用例定义潜在角色、发现用例、详细描述用例定义潜在角色、发现用例、详细描述用例););););设计设计设计设计(发现设计对象、调整设计模型发现设计对象、调整设计模型发现设计对象、调整设计模型发现设计对象、调整设计模型););););实现实现实现实现;测试测试测试测试(4 4)Coad/YourdonCoad/Yourdon方法方法发现类及对象发现类及对象发现类及对象发现类及对象;识别结构识别结构识别结构识别结构;识别主题识别主题识别主题识别主题;定义属性定义属性定义属性定义属性;定义服务定义服务定义服务定义服务面向对象分析面向对象分析10.110.110
6、.110.1面向对象分析的基本过程面向对象分析的基本过程10.210.210.210.2建立对象模型建立对象模型10.310.310.310.3建立动态模型建立动态模型10.410.410.410.4建立功能模型建立功能模型10.510.510.510.5定义服务定义服务本章小结本章小结10.610.610.610.6面向对象分析面向对象分析10.2 10.2 建立对象模型建立对象模型 需求陈述需求陈述需求陈述需求陈述 见见见见P234P234P234P234例子例子例子例子 确定类与对象确定类与对象确定类与对象确定类与对象 确定关联确定关联确定关联确定关联 划分主题划分主题划分主题划分主题
7、确定属性确定属性确定属性确定属性 识别继承关系识别继承关系识别继承关系识别继承关系 反复修改反复修改反复修改反复修改 找出候选的类与对象;找出候选的类与对象;筛选出正确的类与对象。筛选出正确的类与对象。初步确定关联;初步确定关联;筛选;筛选;进一步完善。进一步完善。分析分析+选择选择 自底向上自底向上(归纳思维归纳思维);自顶向下自顶向下(演绎思维演绎思维)。定义;使用范围;定义;使用范围;划分依据;原则划分依据;原则面向对象分析面向对象分析随堂练习随堂练习(一):请建立下述的图书馆馆:请建立下述的图书馆馆藏出版物的对象模型。藏出版物的对象模型。一家图书馆藏有书籍、杂志、小册子、电影一家图书馆
8、藏有书籍、杂志、小册子、电影一家图书馆藏有书籍、杂志、小册子、电影一家图书馆藏有书籍、杂志、小册子、电影录影带、音乐录影带、音乐录影带、音乐录影带、音乐CDCD、录音图书磁带和报纸等出、录音图书磁带和报纸等出、录音图书磁带和报纸等出、录音图书磁带和报纸等出版物供读者借阅。这些出版物有出版物名、版物供读者借阅。这些出版物有出版物名、版物供读者借阅。这些出版物有出版物名、版物供读者借阅。这些出版物有出版物名、出版者、获得日期、目录编号、书架位置、出版者、获得日期、目录编号、书架位置、出版者、获得日期、目录编号、书架位置、出版者、获得日期、目录编号、书架位置、借出状态和借出限制等属性,并有借出、收借
9、出状态和借出限制等属性,并有借出、收借出状态和借出限制等属性,并有借出、收借出状态和借出限制等属性,并有借出、收回等服务。回等服务。回等服务。回等服务。面向对象分析面向对象分析随堂练习随堂练习(一):请建立下述的图书馆馆:请建立下述的图书馆馆藏出版物的对象模型。藏出版物的对象模型。面向对象分析面向对象分析随堂练习随堂练习(二):用非正式分析法分析确:用非正式分析法分析确定下属杂货店问题中的对象。定下属杂货店问题中的对象。一家杂货店想使其库存管理自动化。这家杂一家杂货店想使其库存管理自动化。这家杂一家杂货店想使其库存管理自动化。这家杂一家杂货店想使其库存管理自动化。这家杂货店拥有能够记录顾客购买
10、的所有商品的名货店拥有能够记录顾客购买的所有商品的名货店拥有能够记录顾客购买的所有商品的名货店拥有能够记录顾客购买的所有商品的名称和数量的销售终端。顾客服务台也有类似称和数量的销售终端。顾客服务台也有类似称和数量的销售终端。顾客服务台也有类似称和数量的销售终端。顾客服务台也有类似的终端,以处理顾客的退货。它在码头有另的终端,以处理顾客的退货。它在码头有另的终端,以处理顾客的退货。它在码头有另的终端,以处理顾客的退货。它在码头有另一个终端处理供应商发货。肉食部和农产品一个终端处理供应商发货。肉食部和农产品一个终端处理供应商发货。肉食部和农产品一个终端处理供应商发货。肉食部和农产品部有终端用于输入
11、由于损耗导致的损失和折部有终端用于输入由于损耗导致的损失和折部有终端用于输入由于损耗导致的损失和折部有终端用于输入由于损耗导致的损失和折扣。扣。扣。扣。面向对象分析面向对象分析随堂练习随堂练习(二二-1):用非正式分析法分析确:用非正式分析法分析确定下属杂货店问题中的对象。定下属杂货店问题中的对象。一家杂货店想使其库存管理自动化。这家杂货店一家杂货店想使其库存管理自动化。这家杂货店一家杂货店想使其库存管理自动化。这家杂货店一家杂货店想使其库存管理自动化。这家杂货店拥有能够记录顾客购买的所有商品的拥有能够记录顾客购买的所有商品的拥有能够记录顾客购买的所有商品的拥有能够记录顾客购买的所有商品的名称
12、名称名称名称和和和和数量数量数量数量的的的的销售终端销售终端销售终端销售终端。顾客。顾客。顾客。顾客服务台服务台服务台服务台也有类似的终端,以处也有类似的终端,以处也有类似的终端,以处也有类似的终端,以处理顾客的退货。它在理顾客的退货。它在理顾客的退货。它在理顾客的退货。它在码头码头码头码头有另一个终端处理供应有另一个终端处理供应有另一个终端处理供应有另一个终端处理供应商发货。商发货。商发货。商发货。肉食部肉食部肉食部肉食部和和和和农产品部农产品部农产品部农产品部有终端用于输入由于有终端用于输入由于有终端用于输入由于有终端用于输入由于损耗损耗损耗损耗导致的损失和折扣。导致的损失和折扣。导致的损
13、失和折扣。导致的损失和折扣。问题域中的对象有问题域中的对象有:杂货店、库存、顾客、商杂货店、库存、顾客、商品、终端、退货、供应商、发货、肉食品、农品、终端、退货、供应商、发货、肉食品、农产品、损失、折扣产品、损失、折扣面向对象分析面向对象分析随堂练习随堂练习(二-2):确定所述杂货店问题中:确定所述杂货店问题中对象类之间可能有的继承关系。对象类之间可能有的继承关系。问题域中的对象问题域中的对象:杂货店、库存、顾客、商品、终端、杂货店、库存、顾客、商品、终端、退货、供应商、发货、肉食品、农产品、损失、折扣退货、供应商、发货、肉食品、农产品、损失、折扣面向对象分析面向对象分析随堂练习随堂练习(二-
14、3):确定所述杂货店问题中的对:确定所述杂货店问题中的对象模型。象模型。面向对象分析面向对象分析10.110.110.110.1面向对象分析的基本过程面向对象分析的基本过程10.210.210.210.2建立对象模型建立对象模型10.310.310.310.3建立动态模型建立动态模型10.410.410.410.4建立功能模型建立功能模型10.510.510.510.5定义服务定义服务本章小结本章小结10.610.610.610.6面向对象分析面向对象分析10.3 10.3 建立动态模型建立动态模型认识动态模型认识动态模型表示瞬时的、行为化的系统的表示瞬时的、行为化的系统的“控制控制”性质,性
15、质,规定了对象模型中的对象的合法变化序列规定了对象模型中的对象的合法变化序列 反映在任何时刻对象及其关系的改变反映在任何时刻对象及其关系的改变反映在任何时刻对象及其关系的改变反映在任何时刻对象及其关系的改变 涉及系统时序和改变状况用动态模型来描述涉及系统时序和改变状况用动态模型来描述涉及系统时序和改变状况用动态模型来描述涉及系统时序和改变状况用动态模型来描述 动态模型着重于系统的控制逻辑动态模型着重于系统的控制逻辑动态模型着重于系统的控制逻辑动态模型着重于系统的控制逻辑 它包括两个图:状态图和事件跟踪图它包括两个图:状态图和事件跟踪图它包括两个图:状态图和事件跟踪图它包括两个图:状态图和事件跟
16、踪图面向对象分析面向对象分析10.3 10.3 建立动态模型建立动态模型(1 1 1 1)编写典型交互行为的脚本;)编写典型交互行为的脚本;)编写典型交互行为的脚本;)编写典型交互行为的脚本;(2 2 2 2)从脚本中提取事件,确定触发每个)从脚本中提取事件,确定触发每个)从脚本中提取事件,确定触发每个)从脚本中提取事件,确定触发每个事件的动作对象及接受事件的目标对象;事件的动作对象及接受事件的目标对象;事件的动作对象及接受事件的目标对象;事件的动作对象及接受事件的目标对象;(3 3 3 3)排列事件发生的次序,确定对象可)排列事件发生的次序,确定对象可)排列事件发生的次序,确定对象可)排列事
17、件发生的次序,确定对象可能有的状态及状态间的转换关系,并用状能有的状态及状态间的转换关系,并用状能有的状态及状态间的转换关系,并用状能有的状态及状态间的转换关系,并用状态图描绘它们;态图描绘它们;态图描绘它们;态图描绘它们;(4 4 4 4)检查各对象状态图的一致性,确保)检查各对象状态图的一致性,确保)检查各对象状态图的一致性,确保)检查各对象状态图的一致性,确保事件之间的匹配。事件之间的匹配。事件之间的匹配。事件之间的匹配。脚本脚本脚本脚本事件跟踪图事件跟踪图事件跟踪图事件跟踪图状态图状态图状态图状态图面向对象分析面向对象分析10.3.1 10.3.1 编写脚本编写脚本 描述事件序列描述事
18、件序列描述事件序列描述事件序列Event=Activator+Receiver+ParametersEvent=Activator+Receiver+Parameters基本类型:基本类型:(1 1 1 1)正常情况脚本;)正常情况脚本;)正常情况脚本;)正常情况脚本;(2 2 2 2)特殊情况脚本(输入)特殊情况脚本(输入)特殊情况脚本(输入)特殊情况脚本(输入 输出取边界值时);输出取边界值时);输出取边界值时);输出取边界值时);(3 3 3 3)异常情况脚本)异常情况脚本)异常情况脚本)异常情况脚本(应允许用户异常中止或取消应允许用户异常中止或取消应允许用户异常中止或取消应允许用户异常
19、中止或取消一个操作一个操作一个操作一个操作)。面向对象分析面向对象分析10.3.1 10.3.1 编写脚本编写脚本定义:定义:脚本是系统在某一执行期间内出现的一系脚本是系统在某一执行期间内出现的一系脚本是系统在某一执行期间内出现的一系脚本是系统在某一执行期间内出现的一系列事件列事件列事件列事件目的:目的:不遗漏用户与系统的重要交互步骤,确保不遗漏用户与系统的重要交互步骤,确保不遗漏用户与系统的重要交互步骤,确保不遗漏用户与系统的重要交互步骤,确保交互过程的正确性和清晰性交互过程的正确性和清晰性交互过程的正确性和清晰性交互过程的正确性和清晰性过程:过程:分析用户对系统交互行为的要求的过程分析用户
20、对系统交互行为的要求的过程分析用户对系统交互行为的要求的过程分析用户对系统交互行为的要求的过程对象:对象:事件序列。系统中的对象与用户交互信息事件序列。系统中的对象与用户交互信息事件序列。系统中的对象与用户交互信息事件序列。系统中的对象与用户交互信息时就发生一个事件。时就发生一个事件。时就发生一个事件。时就发生一个事件。面向对象分析面向对象分析面向对象分析面向对象分析10.3.2 10.3.2 画事件跟踪图画事件跟踪图(1 1)确定事件)确定事件(发送对象、事件、接收对象)(发送对象、事件、接收对象)(发送对象、事件、接收对象)(发送对象、事件、接收对象)事件:事件:包括系统与用户交互的所有信
21、号、输包括系统与用户交互的所有信号、输入、输出、中断、动作等。入、输出、中断、动作等。注意:正常事件、异常事件、出错条件注意:正常事件、异常事件、出错条件注意:正常事件、异常事件、出错条件注意:正常事件、异常事件、出错条件(2 2)画出事件跟踪图)画出事件跟踪图扩充的脚本、简化的扩充的脚本、简化的扩充的脚本、简化的扩充的脚本、简化的UMLUMLUMLUML顺序图顺序图顺序图顺序图表示事件序列以及事件与对象的关系表示事件序列以及事件与对象的关系表示事件序列以及事件与对象的关系表示事件序列以及事件与对象的关系面向对象分析面向对象分析事件事件 一个事件发生在某一时刻一个事件发生在某一时刻一个事件发生
22、在某一时刻一个事件发生在某一时刻 每个事件都是单独发生的每个事件都是单独发生的每个事件都是单独发生的每个事件都是单独发生的 建立事件类,并给每个事件一个名字,以指明共建立事件类,并给每个事件一个名字,以指明共建立事件类,并给每个事件一个名字,以指明共建立事件类,并给每个事件一个名字,以指明共同结构和行为同结构和行为同结构和行为同结构和行为 事件从一个对象向另一个对象传送消息事件从一个对象向另一个对象传送消息事件从一个对象向另一个对象传送消息事件从一个对象向另一个对象传送消息 有些事件类可能传送的是简单的信号有些事件类可能传送的是简单的信号有些事件类可能传送的是简单的信号有些事件类可能传送的是简
23、单的信号“要发生某要发生某要发生某要发生某件事件事件事件事”,而有些事件类则可能传送的是数据值,而有些事件类则可能传送的是数据值,而有些事件类则可能传送的是数据值,而有些事件类则可能传送的是数据值,由事件传送的数据值叫做属性。由事件传送的数据值叫做属性。由事件传送的数据值叫做属性。由事件传送的数据值叫做属性。如:列车出发(线路,班次,城市);如:列车出发(线路,班次,城市);如:列车出发(线路,班次,城市);如:列车出发(线路,班次,城市);按下鼠标按钮(按钮,位置)按下鼠标按钮(按钮,位置)按下鼠标按钮(按钮,位置)按下鼠标按钮(按钮,位置)面向对象分析面向对象分析事件跟踪图事件跟踪图 事件
24、跟踪图侧重于说明发生于系统执行过程事件跟踪图侧重于说明发生于系统执行过程中的特定场景。中的特定场景。场景也叫做脚本,是完成系统某个功能的一场景也叫做脚本,是完成系统某个功能的一个事件序列。个事件序列。场景通常起始于一个系统外部的输入事件,场景通常起始于一个系统外部的输入事件,结束于一个系统外部的输出事件,它可以包结束于一个系统外部的输出事件,它可以包含发生在这个期间的系统所有内部事件含发生在这个期间的系统所有内部事件面向对象分析面向对象分析事件跟踪图(举例)事件跟踪图(举例)打电话者拿起电话受话器电话忙音开始打电话者拨数字(8)电话忙音结束打电话者拨数字(2)打电话者拨数字(3)接电话者的电话
25、开始振铃铃声在打电话者的电话上传出接电话者回答接电话者的电话停止振铃铃声在打电话者的电话中消失通电话面向对象分析面向对象分析面向对象分析面向对象分析10.3.3 10.3.3 画状态图画状态图状态图描绘事件与对象状态的关系,确定了由状态图描绘事件与对象状态的关系,确定了由事件序列引出的状态序列事件序列引出的状态序列符号表示:符号表示:初态:实心圆初态:实心圆初态:实心圆初态:实心圆“”;终态:同心圆终态:同心圆终态:同心圆终态:同心圆“”中间状态:圆角矩形中间状态:圆角矩形中间状态:圆角矩形中间状态:圆角矩形“”构成要素:构成要素:事件:事件跟踪图中指向某条竖线的箭头线事件:事件跟踪图中指向某
26、条竖线的箭头线事件:事件跟踪图中指向某条竖线的箭头线事件:事件跟踪图中指向某条竖线的箭头线 状态:两个事件之间的间隔就是一个状态状态:两个事件之间的间隔就是一个状态状态:两个事件之间的间隔就是一个状态状态:两个事件之间的间隔就是一个状态 注意:覆盖所有脚本注意:覆盖所有脚本注意:覆盖所有脚本注意:覆盖所有脚本面向对象分析面向对象分析10.3.3 10.3.3 画状态图画状态图动态模型由多个状态图组成动态模型由多个状态图组成动态模型由多个状态图组成动态模型由多个状态图组成对于每一个具有重要动态行为的类都有一个状态图,从而对于每一个具有重要动态行为的类都有一个状态图,从而对于每一个具有重要动态行为
27、的类都有一个状态图,从而对于每一个具有重要动态行为的类都有一个状态图,从而表明所有系统活动的模式表明所有系统活动的模式表明所有系统活动的模式表明所有系统活动的模式各状态图并发地执行,并可以独立地改变状态各状态图并发地执行,并可以独立地改变状态各状态图并发地执行,并可以独立地改变状态各状态图并发地执行,并可以独立地改变状态各种类的状态图可以通过共享事件组合到一个动态模型中各种类的状态图可以通过共享事件组合到一个动态模型中各种类的状态图可以通过共享事件组合到一个动态模型中各种类的状态图可以通过共享事件组合到一个动态模型中面向对象分析面向对象分析面向对象分析面向对象分析10.3.4 10.3.4 审
28、查动态模型审查动态模型动态模型:动态模型:各个类的状态图通过共享事件合并起来构成各个类的状态图通过共享事件合并起来构成各个类的状态图通过共享事件合并起来构成各个类的状态图通过共享事件合并起来构成动态模型。动态模型。动态模型。动态模型。审查要素:审查要素:事件:应有发送对象和接收对象事件:应有发送对象和接收对象事件:应有发送对象和接收对象事件:应有发送对象和接收对象 状态:不能独立出现,重点审查没有前驱或状态:不能独立出现,重点审查没有前驱或状态:不能独立出现,重点审查没有前驱或状态:不能独立出现,重点审查没有前驱或后继的状态。后继的状态。后继的状态。后继的状态。注意:覆盖所有脚本注意:覆盖所有
29、脚本注意:覆盖所有脚本注意:覆盖所有脚本面向对象分析面向对象分析10.3.6 10.3.6 设想用户界面设想用户界面用户与系统交互:用户与系统交互:应用逻辑应用逻辑和和用户界面用户界面。系统内在的、本质的内容。动态模型着重表示应用系统的控制逻辑表现信息交互方式,可建立用户界面的原型,供用户试用与评价面向对象分析面向对象分析10.110.110.110.1面向对象分析的基本过程面向对象分析的基本过程10.210.210.210.2建立对象模型建立对象模型10.310.310.310.3建立动态模型建立动态模型10.410.410.410.4建立功能模型建立功能模型10.510.510.510.5
30、定义服务定义服务本章小结本章小结10.610.610.610.6面向对象分析面向对象分析10.4 10.4 功能模型功能模型 表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。面向对象分析面向对象分析10.4 10.4 功能模型功能模型 功能模型表明,通过计算从输入数据能得到什么功能模型表明,通过计算从输入数据能得到什么样的输出数据,不考虑参加计算的数据按什么时样的输出数据,不考虑参加计算的数据按什么时序执行。序执行。功能模型由多个数据流图组成,它们指明从外部功能模型由多个数据流图组成,它们指明从外部输入,通过操作如内部存储,直到外部输出,这输入
31、,通过操作如内部存储,直到外部输出,这整个的数据流情况。整个的数据流情况。功能模型中所有的数据流图往往形成一个层次结功能模型中所有的数据流图往往形成一个层次结构。在这个层次结构中,一个数据流图中的过程构。在这个层次结构中,一个数据流图中的过程可以由下一层的数据流图中作进一步的说明。可以由下一层的数据流图中作进一步的说明。分层的数据流图面向对象分析面向对象分析面向对象分析面向对象分析10.4 10.4 功能模型功能模型一般来讲,高层的过程相应于作用在聚合对象上一般来讲,高层的过程相应于作用在聚合对象上一般来讲,高层的过程相应于作用在聚合对象上一般来讲,高层的过程相应于作用在聚合对象上的操作,而低
32、层的过程则代表作用于一个简单对的操作,而低层的过程则代表作用于一个简单对的操作,而低层的过程则代表作用于一个简单对的操作,而低层的过程则代表作用于一个简单对象上的操作。象上的操作。象上的操作。象上的操作。数据流图中一般不提倡加带控制流。否则将与动数据流图中一般不提倡加带控制流。否则将与动数据流图中一般不提倡加带控制流。否则将与动数据流图中一般不提倡加带控制流。否则将与动态模型重复。态模型重复。态模型重复。态模型重复。面向对象分析面向对象分析10.110.110.110.1面向对象分析的基本过程面向对象分析的基本过程10.210.210.210.2建立对象模型建立对象模型10.310.310.310.3建立动态模型建立动态模型10.410.410.410.4建立功能模型建立功能模型10.510.510.510.5定义服务定义服务本章小结本章小结10.610.610.610.6面向对象分析面向对象分析10.5 10.5 定义服务定义服务 常规行为常规行为 从事件导出的操作从事件导出的操作 与数据流图中处理框对应的操作与数据流图中处理框对应的操作 利用继承减少冗余操作利用继承减少冗余操作 The End 面向对象分析面向对象分析