时间:2023-03-14 14:48:04
序论:好文章的创作是一个不断探索和完善的过程,我们为您推荐十篇软件工程专业课程范例,希望它们能助您一臂之力,提升您的阅读品质,带来更深刻的阅读感受。
软件工程教育兼属科学教育和工程教育范畴,软件工程的科学教育属性主要是引导学生对人类意识与智慧进行科学理解、增强运用软件本质特性(构造性与易演化性)和解决具体问题的能力;而软件工程的工程教育属性主要是引导学生综合应用计算机科学、数学、管理等科学原理,借鉴传统工程的原则、方法,提炼和固化知识,通过创建软件来达到提高质量、降低成本的目的。然而,McKinsey Global Institute2005年10月发表的一份报告称,我国2005年毕业的60多万工程技术人才中适合在国际化公司工作的不到10%,主要原因是中国教育系统偏于理论,学生在校期间几乎没有受到Project和团队工作的实际训练,这对我国高等院校工程教育改革与创新提出了挑战,也为软件工程专业建设指明了方向。
合理的课程体系是高等院校保证培养目标和形成办学特色的重要手段。目前,我国1900多所普通高校中虽有100多所院校开设了软件工程专业,但与当前软件工程技术发展差距较大。为了培养出既有理论知识又有应用技能的工程型实用软件人才,软件工程专业课程体系必须进行改革。对此,本文结合CC2005、SE2004、SWEBOK、国内软件工程专业课程设置现有的研究成果,探索软件工程专业本科教学课程体系建设问题。
1 软件工程专业课程体系设计策略
计算学科本科教学常用的课程体系设计策略主要划分为:课程启动策略、课程组织策略、特色课程设置策略。课程启动策略主要包括:1)围绕算法设计展开的算法优先策略;2)自底向上展开的硬件优先策略;3)从计算机导论展开的广度优先策略:4)强调编程能力的程序设计优先策略;5)强调系统使用命令优先策略;6)从面向对象展开的对象优先策略。
课程组织策略主要有:1)基于主题的组织模式,它把知识体系中的每个知识域组织成一门或几门课程;2)基于系统的组织模式,它把每类计算机软硬件系统设置成一门或几门课程;3)混合模式,在课程设计时不考虑区分前两种方法,兼而有之。特色课程设置策略主要依据本校办学特色和研究专长来确定。
由于软件工程教育兼属科学教育和工程教育范畴,其科学属性和工程属性决定了软件工程专业本科教学课程规划,一方面要强调工程性、技术性、实用性、系统性、综合性和复合型,另一方面要强化基础软硬件知识在解决复杂软件构造和应用方面起到的关键作用。对于课程启动策略而言,传统计算机科学专业的课程启动方式并不适合于本专业,但工程优先策略似乎也不适合于没有任何计算机基础的本科生;同样,在课程组织策略上,基于主题的组织模式更多地具有科学研究属性,而基于系统的组织模式又不利于基础知识强化;此外,特色课程设置时,有时会缺乏全面综合考虑,因人设课会造成特色课程系统性差问题。因此,在软件工程专业课程体系设计策略方面,应根据软件工程学科自身属性,综合考虑以上各种策略特点,全局思考,统一规划,避免课程系统性差、教学内容重复和遗漏并存等现象。
2 软件工程专业课程体系架构模型设计
根据软件工程专业本科教学的培养目标及规格要求,其课程体系采用“夯实基础教育、提高系统认知、强化软件开发、推进工程实训”为主线的设计思路,构建了“分层次、互动式、工程化”的课程体系架构模型(如图1所示)。该模型共分为四个层次,即基础知识教育层、系统认知教育层、工程设计开发层和工程实践训练层。各层次不是相互独立的,而是相互关联、相互影响、逐层递进的演进关系。该模型简化了计算机科学核心课程数量,突出基于主题的组织模式,沿着由浅入深、循序渐进的认知路径,力图实现“基础与编程一体化、编程与系统一体化、系统与工程一体化、工程与职业一体化”四位一体的工程型实用软件人才教学目标。
2.1 基础知识教育层
基础知识教育的设计思路,强化学生的基础知识和编程意识,实现“基础扎实和编程意识强”两个目标。基础知识教育层结构具体划分为:数学基础类课程模块、外语类课程模块、软件基础类课程模块、其他公共基础类课程模块。根据各模块自身特点,全面考虑各模块之间的关联性,做好彼此之间的衔接。在课程启动策略方面,主要采取基于基础的编程优先策略。在数学基础类课程模块中确定一门衔接较好的基础课作为软件基础类课程模块的启动,软件基础类课程模块率先启用软件设计基础课程,力图达到“基础与编程一体化”的教学目标。在课程组织策略方面,采取基于主题的组织模式,有利于学生掌握基础理论知识。
2.2 系统认知教育层
系统认知教育的设计思路:强化学生的编程能力和对软件系统的认识能力,实现“编程能力强和系统级认知”两个目标。根据软件工程专业对硬件系统和系统软件的知识要求,系统认知教育层结构划分为:数据库系统类课程模块、网络系统类课程模块、操作系统类课程模块和编译系统类课程模块。在课程启动策略方面,主要采取基于编程的系统优先策略。通过软件基础类课程模块的数据结构等课程和系统认知类课程模块的数据库原理及应用等课程,进一步强化学生的编程能力,并以程序设计为主线引导学生的系统级认识能力,实现“编程与系统一体化”的教学目标。在课程组织策略方面,采取基于系统的组织模式,简化计算机科学核心课程数量,提高学生学习的有效性和对知识的掌握程度。
2.3 工程设计开发层
工程设计开发的设计思路:以工程化方法为手段,依托项目培养学生的“工程”意识,锻炼学生对软件系统的设计与开发能力,进一步强化学生的系统级认识,实现“更完整的系统级认识和软件系统工程化设计开发技术”两个目标。根据软件工程项目开发流程,工程设计开发层结构划分为:软件过程类课程模块、软件设计类课程模块、软件架构类课程模块、软件测试类课程模块、人机交互类课程模块、特色项目类课程模块、可扩充类课程模块。该层综合考虑核心专业课程和特色项目课程设置,基于专业方向设置若干动态可扩充课程,全面考虑课程之间的关联,强调统一设计、统一规划。学生在这个层次必修一些工程设计开发系列课程,选修可扩充类课程,达到“系统与工程一体化”的教学目标。课程启动策略采取基于系统的工程优先策略。课程组织策略采取项目的组织模式,以此来提高学生的软件系统设计与开发能力。
2.4 工程实践训练层
工程实践训练总体设计思路:通过实验训练、专业实习、项目实训、毕业设计等教学环节,依托校内 外实习实训基地,采用校外实习实训、自主实习实训、校内实习实训和外聘软件工程师等形式,强化学生的工程能力,培养学生的职场素质,实现工程与职业一体化的教学目标。工程实践训练层结构具体划分为两大类,一类是实验与实习类课程模块,另一类是工程实训与毕业论文类课程模块。其中,实验与实习类课程模块的具体设计思路,通过基础实验、系统体验、编程能力训练三个环节,进一步夯实学生的基础知识,完善学生的系统级认识,强化学生的开发技能;而工程实训与毕业论文类课程模块的具体设计思路,通过“软件工程项目实训”这个载体,采取“企业+实训+论文+就业”捆绑的运作模式,与多家国内知名IT公司合作,让学生到企业进行实际项目综合训练,并完成毕业论文设计工作,实现理论与实践结合、技巧与职业素质结合的教学目标,同时也为学生就业提供一个良好平台。
上述四个教育层是彼此联系和互动发展的,在课程体系设计中充分考虑衔接性、系统性和创新性。交流、沟通、讲演、写作的培养更多体现在第二课堂科技学术活动中。
3 软件工程专业核心课程设置
3.1 课程设置原则
软件工程专业课程设置遵循六个基本原则,即先进性、灵活性、复合性、工程性、创新性和模块化。1)先进性:课程设置和课程内容需反映国际上先进的软件技术发展成果和软件企业对先进技术的需求,以及相关的基础理论。2)灵活性:课程设置需具有灵活性,应根据软件技术的发展及时调整。3)复合性:课程设置需包括技能、工程、管理等方面的教学内容,使学生具有必要的综合技能和基本素质。4)工程性:课程设置面向软件工程实践,强调工程实践能力培养,使学生能够自觉运用先进的工程化方法和技术从事软件开发和项目管理,具有团队协作精神。5)创新性:课程设置应倡导学生自主学习,并给予必要的指导,从而培养学生自主学习和自我提高能力,以及勇于开拓和善于创新能力。6)模块化:课程应按照模块化准则设计,课程模块设计可以交叉。根据软件技术最新发展、当前市场需求及专业培养方向、学生目前具备的领域知识等,灵活调整课程设置和课程内容。
3.2 核心课程模块设置
1)软件基础类课程模块设有:计算机硬件基础、软件设计基础、数据结构、计算机组织原理、面向对象程序设计、算法分析与设计等课程。2)操作系统类课程模块设有:操作系统原理、LINUX系统基础、嵌入式系统基础等课程。3)网络系统类课程模块设有:计算机网络、网络规划与集成、网络安全检测与防范技术、网络协议与网络软件等课程。4)数据库系统类课程模块设有:数据库原理及应用、ORACLE数据库、数据仓库与数据挖掘技术等课程。5)编译系统类课程模块设有:编译系统原理、编译技术等课程。6)软件过程类课程模块设有:软件工程、需求工程、软件项目管理、软件建模技术UML等课程。7)软件设计类课程模块设有:C++高级程序设计、J2EE与中间件、.NET架构技术、设计模式等课程。8)软件架构类课程模块设有:大型软件系统构造、软件体系结构等课程。9)软件测试类课程模块设有:软件测试技术、软件测试与评估等课程。10)人机交互类课程模块设有:人机交互技术等课程。11)特色项目类课程模块设有:软件工程项目案例解析、大型软件工程项目实训等课程。12)可扩充类课程模块设有:手机游戏开发、网络游戏开发、计算机图形学、嵌入式Linux网络及GUI应用开发、嵌入式Linux驱动开发、手持设备软件开发等课程。
4 软件工程专业培养方案制定与实施
软件工程专业培养方案制定是基于软件与工程的复合,将软件工程与领域应用相结合,强调计算机科学和数学基础的同时,将专业课程重点放在软件新技术和软件工程新技术方面,通过对实践类课程工程化改造,增设软件工程项目实训环节,开设部分技能课程,试图使学生的基础知识、专业技能、创新能力、工程能力和职业素质都能得到全面均衡发展。具体措施如下。
4.1 建立英语为主日语为辅的外语教学体系
根据IT市场的实际需求,软件工程专业培养方案制定,除正常开设四个学期大学英语外,增开两个学期标准目语和一个学期专业英语,坚持外语学习四年不断线,旨在为学生选择日企或对日外包企业就业提供方便。
4.2 建立工程化实践教学体系
建立“四年不断线、三个层次相呼应、两大措施为保障”的工程化实践教学体系。“四年不断线”是指实践环节四年不断线,每个学期至少有一个集中性的实践教学环节,体现“全过程”实践;“三个层次相呼应”主要是从实践教学内容设计上考虑的,包括第一层次教学实验,第二层次课程设计及专业实习,第三层次工程项目实训与毕业设计;“两大措施为保障”主要指教学计划保障和考核制度保障。
4.3 设置专门的实践课程
针对工程化软件人才应具备的个人开发能力、团队开发能力、系统研发能力和设备应用能力,以必修课和选修课形式,开设四类特色化、阶梯状工程实践学分课程,即程序设计类实践课程、软件工程类实践课程、项目管理类实践课程和网络平台类实践课程,构成了系统全面的学生实践能力训练体系。
4.4 提高专业课程教学中的实验课时量
除个别侧重理论教学的专业课程外,80%以上的专业课程包含实验或实习环节,实验或实习成绩占总成绩的30%以上,一部分实践性较强的课程是以上机考试和答辩作为最终考试方式。
4.5 开设部分技能课程
(1)开放式授课。随着行业基础框架的构成、行业发展和技术融合的国际化,软件工程的授课将不再局限于某本教材或某个案例。
(2)小组式开发。软件工程开发要求开发人员具有良好的团队合作能力和沟通能力,因此应将学生设置在以模块开发为目标的开发小组,培养学生分析问题、协调问题、解决问题的能力。
(3)模块化集训。IT环境复杂度和历史遗留系统的增加,对软件工程领域提出新的挑战。模块化的思想能够通过抽象、封装、分解、层次化等基本的科学方法提高软件工程灵活性。
(4)真实性案例。软件工程授课依托于真实案例,可加快学生对软件工程的感性理解,从而解决学生对软件产品初始建模、过程开发、测试运行、质量监控、配置与过程的管理有系统性的掌握,锻炼学生对项目开发过程的整体把握能力。
2基于项目导向的课程体系构建
合格的软件工程专业学生应具备专业基础知识、工程技术能力以及良好的职业素养。教师应结合软件工程专业人才培养标准、软件工程行业开发规范和技术特征,在不同阶段将具体项目融入教学,基于项目导向理论知识,培养工程化特征明显的学生;在项目案例引入各教学阶段时,应夯实学生的基础理论知识与基本实践技能;在强化工程技术阶段,项目案例应涵盖前端技术课程,工程实训阶段项目案例需引入企业真实项目。通过3个阶段的教学,学生能够具备软件工程师的基本编程、综合设计及工程实训等能力。我们应分析软件工程专业知识体系与课程设置,根据普通高等院校软件工程专业课程规划、设置学时,构建层次清晰的教学实践体系及内容,培养应用型软件工程专业人才;同时,在IEEECC2001SE学科的知识体系基础上结合国内软件产业及校内办学的实际情况,在基础教学、理论应用、项目实践3个层次建立软件工程专业课程体系,基础教学部分主要讲授软件工程领域的基础理论知识,以开发过程为主线详细分析和讨论软件的需求分析、结构设计、程序实现、功能测试、变更与维护、软件项目管理等内容,让学生对此有感性认知。理论应用部分主要以面向对象程序设计为基础,锻炼学生的建模和实现能力。同时,采用实践案例,让学生掌握软件开发的方法和技术,培养学生的专业能力、管理能力、团队协作能力和职业精神。项目实践部分分为基础技能实训、专业技能实训、综合设计实训、科技创新实训等4个模块,可以基于项目建立多个小组,让学生以团队合作的方式在企业开发环境中实现一定规模的软件项目。为培养“理论知识实、实践能力强”的应用型人才,需将教学计划与项目实践环节紧密结合。基于项目导向的教学体系层次实施步骤如下。
(1)基本知识技能阶段:将.NET与JAVA开发作为实习内容,让学生了解面向对象开发的基本知识。
(2)综合知识实训阶段:让学生了解并掌握软件开发方法,熟悉.NET在软件项目系统开发中的具体作用,设计和实现功能界面,实现数据库设计与应用,分析和解决软件开发过程中出现的问题,并进行功能测试。
(3)应用能力提高阶段:对之前阶段开发完成的软件项目进行详细的分析与讲解,基于项目开发的实际应用强化软件工程的理论知识,让学生感受所学知识与实践应用的对应性,加强学生实践动手能力和团队沟通合作能力。
(4)职业技能与素养提升阶段:对软件项目范围、功能实现、总体进度、软件质量、管理配置等方面进行开发训练,锻炼学生整体项目的开发能力,逐步培养学生的职业技能,结合项目开发对学生进行测试与评价,培养和提高学生的职业素养。
3基于情景的教学方法实施
情景教学能让学生对知识有感性认识,提高对课堂内容的理解效率,因此需要在一个通用的软件开发环境中进行项目开发的学习。构建符合软件工程专业课程项目开发的开发环境是提升软件工程教学效果的关键。情景模式授课能让学生在模拟的软件工程项目中实战训练,通过层次提升效率,激发学生的学习兴趣,达到最佳教学效果。教师在情景模式的授课过程中担任项目总监或技术顾问的角色,组织学生进行技术交流、成果验证、变更审核等活动;学生会依据项目不同阶段的情景扮演不同职位,提升自身项目开发技术及管理能力,培养个性化思维和团队合作思维相结合的思考模式。基于情景模式的软件工程专业课程教学过程。在具体的教学实施过程中,教师利用项目导出教学内容,围绕项目案例设计教学情景,依据情景设计安排学生在项目团队中的不同角色,尽量让学生体验真实的项目开发流程。借助项目情景模式增强了课程内容的趣味性,最大限度地调动学生的主观能动性。项目导向下的情景模式教学需要对项目选定、教学内容设定、项目进程安排、学生角色安排、项目成果鉴定等方面进行管理。基于情景模式的教学要求,学生以项目团队的方式组成项目小组(一般由3人组成),开发具有一定规模且功能较为丰富的软件系统,侧重培养学生在项目开发过程中发现问题、分析问题、解决问题的能力,培养学生的团队合作精神,使学生体验软件开发的全过程。专业课程教学内容应把软件开发分解为项目前期准备、中期分析与设计、功能测试和软件交付等三大部分,具体内容为:
(1)项目准备阶段:教师在课程初始阶段,将软件项目需求告知学生,选定项目开发小组,制定开发范围和计划。
(2)分析设计阶段:项目开发小组基于需求和开发计划,编制需求规格说明书。依据项目的总体结构,逐步设计项目所需功能,并编写相应文档。
(3)测试与交付阶段:开发团队对完成的功能模块进行整合,测试功能性和稳定性,调试并完善软件系统,最终形成达到项目需求的软件集成系统。
(4)软件交付:教师运行集成的完整系统,组织学生交叉验收。验收管理是各团队共同检验工程是否达到预定目标并进行最终确认的重要一环,每位学生必须高度重视,支持项目验收工作。在情景式的软件工程环境中,学生真正体验到一种有序的、可控的、协作的软件开发过程,在分析问题、解决问题、协调冲突、消除矛盾的过程中享受软件开发成功的成就感。项目导向的情景模式教学可以让学生在团队中练习,在练习中学习,锻炼学生独立开发与合作开发项目的能力。
一、引言
课程设计是指学生在学完相关课程后,综合利用所学知识分析问题、解决问题、实现理论向实践转换的重要教学环节,也是对前期理论教学效果的检验。
软件工程专业的大部分课程设计是有关软件开发的。这就要求学生在设计过程中经历一个完整的软件开发流程:项目定义、分析、设计、开发、维护[1]。作为软件开发过程中的一个重要环节,需求分析在实际的课程设计中由于各种条件的限制往往被忽略,没有得到应有的重视[2]。针对这一问题,本文首先阐述了需求分析在软件开发过程中的重要性,分析了软件工程专业课程设计中需求分析阶段存在的主要问题,并给出了相应的解决方案。
二、需求分析的重要性
软件需求定义了系统必须具备的能力,即软件能完成什么样的功能,达到什么样的性能,这种能力体现了用户的需要和开发者对用户需要的理解。软件项目的开始,就是因为软件需求的存在,需求是项目开发的基石。
一个项目成败的关键因素之一就是对需求的把握程度,研究表明,软件项目中大部分的问题都是在需求分析阶段埋下的隐患,需求问题发现的越晚,软件维护的开销就越大。很多项目的失败,也是由于需求分析的不明确而造成的,有些项目甚至是在需求没有完全确认的情况下就开始执行了,这必然会导致成本浪费、进度延迟等严重问题。所以分析是软件开发中最为基础和重要的环节,是软件项目迈向成功的第一步。
需求分析也称需求建模,主要任务就是借助当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统“做什么”的问题,即对目标系统提出完整、准确、清晰、具体的要求[4]。分析用户需求主要过程如下:
(1)以图形描述系统的整体结构。
(2)为用户提供可视化界面供用户对需求做出评价。
(3)以模型描述系统功能、实体关系及状态转等内容[3]。
需求分析要保证需求明确,尽量避免需求描述不清楚、需求遗漏、需求互相矛盾等问题,避免在开发后期因需求问题对项目产生困扰。
三、课程设计中需求分析现状
(1)学生重代码,轻需求,急于完成可见的执行软件,大大压缩了需求分析时间。
(2)学生缺乏对所选课程设计题目相关的业务知识的了解,需求分析只是对需求的拼贴,不完善,不系统。
(3)教师缺乏实际项目经验,对需求分析的认知只是停留在理论阶段,不能在实践上给学生以高水平的指导。
四、解决方案
针对以上问题,文中给出解决方案如下:
(1)一方面转变学生对需求分析的认知误区,强调需求分析的重要性,通过一些案例及调研数据让学生了解忽视需求分析带来的严重后果,让学生重视需求。让学生了解软件项目开发工作和项目管理工作都与需求密不可分,如软件项目成本估算、进度计划、项目跟踪控制、验证、确认等工作都以需求为基础;软件设计、编码、测试最终的目的都是为了提交一个满足用户要求的可执行软件,用户的要求主要就体现在需求分析的制品上。
另一方面增强需求分析的趣味性,让学生主动参与需求分析,如选题上给学生充分的自主选择权利,或者让两个同学选相同题目(分别做不同模块),同组间进行需求分析竞赛等。
在软件开发过程中让学生记录并总结,自身项目中存在的那些需求问题,对项目产生了怎样的影响,让学生在实践中体验、总结需求的重要性,加深认识。
(2)题目选择范围上给学生更大空间,可从教师给定的题目中选取,也可学生自拟题目。因为课程设计的时间有限,需求又是一项要求精细、准确、全面的工作,所以在课设开始前至少一个月,让学生预先选好题目,进行需求调研、分析工作。需求分析开始前,由教师预先规定应分析什么,如:软件功能需求、性能需求、可靠性和可用性需求、接口需求、系统约束等;采用什么样的分析方法,建立什么模型,如:功能模型、数据模型、行为模型等;及最终要形成软件需求规格说明,该文档模板由教师提供。任何软件需求都离不开其涉及到的业务领域,因此也要要求学生对业务领域相关的标准模型进行分析和研究,对业界的一些标准和最佳实践进行熟悉,对业务领域进行大量调研。这样才能让才能分析出真正的需求,否则需求就会脱离实际。
(3)作为教师不但要有扎实的理论知识,还应具有较强的实践经验,指导学生完成由理论知识向实践技能的转换。所以在选择课程设计教师的一个重要条件就是教师要有软件项目开发经验及管理经验[5],熟悉软件开发的各个环节。若教师本身不具备这样的能力,也可以通过加强教师培训,让教师到企业中实习的方式来提高教师实践指导水平,通过考核的教师才可以指导课程设计。
五、结论
总之,需求分析是软件开发过程中非常重要的一个环节,是项目所有活动展开的基石,在软件工程专业软件类的课程设计中,作为教师在这一环节应为学生提供有效的理论和实践指导,让学生理解需求分析的重要性,积极主动地做好需求分析工作,为后续的各项软件工程活动展开打下良好基础。
参考文献:
[1] 秦放等.案例驱动与项目导向结合的软件工程课程教学模式探讨[J].计算机教育. 2013(9):87-90
[2] 陈杰.计算机专业课程设计中的需求分析[J].集美大学学报.2009(2):89-92
一、评价指标构建
(一)评价指标构建的指导原则
指标体系中最重要的是指标,要确保每个指标的科学性,不能随意设置和编写指标。本研究的指标体系参考国内外评价指标体系的标准,查阅资料掌握指标构建的基本方法,同时也查阅了大量的有关软件工程专业有关的专业人才培养方案与课程体系设置的指导性纲要文献。通过对指标进行分类、归纳和总结,甄选出符合软件工程专业课程体系评价的指标体系,按照分解评价目标、简化指标、修正指标、分配权数四个步骤来进行实施。
(二)评价指标体系构建
本研究所涉及评价指标的研究主要采用文献分析和德尔菲研究法来进行。由于针对课程体系的评价将涉及到高等学校、分院教学管理者、专业授课教师、学生以及用人单位等,因此在制定过程中都要把这些因素列入到指标体系的范围中。通过文献分析和专家咨询,设定了评价的总体目标和子目标,并设定了简化的指标,然后对这些指标进行修正。在指标设定过程中,要结合软件工程专业的特点,比如课程体系中是否要符合软件工程知识体系SWEBOK等内容。在制定过程中,可以不分得这么细,只需要列出课程体系安排的科学性即可,但是在制定细则时要考虑这些问题。限于篇幅原因,评价指标体系构建的细节本文不涉及。通过对指标进行部分的修订和完善,最终确定了指标体系的一、二级指标。一级指标为课程体系的目标、课程体系的内容、课程体系的实施、课程体系的教学效果。再根据相关的专业理论,就一级指标再细化成若干个关键点位的综合,形成了二级指标。
(三)确定权重
层次分析法是一种定性和定量相结合的分析方法,该方法将判断规范化、数量化,然后通过统计运算,得出各项指标的权数。该分析方法对各项指标的判断和比较都是在同一层次中的指标进行的,具体步骤为:首先将问题层次化,然后根据评价对象的性质和要求达到的总目标,将这个总目标分解成不同层次的指标。层次分析法以矩阵理论为理论基础,其中构造判断矩阵是一项重要的任务。判断矩阵是将两个指标进行比较,查看是否有同等的重要性,还是其中一个指标比另外的指标更重要。根据判断矩阵准则表,通过听取专家的意见,对一级指标和二级指标根据相对重要程度,进行比较判断得到一个表矩阵,求出所有指标的重要程度之和,然后每个指标的权数之值就是将每个指标重要程度之和除以总的重要程度之和的比值,这样得到每个指标的权数。以一级指标为例,通过层次分析法计算得出其权重分别为0.347,0.449,0.102,0.102,一致性比率小于0.1,可以得出判断矩阵满足一致性检验,该指标的权数分配有效。按照相同的方法对二级指标求权数。经过多次修改和完善,最终确定了所有的评价一、二级指标的权数,由于篇幅原因二级指标的权重在此不再列出,其中合成权数是由二级指标的权数分别乘以相对应的一级指标的权数得来的,总和值为1。上述方法是一种通过对指标两两比较而求得权数的方法,是一种比较简单易行的一种方法。
二、评价标准的确定
评价指标体系仅有评价指标和权重还不够,还应该有详细的评价标准,这样测评人员才能够顺利地完成对相应问题的评价。目前常见的评价标准确定的方法有分段式标准、评语式标准、量表式标准、隶属度标准以及期望行为标准等方法,为简单易行,本研究将各项指标分为若干个等级,然后为各项指标赋予一个权数,使他们按照等距划分到相应的等级中去,接着将每个等级的分值分成若干个小档。综合已有相关研究与实践经验,将等级标准划分为优秀、良好、一般、较差4个等级,分值为100、85、70、55,等级的分值级差为15分。
三、软件工程专业课程体系评价实例分析
(一)2010版软件工程专业课程体系简介
吉林工程技术师范学院作为应用型本科院校,定位为培养应用型人才,因此所制定的专业方向模块课程要与人才市场及区域经济发展需求相一致。目前在我国软件应用领域,软件开发人员需求缺口很大,因此将我校软件工程专业人才培养方向定位为软件开发工程师。在软件开发领域目前存在着两大对垒:微软的.NET和甲骨文公司的JAVA,因此将专业方向划分为.NET方向和JAVA方向,并依据技术路线设置了相应的专业方向课程。所制定的应用型本科软件工程专业人才培养方案中的理论课程体系分学期执行。
(二)评价实施
首先根据表1课程体系评价的综合评价指标体系一、二级指标,制定调查打分表,邀请教育领域的专家、其他高校软件工程专业负责人、企业负责技术的工程师、在校和已毕业的学生、企业人力资源部经理对人才培养方案进行打分,将打分表收集后进行加权计算,最终本课程体系加权得分取整为87分。
(三)评价分析
从2010版软件工程专业课程体系的评价得出的结论,应该说基本符合其实际实施情况,从收集的打分情况来分析,“课程体系的目标”这个一级指标的打分值较高,说明课程体系的设置符合社会经济发展的需要,符合学校应用型大学的办学定位;“课程体系的创新性”这个二级指标打分值偏低,也反映了课程体系比较完整,但总体缺乏创新和灵活性,通过打分专家的反馈,在2013版软件工程专业人才培养方案中进行了调整,整体上以目前市场需要较多的An-droid开发为主线;“课程体系的实施”这个一级指标分值偏低,反映出课程体系在实施过程中的一些问题,需要引进企业工程师来校任课,推进理实一体教学方法改革等系列措施。
我国于2002年设立软件工程,近年来发展迅速,目前已有多家高校设置了软件工程专业,软件工程专业的学生数量庞大。但是我国软件工程专业的人才质量与国际上仍有不小的差距,这就对软件工程专业课程体系提出了更高的要求。根据我国国情、市场的需求和高校的实际情况,对软件工程专业课程体系进行进一步研究与创新实践,对于培养出符合软件工程产业要求的人才有重要的意义。
1软件工程专业课程体系的内容
参照2004年国际上IEEE-CS/ACM的本科生软件工程教育计划SE2004,我国教育工作者研究出了软件工程专业本科生教育计划的相关文件。SE2004的主要内容是SEEK,包括计算机科学基础,软件建模及分析,软件设计、验证及确认,软件进化、过程及质量,软件管理,职业基础,数学与工程基础等十余个知识领域。由于涉及领域较多,所以一般建议最少课时不少于五百个课时。基于最少推荐课时,SE2004又给出了课程体系,包括初级、中级、高级课程,数学课程以及非技术课程。
初级课程包括计算机科学基础优先和软件工程优先两种方案。计算机科学基础优先以程序设计基础为主要课程,包括数据结构、算法等课程。软件工程优先以软件工程为主要课程,包括软件工程与计算、算法、数据结构等课程。高级课程包括自下向上和自上向下两种课程设计方案。自下向上以由小到大的顺序逻辑思路为基础,包括软件需求分析、设计、质量保证、测试等课程。自上向下以由大到小的倒序逻辑思路为基础,包括软件的系统构造,软件测试、设计等课程。
2软件工程专业课程体系建立的必要性
长久以来,我国高校的软件工程专业的人才培养以研究型人才培养为主,以理论知识和软件设计为主要内容,目的是培养软件工程和计算机技术领域的研究型人才。目前,高校中软件工程专业的学生在理论知识的运用上缺乏锻炼,将所学知识运用于实际学习与工作中的能力不足。所以,根据我国国情和高校的实际情况,面向产业需求,建立与国际接轨的软件工程专业课程体系对于人才的培养和输运都有重要的意义。放眼国外高校,他们都能根据国家与学校的特点,结合学生的个性与全面发展,培养出适应产业需求和社会发展要求的软件工程专业人才。他们的教育观念成熟,教学手段先进,实验条件优异,并且大多与相关产业的企业有联系。与我国高校相比,他们对于理论知识的理解更深入,与产业的衔接更好,更注重实践,有效提高学生们分析解决问题的能力。所以,为了尽快在软件工程上达到国际水平,与世界接轨,建立软件工程专业课程体系是必经之路。
3软件工程专业课程体系发展现状
3.1课时分配不合理
目前的软件工程专业课程体系中计算机科学基础所分配的课时过少,压缩得太厉害,无法清楚明了地讲解计算机科学基础,对教师和程序设计者产生了不小的挑战。
3.2软件工程专业课程体系的优化不足
沿用传统的计算机的相关课程,不利于教育工作者调整优化计算机的相关课程的教学内容,从而实现软件工程专业课程体系的精益求精。
3.3创新有余,实践性不足
软件工程专业课程体系的创新方案创新性足够了,但是缺乏实践性。程序设计是软件工程专业课程体系的重要组成部分,在教学过程中软件工程与程序设计有机结合,可以取得良好的教学效果。但是软件工程专业课程体系却从软件工程的角度入手,增加了难度,不易于初学者的入门与深入学习。
3.4初级课程与高级课程的衔接性不足
高级课程的两种课程设计方案,自下向上和自上向下的设计十分巧妙,但是初级课程的软件课程导论与高级课程的衔接不够明确和顺畅,有待进一步研究。
3.5非技术性课程不能有效的融合进软件工程
非技术性课程的内容设置过于简单,不能有效地将多方面的教学内容融合在软件工程专业课程体系中。
4软件工程专业课程体系的发展目标
软件工程专业课程体系的发展目标是根据国内外对于软件工程人才的需求,培养出理论知识与动手实践能力并重的专业人才,主要针对于软件开发、工程领域、现代软件工程三个领域。软件开发领域对于人才的要求是精通算法与数据结构,数据库,多媒体技术,计算机网络等专业知识。工程领域对于专业人才的具体要求是:精通电子商务、电子政务、企业与城市信息化、信息安全等知识。现代软件工程需要专业人才精通软件需求分析、体系结构、项目管理、测试与评估等方面的专业知识。件工程专业课程体系旨在结合市场需求与社会发展的要求,根据软件工程产业的需求,在理论知识的传授下,培养软件工程专业人才的综合能力,包括交流能力、团结意识、创新素质、法律基础、专业技能等。例如,英特尔公司产学合作专业综合改革项目自2011年在教育部指导下设立,旨在结合英特尔最新技术和解决方案,面向全国高等学校计算机学院、软件学院以及相关院系,通过支持专业课程体系建设、实验体系建设、专业课程建设以及实验案例开发,从而改进课程教学内容,优化课程体系,提升计算机、软件工程等专业教学质量。同时,英特尔公司将支持学校对以上相关专业进行系统化教学改革,以期课程建设成果能够在学校实施。2016年项目申请已开放,本年度重点将根据最新技术和教学要求,以培养计算机专业、软件和相关专业具有系统化能力的人才为目标,升级和开发计算机、软件和物联网专业课程专业综合改革试点。
5软件工程专业课程体系的完善与创新实践
5.1贯彻工程教育理念
按照软件工程相关产业的需求与实际环境来设计软件工程专业课程体系,规划具体的课程安排,组织形成软件工程专业基础课程、核心课程体系。
5.2以软件工程为主线
软件工程专业课程体系的设置需要以软件工程为主线来设计基础与专业课程的具体教学内容。基础课程旨在连接软件工程和程序设计,专业课程旨在锻炼学生在特定领域的理论知识的掌握与综合实践能力,最终都是为软件工程服务。
5.3培养学生的综合素质
改造传统的软件工程专业课程体系,强化初学者对于计算机系统理念的建立,对于基本概念的掌握与理解在计算机环境下培养学生利用基础理论知识解决实际问题的能力。
5.4改变非技术课程的教学方法
非技术课程目前存在的问题是衔接性不足,不能有效地融入软件工程专业课程体系。所以教师要注意改变教学方法,改革非技术课程的教学内容,基于软件工程链接非技术课程与技术课程为一体,从而更好地发展和完善软件工程专业课程体系。
5.5注重实践性教学
摘要:分析软件工程专业的岗位需求和知识结构,提出适合地方性应用型高校的软件工程专业核心课程设置方案和体系结构。关键词:地方高校;软件工程;课程体系
0 引言
进入21世纪,以互联网为核心的网络与应用得到快速发展,信息技术的应用模式发生了巨大变化。在开放、动态、复杂的网络环境下,灵活、可信、协同的计算资源、数据资源、软件资源、服务资源等各种信息资源的共享和利用、无处不在的普适计算、主动可信的服务计算,均对软件工程提出了巨大挑战。
黄淮学院软件工程专业是河南省省级特色专业,近年来紧紧围绕培养“就业能称职、创业有能力、深造有基础、发展有后劲”的高素质技术技能型人才的目标定位,积极推进应用型人才培养模式改革,紧扣产业办专业,牵手企业促学业,强化职业促就业,不断提升专业价值,全面提高应用型人才培养质量。作为本科层次教育,重视较宽厚的基础知识的传授;作为应用型人才的培养定位,重视面向生产、经营、管理实际,面向经济社会活动实际,培养运用所学知识分析问题、解决问题的能力,同时也要培养学生适应社会的能力、创业发展能力。应用型本科院校课程体系的设计应有其内在的规律与特定的模式。基于此,笔者以黄淮学院为例,对这一问题做如下探讨。
1 软件工程课程体系建设原则
原则1:构建课程体系的重要原则是核心课程体系的构建。核心课程体系的构建不是计算机科学专业课程和软件工程类课程的简单堆砌,而是对计算机学科课程进行有效的裁减和调整。对比软件工程学科和计算机科学技术学科可以看出,计算机科学的主要目标是为解决计算问题寻找有效的、能产生更好性能的途径;软件工程的主要目标更注重具体方法和技术的应用,软件工程除了关注解决软件问题的理论、原则、方法和技术,还关注软件质量、软件过程、项目管理、团队合作、与用户/客户相关的问题,研究的对象是软件开发过程中的所有活动。软件工程专业的培养目标是合格的软件工程师,具有更明确的职业特性。
原则2:应用型本科高校软件工程专业不是简单复制211或985高校的课程体系,而要根据培养“就业能称职、创业有能力、深造有基础、发展有后劲”的目标,结合实际工作岗位职业需求,基于传统本科教育与职业教育相互渗透的培养理念,在通才与专才之间寻找平衡点,专业知识体系够用为主,“软、硬并重”,以第一课堂为核心,以行业、企业和管理服务岗位对人才知识、能力、素质的具体要求构建课程体系。
原则3:权衡软件工程专业本科毕业生所应具备知识的深度、广度和适应性。在大学教育期间,学生应学习的知识大致可以划分为4个.方面:人文社会科学知识,这是做人之根本;数学知识,这是软件工程专业的底层基础;专业知识,是软件工程学科之特色;相关领域知识,是学生就业之砝码。知识是基础,能力是知识的综合体现。对于软件工程专业的学生应该着力培养以下能力:专业必备的开发、设计能力,能终身受用的学习能力,培养领导力的处事能力和积累财富的创新能力。在注重学科知识的系统性和严谨性基础上强调实际能力培养的重要性。
2 软件工程专业课程体系基本构架
黄淮学院软件工程专业知识体系如图1所示,该知识体系以人文外语知识和科学基础知识为基本,软件工程专业基础知识为中坚,软件工程与软件管理专业知识为塔顶,辅以实践和顶岗实训构成软件工程专业知识体系金字塔。
人文与外语知识包含由教育部统一要求的思想政治类课程、大学英语、专业外语以及创新创意和职业规划方面的拓展课程;学科基础知识则涉及数学系列课程、电子基础课程和计算机科学基础课程;专业基础知识和专业技能知识包含程序设计基础、软件工程和软件管理等,具体教学过程中可以涉及部分软件工具和软件产品作教学载体。针对软件行业普遍反映的毕业生独立解决问题能力不强、责任心差、对问题进行抽象和分析的能力差的问题,设计了如图2所示的实践能力渐进培养模式,该模式贯穿在课程教学、实验、实训和毕业设计等教学过程中。
3 软件工程课程系列的设计
黄淮学院软件工程专业的课程体系既考虑了工程性、技术性、实用性、系统性、综合性和复合型,又注意到强化基础在有效解决复杂软件的构造和应用方面能起到关键性作用,采取了根据就业岗位的能力需求进行知识分解,由课程模块构建系列课程,分阶段互动式的课程设置方法。具体安排如图3所示。
从图3可以看到基础知识教学阶段共2学年,这样设计是为了强化学生基础知识,实现“基础扎实、学科认知和专业融入”的目标。公共基础系列课程针对人文与外语知识,学科基础理论系列课程的启动从数学基础课程系列和计算机导论开始,内容贯穿软件工程所涉及的计算机系统、程序设计语言、软件工程、网络技术等专业基础知识的知识点以及与信息技术有关的社会人文等知识,力求使学生对所学专业有比较深入的了解,树立专业学习的责任感和自豪感。其中包括高级语言程序设计、程序设计基础、数据结构和面向对象程序设计,旨在引导学生领会计算思维的同时训练其编程能力;硬件与网络系列课程包含数字逻辑、计算机组成原理和计算机网络,软件工程系列基础课程包括操作系统、数据库系统原理和WEB程序设计,这样安排力求达到“编程、网络和应用开发”三位一体的教学目标。
专业技能教学阶段共设36周,设计思路是强调对学生工程性、技术性、实用性、系统性、综合性和复合型能力的培养,实现“熟悉软件工程技能、树立系统概念和掌握软件设计开发技术”3个目标。在这一阶段中,综合考虑主干专业课程和特色课程的设置,基于办学特色设置若干动态可扩充的课程模块,全面考虑课程之间的关联,强调统一设计、统一规划。所有方向以系统分析与建模、软件工程、软件测试技术和嵌入式系统为基础,学生必须选修WEB程序开发和嵌入式软件两个专业方向中的一个课程模块,WEB程序开发方向设置网站前台开发技术、数据库应用技术、软件框架技术、软件需求工程和现代软件开发技术;嵌入式软件专业方向开设单片机与接口技术、嵌入式Linux程序设计、移动编程技术、手持设备软件开发和嵌入式系统开发综合实践,同时要求至少选修4门任选课以拓展专业知识。
工程实习教学阶段开设在第4学年,设计思路是通过具体项目参与真刀真枪的项目训练,通过毕业设计与论文培养总结概括能力,实现理论与实际结合、技能与职业素质结合的目标。
在软件工程专业的课程体系设计中还应充分考虑课程间的衔接性、系统性和创新能力培养。教学计划中通过设置10门设计类课程,加强课内实践教学,常设性的学生软件设计比赛如ACM竞赛和软件设计大赛也被引入教学过程中。上述思路形成的课程体系更细化的结构如图4所示。
4 结语
一个好的软件工程课程体系应该在一个或若干个应用领域方面体现出自己的特色,为了帮助学生在适当的深度上学习其他应用领域的知识,软件工程课程体系应该安排相应的支持课程。软件工程的应用领域如此广泛,软件工程课程体系不可能也不应该面面俱到。在相关领导的支持下,黄淮学院软件工程专业建设已取得了可喜的成果。软件工程专业在2010被批准为河南省特色专业,2012年批准为河南省专业综合改革试点专业,每年毕业学生到各大公司进行项目实践,并推荐部分优秀学生到IBM等业界著名企业实习,获得各公司的一致好评。这几年的实践表明,教学计划的设计是确保培养目标实现的保障,课程体系的设计是合理安排教学过程的关键。学院软件工程专业的每一位老师在这几年的教学改革中付出了辛勤的劳动,但回首软件工程专业取得的进步,大家都感到心情舒畅。高等院校的教学改革是永恒的主题,作为应用型本科院校软件工程专业的课程体系更应与时俱进,我们一定会在现有基础上进一步优化软件工程专业的课程体系,以期获得更好的结果。
参考文献:
[1]杨青,刘洪星.软件工程学科的特征及其课程体系设计原则[J].武汉理工大学学报,2005,27(2):183-186.
[2]曾永卫,林志刚,杨尧彪.应用型本科院校课程体系顶层设计的探讨[J].湖南工程学院学报,2007,17(3):65-67.
中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2014)28-6701-03
1 概述
软件产业是国民经济和社会发展的先导性和战略性产业,是整个信息产业的核心和灵魂。加速发展软件产业已经成为我国实施“以信息化带动工业化”战略的关键环节[1]。教育部副部长鲁昕3月22日在出席“中国发展高层论坛2014年会”时表示:要“引导部分地方本科院校向应用技术类型高校转型,从根本上缓解高校毕业生就业难的问题”。当前高校毕业生就业难,主要难在一部分办学定位不清,专业特色不显,与地方经济社会发展脱节严重[2]。这种低就业率,低就业质量的状况,不仅直接造成国家教育资源的严重浪费,还影响数百万家庭的民生福祉,因此必须学习借鉴发达国家应用技术大学和应用型高校的经验,引导部分本科高校加快转型发展步伐,更加直接地为区域发展和产业振兴服务,通过产教融合、校企合作、工学结合、培养生产服务一线的高素质应用技术人才,逐步实现人才培养和就业需求的无缝对接。
当前转型的院校正处于生存与发展的关键时期,如何适应转型,重新确立培养目标,调整培养方案是这些院校亟待解决的问题。这些院校必须服务于地方经济发展,适应地方企业的需求,找准定位,调整课程体系,强化实践锻炼,培养高素质应用技术人才。
2 企业对软件人才的需求
从招聘需求分析,软件行业除了大型企业外,更多的是中小企业,由于需求缺口较大,很多学历等门槛性指标,在软件行业招聘需求中占的比较少,更多的是对技术和经验的要求,换言之软件行业是一个凭技术实力吃饭的行业。但软件行业的特性是团队作战,除个人能力以外,企业更强调团队精神与抗压能力等心理层面的综合素质。因此,对于希望投身于软件行业的人员来说,学历或许能为你争取得到机会,但却不是决定性因素,行业对经验技能的要求将成为人才评判的主要标准。
企业对软件人才的需求分高、中、低三个层面。大型企业主要选择具有扎实的理论基础和综合素质、具有较高的外语水平、具有学习潜力和发展空间的应届毕业生;而中小企业主要选择掌握某种开发工具或开发平台、有一定工作经验、能够立即创造价值的软件人才。因此地方高校要针对自身生源、人力、财力等特点定位,为大型企业输送软件人才的机会不是没有,但凤毛麟角,大部分学生更适于中小企业就业,学生在学校能够学会一种开发工具或开发平台,但缺乏相关的工作经验。这就需要我们改变培养模式及方法,校企联合,按照企业需求定制课程,以项目驱动教学,突出实践教学,从实践中摸索积累经验,让学生真正实现毕业即能够就业的目标。
3 转变观念,重新定位,调整人才培养方案
地方高校转型首先要转变教学观念。传统的教学理念更多地是注重理论知识的讲授,内容枯燥、抽象、不连贯,实践也大都是知识点的验证,学生往往不知所学知识如何应用。所以在教学理念方面,应由传统的知识讲授转变为突出学生能力培养,即由过去的理论灌输变为多方位的启发引导,注重提升学生的思维能力,将教师单项传递信息变为学生能主动接受信息,让学生成为真正的学习主体[3]。
未来几年,软件人才仍会是炙手可热的技能人才,但时代不断变迁,企业对人才的要求也不断的提高,手机与互联网给当今社会带来了更大的冲击。随着云计算、智能手机和移动互联网的发展,软件人才的需求更加多样化,企业更多需要的是复合型高技能人才。C++、Java软件工程师的就业率在近两年因为人才过多或者是技术不够完善被拒之门外,而安卓软件工程师、安卓开发工程师、数据库设计师等职位的就业率一直不断上升,甚至出现了学生未毕业就被录用的局面。以往软件人才培养及课程体系更多是面向理论型人才培养而制定的,对于地方性院校的学生来说,理论研究能力不足,缺乏工程实践经验,是导致这类学生求职困难的主要原因,因此高校要顺应社会的发展,适应企业的需求,根据地方经济发展需要重新找准定位,实时调整人才培养方案,根据企业需求制定培养目标和课程体系,引进CDIO工程教育理念,实施案例驱动和项目驱动教学法,为基于工程能力培养而优化课程体系,改革教学内容和考核方式,突出工程实践能力锻炼,旨在培养具有工程能力和实践经验的技术应用型人才。
4 构建从理论到应用一体化的课程体系
软件工程教育的现状是学生入学门槛高;课程体系基础扎实;课程多、作业重、考试单一;理论知识点离散或脱离实际;教材更新过慢、知识更新不够;教学知识灌输多,解惑及独立思考少;对工程能力及软件开发方法培养不够。所以,要发展软件产业,这种教育现状必须进行改变。
软件工程专业的培养目标是满足社会需求和软件行业的需要,高级软件工程师、系统分析人员、软件项目策划和管理人员、系统架构师等是靠工作经验的积累才能逐步达到的[4],地方性本科院校应面向工程应用,培养从事软件应用和开发的中、低级软件工程师,因此我们的培养方案应围绕着培养目标制定,课程体系设置将综合素质与工程能力培养作为人才培养的核心,以培养学生专业理论、技术、技能及工程经验为教学主体,弱化理论教学,通过项目驱动教学方法,增加综合性课程设计,鼓励学生参加各类学科竞赛和创新创业训练,来突出实践技能即工程能力培养。
今年我校按照计算机大类招生,采用“1.5+1.5+1”模式(即一年半基础课、一年半专业核心课、一年企业实践课),针对新的培养目标构建的课程体系为“平台+模块”(基础课程平台、专业模块课程),实践教学环节和素质拓展环节贯穿于教学全过程,学生经过专业基础知识、专业技能训练、企业实训三个阶段的培养,可以直接面向企业就业。由于大类招生,前一年半进行基础教育,主要完成思想品德、综合素质和专业基础的教学,每个学期都安排企业讲座、专业介绍等,第二、三学期再通过认知实习,让学生对专业有进一步了解,使学生在对计算机各专业有充分认知的基础上选择专业,避免盲目选择。但这样也会导致一年半的专业课学习时间非常紧张,因此必须对专业核心课程进行整合优化,用项目驱动的方式,以能力培养为核心,将软件开发课程有机地联系起来,虽然学习时间缩短了,但强化了能力锻炼,课程优化的框架如图1所示。
采用1-2个项目把软件工程专业的基础课和专业核心课贯穿起来,可以把一个完整的项目分解成四个模块,基于软件工程方法,用软件开发技术模块的课程对软件项目进行需求分析、建立设计模型,用程序语言模块的课程进行代码编写,用网络和数据库模块的课程进行网络设置和数据库设计,用Web技术模块的课程进行Web界面设计,项目的设计过程中还要进行软件测试和项目管理......以往各门课程独立开设,学生学到的都是离散的知识点,这样通过1-2项目把离散的知识连续起来,把课程理论知识和实际应用有机结合起来,学完了课程也就学会了项目开发方法,开设公共基础课以培养学生人生观、价值观和思想品德,并锻炼良好的体魄和外语能力;用专业基础课夯实基本理论和基础知识;加以素质拓展训练综合素质;再通过学科竞赛、创新创业训练、应用软件开发实践训练等,既巩固了所学理论知识,又拓展了应用技能,学生最后经过一年的企业实习实训,获得了项目开发的实战经验,为学生顺利进入职场做好充分准备。基于能力培养的软件工程专业课程体系结构如图2。
软件技术的发展日新月异,因此,学校除了教授学生专业知识外,还必须培养的自学能力和创新能力,使之能满足软件新技术的发展。另一方面沟通协调能力以及团队合作精神也是很重要的,特别是在IT行业非常注重合作意识,因此在教学过程中要以学生为主导,可将学生分成3-5人的小组,让学生分工合作,在合作中培养沟通能力和协作意识。此外还要建立完善的考核评价体系,试卷不再是主要考核形式,以工程项目的完成过程及效果为主要考核手段,过程评价与效果评价相结合,用阶段报告和答辩等方法综合考察每位学生,切实使每位学生都能深入其中,发挥各自所长,学以致用。教师在教学过程中要增加职业导向指引,使学生能按照自己的兴趣和特长找到适合的岗位。
5 结论
改革是一个渐进的过程,首先教师要改变传统的教学方法,应具备一定的工程实践能力(即软件项目开发经验、指导学生参加学科竞赛和带领学生进行创新创业训练的能力),改变以教师讲授为主的课堂教学模式,采用项目驱动的教学方法,以启发引导学生做任务的方式完成教学,真正让学生在实践中学习。其次以素质教育为基础的技能应用型人才培养,应以能力培养为核心,将工程素质教育融入课程体系,通过工程素质教育和实践锻炼,培养学生的创新精神、协作精神和解决软件开发实际问题的能力。软件人才是否具备软件工程的实践经验是非常重要的,通过校企联合培养,使软件人才接受包括系统分析、设计、编码、调试和维护等全过程的软件工程实际工作的训练,才能具备相应的实践经验。下一步改革将细化考核评价体系,完善评价机制,使学生经过三年的学习和一年的实践,能真正具备软件项目开发能力,适应企业需求。通过对软件工程专业人才培养模式优化改革的实施,改善在校生的学习效果,提高毕业生的就业率,促进其职业生涯中的快速成长。
参考文献:
[1] 杨健,李颖新, 孟欣. 关于我国软件产业的战略思考[J].中国信息年鉴,2002.
软件工程是指导计算机软件开发和维护的工程学科[1]。为了培养高层次、实用型、复合型、具有国际竞争力的软件人才,我国于2001年底启动软件工程学科的教学。国内很多高校(包括211重点工程、地方高校)都设立了软件工程专业,为社会培养了大量的人才。然而,目前在IT人才市场却出现了高校应届毕业生就业难和企业急需合格的IT人才的矛盾。这反映了高校传统的人才培养模式与软件产业对人才规格的要求之间存在较大偏差。因此,改革人才培养模式,优化课程体系结构,培养适应企业需求的实用型软件人才是当前高等院校的重要任务之一。
借鉴发达国家工程型人才培养的成功经验,根据“海西”区域经济发展现状和我校应用型本科教育的办学定位,提出我校软件工程专业人才培养目标是:软件工程专业本科学生应该既具有可持续发展潜力又适应当前软件产业岗位需求,具备较强的工程实践能力、必需的专业技能和职业素养,能够快速完成从学生到企业员工的角色转换。围绕上述目标,笔者从理论教学课程体系和实践教学课程体系方面,提出本科应用型软件工程专业课程体系的建构思路,并应用课程群方法对课程体系进行了优化处理。
1“核心稳定、方向灵活”的专业理论课程体系构建
“软件工程”学科特有的工程性,技术与管理的综合性,新兴学科的快速发展和变化等特点,使得课程体系设计面临一系列突出问题。通过对软件行业人才知识结构和综合素质要求的全面研究,借鉴国际先进的工程教育培养理念和国内其他高校应用型软件工程人才培养模式,结合“海西”区域经济发展现状及我院办学定位,提出既面向当前软件产业岗位需要,又兼顾本专业学生发展潜力培养,具有“核心稳定、方向灵活”的课程体系设计思路。
1.1专业必修课程体系设计策略
专业基础课程、专业核心课程应根据计算机基本知识理论体系设置。该课群主要培养学生具有扎实的计算机理论知识,具备良好的软件分析和设计能力,能够利用专业理论知识指导实践。为了培养学生潜力和可持续发展能力,提高学生未来职业发展的核心竞争力,避免“后劲不足”,在专业课程体系设计中采取了三个优先策略:
1) 基础课程优先策略。高级语言程序设计、离散数学、算法与数据结构、数据库系统原理及应用、微机原理及接口技术、面向对象程序设计、计算机组成与结构、数据通信与计算机网络、软件工程、操作系统原理及应用、软件测试技术等重要的专业基础课程、专业核心课程,必须优先保证其课时安排并配备最好的教学资源。
2) 程序设计优先策略。程序设计是学习后续课程所必需的技能,也是训练学生软件开发能力必要的手段。第一学期就安排了高级语言程序设计课程。其后,通过算法与数据结构、结构化程序综合设计、数据库系统原理及应用、C/S程序综合设计等课程,不断加强学生程序设计能力的训练。尤其是结构化程序综合设计、C/S程序综合设计这两门课程,被设计成以任务驱动的实践性实验课程,通过每周一次的案例设计指导和结果检查,来提高学生程序设计和项目开发的综合能力。
3) 专业外语优先策略。社会对国际化人才的需求越来越强烈,为了培养具备一定国际视野的IT专业人才,也为了使学生能更快更好地更新专业知识,增强其职业发展的潜力。将专业外语课提前到第三学期,并在专业基础课程、专业核心课程和专业选修课程中加入一定比例的双语课程,将英语融入到专业理论知识学习的过程中,为学生编写英文程序代码,查阅英文技术文献、文档扫除语言障碍。
1.2专业方向选修课的“逆推”设计法
基于软件企业岗位需求划分专业方向,努力缩小高校培养的软件人才与企业需求之间的差距。具体做法是:首先依据专业定位和社会需求选择若干个岗位确定为专业方向,如:企业计算方向、嵌入式系统方向、日语加强班、企业定制培养实训班(针对岗位到企业实训、请企业技术人员到学校授课)、考研班等。明确每个专业方向毕业生应具备的能力和应掌握的知识,采用“逆推”的方法[2]设计专业方向选修课群,制定模块化的专业方向选修课程体系,如图1所示。专业方向选修课设置要紧紧跟踪软件行业人才需求变化和新技术发展,不断进行动态调整加以完善,保持专业方向选修课设置的可扩展性和灵活性。
2注重职业技能培养,构建工程化实践教学体系
实践教学是指有计划地组织学生通过观察、试验、操作,掌握与专业培养目标相关的理论知识和实践技能的教学活动[3]。尽管实践教学部分的课时在总课时中所占比例不低,但实际的实践教学效果却并不理想。传统实践教学的主要弊端是:①忽视了理论课程与实践课程之间、不同的理论课程之间以及不同的实践课程之间的联系;②在课程设计和软件开发实践环节中,缺乏对过程的有效指导和控制,工程意识的培养和训练不够充分,难以培养学生的软件工程能力。
2.1以岗位技能培养为目标,构建三级实践教学体系
针对传统实践教学中存在的上述问题,提出以职业岗位能力需求为导向,构建工程化实践教学体系的思路。具体做法是:根据职业岗位对人才知识和能力的要求,制定工程实践教学的一级目标,将一级目标分解为二级目标,二级目标进一步分解为三级目标。三级目标、二级目标、一级目标分别对应课程实验、课程设计、毕业设计实践教学三级体系,如图2所示。
一级目标和每个二级目标都是由三个阶段组成:知识串讲;案例实现;项目完成。整个实践教学体系围绕学生专业技能和职业素质的培养分层次、分阶段实施,为学生提供了一条从编程到软件项目开发的渐进式发展之路,形成一个融基础理论、实验教学、工程实践为一体的整体化培训机制,使学生各方面的能力都得到全面均衡的发展,适应现代软件产业的需求。
2.2校企合作,加强学生职业素质教育
建立校企合作的企业实训基地,实施“3+1”教学模式。即大学最后一年,让学生到软件企业顶岗实训。通过真实的生产实训、任务驱动、项目导向,加深学生对软件工程实际运用性的理解,全面强化学生的专业实践技能,培养其工程能力以及工程经验,了解企业文化,树立团队合作精神,缩短学生走上实际工作岗位时的适应期。
中图分类号:G420 文献标识码:A 文章编号:1674-098X(2016)04(a)-0147-02
根据《国家中长期教育改革和发展规划纲要(2010-2020)年》和三部委《关于引导部分地方普通本科高校向应用型转变的指导意见》(教发【2015】7号)文件精神,结合该院发展改革实际,确定发展定位为应用技术型学院。那么如何实现以学生未来就业岗位需求为导向,以培养具有良好道德品质、具有勇于创新精神、具有高度社会责任感、理论知识扎实、专业能力全面、实践能力实出、具备继续学习能力的高素质应用型、技术技能型、复合型人才为目标,真正转到服务地方经济社会发展上来,转到产教融合校企合作上来,转到培养应用型技术技能型人才上来,转到增强学生就业创业能力上来是面临的实际问题。现以该院软件工程专业为例,向应用型技术技能型转变过程以此专业的课程体系建设为突破口,建立以岗位能力驱动的“双主线”的课程体系(注:“双主线”,第一条线为素质教育=职业素质+创新创业+德育教育;第二条线为专业核心技能培养)。
1 “双主线”课程体系建立的依据
随着经济发展进入新常态,人才供给与需求关系深刻变化,面对经济结构调整、产业升级步伐加快、社会文化建设不断推进特别是创新驱动发展战略的实施,高等教育结构性矛盾更加突出,同质化倾向严重,毕业生就业难和就业质量低的问题仍未有效缓解,生产服务一线紧缺的应用型、复合型、创新型人才培养机制尚未完全建立,人才培养结构和质量尚不能适应经济结构调整和产业升级的要求。积极推进转型发展,必须采取有力措施破解转型发展改革中的突出问题,紧紧围绕创新驱动发呢、中国制造2025、互联网+、大众创业万众创新、“一带一路”等国家重大意义战略,找准转型发展的着力点、突破口,为地方区域经济社会发展服务,为行业企业技术进步服务。因此,软件工程专业应主动适应经济常态化,与就业市场紧密结合,从强调“重理论,轻实践”的思维调整为“理论够用,突出实践”,转到产教融合校企合作理念中来;同时,通过与企业直接沟通,对就业市场进行时时跟踪(注:主要关注知名度比较高的招聘网站),以坚持需求为导向、服务地方为主导,突出技术技能型人才培养的“双主线”的课程体系模式。
2 “双主线”课程体系建立的思路
根据社会经济发展和产业技术进步驱动课程改革,整合相关的基础知识、主干课、核心课、专业技能应用和实验实践课为主,更加专注培养学习者的技术技能和创新创业能力,建立了“2.5+0.5+1”的“双主线”的课程体系模式(见课程体系拓扑图)。2.5年(注:第一学期至第五学期)主要是开设通识类课程、专业基础课程、专业课程和专业核心课程;0.5年(第六学期)开设行业准入课程(注:根据目前市场追踪情况设置四个方向分别为JAVA开发工程师、PHP开发工程师、WEB前端工程师和数据库工程师);1年(注:第七学期至第八学期)至企业参加实训和实习,同时完成毕业设计。此种课程设置,在2.5年将本科教学内容完成前提下,可根据IT行业发展的趋势对0.5年方向课程随时进行调整,保持行业准入课程与市场时时对接,实现应用型技术技能型培养目标。(见图1)
3 “双主线”课程体系建立的具体做法
在课程体系设置中,做到期期、年年有实训(注:期期指的每一学期,年年指的每一学年)、植入素质培养相关课程、植入《市场营销》课程、实践学时加大,建立以项目案例为驱动的基于工作过程化方式开展相应技术课的教学工作,授课地点整体调整为实验室,以便加强知识点理解和实践。
4 “双主线”课程体系实施保障措施
在课程体系设置清晰情况下,需有相应的保障措施跟进为其保驾护航。
(1)加强“双师双能型”教师队伍教师建设,建立“双元”结构教师队伍,在改革过程中重点是课程体系设置,难点是教师,如何快速建立“双师双能”师资问题,预采取“双元”结构,一元指的是专业理论教师(专任教师),另外一元为技能教师(请企业一线工程师来校内授课),共同完成专业理论教学与技能教学任务的相关要求。此结构快速建立“双师型”教师的补充,集专业理论教师在理论教学方面的优势和技能教师在技能方面的长处,互相学习,回避其相应的短板,建立起相应的教学形式,以迅速提升教学质量和水平。(2)加强教学质量,建立PDCA质量管理体系。(3)加强素质培养,为专业核心技能培养加法码,提高学生与社会沟通和办事能力。
参考文献
[1]费贤举,胡智喜.基于模块化的软件工程课程体系的构建与实现[J].常州工学院学报,2006(4):77-81.
作者简介:刘玮(1973-),女,湖北武汉人,武汉工程大学计算机科学与工程学院,讲师;何成万(1967-),男,湖北荆州人,武汉工程大学计算机科学与工程学院,教授。(湖北武汉430073)
基金项目:本文系2010年湖北省高等学校省级教学研究项目(项目编号:2010243)的研究成果。
中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2012)17-0059-02
推进和加强跨学科复合人才培养,既是科技、经济与社会发展的迫切需要,也是世界各国高等教育界的共识。培养特色型复合人才是高等院校在激烈的市场竞争中求生存、促发展的必然选择。近年来,各大高校开始探索以优势学科为依托,根据就业市场的供求关系调整办学思路与培养途径,致力于构建优势学科的双专业人才培养模式。[1]软件工程专业具有构建双专业培养模式的基础,目前可分为两类模式:第一类,软件工程专业与同属于工科的其他应用领域(如机械工程及自动化、环境工程等)相结合,使用计算机科学技术和具体领域技术解决相关领域问题,毕业生适宜该环境领域或其他部门从事软件开发、研制和管理工作。例如,大连交通大学开设的信息管理与信息系统+软件工程双专业同属于工科的双专业类型。[2]第二类,软件工程专业与外语专业(如日语、英语)相结合以满足软件服务外包或地域性软件产业的需要。武汉工程大学“E+”国家级人才培养模式创新实验区(以下简称实验区)提出的“E+”模式既可以通过外语教学的通识教育作用提高学生的人文素养,又可以使学生避免当前纯语言类人才的需求下降而面临就业难的困境,更能满足其他行业对毕业生外语水平的高端需求。实验区开设的英语+软件工程双专业属于第二类的软件工程双专业培养模式。
根据《计算机科学与技术本科专业规范(软件工程方向)》,“软件体系结构”是软件工程方向专业重要的专业核心课程之一。从2010年起,武汉工程大学将“软件体系结构”课程作为学校重点课程由计算机科学与工程学院进行建设,目前处于专业课程建设的起步阶段。为满足软件工程双专业建设的要求,“软件体系结构”课程的开设和建设需要做哪些调整呢?本文在总结软件工程双专业对“软件体系结构”课程的具体要求的基础上,结合武汉工程大学的实际教学情况,对该课程的内容剪裁和教法改进提出了一些建议。
一、软件工程双专业“软件体系结构”课程设置
武汉工程大学实验区于2011年开设英语+软件工程双专业,由外语学院和计算机科学与工程学院共同实施培养,力量和教学资源由有关学院共同实施培养(学生日常管理由外语学院负责),毕业时学生将获得两个学士学位。
“软件体系结构”课程的特点是由软件工程双专业的培养对象和培养目的决定的。以武汉工程大学的英语+软件工程双专业为例,其培养对象是在当年入校的普通本科新生(限理科考生)中经过严格选拔筛选而出的,要求英语基础较好并具有较高的个人综合素质。软件工程双专业和传统的软件工程专业的培养目标都强调了培养“从事计算机软件项目的设计、开发、管理的国际化软件工程技术人才”。“软件体系结构”课程对于培养软件构架方面的高端人才起着至关重要的作用,全国各大高校特别是软件学院的软件工程专业基本上均将该门课程列为专业主干课,该课程是软件工程双专业的主要课程之一。
“软件体系结构”课程与其他专业课之间紧密联系,学习该课程前要求学生具备相应面向对象程序设计语言,要求掌握UML基础知识,因此多数院校在三年级下学期开设该门课程。该课程不仅强调专业理论知识的学习,更看重实际工作技能和动手能力的培养,强调实验课和课程实训。另外受到软件工程双专业课程增加、总学时有限的影响,在实际安排中,课堂教学32学时,实践、实训环节共28学时。这一方面保证了充足的理论课时时间,另一方面通过实验和实训两个环节保证了教学实践时间,四所大学“软件体系结构”课程的课时情况。
二、“软件体系结构”教学内容裁减与扩展
软件工程双专业的教学目标是培养学生为应用型人才,软件应用型人才需要软件系统工程化有关的理论,用这些理论指导软件设计、分析软件开发过程中遇到的实际问题。结合教学和培养方案制定过程中的一些经验,对“软件体系结构”课程的教学内容的裁剪和扩展进行了一些思考和总结。
1.削枝强干
软件设计思想是“软件体系结构”课程的主线,通过本课程的学习,学生能够全面、深入理解在软件开发阶段设计软件体系结构的必要性,并能够运用其中的思想分析、解决软件系统设计相关的问题。该课程教学内容裁剪的目的是突出重点和强调实践。一方面,把较多的学时放在基于体系结构的软件开发(ABSD)、软件体系结构设计及其环境等章节,重点讲解基于体系结构的设计方法,以及ABSD的基本步骤和基于体系结构的软件开发模型。另一方面,裁剪理论性较强而且对设计和实践作用不大的教学内容,例如软件体系结构风格、典型软件体系结构描述语言及形式化描述等。一些软件工程专业软件体系结构课程的教学大纲中还包括基于UML的软件体系结构描述等内容,为避免重复,这部分内容可以在UML建模技术及应用或者面向对象建模技术等内容中详细讲解。
2.扩展热点
为了满足英语+软件工程双专业“具有国际学术视野”的要求,“软件体系结构”课程教学内容需要在设计模式、大型软件构架技术和软件体协结构新技术等方面作进一步扩展。设计模式是近几年软件设计研究领域的热点,在介绍23种设计模式的基础上,将构件设计、构件和系统的接口设计等知识添加进来,以丰富详细设计阶段涉及的内容。[3]另外,缺乏对大规模软件构架建模和开发技术,是软件工程学生难以应用软件体系结构知识进行大型软件构架设计的主要原因,因此在教学内容上应该扩展中间件技术、大规模软件构架中的集成技术等。适当介绍新技术背景下的软件体系结构,针对云计算和物联网等新型应用及技术发展趋势,结合目前该领域的主要应用模式,技术标准,开源系统,以及典型架构等,进行课堂交流和研讨。以上教学内容的扩展一方面会使课程体系更为完善、更能适应当前计算机技术的发展,另一方面可以培养出具有先进设计思想和能力的学生,满足用人单位较高层次的需求。
三、软件体系结构的教学方法的改革
通过对软件工程专业2006至2009四届学生的成绩分析和问卷调查发现,该课程教学效果不佳,主要表现在课程内容抽象、缺乏软件项目经验、教材缺乏案例等问题。软件工程双专业的“软件体系结构”课程具有学时短、重实践的特点,为了适应课程特点需要在教学方法上从以下两方面进行改革。
1.项目案例教学
从理论上讲,项目教学法是一种几乎能够满足行为导向教学所有要求的教学培训方法,[4]因此从其诞生之日起,就受到教育和培训界人士的欢迎。项目教学法是教师将授课内容寓于项目中,辅助和引导学生实施和完成项目,学生在项目实施过程中自主学习,学生完成这一项目,教师也完成了教学内容。
项目教学法应用于“软件体系结构”课程具有以下优点。
(1)项目教学法能极大地调动学生的积极性。该课程内容抽象,缺乏软件开发经验的学生忽视了软件设计的重要性,误认为不用软件体系结构也能开发软件,这就导致学习兴趣不浓。项目教学法是让学生实施一个具体的项目(如学生选课软件系统)的设计,学生学习的目的较明确。在项目设计和实施过程中,学生体会到软件体系结构的设计能够降低系统开发风险并提高开发效率,这更能强化学生的学习积极性。
(2)项目教学法能培养学生的合作能力。项目教学大多要分小组完成,通过小组内及小组间的充分交流、讨论、决策等,提高学生合作能力,强化学生的团队意识,这也符合培养具有团队协作能力的要求。
(3)项目教学法能促进课程间的整合。项目的设计过程中会涉及很多专业知识,例如需求分析、数据库系统、面向对象建模等。这种基于项目教学的课程整合能够强化学生软件系统工程化开发的思想和技能。
2.参考教材+补充讲义的模式
软件体系结构课程增加了设计模式和大型软件构架技术等教学内容,结合英语+软件工程双专业学生英语能力较强的特点,采用规划教材为主、校内补充讲义为辅的模式。本课程使用的教材为Mary Shaw所著的《软件体系结构》(世界著名计算机教材精选)和耿祥义所著的《Java设计模式》(21世纪高等学校计算机专业实用规划教材)。根据教学内容我校选择了《软件构架实践》的第1、2、6章和《Java设计模式》的第1、4~26章,同时参照郭秋萍所著的《大规模系统构架建模及其开发技术》中与构件技术相关的章节内容撰写补充讲义。另外在课程网站上还增加了Luke Hohmann所著的《Beyond Software Architecture:Creating and Sustaining Winning Solutions》和Felix Bachmann所著《Documenting Software Architectures:Views and Beyond》的电子书,用以完善本课程的教材库,为学生提供一个课外在线学习和远程教育的平台,方便学生课外自主学习。
四、小结
武汉工程大学“E+”国家级人才培养模式创新实验区下设的“英语+软件工程”四年制双专业人才培养模式是软件工程双专业的一种典型模式,具有一定的代表性和创新性。本文根据软件工程双专业人才培养和IT企业和相关事业单位的需求探讨作为软件工程专业主干课之一的“软件体系结构”课程的教学改革,在作为校级重点建设课程的建设过程中,提出了一些内容剪裁和教法改进,希望籍此对双专业课程教学的共性问题抛砖引玉。
参考文献:
[1]蒋洁.构建一体化双专业人才培养模式[J].理论月刊,2010,(11).