您的位置:首页 > 其它

在线考试系统开发进行时——未完成的总结

2010-08-11 03:33 281 查看
到今天为止,二十五天的开发计划也就完毕了。因为一些意外情况,有一部分功能没有完成。不过按照计划,依然需要中断一下。

整个系统的整体图如下,我们组负责红色部分:





因为这个项目相对来说比较庞大,所以划分出来这么六个模块,然后每个模块中再进行那个合作开发。



六个模块在功能是比较独立的,除了一些必要的数据来源。采用的是同一个数据库,在设计时需要考虑不同模块之间相互关联的表。



因为是这样一个比较大的合作项目,版本控制是必不可少的工具。这里我们使用Svn来进行版本控制,服务器使用VisualSvnServer来进行管理,客户端为visual svn 和tortoise svn。



有了这些工具的支持,经过分组,各组确定自己的需求、功能。然后就开始了自己的开发之旅。



这样分模块的优点是很明显的,首先各组成员只需了解自己负责模块的功能即可。也就是可以让开发人员的注意力更加专注一些。这样开发效率也会提高。并且还有一点就是这样的模块设计可以使得在以后进行更改的时候不会造成牵一发而动全身的局面出现。



上面说了整体的部分。然后再来说我们这一部分。



以前的几篇文章也说过了,在开发在线考试系统之前,开发了一个题库管理系统,所以这个模块也算是熟悉。不够开发到后来其实也就使用了原先系统中的一个抽题的算法。其他的也是新设计的,因为后来数据库发生了变动。



我们组开发的时候也是采用分模块的方法来做的,以前的合作开发都是采用分层的方式来开发的。因为考虑到分层开发一般都是开发重复的内容,效率比较高,比如说我开发DAO层,那么我只需要完成对数据库的操作即可,这样的话要使用的技术比较单一,开发速度比较快,但是有一个问题是所有的开发者都需要了解所有需求,不然的话开发出来的DAO层和BLL层就不能完全覆盖需求。这也就导致在后期页面部分调用的时候就会出现没有BLL的支持的现象。



这次分模块开发也会有一点问题就是各个模块之间会有交叉点,这里也是系统关键的地方,因为这块要是配合不好系统整体可能最后就跑不起来。这里的解决办法就是沟通,不断的沟通(文档)。让合作者知道你需要调用它那块的那些接口。



在开发过程中遇到的唯一的变动就是关于数据库设计的改变,并且是在我负责的模块即将完成之后发生的变动。个人觉得之所以出现这种情况,是因为刚开始的时候没有很详细的讨论数据库的设计。



所以在最初设计的时候要让所有的开发者都能重视,并且发表自己的观点。不要在以后开发中存在争议,这实在是大忌。



关于我们负责的模块也就总结这些内容了。



现在回过头来看总结,里面很少涉及到技术细节。由此可见在某种情况下技术不是问题,问题是设计。把技术比作知识,那么设计就是思想。虽然没有提到技术,但是思想却是通过技术体现的。相辅相成,但是也要抓住大头儿。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: