230 likes | 380 Views
第 11 章 面向对象设计方法用例实现. 设计类图和交互图(顺序图和协作图). 开发面向对象的设计模型. 程序员用此模型来为系统编码. 面向对象设计 - 用户需求和新系统程序程序设计的桥梁. 建立一系列面向对象设计模型的过程,程序员利用这些模型进行编码和测试。. 面向对象程序设计概述. 逻辑和属性封装. 一系列协同完成某一任务的对象组成 ,对象之间通过消息来协调工作. 学生对象. 检索学生对象. 请求学生 对象. 数据库对象. 数据库中保存和更新. 修改学生信息. 输入窗口对象. 输入个人更新信息. 输入学生 ID. 数据库对象.
E N D
第11章 面向对象设计方法用例实现 设计类图和交互图(顺序图和协作图) 开发面向对象的设计模型 程序员用此模型来为系统编码
面向对象设计-用户需求和新系统程序程序设计的桥梁面向对象设计-用户需求和新系统程序程序设计的桥梁 • 建立一系列面向对象设计模型的过程,程序员利用这些模型进行编码和测试。
面向对象程序设计概述 逻辑和属性封装 • 一系列协同完成某一任务的对象组成 ,对象之间通过消息来协调工作 学生对象 检索学生对象 请求学生 对象 数据库对象 数据库中保存和更新 修改学生信息 输入窗口对象 输入个人更新信息 输入学生ID 数据库对象
面向对象设计模型 确定组成用例的所有对象 • 对象:用户界面类对象、域类对象和数据库访问对象等。完成特定功能的额外对象 • 对象划分为几组:多层设计。确定各层的对象集,以及对象间的交互和消息。 • 详细顺序图:开发人员向系统添加用户界面对象、域类对象和数据访问对象来扩展顺序图。
Student Class Examples for the Domain Class and the Design Class Diagrams (Figure 11-3) 设计类图:记录和描述构建新系统重要的类 属性类型 通过开发顺序图将域模型转换成设计模型 方法特征
Example Class Definition in Java for Student Class(Figure 11-4a)
Design Models with Their Respective Input Models(Figure 11-5)
面向对象的设计过程 模型驱动和用例驱动 • 用例实现:对每个用例的详细系统过程的说明。交互图的输入模型使用了用例图、用例描述、系统顺序图和设计类图。这些设计模型的最终开发结果为用例实现。 整个设计过程: 1、开发初步设计类图,显示导航可见性 2、为每个用例开发顺序图完成用来设计 (a)设计初步顺序图 (b)设计多层顺序图 3、向类添加方法特征和导航信息。 4、将解决方案分成适当的包。 开发交互图是面向对象设计核心 建立子系统或者分层
设计类和设计类图 • 构造型:按照模型元素的特征进行归类的一种方法,用《》符号描述。 • 标准的设计类:实体类、控制类、边界类、数据访问类。
实体类:问题域类的设计标识符。 控制类:在边界类和实体类中间期协调作用 边界类:自动化边界上的类,如输入窗口 数据访问类:从数据库获取信息
设计类的表示 是否被外部对象直接访问 • 属性的可见性:+ - • 属性名称 • 类型表达式 • 初值 • 原型 • 方法可见性 • 方法名 • 方法参数列表 • 类型表达式(方法返回参数的类型)
11.2.3开发初步设计类图 • 属性细化 • 导航可见性:一个对象可以看到来一个对象并与之交互。属性导航可见性和参数导航可见性 • 设计模式和用例控制器 引用其他对象的属性 一个对象作为参数传递给另外一个对象
导航可见性 Order必须对customer类可见 myorder指向order实例
11.2.4 设计模式和用例控制器 • 设计模式:便于使用良好的设计准则的解决方案模板。 用例控制器 三层设计
用例控制器:系统设计者创建的,用来作为输入消息收集点的类。用例控制器:系统设计者创建的,用来作为输入消息收集点的类。 • 制品:系统设计者创建的,用来处理必要的系统功能的类。 开关,接收消息给正确的类
11.2.5 一些基本的设计准则 反复使用,信息隐蔽:有关数据对外部不可见 1、封装和信息隐蔽 封装:规定数据和程序逻辑包含在一个独立的单元中。 信息隐蔽:一个对象的数据对外部施加是不可见的,要使用一组方法来访问和修改这些数据 2、耦合:设计类图中的类与类之间链接关系紧密程度的定性的度量。 3、内聚:是对一个类中功能一致性的定性度量。 Customer order 导航箭头数
变量保护:将不易改变部分与一改变部分分离。变量保护:将不易改变部分与一改变部分分离。 间接:在两个类之间添加一个协调类以达到降低耦合的目的。
11.4 多层设计 • 职责分离:将系统话费成多个具有相似功能的类集的设计准则