按:这是交给老师最后的设计总结和感想。一周的紧张忙碌,就像含辛茹苦把儿子拉扯大,倍儿有成就感,大家都很开心。遂贴下此文以作纪念。

本次软件开发大作业,我们并没有按照传统思路,将书上的学生选课系统照搬。而是决定另辟蹊径,做一个不一样的系统。经过初期构思,最终敲定做图书馆借书系统。设计之初,在粗略了解了课本选课系统样例后,发现样例的界面其实很冗余,由于差不多每一个功能都要做出一个界面出来,对用户来说并不能快速直观地找到想要的功能。为达到所见即为所得的效果,我认为可以经过合理的组合,把各项功能直观便利地呈现在用户面前。总之,一切以最好地服务软件用户作为指导原则。

有了这样一个指导原则后,我们正式开始图书馆借书系统设计。最初期由我负责草拟数据库的数据关系及结构。将功能划分为四大模块:人员管理、书籍借阅管理、书籍信息管理、书籍评论管理。后三个模块统一归为书籍管理。从而根据规范拟出数据关系表。经过小组讨论,觉得一致可行,遂做出数据库备用。随后着手 C# 软件设计。对于毫无经验的新手来说,第一个难题就是如何分工。而事实上,在完成整个软件设计后,回顾当初,小组的分工,以及默契程度都是至关重要的。项目初期,分配我做管理模块代码(即人员和书籍信息的管理),吝 YF 做搜索模块代码,陈 JY 做界面设计和登陆模块代码。初期基本任务完成后,试将我与吝 YF 的代码合并(陈 JY 的登陆代码并不影响主功能,故当时决定最后再合)。但遇到了很大的挫折,两个人的编程思路不一致以及对书上样例肤浅的理解、加上所做的代码模块互相在同一界面上交叉引用,导致一系列的麻烦,软件根本无法运行。项目一度停滞不前,大家都很沮丧。只得求助于老师和热心网友。所幸,王利老师认真地检查了我们的半成品,找出了问题所在,大致是静态类以及普通类中静态函数的初始化问题。

解决了这一问题,软件接下来的工作顺利许多。大家逐渐发现最好由一个人来写代码,因为每个人都有自己独特的编码风格,一个相对独立的模块理应由一个人来做较妥。恰好此时陈 JY 的登陆界面代码遇到麻烦,求助于吝 YF。此时项目到达中期,我建议:由我一人做除登陆界面代码以外的其他界面及代码,吝 YF 和陈 JY 全力解决登陆界面的难题。期间各种小问题不断,但总算做出来了。这回的分工所做分为登陆界面和主界面(内含书籍管理和人员管理),各自相对独立,因而合起来也非常顺利。

在项目后期,我们把精力重点放在 BUG 的调试及改正上,并对软件的界面做最后的美化。由陈 JY 负责找出软件 BUG,我负责解决这些 BUG,吝 YF 对界面进行美化。最后由陈 JY 写出项目简介的 WORD 和 PPT 文档。

整个项目历时一周,在项目中期最辛苦的时候,在图书馆从早上 8 点呆到晚上 10 点,甚至吃饭都舍不得踏出图书馆。收获良多,有一些小心得:首先要合理地按照相对独立的模块对组员进行分工,反对机械平均主义。其次养成定期备份成果的习惯,便于出问题随时追溯到上一个版本,对比找出问题所在或是重新做。合并各组员的代码和找 BUG 时要养成写日志的习惯,目的同样是为了快速定位问题源头。最后要加强交流,不论是小组成员内部还是对外诸如老师及网上的高手,以利于纠正和统一思路。

最后感谢我的组员:吝 YF 和陈 JY,以及耐心提供指导的王利老师和热心网友金大哥。对本次软件开发的感想:团队软件开发所需要的情商大于智商。