ConfrontOnline总体概念设计.docx
《ConfrontOnline总体概念设计.docx》由会员分享,可在线阅读,更多相关《ConfrontOnline总体概念设计.docx(23页珍藏版)》请在冰豆网上搜索。
![ConfrontOnline总体概念设计.docx](https://file1.bdocx.com/fileroot1/2023-1/24/f0871180-6d0a-46a1-9869-6d45ac8c7250/f0871180-6d0a-46a1-9869-6d45ac8c72501.gif)
ConfrontOnline总体概念设计
软件工程课程设计
题目:
ConfrontOnline网络游戏
学院工商学院
学科门类工科
专业软件工程
学号2007480181
姓名_施杨
指导教师王思乐
2009年12月25日
总版本
ConfrontOnline1.0
编号
ConfrontOnline-TDR-00
版本
1.0
项目名称
ConfrontOnline网络游戏(WebGame)
项目代码
ConfrontOnline
分项名称
概要设计报告(Totaldesignreport)
分项代码
TDR
分项序号
00
组长
施杨
负责人
施杨
参与人
施杨,安云飞,陈磊,李征益,范永坤,杨建佳,刘姗姗
指导教师
王思乐
日期
2009-12-25
开发单位
2007级软件工程第一组
河北大学学年论文(课程设计)任务书
(指导教师用表)
学生姓名
施杨
指导教师
王思乐
论文(设计)题目
ConfrontOnline网络游戏—概要设计报告
主要研究
(设计)内容
对ConfrontOnline网络游戏的模块进行设计,细化软件结构,描述模块接口及其功能。
进一步评价系统模型应用数据流分析方法导出软件模块结构。
细化软件结构,描述模块接口及其功能。
评价及优化实现方案,细化实现计划,资源分配。
研究方法
根据软件工程导论课上学习的软件工程思想,参照《软件工程导论》在《可行性研究报告》《需求分析》《数据库设计》的基础上,实现对ConfrontOnline网络游戏的结构和功能设计。
主要任务
及目标
对ConfrontOnline网络游戏模块的设计包括细化各个软件模块,并对各个软件模块的功能进行描述,并且描述出各个模块的接口。
其中软件的模块包括游戏用户和管理员俩大主要的模块,各开发成员参照此文档,为下一步详细设计提供参考。
主要参
考文献
《实用软件工程》郑人杰殷人昆陶永雷清华大学出版社
《软件工程导论》张海潘清华大学出版社
《实践者的研究方法》RogerS.Pressman机械工业出版社
《计算机软件产品开发文件编制文档格式》
《项目开发计划大纲》
《可行性研究报告大纲》
进度安排
论文(设计)各阶段名称
日期
问题定义
第10周
需求分析
第11周-第13周
设计
第14周-第15周
实现
第16周-第18周
指导教师签字:
系主任签字:
主管教学院长签字:
河北大学学年论文(课程设计)成绩评定表
学院:
工商学院
学生姓名
施杨
专业年级
软件工程2007级
论文(设计)题目
ConfrontOnline网络游戏—概要设计报告
论文(设计)内容提要
对ConfrontOnline网络游戏模块的设计包括细化各个软件模块,并对各个软件模块的功能进行描述,并且描述出各个模块的接口。
其中软件的模块包括游戏用户和管理员俩大主要的模块,各开发成员参照此文档,为下一步详细设计提供参考。
ConfrontOnline网络游戏模块包括管理员权限管理、用户管理、房间管理、建筑类型管理、地图管理、怪兽类型管理、消息管理、道具类型管理、积分管理等模块。
玩家或管理员可以根据自己的需要进行各种不同的操作。
管理员模块包括管理员登陆注销,用户权限管理,管理用户信息,管理房间,管理建筑类型,管理游戏地图,管理怪兽类型,管理用户消息,管理道具类型,管理用户积分等模块。
游戏管理人员根据要进行的操作选择特定的功能进行操作。
指导教师评语
成绩:
指导教师(签名):
年月日
1引言
1.1目的
ConfrontOnline是一个网络塔防游戏,面向人群是18-30岁的上班族,这个游戏可以在他们闲暇的时候,提供一种娱乐的方式。
免安装,只要有一个联网的电脑就可以玩,通过互联网方便了游戏的推广。
1.2背景
●这个网络塔防游戏我们叫他ConfrontOnline。
●这个项目是由开发小组共同提出的并参与设计的,用户是18-30岁的上班族。
1.3定义、缩写词、略语
ConfrontOnline:
名知其意,也就是网上对战!
塔防:
塔防是近年来发展最快的新游戏类型,即时战略游戏的一个独立分类,包括作战单元的制造和控制,通过建造“塔”来“防”御敌兵的进攻。
考验玩家布置“塔”的能力——“塔”的摆放位置和先后顺序决定生死。
敌人:
地面魔兽,空中怪物,水中大怪。
防御:
防御方建造自己的建筑设备来抵御敌人的进攻。
建筑设备:
塔、落穴、铁炮、重机枪、激光炮、混乱塔。
1.4参考资料
本项目的其他文档和资料分别是:
《ConfrontOnline系统需求说明书》
《ConfrontOnline系统详细设计》
《ConfrontOnline系统测试文档》
《ConfrontOnline用户使用手册》
《ConfrontOnline数据库设计文档》
2总体设计
2.1需求规定
参见软件需求说明书。
2.2运行环境
本系统是基于web的网络系统,所以对硬件的要求很低,只要装有浏览器和flash插件且能够上网的电脑就可以,对操作系统没有要求。
2.3基本设计概念和处理流程
本系统的设计概念就是借助于互联网的优势,开发的一款WEB版大型在线互动塔防类3Dflash游戏。
使用技术3Dflash+EJB+Hibernate+JPA+Ajax,3Dflash做客户端,EJB+JPA做服务器端。
Ajax负责部分数据异步交互。
流程和功能模块如图:
2.4结构
系统接口
功能描述
从属关系
所属层次
publicBooleanaddUser(Useru)
添加用户,注册用户,传入用户实体,返回保存结果
用户模块
数据层
publicBooleaneditUser(Useru)
修改用户个人信息,传入用户实体,返回修改结果。
用户模块
数据层
publicBooleandelUser(intuserId)
删除用户,传入用户主键,返回删除结果。
用户模块
数据层
publicListlistUser(Pagepage)
查看用户列表,传入分页对象,返回用户列表。
用户模块
数据层
publicUserfindUserById(intuserId)
获得用户信息,传入用户主键,获得用户实体
用户模块
数据层
publicScoregetScoreByUserId(intuserId)
获得用户积分,传入用户主键,返回用户积分
积分模块
EJB层
PublicHousegetHouseByUserId(intuserId)
获得用户房间,传入用户主键,返回用户所在房间。
房间模块
EJB层
PublicListgetFriendList(Pagepage,intuserId)
获得好友列表,传入分页对象,返回用户列表。
用户模块
EJB层
PublicBooleanuserLogin(Useru)
用户登陆,传入用户实体(仅有用户名,密码两个字段有值),返回验证结果。
用户模块
EJB层
PublicBooleanuserLogout()
用户退出,清除用户在session中保存的数据。
用户模块
EJB层
PublicListgetMessages(Pagepage,intuserId)
获得短消息,传入分页对象,用户主键,获得短信息列表。
用户模块
EJB层
PublicBooleanupgradeBuilder(intbuilderId)
升级建筑,传入建筑主键,返回升级结果。
建筑模块
EJB层
PublicBooleanupgradeMonster(intmonsterId)
升级怪兽,传入怪兽主键,返回升级结果。
怪兽模块
EJB层
PublicRecordgetRecord(intuserId)
获得战绩,传入用户主键,返回用户战绩。
用户模块
EJB层
PublicBooleansendMessage(Messagem,intuserId,inttypeId;)
游戏会话,传入短消息内容,用户主键和消息类型,返回发送结果,成功或者失败。
用户模块
EJB层
PublicBooleanbuyBuilder(inttypeId,intuserId)
购买建筑,传入建筑类型主键,用户主键,返回购买结果。
建筑模块
EJB层
PublicBooleanbuyMonster(inttypeId,intuserId)
购买怪兽,传入怪兽类型,用户主键,返回购买结果,成功或失败。
怪兽模块
EJB层
PublicBooleanbuyGameUtil(inttypeId,intuserId)
购买道具,传入道具类型主键,用户主键,返回购买结果,成功或者失败。
道具模块
EJB层
PublicListgetUtils(intuserId)
获得道具列表,传入用户主键,返回该用户购买的游戏道具。
道具模块
EJB层
PublicGameMapselectGameMap(intmapId)
选择地图,传入地图主键,返回地图实体。
用户模块
EJB层
PublicHouseselectHouse(inthouseId)
选择房间,传入房间主键,返回游戏房间
房间模块
EJB层
PublicBooleanaddFriend(intuserId,intfriendId)
添加好友,传入用户主键与好友用户主键,返回添加结果,成功或失败
用户模块
EJB层
publicBuildergetBuilderDetails(
intbuilderId)
获得建筑信息,传入建筑主键,返回建筑信息
建筑模块
EJB层
PublicMonstergetMonsterDetails(intmonsterId)
获得怪兽信息,传入怪兽主键,返回怪兽信息
怪兽模块
EJB层
publicListgetUsersByHouseId(inthouseId)
获得房间中的用户列表,传入房间主键,返回用户列表。
房间模块
EJB层
publicGameUtilgetGameUtilDetails(intutilId)
获得道具信息,传入道具主键,返回道具信息。
道具模块
EJB层
PublicList
getMessageListOfSystem(intuserId)
获得系统消息列表,传入用户主键,获得系统消息列表。
消息模块
EJB层
PublicBooleanjoinChatRoom(intchatId,intuserId)
加入聊天室,传入聊天室主键和用户主键,返回是否加入成功。
消息模块
EJB层
PublicListgetUsersByChatRoomId(introomId)
获得聊天室里的用户列表。
消息模块
EJB层
PublicintcreateChatRoom(intuserId)
创建聊天室,传入用户主键,返回聊天室主键
消息模块
EJB层
PubilcBooleandelChatRoom(introomed)
删除聊天室,返回删除结果成功或失败。
消息模块
EJB层
其他模块的增删改查操作与用户模块类似所以不做具体描述
名词解释:
Boolean返回类型为true(正确)或false(错误)。
User:
用户;Page:
分页处理对象;Score:
用户积分;House:
游戏房间;Friend:
好友;
Message:
短消息;Builder:
防御建筑;Monster:
怪兽;Record:
战绩;
GameUtil:
游戏道具;GameMap:
游戏地图;Login:
登陆;
Logout:
退出;List:
列表;add××:
添加;edit××:
修改;del××:
删除;
get××:
获得对象;select××:
选择;create××:
创建;join××:
加入;
buy××:
购买;upgrade××:
升级;find××:
查询;send××:
发送;
out××:
退出;
2.5功能需求与程序的关系
程序模块
对应实现需求
管理员模块
管理员登陆注销,用户权限管理,管理用户信息,管理房间,管理建筑类型,管理游戏地图,管理怪兽类型,管理用户消息,
管理道具类型,管理用户积分。
用户模块
用户登陆注册注销,管理个人好友,查看和使用个人积分,管理个人消息。
查询等级和道具,查询战绩。
房间模块
查询和选择房间,获得房间里的用户信息
建筑模块
查询和购买建筑,显示建筑信息,建筑升级
地图模块
查看和选择地图,获得地图中的玩家信息
怪兽模块
查询和购买怪兽,显示怪兽信息,怪兽升级
消息模块
消息提示,查看与管理消息,聊天室,游戏会话
道具模块
查看和使用道具
积分模块
查看和使用积分
2.6人工处理过程
需要人工进行硬件维护,和用户注册人工审核,游戏内部管理(GM),人工客服。
2.7尚未解决的问题
1.高并发访问问题。
2.高负载问题。
3.分布式数据库事务处理问题。
3接口设计
3.1用户接口
本系统不提供用户API。
3.2外部接口
本系统建立在JVM之上,所以不需要直接操作硬件,也不需要给硬件提供接口。
但是本系统采用服务器端分布式应用架构所以一切客户端与服务器端的数据交互都需要调用EJB远程接口,服务器端EJB层与JPA层之间也需要有数据库操作接口。
3.3内部接口
系统间的接口分两类,一类就是服务接口,由EJB提供,负责传送数据,一类是数据层接口,是抽象出来的一层负责管理JPA数据库操作。
4运行设计
4.1运行模块组合
本系统基于网页,所以所有运行模块是一个整体,不存在运行方式问题。
通常的游戏运行首先需要通过flash接收用户输入,然后部分直接调用EJB远程接口,还有部分通过Ajax异步传输数据,传输介质是XML与JSON。
服务端接收输入后,做相应的业务处理和数据操作,调用JPA操作数据库。
4.2运行控制
运行控制只有一种就是基于网页的控制,操作步骤也很简单,只需要按照游戏帮助在网页中操作即可。
4.3运行时间
运行周期以一周为一个时间段,每天24小时运转,每周三定时做系统维护。
每种运行模块组合都需要不间断的占用硬件资源。
5系统数据结构设计
5.1逻辑与物理结构设计要点
以下数据存入数据库,存取单位为对象实例,访问方法为调用接口:
权限模块:
管理员admin
字段名
类型
备注
id
Integer(索引)
自增主键
name
varchar(50)
用户名
passwd
varchar(128)(加密)
密码
管理权限:
adminPriority
字段名
类型
备注
id
integer(索引)
自增主键
aid
integer(索引)
与管理员表id关联
priorityId
integer(索引)
权限主键
管理权限关联:
adminPriorityInfo
字段名
类型
备注
Id
integer(索引)
自增主键
priority
varchar(8)
权限,从右面起第一位为1代表有管理道具权限,第2位为管理积分3.房间,4.地图,5.怪兽,6.建筑,7.管理用户,8.管理用户权限,若某位为0则代表没有相应权限,存01字符串
用户与积分模块:
用户表user
字段名
类型
备注
Id
integer(索引)
自增主键
Userid
integer(索引)
与couserreginfor中userid关联
Name
varchar(50)(索引)
与couserreginfor中name关联
passwd
varchar(64)(加密)
密码
nickname
varchar(50)
昵称
sex
bit
0男/1女
email
varchar(64)
邮箱
photo
Varchar(128)
头像照片路径
info
text
用户签名
IsVip
Boolean
True:
是会员
False:
不是会员
VipLevel
Integter
1:
普通会员
2:
黄金会员
3:
白金会员
4:
钻石会员
用户积分:
Score
字段名
类型
备注
id
integer(索引)
自增主键
usetid
integer(索引)
与couserreginfor中userid关联
level
Integer
用户等级
point
long
用户积分
战绩Record
字段名
类型
备注
id
integer(索引)
自增主键
usetid
integer(索引)
与couserreginfor中userid关联
wins
Integer
胜
losts
Integer
负
用户注册信息:
userreginfor
字段名
类型
备注
id
integer(索引)
自增主键
question
varchar(64)
安全提问
answer
varchar(64)
安全回答
safeemail
varchar(32)
安全邮箱
好友关联表:
friend
字段名
类型
备注
id
integer(索引)
自增主键
userid
integer(索引)
与couserreginfor中userid关联
fid
integer(索引)
与couserreginfor中好友的userid关联
用户拥有道具:
userGameUtil
字段名
类型
备注
id
integer(索引)
自增主键
userid
interger(索引)
用户关联主键
gameUtilid
integer(索引)
道具关联主键
number
integer
该道具数量
用户道具效果与到期时间:
userGameUtiilTime
字段名
类型
备注
id
integer(索引)
自增主键
uid
integer(索引)
用户uid
Effect
integer
关联道具模块,道具属性索引的effect
deadTime
data
效果到期时间
短消息:
message:
字段名
类型
备注
id
integer(索引)
自增主键
Uid
Integer(索引)
收信人
messageid
integer(索引)
信息关联主键
messagekind
integer(索引)
消息类型:
0代表系统消息
1代表管理员消息
2代表用户消息
sid
integer(索引)
发消息人
isRead
Boolean
True:
已读;
False:
未读
message
text
信息内容
建筑模块:
建筑种类:
Builder:
字段名
类型
备注
id
integer(索引)
自增主键
builderid
integer(索引)
建筑种类编号
Effects
integer
攻击效果
isVipUse
Boolean
True:
会员专属建筑
False:
普通建筑
建筑等级:
BuilderUpgrade
字段名
类型
备注
id
integer(索引)
自增主键
builderid
integer(索引)
建筑种类编号
blevel
integer
建筑等级值
cost
integer
当前等级升级花费
attack
integer
当前等级攻击力
atkspeed
integer
当前等级攻击速度
atklong
integer
当前等级攻击距离
atkRadius
integer
当前等级攻击半径
用户购买建筑等级:
userBuilder
字段名
类型
备注
id
integer(索引)
自增主键
builderid
integer(索引)
建筑种类编号
level
integer
用户要使用该建筑的最低等级
怪兽模块:
怪兽种类:
monster:
字段名
类型
备注
id
integer(索引)
自增主键
monsterid
integer(索引)
怪兽种类编号
Kind
Integer
1地面怪物,2,水怪,3.空中怪物
describe
txt
怪兽说明
isVipUse
Boolean
True:
会员专属怪兽
False:
普通怪兽
怪兽等级:
MonsterUpgrade
字段名
类型
备注
id
integer(索引)
自增主键
monsterid
integer(索引)
怪兽种类编号
mlevel
integer
怪兽等级值
cost
integer
当前等级升级花费
hp
integer
当前等级血量
defense
integer
当前等级防御力
speed
integer
当前等级移动速度
用户购买怪兽等级:
userMonster
字段名
类型
备注
Id
integer(索引)
自增主键
monsterid
Integer(索引)
怪兽种类
level
integer
用户要使用该怪兽的最低等级
房间模块:
房间:
house
字段名
类型
备注
id
integer(索引)
自增主键
householder
Integer(索引)
房主的id
mapid
Integer(索引)
所选地图
maxatk
integer
关联gamemap中mapid对应行的atknum
maxdfe
integer
关联gamemap中mapid对应行的dfenum
房间内用户关联houseuser
字段名
类型
备注
id
integer(索引)
自增主键
houseid
integer(索引)
关联gamehouse的id
uid
integer(索引)
在该房间的用户的uid
def
boolean
False进攻方,true防守方
道具模块:
道具:
GameUtil
字段名
类型
备注
id
integer(索引)
自增主键
cost
integer
道具花费
name
Varchar(64)
道具名称
discribe
txt
道具描述
道