APP下载

基于软件工程过程的模拟实践教学研究与应用

2021-11-05黄振华刘翠焕张波张丽娟张鹏绚刘萌

中国新通信 2021年18期
关键词:模拟实训

黄振华 刘翠焕 张波 张丽娟 张鹏绚 刘萌

【摘要】    《軟件工程》是软件工程专业的一门理论与实践并重的核心课程。基于SimSE游戏的软件工程过程与实践教学的研究与应用以满足《软件工程》的实战化授课需求,也为后期软件工程专业教学研究与实践提供必要的支撑和参考。

【关键词】    软件工程过程    SimSE    模拟    实训

引言:

《软件工程》的实践教学可以在项目计划、需求分析、概要设计、详细设计、编码与测试、过程管理(沟通管理、需求管理、项目管理、人员培训、软件过程改进、风险管理以及收益管理等)各阶段中使用模拟方法建立项目成员间一致的交流方式[1],以此提高学生的沟通分析能力、团队协作能力、撰写软件开发文档能力。

SimSE模拟是软件工程中单个操作者角色的教学模拟器,操作者扮演软件开发团队中相应角色,按事先设定好的任务和实践过程完成角色规定的工作任务,提交相应的工作成果。SimSE游戏软件的图形界面为虚拟办公室和相关的项目信息,如需求文档、设计文档、开发工具和代码等,操作者可以利用管理知识和提示信息来作出管理决策,在一定时间和预算范围内完成项目的开发[2]。SimSE游戏软件的模型构建器则是教师根据软件项目开发过程自行设计的实践方案,便于学生可以以相应角色进行“游戏”模拟不同工作岗位的软件项目职责。

本文研究以软件工程过程为主线,模拟真实软件开发过程和软件项目管理,使学生在模拟过程中以不同角色完成规定工作和提交产品,并按规则给出评价分数。

一、研究背景与意义

软件工程是指导计算机软件开发和维护的一门工程学科,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护[7]。基于软件工程分阶段生命周期的软件过程,包括:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、RUP、敏捷过程与极限编程等,其中定义了运用方法的顺序、应该交付的文档资料、质量保证和协调变化的管理措施,以及各开发阶段任务完成的里程碑等细化内容。

基于以上内容,各高校软件工程课程教学方法大致是基于案例或项目开发的实践与应用讲解、从不同角度把抽象的理论与方法具体化讲授、适当增加课堂实践内容及调整兴趣度开展教学、采用小组合作和模拟角色实施软件开发过程演练、以创新课程评价内容和方法为目标的激励授课方法等。从教学、实践和效果评价来看,都是以不同角度、不同力度和不同目标为软件工程教学总目标服务,具有一定的局限性。

以游戏形式的基于软件工程开发过程的模拟角色的教学实践软件平台目前在国内还没有明确提出及实践应用。本文的研究即是从软件工程课程教学目标与实训需求出发,依据软件工程开发过程理论指导,研究基于角色的模拟真实软件开发场景的实训平台,解决软件工程理论教学和实践效果与真实软件开发与管理过程效果的不一致问题,在满足民办高教实训需求方面是具有实用价值,也为后期软件模拟平台的开发提供基础设计参考。

二、实训平台研究与设计

软件工程实训模拟软件系统功能包括:用户注册、角色选择、规则制定、场景选择、执行过程监控、检查评价等,教师和学生均可使用浏览器通过互联网进行模拟实训。教师通过用户注册、规则制定、场景选择、检查评价等功能进行基于软件开发模型的软件开发过程规则制定、场景设定、评价策略与分数计算;学生通过注户注册和角色选择功能模拟用户、项目经理、系统分析师、软件设计师、程序员、测试员完成软件开发模拟过程后得到总评分数;系统基于时间按设定规则自动执行,并提示学生完成规定工作和提交产品;系统评价总分包括:过程分数是根据学生完成工作过程是否符合规则设定得到;产品分数是根据学生提交产品的质量得到;系统支持相同项目在某时间点后不同分支执行过程的结果图数据对比。

系统采用B/S架构风格、事件驱动架构风格和基于规则的系统架构风格。将系统部署在Web服务器,进行负载均衡配置,数据库服务器单独设立,方便实训课程增加而导致的持久化的数据量加大,可以按需扩展。对实训软件场景页面变化不大设计使用前端缓存技术和WebSocket技术,提高页面交互的实时性和访问速度。由HTML5+CSS3+JavaScripts构建前端页面,利用前端缓存技术,浏览器将不经常变的页面内容保存在本地,以便下次访问时直接加载。将前端缓存技术与WebSocket API 结合,使浏览器和服务器只一次握手就可直接快速传送数据,性能优于AJAX轮询机制。

模拟实训系统使用事件驱动架构风格是解决在系统自动执行规则和评价过程中角色和规则的触发关系问题。系统设计是首先由教师基于软件开发模型对执行规则和评价方法制定;其次是用户在使用时先确定角色和开发模型(即规则),再由系统自动执行规则和评价,要求实训用户角色和规则是解耦的。使用事件驱动架构风格,即可以进行规则的集中注册,也实现了用户角色与规则的解耦;实现了通过角色的确定和规则的选择在系统自动执行过程中,系统自动调用触发事件所注册的规则,完成参与角色之间按规则交互的应用场景。在采用事件驱动架构风格进行编码时,使用Spring框架,消息队列管理完全基于配置,简化了编码难度,结构清晰简单,可维护性好,降低了项目开发难度;在功能扩展方面,便于修改规则和增加规则主题,以及不同规则间的组合。

模拟实训软件将基于规则的系统架构风格应用在整体三层架构中的中间层----应用逻辑层,解决制定规则集、规则解释器、选择器规则制定与解释和系统自动执行问题。教师通过表示层来编辑规则,应用逻辑的实现代码抽象为规则,生成规则集的执行逻辑;学生则得到由系统按规则自动执行后的结果评价。采用基于规则的系统架构风格进行设计,首先基于软件开发模型特征抽象规则集;其次是从应用程序代码中分离执行决策,基于Prova+Mandarax设计规则引擎则/解释器,用于系统基于时钟自动执行规则时监控执行状态,便于根据时钟进行状态更新;然后是实现用户接口接受数据输入、解释业务规则、跟踪执行的事件等模拟功能。其中规则集和状态管理器为标准部件,其他为可变部件。采用基于规则的架构风格设计成功的将规则集、规则解释器、选择器、工作内存以及解释问题有机的结合到一起,即便于规则的制定和解释,也实现系统的自动执行。

考虑到后期的开发工作及相关系统的集成与数据共享问题,采用SOA架构模式+ESB总线封装集成实训相关业务,实现应用集成;为了解决各系统间数据共享问题,采用数据仓库技术对实训数据进行定义、清洗、分发和传送,实现数据集成。基于软件工程过程的模拟实训软件架构设计如图1所示,下层为上层提供服务。

在软件工程实训模拟软件系统中,数据存储的关系模型主要部分如下:

学生(学号,姓名,性别,地址,电话,用户类型,密码,登录名,文件,班级ID,用户ID);

班级(班级ID,名称,类型,状态);

教师(教师ID,姓名,授课时间,用户类型,登录名,密码,工号,班级ID,用户ID,课程ID);

课程(课程ID,课程名称);

课程成绩(学号,课程ID,课程成绩,评价);

用户(用户ID,登录名,密码);

用户选择角色(用户ID,角色ID,用户角色,选择角色时间);

角色(角色ID,名称);

角色提交文档(角色ID,文档ID,提交时间,保存地址);

文档(文档ID,文档名称,文档类型,文档类型ID);

文档类型(文档类型ID,类型名称)。

三、结束语

本文研究实践证明,软件工程课程教学过程采用游戏的形式,将学习与娱乐有机的整合到一起,是可以有效的提高学生学习积极性和学习效果。使影响软件开发项目是否成功的各类因素及其组合通过游戏形式对学生和教师产生深远的影响,通过不断调整实施策略来保证软件开发项目成功的高比率。

参  考  文  献

[1] James S.Collofello. University/Industry Collaboration in Developing A Simulation Based Software Project Management Training Course[C]//Thirteenth Conference on Software Engineering Education and Training, March, 2000, Austin, Texas, USA:161-168.

[2] 李广原,胡秦斌. 软件工程课程模拟教学法初探. 计算机教育. 2011年第13期. 92-95

[3] 韦宇炜,聂笃宪. 软件工程课程设计教学模式探讨[J]. 考试周刊,2010(11):159-160

[4]  SimSE OnLine.

[5] 李廣原,马楠. 国外软件工程教学法初探. 计算机教育. 2011年第1期. 92-95

[6] Jazayeri M. The Education of a Software Engineer[C]//Proceedings of the 19th International Conference on Automated Software Engineering. Linz,Austria:IEEE,2004.

[7] 张海藩,牟永敏. 软件工程导论. 清华大学出版社. 2013年8月第6版. 5-15

猜你喜欢

模拟实训
依托互联网实施商务英语函电实训教学
平谷区委组织部:打造党员实训基地 拓展培训方式
液压课程开放式虚实结合实训教学体系的构建研究
浅谈如何上好中职生实训课
提升中职机械专业钳工实训教学有效性的几点尝试
浅析职业院校实训中心管理机构设置
丙酮—甲醇混合物萃取精馏分离过程合成与模拟
让学引思:让学生做主
一个高分子模拟计算网格的作业管理
工业机器人模拟仿真技术在职业教育中的应用浅析