软件工程研究生改革与研究论文(共2篇)
第1篇:研究生《软件工程》课程教学改革与研究
目前,软件工程研究生作为我院各专业的一门选修课,课程教学内容主要包括:软件危机、软件工程、软件过程、结构化分析与设计、面向对象的分析与设计、软件测试、软件项目管理、软件维护与软件质量保证等。本课程对培养研究生在掌握软件工程基础理论,传统的软件方法学、面向对象的软件方法学,以及软件项目管理等方面具有重要作用。通过本课程的学习,使得研究生掌握软件工程的理论知识及基本的研究方法,了解传统的软件方法学、面向对象的软件方法学的区别和优势,增强软件项目开发的能力,及时了解本学科的最新发展状况及前沿研究领域,从而使其具备在实践中能够正确、熟练地运用软件工程中技术、方法和工具的能力。
由于软件工程是一门综合性和实践性很强的课程,现行的教学内容,教学模式、教学实践等环节上都存在很大不足,且直接影响了课程教学效果和人才培养质量,因此,开展本课程教学内容和教学方法改革研究具有重要的现实意义和实践价值。
1教学现状与困难
目前本课程的教学现状主要有如下两个特点:
一是传统的内容多,新技术新方法少。在目前的教学中,基本是按照软件生命周期各阶段的顺序来进行内容组织和讲授,对于UML语言、面向对象的软件工程、XP极限编程、RUP、RationalRose、CVS等这些新的方法、技术和工具涉及很少。随着这些新技术、新方法的应用日益广泛,有的甚至成为主流,如果不及时引入到课堂教学中,容易造成教学和实际运用的脱节,不利于学生很快融入到导师的项目研发工作中;二是理论教学内容多,实践教学内容少。本课程教学时数为40学时,大部时间都在进行理论教学,仅仅安排了6学时进行试验,由学生独立完成,最后提交项目源程序和开发过程中各阶段的文档、报告等。在教学过程中我们发现过多的理论内容,只能使学生被动地听课,学生感到讲课内容抽象枯燥,常常是似懂非懂,有的学生甚至觉得本课程没什么实用价值,不太喜欢学,所以教学效果也不好。软件工程是一门工程性的科学,学生不可能靠听讲软件工程基本原理、方法和技术就学会开发一个实际的软件,而是要在实际的“动手做”和“真正练”中去体会软件工程思想,掌握软件开发方法和技术,最终才能熟练运用到真实的软件项目开发中。
目前本课程的教学难题主要有三点:
一是软件工程理论发展日新月异,教学内容更新速度跟不上发展。尤其是近10年来,随着IT技术日益深入到现实社会的方方面面,软件工程的新概念、新技术和新方法不断涌现,教学没能及时跟上软件工程理论、技术的发展。因此,如何实现学生所学知识与未来实际工作的无缝衔接,教学与实际需求紧密结合是本课程的一个教学难题。
二是教学缺乏实际项目背景,过多的理论教学容易陷入说教。完成本科阶段学习的学生,一般只学习过一些编程语言,编写单个程序的代码很少能够超过5000行,编写程序的数量和时间很是有限,大部分学生缺乏实际的项目开发经历和较正规的开发训练。然而软件工程课程教学内容是针对较大规模的软件开发而设计的、是全世界优秀软件工程师的经验教训总结,如果照本宣科,只进行书本理论知识的灌输,学生很难理解该课程的精髓,很容易对该课程产生虚无缥缈的感觉,使得教学流于形式,该课程变成了需要背诵记忆的课程,学生学无所获。因此,如何将教学内容变抽象为具体、变枯燥为生动,从而调动学生积极性与热情,是软件工程课程教学中的一个难题。
三是培养的学生缺乏团队开发意识,难以满足导师对研究生软件开发能力的需求。随着计算机硬件技术飞速发展,软件开发技术不断提高,软件复杂程度和代码行数呈指数级别增长。因此,一般工程项目或软件开发都必须以团队形式进行,个人英雄主义和黑客独来独往的思想对工程化的软件开发是很不利的。然而,目前本课程的实验和实践教学环节主要还是以学生个体为主,即使有一些团队训练项目,从检查验收结果看,往往还是由那些开发能力强的学生独立完成,最后进行成果分享。缺少对学生团队开发能力和职业素养行之有效的训练方式,培养的学生与实际需求存在较大脱节。因此,如何培养学生软件团队开发能力和软件开发职业素养,缩小教学与导师对研究生软件开发能力需求之间的差距,是软件工程教学中的又一难题。
2教学改革与措施
2.1构建先进的教学内容体系
结合学院各专业理论需求和测绘软件开发特点,我们构建在理论、应用、实践三个层次上的软件工程教学内容体系。理论部分主要讲解软件需求、软件设计、软件实现、软件测试、软件演化、软件过程、软件质量、软件配置管理和软件项目管理等软件工程课程核心内容。应用部分以当前流行的统一开发过程、面向对象技术和UML语言为核心,融入实践教学案例,覆盖RUP、RationalRose、CVS、Junit等软件工程工具和环境,使学生掌握当前先进的软件工程方法与技术。实践部分要求学生以团队的方式协作开发一个具有一定规模的软件系统,建立支持小组开发的支持环境,让学生从“可实践”软件工程角度学习和运用先进的软件工程思想、技术解决软件开发中遇到的问题。
2.2采用多样化的教学手段
1)激发学习兴趣。兴趣是最好的老师,通过构建先进的教学内容体系以及课程内容精心组织,突出各知识点之间内在联系,建立软件工程知识体系的系统性和实践性,激发学生学习积极性;通过梳理软件工程的历史发展脉络、揭示隐藏在知识点背后的思想深度,激励学生主动探索、积极实践的学习热情。以学生为主体,采用启发式、讨论式等多种教学手段,让学生走上讲台——学生讲解、教师总结,从而活跃课堂气氛、增加学习热情。对遇到的问题,教师组织学生集体讨论、启发、引导学生解决问题,目的是培养学生合作学习和探究性学习的能力与热情。
2)采用案例式教学。目前在软件工程教学过程中存在较多的理论内容讲授,这使得学生缺乏对软件工程知识的感性认识。为了解决这个问题,我们将近年来主持研发的一些专业软件项目和开发经验进行总结、抽取,梳理相关设计方案、技术文档和源代码等内容,形成一个个独立工程项目案例;同时也收集国内外经典软件工程教学案例(比如微软公司和IBM的),进行消化吸收。将这些案例(包括成功与失败的)提供给学生作为素材,实施案例教学。部分案例由教师在课堂上讲解,部分案例由学生分析、讨论、讲解。学生对项目成功与否,哪些地方符合软件工程思想,哪些地方违背了软件工程理论,怎样改进等问题进行讨论并提出自己的解决方案。这样,既培养了学生的实践能力,又丰富了教学手段。
3)制作高质量电子课件。高质量的电子课件对学生专心听课、提高学习积极性、提升教学效果都有很大帮助。因此在制作课件时,要尽量使其具有动态性,尽量用图、表等来表现讲课内容,使整个课件具体生动。避免过多的文字堆砌,更不能将大段大段的课本内容搬上课件,否则只能使学生看着PPT就感觉“头大”,不愿意听课。能用鲜活事例、动画、图表的地方尽量不要出现过多的文字,这样既能讲清楚问题,也容易吸引学生注意力,活跃课堂气氛,对讲课内容的掌握也当然就更加牢固,对提高教学效果和授课质量也大有好处。因此,我们准备用OFFICE2007+FLASH重新制作电子课件和教案,下发给学生中文版课件和教案,而上课时采用英文版电子课件和教案。
4)开展双语式教学。为了逐步培养学生适应英语授课和英语思考问题的意识,我们准备采用外国原版英文教材,课堂板书和作业都采用英语作为教学语言,教师进行英语提问,并鼓励学生使用英语回答。在讲课过程中,对易于理解的内容采用全英语讲解,不易掌握的部分用汉语讲解。同时给学生提供英文软件工程课外阅读资料,以使他们及时了解国际上软件工程的最新发展和动态。这样做既能活跃学生思路,开阔学生眼界,同时也能深挖掘学生想象力和创造力。
5)使用英文原版教材。为配合双语教学,同时满足研究生课程教学要求,在众多软件工程英语教材中,我们选择了高等教育出版社出版的《软件工程——理论与实践》(第三版影印版),由ShariLawrencePfleeger博士主编,Pfleeger博士是世界顶级软件工程专家。该书完美体现了软件工程的两个重要方面——实践者的经验和研究者的理论,并将这两个方面进行了完美结合,而且针对软件工程中的关键问题,讨论了该如何分析并提出了解决方案。书中介绍了目前最新的软件工程技术和工具,引用大量实例研究和文献中的例子,讨论了他们如何影响我们构建和使用最终软件工程产品。
2.3创新实践教学模式
课程实践主要内容是按照先进的项目管理和开发模式,由团队独立完成一个软件项目的开发,使学生得到较全面、系统和规范的软件工程实践训练,培养创造性的软件设计能力和综合分析、解决问题的能力。具体的设想如下:
1)以案例为导向。大多数学生一旦进入到真实的软件开发项目中,往往不能快速下手、进入状态。因此我们结合学生专业方向进行了案例设计,案例分析过程引入“Learningbydoing”的先进教学理念,引导学生通过分析,提出案例的解决方案。目前我们已经建成了一定规模的案例库,具体包括:软件演化过程支撑工具、专业人才数据支撑平台、支持软件并行开发的CASE系统、云雾剔除软件系统、科研论文平台软件系统、Linux应用软件开发工具、嵌入式GIS公共数据平台、月球表面地貌三维模拟系统、空中交通管制系统、医院病房监护系统、银行网络ATM系统和高速公路三维信息化系统等等。案例库的建成为学生项目实践打下了基础。
2)结合兴趣选题。实践项目命题原则是:尽量结合教学、科研的实际课题,反映学院专业需求,以获得更好的工程设计训练。由于项目受到时间、开发环境、条件等限制,命题应从实际出发,确定课题的大小规模和难易程度。要求学生自愿组合开发小组,结合专业需求与兴趣选题。三十多命题为学生自主选题提供了不同应用领域空间,有利于激发学生主动参与开发实践的积极性。
3)进行分段实施。实践过程按照真实的项目管理和开发模式进行,重点放在软件需求和软件设计两个阶段。在这两个阶段各安排1-2次项目方案讨论,小组内部交流与协作,考察方案对需求变更的适应能力,要求开发过程反复、迭代进行,从而培养学生“在实践中学习”的意识。
通过这种实践教学模式,不仅能够激发学生参与项目的积极性和主动性,引导学生去发现问题、分析问题,最后提出解决问题的方案,是培养学生进行探究性、协作性学习和团队精神的一种很好的模式。
2.4改变考核验收方式
在考试方式上,我们准备改变以往的做法(卷面考核和项目实践考核并重),改为以项目实践考核为主,卷面考核为辅。最终课程成绩考核包括平时考核(10%)、项目考核(60%)和卷面成绩考核(30%)。平时考核包括平时作业、课堂讨论及出勤等;项目考核包括项目的完成情况、项目各阶段的文档和报告,源代码,可运行软件等;卷面考核采取闭卷笔试,主要考察学生对软件工程理论内容的掌握。同时对课堂学习表现优异的学生额外可以有一定数量的附加分,从而激发学生学习动力。项目考核成绩则由各阶段文档及其规范层度(20%)、软件功能及其是否可运行(40%)、学习态度与独立编程能力(20%)和项目设计报告(10%)组成。项目成绩由小组之间互评(40%)和任课教师评分(60%)共同确定,这样既保证了最终学生成绩的合理性,又激发了各组学生之间的竞争意识和团队意识,促进学生将理论学习与能力培养紧密结合。
3结束语
由于软件工程一直在不断变化与发展,新的方法和技术也会不断出现,因此对软件工程的课程教学也应该不断进行改革、调整。目前,在学院相关教学部分的大力支持下,软件工程这门课程的教学改革计划与方案已经得到批准,我们准备从2011年下学期开始,对研究生的软件工程教学内容、教学方法和教学模式进行了上述一些改革和探索,从而提高课堂教学效果和教学质量,夯实学生软件工程素养和软件开发能力。
第2篇:软件工程博士研究生培养问题及改进
0.引言
在信息化浪潮的促动下,我国软件工程学科高层次人才队伍培养经历了跨学科培养、海(境)外引进、相近专业转行等方式。2001年12月,教育部首次批准全国35所高校试办示范性软件学院(教高[2001]6号)。以2011年3月教育部颁布的《学位授予和人才培养学科目录(2011年)》(学位[2011]11号)为起点,软件工程专业从计算机科学与技术学科“脱胎”出来,正式成为一门新的学科,标志着我国软件工程学科高层次人才培养完成了由学科从属型向学科独立型的跨越。这一跨越无论对于软件工程的学科建设,还是对于其高层专业人才的培养都具有顶层设计意义。
正是由于这一顶层设计的作用,2011年8月教育部首次在我国48所高校增设了软件工程一级学科的博士点和硕士点。截至2015年,全国拥有软件工程学科“博士一级”授权的高校已达52所,具有“博士二级”授权和硕士授权的高校达到106所。我国软件工程高层次人才培养支撑了国家信息产业的发展,基本适应了经济社会的发展和国防建设的需要,缩短了我国此学科与发达国家间的差距。由于软件工程学科高度的交叉性、领域的渗透性以及需求的无限性,我国软件工程学科高层次人才的培养特别是博士研究生的培养,无论在基础理论、课程设置,还是在培养方式、评价体系等方面都存在着一些问题。
1.存在的主要问题
1.1学科课程体系特色不彰显
我国软件工程学科是从计算机科学与技术学科分化而来的,虽然已经独立为一级学科,但由于其和计算机科学与技术学科的紧密联系,在博士研究生课程体系的设置中,仍然有很多内容与计算机科学与技术下的二级学科“计算机软件与理论”和“计算机应用技术”极为相似。根据对国内60所具有软件工程一级学科博士点(39个单位)和一级学科硕士点(21个单位)的高校官网上所公布的研究方向和培养方案进行的统计分析,计算机软件与理论二级学科和软件工程一级学科相似度高于70%的研究方向占到了25%,相似度低于20%的研究方向仅为8.33%。从两个学科开设课程相似度的比较来看,同一课程类别开设学校比例相似度高于70%的占80%之多。这些统计数字表明,当前我国对软件工程学科和计算机软件与理论二级学科博士研究生的培养,在课程设置上并没有本质区别。
和计算机科学与技术学科的博士生相比,软件工程教育的核心是能够解决实际工程问题。软件工程学科的博士生要熟悉一个或数个应用领域的相关知识,并强调综合应用各种软件工程方法与技术。他们在软件工程知识广度和深度、工程实践能力、沟通表达能力等方面比计算机科学与技术学科的博士生要更加优秀。但在目前软件工程学科课程体系下,软件工程学科博士并没有显著特色与优势,这将影响本学科博士研究生的培养质量。
1.2科研考核指标缺乏本学科特点
为了保证博士研究生的培养质量,我国各大高校都相继出台了博士生研究生考核指标体系。博士研究生依靠发表“垃圾论文”,以“论文灌水”等方式蒙混毕业的时代已经一去不复返。一般来说,规定在国内重要学术期刊或在国际SCI检索期刊上发表论文是博士生毕业并取得学位的基本条件之一。这些科研考核指标的制定给软件工程学科的博士研究生培养质量划定了红线。但这一考核体系仍具有“重期刊、轻会议”“唯SCI检索”等特点。笔者认为,这种机械式照搬的考核体系挤压了软件工程学科博士研究生的学术空间。
软件工程是一门知识更新非常迅速的学科,通常情况下,每3~5年就会有一轮知识热点的更新。对软件工程学科而言,国际会议是最新颖、最优秀的论文展现舞台。学者们通过这个学术交流舞台,与国际同行近距离交流最新、最有价值的学术成果,从而达到掌握该领域学术前沿的目的。如果一味地要求软件工程学科博士研究生只能通过发表国内一流学术期刊或者国际SCI期刊作为毕业条件,将导致两方面问题。一方面,SCI国际期刊或者国内一流学术期刊发表周期相对较长,从投稿到出版一般需要1~2年的时间,有些国际顶级期刊则需要2~3年或者更长时间的出版周期。我国软件工程学科博士研究生的学制一般为3-4年,时间窗口有限,致使不少博士研究生放弃从事创新性强但有一定失败风险的科研课题,而愿意选择创新性较低但比较稳妥的科研课题去做,从而确保早日发表期刊论文而尽早获得学位。另一方面,即使软件工程国际一流学术会议可以代表该学科一流的学术水平,但仅发表国际会议论文往往并不能满足软件工程学科博士研究生毕业的基本条件,导致一些博士研究生不愿将最新最好的成果在一流国际会议上发表,而宁可选择一些水平一般的期刊。这种做法显然不利于我国软件工程学科的博士研究生与国际同行们的交流,实际上造成了我国高档次研究成果的流失,对培养优秀的软件工程人才得不偿失。
1.3对工程实践能力的培养重视不够
软件工程学科本质上是一门工程科学,要求学者们运用数学、工程和管理方法去解决软件工程实践中所遇到的人力所无法解决或者很难解决好的问题。因此,软件工程学科与工程实践问题具有高度的结合性。在软件工程领域,除了少数的博士研究生从事基础理论研究外,大部分研究课题是与具体实际相关的产业化问题。这就需要软件工程学科的博士研究生具备较强的工程实践能力,将理论概念转化成为原型系统或者用实证实验验证理论、方法的动手能力。
在实际过程中,一些单位对软件工程学科的博士研究生工程实践能力的培养重视不够。有的博士生在攻读学位期间编写程序的代码行数不超过1000行,有的甚至没有编写过代码;有的博士生导师或博士研究生认为编写程序不是创新性的工作,工程实践是浪费学生或自己的宝贵时间;有的博士生由于在本科及硕士阶段没有打下良好的工程实践基础,导致在攻读博士学位期间其能力不能胜任工程实践。无论出于何种原因,工程实践能力的不足给博士研究生及其所在课题组的科研工作都会带来负面影响。其结果是,博士研究生所提出的方法、理论无法得到工程实践检验,导致科研成果无法落地;另外,缺少原型系统或者实践验证的研究论文也很难在国际高水平会议或者期刊上发表,造成科研工作成为无果之花。
1.4博士生导师指导时间尚显不足
博士生导师对博士生的悉心指导是提高培养质量的关键。相比发达国家,我国软件工程学科博士生导师指导的博士生数量普遍较多,甚至出现一位导师一届招收3-4位博士生的现象。有的博士生导师担任单位的行政职务,因此普遍感觉“日常杂事较多”“工作压力较大”,这些因素从客观上使得博士生导师没有充裕的时间去指导每一位博士生,为数不少的博士生在读期间感到与导师间的交流时间较少。有的博士生反映“长期见不着导师的面”,甚至“一个学期没有和导师单独交流”。这种“放养”现象有悖于对博士研究生的精心指导原则,对提高博士研究生培养质量十分不利。
2.改进措施
2.1构建软件工程学科博士研究生课程体系
软件工程的学科内涵是:“以计算机科学理论和技术以及工程管理原则和方法为基础,研究软件开发、运行和维护的系统性、规范化的方法和技术,或以之为研究对象的学科,其研究对象为软件系统,学科涵盖科学与工程两个方面。”据此,我们建议培养单位应当反思当前软件工程学科博士生课程的知识体系,明确该学科博士研究生所应该掌握的学科基础知识和学科特定的高级知识,构建以数学、计算机科学、系统科学、管理学为基础,以软件需求、软件设计、软件构造、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程方法和工具、软件质量等为架构的软件工程学科博士生课程体系,使之具有鲜明的学科特色,培养真正能在软件工程学科内进行创新性研究的高级专门人才。
2.2鼓励博士研究生向国际一流学术会议投稿
目前,在软件工程学科领域,国际一流学术会议的学术水平已与国际一流学术期刊相当。建议有关主管部门适时修改软件工程学科博士研究生的论文考核体系,不再将“国内一流学术期刊”或者“国际SCI期刊”作为博士研究生论文考核的唯一硬性指标,而将国际一流学术会议论文的发表也纳入可选的硬性指标之一。
博士研究生通过参加国际一流学术会议,不仅可以提高自身的学术水平,而且更能向本学科的权威专家请教和学习。通过参加学术会议,博士研究生还可以提高自身的外文水平,扩大学术交流圈。笔者在澳大利亚昆士兰科技大学(QueenslandUniversit),ofTechnology,QUT)信息系统系访学期间,了解到该系的博士研究生每年均有一次参加所在领域国际一流学术会议的机会,费用可通过博士研究生所在系的培养部门和研究生导师所在课题组协商解决。这种做法是值得借鉴的。
2.3将工程实践能力纳入博士生入学和毕业的考核体系
将实践动手能力纳入博士生入学和毕业的考核体系,有利于培养更高科研素养的软件工程学科博士研究生。譬如,QUT信息系统系的每位博士研究生在攻读学位期间,除了开展理论研究外,还须将自己的理论研究内容通过工程实践实现出软件原型系统。这种做法的益处是:一方面,可促使博士生研究出真正经得起实践检验的高质量科研成果,杜绝了空洞而无实际价值的所谓成果;另一方面,因为博士研究生在各高校院所中实际上已是科研的生力军,由他们动手实践得出的原型系统,对于课题组高质量地完成科研课题也极为有益。
建议将工程实践能力的考查纳入博士生入学考试的评价体系中,对于工程实践能力欠缺的考生,要提前排除;同时建议博士生导师高度重视对博士生工程实践能力的培养,对于不能将形成的理论进行原型系统实现或者进行实证实验的博士研究生,在毕业环节上要严格把关。应当鼓励博士研究生在发表科研论文的同时,申请软件著作权或发明专利,从而形成理论研究紧密联系实际应用的良好培养机制。
2.4建立博士生培养的导师组制度
实行导师组制度不仅可以有效弥补博士生导师由于精力不足无法有效指导博士生的问题,而且还有利于形成知识结构合理、思维方式相互补充的导师指导团队,这对培养博士生的团队精神和发散性思维都十分有利。笔者在QUT访学时,校方给我安排了由三位导师组成的导师组。两位副导师很好地配合了第一导师的工作,整个导师组对我进行了非常有效的指导。其中,第一导师负责访学期间学术研究方向的制定及总体研究方法的确定,主抓研究的方向;两位副导师各负责一部分研究细节的指导,主抓研究的具体工作。通过导师组的指导,使我在访学期间不但在学术上有较大的进步,而且还对国外博士研究生的指导方法有了一定的切身感受。事实上,导师组指导制在英式或美式的博士研究生培养中是很常规的做法。
在博士研究生培养中,建立导师组制度对于多方面利益群体均有益处。第一,对博士研究生而言,可以接受由两(或多)位导师构成的导师组的指导。由导师组构成的更加丰富的知识平台,可以给予博士生更加全面的指导;第二,对博士生导师而言,导师组制度有可能使主导师从指导工作的细节问题中升华出来,而将有限的精力更加聚焦于宏观上的指导和学术方向上的把握;第三,对副导师而言,通过指导博士研究生的研究工作,也可以促进自身学术素养的提高,在丰富学术成果的同时汲取主导师的经验,为未来的学术道路打好基础。与主导师不同的是,副导师一般聚焦于从学术的细节上对博士生给予指导。副导师不一定要求具有高级职称,只要能力具备即可,与博士生的关系更加接近于合作者之间的关系,而与主导师的关系可以定位为助理的关系。
3.结语
软件工程学科博士研究生培养方面所引发的问题,既有应当提请教育主管部门加以研究的共性问题,如我国博士阶段人才培养的目标定位、服务面向等宏观方面的问题,更多的则是各培养单位在实践中所需认真解决的具体问题。
随着“互联网+”时代的到来,互联网的创新成果已经深度融合于软件工程的学术研究与产业实践中,这就预示着我国软件工程学科的博士研究生培养将更加国际化、工程化。教育主管部门和从事软件工程学科教育的实际工作者必须牢记历史责任,认真研究“互联网+”时代下软件工程学科博士研究生培养的理论与实践问题,提出积极的应对措施,使我国软件工程学科博士研究生的培养迈上新的台阶。