第十章OOA OOA的基本过程 需求陈述 建立对象模型 建立动态模型 建立功能模型 定义服务
第十章 OOA •OOA的基本过程 •需求陈述 •建立对象模型 •建立动态模型 •建立功能模型 •定义服务
OOA过程 OOA就是抽取和整理用户需求并建 立问题域精确模型的过程。该过程 可以分为三个步骤: 需求获取 抽象和整理用户需求 建立问题域的精确模型
OOA过程 • OOA就是抽取和整理用户需求并建 立问题域精确模型的过程。该过程 可以分为三个步骤: – 需求获取 – 抽象和整理用户需求 – 建立问题域的精确模型
对象的三要素(三个子模型) 静态结构——对象模型WHO 交互次序—动态模型_WHEN 数据变换——功能模型—WHAT
对象的三要素(三个子模型) • 静态结构——对象模型——WHO • 交互次序——动态模型——WHEN • 数据变换——功能模型——WHAT
对象建模的五个层次 主题层 类与对象层 结构层 属性层 服务层
对象建模的五个层次 • 主题层 • 类与对象层 • 结构层 • 属性层 • 服务层
对象建模的步骤 确定类与对象 对问题域概念的抽象 从需求陈述、招标书等中获取 标识结构,确定类和对象的关系 继承关系—整体与部分 聚合关系——一般与特殊(泛化与特化) 确定属性 识别类与对象所保存的信息 给出各个类与对象之间的实体连接(一对一、一对多等) 定义服务 即识别操作,并根据功能给出各个操作之间的消息连接 划分主题 即识别系统的高层模块或子系统
对象建模的步骤 • 确定类与对象 – 对问题域概念的抽象 – 从需求陈述、招标书等中获取 • 标识结构,确定类和对象的关系 – 继承关系——整体与部分 – 聚合关系——一般与特殊(泛化与特化) • 确定属性 – 识别类与对象所保存的信息 – 给出各个类与对象之间的实体连接(一对一、一对多等) • 定义服务 – 即识别操作,并根据功能给出各个操作之间的消息连接 • 划分主题 – 即识别系统的高层模块或子系统
需求陈述 需求陈述往往是非形式化的、不完整的、不 准确的。 需求陈述的内容 “做什么” 问题范围、功能和性能要求、应用环境及假设条件 书写需求陈述的要点 语法正确,语乂清晰 认识本质,强调重点 完整、准确、有效 例子(P209) 自动取款机(ATM)系统
需求陈述 • 需求陈述往往是非形式化的、不完整的、不 准确的。 • 需求陈述的内容 – “做什么” – 问题范围、功能和性能要求、应用环境及假设条件 等。 • 书写需求陈述的要点 – 语法正确,语义清晰 – 认识本质,强调重点 – 完整、准确、有效 • 例子(P209) – 自动取款机(ATM)系统
OOA—建立对象模型 建立OO模型的一般过程: 确定类和对象 确定关联 划分主题 确定属性 识别继承关系 反复修改和复审
OOA—建立对象模型 • 建立OO模型的一般过程: – 确定类和对象 – 确定关联 – 划分主题 – 确定属性 – 识别继承关系 – 反复修改和复审
确定类与对象 类与对象的发现原贝 可感知的物理实体,设备 人、组织角色或组织单元,如医生、财务处 需要记忆的事件,如飞行、演出、访问 对象间的相互作用和操作过程,如购买、纳税等 需要说明的概念,如政策、法规 发挥的作用、地点等 种非正式的分析方法 把陈述中的名词作为类与对象的候选者 形容词作为确定属性的线索 动词作为服务的候选者 注意需求陈述中隐含的类与对象
确定类与对象 • 类与对象的发现原则 – 可感知的物理实体,设备 – 人、组织角色或组织单元,如医生、财务处 – 需要记忆的事件,如飞行、演出、访问 – 对象间的相互作用和操作过程,如购买、纳税等 – 需要说明的概念,如政策、法规 – 发挥的作用、地点等 • 一种非正式的分析方法 – 把陈述中的名词作为类与对象的候选者 – 形容词作为确定属性的线索 – 动词作为服务的候选者 • 注意需求陈述中隐含的类与对象
确定类与对象(续) 自动取款机(AM)系统所确定的“类 与对象”见P211 注意需求隐含的类与对象“通讯链路”、 “事务日志
确定类与对象(续) • 自动取款机(ATM)系统所确定的“类 与对象”见P211。 • 注意需求隐含的类与对象“通讯链路”、 “事务日志
确定类和对象(续) 剔除原则 冗余的 无关的 笼统的 有些名词实际上描述的是其它对象的属性 区分操作、公共服务与类定义的名词和动词 暂缓考虑设计阶段的内容
确定类和对象(续) • 剔除原则 – 冗余的 – 无关的 – 笼统的 – 有些名词实际上描述的是其它对象的属性 – 区分操作、公共服务与类定义的名词和动词 – 暂缓考虑设计阶段的内容