依赖关系关联关系继承关系聚合关系
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
从对象抽象类
依据对象和类的定义,使用概括来寻找两个或多 个具有相同属性和操作的对象,概括这些共同的 方面以形成类。
例:对SafeHome问题初步确定的对象类:
系统 显示窗口 控制功能键 传感器
警报器
电话
传感器事件
对类进行调整
1)如果类的属性或操作不适合该类的全部对象, 则应考虑重新划分类。
例如:如果在Safehome中设置控制台类,则显示窗口 和控制键,其中的属性不适用于窗口和控制键两者。
Step1 提取名词、代词和名词短语
Step2 整理归并
系统、房主、系统控制窗口、键盘功能键、提示信息、
系统状态、安装过程、配置系统、系统运行、
系统连接的传感器、编号、类型、位置信息、事件性质、
系统启动、系统关闭、主人密码、传感器事件、电话、
系统上的警报器、设定的时间延时、设定的电话号码
分析筛选对象策略
注:没有属性而有操作的对象类是经常需要 的,例如:超类。
分析筛选对象策略
策略3 将对象推迟到设计阶段考虑
系统责任要求的某些功能与实现环境有关,应 该把这样的功能所涉及的对象,推迟到设计阶段 去考虑,OOA模型应独立于具体的实现环境。
例如:在Safehome中,为系统控制窗口对象而设定的具 体对象,包括窗口对象、对话框对象、下拉采单对象、 按钮对象、等等,应该到设计时再考虑。
4)如果两个类的属性有重复,并且有附属关系, 则可以考虑合并为一个主要的类。
例1:工作证类和职员类,如果在特定的问题中,工作证除了 “编号”以外的属性,其他属性都与职员类属性一致,则可以考 虑将“编号”合并到职员类中,去掉工作证类。 例2:在Safehome中,如果不需要保留每次传感器发生事件的记 录,则可以考虑将传感器事件类合并到传感器类中。
类属性及识别筛选策略
• 类的实例属性和类属性
实例属性定义:类的构成元素,用于描述类所 对应的事物的一个性质。 类属性定义:类属性是描述一个类的所有对象 的共同性质的一个数据项,对于该类的任何对 象,它的属性值是相同的。
在特定的问题中,有些个体同时具备某些不同的性质, 和共同的性质。例如:一个仪表测试系统中,每台仪表 的输入电压、功率及质量指标都是相同的,但每台仪表 的编号、精度和实际达到的性能值却不同。
分析筛选对象策略
策略2 精简对象 1) 如果对象只有一个属性,但没有操作,应 考虑它被哪些别的对象引用,能否合并到 那些对象中。
例1:在Safehome中,如果设立主人对象,只有“密码”一个 属性,在启动和关闭系统时通过引用主人对象来执行其必 要的操作,这样如果把“主人密码”作为一个属性,增加 到系统对象中,实际上会更明确和简便,没有必要设立主 人对象。 例2:班主任对象,在班级中需要引用班主任姓名属性,除此 以外没有别的地方需要班主任姓名属性了,那么就可以把 班主任姓名作为属性放到班级对象中。
识别对象举例1:家庭安全系统(SafeHome)
问题陈述:
系统由房主在安装时配置,通过系统控制窗口和键盘功 能与房主交互进行。系统可以监控所有连接的传感器。 在安装过程中,每个传感器可以设置编号和类型,系统 的启动和关闭必须有主人密码控制;传感器事件发生时, 软件激活系统上的警报器,在设定的时间延时后,软件自 动拨打设定的电话号码,并提供位置信息和事件性质,电 话号码将每隔20秒重拨一次,直至电话接通。 系统运行时,系统控制窗口显示提示信息和系统状态。 通过键盘可以控制系统运行。
Biblioteka Baidu
对象筛选例:SafeHome
可能的操作: 可能的属性: 可能有用的对象:
安装过程 配置系统 系统运行 系统启动 系统关闭 提示信息 系统状态显示
不必要的类: 房主
传感器编号 传感器类型 位置信息 事件性质 主人密码 时间延时 电话号码 系统状态
系统 控制窗口 键盘功能键 传感器 传感器事件 警报器 电话
目录
3.1 面向对象的分析
3.2 UML简介
3.3 UML常用的图
用例图
类图
交互图、状态图、包图
类图和对象建模
• 类图描述系统中各个对象之间存在的关系,表 达系统的静态结构,也叫做“对象建模”。建 立类图是系统建模过程中最重要的部分。 • 类图的基本图元素:类以及类之间的关系
2)如果属性及操作都相同,即使不是同类,应该 考虑重新划分。
例如:计算机和吸尘器,虽然不是相同的类,但在商 店销售系统中,它们的属性和操作并无差别。
对类进行调整
3)如果不同类有很多相同的属性及操作,则应考 虑提取超类,使用继承。
例如:在Safehome中,烟雾传感器、热敏传感器和触点传感器, 其中很多属性和操作是相同的,可以提取传感器作为超类,用继 承作为类之间的联系。
分析筛选对象策略
策略2 精简对象 2)如果一个对象只有一个操作,而没有属性, 并且系统中只有一个类的对象请求这个操 作,可以考虑把该对象合并到它的请求对 象中。
例如:格式转换器,只有一个操作“文件格式转换”, 它没有属性。并且这个操作只有输出设备对象使 用,因此可以不设格式转换器类,把它的操作放 到输出设备对象中。
类名
XXX→ 1:1 1:1
类名
XXX → 1:1 1:m
类名
属性
操作
属性
属性
操作
操作
类名
类名
类名
属性 操作
属性 操作
属性 操作
识别和筛选对象
• 识别方法1: 直接考虑现实问题中的对象,对应为系统中 的对象。 • 识别方法2: 在系统边界以外,发现与系统进行交互的参与 者,寻找系统处理相应交互的对象类。 • 识别方法3: 对照系统责任所要求的每项功能,查看是否可 以由现有的对象完成这些功能。
识别属性的启发性策略:
1)根据常识确定对象应用的基本属性;
例如:传感器属性,包括编号、类型、临界值、……
2)根据问题域,确定对象应该有的属性;
例如:传感器属性,在Safehome系统中,需要安装地 点、性质。 同样传感器属性,在设备管理系统中,需 要数量、购置时间。
策略1 舍弃无用的对象 1)舍弃对应于对象信息(属性)的词 : 某事物是对象所必须保存和管理的信息,它们 可能是属性。例如:传感器的编号和类型,可以 表明所发生事件的位置和性质。
2)舍弃对应于对象功能(操作)的词: 某对象提供的一些有用的操作,直接或间接地 反映了用户所需要的功能,它们可能是操作。例 如:系统的安装过程和拨打电话过程。