关于“篮球赛”过程的uml课程设计

上传人:tian****1990 文档编号:68251895 上传时间:2019-01-10 格式:DOCX 页数:21 大小:1.53MB
返回 下载 相关 举报
关于“篮球赛”过程的uml课程设计_第1页
第1页 / 共21页
关于“篮球赛”过程的uml课程设计_第2页
第2页 / 共21页
关于“篮球赛”过程的uml课程设计_第3页
第3页 / 共21页
关于“篮球赛”过程的uml课程设计_第4页
第4页 / 共21页
关于“篮球赛”过程的uml课程设计_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《关于“篮球赛”过程的uml课程设计》由会员分享,可在线阅读,更多相关《关于“篮球赛”过程的uml课程设计(21页珍藏版)》请在金锄头文库上搜索。

1、厚德达理 励志勤工关于 “篮球赛”过程的UML课程设计.课程设计的目的:进行软件架构设计,可以使应用软件达到以下成效:(1)可靠性,(2)安全性,(3)可维护性,(4)易用性,(5)可扩展性。通过本设计使学生熟悉软件设计的过程,掌握UML模型建立规范,熟练掌握实体类、接口类、控制类。用例类、系统类等模型的建立,锻炼学生的软件设计能力,并绘制规范的模型图,理解如何将书本上的程序知识应用到实际项目中,通过与同组同学的合作,锻炼学生的合作能力。.课程设计教学基本要求:1、四人为一个小组,小组成员既要有相互合作的精神,又要分工明确。每个学生都必须充分了解整个设计的全过程。2、从开始的系统需求分析、整体

2、构架到系统设计、部署,都要有详细的计划,设计文档应按照软件架构文档的要求规范书写。3、系统中的数据表设计应合理、高效,尽量减少数据冗余。4、绘制的各种建模图形都必须规范清晰,顺序图、活动图的流程应清晰明白。.课程设计的内容:根据本设计书所提供的基础知识,选择一个题目(见附录1),按软件设计的流程,设计应实现相应的项目,并写出设计步骤、绘制相关图形,完成设计报告。主要完成开发背景、可行性分析、需求分析、系统整体构架、体系结构、信息系统架构总体视图、关键技术设计、系统设计模式,相应的进行绘制用例图、类图、包和对象图、顺序图、协作图、状态图、活动图、组件与配置图、布署视图、数据视图等。.课程设计方式

3、:讨论并撰写软件项目设计方案,上机编程,部分功能开发实现。.课程设计进度安排:1)选题:了解基础知识,讨论该设计题目的主要内容,及开发思路;2)确定需求:将你选的题目的所有功能需求写清楚,并绘制一份功能模块结构图(便于参考);3)整体构架研究:包含各个子系统的体系结构、风格研究;4)系统设计模式:包含设计与绘制用例图、类图、包和对象图、顺序图、协作图、状态图、活动图、组件与配置图、布署视图、数据视图等所需的图形;5)撰写设计报告 “篮球赛”过程的UML课程设计一 类建模(一)发现类:类代表的是领域知识中的词汇和术语。同客户交谈,分析他们的领域知识,设计用来解决领域中的问题的计算机系统,同时也就

4、是在学习这些领域词汇,并用UML中的类建立这些领域词汇的类模型。在与客户的交谈中,要注意客户用来描述业务实体的名词术语。这些名词可作为领域模型中的类。还要注意你听到的动词,因为这些动词可能会构成这些类中的操作。当得到一组类的核心列表后,应当向客户询问在业务过程中每个类的作用。他们的回答将告诉你这些类的职责。假设你是一个系统分析员,要建立篮球比赛模型,现在你正在会见一名教练员来了解比赛规则情况。谈话的过程可能如下:分析员:“教练,请大致介绍一下篮球比赛。”教练员:“比赛的目标是要把篮球投入蓝框并且要尽量比对手得更多的分。每个篮球队由5名队员组成:两名后卫、两名前锋和一名中锋。每个队要将球推进到篮

5、框附近,目的是将篮球投中篮框。”分析员:“如何将球推进?”教练员:“通过运球和传球。但是某一方篮球队必须在规定的进攻时间内投篮。”分析员:“规定的进攻时间?”教练员:“是的,在某一方获得控球权后,必须在规定的进攻时间内投篮。美国职业篮球比赛是24秒,国际篮球比赛是30秒,美国大学篮球比赛是35秒。”分析员:“如何计算篮球比赛得分?”教练员:“三分线之内每投中一坎篮柜得两分,三分线之外投中一次得三分。一次罚球得分。顺便说一下,罚球是对方犯规后判罚的投球。如果某一个队员犯规,则比赛暂停,由被侵犯的队员在罚球线处罚球。”教练员:“国际比赛场地为28米长、15米宽。蓝框离地面3.05米高。在美国职业篮

6、球比赛中,一场比赛为48分钟,分为4节,每节12分钟。在美国大学和国际比赛中,一场比赛40分钟,分为上下两个20分钟的半场。有专门的比赛时钟记录比赛还剩下多少时间。我们现在停止说明这些对话,来看看谈话的内容。下面是在对话中发现的名词:篮球(Ball)、篮框(Basket)、篮球队(Team)、队员(Player)、后卫队员(Guard)、前锋队员(Forward)、中锋(Center)、投球(Shot)、进攻时间时钟(Shot Clock)、三分线(threepoint line)、罚球(free throw)、犯规(Foul)、罚球线(free-throw line)、球场(Court)、比

7、赛时钟(GameClock)。还有些动词:投篮(shoot)、推进(advance)、运球(dribble)、传球(Pass)、犯规(Foul)、抢篮板球(rebound)。可以得到上述名词的一些附加信息例如每个位置的队员的相对高度、篮球场大小、进攻时间以及比赛时间。最后,根据常识可以为这些类建立一些属性和操作。例如,通常球类都有体积(vo1ume)和直径(diameter)等属性。使用这些信息,可以建立一个如下图所示的图。它说明了领域中的类,并提供了些属性、操作和约束。这个图也可以表示职责。(二)类的关系在第一中所完成的模型中,只有一些代表了篮球运动词汇的类。还缺少类之间的连接方式。回顾上面

8、已经建立的初步模型,就会发现图中并没有说明队员和篮球之间有什么关系,队员是如何组成球队的,或者一场比赛是如何进行的。2.1关联:当类之间在概念上有连接关系时,这种关系叫做关联(association)。篮球比赛的初步模型中提供了这样的例子。下面我们来研究篮球比赛中各个类之间的关系。例如,其中的一个关联队员和球队之间的关联。可以用一个短语“队员为篮球队效力(plays on)”来刻画这个关联。关联的可视化表示方法是用一条线连接两个类,并把关联的名字(例如“plays on”)放在这个连接线之上。表示出关联的方向是很有用的,关联的方向用一个实心三角形箭头来指明。图2.1说明如何可视化表示队员和球队

9、之间的Plays on关联。一个类和另一个类发生关联时,每个类通常在关联中部扮演着某种角色。可以在图中靠近每个类的地方的关联线上标明每个类的角色。在队员和球队的关联中,如果球队是职业篮球队,那么它就是队员的雇主(Employer),队员就是球队的雇员(Employee)。简略后的图2.2说明了如何表示出这些角色。关联从另个方向发生:篮球队雇佣(Employs)队员。可以把这两个方向上的关联表示在一个图中,用实心三角形箭头指明各自关联的方向,如图2.3所示。将几个类可以连接同一个类。现在开始设计Guard、Forward、Center类和Team类之间的关联,将会得到如下图2.4所示的关联图。2

10、.2关系类:和类一样,关联也可以有自己的属性和操作。此时,这个关联实际上是个关联类。关联类的可视化表示方式与一般的类相同,但是要用一条虚线把关联类和对应的关联线连接起来。关联类也可以与其他类关联。下面设计一下player类和Team类之间的Plays on关联对应的关联类:Contract(契约)关联类。它又同时和GeneralManager(总经理)类发生关联(如图2.5)。2.3链在上面我们设计出来相关类的关联和关联类,已经基本清楚相关类间的关系。正如对象是类的实例一样,关联也有自己的实例。如果我们想象要一个特定的队员效力一个特定的球队,那么两者之间的Plays 0n关系就叫做一个链(li

11、nk),可以用两个对象之间的连线来表示它。和对象的名字要加下划线一样,链的名字也要加下划线,如下图所示。2.4多重性关系到目前为止,在Player类和Team类之间所建立的关联似乎是一对一关系。然而常识告诉我们这并不一定正确。一支篮球队有5名队员(不包括替补队员)。因此Has(拥有)关联必须考虑到这一点。在另一个方向上,一个队员只能为一支球队效力,Plays on关联也必须考虑这点。上面说的就是多重性的例子:某个类有多少个对象可以和另一个类的单个对象关联。表示多重性的方法是在参与关联的类的附近的关联线上注明多重性数值。这个例子所举的多重性并不是唯一可能的类型。实际上存在各种可能的多重性。两个类

12、之间可以是一对一、对多、对或多、对零或一、一对有限间隔。UML使用星号(*)来代表许多(more)和多个(many)。在一种语境中,两点代表or(或)关系,例如“1.*”代表一个或者多个。在另一种语境中,or关系用逗号来表示,例如“5,10”代表5或者10。下图显示了可能的各种多重性的表示方法。2.5继承和泛化继承是面向对象术语中,UML中也称它为泛化。在泛化关系中,子类可以替代父类。也就是说,父类出现的地方,子类都可以出现。但是反过来却不成立。在UML中,用父类到子类之间的连线来表示继承关系。父类连线部分,指向父类的一端带台一个空心三角形箭头。这种连接类型的短语的含义为is a kind o

13、f(属于中的一种)。如图2.8所示。其中有Player、Guard、Forward、和Center等类。 Player类通常有name(名字)、height(身高)、weight(体重)、runningSpeed(奔跑速度)和verticalLeap(垂直起跳高度)等属性,以及dribble()、pass()、rebound()和shoot()等操作。Guard、Forward和Center继承了这些属性和操作,并且增加了他们自己的一些属性和操作。另一种可能的情况是系统分析员注意到两个或者多个类可能具有相同的属性和操作数。篮球比赛类模型中有一个GameClock类(它负责记录距离比赛停止还剩下

14、多少时间),还有一个ShotClock类(它记录某方得到控球权后还剩下多长时间该方必须投篮)。因为两者都是用来记录时间,意识到这点后,系统分析员就能设计出Clock(时钟)类。它具有个trackTime()操作(计时操作),GameClock类和ShotClock类都继承了这个操作。2.6抽象类在篮球比赛模型中,刚才提及的两个类(Player类和Clock类)是很有用的,因为它们是一些重要子类的父类。然而,Player和Clock这两个类将不提供任何模型实例,因为它们的对象派不上什么用途。像这样的类(不提供实例对象的类)被称为是抽象的(abstract)。表明一个类是抽象类的方法是类名用斜体书写。二状态建模在前面我们已经比较全面的剖析了系统的对象结构及其相关关系(类模型)。接下来将继续从另一个角度研究此系统,即检查对象及其关系随着时间的变化(状态模型)。首先我们先研究研究本篮球比赛系统的设计构思“假想图”,在这个图中我们可以看到每一场比赛每个时间发生的“事件”和“状态”。状态模型描述描述响应外部激励而发生的操作序列,而不是描述操作做了什么,对什么进行操作,或操作是如何实现的。状态模型由多个状态图组成,每个类对应一个状态图,描述对应程序来说是重要的那些时序行为。状态图是一个标准的计

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号