APP下载

基于BCE的移动选题系统研究与实现

2020-04-22杨国清

微型电脑应用 2020年3期
关键词:移动平台数据库系统

杨国清

摘 要:针对目前高校毕业论文指导现状,开发基于移动平台的毕业论文选题系统成为必然。Web的移动应用具有较好的可移植性,对客户端要求较低,适合于本研究项目的实施。根据BCE设计模式的规范,开展需求分析与系统设计工作。结合高校选题活动的时序性和并发性特征,确定设计类在时间轴中的位置。在系统实现时,重点关注移动端UI设计与并发控制,提升用户友好性体验,提高系统的应用性能。

关键词:BCE; 数据库系统; 移动平台; Web应用

中图分类号: TP311.52

文献标志码: A

Abstract:In view of the current situation of university graduate thesis guidance, it was inevitable to develop a theme selection system based on mobile platform. Web-based mobile applications have good portability, lower requirements for clients, so they are suitable to implement the research project. According to the BCE standards, requirements analysis and system design were conducted. Based on the time sequence and concurrency characteristics of the theme selection activities in colleges and universities, the position of design classes in the timeline was determined. We focused on the mobile UI design and the concurrent control during the implementation of the system to improve the user friendly experience and the application performance of the system.

Key words:BCE; Database system; Mobile platform; Web application

0 引言

近年来,我国高校在校学生人数屡创新高,每年的毕业论文指导成为大学教师一项繁重工作。国内部分高校安排毕业指导任务的做法是:根据学生数与具有指导资格的老师数进行配比,每个老师按学号顺序分配多名学生。然后,老师与学生一对一协商确定论文选题。该安排方式具有随机性,存在的主要缺陷是:学生事先不知道老师的专业领域和研究方向;老师不了解学生的专业特点以及研究意愿。该缺陷可能导致毕业论文选题的针对性偏弱,后期论文指导的难度增加。

毕业论文双向选题模式,能够更好地将指导老师和学生的专业特点结合起来,充分调动学生与指导老师的积极性,是做好毕业论文指导工作的前提与基础。

目前,国内高校选题系统多为毕业论文系统的子系统,是一种基于个人电脑的信息系统,使用的便捷性、互动的及时性相对较差,与智能手机广泛使用的现状相背离。建设基于手机移动平台的毕业论文选题系统,成为一项具有现实意义的软件开发工作。

1 系统分析与设计

1.1 BCE设计模式概述

BCE(Boundary—Controller—Entity:边界—控制器—实体)是一种软件设计模式,该模式强制性地把应用程序的输入、处理和输出分开。边界(Boundary)是用户的可视化界面,用于展示数据,并接受用户的输入。控制器(Controller)接受用户请求并决定调用相关实体模型和边界,并向用户返回相应的结果。实体(Entity)表示业务的数据模型和业务处理逻辑。被实体返回的数据是中立的,与数据格式无关,一个实体模型能为多个边界提供数据支撑。[1]

BCE模式的层次结构如图1所示。控制器接收到边界用户的请求时,根据请求的具体内容,决定调用哪个实体模型来完成处理工作。然后,实体模型用业务逻辑来处理用户的请求并返回数据。最后,控制器使用相应的边界格式化实体返回的数据,并通过表示层展现给用户。最典型的基于BCE模式的应用为JSP+Servlet+Javabean框架。

1.2 需求分析

需求分析的主要任务是结合应用场景进行现场调研,获取第一手原始资料,确定用户业务活动流程以及功能需求,并对场景中的数据和业务活动加以提取和固化。[2]

(1) 选题活动前

管理员提前批量导入毕业生和具有指导资格的老师个人资料,含联系电话、登录账号、初始密码等信息。学生填写自己的专业特点等个人资料。老师填写专业、职称、研究方向等信息。老师撰写选题题目和题目的专业要求、研究目标,提交到系统留存。老师可提前将某个选题题目指定给某个学生,该学生自动申报该题目,并获得老师的批准。该选题题目在待选题库边界中不可见。

(2) 选题活动中

每个学生只能申报一个选题,申报完成后系统会以短信方式通知老师,以便老师及时批复。学生可在与相关老师口头协商后,自擬选题并填写该选题的研究目标与研究计划。学生提交自拟题目,向老师申报该选题,等待老师批复。老师批准之前,学生可撤销申请。老师批准后,学生不能自行撤销申请,只有与指导老师口头协商后,由指导老师进行撤销操作,删除该申请。老师在浏览申报记录后,根据选题的专业要求与申报学生的专业特点,决定是否同意该申报。老师同意或拒绝时,系统通过短信平台发送消息给学生,告知批复结果,以便学生及时重新申报选题。老师批准的学生总人数和学生专业数不能超过限额。老师可根据实际情况修改选题内容,包括题目、专业要求、研究目标等。

(3) 选题活动后

管理员进行选题终止操作,学生和老师将只能查看当前选题及申报情况,不能改变选题状态,也不能修改选题内容。管理人员统计当前选题情况,包括未申报学生、未获批学生、老师批准人数、学生选题结果等。

1.3 实体类设计

结合前期从客观现实世界获取的需求分析结果,展开概念模型设计工作,得到传统意义上的实体-联系模型。运用BCE设计理念,将概念与联系进一步升级转化为相应的实体类。这一阶段的工作可理解为传统数据库设计,但需要在传统的关系上添加相应的操作行为。实体类的行为特征主要描述数据业务逻辑,属于BCE模式中E的范畴。

实体类设计是数据库系统开发的重点,是一项基础性工作。如果实体类设计不到位,将会加大后期程序实现的难度。实体类设计中属性的确定采用传统的数据库理论与方法,主要做好实体类的规范化检查,使它们的属性符合三个范式的基本要求。与些同时,确定实体的主键、外键、自定义约束等完整性要求,并设计其物理索引,确定其物理结构。

选题系统中有4个主要实体类,它们是学生、选择、题目、教师。选题系统实体类如图2所示。

1.4 边界类设计

选题系统中有三个主要参与者,他们分别是学生、指导老师、管理员。参与者对系统功能的使用,可以描述为用例图。用例图是指由参与者、用例,边界以及它们之间的关系构成的用于描述系统功能的视图。用例图主要的作用是获取需求、指导测试、指导工作流。每一个用例都有一个边界类与之相对应,用于提供与参与者的交互。[2]

选取学生参与者的用例为典型代表,展示BCE模式中边界类的外在形式。学生用例如图3所示。

1.5 控制类设计

控制类用于调配实体类与边界类的工作,协调两者在时间轴的先后次序,形象地说:控制类起到“上传下达”的作用。针对每个用例,在产生一个边界类的同时,也可以产生一个控制类。比较普遍的做法是:将某个子系统中所有用例统一起来,产生一个核心控制类,负责处理当前子系统的外部事件,实现控制流。在选题系统中主要有学生选题申报、指导老师批复、管理员管理三个二级应用场景,因此可以产生三个核心控制类,分别是学生控制类、老师控制类、管理员控制类。

在BCE模式中,能够体现控制类核心作用的图形为序列图。序列图表示系统内部对象之间的互动,在参与者执行某个用例期间,控制系统内部的运作流程。序列图关联了类图与用例图两方面,并且将系统要素在时间上的先后关系体现出来。选择学生用例展开典型分析,可以得到学生序列图,如图4所示。学生序列图体现了学生控制类在BCE模式中的中心地位。[3]

2 系统实现

2.1 实现框架选型

基于B/S架构的Web应用,可以采用Struts2+Spring+Hibernate(SSH)、ASP.NET MVC+ADO.NET Entity、Python Django等应用框架。这些框架各有优点和不足。选题系统是一个轻量级的Web移动应用项目,选用ASP.NET MVC+ADO.NET Entity框架,可以较完美地实现基于BCE模式的设计内容。后臺数据库服务选用与ASP.NET配合良好的SQL Server系统,编程语言采用C#语言。[4]

(1) 边界类的实现

(2) 控制类的实现

采用ashx一般处理程序或者aspx.cs页面处理程序。

(3) 实体类的实现

采用ADO.NET Entity相关技术。实体类的数据业务活动,可以向下渗透到业务逻辑层,通过存储过程实现实体类的操作行为,从而更好地体现数据模型与用户界面相分离的原则。例如:登录时,调用后台服务器中的存储过程筛选学生实体,根据查询结果返回不同的状态值给登录界面,从而判断登录成功与否以及登录失败原因。

(4) 前后台数据交互的实现

移动界面采用主流的HTML5+CSS3开发。前台使用HTTP协议访问信息服务器,获取后台数据库服务器中的数据。获取到的数据形式为JSON和XML等,数据被解析之后,使用UI框架进行封装,得到相应的用户数据界面。前台使用cookie和session等技术手段,在不同页面间传递用户数据,实现用户验证、参数传递等功能。

2.2 移动端UI设计

基于B/S架构的移动端应用具有多平台共享、可移植性强的特点。电脑端、Android移动端、IOS移动端等多平台可以协调统一,不需要二次开发。通过移动端浏览器直接访问Web信息,相比于APP应用程序方式,用户不需要下载客户端软件,使用方便。移动端的特点是屏幕小,呈现的内容有限;操作方式独特,触屏操作。因此,要充分考虑移动端开发的上述特点,认真做好选题系统各个用户界面的设计工作。

(1) 适应性设置

与电脑端Web页面相比较,应该在移动端页面HTML源的头部设置内容宽度为满屏,相应代码行是:“〈meta name="viewport" content="width=device-width, initial-scale=1"/>”。 同时,将页面的body节的css样式内容设置为“margin:0;  padding:0;”,提高页面的可利用空间。

另外,BCE模式设计中得到的边界类在移动端会被分解为众多子类,控制类也应该做出相应的调整。

(2) 简洁原则

pushHistory();

window.addEventListener("popstate", function(e) {location.href = 'target.aspx?rand=A' + parseInt(Math.random() * 1 000); }, false);

function pushHistory(){var url = "#"; var state={title: "title", url: "#"};

window.history.pushState(state,"title","#");}

2.3 并发控制

学生选题的流程一般为老师先上传题目,学生在指定时间开始申报。由于学生非常重视毕业选题工作,在系统开放之初,会产生大量的并发请求。如果不进行数据访问的并发控制,会产生“脏读”、“幻读”等形式的错误,造成数据不唯一或者数据实时更新异常。

事务在执行某项数据操作之前,常常需要判断其先决条件是否满足。例如,学生A申报某个题目时,需要先判断该题目的状态,只有其状态为“可申报”时,才能在“选择表”中新增该题目的申报记录。读取状态与新增记录之间存在时间差,如果允许其他学生在该时间差内读取数据,则会取得错误的题目状态值。故此,一定要在业务逻辑中,将事务的所有操作当成一个整体,在事务读取数据时,也要对数据加排它锁,锁定相关记录行或整张数据表,完成全部事务操作后,才打开锁。实现学生申报选题的并发控制核心代码如下:[5]

SqlTransaction trans1 = conn.BeginTransaction();//新建事务

SqlCommand cmd1 = conn.CreateCommand();

SqlCommand cmd2 = conn.CreateCommand();

SqlCommand cmd3 = conn.CreateCommand();

cmd1.CommandText = "select count(*) from questions with(tablockx) where [status]=1 and qid=" + Qid;//定义查询语句,获取当前题目可申报状态

cmd2.CommandText = "select count(*) from stuTtea with(tablockx) where [status]!=3 and stuid='" + newstuid + "'";//定义查询语句,获取当前学生已申报状态

cmd3.CommandText = "insert into stuTtea(qid,stuid,reTime,okTime,[status],[isStudel],[isteaRe],

[isTeaEsc]) values("+Qid+",'"+newstuid + "',getdate(),getdate(),4,0,0,1)";//添加申请

cmd1.Transaction = trans1;//将命令对象关联到事务

cmd2.Transaction = trans1;

cmd3.Transaction = trans1;

int quesN = Convert.ToInt32(cmd1.ExecuteScalar());//當前题目的可申报状态

int stuOkN = Convert.ToInt32(cmd2.ExecuteScalar()); //学生的已申报状态

if (quesN > 0 && stuOkN == 0){

cmd3.ExecuteNonQuery();

trans1.Commit();}

3 软件应用情况

最近两年,本研究所设计的移动选题系统,在笔者所在高校得到推广使用。软件上线后,运行平稳、响应及时、使用方便,得到本校教师与学生的良好评价。该软件由教师、学生、管理员三大功能模块构成,可以在电脑和手机等多种平台运行,内外网结合,实现了手机端的学生选题与教师批复、电脑端的用户管理及题目管理、管理员数据导入导出、短消息提醒等关键功能,达到了本研究的目标。

4 本研究的不足

本研究所提出的解决方案基于集中式数据管理方式,随着系统应用规模的扩大,系统会产生“瓶颈”效应,应用性能下降,响应时间变长,用户友好性体验变差。因此,本研究的后续工作方向是建立分布式数据处理机制,将庞大的数据处理工作通过网络分解到不同物理位置的服务器上,同时做好数据访问的负载平衡控制,实现系统整体性能的提升。

5 总结

移动选题系统植根于手机移动平台,师生采用多方式交互,做到了毕业论文双向选题的公开透明和及时准确。同时,在信息传递上更快捷、更方便,改变了传统的信息系统仅能在电脑端使用的现状。本课题研究意义在于探索信息系统在新形势下的表现形式,提供一种更具有亲和力、学生乐于接受的Web应用方式。课题研究成果在普通高校有一定的应用前景,推广使用后可产生较好的社会效益和经济效益。

参考文献

[1] 刘琼.基于MVC架构的英语教学系统设计及应用[J].微型电脑应用,2018(11):107-109.

[2] 黄蓝会.基于UML进行软件需求分析的研究[J].微型电脑应用,2016(7):9-11.

[3] Joseph Schmuller.UML基础、案例与应用(第3版)[M].李虎,李强,译.北京:人民邮电出版社,2018.

[4] 吴善财.ASP.NET项目开发实战密码[M].北京:清华大学出版社,2016.

[5] 曾建华.Visual Studio 2010(C#)Web数据库项目开发[M].北京:电子工业出版社,2013.

(收稿日期: 2019.10.12)

猜你喜欢

移动平台数据库系统
计算机数据库系统在信息管理中的应用
基于移动式培训评估系统的培训闭环管理研究与探索
对分布式数据库系统的安全分析
基于移动平台的电力营销系统应用探析
数字化校园中统一移动平台的实践与探索
基于互联网+环境下大学生自主学习移动平台设计的研究
基于众包的数据库信息查询处理方法
数据库系统在信息管理中的使用
电子商务企业营销观念浅析
浅析移动互联网营销