面向对象分析与设计
今天终于迎来了开学以来真正的软件工程师核心课程:OOAD,Object-Oriented Analysis and Design。老师讲的一如既往的专业,我也听的不亦乐乎。在课堂中,老师用一个投掷色子的小游戏引入了面向对象分析的概念,并引领我们对该案例进行了分析。下课后,我意犹未尽,于是按照上课时老师教的方法进行了分析与设计,并用java实现了基本功能。现在将分析过程和代码附上,打包后的jar包在附件里供大家下载,希望高手不吝赐教。
对于该案例我们一般按下面步骤进行:
1、 定义用例
2、 建立一个域模型
3、 构建交互图
4、 开发设计类图
现在开始分析:
首先考虑这个问题的描述:这是一种掷色子的游戏,一次掷两个色子,如果两个色子的点数之和为7即判定赢,否则为输。
在这个case(案例)里,一共有几个对象(可以理解为实体)?
很显然,有两个:色子、赌徒。
于是我们可以开始定义Use Case(用例)。
那么,到底什么是Use Case呢?在UML的文档中,Use Case的定义是:在不展现一个系统或子系统内部结构的情况下,对系统或子系统的某个连贯的功能单元的定义和描述。说白了就是系统功能(一部分)的描述。当然这个功能必须是逻辑上完整的。比如吃饭,睡觉等等很清楚明白 do what。
今天终于迎来了开学以来真正的软件工程师核心课程:OOAD,Object-Oriented Analysis and Design。老师讲的一如既往的专业,我也听的不亦乐乎。在课堂中,老师用一个投掷色子的小游戏引入了面向对象分析的概念,并引领我们对该案例进行了分析。下课后,我意犹未尽,于是按照上课时老师教的方法进行了分析与设计,并用java实现了基本功能。现在将分析过程和代码附上,打包后的jar包在附件里供大家下载,希望高手不吝赐教。
对于该案例我们一般按下面步骤进行:
1、 定义用例
2、 建立一个域模型
3、 构建交互图
4、 开发设计类图
现在开始分析:
首先考虑这个问题的描述:这是一种掷色子的游戏,一次掷两个色子,如果两个色子的点数之和为7即判定赢,否则为输。
在这个case(案例)里,一共有几个对象(可以理解为实体)?
很显然,有两个:色子、赌徒。
于是我们可以开始定义Use Case(用例)。
那么,到底什么是Use Case呢?在UML的文档中,Use Case的定义是:在不展现一个系统或子系统内部结构的情况下,对系统或子系统的某个连贯的功能单元的定义和描述。说白了就是系统功能(一部分)的描述。当然这个功能必须是逻辑上完整的。比如吃饭,睡觉等等很清楚明白 do what。