第 3 期
2020 年 3 月 10 日
计算机教育
Computer Education
中图分类号:G642
56
基于MVC 设计思想的Java 实验案例优化
卢慧雅,王 磊
(北京信息科技大学 信息管理学院,北京100192)
摘  要:分析Java 程序设计的实验教学现状和存在问题,针对信管专业应用型人才培养的特点,提出将符合软件工程规范的实验案例引入Java 课堂,构建基于MVC 思想的设计方案,阐述该实验案例的实施过程并分析说明该实验方案的特。
关键词:  Java 语言;异常处理;
MVC 设计思想;模块化;迭代0 引 言
理工类院校的面向对象程序设计课程普遍选
mvc的controller
取Java 作为授课语言,Java 具有语法严谨、与平台无关、安全性和健壮性良好等特点,同时也是JavaW eb 开发的前导课程。传统的实验教学模式是在理论授课结束后,安排一定学时的综合实验,试图达到理解和巩固知识模块、提高设计与编码的能力。然而,部分实验存在过程单一、内容枯燥乏味、综合拓展不足的问题,造成学生兴趣下降,教师的教学效果和学生的动手能力都不尽如人意。
1 实验存在的问题
以信管专业面向对象程序设计课程的综合实验为例,通常教师下发实验任务后不再手把手指导,学生依据需求规格说明自行设计、编码、调试、发布。学生反映知识点庞杂、晦涩,设计理念不清晰,不知从何着手,普遍感到逻辑思维难度大,基本都是以“做完”实验为目的,而不是追求“做好”实验。实验答辩审核时,教师限于时间和精力,也是快速检查学生的系统功能和界面是否符合要求,很少关注编码细节。学生的设计思路五花八门,代码质量参差不齐,很难达到实验设定目标。传统的实验步骤如下:首先对系统需求进行功能梳理,没有模块化设计,少数类文件承担全部功
基金项目:北京信息科技大学2019年度高教研究课题“信管专业软件测试选修课程的教学现状及教学模式优化研究”(2019GJYB19);教育部2018年度产学合作协同育人项目“基于新工科背景下的大数据测试基地建设”(201801040007);北京信息科技大学2018年度教学改革项目“基于PBL+TOPCARES-CDIO 能力指标的《专业导论及信息系统基础》课程设计与探索”(2018JGYB22)。
第一作者简介:卢慧雅,女,讲师,研究方向为大数据开源框架、软件自动化测试,
133********@qq。能;接着完成臃肿的源程序编码,对系统功能进行抽样检查;最后发布可能有隐患的系统。
出现上述问题的主要原因在于:虽然某些章节结束后会有对应的实验课时,但不是综合实验,知识点串结较少,仅需少量源文件就能完成功能要求,系统设计随意、粗糙。最后在综合实验环节,学生还没有训练好软件工程化的思想,不懂得模块的概念和重要性,自然没有能力进行分层设计,软件质量差强人意。
2 实验案例优化
2.1 实验内容的优化
实验初期,教师不刻意教授模块化设计思想,让学生通过自主探索或者依据经验进行系统设计和开发,
当大部分同学出现思维混乱、编码乱套的时候,教师适当介入,引导学生思考问题出现的原因,查阅资料并讨论可行的解决方案。
教师此时引入一种基于MVC 思想[1]的设计方案,让学生初步认知概念和模式。MVC 是model ,view ,controller 的简称,强调以业务功能为核心,将系统在逻辑上分为视图表现层、业务控制层和实体模型层,各层彼此独立又相互协作。不同层各司其职,有利于通过工程化、工具化管理程序代码,可维护性好、复用性高、部署快速,具有较低的生命周期成本。
文章编号:1672-5913(2020)03-0056-03
第 3 期57
实践论坛
优化后的实验步骤在梳理系统功能后,进行模块划分和组件设计,对模块实施迭代编码,接着开展单元测试,测试通过才能持续集成,直至系统功能检查无误,然后发布稳定的系统。
实验内容强化模块化思想,结合案例驱动[2]或者项目导向[3]的教学模式,引导学生理解设计模式,训练学生一步步迭代完成实验。
2.2 实验方式的优化
实验方式由原先的线下编码、线下提交、教师人工审核升级为线下编码、线上提交、平台自动审核。考虑信管专业特点,选取信息处理类的典型实验案例,经过裁剪、整合后部署到学院的实训教育平台[4]上。系统经过科学的模块化设计,每个模块再被拆分为若干子任务,子任务有顺序要求,挂接在里程碑节点上。按照软件工程化的要求,依次进行迭代开发,学生不能任意选择某个节点,必须严格按照开发流程进行。教师从繁琐的辅导和答疑中解脱出来,随时在后台查看实验进展情况,有针对性地提醒和讲解,能够专注于实验案例的业务
规则定制,提高教学效率。实验进度如图1所示。图1 实验进度
3 实验案例实施
3.1 实验目标和要求
课题组选择模拟文本界面的“团队开发人员调度软件”作为综合实验案例,系统以实现员工显示及团队人员调度为目标,以数组作为存储数据的载体,完成数组的创建、显示、查询、增加、删除等操作,考查多个知识点的掌握情况:多态、对象的关联、异常的发生与处理[5]等。学生在实验过程中理解面向接口的编程方法,学习模块化设计。实验过程采取单人单组、独立开发的方式,要求实现以下功能。
(1)软件采用单级菜单方式工作。当软件运行时,在主界面根据指定的数据显示公司所有成员列表。
(2)根据菜单提示,基于现有的公司成员,组建一个开发团队。组建过程包括将成员插入团队中,或从团队中删除某成员,还可以列出团队中现有成员。
(3)开发团队成员包括架构师、设计师和程序员,既有总人数限制,也有人员类型数量限制,如果操作不符合预设规则,将触发和抛出自定义异常。
(4)菜单某项操作成功后,按回车键将重新显示主界面。
3.2 实验步骤
教师依托实训教育平台,详细讲解模块化分层的概念和设计方案,指导学生完成实验步骤的调整,即将
系统划分为list视图模块(对应表现层V)、manage管理模块(对应控制层C)和domain实体模块(对应模型层M)
,如图2所示。
图2 系统模块分层结构
2020
58
计算机教育
Computer Education
结构符合MVC 设计思想,为学生以后进行Java Web 的学习打下扎实基础,起到水平提升和能力拔高的作用。
教师在实验过程中循序渐进地引导学生发现问题,培养学生主动思考的习惯,能够有效提升Java 实验教学的质量和效果,使学生真正具备解决复杂问题的工程能力。
4 结 语
该实验案例已应用在信管专业不同年级的实验教学中,实验学时可自适应裁剪和扩充。考虑低年级学生的理解程度与知识储备,可以选取前4学时作为章节实验,只完成公司员工的列表功能,即将静态字符串数组中的数据逐项构建为具有继承结构的员工对象,加载到动态对象数组中,由公司员工管理类负责把对象信息打印在屏幕上。团队人员管理类和异常类不参加系统工作,也没有人机交互功能,但MVC 设计思想依然能够嵌入实验目标和内容里;还可以将完整项目放入高年级的专业实训中,合计16学时作为综合实验,要求实现全部业务逻辑,即系统提供数组的维护操作,从而完成团队的人员调度。团队人员管理类和异常类参加系统工作,人机交互功能丰富,MVC 设计思想更加深入。
教学实践表明,大部分学生普遍感到实验的形式有趣、内容新颖,对理论知识的掌握以及对动手能力的提高帮助很大,同时能够进一步消化理解抽象的模块化编程理念,熟悉软件项目的工程化规范。
教学模式与信息技术与时俱进,可以继续探讨如果实训教育平台使用大数据的方式,采集和存储多维教学信息,辅以人工智能进行决策分析,个性化的教学效果和反馈会更加突出,以便尽早实现专业知识与技能素养的双向思维贯通。
其中list 视图模块为主控模块,由界面显示类负责显示菜单和退出系统,通过调用服务模块提供的方法完成人机交互功能;manage 管理模块为实体对象的管理层,响应视图模块发送的请求,由公司员工管理类维护公司员工、团队人员管理类维护团队成员,同时处理由异常类传递的各种失败信息;domain 实体模块包含员工类及使用的设备信息,起到基础数据支撑作用。这里体现了分而治之的MVC 设计思想,组织结构清晰、系统功能明确,使学生基于问题驱动加深认识和理解模块化的软件工程思想。
每个模块再依据子任务,设计不同数量的组件类即单元文件。学生在“学练问”的过程中脑海已有比较清晰的认识,所以组件类的创建就不感觉难度了。指导学生继续完成实验步骤的调整,即每一个单元文件迭代编码结束后都使用模拟数据进行测试,检查功能是否正确和健壮,既要选择合理的模拟数据验证功能是否完整,还要使用非法的模拟数据检验异常的捕获和处理情况。学生在不同场景中深刻理解异常的发生原因,能够掌握异常的捕获和处理方法,同时也能渗透单元测试[6]的概念和方法,体会软件质量的重要性。
节点分配的任务经过编码和测试后,进行线上提交,实训教育平台预置的评价规则对源文件自动审核,若不符合规范将拒绝提交操作,直至学生的修改符合要求为止。经过若干任务的迭代,系统搭建比较完整了,实验进入验收和总结阶段。3.3 实验特
MVC 设计思想在高年级的Java Web 课程才会详细讲解,尝试将知识点进行适度前移,并与实验融合,
以问题为导向激发学生对模块分层的兴趣,理解“良好的设计是成功的一半”“MVC 设计思想是系统的核心”[7]。
实验依托实训教育平台,将系统功能划分为若干模块,使用分层迭代的软件开发思路,模块
参考文献:
[1] 张雪敏. 浅议MVC 设计模式在JavaWeb 中的作用[J]. 科技风, 2018(22): 58-59.
[2] 乔善平, 荆山, 隋永平. 基于案例驱动的Java 程序设计课程实验教学探讨[J]. 计算机教育, 2018(6): 145-148.[3] 王景胜. 项目式学习 (PBL) 在C 语言教学中的应用[J]. 现代职业教育, 2018(11): 32.
[4] 卢慧雅, 王磊. 基于Java 实训平台的独立实践模式研究与实施[J]. 计算机教育, 2018(5): 1-4.[5] 马玉凤, 姜晗. JA V A 编程中异常处理的方法和技巧研究[J]. 电子世界, 2019(7): 80-81.[6] 赵卫东, 彭偲. 软件单元测试实验课程教学改革[J].软件, 2019(7): 212-216.[7] 耿祥义, 张跃平. Java 设计模式[M]. 北京: 清华大学出版社, 2009: 78-88.
[8]
司丽娜, 刘嘉, 赵进超. Java 程序设计基础课实践教学中的分层教学模式研究[J]. 中国教育技术装备, 2016(10): 146-147.
(编辑:郭田珍)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。