[JAVA考试系统]项目总结



ITOO项目共分为两个方向:JAVA、.NET。

而考试系统又是JAVA方向中,业务逻辑最为复杂的一个。

在被'考试系统'坑了'100天'以后,我仍然期盼能得到一个相对完美的结局。


项目开发周期:

11.10-01.27:参与ITOO1.0考试系统开发

01.28-02.16:担任ITOO2.0考试系统组长


第一次迭代

主要以:需求确定、原型设计、实体设计,为主。项目的开发只是涉及到单表的CRUD。

(一)需求和原型的设计

  立足于去年.NET的考试系统。这样的做法有利有弊:

1、利

  通过运行的系统,直观了解考试系统已有的需求,上手快

  通过去年产品经理对考试系统的展望,立足于用户体验,为JAVA版考试系统提供了建设性的意见

2、弊
  受到已有设计思路的禁锢。往期的开发人员更加肯定已有的需求、原型设计的认知。而新的开发人员主要通过点击已有项目来了解需求,接受往期开发人员的催眠。

  在探讨阶段尽可能的向产品经理展望的角度来设计,但是却受到往期开发人员"是否能实现?数据量?性能"的阻挠。


(二)实体设计

关于业务逻辑的实体也就20个左右,而各式各样题型的处理,却是占了70%的比重。

   所以,引入了"大题型类"和"题型类"的概念(如图所示)。以实体结构相同的作为同一种"题型类"作为划分。且相同实体结构的题型的页面展示方式是相同的。

详细请参加'第二次迭代'之设计思路的改进。


第二次迭代

迎送了一个'盛试'时代,马上面临就是下一个'盛试'。

(一)高度、心态、百家争鸣    

    任谁都知道'考试系统'是最具有难度的!此难度并非在于技术的实现,而在于产品经理对考试系统的种种期待,更包含了面对如何多刁难的客户,产品经理以一敌百的血腥场面,所带来背后的支持。因为害怕达不到产品经理的高度,而望之却步的一种责任!更多的是怕您失望! 

    可能是因为我们的目光短浅尚且达不到您的高度!既然选择了这里,就要100%的相信!


    跟随着一期,一路摸爬滚打,也渐渐对这种码农的开发模式渐渐产生了倦意,甚至是抵触。总是想着停下脚步,追一追进度,又或者学习底层的设计思路、公共模块的知识拓展。却不知道,正是在这种'思维的切换过程中',消耗了大部分的时间和精力。


    二期的开发人员大多都是从.NET考试挖墙脚过来的,所以对于业务的理解方面具有一定的优势。从某种角度而言,也带来另一种的设计理念。当两种设计思路出现出入的时候,出现'百家争鸣'的场面是必然的。正是这种'百家争鸣'的场面,也让考试系统取长补短,而争鸣的百家自是受益匪浅!所以,同样感谢你们。


(二)设计思路的改进    

于2015年2月07日晚上7:40正式开始,10:00结束

本次争论,主要从集中两点:1)考试配置;2)题库设计

1、考试配置

    核心:考试-->考场-->考生-->试卷/模板,一路绑定

    JAVA先前的设计思路:前一个实体绑定后一个实体后,生成第三张表的自增ID,后绑定下一个实体,以此类推。见图1

    从'实体设计'角度考虑,是缺乏灵活性的。打个比方来说,如果我现在要交换'考生'和'试卷'的绑定顺序[考试-->考场-->试卷/模板-->考生],那么已有的实体设计思路是满足不了这种要求的。

    所以,为了增加'实体设计'的灵活性,见图2。

(图1)

(图2)

(二)题库设计

1、JAVA版考试已有的设计思路:

   所以,引入了"大题型类"和"题型类"的概念(如图所示)。以实体结构相同的作为同一种"题型类"作为划分。且相同实体结构的题型的页面展示方式是相同的。


特点:通过'大题型类'来管理'题型类'

利:若新增的"题型类"的表结构已经存在,则直接利用已有逻辑代码可以实现,不需要增删改查。

弊:若新增的"题型类"的表结构不存在,则需要新增加代码来处理。


2、.NET版考试系统的设计思路:将所有题型的所有属性,汇总到一个实体中。

特点:将题型中所有可能用到的属性,都汇总到一个实体中

利:通过页面控件的拖拖拽拽,可以动态的生成一种新题型

弊:数据库字段设计冗余;若'新题型'中的字段在这个大实体的属性之外,同样面临着改动代码的问题。这不过不仅仅是增加代码,而是需要CRUD.


相比较而言,两种设计思路上,同样体现了不足:

    JAVA版在面临添加新题型时,需要增加代码

    .NET面临同样问题时,却面临着改动实体、改动代码的严峻考验

    如何使得在不改变原有代码基础上,动态加入新题型[已实现],已经相应的业务逻辑以及显示方式[难点],已经成为考试的一个瓶颈。


终于走到了,文章的末尾。
我想告诉你:
    谢谢考试系统的小伙伴们的陪伴。因为思维的碰撞远比闭门造车要有益。
    项目功能的结束固然重要,但是'团队'更加重要!
    考试系统,你一定要好好的。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。外观上也要做到合理化,考虑到用户多对网页较熟悉,应尽量向这一方向靠拢。在设计语言上,已决定使用 Java 语言进行编程。 其中管理界面要做到操作简单,易于管理。总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用。 2.4.2 外部接口 硬件接口,在输入方面对于键盘鼠标的输入用标准的输入/输出,对输入进行处理。在输出方面的屏幕和打印机连接以及使用用标准的输入输出进行处理。 2.4.3 内部接口 各模块之间采用函数调用,参数传递,返回值的方式进行信息传递。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输 2.5 运行设计 运行程序,执行登录模块,如果是新用户,就进入注册模块,已注册的用户直接进行身份验证进入主界面,通过主界面可以进行在线考试,此时执行考试模块,也可以查询考试成绩、修改个人资料等功能。 2.6 系统数据库设计 数据库是本系统核心和基础。它把本中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。 2.6.1 数据库概念设计 开发在线考试系统时,为了灵活地维护系统,设计了后台管理员模块,通过后台管理员模块可以方便地对整个在线考试系统进行维护。这时,必须建立一个数据表用于存储所有的管理员信息。管理员信息实体E-R 图如图6所示。当考生成功登录在线考试系统后,可以根据需要选择考试的科目,考生不同可能选择的考试科目会不同,系统必须提供一些参加考试的课程,供考生选择。这时,在数据库中应该建立一个存储所有参加课程的数据表。考试课程信息实体E-R图如图7所示。 
### 回答1: 题目中提到的Java考试系统源代码并不具体,因此我无法给出具体的回答。Java考试系统可能是一个基于Java语言编写的计算机应用程序,用于管理和评估学生的考试成绩和知识水平。 根据题目的要求,可能需要实现以下功能: 1. 用户登录与注册 2. 试题库管理: - 添加、修改、删除试卷 - 添加、修改、删除试题 3. 考试管理 - 生成考试试卷 - 移除考试试卷 - 设定考试时间 4. 考试答题 5. 评分与结果查询 6. 数据统计与报告生成 为了实现这些功能,需要考虑到数据库的设计与实现、 用户交互界面的设计、代码的模块化等方面。同时还需要考虑一些非功能性需求,如安全性与性能等。 总体而言,Java考试系统是一项复杂的软件工程开发项目。编写源代码需要对Java语言的掌握和实际开发经验,同时也需要认真思考系统的需求和整体架构。 ### 回答2: Java考试系统是一种基于Java语言开发的在线考试平台。它主要包含三个部分:后台管理系统、考生端和考试端。这些部分相互配合,实现了在线考试的全过程,包括题目的发布、考生的注册、考试题目的展示与答题、答卷的批改与分数统计等功能。 后台管理系统是整个系统的核心部分,管理员可以在该系统中进行试题管理、用户管理、试卷生成等工作。这部分代码包含了Java Web开发的许多技术,如Servlet、JSP、JDBC等。除了传统的增删改查功能,还有试卷自动生成、题目分类等高级功能,能够极大地提高管理员的工作效率。 考生端是供考生进行考试的界面,通过该界面可以进行注册、登录、查询成绩等操作。这部分代码实现了Java Web中的Servlet、JSP和JavaScript等技术,使得界面交互更加友好,大大提高了考生的考试体验。 考试端是整个系统最关键的部分,它通过前端的JavaScript和后端Java代码实现了试卷的呈现和评分。这部分代码中最重要的是后端的Java代码,实现了多线程的评卷功能,保证了系统的高并发性和稳定性。同时,通过JavaScript和AJAX等技术,使得试卷呈现和提交等操作更加流畅。 综上所述,Java考试系统是一个相对完整、基于Java Web技术架构开发的在线考试平台,通过后台管理系统、考生端和考试端的紧密配合,实现了在线考试的全过程。该系统的源代码中运用了Java Web开发中的许多核心技术,对于Java Web开发初学者有很大的借鉴意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值