武星 杜亚洲 罗莹 王伟东
摘要:随着国家信息建设的高速发展,软件已经成为人们生活中必不可少的组成部分,软件开发能力作为信息管理与信息系统专业学生的最基本的应用型技能,是专业课程学习的重点。为满足应用型本科院校《软件开发与设计》课程的教学要求,在当前课程教学的基础上实践部分教学采用项目驱动教学法,应用统一建模语言(Unified Modeling Language,UML)贯穿课程,旨在建立和完善课程的教学方法和教学逻辑,探索建立以学生为核心的实践教学模式。
关键词:软件开发与设计;案例教学法;项目驱动教学法;统一建模语言;应用型本科
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2022)29-0077-03
1 引言
随着国家信息建设的高速发展,软件已经成为人们生活中必不可少的组成部分,软件开发的需求量也在逐年增长[1]。《软件开发与设计》是信息管理与信息系统专业(以下简称信管专业)的专业课程。课程全面覆盖本科院校信管专业大学基础类课程,有机地将软件开发编程与软件过程管理相结合设计教学环节。根据应用型人才培养方针,学生学习软件开发技术是奠定从事信管类工作的基础。此次教学改革引入项目驱动教学法和统一建模语言UML的元素为主要教学改革内容,通过UML形式化建模对软件构建过程进行描述,加强学生软件设计的实践能力,要求学生以团队形式开发项目,以此实现《软件开发与设计》培养学生掌握软件开发基础技能的教学目标。
2 《软件开发与设计》课程教学改革的必要性
《软件开发与设计》课程所涉及的技术层面繁多,且对技术掌握的熟练程度较高,在实际的教学实践中发现,这门课程具有专业性强、实践性高、规模大的特点。目前课程教学中大多采用案例式教学法,传统的讲授可以将软件构建理论和软件编码的知识点进行突出,学生对软件的建模工具的使用很有兴趣,可以遵循案例绘制出建模的图例,但是在上机实践过程中,面对独立的项目学生往往过于注重编码实现的部分,而不能很好地对项目中的软件分析和建模,表现为教学过程理论和实践脱节,导致学生对课程缺乏兴趣,学生脱离案例之后不具备独立构想、设计、开发软件的能力。
《软件开发与设计》是一门要求学生掌握软件开发的课程,在软件定义中,软件包括两个部分:程序和文档,而在传统教学过程中只采用案例式教学法[2]。单一的案例往往会束缚学生的思维,且不能有效地考核学生独立设计开发软件的分析能力、建模能力和编码能力,导致在课程理论知识与实践结合不紧密,主要表现在以下三个方面:
2.1 教学手段不利于培养计算思维
计算思维是运用计算机科学解决实际问题的思维活动[3-4]。在信管专业学生课程学习过程中任课老师平时并不会刻意提出计算思维的概念。课程现状表现为授课教师根据课程安排选择一个与课程相关的软件项目案例,分析案例软件的实现过程,学生通过仿照案例撰写文档和编码实现,这样的教学手段会导致学生思维硬化,不利于培养学生独立学习和思考怎么来实现“获取需求-构建模型-编码实现”的软件开发步骤。传统教学方式容易固化学生思维模式,不能够有效地去培养学生形成良好的计算思维和发挥学生独立设计和开发软件系统的想象力,因此《软件开发与设计》课程在基本的案例讲解后,需要由学生参与项目动手实践,从而培养学生动手实现能力和计算思维的应用能力。
2.2 学生独立开发能力差
课程一般以案例教学作为主要内容,最终限制学生思维拓展失去学习兴趣。经过这样机械式学习的学生,当遇到实际问题需要开发软件时仍会存在大量的问题,如:
1)软件需求不知道如何获取
软件需求获取是整个软件开发的基石,需求获取不清晰或不完整则会导致软件项目失败。而只学习案例的学生不了解如何获取需求和描述需求,导致课程学习效果不佳。
2)软件模型不知道如何建立
软件建模是降低开发风险的有效措施,复杂系统一般不能直接物理实现,软件建模就是帮助学生理解和设计软件的关键步骤,仅学习案例往往不足以学生掌握软件建模工具缺乏实践。
3)软件编码不知道如何实现
课程涉及技术层面较多,对学生知识的掌握程度较高。目前教学现状中,代码与设计相脱离,课程前后难以衔接,学生缺乏由模型构建代码的编码能力。
2.3 教学内容条理不清晰
软件开发的一般流程包括需求分析、概要设计、详细设计、编码实现、软件测试、软件交付等步骤[5]。理论课程与实验课程的比例为1:4,在较短的理论课时的前提下,教学中对软件开发过程的每一步的步骤如何执行和细化条例不够清晰,学生在学习过程中只能对照课程中的案例去了解开发流程中的每一项的输入项和输出项是什么,但是要求学生獨立完成每一步的步骤时,仍有很多细节没有完全掌握。
3 统一建模语言概述
应用统一建模语言(Unified Modeling Language,UML)到课程当中辅助学生去理解软件开发过程中各个环节的教学改革方法。UML是面向对象设计的建模工具,独立于任何具体程序设计语言[6-7]。UML是一种面向对象的建模方法,支持可视化建模 [8]。因此,应用UML可以增加课程的交互性,有利于提升学生学习兴趣。UML模型能够贯穿于整个软件开发的过程中,是软件开发人员获取系统需求、分析和设计等活动中的有效手段。应用UML的优势在于在开发流程在每个步骤中使用UML建模帮助学生梳理整个课程学习过程中的逻辑和条理,其次UML建模能够很好地理解软件如何用户需求中抽象出软件的整体架构,而且在物理实现部分同样可以使用UML中的模型。UML主要图例结构如图1所示。
4 《软件开发与设计》教学改革策略
针对目前课程设计当中存在的不合理问题,主要从教学方式、教学案例及项目选取及UML辅助教学等视角进行教学改革探索。
4.1 案例教学法及项目驱动教学法
目前在《软件开发与设计》课程中案例教学法在教学过程中主要体现在:课程的知识讲解中引用实际的软件系统案例——教学系统管理平台,使用该平台的初衷在于更贴近学生,但是单一的案例局限性较高,教师对案例进行分析和编码教学,学生可以基本掌握该案例的设计、开发和文档的实操过程。但是脱离课程案例和教师指导,学生自行设计和开发软件则会出现实践能力不足的情况。案例教学法的仍有相应的优势——若选取的案例能够使学生共鸣则能起到促进作用,因此课程教学改革仍保留使用案例教学法。
项目驱动教学法的教学过程以学生为核心,教师作为指导的角色。教学法表现为学生发挥独立思考能力和创新能力,以小组的形式拟定项目。小组的形式能够考验学生的适应团队开发环境,锻炼团队协作能力。以项目驱动学生综合应用专业课程知识,独立开发组织、设计和开发软件。
项目驱动和案例教学法相结合能够有效地解决了传统课程教学中不利于计算思維培养的问题和学生独立开发能力差的问题,课程安排中教师在理论教学部分采用案例教学法,使用具体案例引入理论知识,提高学生学习兴趣。在实践教学部分采用项目驱动教学法,由学生分组选择实际的项目,动手实操加强理论知识掌握,锻炼学生的独立开发能力,二者相得益彰从而提高课程教学水平。
4.2 案例教学法案例选择标准
目前使用教学管理系统平台作为案例学生在学习过程中对系统功能需求理解不够透彻,案例选取不当会降低课程教学效果。因此案例的选取应该根据学生的实际情况选取,选取的标准应该分为以下几个方面:
1) 案例能够与课程内容安排相契合,能够将案例软件与软件生命周期的各阶段对应,实现案例完全贯穿课程的理论讲解过程,有助于学生完整地学习到软件开发各个阶段的详细内容。
2) 案例的难度和复杂度要适中。案例难度过高或者案例过于复杂,一方面会导致学生理解有困难,另一方面会打击学生的信心,降低学生的积极性。案例难度过低或者过于简单,不能达到提升学生能力的目的,也会让学生在学习时降低兴趣。因此案例的选取需要教师根据学生的接受能力动态地调整,以实现既能够锻炼学生同时还能够让学生学有余力。
3) 案例应该契合学生工作学习场景。案例和学生的日常生活越接近,越能调用学生的积极性。本课程不再使用教学管理系统平台,而是根据本院医学院校的性质和应用型高校的宗旨,选择电子处方软件作为教学案例,通过生活中的案例引起学生共鸣,加深学生对知识的理解。
4.3 UML在课程中的应用
课程包含两个部分:理论教学部分包含基本理论和案例分析,实践教学包括软件设计、软件开发和文档编写,UML可以贯穿整个课程过程。
首先,理论教学部分采用案例教学法:
1) 在需求分析阶段,讲解UML用例图的理论知识,教师引导学生使用用例尝试获取课程案例需求,强化获取需求能力和描述需求能力。
2) 在概要设计阶段,讲解UML系统用例图、系统领域类图、活动图和状态图的理论知识,结合需求分析案例的系统架构和概念模型。
3) 在详细设计阶段,讲解UML协作图、包图、模块类图、时序图等相关理论知识,结合系统模型分析案例,学生学习模块化思想,并设计模块间接口。
4) 在编码实现阶段,讲解由UML类图到编码的实现理论,结合案例分析设计阶段中的UML类图使用面向对象的语言实现方式。
5) 在测试阶段,讲解UML组件图和协作图的理论知识,讲解不同的测试阶段使用不同的UML 图作为工作的基础。学生学习参照UML图例设计各阶段测试用例,验证案例系统功能的完整性。
6) 在软件交付阶段,讲解部署图的理论知识,分析案例在物理建模和部署时系统的结构。
各阶段所使用的UML图例如表1所示。
其次,实践教学部分采用项目驱动教学法:
1) 在项目需求分析阶段,应用UML用例图描述需求,同时将对需求的描述形成需求规格说明书。
2) 在项目概要设计阶段,应用UML系统用例图、系统领域类图、活动图和状态图等建立项目架构和概念模型,形成概要设计说明书。
3) 在项目详细设计阶段,应用UML模块类图、时序图及协作图等图例描述系统架构,此外需要对软件数据库建模,形成详细设计说明书和数据库设计说明书。
4) 在项目编码实现阶段,使用前端技术完成项目的界面设计和实现,编码参考详细设计中的模块类图,形成项目源代码和模块开发卷宗。
5) 在项目测试阶段,应用项目UML组件图和协作图等,设计测试用例,对应UML系统用例验证系统功能,形成项目测试计划文档和测试分析文档。
6) 在项目交付阶段,应用UML部署图,部署项目的物理模型,形成软件配置管理计划,用户手册和操作手册。
各阶段所使用的UML图例与理论教学阶段对应,实践教学阶段性产出如表2所示:
课程以项目答辩作为考核手段,并撰写项目开发总结报告。UML建模在《软件开发与设计》课程中完整贯穿这个教学过程,应用UML之后课程安排条理性更合理,同时每个阶段有对应国家软件开发规范的产出,有利于培养学生规范软件开发流程。
5 结束语
综上所述,对《软件开发与设计》课程的改革主要以案例教学法为理论教学基础,以项目驱动教学法为实验教学基础,应用UML贯穿《软件开发与设计》课程,旨在建立和完善课程的教学方法和教学逻辑,探索建立学生为核心,教师为辅导的课堂模式。建立学生主动创新、团队协作实践的教学模式。培养学生计算思维,形成计算思维设计和解决生活中的实际问题的良好习惯。培养学生良好的软件开发规范,使用软件工程理论结合UML建模,有条理地开发符合国家软件开发标准的软件系统。培养学生独立思考、开拓创新的理论实践能力,对标课程应用型人才培养要求。
参考文献:
[1] 薛瑞祥,丁桦.软件开发行业上市公司绩效影响因素分析[J].市场研究,2020(7):57-60.
[2] 皇甫伟,涂佳静.基于案例式教学方法的通信软件设计课程教学改革[J].中国现代教育装备,2020(11):90-92,112.
[3] 陈玥.基于计算思维的中学信息技术教育的研究[D].扬州:扬州大学,2012.
[4] 蒲秋梅,马倩,朱丽平.面向计算思维的多媒体技术课程教学改革[J].中央民族大学学报(自然科学版),2017,26(1):71-76.
[5] 徐锡阳.基于高端科技的计算机软件开发技术研究[J].电脑编程技巧与维护,2020(10):14-15,20.
[6] 商鹏.《统一建模语言UML》综合型实验教学改革方案研究[J].电脑知识与技术,2021,17(19):209-210.
[7] 夏克付,李心科,章晓勤.基于UML的电子商务系统建模研究[J].计算机与现代化,2009(6):30-33.
[8] 吴慧林.基于UML的辅助教学系统建模与实现[J].安徽水利水电职业技术学院学报,2021,21(2):58-61.
【通联编辑:王力】