Download presentation
Presentation is loading. Please wait.
1
需求分析模型:包括用例模型、领域模型、系统顺序图、操作契约、设想、词汇表、补充性规格说明等
1、 需求分析模型 需求分析模型:包括用例模型、领域模型、系统顺序图、操作契约、设想、词汇表、补充性规格说明等
2
目标:表达参与者使用系统做什么 其中用例模型建模包括: 参与者与用例,并使用用例图表达 用例文本描述
1.1、 用例模型(迭代进化) 目标:表达参与者使用系统做什么 其中用例模型建模包括: 参与者与用例,并使用用例图表达 用例文本描述
3
1.1.1用例图 主成功场景: 1、系统提示玩家进入自己的轮次; 2、玩家roll Dice,根据当前dice的和来移动自己的位置,
如果第二次值还一样,则有地三次机会,但如果第三次还相同,则会被关进监狱。 3、玩家移动当前位置后,由当前方格属性来决定玩家的奖惩, 3.1 如果是incomeTaxSquare,就需要向银行缴纳$2000,000或自己财产的10%。 3.2 扩展场景:
4
1.2 领域模型 第一个面向对象的最重要的制品
5
目标 一、确定领域中相关的概念类, 二、创建初始的领域模型, 三、为模型建立适当的属性和关联 四、精化:增加关联和泛化
6
1.2 初始的领域模型--第一次迭代
7
1.3系统顺序图(应包括操作契约)--第一次迭代
8
2逻辑架构--分层与子系统设计--包图表达架构
9
2逻辑架构--分层设计
10
3、对象设计建模的动态与静态模型表达
11
3、对象设计建模的动态与静态模型表达--CRC卡片
12
3.1基于职责设计对象 在面向对象设计中,创建类实例是基本任务之一--那么某一对象应该由哪个对象负责实例化呢 --创建者模式
13
Dice和Board、Square、玩家分别由谁负责实例化呢?
14
Fig. 17.4
15
Fig. 17.5
16
Fig
17
Fig
18
Fig. 17.18谁来创建payment对象,难道Register?
19
Fig. 17.19谁来创建payment对象,当然Sale 考虑创建者模式和低耦合模式
20
3.1基于职责设计对象 在面向对象设计中,有了对象,那这个对象应该分配哪些职责呢? --信息专家模式
21
Fig. 17.5
22
Fig. 17.6
23
谁负责控制游戏轮回?
24
每个轮回中,谁来负责每个玩家的轮次?
25
玩家在玩轮次中需要和谁协作?
26
当前的静态设计
27
创建者模式的应用
28
Fig
29
Fig
30
创建者、信息专家?
31
3.1基于职责设计对象 在面向对象设计中,有了对象,那这个对象应该分配哪些职责呢?--不要把自己的职责推给别人做,这样会增加新的不必要的对象或者给其他对象增加不必要的职责,使得其他对象在实现其职责时仍然要回头找自己 --低耦合模式
32
Fig. 17.7
33
3.1基于职责设计对象 简单分层架构中有UI层和领域层,如果从UI层发送请求直接给领域层对象,那么两者之间的耦合比较紧--控制器模式--专门设计一个控制器来接收界面请求,然后向领域层转发请求,是一个中间枢纽对象,一般一个子系统或一个用例对应一个控制器对象
34
Fig. 17.8
35
谁做控制器 它做控制器
36
谁做控制器 它做控制器
37
控制器是从界面到领域层的一个外观对象 界面只看到控制器,看不到领域层对象
38
外观控制器 用例控制器
39
java的富客户端
40
3.1基于职责设计对象 自己完成所有任务,还是分配给合适的对象协作完成任务--高内聚模式--一个对象只完成自己应该完成的职责,因为他只知道这些,如果每个对象都这样,那么每个对象的职责单一,不越权、不偷懒,这就是高内聚模式
41
高内聚模式
42
不同的方格--领域模型改进,应用多态--共同点与变化点分析
第二次迭代 不同的方格--领域模型改进,应用多态--共同点与变化点分析
43
不同的方格--领域模型改进,应用多态--共同点与变化点分析
第二次迭代 不同的方格--领域模型改进,应用多态--共同点与变化点分析
44
不同的方格--领域模型改进,应用多态--共同点与变化点分析--进入起点方格的情形
第二次迭代 不同的方格--领域模型改进,应用多态--共同点与变化点分析--进入起点方格的情形
45
不同的方格--领域模型改进,应用多态--共同点与变化点分析--进入Regular方格的情形--Freepark
第二次迭代 不同的方格--领域模型改进,应用多态--共同点与变化点分析--进入Regular方格的情形--Freepark
46
不同的方格--领域模型改进,应用多态--共同点与变化点分析--进入Incometax方格的情形
第二次迭代 不同的方格--领域模型改进,应用多态--共同点与变化点分析--进入Incometax方格的情形
47
不同的方格--领域模型改进,应用多态--共同点与变化点分析--进入GotoJail方格的情形--进入监狱
第二次迭代 不同的方格--领域模型改进,应用多态--共同点与变化点分析--进入GotoJail方格的情形--进入监狱
48
纯虚构--使用虚构的概念解决紧耦合和低内聚问题
49
纯虚构--使用虚构的概念解决紧耦合和低内聚问题
50
Fig. 25.2
51
Fig. 25.3
52
Fig. 25.4
53
Fig. 25.5
54
Fig. 25.6
55
Fig. 25.7
56
Fig. 25.8
57
Fig. 25.9
59
--如何设计对象、子系统和系统,使其内部的变化和不稳定性不会对其他对象产生不良影响--副作用-----变化点和共同点分析
防止变异 --如何设计对象、子系统和系统,使其内部的变化和不稳定性不会对其他对象产生不良影响--副作用-----变化点和共同点分析 在分析得到共同概念后,运用接口或抽象类来封装这些共同概念,对于这些共同概念的具体变化点使用具体类来封装变化。
Similar presentations