评教系统——设计的重要性

来源:互联网 发布:数据采集仪的使用方法 编辑:程序博客网 时间:2024/04/28 08:27
 

最近一直在开发教务系统中的评教系统,可以说这个系统的功能可大可小,正是因为这些可大可小、可有可无的功能整的整个系统需求一直很混乱,也导致我一直也没有设计出来一个像样的设计。没有设计的开发,及时就是这个人从需求到开发也会向无头的苍蝇找在一头雾水中不到正确的方向,更别提一个团队两三个人去合作开发了,肯定会乱成一锅粥了。

最近我算是深刻体会到了这一点:没有一个明确的软件需求,没有一个合理的软件设计,这款软件在开发的过程当中真是毫无头绪、一片混乱、最后步履维艰,很难再进行下去。

评教系统本来是我和吉庆我两个一起开发的。开始,我们手里的资料是一个不成熟的教务系统软件和以往提高班前几期做的系统做的需求,因为那个不成熟的系统中设计到好多需求,而且大部分不能够让用户很好的弄清楚是怎样使用。我揣摩它的需求揣摩了有三四天功夫,最后定了几个最常用的,自己又增添了一些自己设计出来的简单功能。(其实这些需求最后做的BLL层得时候才发现,有几个需求逻辑还不简单,都实现的话时间上实在是有些困难)

犹犹豫豫、举棋不定的需求,再加上这次教务系统分的各个子系统之间或多或少都有关联,评教系统要用到基础数据和排课系统中提供的数据接口,再加上设计的数据库都是保存的接口传来的ID号,使整个系统在做到BLL层查询显示信息时非常困难。

因为,评教系统的基础数据(如学生、教师、课程、学院、专业、年级等的基本信息)都要来自基础数据和排课系统中提供的数据接口。两三个数据库之间接口的调用和得到信息的查询与拼接,使得整个系统在不完善的设计中,写到BLL层才发现,从1数据库中得到数据后利用它再去2数据库中查询相应的信息,然后在与1数据库中选出的数据按顺序拼接。有的数据甚至是两三个数据库中的好几张表相互查询调用之后才能找到相应的信息。这样实在是太累人了,一不留神,一个字段拼接错了,显示的信息就会完全错乱!逻辑太复杂了!

需求,需求,设计,设计,最终死在了你们的手中!!!

不得不重新审视需求,把一些旁支末节先去掉,只留下主干功能(几项设置功能和几项查询功能)。重新设计数据库,功能减少了,数据表相应的也减少了很多,由原来的12张表缩减到了5张表。为了减少几个数据表中的重复调用查询,有些数据表中也相应的多加了几个字段,以便保留从基础信息或者排课信息数据库中得到的信息,这样就减轻了BLL层压力。

数据表改了,实体类相应的也要发生变化。接下来就是设计DAL层的类和方法,然后设计BLL层的类和方法。因为这次功能相对减少了许多,就是对几个评分指标、评分选项进行设置,然后对评价结果进行不同条件的查询,所以没有用到设计模式。BLL层大多是returnDAL层得方法,然后就是为了达到显示的效果出现的几个利用循环拼接DataTable的部分,最后就是需要解决大数据量的用到的一个事务的整体读入和回滚。(对事务的学习和理解在接下来的博文中会有涉及)

 

通过这次重新更改需求、对软件进行重新设计,我深刻的体会到了需求的驱动性、设计的导航性。对于开发软件来说,没有明确的需求就像航船失去了前进的方向,只能在无尽的大海中漫无目的的漂泊;合理的软件设计就像群狼中的头狼,带领着整个团队前进。