软件工程课程教学思考

软件工程课程教学思考

摘要:

针对《工程教育认证标准》中对“毕业要求”提出的要求,结合软件工程课程的教学内容,对软件工程课程的教学进行思考和探讨,分析认证标准要求与课程内容之间的对应关系以及标准中蕴含的意义,提出教学改进措施,以期更好地培养出符合《工程教育认证标准》的软件工程人才。

关键词:

工程教育认证;标准;华盛顿协议;软件工程;毕业要求

0引言

2016年6月2日在吉隆坡召开的国际联盟工程大会上,经过《华盛顿协议》组织的投票表决,我国正式成为《华盛顿协议》签约国。这是我国高等教育发展史上具有里程碑意义的一件大事,意味着我国工程教育实现国际多边互认,教育质量得到国际上的认可[1]。国内高校顺应形势,积极参与工程教育专业的认证工作。湖北工业大学机械设计制造及其自动化专业2016年顺利通过工程教育专业认证,这为我校其他工程专业申请认证提供重要参考和指导。在中国工程教育认证协会修订的《工程教育认证标准》中,对“毕业要求”提出12条要求[2]。针对这12条要求,结合软件工程课程教学内容,对软件工程课程的教学进行思考和探索,深刻理解标准的含义和意义,能更好地培养出符合《工程教育认证标准》的软件工程人才。

1工程教育认证标准

为了与《华盛顿协议》的标准实现实质等效,结合我国工程教育的事实与特点,中国工程教育认证协会修订了《工程教育认证标准》,对工程专业的学生、培养目标、毕业要求、持续改进、课程体系、师资队伍、支持条件7个方面规定了标准和要求[3]。其中,在毕业要求中,对工程知识、问题分析等12个方面提出了具体要求,符合工程教育认证以产出为导向的理念。

2软件工程课程教学内容

软件工程这一学科的产生源于软件危机。软件固有的成本高、逻辑复杂、风险大、维护困难等特点以及人们对软件的错误认识导致软件危机的产生。人们逐渐认识到必须使用规范的、工程化的方法开发软件,因此,软件工程应运而生。软件工程是应用了工程化思想的计算机领域的一门交叉学科,软件工程课程是软件工程专业学生必修的核心课程,其教学内容围绕软件生命周期的各个环节[4],讲授一个软件项目从立项到维护各个阶段的基本概念、相关技术、开发操作等。这门课程在整个本科4年的课程体系中起承上启下的作用,需要数据结构、数据库、面向对象语言与程序设计等前期课程知识的铺垫,不仅对后续软件需求工程、软件测试、软件项目管理、软件工程经济学等专业课程的学习有重要影响,还为学生以后的毕业实习、毕业设计和走上工作岗位所必需的工程实践能力奠定基础。

3认证标准的思考与探索

3.1认证标准要求与课程内容的对应关系

《工程教育认证标准》中明确指出工程专业学生毕业时必须达到12条要求,而软件工程课程大纲里面列出了学生学习这门课程应该掌握的所有知识和内容。通过对比,我们发现《工程教育认证标准》中的12条毕业要求与软件工程课程的章节内容有一定的对应关系,如图1所示。

3.2认证标准要求与课程内容对应关系的说明

R1工程知识:要求学生能够将数学、自然科学、工程基础和专业知识用于解决复杂工程问题。在软件工程的经济可行性分析中,需要用到数学和经济学的知识,以估算软件项目的成本、收益、投资回收期、投资回收率等指标,判断项目在经济上是否可行。在需求分析、软件概要设计、详细设计、软件开发等阶段,需要用到数据结构、数据库、算法、面向对象语言等各种数学、计算机专业知识,如图2所示。R2问题分析:要求能够应用数学、自然科学和工程科学的基本原理,识别、表达并通过文献研究分析复杂工程问题,以获得有效结论。在软件需求分析中,需要根据用户提出的软件需求,建立结构化或面向对象的需求模型。R3设计/开发解决方案:软件概要设计将软件系统设计为若干模块相互连接的关系;软件详细设计是为每一个模块设计详细的算法、数据结构等;软件开发将软件详细设计的结构转换为可运行的代码。R4研究:软件交付给用户使用之后,还需要一直对软件进行维护。维护过程中,为了分析研究软件工作的效率,需要对软件运行中的各种指标进行统计分析,计算出软件的可靠性、失效率等,为软件的改进提供数据支持。R5使用现代工具:在软件工具这一章节,介绍为了提高软件生产率和改进软件质量,辅助和支持软件开发和维护的各种工具,包括计划工具、分析工具、设计工具、测试工具等。学生应能了解多种工具以及它们之间的差异,熟悉和掌握某些常用工具,会根据具体情况选择合适的工具。R6工程与社会和R7环境与可持续发展:在软件立项之前,需要从各方面进行可行性分析,为项目是否能立项提供决策支撑。除了技术可行性和成本效益之外,政策可行性和市场可行性也是影响软件能否立项的重要因素。政策可行性考虑是否有政府的政策支持或限制该软件项目,软件项目是否危害健康、触犯法律、影响环境和社会的可持续发展等。市场可行性分析调查市场上同类产品的市场份额、市场成熟程度等。这些内容的学习能让学生有强烈的社会责任感,教育他们无论是软件开发员,还是项目的管理者,在软件立项之前,就应该预想软件项目对社会、健康、安全、法律以及文化的影响。R8职业规范、R9个人和团队、R10沟通和R12终身学习:在软件工程师道德规范这一章节中,ACM/IEEE给出软件工程师应该具备的职业道德准则,包括公众感、客户与雇主、产品、判断力、管理、专业、同事和自己;除此之外,还给出软件工程师的职业素质,包括团队合作能力、人际交往能力等[5]。这些内容与R8—R10和R12完全吻合。R11项目管理:无论是在软件项目立项时,还是在软件开发过程中,都需要对软件项目进行管理。在立项阶段需要立项管理,通过规范化的流程,判断并采纳符合企业根本目标的立项建议,提供合适的资金和资源,使立项建议成为正式的项目;或者拒绝不能给企业带来利益的立项建议,避免浪费人力资源、资金和时间。立项管理包括立项建议、立项评审和项目筹备。需求分析阶段需要进行需求管理,管理产品和产品构件的需求,识别需求与项目计划及工作产品的不一致,包括变更控制、版本控制、需求跟踪和需求状态跟踪。在软件概要设计、详细设计、开发阶段,同样需要随时跟进项目的进度,在每一阶段结束后召开评审会议,检查每一阶段的成果是否与相应文档相符合。

3.3教学改进措施

发现《工程专业认证标准》要求与软件工程课程内容之间的对应关系,能够帮助我们深刻理解认证标准蕴含的含义和意义。在软件工程课程的理论教学内容和实践环节中,着重强调与认证标准要求对应的教学内容,可以为学生日后从事不同工作和扮演不同角色做好准备。(1)研究者。加深学生对理论知识的理解,帮助学生达到对理论知识举一反三的水平,能将其他学科的理论应用到软件项目研究中。(2)开发者。提高学生的动手实践能力,强调上机、课程设计等实践环节的重要性,帮助学生在实践中掌握多种软件工具,能独立地分析和解决问题。(3)管理者。项目的管理对一个软件项目能否顺利完成起着举足轻重的作用。在教学中,平时容易被忽视的软件项目管理章节也应该被重视起来,为将学生培养为优秀的项目管理人员打下良好的基础。(4)无论是研究者、开发者,还是管理者,都应该遵循最基本的软件工程师道德规范,对社会和环境有强烈的责任感和主人翁意识。这需要我们教育工作者在对学生进行智育的同时,也不要忘了对学生的德育。

4结语

申请工程专业教育认证是高校教育工作者反思工作中的不足,进一步提高教学质量的契机。挖掘《工程教育认证标准》中毕业要求与软件工程课程教学内容的对应关系,为未来的教学工作提出一系列改进措施,为软件工程专业的工程认证提前做好准备,也为软件工程教学质量的提高提供理论支持。

参考文献:

[1]林健.如何理解和解决复杂工程问题:基于《华盛顿协议》的界定和要求[J].高等工程教育研究,2016(5):17-26.

[2]刘成林.工程教育认证背景下现代控制理论课程教学分析与改革[J].中国教育技术装备,2016(18):106-108.

[3]吕品,王淮亭,汪鑫.“对标国外大学,深度融合认证”的软件工程专业人才培养方案[J].计算机教育,2017(1):38-43.

[4]邓娜,陈旭.应用瀑布模型的MOOC制作方法[J].计算机教育,2016(7):89-91.

[5]薛继伟.软件工程导论[M].哈尔滨:哈尔滨工业大学出版社,2011:19.

作者:邓娜 陈旭 王春枝 单位:湖北工业大学 中南财经政法大学