《2022年面向对象分析[整 .pdf》由会员分享,可在线阅读,更多相关《2022年面向对象分析[整 .pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、面向对象分析例:需求陈述(电梯的控制问题)在一幢有m层楼的大厦中需要一套控制n 部电梯的产品,要求这n 部电梯根据下列约束条件在楼层间移动。C1:每部电梯有 m 个按钮,每个按钮代表一个楼层。当按下一个按钮时该按钮指示灯亮,同时电梯驶向相应的楼层,当到达由按钮指定的楼层时指示灯熄灭。C2:除了大厦的最低层和最高层之外,每层楼都有两个按钮分别指示电梯上行和下行。当这两个按钮之一被按下时相应的指示灯亮,当电梯到达此楼层时灯熄灭,电梯向要求的方向移动。 C3:当电梯无升降动作时,关门并停在当前楼层。1建立对象模型面向对象分析的第一步是构造对象模型。在这个步骤中将抽象出类和它的属性,并用对象模型图描绘
2、类&对象及它们彼此之间的关系。为了抽象出问题域中包含的类,可用下述三个过程产生候选类,并对所得到的结果加以精化:精确地定义问题: 应该尽可能简洁地定义所需要的产品,最好只用一句话来描述目标系统。对电梯系统可以这样描述:在一个m 层楼的大厦里,用每层楼的按钮和电梯内的按钮来控制n部电梯的移动。提出非形式化策略非形式化描述:在一幢 m层楼的大厦里, 用电梯内的和每个楼层的按钮来控制n 部电梯的运行。当按下电梯按钮以请求在某一指定楼层停下时,按钮指示灯亮;当请求获得满足时,指示灯熄灭。当电梯无升、降操作时,关门,并停在当前楼层。标识候选类:三个候选类电梯、按钮和门,按钮的两个子类电梯按钮和楼层按钮。
3、把策略形式化:在以上这段描述非形式化策略的文字中,共有八个不同的名词:按钮、电梯、楼层、运动、大厦、指示灯、请求和门。这些名词所代表的事物可作为类的初步候选者。其中,楼层和大厦是处于问题边界之外的,因此可以忽略;运动、指示灯、请求和门可以作为其他类的属性,例如,指示灯(的状态 )可作为按钮类的属性, 门(的状态 )可作为电梯类的属性。 经过上述筛选后只剩下两个候选类,即电梯和按钮。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - -
4、2建立动态模型实现方法:编写脚本的目的是, 决定每个类该做的操作。 达到这个目的一种有效的方法是列出用户和系统之间相互作用的典型情况,即写出脚本(包括正常情况脚本和异常情况脚本)。表 7.4和表 7.5分别是正常情况脚本和异常情况脚本。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - 画状态转换图:电梯控制器是在电梯系统中起核心控制作用的类,我们将画出这个类的状态转换图。为简单起见,仅考虑一部电梯(即 n=1)的情况。电梯控制器的动态模型,读者可对照电梯系统的脚本来理解它。3建立功能模型名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -