本站小编为你精心准备了软件工程渐进式建模课程教学参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
1背景
软件工程类课程涉及程序设计语言、数据组成设计、算法设计、控制设计、数据传输设计等软件开发的各个方面,旨在培养学生在软件系统的分析、设计、编码、测试、排错等不同阶段的设计思想与能力,课程涉及的语法繁多、技术复杂,软件建模教学是其中重要的一环。建模是以模型化的方法描述软件系统的“因果关系”或“结构关系”的过程。对建模直观的理解就是用形式化的图形或语言抽象地描述事物的主要特征,既包括对事物组成结构和相互关系的静态描述,也包括对事物与外部交互机制以及事物内部组件运行机制的内在描述。建模是对软件系统的高度抽象,在软件开发中有两个作用:一是模型可以帮助预测到后续系统真正实现后的结果;二是建模可以指导后续系统的真正实现。因此建模是软件开发中分析和设计的重要部分,可以更好地衔接从需求到实现的各个环节。以软件工程中面向对象技术为例,“面向对象”是一种认知工程学方法论,旨在使计算机按照人类的思维方式去认知和处理问题。“一切皆为对象”是对“面向对象”思想的经典描述。“面向对象”以其更加接近人类思维方式的特点成为当前软件开发的主流技术,并且是计算机类专业学生必须掌握的内容。相应地,作为面向对象方法的核心,面向对象编程语言(如C++、Java、C#程序设计等)和面向对象建模方法在整个计算机课程中占据了大量课时,地位也非常重要[1]。对面向对象课程的掌握和理解将对学生的编程能力、分析问题和解决问题的能力产生深远的影响。
面向对象建模具有统一的建模语言(UML),从软件的需求分析到最终实现阶段,现已扩展出一整套面向对象系统的统一开发过程(UP)[2]。这就要求在软件开发的所有阶段,都应用统一的表示法。面向对象建模有助于软件系统开发者对系统的分析与设计,缩减开发时间和人力成本,增加软件的可重用性、可扩充性、可维护性和可靠性,面向对象建模法可以凸显面向对象程序设计的优越性。在大学计算机专业的面向对象教学中,程序设计课程是先行课程,这种“编码先行策略”的优势在于学生对程序编写先有了直观了解,但同时也暴露出一些问题:一些学生过分专注于编程语言,系统开发也偏重于代码的实现,这实际上是某种意义上的倒退——过度重视实现机制,而不是它们所支持的面向对象思维过程。在早期编程语言学习阶段,教师对统一建模语言并不进行强化和要求,导致部分学生对建模理解有偏差,养成了不良的思维和编码习惯,后期再次学习的时候反而更加困难。如何才能让学生在面向对象学习的早期阶段就建立面向对象建模的概念?如何将面向对象编程能力培养与建模能力培养结合起来?如何加强程序设计类课程与建模类课程的前后衔接与贯通?这些都是软件工程建模类课程教学所面临的共同问题。
2建模课程面临的问题
2.1庞大的知识体系面临有限的授课学时建模渗透在软件工程的各个环节当中,包括应用领域专家交流阶段、企业级建模应用阶段、编写文档阶段以及程序设计阶段。面向对象建模的知识体系可以分为3个部分:面向对象建模概念表示法、面向对象分析与设计、面向对象实现。UML统一建模语言作为软件工程专业三年级本科生的必修课,课程学时设定为32学时,因学时限制,要求教学内容必须进行大幅度缩减。面对庞大的知识体系,授课只能采用以点带面的方式讲授其中的第一部分,而第二部分和第三部分只能作概念性介绍。
2.2抽象的理论教学内容缺少实践环节支持在课程教学的内容安排上,教师需要逐一讲解类建模、状态建模和交互建模。这3种建模方法又包含类图、包图、状态图、用例图、顺序图等共13种建模图的具体表示法,这部分教学占据了90%以上的课堂时间。这门课程并未配机房练习环节,教师为了保证教学质量需要对每种图的画法及变化逐一讲解。这些理论性内容较为枯燥,不如软件代码那么具体可运行,也没有实际系统作为支撑和辅助手段,无法引起学生足够的重视,导致很多学生对软件工程建模的理解仅停留在理论和概念阶段,知其然而不知其所以然。
2.3编程课程与建模课程的设置缺乏衔接软件工程将软件系统的整个开发过程分为需求分析、概要设计、详细设计、系统实现和系统测试5个阶段。针对不同阶段,教学的侧重点不同,在本科生教学中出现的先后时间也有差异。以面向对象技术为例,其核心课程是面向对象编程语言和面向对象建模。通常,编码语言类课程相对开设较早,建模类课程开课较晚,导致理论与实践缺乏衔接。大连理工大学软件学院面向对象类课程开课时间见表1。从表1中看出,编程课程、建模课程及实践课程存在明显的时间差,这不利于学生对知识的融会贯通。编程语言学习阶段重视编码与系统的实现,建模学习阶段重视建模方法的介绍和讲解,学生往往到了做毕业设计阶段依然没有从头至尾完整地经历过一次面向对象开发的全过程,既没有对开发过程的宏观认识,也没有对具体细节间的衔接性把握。这种教学的“时差性”导致许多软件工程专业学生在本科毕业设计阶段往往先用编程语言把系统实现出一个大概,然后修修补补,再做逆向工程,绘制建模图,因此常常出现需求与设计对应不上,设计与实现对应不上的补丁式本科毕业论文,究其根本,还是建模方法教学与系统实现教学脱节造成的。
3渐进式教学的内容
渐进式教学是指教学活动主体不断提升的发展过程,主要包括不同个体自身随时间周期推移的不断发展过程,以及学习内容随着时间周期螺旋式上升的过程。学习内容和个体自身学习时间的不断演化,使教育不断地接近最终培养目标。国内大学本科生软件工程教学一般是以编程语言教学为重点开展的,其目的是要培养学生熟练的软件编码技能,以便在工程实践中能够灵活运用,因此在编程语言教学方面,增量式、互动式、开放式等教学手段都会得到灵活运用。事实上,软件工程建模思想本身是独立于编程语言的。以面向对象开发为例,面向对象教学不仅要培养学生熟练的软件编码技能,还要培养学生面向对象建模能力和软件设计领域的科学思维方式,这样才能让学生既具备实际编码能力,同时也对软件系统的宏观设计与模块设计有把控能力。如果把编程语言教学比作一座建筑的施工,那么建模教学就是建筑的构思和设计的蓝图,因此,本科生软件工程教学要通过改革课程内容和授课方式来强化建模对编程的指导作用。要实现“模型反映需求”“建模协助设计”“模型指导编程”的面向对象统一开发过程,必须对面向对象建模的教学内容进行渐进式调整。
4实施
4.1面向对象建模教学的内容分解为了强化建模对系统开发的指导意义,实现面向对象统一开发过程,我们对面向对象建模的教学内容进行了阶段式分解,将面向对象建模课程分解为建模入门、建模基础、建模提高、综合强化和实践应用5个阶段。教学内容以培养面向对象思想为主线,以实现面向对象开发为目的,以编程语言教学、建模语言教学、实践应用教学为载体,在整个软件工程本科生教学环节中由浅入深逐步强化建模知识,最终使学生达到全面掌握并能灵活运用的程度。(1)建模入门阶段引导学生以面向对象的思想形成最基本的抽象化建模思维。该阶段的建模教学以“单独类”的设计为中心,包括类的“属性”、类的“操作”的图形表示法及意义,介绍抽象、封装、多态的思想,介绍类的“继承”关系。(2)建模基础阶段引导学生进一步加深对面向对象建模的认识。该阶段的建模教学以“类的关系”为中心,内容包括类的关联、继承、依赖,强化以面向对象的思想对系统进行静态建模。(3)建模提高阶段要求学生以面向对象的思想综合分析需求。该阶段在前两个阶段的基础上突出类的“状态”和“对象交互”,介绍类的状态分析、用例分析以及顺序图和活动图的表示法,强化使用面向对象的思想对系统进行动态建模。(4)在综合强化阶段,建模教学以系统分析设计为中心,全面整合系统静态建模和动态建模的方法,讲解系统领域分析、应用分析、高级类建模知识,强化整套UML图形表示法和建模方法。(5)实践应用阶段。带领学生运用面向对象方法完成面向对象分析、面向对象设计、面向对象编程,并对学生UML制图的精细化、准确化进行全面验收。
4.2渐进式面向对象建模教学我们将5门面向对象类课程(含软件工程课程设计)进行联系贯通,形成渐进式面向对象教学体系,如图1所示。面向对象称为“线状知识”,沿着系统实现和系统设计两个方向展开。早期的C++教学是以系统实现为重点,同时也发展一部分系统设计;上升期的Java和C#教学需要兼顾系统实现和系统设计,双向发展;成熟期的UML教学是以系统设计为重点,同时整合系统实现;最后在软件工程课程设计阶段,完成面向对象知识体系的综合应用。
4.3教学视频库的建设UML统一建模语言课程在大专院校已经开设了较长时间,教材、学习参考书、电子课件和教学案例已经基本建设完毕。渐进式教学需要低年级本科生尽早接触面向对象建模知识,因此,我们将教学视频库的建设放到了首要位置。视频库建成后,学生可以尽早观看视频,自主学习UML建模的初期知识点,再到中后期的课堂中灵活运用。这样既可以让学生接触到建模课程的知识,又不增加低年级课程授课教师的负担。教学视频可以分为“微课”和“屏幕录像课件”两种。“微课”是指以视频为主要载体,记录教师教育过程的一种新型教学资源。“屏幕录像课件”是指通过教师授课的语音信息、板书记录呈现的视频课件。屏幕录像课件通过电脑录屏软件记录教师在授课时对电子课件操作的全过程,同时也可以使用电子白板等手段记录教师的板书书写过程,还可以同期录制教师上课的声音,随后将声音与图像合二为一,形成立体的视频课件。屏幕录像因为不需要微课的摄影机、摄影棚等设备,成为一种方便的电子视频课件的制作方法。“微课”和“屏幕录像课件”选用的知识点应在2~7分钟内讲解清楚,如果时间太长,学习者注意力容易分散,太短则会造成知识点讲解不充分或教学节奏过快,影响教学效果。短时间教学视频对课堂教学设计提出了更高的要求:必须将每节课的教学内容按知识点划分成5~10分钟左右的教学单元,每个单元制作成一个课件。知识点的选择、排序等是对教学内容的精细加工,这要求分析学习者的初始能力、学习目标、学习特征、学习环境等因素。制作高质量的5分钟教学视频需要专业的团队,该团队应该包括优秀的一线教师、教学设计专家、教学媒体制作专家等,遵循教学设计的基本原理和流程,并在教学实践中不断修改、完善。UML知识体系的特点就是单元性强,包括3类共计13种不同类型的建模图,非常适合这种教学模式。
5结语
软件工程建模类课程渐进式教学改革是大连理工大学软件学院在多年教学经验的基础上,参考国际先进的工程教育理念提出的一种新型软件工程教育模式。该模式依托学院现有的面向对象类课程体系,以良好的教学团队为研究基础,以面向对象建模语言(UML)课程为改革中心,实现了“以编程逐步渗透建模思想,以建模思想指导程序设计”“全面提高学生学习主动性和实践能力”的教学目标。在后续的教学过程中,我们将继续对教学体系进行迭代优化,使其发挥更好的作用。
作者:赵小薇 许真珍 田琳琳 于红 徐秀娟 单位:大连理工大学 软件学院