软件工程教学中关于抽象思维和形象思维能力培养的思考

  • 投稿猎头
  • 更新时间2015-10-09
  • 阅读量1027次
  • 评分4
  • 72
  • 0

朴 勇,周 勇,陈 鑫,梁文新

(大连理工大学软件学院,辽宁大连116024)

摘要:软件工程是一门综合培养学生分析问题和解决问题能力的专业基础课程,涉及计算机理论、技术与管理等各方面。文章主要阐述形象思维和抽象思维的含义及在软件工程教学中加以强调的必要性和重要性,结合软件工程实际教学经验,探讨培养及提高学生形象和抽象思维能力的途径。

教育期刊网 http://www.jyqkw.com
关键词 :抽象思维;形象思维;软件工程

文章编号:1672-5913(2015)17-0088-03 中图分类号:G642

第一作者简介:朴勇,男,副教授,研究方向为数据库与数据挖掘,eric_piao@163.com。

0 引 言

软件工程课程是软件工程学科的一门专业基础课,其核心内容是软件开发方法学等,教学目标是让学生掌握现代软件开发的方法和思想,具备软件工程师所需的专业技能。课程特点一是强调理论的综合性,涉及的概念和理论较多;二是技术与方法的实践性,强调与工程实践的紧密联系。学好软件工程不仅可以很好地将理论联系实际,解决工程实践中的问题,而且实践经验对于理解和掌握软件工程理论和方法也提供了便利。学生在学习中既需要思想升华的抽象思维,又需要进行实践理解的形象思维。

1 概念简述

抽象思维是一种思维形式,其基本特征是以概念、判断和推理作为思维的基本形式,以分析、综合、比较、抽象、概括和具体化作为思维的基本过程,从而揭露事物的本质特征和联系。抽象思维一般有经验型与理论型两种。前者是在实践活动基础上,以实际经验为依据形成概念,进行判断和推理。日常生活中运用经验解决问题多属于这种类型。后者是以理论为依据,运用科学的概念、原理、定律、公式等进行判断和推理。科学家和理论工作者的思维多属于这种类型。

形象思维是思维的另一种形式,是凭借头脑中储存的表象进行的思维。基本特征是以格局、想象和重组作为思维的基本形式,以模式化、联想推演和格局具体化作为思维的基本过程,从而领悟事物的结构特征和发展情景。

软件的使用与开发是人类进化过程中的一次创新,作为工程类学科,软件工程综合了计算科学、管理科学、经济学、社会学等多个学科的内容,是一个新的交叉学科。软件开发需要有专业化、系统化的方法加以指导。由于计算机科学或计算机工程课程体系具有较强的技术性,而软件工程课程特别是管理类、经济类、人际关系类的课程与前述课程有本质的区别,因此,对于计算机学科的教师而言,在教学实践中对课程的把握相对困难一些;而对于管理、经济和社会学科的老师来说,他们计算机专业知识薄弱,缺少理论的分析和原理性的过渡,很难做到承上启下,融会贯通。软件工程的课程内容和教学方法有其特殊性,需要综合地培养学生的抽象思维和形象思维能力,才能达到更好的教学效果。

2 软件工程中两种思维能力的培养

2.1 注重概念教学,把握内容本质

抽象思维与形象思维不同,它是以概念为起点进行思维,再由抽象概念上升到具体概念。概念是事物的本质和共性,只有形成概念才会具有进一步推理和判断的条件。因此,抽象思维能力的培养要从两方面做起:一是准确界定概念,准确界定概念的内涵、外延和数量属性;二是准确判断概念之间的关系,准确判断概念之间的演绎关系和数量、属性关系。同时,抽象思维能力的培养要有一个认识及训练的过程,应该结合形象思维方式对学习的内容进行有意识的整合,从而培养初步的分析、综合、比较能力,并在此基础上形成更进一步的抽象和概括能力。

在面向对象的分析过程中,很多学生分不清楚业务用例、概念用例和系统用例的联系和区别,这时,教师可以使用一个简单的框图将它们之间的关系界定清楚。业务用例是从客户的角度出发描述某个业务的具体工作流,是一次涉众与实现业务目标功能之间的交互,其中可能包含手工和自动化的过程;系统用例则是用来描述参与者如何与计算机技术相联系以及与计算机系统交互的过程,而不是详细的业务流程描述。这两种用例类型其实是密切相关的,在一个项目中的业务用例和系统用例存在一定的对应关系,系统用例描述了对应业务用例在软件系统中的实现,有时还需要添加一些额外的系统用例用以对数据库的建立与维护等工作。概念用例一般处于业务用例和系统用例之间来建立它们之间的对应关系。简言之,概念用例是业务用例的精化,而系统用例又是概念用例的精化,这需要教师在理解相关概念并抽象出实质后,引导学生形象地理解。

重视概念的理解及厘清模糊概念间的关系,对学生技术水平的提升具有重要的作用。注重概念教学、把握内容本质、丰富课堂教学、提高学生的感性认识是培养学生抽象思维和形象思维能力的基础。

2.2 围绕建模能力的培养,增强抽象思维和形象思维能力

软件开发的分析和设计环节一般需借助某些工具进行建模,用以表述开发者对问题的理解。建模是指对客观事物建立一种抽象的表示方法用以表征事物及对事物本身的理解,同时把这种理解概念化并将逻辑概念组织起来,形成对目标对象内部结构和工作原理的便于理解的表达。

软件开发离不开模型,但在教学实践中经常发现学生对模型的理解深度不够,甚至不清楚为何要使用模型。为了给学生更直观的认识,教师可以形象地将建模过程类比成写作文。模型本身是提出论点,模型包括静态图和动态图,静态图相当于论据,动态图相当于论证。建立模型的过程实际上就是采用论据来论证论点的过程。模型可以使用不同的语言来表达,如统一建模语言UML是一个代表性的语言工具,它相当于词汇和语法;而写作的风格和文体可以类比成项目的生命周期模型,它告诉我们应该在什么时间和地点给出哪些模型。有了这些形象的描述后,学生可以更直观和深入地理解模型的作用和重要性。

抽象层次是面向对象方法中极其重要而又比较难掌握的技巧,学会站在不同的抽象层次考虑问题是建立好模型的基础。抽象层次越高,具体信息越少,概括程度越高;反之,具体信息越丰富,结果越确定,但相应的概括程度越低。从信息的表达能力上说,抽象层次越高,表达能力越强,越容易理解。对面向对象的方法来说,就需要较高层次上的抽象,用新的概念来概括一部分相关的信息,抽象层次越高,被屏蔽的信息也就越多,信息量越少也就越容易理解和处理,这也是面向对象比面向过程具有优势的原因。

在软件开发过程中,主体上应当采用自顶向下的方法,用少量的概念覆盖系统需求,屏蔽细节,逐步降低抽象层次,直到代码编写;同时应当辅以自底向上的方法,通过总结在较低抽象层次的实践经验改进较高层次的概念,以提升软件质量。例如,所有的基本设计原则围绕的都是“稳定”的思想,设计原则的组合应用形成不同的设计模式,其中蕴含的目的也是“稳定”。这是一个抽象层次,从此概念出发引导学生理解具体模型,探究设计者的设计“初衷”,只有这样才能更好地提升建模和应用能力。

模型是抽象思想的形象表达,提供给教学者一种阶梯工具,带领学生在不同的抽象层次间穿行,同时将概念、原则、模式等抽象的内容具体化、形象化。对建模能力的培养是软件工程教学的核心任务之一。

2,3 注重实践教学,与学生建立双向互动教学模式,培养创造性思维

实践教学是联系抽象思维和形象思维的纽带,重视实践教学环节是软件工程教育工作者的共识,如何加强实践教学也一直是大家探讨的热点之一。软件过程之一的敏捷过程是一种应对需求快速变化的软件开发方法,在软件工程课程讲解过程中对敏捷过程以及围绕敏捷过程的方法通常以理论基础的介绍为主,实践和应用环节较为欠缺。这主要是因为敏捷方法中对“工具”的作用进行了弱化,更加注重面对面地直接交流、白板上的勾画以及手写的用例(用户故事),不是一种纯面向技术的基础设施。这就给这部分内容的讲解带来诸多问题,学生普遍感觉理论空洞,无法联系实际,在实际项目中的应用更是无从谈起。我们认为,一方面工具能够帮助扩展敏捷方法的使用范围,减少或降低很多敏捷方法中应用条件的限制;另一方面在教学中结合敏捷工具的介绍,可以使授课过程更直观、更形象,提高学生对敏捷方法的全面认识和理解,在课堂教学中加入对具体工具的实际介绍和演示,改变原本对敏捷过程内容纯理论灌输的教学方式,消除敏捷过程的神秘感,可以提高学生学习的兴趣。

另外,要注意学生创造性思维能力的保护和培养,这是综合利用抽象思维和形象思维的结果。长期以来,我们习惯了教师讲、学生听的教学方法,即使是经过改革后的启发式教学也存在着把学生的思维限制在教师所规定的范围内的弊病。教师应注重创造师生、生生间沟通讨论的机会和环境,以项目驱动教与学。教师聆听,提出建议,给出指导意见,引导学生进行合理的抽象,保护和培养学生的想象力和创造力;鼓励团队合作精神,培养学生个体在团队中分析问题、评估项目、讨论问题和演讲的能力,让学生在不断地探索中提高抽象思维和形象思维的能力。

3 结语

总之,抽象思维和形象思维贯穿于软件工程的整个教学过程,需要教师注意整理和凝练,提升学生两种思维的能力。实践证明,通过抽象思维和形象思维能力的培养,不仅可以提高学生的理论学习和实践能力,而且对课堂教学水平和效果的提高也有很大帮助,令教与学有机结合,构成和谐统一的整体。

教育期刊网 http://www.jyqkw.com
参考文献

[1]教育部软件工程学科课程体系研究课题组.中国软件工程学科教程[M].北京:清华大学出版社,2005: 20-23.

[2]刘伟.“软件工程”课程教学改革的探索与实践[J].计算机光盘软件与应用,2012(18): 265-267.

[3]王晓光,计算机逻辑抽象思维的形成与培养[J].中国科技信息,2013(22): 82-84.

[4]张东升,季超.从形象思维到计算思维[J].计算机教育,2012(19): 6-11.

[5]郝水侠,软件工程的教学模式及方法的探索[J]科技创新导报,2009(1): 133.

[6]王秀珍,陈萍.软件工程课程教学方法探讨[J]中国校外教育,2012(1): 163-164.

[7] Toth K.Experiences with open source software engineering tools[J].IEEE Software, 2006, (23): 44-52.

(编辑:宋文婷)