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