软件体系结构课程教学改革的实践与探讨

时间:2022-07-10 09:08:21

软件体系结构课程教学改革的实践与探讨

[摘要]本文通过分析软件体系结构课程教学中存在的问题,进行了软件体系结构课程建设和教学改革的实践。建立了基于Web的软件体系结构教学资源库和全真案例库,注重理论和实践的结合,为学生提供了课堂外的在线学习和远程教育平台,并建立了基于模糊层次分析法的课程改革和教学效果评价模型,从学生评教、教师评学和用人单位评价三个方面对近年来的教学效果进行评价。实践表明,通过基于问题、基于榜样的案例教学和互动研讨,不仅帮助学生获得了解决实际问题的能力,而且为学生早日成为合格的软件架构师打下了基础。

[关键词]体系结构:架构师:资源库

一、前言

软件体系结构(Software Architecture)虽脱胎于软件工程,但其形成借鉴了计算机体系结构、网络体系结构、设计模式、分布式计算等学科的思想和方法。软件架构师是程序员的最终归属,也是软件人才成长链中最神圣的一环,他彻底摆脱了语言的束缚,兼百家之长,掌握软件发展趋势和各种软件产品的特性。中国现在急缺的软件人才是优秀的软件架构师。在人才结构上,我国软件人才的总体结构分布存在着两头小、中间大的不合理的“橄榄形”分布,特别是高端软件人才的短缺已经成为影响我国软件产业发展的瓶颈。我国各高校的计算机应用、软件工程等专业的本科生,以及计算机软件与理论的研究生教学中已普遍开设了软件体系结构课程,为软件架构师的培养提供了条件。目前,高等院校在软件体系结构课程教学中,主要讲授软件体系结构的基本概念和基本原理,以及软件体系结构的动态性和适应性的理念,简单分析软件体系结构原理的具体应用。由于该课程的理论性较强,概念繁多,学生普遍觉得太抽象,没有什么实际的东西。为了提高软件体系结构课程的教学效果,我国不少高校进行了软件体系结构或软件工程的课程建设和改革,但是实践效果不够明显。近年来,在软件体系结构课程教学过程中,发现存在的突出问题有:

在教学过程中采用单一的软件体系结构教材,存在可用性差、更新缓慢、信息量不足等问题,不能成为学生自主学习,进行探索和发现的认知工具;课堂教学以教师的理论教学为主,主要讲授软件体系结构的基本概念和基本原理,只起到软件体系结构导论的作用,互动性较差;缺乏软件体系结构的习题库和全真案例库,没有建立丰富的资源库,学生无法进行必要的实战演练,学生普遍觉得太抽象,太理论化,教学效果不理想;没有形成适合课堂教学的完整的软件体系结构分析与设计案例,使得学生对软件架构分析与设计的方法和过程缺少深刻的感性认识,无法纠正学生对软件体系结构的一些错误或模糊的认识,从而不能进一步深入理解软件架构的理论和方法。

本文针对现有的软件体系结构课程教学中存在的问题,结合软件工程以及相关专业的本科生、计算机软件与理论专业的硕士研究生软件体系结构课程教学的实际情况,对面向软件架构师培养的软件体系结构课程教学方法和教学效果评价方法进行了研究。

二、软件体系结构课程教学改革与实践

软件架构师是软件项目的总设计师,是软件企业新产品开发与集成、新技术体系的构建者。软件质量本质上是由其架构所决定的,软件架构控制着软件的全局,包含软件所有最重要方面的重大决定。培养一个称职的软件架构师是一个长期的过程,而通过改革现有的软件体系结构课程的教学方法来减缓学生的学习曲线,帮助学生站在较高的起点来了解架构分析与设计的全貌,顺利地入门和少走弯路,则是完全可能和必要的。

1.打破传统,勇于创新

由于软件体系结构中的基本概念、原理和方法较多,理论性较强,传统的满堂灌教学模式学生往往是被动地接受知识,枯燥乏味,难以激发学习兴趣。在软件工程各课程的教学过程中必须打破这种传统的满堂灌教学方式,不断创新教学形式,使其转变为在教师指导下的,以学生学习为中心的主动学习。在近年来的教学改革实践中,我们采用了“1+1”的教学方式,确立了讲授和实践相结合的授课方法,通过人人参与个性化的实践案例设计,解决了理论和实际运用脱钩的教学问题。

(1)理论与实践相结合。以知识点讲解为主,注重案例的讲解和研发团队模型实验,充分调动学生学习的积极性、主动性,着力培养学生的个性和创造力,并在模拟真实软件开发环境的基础上进行工程实践,使学生在掌握前沿技术的同时,获得解决实际问题的规范和能力。

(2)案例教学和互动研讨。从案例出发引申出许多问题,要求学生去思考、去搜集有关的资料以构建和评价软件系统的体系结构,然后引导学生深入讨论,各抒己见,从而达到发现问题、分析问题、解决问题的目的。

(3)授之以渔。一个优秀的软件架构师必须具备相当丰富的知识、技能和经验。由于软件架构师要求掌握的内容多、学时少的矛盾十分突出,课堂的内容只能作为一种引导,我们应当让学生掌握自主学习的方法,使学生能够利用各种资源,特别是网络资源的优势自行学习。

2.案例分析,注重引导

软件架构是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。软件体系结构是构建计算机软件实践的基础,因此,软件体系结构的教学必须与实践相结合,对软件架构的概念和设计思想的理解才能有身临其境的感觉。通过大量的案例分析,让学生更牢固地掌握所学的知识点,并从案例中分析各类软件系统架构设计风格的优缺点,并提出相应的改进方案。因此,我们在教学实践中本着案例驱动的教学理念,实现教学与科研相结合,建立全真的教学案例库。

(1)建立基于Web的教学资源库。在分析国内外现有教学资料的基础上,重点研究卡内基梅隆大学SEI的软件架构实践、软件架构评估、RUP、XP软件开发过程和架构模式等课程,建立了基于Web的软件体系结构教学资源库,包括教案、习题库、试题库等,将最新的研究成果和进展展示给学生,注重教学内容的丰富性和新颖性,追踪学科前沿。同时,也为学生提供了科学在线学习和远程教育的平台,方便学生随时随地的自主学习。

(2)教学与科研相结合,建立全真案例库。结合近年来我们在科研中积累的大型软件系统开发经验,建立软件体系结构的全真案例库,包括正交软件体系结构、C/S软件体系结构、B/S软件体系结构等典型软件体系结构的应用案例,以及EJB设计模式、J2EE架构、UDDI等应用案例的软件体系结构分析、设计和评估的完整资料。通过对全真案例的学习和实战演练,使学生准确把握软件体系结构,进一步深入理解软件架构的理论和方法。

(3)工程实践,重在能力培养。工程实践是对学生的一种全面综合训练,是与课堂听讲、自学和实践相辅相成的、必不可少的教学环节。根据学生的知识结构和 实际情况,在模拟真实软件开发环境的基础上进行工程实践。通过工程实践,使学生在一个软件项目开发过程中,将系统的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划,从而提高学生软件工程相关知识的综合运用能力。

三、课程改革和教学效果的评价

在课程改革实验中,如何评价课程改革和教学的效果至关重要。随着课程改革的逐步深入,课程改革和教学效果的评价结果在实践过程中可以指导课程改革。

由于客观世界的不确定性和人对客体认识的模糊性,学生和教师在评价课程的教学效果时始终面临不确定的环境。对于所谓“半结构化”问题以及信息网上浩如烟海的“几乎肯定”、“也许大概”等模糊信息,更是教学效果评价所要面对的大量事件。教学效果评价所面临的决策要统筹兼顾、协调平衡、总体优化,通常不是单准则决策,而是多准则决策,不是单层次的准则体系,而是多层次的准则体系。本文参考美国学者T.LSatty提出的层次分析法(AHP,Analytic Hierarchical Process),从教师评学、学生评教和用人单位评价等因素的非量纲化评价指标模糊描述,来建立教学效果评价指标体系和多级模糊评判模型,实现课程改革和教学效果的多指标评价。

1.基于AHP的教学效果评价方法

AHP算法是一种有效地处理那些难以抽象为解析形式数学模型的问题(即非结构化问题)或难以完全用定量方法来分析的复杂问题的手段,其主要思想是将一个复杂的多因素评价问题分解为具有递阶结构的评价指标和评价对象。二级模糊层次分析决策模型的步骤如下:

2.教学效果评价指标体系的构建

由于评价对象的某些评价因素往往带有一定程度的模糊性,即具有非线性特征,所以进行教学效果评价时采用了模糊综合评判模型。调查问卷中除需要给出各评价项目的权重外,还需给出各评价项目的得分。结合教学改革的实际情况,我们给出如下的评价准则,包括学生评教、教师评学、用人单位评价三个一级指标,并建立相应的二级评价指标(如图1)。我们在构建教学改革和效果评价指标体系时,着重考虑的是通过软件体系结构的课程改革,是否能达到改革的目标,即通过基于问题、基于榜样的案例教学和互动研讨,能否提高学生的学习兴趣,帮助学生获得解决实际问题的能力,为学生成为合格的软件架构师打下基础。因此,我们构建课程改革和教学效果评价指标体系与传统的教学评价指标的侧重点是不同的。

3.教学效果评价

我们从2004年开始对软件学院相关专业的本科生和硕士生的软件体系结构课程进行改革,逐步建立了基于Web的教学资源库和全真案例库。在课程结束后采用调查问卷的方式随机抽取部分学生进行学生评教,并由任课教师完成教师评学。针对2005、2006、2007届毕业生的教学效果评价情况进行比较,我们随机抽取了每届部分毕业生,并联系相应的用人单位进行有关的评价。表1为2005、2006、2007届毕业生软件体系结构课程的教学效果评估,其中,V1、V2、V3分别代表2005、2006、2007届毕业生的各个评价指标的教学效果评价。

利用本文提出的基于AHP的教学效果评价模型,得综合评判为:

B=A×R=(81.1,84.1,88.6)

数据表明,在2005、2006、2007届毕业生软件体系结构课程的教学效果评价中,2007届毕业生的评价值最高。由此可见,随着教学改革和课程建设的深入,软件体系结构课程的教学效果得到了逐步提高,学生对于软件体系结构课程的学习兴趣也在逐渐增强,软件架构设计能力也有了很大的提高,学生实习单位和用人单位的评价也说明了这一点。在近两年的学生毕业设计和毕业论文指导过程中,我们也欣喜地看到不少学生可以相对独立地完成相关系统的软件架构设计,并能写出规范的设计文档。

[作者简介]

董天阳,博士研究生,讲师,浙江工业大学软件学院。

简垮峰,博士,副研究员,浙江工业大学软件学院。

张玲,讲师,浙江科技学院经管学院。

江颉,讲师,浙江工业大学软件学院。

黄洪,副教授,浙江工业大学软件学院。

本文责编:胡智标

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:浅议数字化校园的设计方案 下一篇:青年马克思与卢卡奇异化思想之比较