采访传统软件工程课程学生总结(二)
本文传统软件工程课程学生总结(一)的补充,采用相同的调查问卷,并同时对部分问题另作探讨。
通过作为本次采访对象为计算机学院2010届学生吕舜、陶正、王睿俊、魏嘉亮、赵继伟、邹鸿渐团队,他们这学期在软工课上开发的项目是2D弹幕射击游戏:《东方梦世界》
项目简介:
《东方梦世界》为基于“东方Project”同人系列作品世界观的,利用国外开源图形引擎Allegro的,一款独立制作的STG游戏。本版本是吸收了本游戏1.0版本的经验与教训,重新开发的2.0版本。借鉴了《面向对象建模方法》课程中完成的同类型射击游戏的开发经验,重新组织了软件架构,采用了全新的方法进行编写。
目标用户:
本软件主要面向对动漫文化有一定兴趣和了解,并有一定弹幕射击类游戏经验的人群。
代码量:1W+
主要调查问题:
1. 你们在编写软件的过程中,是否运用了软件工程的某些方法学?
答:整个项目设计大致符合瀑布模型的要求,软件由的初期的1.0版本,到目前还在开发的2.0版本,历经两次的迭代。而且,在每个关键性的步骤(需求分析,功能说明,系统设计)等,都有详实的文档。
2. 你们在整个开发过程中,是怎样进行分工合作的呢?
答:我们从初期开始就有了明确分工
|
主要负责人 |
参与人员 |
需求分析 |
赵继伟 |
吕舜、赵继伟、邹鸿渐 |
关卡设计 |
陶正 |
陶正、魏嘉亮 |
框架搭建 |
吕舜 |
吕舜 |
底层实现 |
赵继伟 |
赵继伟 |
界面绘制 |
魏嘉亮 |
魏嘉亮 |
关卡内容及库的编写 |
邹鸿渐 |
陶正、王睿俊、邹鸿渐 |
测试及维护 |
王睿俊 |
吕舜、陶正、王睿俊、魏嘉亮、赵继伟、邹鸿渐 |
3. 你们是否以文字的形式,进行了具体的进度安排,最终的执行结果怎样:
答:我们在《软件开发计划书》里明确规定了项目的整体进度安排:
|
预定开始日期 |
完成日期 |
里程碑 |
需求分析 |
2012-9-28 |
2012-10-14 |
完成需求分析文档 |
关卡设计 |
2012-9-28 |
2012-10-21 |
构造所有关卡的完整数学模型 |
框架搭建 |
2012-10-15 |
2012-11-11 |
完成软件的基本架构 |
底层实现 |
2012-10-15 |
2012-11-11 |
|
界面绘制 |
2012-10-15 |
2012-11-11 |
|
关卡编辑及库的编写 |
2012-11-12 |
2012-12-2 |
软件可以在本地测试运行 |
测试及维护 |
2012-12-3 |
2012-12-16 |
完成软件的发布版本 |
在整个开发过程中,我们遇到了许多潜在的问题,所以导致表中的进度与实际不符,但是大体时间是差不多的,由于我们团队成员对于游戏编写的热情都很高,能够以极大的热情投入到软件的设计与开发当中,这保证了我们能够按时交纳最终版本。
4. 你们的需求分析是怎样进行的呢?
由于我们即是开发人员,又是这类游戏的资深玩家,所以需求分析对于我们而言,并不十分复杂,我们只需要列明同类软件的关键功能,已经我们结合自身经历,希望增加的功能即可。
我们的软件具备了以上两大部分功能,可以从我们的需求说明中看出:
以下内容摘自《需求说明》
1.1 菜单界面的需求
1.2 观看游戏录像的需求1.3 玩家操作的需求
1.4 敌人单位的需求
。。。。。。。。。。以下省略若干字。。。。。。。。。。。。。。。 |
5. 你们有没有定义软件的具体验收标准?
答:经反复试验后,程序基本不出现bug,程序中所有功能模块均可正常运作后即可交付。其余文件只要编号正确,没有损坏,内容正确即可。
6. 能否谈一下你们在解决一个具体的问题上,是如何通过团队协作来进行技术公关与编码的?
在我们的项目里,有一个脚本模块,它的作用是:通过编写特定的脚本来实现游戏当中AI的移动。我们尝试了开源的脚本引擎,但总感觉那些解决方案太过于“重量级”,集成到我们的项目中后,会非常臃肿,于是,我们开始尝试自己编写轻量级的脚本引擎。整个工作由技术较强的魏嘉亮同学领衔,我们基本是围绕着他进行一些工作,我们认为,对于学生尝试进行软件工程的实现,技术上的难题做到团队解决是比较困难的,因为不是所有的成员都能够在短时间内具备那样的能力。在我们组里,技术问题是由技术最好的同学来解决的。
7. 软件是否发布,是否用于具体的用户
我们的软件没有发布,我们本身就是用户
8. 项目感受:
成员感受:
1. 赵继伟: 通过这个项目,我进一步熟练了C++的使用,同时,实现了“儿时”的梦想,这是我参与开发的第一个游戏,意义非凡
2. 魏嘉亮:作为项目的“首席程序员”,我能够在学习C++知识的同时实现自己的梦想,这种感觉很棒!
3. 吕舜:一个多学期以来,我们写了这么多代码,这连我自己都没有想到,同时,这个项目也锻炼了我们的团队协作能力。
4. 邹鸿渐:我本人最大的感受是学习了开源2D引擎的使用与二次开发
5. 王睿俊:我最大的感受是学会了C++,为编译大作业打下了良好的基础。
6. 陶正:未发表意见
9. 对传统软工课程的看法
吕舜:软工课程让我亲身体验了从拟写需求分析到计划书到编码的整个过程(缺少发布环节,笔者注),让我了解了真正软件开发的整个流程,是一次宝贵的体验,但是,软工课上的文档,好像对我们进行实际项目帮助不大,最大的帮助是帮助我们理清了思路:我们都要做什么(用户需求分析),需要哪些技术(计划书),整个的流程与进度安排,但是,文档很多是“为了写文档而写文档”,对编码的帮助其实不大
10. 对传统软工课程的期望
赵继伟:希望能够减少上课时间,多给编码留出时间,同时编码时间最好能够算作上机时间,并换成学分
王睿俊:课上讲的还是太过理论,比较无聊,还是实际的编码更能够学到东西
笔者的感受:
整个项目工程量比较大,可见他们付出了大量的课余时间,投入到了项目的开发过程中,我想,这在很大程度上由于他们对弹幕游戏的热爱,在看了他们亲自的项目演示之后,我个人认为,这个项目十分成功,起码在视觉效果上不输其他同类游戏,但遗憾的是,这个项目没有公开发布,目前用户还仅仅是开发人员,但是,我相信,这一项目,若在今后能够发布,一定会吸引弹幕游戏的爱好者,获得成功!