论文部分内容阅读
【摘要】为了适应目前我国软件工程产业教育国际化、产业化的发展要求,改进软件工程专业课程的教学质量与教学效果。本文针对当前软件学院教学中存在的问题提出对《软件工程》的产学研及课程评价进行了重大的改革与创新。该课程实践教学改革不但能提高学生的积极性、创造性,同时对学生掌握软件工程的理论知识有益,且为学习其他专业知识打下坚实的基础。
【关键词】软件工程 产学研 实践教学改革
【中图分类号】G64 【文献标识码】A 【文章编号】2095-3089(2014)09-0237-02
为实现毕业生和就业市场的对接,强化对学生科技创新能力、可持续发展能力及应用型实践能力的培养,经过认真调研和系统论证,积极吸纳行业人才标准,南阳理工学院谋划制订了应用型本科培养方案,修编了千门课程教学大纲,深入实施实践性教学,加大“订单式”培养模式改革力度,深化校企合作,最大限度降低用人单位对毕业生“二次培训” 的投入成本,使毕业生能顺利通过试用磨合期,成为企业的骨干力量。南阳理工学院软件学院也积极响应学校号召,制定相关标准,努力提高学生的实践能力、创新能力。
软件行业已经成为推动国民经济和社会发展的基础性、战略性和先导性产业,为推进工业和信息化融合、转变经济发展方式、保障国家信息安全提供了重要支撑[1]。因此提高软件开发设计人员具备的软件设计、项目维护、项目管理的能力尤为突出。软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。[2]《软件工程》课程被各国大学信息类相关专业设置为一门核心专业课程。当前《软件工程》课程中存在的一系列棘手问题,直接影响教学质量与教学效果提升。比如在教学内容上表现为重理论而轻实践,从而不能有效培养学生的软件开发能力;授课中使用的教学案例缺乏完整性和实用性,从而不能帮助学生全面理解软件开发的全过程[2]。因此,我们迫切需要对教学体系进行革新,形成一体化培养方案:基础教学、实践教学、工程实践。本文将从理论教学、实践教学以及课程教学评价三个方面进行探索。
1.《软件工程》课程理论体系教学探索
以IEEE(电气和电子工程师协会)发布的软件工程知识体系为基础,结合软件开发基础知识、软件领域的先进技术和软件开发方面的工程实践等构建该门课程的知识体系。一般的《软件工程》课程知识体系如图1所示。
图1 软件工程知识体系
《软件工程》课程知识体系分为开发过程和支持过程两个部分。开发过程部分的软件设计、需求分析为理论教学,根据教学目的和教学要求,采用案例及问题驱动等教学方法,讲解软件工程的理论基础知识,包括软件生命周期各个阶段、软件质量和软件项目管理等核心内容,通过案例的分析,促进学生的独立思考,提高其对理论知识的理解和掌握。支持过程部分是以当前流行的统一开发过程、面向对象分析与设计和UML语言为核心,融入实际案例,Visio、Project、Sybase powerdesigner、Star UML 、Rational Rose2003、Loadrunner等软件工程设计工具和运行环境,使学生们掌握当前优秀而常见的软件工程技术。实践部分要求学生分组联合完成一个实践的软件工程系统,比如常见的校园自动化办公系统,高校的办公系统一般涉及公文管理、督查管理、电子公文审批、公共信息查阅及收集,内部请示报告管理、会议管理、领导活动管理、个人待办事宜、日程安排、通讯录、快递办理、资源管理,以及其他有关机关行政事务处理等。把这些项目进行适当的分解,让学生从实践中获得真知,运用软件工程思想和现代开发工具与技术来解决软件开发所遇到的问题,提高学生分析问题和解决具体问题的能力。一般来说,讲授《软件工程》的理论知识晦涩难懂,讲课中若能穿插一些实践案例对理论知识进行形象化的表述,不仅能让学生心领神会,也能提高学生软件开发更加系统化、工程化、质量化。同时也应该注意的是,教学案例的选择应该是学生熟知的领域,且它的实用性能激发学生的求知欲。如在讲授Web程序安全性问题时候,授课老师可以先设计一个表面看起来很好,但系统安全漏洞百出的程序演示给同学们。如SQL侵入案例,学生会对不需要输入账号密码而轻松进入网管系统而震惊不已,这是授课老师再做理论分析会深深吸引学生。所以,在理论教学中,把抽象的知识形象化、具体化、案例化,采用启发式、讨论式、师生交互式等教学理论方法更能营造融洽的学习气氛,激励学生们去思考,去网络上或图书馆查找资料,从而领略当下软件工程设计领域的精华。
2.实践教学内容创新模式
在实践教学过程中,我们实施项目驱动教学法,实验设计以项目开发为主题,模仿商用的软件开发过程,若遇到问题,进行师生互动讨论寻找解决方案,通过开发出来的“成品”来反馈教学评价,整个流程能使学生体会到一个完整的项目开发全过程。我们安排的实践教学活动具体流程为:
(1)项目任务分解:第一次课 ,要求学生以平时成绩均分的方式划分项目小组,每组3-5人不等,每个学生可扮演项目中不同的角色,也可以互换角色。第一个项目一定要把握好软件的规模和难易程度。要求按照商用软件的开发流程,逐步完成项目开发的分析、设计、编程和测试,同时将Visio、Project、Sybase powerdesigner、Star UML 、Rational Rose2003、Loadrunner等常用软件开发工具在部署过程中进行有效使用。
(2)团队合作:学生根据自愿和能力互补的原则组成团,每组角色包括项目经理、系统分析员、架构设计师、软件设计师、软件开发和软件测试工程师等,当然成员的角色可调换。
(3)计划可行性评估 :教师通过审核项目实施的可行性,制定项目计划。符合要求,方可进入下一步的实施阶段。 (4)项目实施 :小组成员根据各自的任务查找资料,收集解决方法,定时讨论交流,各个模块间相互配合协调完成任务。该阶段还学设计完成软件项目的总体架构;对功能模块进行编码。整个项目实施过程由任课教师指导,项目经理控制其进度,该阶段可培养学生多人之间的沟通能力和团队协作精神。
(5)软件测试: 测试是软件开发过程中的一个重要组成部分,是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求、预先定义的不一致性。
(6)项目验收阶段:项目验收是公司乃至每个项目成员都想要的结果。项目验收是一系列细致工作完成到位的结果,而不是某一点的成功或某个人能力就可以促成的事情。一个项目的验收,一般是由一系列验收准备工作组成的。如果我们在最终验收前,已经将很多阶段的工作细化并得到认可执行,那么项目验收也就是水到渠成的事情了。根据软件开发流程的各个阶段成果包括可行性分析报告、需求规格说明书、项目计划书、总体设计报告、详细设计说明书、软件测试报告、项目开发总结报告等。最后项目组还要提交系统和所有文档备案。
3.《软件工程》教学评价体制改革
按照教育部本科评估相关要求,教学评价是课程教学的必要环节。所谓的教学评价,就是根据教学目的和教学原则,利用所有可行的评价方法及技术对教学过程及预期的一切效果给予价值上的判断,以提供信息改进教学和对被评价对象作出某种资格证明。在本课程的教学实践中,我们将该课程的成绩构成分为:期末成绩占60%,考勤占10%,实验占30%,其中期末考试中的理论考核占50%,项目实践成绩占30%,考勤、平时作业、实训练习等占20%。这样的课程评价体系能够调动学生们的学习积极性和协作精神,教学效果比较显著。
4.结语
本文通过对《软件工程》课程教学的理论和实践进行了探究,以常规的软件工程课程知识体系为基础构建了整个课程体系的知识结构,在教学中体现理论与实践并重的思想。理论教学部分着重于实际案例的选择和剖析,理论教学部分贯穿精选案例具体实践方法,达到了理论教学与实践项目的完美结合。实践教学以实际项目驱动为基础的,它可以模拟企业及大型商用软件的设计和开发过程,从而可以引导学生积极设计与论证,教师在这里不再是知识的灌输者,而是学习的积极引导者,学生由被动“填鸭式”教育变成主动的探索式教育。实践已经证明,通过本课程的改革与创新可以极大地提升学生的学习兴趣,取得了比较好的教学效果。
参考文献:
[1]萨默维尔.软件工程 [M].9版 .北京 : 机械工业出版社, 2011:55-71.
[2]周璀,段光中,刘松平. 《软件工程》课程教学改革的研究与探索[J]. 科技资讯,2012,30(3):146-147.
[3]詹秀菊,刘梢. 《面向对象程序设计》课程实验教学改革的研究与探索[J]. 现代计算机 ,2013,08:40-43
【关键词】软件工程 产学研 实践教学改革
【中图分类号】G64 【文献标识码】A 【文章编号】2095-3089(2014)09-0237-02
为实现毕业生和就业市场的对接,强化对学生科技创新能力、可持续发展能力及应用型实践能力的培养,经过认真调研和系统论证,积极吸纳行业人才标准,南阳理工学院谋划制订了应用型本科培养方案,修编了千门课程教学大纲,深入实施实践性教学,加大“订单式”培养模式改革力度,深化校企合作,最大限度降低用人单位对毕业生“二次培训” 的投入成本,使毕业生能顺利通过试用磨合期,成为企业的骨干力量。南阳理工学院软件学院也积极响应学校号召,制定相关标准,努力提高学生的实践能力、创新能力。
软件行业已经成为推动国民经济和社会发展的基础性、战略性和先导性产业,为推进工业和信息化融合、转变经济发展方式、保障国家信息安全提供了重要支撑[1]。因此提高软件开发设计人员具备的软件设计、项目维护、项目管理的能力尤为突出。软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。[2]《软件工程》课程被各国大学信息类相关专业设置为一门核心专业课程。当前《软件工程》课程中存在的一系列棘手问题,直接影响教学质量与教学效果提升。比如在教学内容上表现为重理论而轻实践,从而不能有效培养学生的软件开发能力;授课中使用的教学案例缺乏完整性和实用性,从而不能帮助学生全面理解软件开发的全过程[2]。因此,我们迫切需要对教学体系进行革新,形成一体化培养方案:基础教学、实践教学、工程实践。本文将从理论教学、实践教学以及课程教学评价三个方面进行探索。
1.《软件工程》课程理论体系教学探索
以IEEE(电气和电子工程师协会)发布的软件工程知识体系为基础,结合软件开发基础知识、软件领域的先进技术和软件开发方面的工程实践等构建该门课程的知识体系。一般的《软件工程》课程知识体系如图1所示。
图1 软件工程知识体系
《软件工程》课程知识体系分为开发过程和支持过程两个部分。开发过程部分的软件设计、需求分析为理论教学,根据教学目的和教学要求,采用案例及问题驱动等教学方法,讲解软件工程的理论基础知识,包括软件生命周期各个阶段、软件质量和软件项目管理等核心内容,通过案例的分析,促进学生的独立思考,提高其对理论知识的理解和掌握。支持过程部分是以当前流行的统一开发过程、面向对象分析与设计和UML语言为核心,融入实际案例,Visio、Project、Sybase powerdesigner、Star UML 、Rational Rose2003、Loadrunner等软件工程设计工具和运行环境,使学生们掌握当前优秀而常见的软件工程技术。实践部分要求学生分组联合完成一个实践的软件工程系统,比如常见的校园自动化办公系统,高校的办公系统一般涉及公文管理、督查管理、电子公文审批、公共信息查阅及收集,内部请示报告管理、会议管理、领导活动管理、个人待办事宜、日程安排、通讯录、快递办理、资源管理,以及其他有关机关行政事务处理等。把这些项目进行适当的分解,让学生从实践中获得真知,运用软件工程思想和现代开发工具与技术来解决软件开发所遇到的问题,提高学生分析问题和解决具体问题的能力。一般来说,讲授《软件工程》的理论知识晦涩难懂,讲课中若能穿插一些实践案例对理论知识进行形象化的表述,不仅能让学生心领神会,也能提高学生软件开发更加系统化、工程化、质量化。同时也应该注意的是,教学案例的选择应该是学生熟知的领域,且它的实用性能激发学生的求知欲。如在讲授Web程序安全性问题时候,授课老师可以先设计一个表面看起来很好,但系统安全漏洞百出的程序演示给同学们。如SQL侵入案例,学生会对不需要输入账号密码而轻松进入网管系统而震惊不已,这是授课老师再做理论分析会深深吸引学生。所以,在理论教学中,把抽象的知识形象化、具体化、案例化,采用启发式、讨论式、师生交互式等教学理论方法更能营造融洽的学习气氛,激励学生们去思考,去网络上或图书馆查找资料,从而领略当下软件工程设计领域的精华。
2.实践教学内容创新模式
在实践教学过程中,我们实施项目驱动教学法,实验设计以项目开发为主题,模仿商用的软件开发过程,若遇到问题,进行师生互动讨论寻找解决方案,通过开发出来的“成品”来反馈教学评价,整个流程能使学生体会到一个完整的项目开发全过程。我们安排的实践教学活动具体流程为:
(1)项目任务分解:第一次课 ,要求学生以平时成绩均分的方式划分项目小组,每组3-5人不等,每个学生可扮演项目中不同的角色,也可以互换角色。第一个项目一定要把握好软件的规模和难易程度。要求按照商用软件的开发流程,逐步完成项目开发的分析、设计、编程和测试,同时将Visio、Project、Sybase powerdesigner、Star UML 、Rational Rose2003、Loadrunner等常用软件开发工具在部署过程中进行有效使用。
(2)团队合作:学生根据自愿和能力互补的原则组成团,每组角色包括项目经理、系统分析员、架构设计师、软件设计师、软件开发和软件测试工程师等,当然成员的角色可调换。
(3)计划可行性评估 :教师通过审核项目实施的可行性,制定项目计划。符合要求,方可进入下一步的实施阶段。 (4)项目实施 :小组成员根据各自的任务查找资料,收集解决方法,定时讨论交流,各个模块间相互配合协调完成任务。该阶段还学设计完成软件项目的总体架构;对功能模块进行编码。整个项目实施过程由任课教师指导,项目经理控制其进度,该阶段可培养学生多人之间的沟通能力和团队协作精神。
(5)软件测试: 测试是软件开发过程中的一个重要组成部分,是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求、预先定义的不一致性。
(6)项目验收阶段:项目验收是公司乃至每个项目成员都想要的结果。项目验收是一系列细致工作完成到位的结果,而不是某一点的成功或某个人能力就可以促成的事情。一个项目的验收,一般是由一系列验收准备工作组成的。如果我们在最终验收前,已经将很多阶段的工作细化并得到认可执行,那么项目验收也就是水到渠成的事情了。根据软件开发流程的各个阶段成果包括可行性分析报告、需求规格说明书、项目计划书、总体设计报告、详细设计说明书、软件测试报告、项目开发总结报告等。最后项目组还要提交系统和所有文档备案。
3.《软件工程》教学评价体制改革
按照教育部本科评估相关要求,教学评价是课程教学的必要环节。所谓的教学评价,就是根据教学目的和教学原则,利用所有可行的评价方法及技术对教学过程及预期的一切效果给予价值上的判断,以提供信息改进教学和对被评价对象作出某种资格证明。在本课程的教学实践中,我们将该课程的成绩构成分为:期末成绩占60%,考勤占10%,实验占30%,其中期末考试中的理论考核占50%,项目实践成绩占30%,考勤、平时作业、实训练习等占20%。这样的课程评价体系能够调动学生们的学习积极性和协作精神,教学效果比较显著。
4.结语
本文通过对《软件工程》课程教学的理论和实践进行了探究,以常规的软件工程课程知识体系为基础构建了整个课程体系的知识结构,在教学中体现理论与实践并重的思想。理论教学部分着重于实际案例的选择和剖析,理论教学部分贯穿精选案例具体实践方法,达到了理论教学与实践项目的完美结合。实践教学以实际项目驱动为基础的,它可以模拟企业及大型商用软件的设计和开发过程,从而可以引导学生积极设计与论证,教师在这里不再是知识的灌输者,而是学习的积极引导者,学生由被动“填鸭式”教育变成主动的探索式教育。实践已经证明,通过本课程的改革与创新可以极大地提升学生的学习兴趣,取得了比较好的教学效果。
参考文献:
[1]萨默维尔.软件工程 [M].9版 .北京 : 机械工业出版社, 2011:55-71.
[2]周璀,段光中,刘松平. 《软件工程》课程教学改革的研究与探索[J]. 科技资讯,2012,30(3):146-147.
[3]詹秀菊,刘梢. 《面向对象程序设计》课程实验教学改革的研究与探索[J]. 现代计算机 ,2013,08:40-43