案例:掷骰子游戏,案例:掷骰子游戏,如果骰子的总点数则游戏赢;是7,则游戏赢;否则输。功能模型:功能模型:系统用例图用例名称:玩掷骰子参与者:玩家静态模型:静态模型:系统类图OOAD关注从对象的角度创建领域描述。定义领域模型需要所要处理的问题的领域知识。通过鉴别对象的概念、属性和关联来分解问题。识别潜在的类识别潜在的类-&-对象对象是人们要研究的任何事物及对问题域中有意义的事物的抽它们既可能是物理实体,也可能是抽象概念(规则规则、象,它们既可能是物理实体,也可能是抽象概念规则、计划和事件)。具体地说,对象可分为如下几种类型:。具体地说,对象可分为如下几种类型:(1)物理实体:指有形的实物,例如,飞机、汽车、计算机、书或物理实体:指有形的实物,例如,飞机、汽车、计算机、机房等。机房等。(2)人或组织的角色:例如,医生、教师、学生、工人、部门或公人或组织的角色:例如,医生、教师、学生、工人、司等。司等。(3)事件:指在特定时间所发生的事,例如,飞行、演出、开会、事件:指在特定时间所发生的事,例如,飞行、演出、开会、访问或事故等。访问或事故等。(4)性能说明:指厂商对产品性能的说明,如产品名字、型号、规性能说明:指厂商对产品性能的说明,如产品名字、型号、格和各种性能指标等。格和各种性能指标等。首先我们要确定领域内的概念类,通过对用例的名词提取,我们可以获得“玩家”、“骰子”及“骰子游戏”等概念类。然后画出其属性和关联。动态模型:顺序图OOAD关注软件对象在问题领域内是如何相互协作来解决问题。交互图包括通信图和顺序图两种方式。两个人玩的扑克牌游戏的一种玩法,两个人玩的扑克牌游戏的一种玩法,请你设计一个模拟程序,它的基本功能是:(1)发两手牌发两手牌(拟程序,它的基本功能是:(1)发两手牌(利用随机数产生(2)确定赢考和赢脾的类型扑克牌游戏规则如下:确定赢考和赢脾的类型。器),(2)确定赢考和赢脾的类型。扑克牌游戏规则如下:(1)有两个人玩,分别称为A(1)有两个人玩,分别称为A和B有两个人玩(2)一付扑克牌有52张牌一付扑克牌有52张牌,种花色(方块、梅花、红桃和黑桃)(2)一付扑克牌有52张牌,4种花色(方块、梅花、红桃和黑桃),每种花色的牌的点数按升序排列有210,14种色的牌的点数按升序排列有2,3,4,…,10,J,Q,K,A等14种;(3)给每个人发三张牌牌面向上(给每个人发三张牌,亮脾)赢考立即可以确定;(3)给每个人发三张牌,牌面向上(即,亮脾),赢考立即可以确定;(4)最高等级的一手牌称为同花即三张牌均为同一种花色,最高等级的一手牌称为同花,(4)最高等级的一手牌称为同花,即三张牌均为同一种花色,最大的同花牌是同一种花色的Q花牌是同一种花色的Q、K、A,(5)第二等级的牌称为顺子即点数连续的二张脾,第二等级的牌称为顺子,(5)第二等级的牌称为顺子,即点数连续的二张脾,最大的顺于是花色不同的Q不同的Q、K、A(6)第三等级的牌是同点即点数相同的三张脾,员大的同点是A第三等级的牌是同点,(6)第三等级的牌是同点,即点数相同的三张脾,员大的同点是A、A、A(7)第四等级的牌是对子即三张脾中有两张点数相同*最大的对于是A第四等级的牌是对子,(7)第四等级的牌是对子,即三张脾中有两张点数相同*最大的对于是A、A、K,(8)第五等级的脾是杂牌即除去上列四等之外的任何一手牌,第五等级的脾是杂牌,(8)第五等级的脾是杂牌,即除去上列四等之外的任何一手牌,最大的杂脾是不同花色的A杂脾是不同花色的A、K、J;(9)苦两人的牌类型不同则等级高者胜;若等级相同,则点数高者胜;苦两人的牌类型不同,(9)苦两人的牌类型不同,则等级高者胜;若等级相同,则点数高者胜;若点数也相同,则为平局。若点数也相同,则为平局。在腾讯QQ游戏中斗地主游戏面向对象分析与设计“联机考试系统”分析分析的过程估计优先级情景识别类和对象描述类和对象记录分析结果情景分析哪些情景优先级高?创建用户……创建用户登录……登录创建考试……创建考试创建考题……创建考题联机考试……联机考试识别类和对象/情景分析分析应对每一个情景展开,重点在于搜索出对象,这时不要化很多时间来确定对象之间的关系名词可能成为对象,行为将可能成为对象的方法每一情景至少需要一个界面类联机考试系统有那些类?软件工程教研室王兵识别类和对象4-1业务实体类UserExamQuestionStudentTest识别类和对象4-2用户界面对类识别类和对象4-3存储访问类DBAccess描述类/类分析5-1User方法ValidateUserInsertRecordsUpdateRecordsFetchRecords软逻辑层的功能类设计User类包括验证用户登陆的身份、创建用户、更改用户、查找用户功能的方法Question包括存储、修改、查找考题的方法Exam包括创建考试、查看考试安排、显示学生的考试结果以及显示考试的结果方法StudentTest检索试卷User类的方法ValidateUser验证密码InsertRecords新建用户UpdateRecords更新用户信息FetchRecords查询用户用户记录Question类的方法InsertQuestions新建试题并将其添加至tbl_QuestionBank表UpdateQuestions更新QuestionBank表中的试题FetchQuestions从表tbl_QuestionBank中搜索试题GenerateQuestionNo生成指定科目的试题编号Exam类的方法CreateExam创建考试FetchExamDetails按考试日期、考试科目条件搜索已经安排的考试GenerateExamCode生成考试代码FetchExamResults检索学生的考试分数FetchExamReports检索考试结果的详细信息GenerateTestPaper生成试卷StudentTest类的方法FetchPaper从数据库中提取试卷数据访问层DataAccess类的方法Connection处理数据库连接GetInstance检查数据库连接的实例是否存在SqlCommand该方法执行数据库操作命令SaveStudentScore插入考试成绩