查字典论文网 >> 探讨软件体系结构课程

探讨软件体系结构课程

小编:胡明礼

0引言

软件都有体系结构,不存在没有体系结构的软件。在软件工程实践中,积累成功的、有价值的软件体系结构,不仅可提高软件项目的质量与进度,还可降低软件项目的成本与风险。软件项目规模越大,其带来的价值越大。为此,世界上许多研究机构和公司开展了软件体系结构的深入研究,并取得了显著成果。软件体系结构脱胎于软件工程,在其形成与发展中借鉴了计算机体系结构和网络体系结构中的许多宝贵思想和方法。

目前,《软件体系结构》已经成为软件工程专业的核心专业课。由于本课程起步晚、抽象、内容多、变化快、对学生实践技能要求高,学生感觉学习难度大,难于实际运用,这为本课程的课堂教学提出了较高要求。有必要对本课程的教学实践与改革进行探讨。

笔者所在学院自2005年开办软件工程本科专业以来,积极开展《软件体系结构》课程教学改革与研究。从最开始邀请企业兼职教师担任授课教师,到后来培养自己的骨干双师型教师,根据学生实际情况构建了丰富的教学案例库。同时,学校以建设湖北省战略性新兴(支柱)产业人才培养计划项目(软件工程专业)为契机,以培养社会所需的卓越工程师为目标,在课程中强化了软件设计内容的教学。本文结合笔者所在学院软件工程专业《软件体系结构》课程的教学改革实际情况,尤其是精品资源共享课建设的部分成果,从现状分析、课程内容优化、教学形式优化等方面探讨其教学改革思路与路径。

1《软件体系结构》课程教学现状

(1)教学目的不突出。目前,《软件体系结构》课程教学目的主要停留在介绍软件体系结构的理论、经典的软件体系结构、最新的软件体系发展方向等层面。对于软件工程等相关专业的本科生,或偏重工程应用的软件工程专业硕士而言,其培养工程师的定位决定了教学目的更应该突出工程性,重视软件体系结构的实践与应用。

(2)教学内容陈旧,没有针对学生的知识结构进行优化。目前,国内已经有许多学者编著出版了《软件体系结构》教材,如张友生(清华大学出版社)、覃征(清华大学出版社)、齐治昌(高等教育出版社)等。总体来说,这些教材系统介绍了软件体系结构的基本原理、方法和实践,反映了软件体系结构研究和应用的最新研究进展。但是,大多数教材偏重于理论,实践性有待于进一步加强,尤其是对于软件工程本科专业的学生来说,多介绍与其知识结构一致的体系结构及案例非常必要。

(3)照本宣科,学生缺乏兴趣,教学效果不理想。由于教学内容缺乏实践性,教师在授课过程中过于注重理论讲解,注重对经典模式或体系结构的介绍,而忽视了案例的价值、模式应用,导致学生不能很好地理解消化这些理论,从而失去学习兴趣。

(4)课程教学脱离学生的知识结构。出于各种考虑,有的学校将本课程外包给企业师资来讲授。这种方式如果处理得好,会起到开阔学生眼界、弥补学校师资不足等缺陷,但往往企业教师不善于讲授,或者是讲授内容脱离学生的实际情况,或者是将本课程变成纯粹的软件设计与编码课程,没有达到本课程应有的教学目的。

2教学内容优化

(1)结合学生实际确定教学目的。对于软件工程及相关专业的本科生,或偏重应用的软件工程专业硕士,应有针对性地确定教学目标,制订合适的教学大纲。笔者所在学院精品资源共享课建设中,确定本课程的培养目标如下:①培养学生学会用模式的视角来观察、研究软件系统的思维。一个高质量的软件系统必然具有一个好的结构与设计,对这些好的结构与设计进行不断总结与抽象,就会得到许多可以反复使用的模式。教学中注重学生用模式的视角来观察和研究软件系统;②学习和积累经典、常见的模式与软件结构。模式是成功经验的总结,学生应该熟练掌握经典、常见的模式,并懂得如何运用这些模式解决实际问题;③了解基于模式或体系结构构建软件系统的基本方法。通过上述教学目的,开阔学生视野、培养学生理解并应用模式与体系结构来解决实际问题的能力。

(2)循序渐进安排教学内容。在软件设计中,模式的粒度有大有小。一般来说,广义的模式包含3个层次:①软件体系结构模式,是模式系统中最高等级的模式,为软件系统提供了一个结构化的框架,具体的细化和实现工作还需要设计模式以及惯用法的支持;②类之问的设计模式,结构良好的面向对象软件体系结构中都包含此模式;③各种语言的惯用法,是特定程序设计语言模式,主要描述如何在特定语言中解决具体的实现问题。

在教学过程中,为便于学生理解,在教学内容设计上应做到循序渐进。先从惯用法讲起,然后重点介绍类级的设计模式,最后过渡到抽象粒度更大的软件体系结构。文献《软件设计从程序设计到体系结构》很好地注意了这点。

(3)与时俱进,不断优化教学内容与教学方法。比如,在讲解管道过滤器等经典软件体系结构之后,可讲解平台/插件体系结构风格。平台+插件体系结构的基本思想是使通过安装插件模块,以方便扩展软件产品功能。这种结构目前已经在许多软件系统的开发中得到应用,如著名的Eclipse采用的这就是此结构。作为软件工程专业的学生,很有必要扩充此类与结构相关的知识。此外,以课堂讲解、课外阅读、讨论组等方式引导学生学习新的软件系统、软件结构,如云计算架构。

(4)引导学生通过查阅学术论文进行课程学习。近年来,计算技术飞速发展,课堂教学内容严重滞后于技术发展。为了让学生了解软件体系结构、设计模式方面的最新研究成果,教师在讲授过程中,可向学生介绍如何通过查阅文献来学习最新的研究成果。笔者在课程改革中,专门留出时问向学生介绍使用电子图书馆的方法,鼓励学生查阅最新的研究成果并撰写文献综述。此方法也为学生毕业论文写作打下了基础。

(5)借助计算机技术与软件专业技术资格(水平)考试来优化知识体系。计算机技术与软件专业技术资格(水平)考试(简称计算机软件考试)是一项专业技术资格认定国家级考试训。设计模式、软件体系结构等是许多考试项目的重要考核内容,其在计算机软件考试、软件设计师等中级资格考试中均有涉及。系统架构设计师是2009年11月新增加的一个考试项目,属于高级资格考试。其考试大纲特别注重软件设计模式的应用、软件架构的分析与设计,是与软件体系结构课程最为契合的一个考试项目。在该课程教学过程中,可以引导、鼓励学有余力的同学积极参加计算机软件相关资格考试。

3教学方法改革

(1)采取案例教学法。软件体系结构较抽象,对于缺乏软件开发经验的学生来说,难以理解。案例教学法可以较好的解决这个问题。案例教学法具有实践性、启发性、针对性、研究性训强的优势,可以增强学生的实践经验,开阔视角。通过案例教学法,可以将抽象的模式、大粒度的软件结构直观地表现出来,启发学生的思维,拉近课堂与软件企业真实项目的距离。采用案例教学法需要建立并不断丰富案例库。《软件体系结构》课程的案例库素材一般来源于学术论文、企业解决方案、技术文献等。

(2)考核形式灵活开放。可以采取小论文等开放的形式进行课程考核,也可通过软件系统考核,这比机械考核教材上的教条更有意义和价值,更容易激发学生的创造性。不一定采用闭卷和考识记,重点考核学生对各种粒度模式的理解和应用。

(3)与新技术新思想接轨。通过讲座等形式引导学生从更高的视角来研究复杂的系统,比如云计算等。一方面,让学生学习最新的软件发展前沿,从而开阔学生视野;另一方面,也为将来就业打下基础。

(4)基于开源软件开展软件体系结构实验。开源软件的一个重要优点是源代码是可以自由访问。可以引导学生分析某个比较成熟的开源软件的结构,并鼓励其阅读源代码,研究软件结构的实现。深入地论述了开源平台Eclipse的插件体系结构,并以一个小例子简单介绍下插件的开发和实现机制。

4结语

《软件体系结构》课程内容丰富、更新快等特点决定了其教学需要与时俱进。经过近几年建设,笔者所在学院该课程教学改革取得了一定成效,学生评课满意度保持在97%以上。该课程2012年立项为黄冈师范学院重点建设课程;2014年立项为精品资源共享课。本文系统探讨了其发展改革的思路和做法,下一步研究将重点探讨如何提高本课程教学质量,以培养国家和社会急需的高质量的软件工程人才。

热点推荐

上一篇:浅谈长白山显花植物数据库的构建

下一篇:如何对幼儿进行德育教育论文 幼儿园关于德育教育之类的论文