软件工程实习总结
一.实习题目
c/s模式下的网络游戏平台(类似于联众)
二.题目要求
a. 平台上至少能够提供两种游戏(仅供两人参加)供用户选择。
b. 服务器端实现用户账号、密码的管理,监控用户上下线状态管理。
c. 服务器端实现用户游戏数据及文本通信数据的中转交换。
d. 客户端能够连接到服务器并选择游戏种类和游戏桌面,并参与游戏。
e. 客户端能够通过服务器进行文本通信。
三.小组成员及分工
组长:黄? 飞
成员:黄? 飞? 王润琛? 陈? 磊 韩振军 王向富
四.人员安排及进度
a. 人员安排:
黄? 飞:系统设计,文档管理:2周,系统的集成与总结:1周
陈? 磊:编写项目计划文档:0。5周,需求,概要文档的编写:2周
王润琛:系统设计:1周,程序主要模块的实现:2周
韩振军:需求的收集与文档:1周,软件测试与分析:1周
王向富:编写软件测试计划:1周,软件测试:1周。
b. 进度:
第一阶段 项目启动(05-8-22----------05-8-23):? 实习分析;项目简单分工。
第二阶段 需求分析(05-8-24----------05-8-26):? 确定软件性能;功能;编写文档。
第三阶段 概要设计(05-8-29----------05-9-01):? 确定总体架构,程序模块。
第四阶段 详细设计(05-9-02----------05-9-07):? 设计客户端,服务器端细节。
第五阶段 软件实现(05-9-08----------05-9-16):? 编写源代码。
第六阶段 软件测试(05-9-19----------05-9-21):? 完成测试及文档。
第七阶段 项目总结(05-9-22----------05-10-07):? 总结提高,答辩。
五.系统架构
?整体架构图:
六.实现的功能与未实现的功能
a. 实现的功能:
客户端:
1)用户登陆:用户运行客户端软件后,弹出登陆框,用户通过输入帐号和密码登陆平台,高级实现程度有记住密码选项。
2)用户注册:登陆框有注册选项,供用户注册新平台帐号。用户需要输入新的帐号名,密码,以及一些基本资料:姓名,性别,出生日期,邮箱。
3)用户修改资料:用户可以在登陆后修改个人基本资料,除帐号外其他资料均可选择修改。
4)用户选择游戏:用户登陆后,平台界面即会显示所支持游戏,用户可选择要进行的游戏。平台与游戏捆绑安装,在高级实现程度下服务器新增加游戏通过新的安装文件提供给用户。
服务器端:
1)批准新用户注册:基本实现程度为由服务器自动批准,既用户名不与现有用户冲突并且用户名和密码长度符合规范(用户名长度不超过十个单词或字母,密码不低于6位)及予以批准。高级实现程度为服务器与管理员双重批准,既服务器批准后只具有参观游戏和聊天等功能但不能参加游戏,需等管理员批准后赋予正式的用户权利。
2)删除用户:服务器管理员可以从数据库删除任意已注册用户(所有用户资料项同时删除)。为防止误操作等情况发生,高级实现程度中删除用户操作只是暂时禁止该用户登陆,数据库保留该用户资料一周(或数周,示服务器硬件资源)后再自动删除。
b. 待实现的功能:
1.用户登录的限制
用户在不同地点以相同的用户名登录。
注册时对新用户名的符号(如非法字符)检查
2.用户的异常掉线
在游戏过程中,玩家的中途异常掉线,服务器对玩家的在线信息的监听,并及时修改。
3.游戏的添加
此平台须在对游戏进行修改的情况下使游戏嵌入平台,尚缺少良好的对游戏的管理。
七.系统演示
a. 客户端;
b. 服务器端。
八.实习总结
这个项目所涉及的技术比较多,主要包括:网络通信,数据库通信与操作,用户的界面设计。我们采用vc 语言进行编程,主要调用mfc中的类函数,其中自己编写了一些类函数,具体的细节见详细设计文档。
作为一个游戏对战,它所能允许的最大的游戏玩家是衡量好坏的一个重要标准,对于每个用户以产生独立的线程对其进行调度,控制就成为该对战平台的一个重要问题。
解决方案:
建立两个线程池(csendthreadpool,crecvthreadpool),主要负责管理线程的生成,结束和任务分配等工作,线程池类相当于一个容器,在容器中运行很多个线程,应用程序只需要将工作交给线程池,线程池负责协调和分配内部工作。
九.经验总结与参考书目
经验总结:
1.本软件在初期的设计中不是十分的完善,致使在进行编码的阶段不断地修改,使得软件件项目的进度和程序的质量受到很大的影响。
2.协同开发组员间的配合很重要,尤其是各个部分如果不按照一定的标准,就使组员间的合作出现很大的问题。我们这次本来打算使用vc。net,但是由于有些组员不是很熟悉,后来改用mfc。