对软件工程课程教学设计的思考与实践

2022-09-10

作为一所高职高专的学校, 软件专业的培养目标是培养软件蓝领。通过先修通过本课程的学习, 使学生了解和掌握软件工程开发的技术和方法, 具备作为软件工程师所需的专业能力, 为从事计算机软件开发和维护提供方法上的指导;坚持好用、适用、合理超前的原则, 使学生学完后能融会贯通, 极大提高其实际操作和自我学习能力。同时, 软件工程的研究除计算机软件本身外, 还涉及众多其他的领域, 如管理科学、心理学、经济学、人机工程学等, 它也是一门综合性学科。因此, 能否组织好软件工程实验性教学, 对于培养创新型合格的软件人才十分重要。

UML是软件工程的一个组成部分。软件工程是从系统的、工程的角度来研究软件开发, 从保证软件开发的各个过程来保证软件开发的质量。而UML是统一建模语言, UML是Rational软件公司及其合作伙伴发展而来的, 是被创建在Booch, OOSE/Jacobson, OMT和其他一些方法的基础上, 大量的公司在他们开发程序和产品时也以此UML为标准, 包含了一些如:商业模板 (原始需求描述) 、需求管理、分析和设计、编码和测试的标准。为了工业软件系统地发展而提前构建和革新一个模板, 其实质性类似有一个建筑蓝图。好的模板实质是为连接众多的项目团队和稳固构件 (已有的或以实施的模板和构件) 。针对系统增长的复杂化, 固然是需要好的模板技术。如此便有了附加的项目成功因素, 但本质却是一个严格模板语言标准。UML作为一种工具, 来对软件开发的过程进行有序的系统的管理, 从而更加有效的实现软件工程的要求。由于软件工程涵盖的内容很广, 单一作为一门课程来讲十分抽象, 再加上一学期仅有的32学时, 学生掌握起来比较困难, 会觉得枯燥无味, 因此让学生学习一套基于某种语言的方法和技术, 将要解决的问题描述转换为可行的架构抉择, 用有意义的设计和可操作性的准则评价解决方案的适用范围, 并实现某个具体方案的过程自动化;在软件行业中, 统一建模语言UML就是这样一种语言的典型范例, 它收录了过去20年来构造各种系统和软件解决方案的最佳思想。在教学的过程中我要求学生利用有效的UML建模工具如:Rational Rose或Microsoft Visio进行系统建模, 这样可使教学内容具有可操作性和趣味性。

以往的《软件工程》课程没有实验教学的要求, 一般只停留在概念的理解和案例的分析, 即便是组织学生编写软件项目若干设计文档的实践也是很少, 此外, 由于教学时间有限, 要真正完成软件工程各阶段文档的编写, 事实上也没有可能。而且, 软件工程教学还面临着计算机学科发展规范所提出的更高的质量要求, 同时也面临着大众化高等教育背景下所带来的客观问题。因此, 如何开展软件工程的实验教学, 如何保证软件工程实验环节的效果一直是个问题。

按该课程的特点, 我将平时实验和课程设计相结合, 设置一些实验项目, 要求学生利用结构化软件开发技术或面向对象的软件开发技术完成对该项目的开发。以项目作为实验环节的主线, 随着课程进展布置任务, 从项目开发的准备工作、系统分析过程、系统设计过程、软件测试到系统实施, 结合所学习的理论知识, 完成项目的开发, 同时撰写规范的技术文档。主要从以下几个方面对软件工程进行实验教学改革。

(1) 实验课程以平时实验和课程设计相结合, 设置一些综合实验项目。

随着课程进展布置任务, 通过调查研究、可行性研究、需求分析、概要设计、详细设计、编码、测试、维护及技术文档的编写, 结合所学习的理论知识, 完成设计。

(2) 实验内容应覆盖软件生存周期的各个阶段, 使学生通过实验加深对学科理论知识的理解。

(3) 必须充分重视和精心设计实验内容, 要有可操作性、趣味性和适当的难度。

(4) 软件工程实验要求学生采用“项目小组”的形式, 结合具体的开发项目行设计, 班级按项目小组进行分组, 每组不得超过7人。每个项目小组选出项目负责人或项目经理, 由其召集项目组成员讨论、选定开发项目。

(5) 学生分工合作, 学习软件开发小组的组织和管理, 将项目开发各阶段的任务明确, 熟悉软件开发环境, 培养团队精神, 共同完成该项目的设计任务。项目中的每项任务要落实到个人, 实验在规定的时间内, 由学生独立完成。

(6) 教师的主要任务是答疑和检查。答疑在每次上机的中间进行, 检查在每次上机结束时进行。检查工作以小组为单位, 但每项任务应落实到个人。出现问题, 教师要引导学生独立分析解决。

(7) 每个项目小组必须按照给定的文档规范标准提供项目文档。

(8) 题目自定或采用教师提供的题目, 软件开发的方法自定。

通过一学期的教学实践, 提高了学生学习软件工程课程的积极性, 学生在思想理念上有了很大的转变, 不再仅停留于盲目学习书本上复杂的概念, 而是懂得按照软件工程的原理、方法、技术、标准和规范进行软件开发和项目管理;不再将先前所学的各专业知识孤立开来, 而是懂得将它们融会贯通。值得欣慰的是学生们通过一学期的分组合作, 培养了团队协作精神和项目规划的能力。

每个专业都是一个体系, 是一个系统化的东西。有的课程锻炼人的数据分析能力, 有的课程锻炼人的逻辑推理能力, 有的课程锻炼人的思维创新能力, 等等。从能力锻炼的角度来讲, 理工科方面的各个专业本质上都是相通的, 我希望通过软件工程教学锻炼学生的业务分析能力、系统建模能力和项目规划能力, 对学生职业能力的培育起到重要的作用。我所做的工作还不足, 但目的只有一个, 就是如何将别人的经验和教训教会我们的学生, 使他们在今后的学习和工作中少犯或不犯别人已经犯过的错误, 从根本上提高专业水平!

摘要:软件工程是一门实践者的学科, 和别的计算机专业课程相比较, 更注重于软件开发和应用过程中的一般性的、规律性的问题的研究与探讨, 它是大量软件工程实践的经验与教训的归纳和总结。通过先修课程的学习, 如操作系统、底层语言、软件工程技术、硬件技术、编程语言, 网络技术, 数据库等知识的学习和应用, 来拓展强化学生对实际项目的操作能力。

关键词:软件工程,计算机专业课程,软件开发

参考文献

[1] 张海藩.软件工程导论[M].北京:清华大学出版社, 2003.

[2] JasonT.Roff著, 张瑜, 杨继萍, 等[译].UML基础教程 (第4版) [M].北京:清华大学出版社, 2006.

[3] RobertA.Maksimchuk, EricJ.Naiburg[著].李虎, 范思怡[译].UML初学者指南[M].北京:人民邮电出版社, 2005.

[4] Doug Rosenberg Kendall Scott[著], 管斌, 袁国忠[译].用例驱动的UML对象建模应用——范例分析[M].北京:人民邮电出版社, 2005.

上一篇:某平台外输油管道腐蚀穿孔原因分析及建议下一篇:大学生如何建立良好人际关系