好文档 - 专业文书写作范文服务资料分享网站

湖南科技大学onlinejudge系统开发

天下 分享 时间: 加入收藏 我要投稿 点赞

五、 详细设计分工

首先假设设计是一个团队,将所有设计部分分成小组开发,这样将我在同一设计过程要处理的问题大大简化以及要面对的技术减少,有利于开发过程的计划与管理、同时消减各种不同语言代码差异造成编码困难。

根据需要的技术以及系统的结构,我将系统开发组一共分成了五个小组(web前台、php后台、数据库、判题模块、运维),其中每个小组的工作以及技术比较专一,负责内容和编辑环境根据设计需要有部分差异。组与组之间的交互具体设计由开发过程中视情况而定。

1、Web前台组:

要求:熟悉html标签、css样式表、js脚本语言。根据页面内容编写php表示页面,在不同页面尽量使用统一风格,尽量使用分离的css样式表,使用简单的js实现表单的验证。

任务:编写静态页面,包括题目列表页面、题目展示页面、题目提交页面(与题目展示页面合并)、代码转台页面、代码展示页面、排名页面、综合主页、比赛页面、FAQ页面。

资源:5天时间(不包括维护以及其他组设计过程中修改)、设计环境Windows XP Sp3、Adobe Dreamweaver CS5、测试服务器

2、Php后台组:

要求:熟悉php代码基础以及常用函数以及工作原理(SESSION、POST、GET等)、熟悉Mysql常用语句。根据各个页面的功能要求嵌入相应的处理代码、实现页面功能,同时要探索php与linux C交互问题(socket)实现后台和判题模块的通信。

任务:根据已有的静态页面和功能需求完善各种页面,包括题目列表页面、题目展示页面、题目提交页面(与题目展示页面合并)、代码转台页面、代码展示页面、排名页面、综合主页、比赛页面,同时要编写纯后台处理程序,包括登录登出处理、代码接收以及处理、比赛数据处理。

资源:5天时间(不包括维护以及更新功能)、设计环境Windows XP Sp3、Adobe Dreamweaver CS5、CoreAMP集成环境。

3、数据库设计组:

要求:熟悉Mysql数据库和基本操作语言、会使用phpmyadmin工具。根据网站功能及对使用数据分析建造数据库并编写一些相应的处理语句。

任务:在系统需求分析之后立即构造数据库并在设计过程中根据设计要求进行修改,同时配合后台组和判题模块组的要求编写处理语句。

资源:3天时间、设计环境WindowsXP Sp3、CoreAMP、phpmyadmin。

4、判题模块组:

要求:熟悉linux操作系统及其常用shell和基本api函数、熟悉C\\C++语言(线程、进程、数据库、socket通信)。编写linux下的judge程序,要求与后台和数据库进行特定的交互。

任务:在后台发出信号之后将信号打入判题队列,分别进行编译和测试运行操作、并将结果存入数据库。其中过程包括取出代码并写入缓存、危险代码判断、编译代码、权限以及资源限定、重定向输入输出、测试运行代码、监控程序运行、回收结束信息,比对运行结果、代码运行结果入库。

资源:20天时间、操作系统Fedora Core 10、编辑器gedit、编译器g++。

5、运维组:

要求:熟悉linux操作系统、理解各个模块的功能以及工作原理、理解用户的需求。

任务:搭建LAMP环境并将各个模块布置到位、初始化系统并监视其运行、体验用户感受、测试各个功能、将遇到的bug调试并将有问题的模块回炉。

资源:5天(搭建环境并部署系统)、操作系统linux(详细版本待定)、Apache Tomcat、Mysql、PHP、G++/GCC。

各组任务的依赖关系

前台组 后台组 数据库组 判题模块组 运维组

图2、任务小组依赖关系

根据依赖关系,前台组、数据库组和判题模块组可以同时开始设计开发、而后台组需要得到前台组的产品才能开始、运维组在所有其他组开发完成时才能开始。由于本次开发比较特殊(只有我一个人,单线程),所以开发线路很单调,基本不会出现两个组同时开发的情形。在实际分组开发中,我更注重的是各个分组之间的效率以及工作的质量,避免短板效应的发生。适当的调整工作的分配问题,在有问题的环节注意加强。

六、设计说明

本系统纯手工编写,不借鉴抄袭其他系统源代码,开发周期较长,难度系数比较大。此系统在功能上初步实现Online Judge在线判题,并将在之后的修改更新中实现更多功能以及强化稳定性的安全性。

作为一个“项目经理”,我感觉在计划设计过程中头脑比较清晰,即便在实际开发中遇到的问题与计划中不同甚至部分相悖。实际操作证明了有实际需求分析以及设计分组能使开发过程更容易理解,更方便维护和管理。目前我具备了一些软件开发的基础技术,有一定的结构分析能力,能简单的将项目划分;不足之处在于部分技术不是很了解导致某些模块的开发周期与计划相差很大,另外还有技术安排和分工可能有不平均的现象,这个需要在以后实际的操作中改进了。

在项目开发前期主要是对项目的可行性分析、需求分析以及开发的预算,这对后面的设计开发非常重要。实施中主要是按照计划书进行编码,同时对部分细节动态调整以优化系统设计。项目收尾需要对项目的功能审核,另外也要做相应的设计总结。

目前这个项目已经完成了75%左右,按照目前的进度可以在十二月中旬开始内测,在今年年底正式投入运行。

李坚 2011-11-30

湖南科技大学onlinejudge系统开发

五、详细设计分工首先假设设计是一个团队,将所有设计部分分成小组开发,这样将我在同一设计过程要处理的问题大大简化以及要面对的技术减少,有利于开发过程的计划与管理、同时消减各种不同语言代码差异造成编码困难。根据需要的技术以及系统的结构,我将系统开发组一共分成了五个小组(web前台、php后台、数据库、判题模块、运维),其中每个小组的工作以及技术比较专一,负责内容
推荐度:
点击下载文档文档为doc格式
0yoz81m1ql8xswm2yhl07916095ebr009d1
领取福利

微信扫码领取福利

微信扫码分享