- 5
- 0
- 约5.96万字
- 约 706页
- 2016-11-29 发布于湖南
- 举报
第10章 面向对象分析 10.1 面向对象分析的基本过程 10.1.1 概述 面向对象分析从分析描写用户需求的文件开始。 用户单方书写的需求; 系统分析员配合用户书写的需求; 项目标书中书写的需求。 10.1.2 3个子模型与5个层次 主题层 类与对象层 结构层 属性层 服务层 复杂问题的对象模型的5个层次 (对应5项活动:找出类与对象、识别结构、识别主题、定义属性、定义服务。) 3个子模型: 对象模型(静态结构); 动态模型(交互次序); 功能模型(数据变换)。 面向对象分析大体上按照下列顺序进行:寻找类与对象、识别结构、识别主题、定义属性、建立动态模型、建立功能模型、定义服务。 10.1.3 UML面向对象分析与设计一般过程 UML是OO思想的一种表现形式, “OO是神,而UML是型”; 以CMS(内容管理系统)为例: “内容”包括文件、表格、图片、数据库中的数据,甚至图片、动画、视频等一切要发布到 网站的信息。 内容管理系统是一种位于Web 服务器和后端办公系统或流程(内容创作、编辑)之间的软件系统。重点解决各种数字资源的采集、管理、利用、传递和增值。内容的创作人员、编辑人员、发布人员使用内容管理系统来提交、修改、审批、发布内容。 9.4 对象模型 9.4.1 类图的基本符号 1. 定义类 类名 属性 服务 图9.5 表示类的图形符号 2. 定义属性 UML描述属性的语法格式: 可见性 属性名:类型名=初值{性质串} 可见性:公有(public)/ +、私有(private)/-、保护(protected)/# (没有默认可见性) {性质串}:可能枚举值或其它性质,如{只读} 例:-管理员:String=“未定” 类变量实例:-货单数:Integer (类变量在该类所有对象中的属性值相等) 3. 定义服务(操作) UML描述操作的语法格式: 可见性 操作名(参数表):返回值类型{性质串} 参数的语法: 参数名:类型名=默认值 -Show(x:integer=0, y :integer, z :integer):integer 9.4.2 表示关系的符号 1. 关联 1)普通关联 作家 计算机 使用 被使用 * 1…* 图9.6 普通关联示例 重数(multiplicity)的表示方法: 0…1 表示 0到1个对象; 0…* 或* 表示 0到多个对象; 1+ 或1…* 表示 1到多个对象; 1…15 表示 1到15个对象; 3 表示 3个对象。 2)关联的角色 人 结婚 丈夫 妻子 图9.7 关联的角色 上图是一个递归关联的例子。 这种情况下,标明角色名有助于理解类图。 3)限定关联 目录 文件 文件名 图9.8 限定关联 目录 文件 保存 被保存 1…* 普通关联 利用限定词把一对多关系简化成了一对一关系。 4)关联类 队列 电梯控制器 电梯 按钮 4 * 图9.9 关联类示例 控制器对象和电梯对象之间的连接,对应着一个队列(对象),它存储着控制器和电梯内部按钮的请求信息。 聚集表示类与类之间是整体与部分的关系。 2. 聚集 1)共享聚集 课题组 人 成员 * 1…* 图9.10 共享聚集示例 处于部分方的对象可同时参与多个处于整体方对象的构成。 部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也随之消失。 2)组合聚集 教材 描绘教材结构的对象模型(组合聚集) 封面 前言 1+ 1+ 目录 章 节 习题 包含 包含 例子: 3. 泛化(继承) 1)普通泛化 抽象类:描述子类的公共属性和行为,不能生成具体对象的类。 一个比较复杂的类图示例: 2)受限泛化 给泛化关系(继承关系)附加约束条件,说明该泛化关系的使用方法和扩充方法。 约束有:多重、不相交、完全和不完全。 多重继承:一个子类可以同时多次继承同一个上层基类。 不相交继承:一个子类不能多次继承同一个上层基类。 (默认为不相交继承) 完全继承:指父类的所有子类都已经在类图中穷举出来了。 不完全继承:指父类的所有子类并没有在类图中穷举出来了。 随着对问题理解的深入,不完全继承中可以不断扩充子类。 (默认为不完全继承) 4. 依赖和细化 1)依赖关系 类B 类A 《友元》 图9.15 友元依赖关系
原创力文档

文档评论(0)