序论:在您撰写软件工程毕业设计论文时,参考他人的优秀作品可以开阔视野,小编为您整理的1篇范文,希望这些建议能够激发您的创作热情,引导您走向新的创作高度。
在学生的毕业设计中以软件工程的思想为主线,从软件工程的角度去指导学生进行毕业设计,挖掘软件工程在系统开发过程中的价值,解决毕业设计中存在的一些问题,既有助于学生更好地理解软件工程的方法、技术和思想,更有助于提高软件类毕业设计的质量。
1毕业设计中存在的问题
笔者在指导学生软件开发类毕业设计过程中发现,毕业设计存在着选题难、任务重、重视编码、轻过程、项目无法完成等现象。设计过程中没有严格地遵循软件工程的开发方法,没有规范的软件设计过程,项目能否成功主要依赖于个人能力和个人努力,这种不正确的开发方法带来了严重的后果。在项目开发的过程中常常存在以下几个方面问题:
1.1选题的盲目性
选题是毕业设计过程中的一个初始环节,选题恰当是做好毕业设计的前提,但选题不当的情况仍然时有发生。学生没有认识到毕业设计的重要性,纯粹是为了完成学业而做毕业设计,选题没有一个确切的目标,往往是随便选一个题目,造成选题的盲目性,出现了选题陈旧、选题范围狭窄、选题偏大等问题,使学生抄袭、完成不了毕业设计的情况时有发生。
1.2缺少软件的系统分析
软件开发过程的第一个阶段是系统分析,用来确定软件开发要解决的问题是什么?估算完成该项目需要的资源和成本,确定目标系统应该具备哪些功能,主要经历问题的定义、可行性分析和需求分析三个阶段。软件的系统分析确定了用户需求,同时对目标系统提出完整、具体的要求,引导开发者正确地构建系统。因此,对用户需求做出全面、正确的分析,对于最终软件开发类毕业设计的成败起着至关重要的作用。然而在完成毕业设计过程中,学生往往认为代码编写最重要,对软件开发过程中的可行性分析和需求分析阶段不重视,甚至没有系统分析,对整个毕业设计的完成造成了影响。
1.3软件设计过程杂乱无章
1.4开发过程中文档不完备
根据软件工程学的基本原理,软件=程序+文档,可见软件文档是软件开发过程中不可缺少的组成部分。软件文档贯穿于软件开发的各个阶段,是提高软件产品开发效率、规范软件产品开发过程、保证软件产品质量的关键。但在实际毕业设计中,很多同学认为把程序代码编出来了,毕业设计也就完成了,提交的毕业设计论文就是系统代码的复制,即只做出一个可演示可操作的系统,而忽略了软件开发的完整性、系统性。完整的毕业设计不仅包括可操作的系统,还包括在开发系统的过程中所产生的各个文档资料。文档的缺失会降低软件开发的效率、影响整个软件的开发、使用和维护。以上问题的存在,严重影响了毕业设计的进度和质量,没有达到毕业设计的目标要求。针对当前毕业设计的现状和存在不足,笔者认为应用软件工程学的思想指导毕业设计,对促进学生综合素质与工程实践能力培养具有积极意义。
2用软件工程思想指导学生进行毕业设计
2.1以可行性研究指导选题
2.2重视软件的需求分析
需求分析的基本任务是准确地回答“系统必须做什么”,即确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求,不仅指明了系统设计时必须要实现的目标,也是软件设计、实现、测试和维护阶段的主要参考标准。用户需求的获取是软件开发中最重要、难度最大的工作,它贯穿于整个软件设计过程,不仅要涉及到软件开发方面的知识、应用领域方面的知识,还涉及到与用户沟通的能力。在进行需求获取和分析时,为了及时、准确地获取,可采用软件工程中比较成熟的方法,例如访谈、实际调查、UML的用例技术等。需求分析在软件系统分析与设计阶段起着桥梁的作用,确定了系统的需求,才能制定出软件设计的框架,保证毕业设计循序渐进、有条不紊地进行,避免后期开发过程的频繁返工,进而按时完成最终的任务。
2.3规范毕业设计过程
软件开发类毕业设计一般是开发一个软件系统,实现一定的功能。“麻雀虽小,五脏俱全”,无论软件规模的大小、功能的多少,都应该严格按照软件工程中软件生命周期每个阶段的步骤完成各项任务。要培养学生把软件工程的概念贯穿于整个毕业设计过程,也就是说,让学生把开发软件的过程看成是盖一栋大楼,修一条公路的实际工程,用工程化的思想指导毕业设计,确定完成课题的各项任务的工作步骤,注重软件类毕业设计的过程,而不是学生所认为的毕业设计就是编程序,代码调试通过即可。通过工程的概念规范毕业设计过程,让学生明白开发一个软件系统一般经过系统分析、系统设计、系统实施三个阶段,必须严格遵循软件生命周期的规律,完成各个阶段的任务,才能最终提高毕业设计的质量。
2.4重视文档的写作
软件工程中的瀑布模型严格地规定了在整个软件生命周期的各个阶段,都要提交相应的文档。文档不仅记录软件开发过程中的大量信息,在软件的开发、维护过程中也起着重要的作用。在指导学生毕业设计时,要求学生遵照软件工程的思想,把文档作为整个设计的指挥棒,记载设计过程的每一阶段完成的目标、任务及技术手段,建立健全毕业设计文档制度,确保毕业设计过程中的文献综述、译文、任务书、开题报告、选题审题表、中期检查表、设计(论文)正文、答辩记录等各环节教学资料档案完善、规范,实现对毕业设计的全程监控。
3结束语
作者:王晓王长波单位:湖北医药学院公共管理学院计算机教研室
一、利用多方资源做好毕业设计选题与立题工作
恰当的选题是做好毕业设计的必要条件和前提。近年来,随着信息技术高速发展,国家对高素质软件工程人才需求十分旺盛,并有逐年扩大的趋势。同时各个高校软件工程专业的招生数量也在逐年增加,从目前全国319所设有软件工程专业的学校看,2013年该专业平均招生300人左右。专业招生人数的增多给毕业设计选题带来了带来巨大挑战:一方面软件工程专业的毕业设计选题要求具有一定的应用价值、创新性,同时还要与行业需求相吻合;另一方面要保证选题的唯一性,不仅要避免学生之间的题目重复,还要避免与之前毕业生的题目重复,因为重复的选题会使学生产生投机的心理,导致“打酱油”现象。针对上述问题,黑龙江大学软件学院主要采取了以下几个措施:
1.充分利用企业资源
2.充分发挥导师的资源优势
3.充分挖掘学生的专业技术特长和兴趣点并结合学生的择业倾向
确定最能发挥自身优势和潜能的选题。毕业设计的选题不仅要与实际需求相结合,更重要的是应该结合学生自身的技术优势和兴趣。只有学生对选题有兴趣,他们才能尽早地进入状态,发挥自己的创造能力和积极主动意识。所以,选题阶段导师和学生的沟通交流就显得尤为重要,通过沟通导师可以了解学生的能力、兴趣和择业倾向,学生也可以对选题,有进一步的认识,对于不感兴趣的选题学生也可以通过与导师进一步的探讨进行题目的修订。
二、注重环节审查
三、严把答辩关,保证毕业设计质量
作者:任美睿金英郭龙江单位:黑龙江大学
软件过程及评价主观性强软件及开发是个主观性强,知识、劳动密集型工作,同一个项目或任务,由于每个人项目经历、经验的不同,不同的人所得出的满足需求的合格产品是肯定有区别的,但在质量、灵活性、可扩充性方面可能存在很大差别。同时,对于软件产品,不同人会有不同的评价,具有强主观性的特点。这种强主观性使得对毕业设计的评价难以用客观的量化的评价指标和体系进行度量,对教师间把握统一的考核尺度制造了困难。
师生面对面交流机会越来越少由于就业形式的变化,各本科院校的培养模式也作了一定的改变,为了让学生能更方便的外出找工作,更早的接触社会,大部分高校第八学期除了毕业设计,基本上就没有其他的教学任务。重庆理工大学也存在类似情况,在第八学期,大部分学生没有待在学校,有的在外联系工作单位,有的提前到单位实习,甚至有的以在外找工作为借口待在家里,学生的分散性使得教师和学生之间面对面交流的机会少之又少,给毕业设计环节的指导和管理工作带来了难度。
选题类型趋于多样性为了培养学生层次、方向的多样化,软件工程专业的毕业设计不仅只有传统的系统分析、设计与开发类的题目,还涉及论文类及算法类等类别。根据对前几届毕业设计环节的综合统计,系统分析设计开发类选题所占分量最多,占70以上。由于不同题型的毕业设计需要应用的知识、实施过程、考核重点都存在很大差异,不同题型之间的考核没有对比性,因此需要针对不同的选题类型制定相应的考核指标和评价标准。
现有管理中存在的问题
毕业设计是一次综合锻炼学生应用所学知识解决问题能力的过程,涉及的环节比较多,存在的问题也不少[3-4]。综合分析,存在以下三个典型问题:
1历史题目重复率高,抄袭现象难以控制
2学生对考核的公正性存在质疑
由于参与综合实践环节的学生人数和指导教师规模越来越大,综合实践环节在进行质量考核时必然要进行分组。由于大家没有统一的考核指标体系及标准,同一水平的毕业设计处于不同考核小组,可能得出截然不同的成绩;甚至有指导教师认为较好的论文在答辩时被判为不及格现象。造成的严重后果是学生对论文评审、答辩过程公平性的质疑,对学校的声誉带来不良影响。其原因是由于不同教师间、各不同小组之间缺乏一个统一的评判标准,分组的不均匀分布而导致了评审的不公平性。
3学生难以获取实际需求
由于学生人数众多,只有少部分学生能参与到教师的实际科研项目中,大部分学生只能以虚构的题目为背景,没有具体的企业为依托。因此,很获取项目的具体而详细的需求,学生所完成的也只能是一些通用功能的系统,系统业务逻辑比较简单,甚至基本没有业务逻辑,仅仅是简单增加、删除、修改等功能的拼凑,不能真正体会到系统分析和设计的内涵。
软件专业毕业设计管理对策
软件工程专业毕业设计管理是很多高校都比较棘手的问题,也有不少教师已提出了一些很好的策略[5-7]。根据对多年毕业设计执行情况的分析与总结,作者认为软件工程专业毕业设计管理和考核中存在众多问题的主要原因有以下三点:重结果轻过程的考核方法;缺乏统一的考核评价体系;管理过程不规范,随意性大。因此,本文主要从建立量化考核指标体系、规范毕业设计过程管理和其他一些辅助策略进行探讨。
1建立量化考核指标体系
建立量化考核指标体系包括细化考核指标和建立考核评价体系两部分。考核指标体系是一把双刃剑,它除了可以对学生的毕业设计过程和结果进行考核外,也给学生提供了完成毕业设计目标的指导。在实际操作中,将对毕业设计的考核从过程检查、评阅、答辩等几个环节进行考虑,各环节又有细分指标,如论文选题、工作量、分析设计,程序运行、系统界面、论文结构、熟悉程度等,用权重表示指标的重要性程度,每个指标有几个不同得分等级,每个等级对应一个可参考的评判标准,从而将以前的主观考核变为根据指标进行量化计算,有效地减少人为因素对评价的影响。
2规范毕业设计过程管理
传统的考评方式重视对结果的考核,缺少对过程的考核,大多数学生在进行实践环节任务时,没有一个良好的系统分析、设计、开发习惯,完全是“灵感触发”式的完成的,因此最终提交的往往是低劣的文档或代码。软件产品是知识密集性产品,实践证明,有效的过程管理是生产出好产品的一个必要条件。因此,必须规范毕业设计的课程管理,借助于1节建立的考核体系,对过程中的开题、需求文档、设计文档等关键环节进行考核,使学生在完成毕业设计的每一步时有明确目标的指导,通过过程的管理促使学生完成高质量的毕业设计成果。为了减少人为因素的影响,有必要建立毕业设计过程管理及控制系统[8-9],用管理信息系统规范毕业设计的过程管理。
3采用团队培养模式
系统分析与设计的能力是软件工程专业学生需要培养的一项最主要能力,而简单的系统开发或项目由于功能简单、业务单一,对锻炼学生的系统分析和设计能力作用不大。因此,可以采用多名学生组团共同完成一项较复杂系统的方式,每名学生负责其中的一部分,学生之间通过对复杂点的业务逻辑的讨论来提高系统分析和设计的能力,通过团队合作来了解项目管理与软件工程方法的精髓。
4与企业合作指导
由于企业面对的都是实实在在的项目,有自我学习的环境氛围和压力,在培养学生动手实践能力方面有其独特的优势。在企业,每天都有相应的任务,在完成任务过程中,必然会碰到各种类型的问题,会寻求问题的解决方法,在解决问题的过程中很自然地就提升了自己的能力。这种任务驱动的学习方法和实际项目环境下的压力在学校是很难提供的。近些年来,学院也在加强与企业的合作,在有条件的情况下尽量派学生深入到公司、企业进行实习,已签约的学生也可以提前到签约企业工作,以企业的项目来完成其毕业设计环节,实现企业、学校共同指导的方式。
结束语
毕业设计环节由于实践性、综合性强,涉及知识点多,其管理与考核一直是让人头疼的问题。论文描述了重庆理工大学软件工程专业毕业设计环节的背景和现状,指出了软件工程专业毕业设计质量难于管理和考核的特点。通过对近几年毕业设计开展情况的总结与分析,发现了毕业设计质量难于考核和控制的具体原因,并指出当前毕业设计管理和考核所存在的问题,最后提出了解决这些问题的一些具体实施策略。结果表明,策略的实施对毕业设计过程的管理及考核答辩工作有较大的作用,学生毕业设计质量有了显著的提高。
作者:刘智王森闫河单位:重庆理工大学计算机科学与工程学院
二、注重环节审查,加强过程监管
1软件工程在毕业设计中的作用
2毕业设计中存在的问题
2.1选题的盲目性
2.2缺少软件的系统分析
2.3软件设计过程杂乱无章
2.4开发过程中文档不完备
3用软件工程思想指导学生进行毕业设计
3.1以可行性研究指导选题
3.2重视软件的需求分析
3.3规范毕业设计过程
3.4重视文档的写作
4结束语
摘要:针对地方应用型本科高校计算机软件类毕业设计质量不高的问题,对毕业设计中存在的问题进行分析,并结合软件工程的基础理论,提出利用软件工程思想对计算机软件类毕业设计进行指导,以提高地方应用型普通本科高校毕业设计的质量。
关键词:软件工程;毕业设计;应用
一、引言
近几年来,由于学校对毕业设计要求不断提高,学生从选题到设计再到写出毕业设计报告的过程中总存在这样那样的问题,最终有个别同学没有顺利通过毕业设计,没有拿到毕业证和学位证的情况时有发生,并且大多数毕业设计的水平不高,达不到培养学生独立解决问题和提高学生应用能力的目的。因此,如何指导学生做好毕业设计,提高学生毕业设计水平和质量,是地方应用型普通高校面临的一个重要问题。
2.题目相似或重复雷同。学生选题存在浑水摸鱼的思想,在毕业设计选题过程中不是根据自己的兴趣爱好、专业知识学习情况等确定研究选题,而是选择与他人类似或雷同的选题,甚至同一批毕业的许多学生选题一致。比如:“XX管理系统”等,除了可能冠以的系统名称不同之外,其余基本相同。
3.应用价值低。部分学生的选题是当前十分成熟的项目,没有研究的必要;有些选题已经被淘汰,在实际生活和工作中没有多大用途。
(二)毕业设计需求分析阶段现状
通过调查,许多学生选题完成后,没有对自己所做毕业设计选题进行仔细了解、分析,他们认为在毕业设计中最重要的就是编程,其他方面一带而过[2],从而造成毕业设计过程中主题经常进行修改,最终使得整个系统杂乱无章,无法继续进行下去。因此学生在毕业设计的需求分析阶段主要有以下三个方面的问题。
1.选题后未进行实际调查研究,甚至未查找相应的参考文献。
2.需求分析进行得不彻底、不准确,即使选题后查找了参考文献和资料的,也未做充分了解和分析。
3.在需求分析阶段没有写出需求规格说明书或系统分析报告就匆忙进入系统设计阶段,导致随着系统设计的逐步深入,原来确定的需求不能满足毕业设计的需要,正在进行的设计与开始的期望和设想又不相符。
(三)毕业设计系统设计阶段现状
在系统设计阶段,普遍存在以下两个方面问题。
1.由于需求的不明确,在进行系统设计时,修改随意,没有严格按照软件开发的步骤进行。好多学生在进行系统设计时并没有建出相应的功能模型,不管是用例图还是DFD图都没有,而且系统设计过程中功能随意变换,并且各功能模块的层次结构不清晰,使得整个系统的功能模块划分凌乱,不符合软件设计中“高内聚,低耦合”的原则。
2.在软件设计过程中,不先进行概要设计、详细设计和模块设计,没有软件的过程性描述,直接进行编码,存在想到哪里就做到哪里,走到哪儿算哪儿的随意思想[3],当前内容没有做完便开始其他内容,使得整个系统设计杂乱无章。在这样的一种研究状态下,即使完成了设计,效率也非常低下,软件结构混乱,功能实现不完全,降低了软件设计的质量。
(四)毕业设计实现阶段现状
通常把编码和测试统称为实现。在进行软件设计后,就可以根据设计结果来实现,将软件的过程性描述编码,得到计算机可以运行的源代码。在实现阶段主要有以下几方面的问题。
2.测试和调试可有可无。大部分学生在毕业设计的软件编码完成以后,从没有想过进行完整的系统测试,或者只对个别功能进行测试或是随意测试,没有按照测试步骤逐步进行;基本没有单元测试和集成测试,一般只是最终随便输入几个数据简单检测一下,如果有错,修改了就算完了;也没有进行回归测试,没有测试计划,没有想过用什么测试技术来检测某一类型的错识,没有相应的测试用例,也没有测试结果分析。由于学生毕业设计都是一人一题,基本上是一个人完成所有步骤,就算有测试,在测试阶段也是自己进行测试,从心理学的角度来说,自己对自己开发的软件进行测试是不可取的。由于前面阶段的文档不完善,也不重视测试过程,不清楚是否实现了系统最初设计的功能,是否达到相应的性能要求,总以为程序做出来后毕业设计就完成了,使得毕业设计经常在更换运行环境或答辩时发生错误和问题,从而使得设计得不到好评甚至无法通过。
(五)毕业设计应用现状
三、软件工程思想的应用
3.在实践研究环节的应用。根据需求分析(开题阶段)的结果进行软件的概要设计和详细设计,注意在设计过程中要严格按照软件工程对于设计阶段的指导原则来进行设计。将概要设计阶段需求分析得到的DFD转换为软件结构和数据结构,即是根据需求确定软件和数据的总体框架,设计出软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。然后再进行详细设计,设计出每个模块的实现算法、所需的局部数据结构,并且对每个模块写出过程性描述;为每个模块设计出一组测试用例,在进行测试时就以此测试用例来进行测试。详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后将根据这个“蓝图”写出实际的程序代码。因此,指导教师要对学生的设计过程进行监督和指导,防止学生盲目的进行编码。
4.在实现阶段的应用。在编码的过程中,要注意编程风格的把握,编程的风格在很大程度上影响程序的可读性、可测试性和可维护性。在测试阶段,可以进行交叉测试,即学生之间可以两两交叉,相互测试,以更好的达到测试效果,同时也培养了学生的团队意识和合作意识。在测试过程中要注意运用软件工程的测试原则和测试思想,严格按照单元测试集成测试确认测试系统测试验收测试的测试步骤进行,利用白盒测试技术进行单元测试,黑盒测试技术进行其他测试,并且在找出错误并修改后要进行相应的回归测试,确认修改了错误并且没有引入新的错误,这样有利于找到软件中的各类错误,提高软件的质量。因此,在软件的测试过程中,一定要严格按照软件工程中的测试原则来进行,不可随意进行测试,并且要注意测试文档资料的收集整理,要有相应的测试计划和测试报告。对学生的创造性的思维和想法,指导教师要给予支持,积极引导,鼓励学生大胆创新,用应用型人才培养目标来要求学生,保证高质量的毕业设计的完成。
四、结语
作者:龙亚张仕学余廷忠单位:贵州工程应用技术学院
1概述
在应用型本科院校中,尤其是软件工程专业,毕业设计作为教学计划的重要组成部分,是实践教学中的最后一个环节,也是对学生在校期间所学知识的一次综合、全面的总结、应用和提高。由于毕业生数量的不断增加和软件行业的迅猛发展,导致就业门槛越来越高,就业压力也越来越大,通过毕业设计过程中的训练,能有效提高学生的工程应用能力,使学生得到一定的实践经验,有利于学生从学校向工作岗位的平稳过度。因此,毕业设计质量的好坏,不仅反映了一所高校的教学质量,也会直接影响到学生的就业竞争力和就业后的职场适应能力。
2存在的问题
3采取的对策
软件工程是一个实践性很强的专业,软件工程专业的毕业设计作为大学四年学习的总结,是学生从学校跨入社会前仅有的一次大检验,它不仅检验了学生对所学知识的综合应用能力和学生的综合素质,同时也检验了学校的培养模式和教学质量。毕业设计质量的好坏,不仅关系到软件工程专业的培养目标,也关系到学生的就业率与就业质量。因此,在就业形势日趋严峻的情况下,软件工程专业毕业设计的教学改革也要适应就业市场需求,紧跟行业发展变化,与时俱进。
作者:张华单位:南阳理工学院
一、软件工程专业毕业设计存在的主要问题
(一)毕业设计题目设置与选题方面
(二)毕业设计过程监控方面
毕业设计监控工作实施困难,效果较差。软件工程专业毕业设计一般包含选题、开题、中期检查、程序测试、撰写毕业论文、答辩、成绩评定。但对这些环节的监控有时候会形成空白带,毕业设计不在实验室进行,有的学生在实习单位实习,有的学生在外地找工作,老师不能定时与学生见面,老师无法了解学生的具体情况,且学生提交的各阶段文档流于形式,只有指导教师在进行监控,未形成完善的监控体系,导致监控不到位,监控效果较差[3]。
(三)毕业设计论文答辩方面
答辩考核方法单一,答辩仅由学生的讲解和老师的提问两个环节组成,考核准确度低。答辩通过门槛较低,答辩只对学生的毕业设计进行排名,一般排名在最后的学生才可能不及格,不利于提高学生毕业设计积极性,造成大部分同学仅以答辩及格为目标,思想上不重视,答辩准备工作不扎实。再由于软件工程专业特点,毕业设计软件作品评分标准难于量化,考核具有一定难度,也造成答辩效果不好。同时为了提高学生毕业率和就业率,毕业答辩的质量控制有所放松,直接导致了软件工程专业毕业设计质量难以保障。
二、软件工程专业毕业设计的教学改革
(一)合理设置毕业设计题目,动态选题
依照软件工程专业的以市场需求为导向,培养应用型软件工程人才的培养目标,在毕业设计题目设置环节,紧紧围绕工程实际型、创新项目型、竞赛题目型、科研项目型等类型进行题目设置,以适应市场动态需求。同时着力避免在毕业设计题目中设置虚拟型题目、理论研究型题目、综述型题目、分析设计型题目等。在选题过程中,通过毕业设计管理系统(如图1所示)进行多轮双向动态选择,动态调整题目各项技术参数以保证学生能选择一个适合自己能力且能有利于自己以后工作的题目[4]。这样,在选题之后,每个指导老师就可以根据学生不同能力进行分别指导,使不同能力的学生都能够运用其所学知识解决工程实际问题,都能够通过毕业设计增强工程实践能力、工程设计能力与创新能力。近四学年软件工程专业毕业设计各类题目汇总。
(二)毕业设计过程实行三级监控管理机制
学校成立以主管副校长为组长的毕业设计工作领导小组以加强毕业设计宏观调控,学院成立以教学副院长为组长的毕业设计工作领导小组以加强毕业设计协调与监控工作,软件工程专业成立以专业负责人为组长的毕业设计工作小组落实并实施毕业设计各环节具体工作[2]。具体参见下图2。在实现毕业设计过程管理的三级管理机制的同时,为保障毕业设计工作质量,软件工程专业要求所有指导教师必须具有中级以上技术职称或硕士以上学位且有一定工程实践经验,具有较高教学、科研水平和创新能力,师德良好,工作态度认真负责。在每年的毕业设计指导工作开始前都对指导教师进行资格审查,择优任用,且每位教师指导的学生不超过6人,以保证指导教师对学生的充分指导[5]。
(三)毕业设计过程量化考核
(四)在毕业设计过程中进一步提高学生工程能力与创新能力
辽宁工业大学于2011年制定并实施了大学生创新团队机制,建立了大学生创新项目申报机制引导大学生开展创新活动;引导学生每年都参加校级、省级、国家级软件设计大赛等各类各级比赛[8]。随着学校和学院创新教育活动多年持续深入开展,软件工程专业学生的创新与创业活动取得了显著成果。超过1/4的软件工程专业学生能够独立主持创新性项目,并以该项目为原型申报毕业设计题目[9],同时参加省级、国家级计算机竞赛并获得奖项。通过主持校级及省级创新项目既毕业设计题目,学生工程能力、创新能力得到极大锻炼与提高,本专业毕业生就业率与就业质量明显提高。软件工程专业学生主持参加创新项目既毕业设计题目情况见表3。
三、结束语
作者:佟玉军谢文阁王恩喜刘鸿沈姜悦岭工作单位:辽宁工业大学电子与信息工程学院
(一)毕业设计选题现状
2.测试和调试可有可无。大部分学生在毕业设计的软件编码完成以后,从没有想过进行完整的系统测试,或者只对个别功能进行测试或是随意测试,没有按照测试步骤逐步进行;基本没有单元测试和集成测试,一般只是最终随便输入几个数据简单检测一下,如果有错,修改了就算完了;也没有进行回归测试,没有测试计划,没有想过用什么测试技术来检测某一类型的错识,没有相应的测试用例,也没有测试结果分析。由于学生毕业设计都是一人一题,基本上是一个人完成所有步骤,就算有测试,在测试阶段也是自己进行测试,从心理学的角度来说,自己对自己开发的软件进行测试是不可取的。
由于前面阶段的文档不完善,也不重视测试过程,不清楚是否实现了系统最初设计的功能,是否达到相应的性能要求,总以为程序做出来后毕业设计就完成了,使得毕业设计经常在更换运行环境或答辩时发生错误和问题,从而使得设计得不到好评甚至无法通过。
2.开题过程中的应用。在毕业设计的开题过程中,需要明确所选题目的选题依据(包括选择课题的背景、选题研究的理论及实践意义)、选题研究现状(包括目前国内外对本选题的研究情况和有待解决的问题)、研究内容与方法,而这些就是软件工程中需求分析阶段应该做的事情。
4.在实现阶段的应用。在编码的过程中,要注意编程风格的把握,编程的风格在很大程度上影响程序的可读性、可测试性和可维护性。
在测试阶段,可以进行交叉测试,即学生之间可以两两交叉,相互测试,以更好的达到测试效果,同时也培养了学生的团队意识和合作意识。
在测试过程中要注意运用软件工程的测试原则和测试思想,严格按照单元测试集成测试确认测试系统测试验收测试的测试步骤进行,利用白盒测试技术进行单元测试,黑盒测试技术进行其他测试,并且在找出错误并修改后要进行相应的回归测试,确认修改了错误并且没有引入新的错误,这样有利于找到软件中的各类错误,提高软件的质量。因此,在软件的测试过程中,一定要严格按照软件工程中的测试原则来进行,不可随意进行测试,并且要注意测试文档资料的收集整理,要有相应的测试计划和测试报告。对学生的创造性的思维和想法,指导教师要给予支持,积极引导,鼓励学生大胆创新,用应用型人才培养目标来要求学生,保证高质量的毕业设计的完成。
6.在毕业设计实际应用方面的应用。因为学生在整个系统或软件过程中均按软件设计规范准备了文档和进行了完整的系统测试,从而为系统或软件的专利申请提供了充分必要的资料,并为毕业设计的实际应用打下良好的基础。
【摘要】主要分析了毕业设计(论文)的现状,介绍了软件生命周期的各个阶段与毕业设计(论文)各阶段的对应关系、软件生命周期各阶段应完成的任务以及在毕业设计(论文)中应注意的问题。
【关键词】软件工程毕业设计(论文)实践教学
针对上述问题,笔者认为,除了应当从管理角度严格进行过程监控外,还应当使学生通过《软件工程》课程的学习,提高毕业设计的质量。
二、软件生命周期与毕业设计过程的对应关系
软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程称为软件的生命周期。软件生命周期可以划分成若干个时期与阶段,它与毕业设计各个环节的对应关系如图1所示。
三、软件生存周期各阶段应完成的任务
1.可行性研究与计划阶段、需求分析阶段
可行性研究与计划阶段主要完成问题的定义、可行性论证以及初步计划的制定;需求分析阶段主要完成需求调查,进行功能、性能与环境约束分析;编制软件需求规格说明、制定软件系统的确认测试准则和用户手册概要。这两个阶段对应于毕业设计的课题论证、选题、调研、查资料,通过对设计题目的深刻理解,完成开题报告的撰写工作。
2.概要设计阶段和详细设计阶段
概要设计阶段主要完成软件系统总体结构的建立、定义功能模块的接口、设计全局数据库和数据结构、规定设计约束、编制概要设计文档等工作;详细设计阶段主要完成模块详细设计及编制模块的详细规格说明工作。包括模块的详细功能、算法、数据结构和模块间的接口信息等设计,拟定模块测试方案;把模块详细设计的结果汇总,形成模块详细规格说明书。这两个阶段对应于毕业设计的系统设计阶段。
3.实现阶段与组装测试阶段
实现阶段主要完成编码及单元测试工作。根据模块详细规格说明书,将详细设计转化为程序代码、对模块程序进行测试,验证模块功能及接口与详细设计文档的一致性,并形成单元测试报告;组装测试阶段主要完成模块程序组装与测试及组装测试报告的编写。
4.确认测试阶段
该阶段主要完成软件系统测试、确认测试文档编制及软件评审工作。根据软件需求规格说明定义的全部功能和性能要求及软件确认测试准则对软件系统进行总测试;向用户提供以确认测试报告为主的有关文档,包括系统操作手册、源程序清单和项目开发总结报告等;由专家、用户、软件开发人员组成的软件评审小组对软件确认报告、测试结果和软件进行评审,并将得到确认的软件产品交付用户使用。这个阶段主要对应于毕业设计(论文)中的论文评审、结题验收及毕业设计的答辨准备阶段。
5.软件运行与维护阶段
主要进入软件的使用阶段,并完成软件的维护工作。它主要对应于毕业设计中的答辩阶段。
四、毕业设计应注意的几个问题
1.摘要
2.关键词
关键词主要用于论文检索,它是从论文的题名、摘要和正文中选出的,是对表述论文的中心内容有实质意义的词汇,关键词一般以3~5个为宜。
3.结论
结论写作的内容应主要考虑本文研究结果是什么?研究结果说明了什么?对前人有关的看法作了哪些修正、补充、发展、证实或否定?本文研究的不足之处或遗留未予解决的问题以及对解决这些问题的可能的关键点和方向等。结论应该准确、完整、明确、精练。
4.需求分析
在毕业设计中,学生往往不能对所做题目进行充分的调研,需求不明确,随意想象的成分较多。特别是在数据表的建立上,大部分同学随意设置字段的类型,而字段长度基本上采用默认置。而在实际项目开发中,数据项的设置应主要注意以用户的需求和满足系统要求为准,而不应设计冗余的字段;数据的类型要依据实际需求,当某些字段可以是选择某几种类型之一,应考虑哪一种更有利于本系统或哪种更易于用户操作和维护。
5.详细设计
6.软件测试
测试做得不够全面,大部分同学只选择了有效的测试用例,而没有进行无效的测试用例的设计,因此所做的软件BUG较多。
7.团队合作
在毕业设计中,应有意识地锻炼学生们的团队协作精神,因此,在布置毕业设计题目时,应尽量选择规模大一点的题目,然后由4~5名同学共同协作,每人完成一个子题目。这样,可以使学生们分析问题和解决问题的能力、沟通和表达能力得到充分锻炼,为今后的工作奠定基础。
摘要:分析软件工程专业本科毕业设计管理中存在的主要问题,针对软件企业对软件工程专业的人才培养要求,提出软件工程专业本科毕业设计过程管理措施,强调通过建立和完善毕业设计的管理制度,加强毕业设计过程的监控;构建完善的毕业设计管理平台,提高本科毕业设计管理水平;改革毕业论文形式,建立毕业设计过程管理评价体系,提高学生工程实践能力。
关键词:软件工程;本科毕业设计;过程管理
软件学院软件工程专业的设立是国家教育部、国家发展计划委员会为满足国家软件产业发展对人才的迫切需求于2001年批准成立的。重庆大学软件学院是国家首批示范性软件学院之一,其人才培养目标是培养“面向应用、遵循标准、适应团队、把握技术、熟知领域、外语优良”的软件工程人才。10年来,软件学院十分重视软件工程专业的工程化教学改革,采取多项政策和措施促进工程型软件实用人才的培养。本科毕业设计是实现高等学校人才培养目标的重要教学环节,是培养学生创新意识和创新能力的重要手段,是理论学习与社会实践相结合的重要体现。因此,对软件工程专业本科毕业设计进行改革,培养具有工程实践能力的软件实用人才具有重要意义。
1软件企业对软件工程专业培养人才的要求
2目前本科毕业设计管理中存在的问题
1)毕业设计阶段缺乏全过程的管理与监控。
毕业设计全过程的管理与监控不够规范,缺乏专门的组织机构。毕业设计的一些主要环节疏于检查和监督,因此存在影响毕业设计质量的问题,如选题陈旧、重复率高、与软件产业发展需求不适合等。
教师指导水平有限且精力投入不足,同时没有对教师指导工作的有效绩效考核,使得教师对学生的毕业设计不够重视;某些学生由于有就业压力,便将主要精力放在人才市场和各类招聘会上,没有意识到毕业设计的重要性,最后只能通过拼凑和抄袭完成毕业设计。
2)毕业设计阶段缺乏规范化的指导性文件。
3)毕业设计文档资料缺乏有效管理。
3本科毕业设计管理改革措施
1)成立毕业设计管理小组。
为了加强本科毕业设计工作的组织、管理和监督,软件学院专门成立毕业设计管理小组,小组成员由教学副院长、正副系主任及学生助管组成,负责整个毕业设计过程的管理监督工作,包括从选题、审题、任务书下达到开题、中期检查、答辩、成绩评定、推优的全过程。
2)建立和完善毕业设计的管理制度。
为了提高毕业设计质量,毕业设计管理小组根据软件工程专业特点建立学院的具体工作规范和有效的毕业设计管理模式和监控制度,加强毕业设计制度建设,使得从选题、下达任务书到学生的开题报告,从每周汇报、中期检查到设计文档撰写、论文撰写、论文重复率监测、论文评阅及论文答辩,都有切实可行的实施细则及管理规章制度;构建集中管理与跟踪管理、周报提交、外出请假、抄袭检测、讲座出勤等平时成绩评定标准;完善从平时表现、系统设计实现质量、论文或设计文档质量、答辩水平等多方面衡量的客观、公正的综合成绩评定标准和推优程序。在毕业设计全过程管理中,力求做到有章可循及有据可查。
3)多元化的毕业论文形式。
多元化的毕业论文形式有利于培养大学生创新实践能力。根据软件工程专业特点,软件学院对毕业论文形式进行改革。毕业设计形式包括传统方式和新方式,学生可以选择其中一种方式,具体采用哪种方式则由指导老师负责。
为提高学生科技论文写作水平和研究报告的演讲能力,软件学院面向软件工程专业所有应届毕业生,在其毕业设计阶段开设8学时的“科技论文写作规范”“研究报告演讲技巧”讲座,强调科技论文写作的规范性和可读性,锻炼学生演讲研究报告的能力。
4)加强毕业设计过程管理和监控。
毕业设计过程管理和监控面向的对象是学生和教师。软件学院毕业学生做毕业设计有不同情况,如有在校外软件公司做毕业设计的,更多的是在校内做毕业设计,因此需要有相应的不同管理模式。为加强学生培养质量和降低指导教师管理难度,软件学院提供集中管理与跟踪管理方式。
集中管理是指学院设置固定机房和机位并安排助教作为管理人员,由指导教师给学生安排机房,由管理人员负责学生的日常考勤,学生需及时向指导老师汇报学习情况,学生若有事必须请假。跟踪管理主要针对在校外进行毕业设计的学生,要求这类学生完成校外毕业设计申请,由管理小组协助指导教师对校外学生进行跟踪,为这些学生提供及时的毕业设计信息服务。这类学生必须每周与学校指导教师联系,以便教师详细了解并掌握学生毕业设计进度。这种具体的制度和规范,对在校内进行毕业设计和赴外进行毕业设计的学生进行了有效监控。
5)构建完善的毕业设计管理平台。
充分利用计算机技术,构建完善的毕业设计管理平台,提高毕业设计管理水平,使毕业设计管理更加规范化。软件学院在毕业设计过程中使用的管理系统包括:重庆大学本科毕业设计系统、重庆大学网络教学综合系统、重庆大学软件学院软件工程实践教学平台。
重庆大学网络教学综合系统。用于毕业设计的过程管理,主要进行信息、周报收集、校外学生实习申请、过程检查情况公告、问卷调查、学生成果提交和查询等。
重庆大学软件学院软件工程实践教学平台是软件人才培养创新平台,提供实践教学成果展示、实践案例资源库与实践教学管理功能。利用该平台可以举办毕业设计优秀作品展,展示软件学院学生的专业学习水平,激发学生的实践热情,对下一届学生起到示范作用。平台实践案例资源库可为学生提供实践学习参考资源,为教师提供实践教学案例素材。
6)建立毕业设计过程管理评价体系。
建立毕业设计过程管理评价体系,要求所有
一学生和指导老师每周都要将周报提交到EOL(重庆大学网络教学综合平台)平台。毕业设计管理小组每周对毕业设计情况进行检查和监督,并将检查情况告知所有指导老师。指导老师每周提交周报次数与毕业设计指导工作量挂钩;学生考勤情况、周报提交情况、平时检查情况会被记入平时成绩,平时成绩不合格将被取消答辩资格。
软件学院强调学生在毕业设计期间一定要进行软件系统设计和实现,毕业答辩包括系统演示、用PPT讲解毕业设计主要工作、答辩教师提问等多环节,答辩老师根据学生工作量、完成质量、论文或设计文档质量、答辩情况进行评分。学生毕业设计的最终成绩由平时成绩、指导教师成绩、交叉评阅成绩和答辩成绩构成,以保证评分的公平性。
7)加强诚信机制建设
为了提高本科毕业设计质量,加强学术道德和学风建设,营造学术诚信氛围,软件学院使用“大学生论文抄袭检测系统”对本科毕业论文进行防抄袭检测。抽检比例为应届毕业论文的50%,抽检名单由毕业论文管理系统随机抽取。另外,各答辩小组推荐的优秀毕业论文为必检对象。
软件学院制定论文抄袭的认定标准(建议文字复制比不超过25%)和处理办法,对有问题的论文,责成指导教师对检测结果予以认定和说明或督促学生修改,取消被认定抄袭论文学生的答辩资格;对各答辩小组推荐的优秀毕业论文进行,不合格的论文取消优秀。
4结语
培养适应我国软件产业发展的软件工程人才,提高软件工程本科毕业设计质量,毕业设计的改革势在必行。通过2届学生的毕业设计改革证明,建立和完善毕业设计的管理制度,加强毕业设计过程的监控,充分利用毕业设计管理平台,实现多元化的毕业论文形式,建立合理的毕业设计过程管理评价体系,加强诚信机制建设,能极大地促进师生在毕业设计过程中投入热情和精力,提高本科毕业设计管理水平,有效保证毕业设计质量。
摘要:毕业设计是一个十分重要的教学环节,是一个系统工程,应使用工程化的方法、步骤统筹安排以取得良好的效果。软件工程学是指导计算机应用专业软件类学生进行毕业设计的重要工具之一。将毕业生设计过程、文档书写与软件工程学紧密结合起来是提高学生毕业设计论文质量的一个重要途径。结合软件工程的基本知识,通过对软件类学生毕业设计过程存在的常见问题的研究,提出了应用软件工程学去指导学生毕业设计的方法。
关键词:软件工程;毕业设计
0引言
毕业设计是高等院校应届类毕业生在毕业前接受课题型任务,在教师指导下进行科学研究或工程实践并取得成果的过程,是高校实现人才培养目标的综合性实践教学环节,是一次理论与实践相结合的的锻炼机会。如何在新形势下改革毕业设计,提高学生软件类毕业设计的质量,进一步规范毕业设计中的软件开发过程,抓好高校毕业设计这一实践环节,加强对毕业设计过程的管理与监控,切实提高毕业设计的质量,对于软件类学生在毕业设计中实施合适的软件设计具有重的指导意义。
1毕业设计的必要性
高等职业教育应该是以能力为本位、以学生为主体、以实践为导向的教育。毕业设计是高等教育培养学生综合运用所学理论知识和技能解决实际问题能力的重要环节之一,是衡量毕业生是否达到相应学历层次的重要依据。毕业设计将总结专业基础和专业技术的学习成果,锻炼和开发学生的综合运用能力。
通过毕业设计能锻炼学生的能力:
(2)解决具体问题能力。在毕业设计的进行过程中,学生一定会遇到平时在课堂的理论学习中碰不到的困难和挑战,而克服这些困难、解决实际问题的过程就是软件技术和心理素质逐步提高的过程。
(3)团结协作的意识、能力。通过毕业设计这一过程,学生就会产生团结协作的意识和能力。
2软件工程学的基本思想
软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科,包括两方面内容:软件开发技术和软件项目管理。其中,软件开发技术包括软件开发方法学、软件工具和软件工程环境,软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划。
3高职类学生毕业设计现状
毕业设计的主要目的是培养学生综合运用所学的基础理论、基本知识和基本技能,用以分析、解决工程、科研、社会实际问题的能力,使学生得到工程设计方法和科研能力的初步训练。毕业设计中存在的问题主要表现在以下几个方面。
3.1选题的盲目性
只是把毕业设计环节作为大学生活的必经环节,纯粹是为了完成学业而去做毕业设计,造成选题的盲目性、有的选题则是陈旧。
3.2可行性分析与需求分析重视程度不够
绝大多数毕业生在确定了毕业设计的题目后,几乎不进行调查研究工作就立即投入到整个系统的设计中,一旦遇到了与实际不符的地方,又重新返回,对已经做好的设计进行修改。最终导致设计的系统杂乱无章,甚至到了最后只能马马虎虎地仓促交工。
3.3系统开发过程中的文档不够正规,不够完备
完整的设计不仅包括所完成的可操作的系统,一般的操作帮助,还包括在开发系统的过程中所产生的各个文档等一些文字的东西,比如解释清晰、内容全面的数据字典和使用手册也是必不可少的,否则用户会感到使用起来不方便,觉得难于操作。
3.4模糊的评价标准
导致毕业设计质量下降的一个非常重要的原因就是没有建立精确细致的评价体系。
这严重影响了项目的进度和质量,并且使学生没有真正得到必要的锻炼。我们通过对这些问题进行详细深入的分析,提出一个软件过程框架,这个框架主要从需求、测试、集成这3个方面给出工作要点和规范。
4利用软件工程学思想指导学生进行毕业设计
毕业设计本身是个工程,要用工程的方法去处理。从软件工程的角度去指导学生进行毕业设计,在毕业设计过程中,要系统地将所学知识应用于实际问题,按软件工程学思想展开工作。
图1软件生命周期与毕业设计各阶段之间的映射
4.1以可行性研究指导选题目
可行性研究,应该从技术可行性、经济可行性、操作可行性三个方面去研究,在毕业设计题目的选择过程中,应立足于解决实际问题,注重发现问题、分析研究问题和开发创新的能力。选题原则上,可以参考以下几点:①毕业设计的课题应该能使计算机专业所学的理论知识进一步理解并深化,也就是说,毕业设计应尽可能包括多门专业基础课和专业课的综合运用,并且要紧密结合工程实际,以有利于学生的全面训练;②选择难度适中的课题,保证课题的完成质量;③课题要适合于各个模块独立进行,并便于最后统一调试;④课题规模应大小适合,难易程度适中。
4.2需求分析是关键
需求分析的基本任务是准确地回答“系统必须做什么”,也就是对目标系统提出完整、准确、清晰、具体的要求。系统分析员可以通过多种形式来获取用户需求,对用户提出的需求进行分析,以此来确定其中要实现系统的功能。对需求划分优先等级,找出核心需求和重要需求,以保证系统构建的正确性。
在进行软件类毕业设计时,为了保证需求获取的准确性和全面性,可以让项目组的所有学生都参与到用户需求的获取的工作中来,发挥集体的能力,并由指导教师进行最终的确认。
4.3规范设计过程
需求分析完成后的下一个阶段就是系统设计,包括概要设计和详细设计。
详细设计阶段的任务就是深入每个函数内部,以伪代码或注释的形式实现整个函数,设计出程序的详细规格说明。
从系统设计开始,学生要按照软件工程的要求,画出DFD图,对输入、输出数据流进行详细的说明,建立符合软件工程规范的数据字典,根据DFD图设计出模块结构图。
4.4重视文档写作
在毕业设计的过程中,要严格遵照软件文档的思想,记载设计过程的每一阶段完成了哪些设计,下一阶段的任务、目标及技术手段,这样,把文档作为整个设计的指挥棒,使设计有条不紊地进行。
4.5重视测试工作、撰写毕业设计说明书
软件测试工作也是软件开发的重要组成部分。通过实际应用效果和测试数据,毕业设计的成效就可一目了然。
毕业设计说明书的撰写是最后一个阶段,要求学生回顾设计过程,总结劳动成果,这时学生就会对软件开发及必须经历的几个步骤都有更深刻的认识。最后,要求学生对毕业设计进行系统的总结,写出毕业论文。
5加强对学生综合能力的培养
通过实践的练习,不仅能加深对理论的理解,同时也能锻炼运用知识分析问题、解决问题的能力。毕业设计这一实践环节是高等学校培养学生实际能力的主要手段,也是高等教育的重要组成部分。充分、有效地设置软、硬件的毕业设计对学生能力的培养至关重要,可以缩短学校教育与社会流行技术、工具的差距,满足学生毕业后的工作需要。通过毕业设计必须达到培养学生以下方面能力的目的。
5.1工程实践能力
学生能够准确把握选题的逻辑重心和学术思路,能够运用丰富的专业知识进行处理,具有严谨的理论思辨过程,以锻炼毕业生的工程实践能力,使毕业论文具有一定的应用和学术探讨价值。
5.2书写和表达能力
毕业设计论文是毕业设计工作的总结和提高,和做科研开发工作一样,要有严谨求实的科学态度。在毕业设计期间,尽可能多地阅读文献资料是很重要的,毕业设计大多数是技术开发型的,其论文的主体部分应包括:总体设计、模块划分、算法描述、编程模型、数据结构、实现技术、实例测试及性能分析。这些内容根据任务所处的阶段不同,可以有所侧重。
5.3创新能力
提出创新要求后,带领学生认真复习或补学过去没学过、没有学好的课程,并在此基础上结合实际工作中出现的问题孕育出一些新的思路,将毕业设计推上一个新台阶的方式,与为每个人专门分配某一特定的作业来锻炼学生基本技能的方式相比,更能扩展学生的视野,培养创新能力。
5.4协作能力和团队精神
通过集体活动和成员沟通培养成员的团体情感,增强团队的凝聚力。毕业设计将一个学生从入学初到毕业前的软件专业课程的学习内容链接成线,实现了课程的真正衔接,也使学生在毕业前对软件方面所学的知识进行了比较完整的概括与总结,达到了良好的理论联系实际的教学效果。毕业设计弥补了课堂教学的不足,加深了对理论的理解,促使学生深入思考,敢于创新,同时使学生的动手能力、分析和解决问题的能力、书写和表达能力、协作能力等各项能力都得到了培养和提高。
6结束语
软件工程作为软件开发工程化、规范化的具体实施方法,在将其应用到毕业设计中之后,学生在软件设计的文档书写规范化等方面均有了很大的改善与提高。将软件工程应用于毕业设计中不仅仅完成了一门课程从理论到实践的过程,而且将一个学生从入学到毕业前软件专业课程的学习内容链接成线,完成了前导后续课程的真正衔接,也使学生在毕业前对软件方面所学的知识进行了比较完整的概括与总结,因此,软件工程学在计算机专业学生毕业设计中的应用具有重要的现实意义。