面向对象的分析与设计 Unified Process elaboration-2 Xiao ding tsEg
面向对象的分析与设计 Unified Process Elaboration - 2 Xiao ding TSEG
细化阶段:迭代2 设计模型 ■领域模型描述了概念类、属性、关联 用例模型表达了系统功能需求、系统事件和系统操作契约。 那么谁来完成系统的功能呢? 概念类转化到设计类(包括属性和关联) 设计类的职责是什么? 〉设计类如何协作处理系统事件、满足系统操作契约,并最终实现 系统功能来满足用例的需求? ■其中设计对象的职责非常关键。 GRaSP (General Responsibility Assignment Software Patterns) 是一种软件设计模式,称为对象职责分配模式
细化阶段:迭代2 设计模型 ◼ 领域模型描述了概念类、属性、关联 ◼ 用例模型表达了系统功能需求、系统事件和系统操作契约。 ◼ 那么谁来完成系统的功能呢? ➢ 概念类转化到设计类(包括属性和关联) ➢ 设计类的职责是什么? ➢ 设计类如何协作处理系统事件、满足系统操作契约,并最终实现 系统功能来满足用例的需求? ◼ 其中设计对象的职责非常关键。 ◼ GRASP(General Responsibility Assignment Software Patterns) 是一种软件设计模式,称为对象职责分配模式
细化阶段:迭代2 GRASP基于职责设计对象 ■职责和方法:职责是抽象,方法实现了职责 对象的职责分为两种类型: 了解型( knowing) 了解私有的封装数据; 了解相关联的对象; 了解能够派生或者计算的事物。Sale具有了解其销售总额的职责 行为型( doing) 自身执行一些行为,如创建一个对象或者进行计算; 启动其他对象中的动作 ·控制或协调其他对象中活动。Sale具有创建 Salelineltem对象的职责 方法是对象操作的实现,是完成对象职责的手段。职责既 可以由一个方法实现,也可以与其他方法或者对象协作实 现
细化阶段:迭代2 GRASP 基于职责设计对象 ◼ 职责和方法:职责是抽象,方法实现了职责 ➢ 对象的职责分为两种类型: ◼ 了解型(knowing) ⚫ 了解私有的封装数据; ⚫ 了解相关联的对象; ⚫ 了解能够派生或者计算的事物。 ◼ 行为型(doing) ⚫ 自身执行一些行为,如创建一个对象或者进行计算; ⚫ 启动其他对象中的动作; ⚫ 控制或协调其他对象中活动。 ◼ 方法是对象操作的实现,是完成对象职责的手段。职责既 可以由一个方法实现,也可以与其他方法或者对象协作实 现。 Sale具有了解其销售总额的职责 Sale具有创建SaleLineItem对象的职责
细化阶段:迭代2 职责与顺序图 顺序图体现了如何为对象分配职责:一个对象接收了某条 消息,表明该对象具备了处理该条消息的职责 职责的分配来源于顺序图,也就是说当绘制顺序图的时候 就是在决定职责的分配。 POS机 make Payment(cashTendered) create(cashTendered) :付款 “POS”机使用 makePayment 消息向“销售”发出请求,“销 售”在相应的 makePayment方 法中进行处理;完成这个职责还 职责 需要通过协作创建“付款”对象, 并调用其构造器
细化阶段:迭代2 职责与顺序图 ◼ 顺序图体现了如何为对象分配职责:一个对象接收了某条 消息,表明该对象具备了处理该条消息的职责。 ◼ 职责的分配来源于顺序图,也就是说当绘制顺序图的时候 就是在决定职责的分配。 “POS”机使用makePayment 消息向“销售”发出请求,“销 售”在相应的makePayment方 法中进行处理;完成这个职责还 需要通过协作创建“付款”对象, 并调用其构造器 : POS机 : Sale : 付款 makePayment(cashTendered) 抽象,表示“销售”对 象具有创建“付款”的 职责 create(cashTendered)
细化阶段:迭代2 GRASP设计模式 ■创建者( Creator) ■信息专家( nformation Expert) ■控制器( Controller) ■低耦合( LoW Coupling) ■高内聚( High Cohesion) 多态( Polymorphism) ■纯虚构( Pure fabrication) ■间接性( Indirection) ■防止变异( Protected variations)
细化阶段:迭代2 GRASP 设计模式 ◼ 创建者(Creator) ◼ 信息专家(Information Expert) ◼ 控制器(Controller) ◼ 低耦合(Low Coupling) ◼ 高内聚(High Cohesion) ◼ 多态(Polymorphism) ◼ 纯虚构(Pure Fabrication) ◼ 间接性(Indirection) ◼ 防止变异(Protected Variations)