基于CDIO 软件的设计与体系结构课程教学研究

2015-01-03 19:46:19胡志慧
中国管理信息化 2015年17期
关键词:体系结构开源软件

胡志慧

(湖北汽车工业学院 电气与信息工程学院,湖北 十堰 442002)

0 引言

软件设计与体系结构课程是以软件设计思想为主线,让学生通过课程学习能够全面、深入理解在软件开发阶段设计软件体系结构的必要性,并能够运用其中的思想分析、解决软件系统设计相关的问题。众所周知,如果要建造一座摩天大厦,首先必须给出设计蓝图,然后在其指导下一步步地按照工程要求进行建造,绝不能随意施工。与之相似,庞大、复杂的软体系统也需要进行软件体系结构设计,这样产生了软件体系结构理论。好的体系结构是决定软件系统成败的重要因素,软件体系结构已经成为国内外软件研究的热点。随着当前软件系统规模变得越来越大,软件体系结构的设计显得更加重要,因而Perry和Wolf认为,“未来的时代将是研究软件体系结构的时代!”

1 CDIO理念概述

CDIO是近年来国际高等工程教育的最新成果,在培养学生的创新能力、工程实践能力、团队协作能力等方面效果显著。CDIO 代表构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate),它以工程项目从研发到运行的整个生命周期为载体,通过项目设计将整个课程体系系统地、有机地结合起来,让学生以主动的、实践的方式参与到课程的各个教学环节,强调课程学习要与项目设计相联系,以培养学生的工程实践能力。CDIO的理念不仅继承和发展了欧美多年来工程教育改革的理念,更重要的是系统地提出了具有可操作性的能力培养、全面实施以及检验测评的标准。CDIO培养大纲将工程毕业生的能力分为工程基础知识、个人能力、人际沟通能力和工程系统能力4个层面,要求以综合的培养方式使学生在这4个层面达到预定目标。我国高等工科教育的迫切任务是尽快培养与国际接轨的中国工程师,然而我国工科的教育实践中还存在不少问题,如重理论轻实践、强调个人学术能力而忽视团队协作精神、重视知识学习而轻视开拓创新的培养等问题。借鉴CDIO工程教育理念和标准,对软件设计与体系结构课程教学改革进行探索,革新传统的教学思路和教学模式。

2 课程特点与现状

我国各高校的计算机科学与技术、软件工程等相关专业的教学中,已普遍开设了软件设计与体系结构课程,为软件架构设计师的培养提供条件。“软件设计与体系结构”课程与其他专业课之间紧密联系,需要的先修课程包括软件工程、UML建模技术以及程序设计等方面知识。

目前高等院校在软件体系结构课程教学中,大多主要讲授软件体系结构的基本概念和基本原理,简单分析软件体系结构风格的具体应用。软件体系结构中的抽象理论容易使学生感到枯燥乏味,另外作为在校学生项目开发经验有限,学生很难在头脑中将软件体系结构的抽象理论和实际联系起来,因此较难对这门课内容产生兴趣。当前,国内已经有许多学者编著出版了《软件体系结构》教材,如张友生(清华大学出版社)、齐治昌(高等教育出版社)等。总体来说,这些教材主要介绍了软件体系结构的基本原理、方法和实践,反映了软件体系结构研究和应用的最新研究进展。但大多数教材偏重于理论,实践性有待于进一步加强,尤其是对于软件工程本科专业的学生来说非常必要。

3 自主式开源系统案例教学

软件体系结构内容较抽象,对于缺乏软件开发经验的学生来说难以理解,采用案例教学法可以较好地解决这个问题。本校在四年级上学期开设软件体系结构课程,教学大纲中共安排32学时。采用以教师布置相关案例的自主式学习作为引导,学生在课外通过相互讨论、查阅文献资料等方式完成自主学习的过程,这样可以适当解决学时有限的问题。另外,由于开源软件的源代码是可以自由访问的,可以引导学生分析某个比较成熟的开源软件的结构,并鼓励其阅读源代码,研究一些新技术背景下的软件体系结构。

教师选择布置一些成熟的开源软件系统案例进行分析引导,如在大规模集群上的分布式并行编程框架的云计算平台Hadoop、基于JAVA的可扩展开发平台Eclipse等,这样可以让学习与新技术、新思想接轨,了解学习最新的软件发展前沿知识,开阔学生的视野,激发学习的兴趣,也可能提供更广一些的就业方向。下面以Hadoop为例介绍:

3.1 云计算及Hadoop简介

云计算是一种新型的计算范型,其核心思想是将大量用网络连接的计算资源进行统一管理和调度,构成一个计算资源池。它是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云计算是一种方便、低成本的IT服务能力的实现方法,具有非常广阔的应用前景。

云计算的主要特点是数据密集型的计算方式,同时还具有移动计算的特点,即移动计算到数据,而不是移动数据到计算,因为CPU计算移动到数据的代价更小。Hadoop就是一个实现了google云计算系统的开源系统,包括并行计算模型Map-Reduce,分布式文件系统HDFS,以及分布式数据库Hbase。同时Hadoop的 相 关 项 目 也 很 丰 富 , 包 括 ZooKeeper,Pig,Chukwa,Hbase,Mahout等,这些项目都使得Hadoop成为一个很大的家族系统。Hadoop是一个分布式计算基础框架下的相关子项目的集合。其中,众所周知的HDFS和Map-Reduce属于中心成员,其他子项目为它们提供了配套的服务。

3.2 自主学习Hadoop平台下的软件设计

通过对Hadoop框架的讲解,演示Hadoop自带的简单实例(如统计文本文件中单词个数的程序Wordcount),剖析基于Hadoop框架的软件设计过程,使学生能理解抽象的软件设计理论知识,让学生对如何使用在该框架基础上进行应用程序设计工作感兴趣。

学生分组学习讨论有利于集思广益、取长补短。一般将学生分成人数为5人左右的小组,并确定一名组长,便于组织交流。首先组内讨论构建Hadoop框架中使用的软件体系结构风格、设计模式,以及遵循的设计原则等软件设计理论知识,引导学生通过查阅基于Hadoop应用的相关文档资料进行学习,开始完成Hadoop云平台的搭建,经过组内讨论,选定一个规模合适的相关实践项目,给出其需求规格说明书,并讨论确定该项目需求;然后根据项目需求,分割各个子系统,每个成员分配确定任务,任务分配完成后,小组成员间讨论,修订完成软件设计计划;最后就是项目的实施,按照项目设计计划书开展完成相关设计工作。

对于考核评价,按组进行项目答辩的形式汇报自己的设计工作完成情况,采取学生小组之间、小组内部互评,教师在学生汇报结束后作细致点评。教师根据提交的工作计划书、设计说明文档、软件程序和答辩情况以及互评情况等,综合给出最终成绩评定。

4 结语

随着信息技术与互联网产业的快速发展,我国已成为信息产业大国,越来越需要大批的高级软件设计人才。软件设计与体系结构课程,是当前软件工程专业学习软件设计的重要专业课程,为适应新时期的教学要求,本文提出了一种基于CDIO的自主式开源系统案例教学方法,让学生了解软件发展的前沿知识,开阔学生视野,激发学习兴趣,使学生掌握了软件架构设计的基本方法及案例分析能力,学会自主学习解决实践问题的能力。

[1]郭威.基于CDIO的软件工程综合实训课程的改革[J].实验科学与技术,2014(10):115-117.

[2]陈长清.软件体系结构课程教学探讨[J].教育与教学研究,2008(22):134-135.

[3]李暾.软件体系结构课程教学改革规划与实施[J].计算机教育,2015(3):19-21.

[4]朱泽民.《软件体系结构》课程教学改革探讨[J].软件导刊,2014(12):171-172.

[5]宗欣露.基于CDIO教育模式的软件工程课程教学改革[J].教育教学论坛,2015(1):96-97.

猜你喜欢
体系结构开源软件
禅宗软件
英语文摘(2021年10期)2021-11-22 08:02:26
五毛钱能买多少头牛
软件对对碰
基于粒计算的武器装备体系结构超网络模型
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
作战体系结构稳定性突变分析
开源计算机辅助翻译工具研究
基于DODAF的装备体系结构设计
基于云计算的航天器控制系统自组织体系结构