软件工程教学模式的探讨

软件工程教学模式的探讨

一、目前教学存在的问题

1、教学内容与软件行业发展之间存在矛盾

软件工程作为一门迅速发展的新兴学科,新的技术、方法和工具不断涌现,涉及的众多的领域与学科,而目前市场上的教材内容的更新普遍跟不上这种发展,所以存在如何保持教材内容的先进性与发展性的问题。现代软件工程内容丰富,基于UML的面向对象建模技术、面向服务、面向方向编程方法、测试方法、RationalRose工具、RSA等开发工具、CMM、配件配置管理以及软件过程管理等。这些不断发展的知识理论性与实践性都很强,但受到学生知识结构和实践经验的限制并不容易被接受,同时也不可能在软件工程这一门课中完全讲授,从而影响教学效果,以致软件行业用人单位普遍反映计算机专业毕业生的软件工程素质与工作预期相差较远。

2、教学安排方面存在的问题

软件工程与其他计算机课程,如高级程序设计语言、数据结构、数据库、计算机网络以及操作系统等课程都是相互作用和影响的。目前软件工程课程与其他课程衔接普遍不是很理想。软件工程的学习应有一些先修课程如高级程序设计语言、数据结构;还应具备操作系统、数据库、计算机网络的一些知识。哪些课程应先修,哪些课程可以并行,如何与软件工程课程衔接等,都是课程安排时需要考虑的问题。在教学时间与跨度上,学生接触这门课的时间普遍不够,软件工程课时一般不多,大都只设置一个学期,而且没有后继课程的进一步加强,不容易满足软件工程对实践的长期要求。

3、学生对软件工程的学习兴趣普遍较低

软件工程不像程序设计课程那样容易带给学生的成就感,激发学生的兴趣和热情。同时由于积累的知识所限,学生很难将软件工程的抽象理论和实际应用联系起来,因此较难对这门课程产生兴趣,容易产生枯燥乏味的感觉,从而失去对这门课程的学习兴趣。

4、实践环节比较薄弱

在课程的教学中,普遍较少给学生提供实验尤其是项目实践的体验,主要原因是课程的总课时不充足,缺乏相应的软件工程实验软件,学生上机实验比较困难;有些实践内容显得太复杂太耗时,由于实验条件受限,大部分老师仅给出项目各阶段文档模板,要求学生按规格编写相应文档,但往往没有企业项目开发中的严格评审机制,学生很难建立标准化、规范化思想。学生在实验教学中开发的系统仅仅作为作业提交给教师,教师大概的检查代码,而没有严格的代码走读过程,也未交付用户使用,没有真正意义上的验收测试,维护。学生无法发现各阶段中存在的问题。无法使学生达到真正项目实践锻炼的效果。

5、教师的业务素质有待提高

这门课对授课教师的业务有较高的要求。首先教师对软件工程本身要有深刻的理解,有一定的软件开发经验,最好有一定的项目和工程背景,这样教师能从自己的开发实践中理解软件工程的基本原理与方法,才能在讲授时灵活地将理论和实践相结合,学生才能直观地感觉到该门课程的重要性。但是,很多教师由于时间和环境的限制,自身从事软件项目开发经验不足,从而在教学中很难做到游刃有余。

二、软件工程课程教学模式探讨和创新

1、以就业为导向,利用校企合作,加强软件工程课程的实用性

学校、企业、学生三方如同三个同步的、契合的齿轮,围绕着职业素养的提升这一共同目标,良性运转、螺旋式上升。通过校企合作,学生可以逐步适应岗位群、终身发展,实现从学生到职业人的转换;对于企业而言,校企合作不仅帮助企业实现了培训企业员工、满足企业用人需求等浅层目标,也传播了企业文化、深层次地挖掘了企业的发展潜力。我们学院积极与本地的软件企业联合,整合资源,根据企业与专业的特点制定相应的教学计划进行人才培养,配合实践平台使学生积累一定的工作经验,紧随市场动向,提高就业率。实践中,我们根据合作企业的具体软件工程要求,把企业的实际项目引入到课程实践中,让学生参与企业项目组,部分学生毕业后直接进入合作企业工作。另外,结合师范院校女生比例较高的情况,侧重加强界面设计开发、软件测试、配置管理方面内容的教学,有效的提高了软件工程课程的实用性。

2、调整课程安排与教学内容安排

根据软件工程的特点,我们在课程体系安排上做了一些调整,如加强一些前驱的课程教学,引入一些新技术的专业选修课,根据实际情况安排课程设计、专业实践做为软件工程的后继课程。同时,我们还与合作企业进行课程体系设计,如引入系统集成与测试、手机开发基础等前驱实用课程,使学生积累了基础知识,便参与到企业的实际项目组。在教材选择上,软件工程学科发展快,包含内容多,选择教材既要保证教材内容的新颖、全面,还要考虑到内容是否能与实际工作紧密结合,对实践能否起到重要的指导作用。因此,我们选择机械工业出版社出版的《软件工程原书第9版》(Ian Sommerville)。它多次再版的事实说明了该书受欢迎的程度。其内容丰富详实,涵盖了软件开发过程各个阶段的内容,而且包含了一些软件工程的新技术。我们在授课过程中结合课程的实际课时,对教材内容进行适当节选,如软件过程、项目管理、软件需求、系统设计、分布式系统体系结构设计、快速软件开发、软件测试、配置管理、面向服务、面向方面、面向安全方法等,这样可以给学生本学科一个概貌,对于感兴趣的学生也可以得到更多进一步学习的机会。

3、激发学生学习兴趣和热情

培养学生对软件工程的学习兴趣与热情是软件工程教学需要解决的一个难题。与学生的交流发现,师范类院校的学生普遍对软件兴趣不大,也不知道学了课程后有什么用。因此,我们以就业结合个人兴趣为导向,积极培养学生兴趣,让他们感觉到学好这门课程与就业关系密切,是自己从业的基础,这样学生学习起来就有目的性,收到较好的学习效果。此外,在课堂气氛方面,鼓励学生多参与,在讲解时应尽量营造探究气氛,增强交流互动,适当使用案例教学法,以激励学生主动参与学习活动。

4、加强实践环节

课程初期,采用项目驱动法,采取小组开发形式进行实践教学。学生按教师要求组成6~8人的项目小组,选择来源于企业的实际项目题目,然后每位学生担当实际项目开发过程中的不同角色,进行分工协作,参与项目管理和开发,从不同角度全面把握和体会整个软件工程项目开发和管理的基本思想,在一个学期内共同完成实验项目。同时教师加强在实验过程中的指导作用,要求各项目小组分阶段提交讨论记录和项目工程要求的里程碑成果。鼓励学生积极建设校园创新创业基地。校园创新创业基地模拟软件公司开发管理模式,是学生课外科技、课外实践、开发训练、社会服务活动的基地,为学生在校期间提供了良好的就业实战平台。学生通过基地实际的项目,将所学的理论知识应用到其中,做到学以致用。充分发挥校外实习基地作用。我校与本地的软件企业联合,开展校外实习基地,在课程结束后进入软件工程校外实习环节,让学生融入到真实的开发环境中去。经过一个学期的软件工程理论基础和校内创新实验室的经验,我们根据实际情况,有选择地让学生进入企业,跟随项目组一起,参与到真实的项目中去。校外实习过程中,要求学生认真记录项目过程开展的各项工作,并积极参与到各阶段的工作中去。根据实践情况,我们还将项目实习与毕业论文的设计结合起来,让参加企业实际项目的学生可以用参加的项目做为毕业论文的主要工作,解决了学生毕业设计与实习的矛盾,学生积极性高,也取得了较好实践效果。

5、加强师资力量

为了提高软件工程教学效果,我们在计算机软件工程教学的教师队伍建设中,积极引进在企业具有软件开发和工程实践经验的高学历工程师作为骨干教师,选派年青教师到大型软件公司去实践与进修,这些教师把掌握的新技术、新理念及时带到课堂,进一步体现课堂知识的实用性和先进性。

三、结语

笔者探讨以就业为导向、项目驱动、创新实习相结合的“软件工程”教学模式,并在近两年教学中进行了实践,取得了一定的教学效果,提高了学生对本门课程的学习兴趣,学生的计算机应用水平与实践能力取得了长足的进步,锻炼和培养了系统分析能力、设计能力、编程能力、测试和维护能力、团队协作能力和文档书写能力,提高了学生的实践动手能力和综合素质,学生适应市场能力显著增强,就业率得到提升。如何结合软件行业的现状、特点,采取相应的教学手法,提高软件工程的学生学习体验,提高教学质量,值得我们不断探讨和研究。

作者:蓝贞雄 单位:广西师范学院计算机与信息工程学院