期刊在线咨询服务,发表咨询:400-888-9411 订阅咨询:400-888-1571股权代码(211862)

期刊咨询 杂志订阅 购物车(0)

软件工程专业模板(10篇)

时间:2023-04-17 18:00:35

软件工程专业

软件工程专业例1

中图分类号:G712 文献标志码:A 文章编号:1674-9324(2014)25-0189-02

《软件工程》是高职高专软件技术专业一门必修的专业课程,涉及计算机、数学和管理等多个学科领域的知识,是在软件开发实践中总结经验的理论课程。《软件工程》课程在软件技术专业课程体系中占有重要地位,它的作用是使学生了解软件产品的研发过程和开发规范,提高软件质量意识,掌握基本的开发方法、技术和工具等内容。但该课程具有较强的抽象性和实践性[1,2],学生很难参与到具体的工程实践,无法体验实践中的概念、原则、开发模型、开发方法和开发技术等内容,教师也很难把握住课程把抽象的知识转换成具体的实践,让学生在具体的实践中去体验知识。张振琳[3]等人对软件工程课程实践教学进行了探索,李金靖[4]对软件工程的格罗SSDL模型和建构主义两种教学方法进行了探讨,杨洋[5]等人对软件工程课程中的概念、教学方法、团队合作设计和实践教学等进行了探讨。笔者依据软件工程的多年教学经验,对软件工程中抽象的概念、开发模型和需求开发等教学内容进行了探讨。

一、概念的抽象和混淆

通常软件是由程序、数据和文档等构成的。从未学习过《软件工程》课程的学生往往认为程序即是软件,这种看法是严重错误的。如果不区分这种基本概念,学生会认为软件只需要编程而忽视需求分析、设计和测试等工作任务,而这些任务却是开发软件的重要任务,其比重远远高于编程。在教学中可以借助比喻、案例和启发式等多种教学法避免概念抽象和混淆。教师先用电饭煲产品作比喻,可把程序看成是电饭煲,程序具有“煮饭”等功能;把数据看成是电饭煲要加工的各种饭菜,数据是要程序处理的;把文档看成是电饭煲说明书和设计图等资料;把软件看成是电饭煲+饭菜+说明书等。通过比喻,学生初步认识了软件、程序、数据和文档的概念和彼此之间的关系。然后教师用学生熟悉的暴风影音等软件作为案例进行演示和分析,其程序是指暴风影音图标所对应的“.exe”文件,通过该程序可以打开播放界面实现各种功能,其数据包括影碟文件和在线影视数据等,这些数据被程序加工才显示出丰富的影视效果。由于用户会遇见播放等问题,暴风影音提供了在线帮助文档。通过这个案例学生能把软件概念和真实的软件建立起联系,深化了学生对概念的认识。最后学生根据自身体验分析一款熟悉的软件并指出软件中的程序、数据和文档文件。学生会依据之前对概念的认识主动思考“软件中的什么文件是程序?什么文件是数据?什么文件是文档?”等问题,学生互动带来了良好和轻松的学习气氛,之后教师再进行点评,包括对问题分析和学生表现等方面进行点评。经过上述教学,学生能较好分析游戏软件,能把存盘文件和存储用户名和密码的数据库归类为数据,能把游戏密技说明书和游戏教学视频文件归类为文档,能找出游戏对应的“.exe”程序文件。

二、细化软件开发模型

同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,这称为软件的生命周期。生命周期模型规定了生命周期划分成哪些阶段及各个阶段的执行顺利。典型的软件生命周期模型特点是模型数量多、知识抽象性和模型工作任务多等,这使学生很难区别各个模型的特点,很难激发学生的学习兴趣,很难让学生参与模型工作任务的实践,以及很难弄清彼此间的关系。把抽象知识适应性地转化为具体的和容易实践的任务能降低学生的学习难度。在教学中,可先让学生以团队的形式讨论分析软件工作任务的开始时间和工期等内容细化软件开发模型,再绘制出细化后的软件开发模型,最后比较和讨论分析各种软件开发模型,这能使学生更加深刻地认识软件开发模型。以增量模型教学为例,先让学生团队在课堂上召开会议,讨论软件立项和以头脑风暴法粗估计系统功能。讨论软件立项是让团队成员提出软件项目交给团队共同讨论,其目的是统一成员意见和激发学生的学习兴趣,它是后继工作的基础。要召开好会议要把握好会议时间和系统功能规模等几个要点,会议时间要短,以5~10分钟为宜,时间过短就会有成员没有机会参与讨论,时间过长会议效率将降低。团队成员都要熟悉已立项的软件系统,这样所有队员才能积极参与到会议中,这样的软件可以是寝室管理系统或教务管理系统等。系统功能规模以4~6个主要功能为宜,功能过少就不能很好地仿真真实的系统,很难激发学生兴趣,功能过多则很难在规定的时间内完成任务。然后再让学生团队讨论估算每个功能的开始工作日期以及需求分析、设计、编码和测试等任务的工期,功能的开始工作日期按业务紧急优先度安排,开始工作日期应安排在前序功能的编码或测试阶段,功能的工期取各个成员估计工期的平均值。这样做能避免学生感觉知识抽象,让学生感觉到事物较具体且容易实施。最后要求学生应用Excel软件制作表格填写系统各个功能的开始工作日期和需求分析等任务的工期,并依此生成甘特图。由于学生在计算机文化基础等课程中未绘制过甘特图,因此教师要演示操作如何绘制表格和生成甘特图。该教学法能让学生全程参与实践,从而强化了对增量模型的认识,学生能通过甘特图较直观地观察到工作任务间的关系以及功能之间的关系。通常学生都较好地完成工作任务,但存在工作任务开始工作日期安排不合理等问题。例如,某功能的开始工作日期安排在前序功能测试工作任务之后,教师可以组织学生讨论这样的安排是否会导致开发人员无事可干,让学生更加深刻认识模型。

三、面向用户的需求分析教学

软件需求分析是指对要解决的问题进行详细地分析,弄清楚问题的要求,确定系统必须要做什么。软件需求可分为三个不同层次的需求:业务需求、用户需求、功能需求。它们分别从组织、用户和开发人员角度描述了需求。当软件规模较小,软件开发关注的是代码而不是需求,而现代软件都较复杂且规模较大,需求分析在软件开发中越来越重要甚至直接关系到软件的成功与否。在实际教学中,学生通常不会区别需求的层次性,其直接关注的是功能需求,其更关注的是如何编码实现系统。但由于软件复杂和规模较大,不可能直接获取到软件功能需求,这导致学生认为用户需求是直接获取的。面谈、问卷、UML用例图和用户故事点等技术方法是用户需求获取的常用技术方法。这些技术方法的一个共同特点是需要用户参与到需求分析中,由于学生没有工作经历不能够把用户的业务需求描述出来,这加大了学习难度,所以用户角色不应该由学生扮演。相对而言,教师工作和生活阅历丰富,能较好认识和描述业务,用户角色可由授课教师或邀请相关教师扮演。扮演用户角色的教师其职责是学生交互描述需求和审核学生是否正确描述出用户需求等。学生团队的工作是设计面谈和问卷问题以及应用用户故事点等方法描述需求。学生设计的问题往往存在不够系统、题量偏少、需求相关性较低和未从用户角度描述需求而是描述系统操作等问题,教师在教学时应该要注意该类问题的发生和指明问题所在。这种教学法把传统的讲授法转成用户和开发人员的沟通交互教学,把需求案例讲解转成开发人员描述需求和用户对需求进行审核,其特点是仿真度较高、可操作性高和实践性强等。

文中探讨比喻等教学法在软件和程序概念中的教学应用,探讨在教学中融进软件功能以及功能的工作开始日期和工作任务工期,细化软件开发模型避免教学空洞,探讨软件需求层次及面向用户需求层次的教学方法。教学实践表明,这样的教学把抽象的知识具体化、形象化和层次化,强化了教学实践性,能够提升教学效果。

参考文献:

[1]李亚红.《软件工程》课程教学改革探讨[J].长江大学学报(自然版),2013,10(01):1,96-98.

[2]孟庆见.软件工程课程教学方法改革研究与实践[J].福建电脑,2013,(04):29,167.

[3]张振琳,张雪松,于慧艳.“软件工程”课程实践教学改革探索[J].中国电力教育,2012,(29):90,103.

[4]李金靖.对软件工程教学方法的探索[J].信息系统工程,2012,(04):153-154.

软件工程专业例2

[3] 李慧仙.论高校课程群建设[J].江苏高教, 2006(6):73-75.

[4] 张怡文,贺爱香,王美荣.基于软件课程群的合格课程建设——《C++程序设计》合格课程建设[J].电脑知识与技术, 2012(5): 46.

[5] 肖宿.软件工程课程教学方法初步探索[J].电脑知识与技术, 2012, 8(14).

软件工程专业例3

随着国内软件市场不断扩大,软件企业也越来越规范,软件产品正逐渐成为软件企业生存和发展的核心。人才市场需要大量的软件测试人才。高职软件工程专业毕业的学生也绝不仅仅只限于从事低端程序,在软件工程专业,软件测试逐渐成为一个新的就业方向和就业趋势。凭借软件工程专业,加大建设软件测试课程的力度,同时对软件测试的投入力度也要加大,进而使得培养出的软件测试人才都具有扎实软件测试理论知识,同时掌握测试软件的方法,并且具有一定的测试软件的经验。

2 高职院校软件测试课程现状分析

多年来,软件测试技术课程一直按传统的教学方法以讲授为主进行教学,学生缺乏学习动力,依赖性强、易受外界环境的干扰,工程意识、工程素质没有得到有效锻炼,不能利用所学知识和技能对软件项目进行测试实施。软件测试技术方面的教材近年来出现了一些,但质量也良莠不齐,高职的软件测试课程大多设置为选修课或者考查课,课时相对较少,并没有作为重点内容来要求。软件测试课程的教学目前大致为两种状态,一种测试理论和测试方法是高校教师授课的重点,在软件测试案例和软件测试经验方面比较匮乏,在教学过程中很少涉及重要的实践环节,系统的训练相对比较缺乏。与软件公司的测试人员相比,学生还有很长的路要走。另一种是从软件公司聘请多年从事测试的高级人才来任教。他们直接用企业的测试项目对学生进行讲解,但高职软件工程专业的学生之前都很难完成实用性的具体项目,更没有扎实的测试理论和方法做依托,不能将实用的测试技术深入的消化理解,灵活运用。如何将这两种教学现象很好的融合,是软件测试课程能否使高职软件工程专业学生成为软件测试实用人才的关键所在。另外,学生对软件测试技术的掌握程度直接受到对软件测试认识的影响。不懂编程的人才从事软件测试这是所有学生的共识,在一定程度上影响了软件测试技术的学习。恰恰相反的是,能做测试的高端人才,正是对编程有着深刻理解的全能型人才。

3 教学方法

为了确保培养的软件测试人才符合社会的需要,在一定程度上满足高职院校学生职业能力的要求,可以从以下几个方面进行改革:

3.1 加强软件测试的课程建设。可以设立《软件测试理论、方法》、《软件测试系统训练》和《软件测试实战项目》等多门课程。适当增加实验实训的学习时间,对教学目标、教学内容、教学计划和教材选择等进行重新制定。在软件开发过程中,要让学生了解软件测试的重要性,熟悉软件测试的基本概念和理论,同时掌握软件测试的技术和方法,能将软件测试技术用于实际测试问题,并指导软件测试职业的特点和对软件测试人员素质的要求。软件测试课程应该在软件工程课程结束之后开始,安排在第三学年。最好同步能安排生产实习。

3.2 合理组织教学内容,实施案例教学。在知识点方面,软件测试技术涉及的比较多,并且通过大量的规范的训练才能理解和掌握这些知识,最好的办法是进行分阶段教学。前期的基本概念和基本知识、单元测试、集成测试以及自动化测试工具的使用等是教学内容的基础。后期包括需求测试、设计测试、系统测试、可靠性测试、验收测试以及静态测试中的同行评审等。多利用各种测试案例进行教学。建立案例库等。

3.3 严格实践训练,实施实训练习。按照测试对象,要求学生设计相应的测试用例、编写测试程序、测试和书写测试报告。在高职院校教育中,认识实习和实习是两个重要的实践环节,利用这两个环节,组织对软件测试感兴趣的同学进行测试,进而提高技能,在一定程度上激发他们对软件测试的兴趣。生产实习则需要有经验的软件测试工程师能实际指导学生进行项目测试,通过训练使学生认识到实际项目的测试,找出自身差距。

软件工程专业例4

软件工程专业的培养目标是面向我国软件产业培养急需的工程应用型人才。软件产业的发展要求学生具备较强的系统分析、设计、开发与维护能力[1]。为培养学生软件系统方面的相关能力,许多高校的软件工程专业都设置了系列课程模块,如程序设计课程模块、网络技术课程模块、计算机体系和操作系统课程模块、软件工程课程模块等,这些模块往往是一些单独课程的组合,有很多学生学了这门课程,又忘记了那门课程,到毕业时专业能力达不到社会所要求的层次。程序设计课程群是软件工程专业系列课程的重要组成部分,其承载的技能培养目标是专业培养的子目标[2],处于非常重要的地位。课程群建设是专业建设的一部分[3],有利于打通课程知识脉络,避免课程内容重复或前后脱节,使前后连贯,内容融合,进而获得整体优势[4]。程序设计课程群主要培养计算思维能力、算法设计与分析能力、程序设计与实现能力和系统分析开发能力[5]。学生通过程序设计课程群的学习,可掌握1~2门程序设计语言,更进一步理解程序设计方法,熟练掌握常用的数据结构和算法,形成良好的程序设计风格,可独立分析、设计和开发中小型软件系统。所以对程序设计课程群进行研究并积极实践对专业培养目标的实现具有重要现实意义。

1问题分析

目前,大多数高校信息类相关专业都开设了程序设计系列课程,一般为C语言程序设计、数据结构与算法、java程序设计等。许多高校都将C程序设计作为第一门程序设计课程[6],一般安排在第一学期或者第二学期,学完C语言之后,再学其他程序设计课程,如数据结构等。由于C语言本身比较灵活且语法内容比较多,对于初学者来说并不太好掌握。一些教师在授课过程中,没有站在软件设计的高度思考教学内容,往往过多地强调语言成分的语法和语义,而忽视了计算思维能力[7]的培养,使学生从开始就扎进程序设计语言的细枝末节中去,忽略了软件工程思想的渗透,到最后学生掌握了一些语法,却不能写出较为优美的程序或没有形成较好的程序设计思维和风格。算法是程序的灵魂,数据结构和算法在课程群中具有基础和核心地位[8]。在实际教学过程中,学生普遍反映数据结构和算法课程抽象难学,在学习和实际应用中出现的问题比较多,很难写出能正确运行的程序,学习过程中成就感不强,学完之后还是不知道如何应用,很难达到预期的效果。由于在前期的学习中,程序设计基础没有打牢,对常用的数据结构和算法没有真正掌握,模块化程序设计思维没有有效建立,良好的程序设计风格没有形成,导致后续的高级面向对象语言程序设计学习很难深入,最终导致软件分析与设计能力得不到有效的提升。

2程序设计课程群建设

我校软件工程专业采取校企合作办学模式,由吉首大学和中软国际共同建设,企业参与人才培养的全过程,在具体实施过程中,学校侧重于理论教学部分,企业侧重于实践教学部分[9]。程序设计课程群是软件工程专业课程体系的重要组成部分,企业参与讨论与建设,确定该课程群以软件设计能力培养为主线,以C语言程序设计、数据结构、面向对象技术、算法设计与分析几门课程为基础组建课程群,C语言程序设计开设在第一、二学期,数据结构、面向对象技术、算法设计与分析分别开设在第三、四、五学期,第六学期可开设JavaWeb程序设计或Asp.NetWeb程序设计,使课程群在能力构建和开设形式方面形成一个不间断的体系。

3程序设计课程群实施

3.1精讲课程主要内容,提高程序设计能力

课程组教师首先需要站在软件分析与设计的角度研究各门课程在课程群中的地位和作用,把课程群中的系列课程作为一个有机的整体,研究各门课程的主要教学内容,针对课程重点、难点、疑惑点进行精讲,做到理论与实践课并重,有效提高学生程序设计水平。在课程群系列课程中,由于第一门课程是后续系列课程的基础,所以学生必须掌握它。在C语言的教学中,要渗透软件分析与设计的思想,把握程序的主要框架,不纠缠于一些细枝末节的语法。函数是C语言教学中的重点,需要重点突破,从模块设计的角度来考虑函数设计,对于一个具体的函数,则要掌握函数的返回类型、参数类型以及参数个数。如用函数处理一个数组时,需要传递数组的首地址和数组的规模,首地址用指针表示,数组的规模则有两种表示方法,一是数组的长度,二是数组的起始下标和结束下标,这两种方式可能会分别应用到不同的地方,如果教师一直不提示第二种方法,则将来学生在写数组做参数的递归程序时可能会遇到困难。从多年的教学实践来看,如果学生真正掌握了函数设计方法,再加上必要的算法知识,一般情况下,程序设计就会变得得心应手而且十分有趣;对于数据结构课程,采取以数据存储(内存)为主线的方法,将重点放在数据的存储和相关算法方面,在算法实现时渗透模块化的思想,需注意头文件和实现文件的定义,因为数据结构内容具有很强的连贯性且程序的初始化工作较多,如链表的具体应用则先要建立链表、树的遍历和节点的查找等则先要建立树、图的遍历和最短路径及关键路径等则先要建立图,在实验过程中有意识地把一些基础工作放入头文件,则会极大地提高实验的效率;在面向对象技术教学中,以面向对象程序设计的方法为核心,以语言中的面向对象机制为主要内容,在适当的时候引入《ThinkinginC++》、《EffectiveC++》、《ThinkinginJa-va》等优秀书籍中的一些思想和经验,要注重面向对象程序设计过程中大的程序框架的合理性以及具体处理算法的正确性;在讲授算法设计与分析的时候,应集中精力将主要算法讲透,直到学生学懂为止,在实现算法时,应充分运用面向对象设计的思想,将算法封装在类中;在web程序设计教学中,采用案例驱动的方式,精讲软件项目设计中的主要方法和主要问题,培养学生工程化设计思想。精讲的目的是让学生多练,精讲之后要布置任务并为学生提供练习环境和相关指导,必须充分发挥教师主导和学生主体作用,教师要认真检查学生的作业、实验和练习情况,及时纠正问题,引导学生运用软件工程的思想设计程序,培养学生良好的程序设计思维和程序设计风格,激发学生自觉学习和实现相关算法,最终提高程序设计能力。

3.2大规模开展程序设计训练,培养程序设计能力

为培养学生算法设计与分析能力,学院在晚上和周末开放了实验室,在实验室搭建了ACM在线测评系统(ACMOnlineJudgeSystem),并接入了校园网,结合C程序设计、数据结构与算法等课程部署了大量习题。学院利用课余时间,有计划组织学生进入实验室进行编程训练,并为每次训练配备了指导教师。平时,学生也可以在寝室登录平台进行训练。教师在讲授C程序设计等课程的时候,要求学生利用课余时间在ACM平台上完成至少上百道题的训练,并将完成情况计入课程的平时成绩。通过大规模开展在线程序设计训练,学生的程序设计能力有了明显的提高。

3.3开展课程设计训练,培养工程化设计思想

在课程群中除开设理论课程对应的实验项目之外,还针对整门课程开设了综合性课程设计项目,如C语言课程设计、面向对象技术课程设计、javaweb课程设计,单个课程设计周期为1-4周。学院课程设计项目主要由企业教师指导完成,该类项目采用分组形式,在组内模拟软件企业运行模式设置相关岗位角色,学生在仿真企业环境中,利用仿真的软件开发项目,进行轮岗和角色体验,培养学生的软件工程应用能力、软件项目开发与测试能力、职业素质等,从而使学生熟悉软件项目开发流程和规范,养成良好的软件开发习惯。课程设计结束时,要求学生演示并讲解自己的项目开发情况,由学院教师和企业教师组成评定小组进行评分。

3.4改革考核与评价方式,理论与实践、平时与期末相结合

理论与实践相结合。程序设计课程群内的课程都是实践性很强的课程,其目的是运用所学的知识解决实际问题,决定了课程的期末考核要综合考虑理论和实践两部分内容。理论部分主要考查学生对基本概念的理解和对基本知识的掌握情况,实践部分侧重考查学生的综合应用能力,这两部分成绩都在期末完成,占课程总成绩的60%左右。平时与期末相结合。期末考核重在体现学习的结果,平时成绩则侧重于体现学习过程,在课程总成绩中,平时成绩占40%左右,即一门课程约有40分来自平时的学习过程。平时成绩一般由出勤、作业和平时实验情况、课程设计情况组成。在学期开始第一堂课的时候将课程评分方式告知每一个学生,必须抓紧平时的学习,若平时分小于20分,则取消课程考试资格或直接将课程总成绩记为不及格。

4结语

程序设计课程群对培养学生计算思维能力、算法设计与分析能力、系统分析与设计能力具有重要作用。本文分析了学生在课程群学习中遇到的一些问题,从软件分析与设计的角度对课程群进行建设与改革,提出了以C语言程序设计、数据结构、面向对象技术、算法设计与分析等几门课程为基础组建程序设计课程群,给出了课程群的主要知识与能力体系要求,通过精讲课程主要内容、大规模有组织地开展程序设计训练、企业教师指导课程设计、改革考核与评价方式等方法进行教学改革,学生的程序设计能力得了到较大的提高。

参考文献

[1]韦迎春,文俊浩,陈蜀宇.以能力培养为核心构建示范性软件学院实践教学体系[J].中国高等教育,2011(2):49-50.

[2]乔付,王国权,张凤武.CDIO理念下计算机程序设计课程群建设探索[J].内蒙古师范大学学报,2011,24(11):39-41.

[3]孙雷,王新.计算机专业程序设计课程群的研究与实践[J].教育教学论坛,2013(11):222-224.

[4]翁伟,吴克寿,吴芸,等.程序设计课程群建设探索与实践[J].计算机教育,2009(23):123-125.

[5]王海舜,蒋巍巍.基于程序设计能力培养的软件设计类课程群架构[J].计算机教育,2012(2):23-26.

[6]万臣,谢芳,胡泉.计算机专业程序设计课程群的建设与研究[J].合肥工业大学学报:社会科学版,2009,23(1):33-36.

软件工程专业例5

软件工程教育兼属科学教育和工程教育范畴,软件工程的科学教育属性主要是引导学生对人类意识与智慧进行科学理解、增强运用软件本质特性(构造性与易演化性)和解决具体问题的能力;而软件工程的工程教育属性主要是引导学生综合应用计算机科学、数学、管理等科学原理,借鉴传统工程的原则、方法,提炼和固化知识,通过创建软件来达到提高质量、降低成本的目的。然而,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 开设部分技能课程

软件工程专业例6

0 引言

作为一个新兴的学科,软件工程涉及计算机科学、数学、管理学等领域,是一个综合叉学科。同时,软件开发技术得到了飞速的发展,云计算、移动互联网络、手机系统和APP软件、物联网以及互联网+概念的提出,对计算机行业,特别是软件工程专业的发展产生了深远的影响。

如何利用现有技术,对软件工程专业的人才培养模式进行改革,从而培养出适应社会需要的高素质、实用型、具有竞争能力的软件工程高级应用型人才是摆在软件工程教育工作者面前的一个重要任务。

本文以河南城建学院“人才培养模式改革”为契机,结合软件工程专业的学科特点及现阶段的教学困境,提出了软件工程专业课程群建设方案,旨在为课程体系与教学内容整体优化提供有益探索。

1 软件工程专业认知与定位

对比计算机科学与技术专业,软件工程专业侧重于用工程化的技术和方法,应用计算机科学、数学、及管理科学等原理来开发软件。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理[1]。软件工程包括十大知识领域:软件需求、软件设计、软件构造、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法、软件质量。

立足于计算机工业和软件产业的人才需求现状,高等院校的软件工程专业人才培养模式不仅要注重学生基础知识和动手能力的培养,同时也要注重学生工程能力和职业素质的培养。我院软件工程专业人才培养目标为:培养适应我国社会主义现代化建设需要,德、智、体、美全面发展的,掌握自然科学和人文社科基础知识、计算机科学及软件工程专业基础理论知识的,熟悉软件开发相关理论和知识的,具有软件开发实践和项目组织的初步经验和能力,具有创新和服务意识,具有熟练的外语运用能力,能在企、事业单位和行政管理部门从事科学研究、开发和应用的,能适应技术进步和社会需求变化的高素质、实用型、具有竞争能力的软件工程高级应用型人才。

2 现有人才培养模式存在的教学困境

现有人才培养模式存在的教学困境究其根源是由软件工程专业的学科特点决定,即软件工程学科涉及到理论、方法、工具的综合交叉;软件项目的过程、组织和管理涉及面广;同时软件工程专业的方法、技术和知识更新快、使用周期短、国际化程度高、应用范围广、服务性强以及软件使用的不连续性和不确定性[2]。

现有人才培养模式存在的教学困境:

1)专业核心课程工程化的原理贯彻始终,理论性强,理论指导实践的意义重大,但部分学生专业基础不牢,软件开发经验不足,无法把理论教学的知识与实践结合,课堂教学效果不好。

2)软件开发技术发展迅速,特别是云计算、物联网、移动互联网以及互联网+等技术的发展,使得学生在校学习的专业理论和技能素养跟不上社会对于软件工程专业技术人才的要求。

3 软件工程专业课程群建设

本文提出的软件工程专业课程群建设是在河南城建学院“人才培养模式改革”大背景下,结合软件工程专业的学科特点及现阶段的教学困境,提出了软件工程专业课程群建设方案。

需要强调指出的是,课程群建设并不是机械地进行课程排列组合,它应该是把一批具有相同认知结构和培养目标的本专业或跨专业课程的知识、方法、问题及解决方案有机地整合形成的课程体系[3]。课程设置要体现与时俱进,且要和当前高校的教学方法改革相结合,旨在为人才培养模式改革在系统化、理论化、工程化、实践化等方面提供建议,针对专业特点构建工程化实践教学体系,形成一个融基础理论、实验教学、工程实践为一体的整体化培养机制,使学生各方面的能力都得到全面均衡的发展。

按照循序渐进的教学指导原则,本文提出的软件工程专业课程群建设,主要从课程群建设和实践能力培养两个方面进行阐述,从而形成一体化培养机制,使学生在打牢专业基础知识的同时,在实践技能方面得到全面均衡发展。

1)软件工程专业课程群建设

软件工程专业课程群建设从理论基础课程群建设考虑。其中,理论基础课程群建设可以细分为四个课程子群,分别为:公共基础课程群、专业基础课程群、软件工程专业课程群和专业方向课程群。

具体来讲,四个课程子群的包含的课程如下。

(1)公共基础课程群。包含思想政治类(具体包含课程:思想道德修养与法律基础、马克思主义基本原理、思想和中国特色社会主义理论体系概论和中国近代史纲要)、大学英语(一、二、三、四)、高等数学(上、下)、大学体育(一、二、三、四)和计算机科学导论等课程。

(2)专业基础课程群。包含高级语言程序设计、大学物理(一、二)、硬件类(数字电路、模拟电路、计算机硬件技术基础)、线性代数、离散数学、概率论与数理统计、软件工程导论等课程。

(3)专业课程群。包含程序设计语言类(具体包含课程:面向对象程序设计、Java基础、网站建设)、数据结构、计算机组成原理、数据库原理、计算机网络、操作系统类(操作系统和Linux操作系统),面向对象分析与设计(UML)、软件工程过程与管理、软件质量与测试、软件系统设计与体系结构、计算机安全和编译原理等课程。

(4)专业方向课程群。包括限选课和任选课两类。其中限选课分为两个方向:.NET方向(具体包含课程:C#程序设计、网站建设和 .NET企业级开发)和Java方向(具体包含课程:典型数据库、Java Web应用开发和J2EE企业级开发)。任选课具体包含课程:算法分析与设计、人工智能、平面设计、Android技术应用和绘画鉴赏等课程。

2)实践能力培养

实践能力培养主要从上机实验、课程设计、实习实训和毕业设计四个方面入手,着重培养学生的实践动手能力。

实践能力培养以“四面一体”为原则,着重培养学生的实践动手能力。所谓“四面”,是指实践环节从上机实验、课程设计、实习实训和毕业设计四个方面进行理论知识的深刻理解和熟练运用,从而使学生打下坚实的理论基础知识,并运用到实践。其中上机实验主要是对相关课程的理论知识点进一步理解和掌握;课程设计则是以小项目为基础,使学生对课程总体把握和熟练运用,把所学知识运用到实践中去,理论联系实践;实习、实训环节是让学生对新技术、新知识的学习,同时进一步提高学生的动手能力;毕业设计注重对理论知识和实践能力的综合运用,形成全面的专业技能。

“一体”是指“四面”的最终目的是为学生的实践能力服务,在毕业设计环节实现四面归一,提高学生从整体把握并综合运用所学的理论、实验、课程设计、实习、实训中的知识,知识归一、动手能力归一,形成全面的专业技能,使学生在进入社会工作后,有很强的实践动手能力,适应工作的需要。

4 结束语

本文依据我校软件工程专业认知与定位和现有人才培养模式存在的教学困境,提出了软件工程专业课程群建设方案,旨在为课程体系与教学内容整体优化提供有益探索,从而培养能适应技术进步和社会需求变化的高素质、实用型、具有竞争能力的软件工程高级应用型人才。

【参考文献】

软件工程专业例7

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2015)27-0137-02

一、引言

近年来,中国软件产业总体保持平稳较快发展,企业数量稳步增加,产业规模持续扩大,2012年中国软件产业共实现软件业务收入2.5万亿元,同比增长32.7%。“十二五”时期,我国软件业发展前景广阔。按照工信部的《软件和信息技术服务业“十二五”发展规划》,“十二五”期间,我国软件业将着重发展基础软件、工业软件及行业解决方案等重点领域,并实施包括龙头企业培育在内的十大重点工程。从2013到2015年,中国软件行业收入将年均增长25%以上。预计到2015年,我国软件业业务收入将达到4万亿元,占信息产业的比重将达到25%,软件出口额达到600亿美元。

随着东莞经济的高速发展和“双转型”的需要,对高素质应用型人才的需求变得尤为迫切。东莞市政府出台的《关于加快发展东莞市现代信息服务业的实施意见》支持发展信息服务业。东莞市现代信息服务业主要包括信息传输服务业、计算机服务业以及软件业三大类,将东莞打造为继深圳、广州后的又一个现代信息服务业基地。东莞的信息产业规划届时将以新显示、新能源、新一代宽带无线移动通信和软件产业“四新一软”发展战略为重点,力挺软件产业,同时大力开展人才培育工程,以产学研相结合的方式,支持各高校开展人才定制培训、综合培训、认证培训、专业课程培训等各项培训,大力培养适合企业发展需要的实用技术型和创新型人才。东莞市政府在《东莞市促进软件产业发展的若干规定》中明确指出:要大力培养符合软件产业要求和掌握规范性开发能力的大批软件技术开发人员。

二、软件工程专业发展概况

随着网络的普及和应用,信息技术不断深入社会生活的方方面面,软件的应用越来越广,软件产业不断扩大,社会需要大量的软件技术人才,系统、规范地培养软件工程人才已受到国内外高等学校、科研院所和企业界的普遍重视。由ACM和IEEE/CS联合工作组组织制定的软件工程知识体SWEBOK、计算教程软件工程卷CCSE2004于2004年5月正式。软件工程专业将根据广东和东莞人才市场需求,以软件领域人才需求调查结果为基本依据,以提高学生的综合职业能力为宗旨,培养具有从事应用软件系统分析、设计、开发、应用、管理与维护的能力,立足东莞、服务广东、面向全国的高素质应用型技术人才。

三、专业能力构成

1.软件工程专业能力。根据2006年教育部计算机课程教学指导委员会的《软件工程本科专业规范》能力结构要求,掌握软件工程的知识与技能,具备软件工程师从事工程实践所需的专业能力。主要分为:①获取知识能力:终身学习能力、信息获取能力、适应学科发展的能力等。②应用知识能力:需求分析和建模的能力、软件设计和实现的能力、软件评审与测试的能力、软件过程改进与项目管理的能力、设计人机交互界面的能力、使用软件开发工具的能力等。③创新能力:在基础研发、工程设计和实践等方面具有一定的创新意识和能力。

2.软件行业岗位能力。根据人才培养目标和用人单位对软件工程专业人才的能力需求以及软件开发生命周期各环节技术要求,我们将软件工程专业能力归纳为系统分析、软件设计、软件开发、数据库开发与管理、软件测试、软件技术支持与系统维护等六个方面。①系统分析与管理能力。精通计算机行业的前沿理论,精通代表主流开发思想的程序开发语言,精通建设信息系统所要求的各种具体技术,熟悉应用领域的业务,能分析用户的需求和约束条件,写出信息系统需求规格说明书,制定项目开发计划,协调信息系统开发与运行所涉及的各类人员,能指导制定企业的战略数据规划,组织开发信息系统,能评估和选用适宜的开发方法和工具,能按照标准规范写系统分析、设计文档,能对开发过程进行质量控制与进度控制,能具体指导项目开发。②软件设计能力。针对客户的需要和软件开发项目管理及软件工程的要求,根据设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档;具有理解需求分析与整体设计能力;模块级详细设计能力及数据库设计能力。③软件开发能力。根据软件产品的需求、理解和分析系统概要设计,进行模块级详细设计,按照规范编写代码,进行单元测试,修改缺陷,提交代码,编写整理技术文档。要求具有较强的逻辑思维能力,理解面向对象思想;掌握主流开发工具,精通一至两种程序语言,按照规范编写代码;具有数据库开发能力;掌握单元测试、集成测试的方法与技术;编写、整理技术文档的能力。④数据库开发与管理能力。根据需求进行数据库分析和设计,创建符合规范的数据库,满足系统运行的需要;完成数据库日常维护、备份及恢复,能对数据库性能进行优化。掌握数据库基本原理;熟练掌握一种以上大型数据库系统的应用;具有数据库设计与开发能力;具有数据库备份、恢复及日常维护的能力;具有对数据库性能优化的能力。⑤软件测试能力。根据需求分析和设计规范,对软件进行测试和检验,发现软件的错误或缺陷,对软件产品质量进行客观评价。掌握单元测试和集成测试、功能测试和性能测试的基本方法和步骤;熟悉软件开发过程,掌握软件测试流程和技术;具有编制测试大纲、计划、方案及设计测试用例的能力;熟悉使用常用测试工具;具有测试执行、缺陷跟踪的能力;具有测试管理能力;能够编写测试技术文档的能力。

四、课程体系设计

软件工程专业例8

1教学理念

随着互联网络和IT技术的快速发展,IT技术的服务无处不在,软件开发已经成为计算机专业的大学生掌握的必须技能,能够更好地运用当今流行的软件开发技术手段开发程序,已经成为计算机专业的学生在激烈的社会竞争中能够获胜的关键。所以,在当今的IT技术时代,特别是大数据和云计算快速发展的时代,对于计算机专业的本科生来说,系统地掌握软件开发技术的各个环节并使其有机结合,同时运用软件工程开发过程的技术来组织软件开发过程的所有资源并综合地处理软件开发过程已经成为计算机行业的基础需求技能。所谓软件工程,是指系统地运用工程管理的知识来组织、运行、开发和维护有用的、高效的和高质量的软件学科。软件工程主要包括人员管理、项目管理、可行性与需求分析、系统设计、程序设计、测试和维护等过程。因此,对于计算机专业的学生来说,掌握必要的软件开发过程,了解和掌握软件开发过程的建模和管理技术不仅能够使自己在未来可以更轻松地应付多种复合信息的工作需求,给自己带来更合理的处理方法,而且也可以提高自己的软件开发效率。所以,对一些计算机专业的学生来说,通过系统地学习掌握软件过程开发技术,特别是一些新的软件开发动向,如面向服务的软件开发和集中式计算架构开发等,是十分必要的一项教学内容。目前,软件工程课程是计算机专业教学中的一门必修课程。以作者所在的教学单位为例,软件工程是计算机专业高年级本科生的一门必修课。该课程主要从软件工程基本理论出发,将软件开发技术的各个环节有机结合,全面覆盖软件开发过程,注重培养学生软件开发中的综合职业技能。主要讲授的内容包括软件开发规律概述、软件开发方法、软件开发平台与工具、系统分析与建模、IT规划与咨询、软件开发项目管理、软件开发案例分析等。同时该课程引入云计算和大数据对软件开发的需求,重点分析实际软件开发案例,使学生掌握软件开发的基本规律与实际管理方法。因此,软件工程作为一门专业必修课程,计算机专业的学生不仅能够通过这门课程掌握软件过程的必要技能,如RUP模型和UML等,而且通过实践的项目分析与设计,学生能够系统地掌握需求分析和软件设计的必要技术,如数据流图DFD如何使用等,使得学生掌握的知识不再停留在理论学习和应付考试上,为学生未来就业后进入企业快速融入开发团队提供了必需的知识基础。同时,该课程通过对一些热门开发技术的学习,不仅可以提高学生的兴趣,激发学生的潜能,加深学生对软件开发技术本质的理解,而且可以提高其相关知识的洞察力与研究能力。[1]

2教学方法和手段

软件工程课程的特点是知识内容多、内容实践性强,没有实践难以掌握,例如软件过程中的用例模型是通过角色、行为和场景来描述和分析软件开发过程的模型,因此不仅要求学生在课堂上需要了解什么是用例,掌握用例设计的基本规则,而且也需要安排时间给学生对于复杂的场景使用用例模型进行设计分析,然后进行课堂讨论,讲解自己的设计思路如何满足用户的需求等。所以,根据软件工程课程的特点,作者认为在课堂上宜采用“知识细化”、“精讲讨论”、“详细分析”等多种多样的教学形式。以作者所讲授的软件工程课程为例,本课程以计算机投影开展教学,配以适量的理论教学和知识点讨论,并以上机课来培养学生的动手能力,如要求学生使用Powerdesinger软件进行需求建模。本课程其中投影、理论和讨论教学为24学时,上机实验课为8学时(不含课外上机)。在讲授过程中,考虑到该课程注重应用的特点,遵循深入浅出的原则,对概念、原理的解释和描述尽可能地以日常生活所接触到的案例和图示加以对比说明,引导学生掌握软件工程的开发过程,建立概念之间和应用之间的联系。在讨论和上机过程中,以任务驱动方式要求学生完成讨论题目和上机实验,然后及时找出学生上机时遇到的问题,并归纳总结,提高学生相应的能力(教学学时分配见表1)。另外,作者为了让学生更好熟练地掌握软件工程的相关知识,通过网络收集了一些教学视频和PPT课件,在完成每个学时教学任务的课后都拷贝给学生,让学生课后回去自学这些知识。

3教学培养目标

软件工程课程是一门要求实践性较高的课程,对从实际的工程开发中掌握知识有较强的要求。因此,本课程主要介绍当前最流行的软件开发技术与环境,目的是使学生了解软件开发过程与组织等技术,掌握当前流行的软件开发方法与环境。本课程的教学目的是让学生初步地掌握从宏观和微观两个方面如何去开发软件系统。使学生学会软件开发的原理、技术和方法,提高学生的软件开发和软件工程管理能力:[2,3](1)培养学生的思考和动手能力。软件工程课程包含大量的建模知识,同时提供了一些软件去实践这些知识,因此这要求学生不仅掌握建模的基本原则,同时对于实际的项目需求,能够运用建模知识去分析建模,然后运用相关软件进行建模概念的设计。(2)培养学生系统的组织和管理能力。软件工程课程是一门工程性的课程,它来源于实践,并用于实践。软件工程的复杂性在于它是涉及软件开发的各种环节和资源相互协调工作的知识。因此,培养学生掌握好软件工程的知识,对于学生今后职业规划有重要的帮助,能够为学生往高层次的IT人才发展提供必要的知识储备。

4总结

本文结合作者的实际教学工作和在教学改革方面的分析与探索,从教学理念、教学方法与手段、教学培养目标等方面,对计算机专业的软件工程课程的教学改革进行了分析与探讨,提出了以实际项目驱动和课堂知识点讨论作为课堂教学手段,把软件工程相关理论知识学习作为实践的教学内容,注重实践为主、理论为辅的理念。目前,对于计算机专业的学生来说,软件工程课程的本科生教学改革有着十分重要的意义与作用,其教学内容与教学手段也应该要适应社会需求的变化。

参考文献

[1]许波,陈晓龙.UML结合软件工程教学改革探讨[J].计算机教育,2011(2):34-37.

软件工程专业例9

一、软件工程专业的人才培养模式

软件工程专业的本科教学以培养教学软件和数字化资源的开发与管理人才为目标,为国家培养应用型人才。应用型人才的培养需要理论与实践的双重教学,以满足社会对高素质技术人才的需要。然而在实践中,理论与实践的教学也需要长时间的磨合。通过多年的实践,软件工程专业人才的培养形成了基本的模式,即“课堂教学+教育应用实践”,二者相互配合,缺一不可。课堂教学注重培养学生的理论知识,使学生能够掌握本专业最基础的知识,为实践提供理论基础。实践是对理论知识的检验和应用,通过实践能够使学生对理论知识有进一步的理解,也能提高学生实际操作的能力,使学生在进入职场之后能尽快融入工作,满足工作的需求。但是,由于实践性知识注重个人经验的积累,具有高度的模糊性、主观性和近程性等特点,其评测标准难以确定,增加了实践教学的难度,是学校人才培养的难点问题。针对有效培养和发展软件工程专业本科生的实践性知识的问题,学界进行了广泛的研究,将实践共同体的基本理论和认知学徒制理论应用在本科专业的培养模式中,在培养过程中关注学习者的知识转化过程,实现构建软件工程专业的实践共同体的目的。近年来,各个学校采取了多种措施,增设了教育硕士(面向中小学教师的专业型学位)、教育技术学硕士和软件工程专业本科生的部分课程,力图形成一个有效的实践共同体。

二、软件工程专业的课程体系探究

“宽口径、厚基础、重能力、求创新”是软件工程专业课程体系的本科教育原则,具体要求是加强基础、拓宽专业、强化能力、注重创新。在当前的培养模式基础上,不断完善本科生的知识、能力和素质。其中强化英语与计算机能力是软件技术专业学生需要掌握的基本技能。计算机科学的国际化程度不断提升,发展非常迅速。软件人员需要紧跟技术发展的步伐,随时学习业界最流行、最先进的编程工具软件的使用方法。国际先进的原版工具软件中很多是没有中文说明或中文帮助文档的,即使国内编写的工具软件达到了国际先进水平,也需要将其英语化、规范化。所以英语课程的教学在本科生教育中占有重要地位,学校要在加大重视的基础上采取更加有力的措施,例如聘用外教和使用原版教材。研究表明,当前我国IT培训教材平均要滞后国外发达国家三年左右,这使得我国的技术人才在国际竞争中往往处于劣势。创造直接使用优质原版教材的条件,能够使本专业的教学事半功倍。但是高质量的教材往往需要有丰富经验的专家经反复论证和研究,以及一段时间的努力与资金投入,才能实现其本土化,开发并投入使用。所以今后各大院校应该在教材编写上投入更大的精力,争取与优质的国际教育培训集团的合作,提升国内高校在该专业的教学水平。

三、社会发展对软件工程专业人才培养模式的要求

教育信息化不断发展,软件工程专业的人才培养模式也在不断探索,其人才培养应注意以下几点:

1.学生培养应具备工科学科的特色,众所周知本专业涉及学科较多,在社会中应用范围较广,人才培养应使学生融入不同的技术方法,甚至是文化,提高学生的综合素质。

2.提高人才的善于学习,热爱学习的职业适应能力。才能适应信息技术的飞速发展。素质培养应作为本专业的培养重点。

软件工程专业例10

一、国内工程认证背景下软件工程专业实践课程的发展概述

在新工科背景下,实践教学作为实践性、创造性较强的教学工作,需要在传统工科实践教学模式的基础上进行深入探索和创新,打造符合新工科模式的实践教学平台。国内各大高校学者在工程认证背景下提出了若干工程教育认证与教育教学理念和研究方法。武汉大学计算机学院学者从软件工程专业实验教学定位分析,结合“以学生为中心、以‘创造、创新、创业’为导向”的教育理念,建设基于云的实验教学平台,培养"新工科"学生的核心能力[1]。东北大学软件学院学者结合新工科教育理念提出了软件工程专业理论与实践相结合的计算机网络课程建设与改革方案。湖南工程学院计算机与通信学院学者提出了软件工程课程教学改革整体框架,该框架构建四位一体的教学模式,以学生为中心,从学习资源库、教学团队、角色课堂和评价体系四个方面,全方面提高学生的项目开发实践能力。肇庆学院计算机科学与软件学院学者提出针对学生实际动手能力不足、团队协作意识薄弱的问题,构建了一种基于校企合作的软件工程专业实践教学模式[2]。郑州升达经贸管理学院信息工程学院学者提出了民办高校软件工程专业进行工程教育改革的措施,以培养学生运用所学专业知识解决实际负责工程问题的能力,提高学生走入社会的竞争力。

二、工程认证背景下软件工程专业实践课程的体系构建

结合我院特色,在软件工程传统实践教学模式的基础上进行探索和创新,研究与建设符合新工科模式的实践教学平台。我院软件工程专业设置了大量的实践课程,2018级、2019级、2020级软件工程培养方案中的实践课程分为51学分、54学分、52.5学分,占总学分的比例为31.76%、33.53%、26.38%。在工程认证背景下,专业课程的设置了大量的上机、课程设计、实验、实训、毕业设计等注重学生实践动手能力的教学环节。现阶段专业教师在进行实践课程授课的过程中仍然采用QQ发放作业、收取作业,亟需建立一个满足日常授课、配套的学生练习和成绩考核以及提高学生实践动手能力和创新能力的平台。现阶段软件工程专业实践课程体系包括上机、课程设计、实训、毕业设计4个教学环节。

2.1上机课程

上机课程占比为1/4~1/2课时,为学生巩固所学知识点而开设,其主要内容强调演示证明某个一个算法、设计某一个模块的实验结果。涉及的课程主要为专业课:计算机程序设计基础、数据结构、面向对象程序设计(Java)、数据库原理与应用、网页制作、软件工程导论、可视化建模与UML、JavaWeb编程等课程。覆盖的工程认证毕业要求1工程知识、2问题分析、3设计解决方案、5使用现代工具等[3]。

2.2课程设计

课程设计是在理论课结束后,新开设的实践课程,能够将对应理论课程的内容进行综合的练习而进行课程设计,是实践课程体系中最重要的组成部分。课程设计强调对课程知识点综合应用,实践案例来自企业真实的项目或者国内知名竞赛的题目。涉及的课程有:网页设计课程设计、软件工程课程设计、Java语言课程设计、JavaWeb课程设计、Web前端开发课程设计等。覆盖的工程认证毕业要求3设计解决方案、5使用现代工具、6工程与社会等。

2.3项目实训

项目实训主要开设在第7学期,综合运用多门课程的知识点完成软件工程的项目实训。让学生参与软件的需求分析、设计、实训、测试、维护等软件工程的生命周期,培养学的团队协作、职业规划、沟通、项目管理、终身学习等能力。软件工程专业现阶段的专业方向课程分为web方向课程和移动端开发方向课程,web方向的课程项目实训涉及课程为Java架构课程设计和Java微服务架构课程设计,题目选取了校企合作的企业级应用项目的部分功能,综合了专业基础课网页设计、Java、JavaWeb编程、数据库原理与应用、Web前端开发技术等多门课程。移动端方向设置的Android高级编程课程设计和微信程序开发课程设计综合了H5移动应用开发、Android应用开发、数据库原理与应用、网页设计、移动后端开发等多门课程的知识。其覆盖的工程认证指标点除了课程设计的要求以为,还覆盖了毕业要求8职业规范、9职业规范个人和团队、10沟通等。

2.4毕业设计

毕业设计是软件工程实践教学体系中的最后一个综合性、创造性的实践性教学环节。毕业设计题目从企业中的实践项目中进行选取,采用指导教师和企业导师联合指导的方式进行。毕业设计的整个过程包括选题、开题、中期检查、毕业论文编写、毕业设计项目演示、项目答辩等过程。最后系部邀请企业导师和校内导师联合推选优秀毕业设计,举办毕业设计展等活动。其课程所覆盖工程认证毕业设计要求的指标点除了上机、课设、项目实训的等课程的指标点以外,还加入了毕业要求11项目管理和毕业要求12终身学习。

三、工程认证背景下软件工程专业实践课程的实践平台建设

我院软件工程实践教学平台坚持“以学生为中心、提高实践能力、增强学习能力”为建设目标,采用项目式教学方法来构建学生的知识体系和动手实践能力。该实践教学平台承担上机、课程设计、实训、毕业设计等多个功能,并体现“工程认证”背景中提出的“以学生为中心”的原则。实践教学平台主要包括实践课资源共享系统、实践课在线培训系统、实践课在线练习系统、学生能力分析系统等4个部分。

3.1实践课资源共享系统

软件工程专业实践课各类资源共享系统,对教师、学生开放。主要包括课程介绍、教学大纲周历、教案、演示文稿PPT、、参考资料、课程录音录像等有助于教学提升的资源。该子系统主要包括平台首页、学习资源、翻转课堂和我的审核等模块。在平台首页、学习资源区均能看到课程的相关资源信息,同时支持同学们对某些重难点知识点按照自己的理解录制讲义视频等,通过教师审核后到平台,供其他同学学习。

3.2实践课在线培训系统

实践课在线培训系统与资源共享子系统搭配,通过学生学习的路径设置相应的算法进行评分设置、学分排名等。学生可以通过学习资源信息、完成作业、参与点赞和信息等行为,实时查看班级的排名信息,该分数可以作为教师过程性考核的依据。

3.3实践课在线练习系统

实践课在线练习系统与培训系统搭配,可根据课程内容或知识点进行考试练习。涵盖出题、组卷、考试、导入考生信息、监考、自动评卷/人工评卷等完整流程。可任意指定参与考试班级,指定考试试卷,规定每场考试时间。并可以限定每名考生的重考次数。

3.4学生能力分析系统

学生能力分析系统与在线培训系统搭配,提供督学监控功能,能正确反馈学生的进度、时间,监控每个学员、每门课程的进度等信息。与在线练习系统搭配,为整个班级、每个学生、每次考试进行分析,分析学员的错题情况,对症下药。

四、工程认证背景下软件工程专业实践课程平台的应用效果

该平台应用于软件工程17级、18级、19级等Java语言程序设计1、Java高级编程、JavaWeb开发等3门课程的上机、课程设计等教学过程中。教学过程中取得了相应的教学数据,同时对系统的进一步优化也提供了数据支撑。

4.1教师端和学生端翻转课堂模块

传统的教学模式中,以教师讲解为主。结合课上课下的讲解案例,教师可以将某一门课程的学习资源包括PPT和视频上传到功能区。同时在该模块中允许学生根据自己的理解对该知识点进行重新讲解,通过教师审核通过后该视频资源,使得教学变成双向过程,师生互动更加流畅。同时也将传统的老师讲-学生听的授课模式更改为学生讲-学生听的翻转课堂模式。

4.2积分模块设计

积分模块主要为激励学生学习兴趣设计,在学习过程中进行嘉奖,也能促进学生之间形成良好的竞争,同时为教师课程打分提供一定的参考。积分系统包含了积分获取、学习排行两个功能。积分获取提供两种获取方式,通过学吧论坛点赞互动以及每日签到。学习排行则提供了班级、年级排行等信息。在学生端首页提供了所在班级的学生排行信息,在教师端提供了所教授班级学生的排行信息。

4.3学生练习-测试模块老师可以申请考试教室,等待管理员进行审批,可以查看自己的申请状态,用来查询是否通过审核。申请教室时支持考试试卷上传,学生考试完毕后,将试卷上传到服务器,老师能够查看并批改上传的试卷。本模块支持多个参数查询、成绩报告生成、历史试卷回阅等功能。

4.4学生实践课程练习分析模块

在不断的教学过程中学生能力不断提升,以往采用期中考试、期末考试为学生能力的评估方式,缺乏中间过程有条理、有证据的分析支撑。无法准确获知学生在哪个阶段出现问题,也难以从源头解决。采用学生能力全过程的分析手段,有助于及时发现异常并调整,高效提升学生的综合素质和能力。以上机练习的选择题为例,将错误的选项进行统计形成分析报告,可以帮助教师分析集中的错误知识点,便于教师有目的讲解错误习题。

五、结束语

针对新工科建设和工程教育认证对软件工程特色专业建设和人才培养的要求,以本校软件工程专业实践课程为突破点,针对学生实践能力较低、动手能力不足、团队协作意识薄弱等问题,践行“新工科”工程教育理念、探索培养模式,助力学院向应用技术型高校转型,构建软件工程专业实践课程教学平台,一方面满足软件工程实践课程的日常教学需求,另一方面完善软件工程实践课程的教学体系,加深课程与课程之间的衔接关系,为其他应用型高校软件工程专业提供较好的借鉴和参考模式。

参考文献

[1]熊念,周珊,刘小丽,陆尧胜.基于云计算的跨校区计算机通识课程实验教学研究[J].实验科学与技术,2020,18(03):114-117.