APP下载

软件工程心思想在毕业设计中的应用

2014-07-02郭海凤

计算机教育 2014年8期
关键词:软件工程毕业设计计算机专业

郭海凤

摘要:对学生在毕业设计过程中容易存在的问题进行分析归纳,结合软件工程的基本理论,提出利用软件工程指导学生的毕业设计,主要从选择题目、系统及模块结构设计、模块联合调试、撰写毕业设计说明书等一些关键环节入手,提高学生的综合素质、专业课程综合运用能力与工程实践能力。关键词:计算机专业;软件工程;毕业设计

0 引言

毕业设计是教学过程最后阶段采用的一种总结性的实践教学环节。通过毕业设计,使学生综合应用所学的各种理论知识和技能,进行全面、系统、严格的技术及基本能力练习。毕业设计通过学生深入实践、了解社会、完成毕业设计任务或撰写论文等诸环节,着重培养学生综合分析和解决问题的能力以及独立工作能力、组织管理和社交能力;同时,对学生的思想品德,工作态度及作风等诸方面有很大影响。对于增强事业心和责任感,提高毕业生全面素质具有重要意义。毕业设计是学生在校期间的最后学习和综合训练阶段;是学习深化、拓宽、综合运用所学知识的重要过程;是学生学习、研究与实践成果的全面总结;是学生综合素质与工程实践能力培养效果的全面检验;是实现学生从学校学习到岗位工作的过渡环节;是学生毕业及学位资格认定的重要依据;是衡量高等教育质量和办学效益的重要评价内容。

软件工程(Software Engineering,简称SE)是一门研究用工程化方法构建和维护有效的、实用的、高质量的软件学科。软件工程一直以来都缺乏统一的定义,很多学者、组织机构都分别给出了自己的定义。经过对比,比较合理的定义为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

软件工程中的软件生命周期是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段。学生在毕业设计的过程中,分为选题、开题、实践研究、测试调整等阶段。可以看出学生毕业设计与软件工程中的软件生命周期存在比较一致的对应关系。严格遵守软件工程学的各个原则,就可以很好地解决目前毕业设计中存在的问题,提高毕业设计的质量。

1 计算机专业学生毕业设计现状

1.1 选题的盲目性

学生在态度上虽然很重视,也花费大量的时间精力,但由于选题不当,往往事倍功半。选题中存在的问题主要有3个方面。

1)过于宽泛。

学生的选题要实现的功能太多,在规定时间内不能独立完成,到最后只完成部分功能,或部分模块。

2)重复雷同。

部分学生存在浑水摸鱼的思想,在毕业设计过程中不是根据自己学习情况和研究方向确定研究选题,而是刻意选择与他人类似或雷同的选题,甚至同一批毕业的许多学生选题及毕业论文完全一致。

3)没有应用价值。

部分学生的选题是当前十分成熟的项目,没有研究的必要。有些选题已经被淘汰,在实际中没有用途。

1.2 可行性分析和需求分析不准确

有很多学生在选题时不愿进行项目的可行性分析和需求分析,他们认为在毕业设计过程中最重要的就是编程,其他方面只需要一带而过[4]。学生在确定了毕业设计的题目后,几乎不进行调查研究工作就立即投入到系统的设计中,存在一定的盲目性和不确定性。随着项目开发的不断深入,原来确定的需求不能满足项目的需要,导致开发的软件功能与当初的期望和设想不符,这时只能重新返回,反复进行修改,导致整体系统杂乱无章,无法继续进行。此时,部分学生为了赶进度,就剽窃他人作品或者找人代笔,造成恶劣影响。

1.3 研究阶段分工不明确、思路不清

分工不明确、思路不清是毕业设计中容易犯的错误。一方面,项目组时间安排和人员分工不合理。任务分配时没有考虑到各成员的能力情况,有的成员工作量过大,有的成员工作量过小,有的成员大材小用,有的成员拔苗助长。此外,由于在软件开发过程中缺乏必要和有效的交流,功能模块重复开发或者多个成员开发出的模块很难有机地集成到一起,更有甚者则是最终开发完成后的软件功能与当初的期望和设想不符。在共同进行项目设计的过程中,同组的学生不知如何进行分工,随意划分,导致重复研究,浪费时间和精力。学生在分工阶段总希望自己担负容易出成绩的部分,希望别人分享成果,但自己的研究成果不肯共享。另一方面,在设计过程中,不进行总体设计、详细设计和模块设计,直接进行编码,不制定设计程序和规划,想到哪里就做到哪里,当前内容没有做完便开始其他内容,使得整个研究阶段杂乱无章。在这种状态下,即使完成了研究,效率也非常低,软件结构混乱,功能实现不完全,降低了软件设计的质量和层次。

1.4 测试和调试阶段形同虚设

部分学生毕业设计不完全,总以为程序做出来后毕业设计就完成了,没有想过一个完整的毕业设计还需要在完成设计后进行严格的测试和调试。由于不重视测试和调试的过程,使得软件的错误和缺陷不断,达到无法挽回的境地。部分学生不注重测试和调试阶段对软件文档和数据记录的收集和整理,缺少全面系统的文档和记录,导致不能方便地转让、变更、修正、扩充和使用文档,充分发挥软件产品的效益;不能为后期维护、培训留下完备的资料和及时有效地进行修正工作;不合格、不完善的软件文档和数据记录给设计人员的测试和内部交流带来极大困难,加大了测试和调试阶段的工作量、难度和针对性。

2 软件工程思想的应用

通过对以上存在的问题进行分析,在计算机专业学生毕业设计过程中,必须运用软件工程思想,既节约时间和精力,又可以使毕业设计过程变得系统和完善。

2.1 选题过程中的应用

选题中最重要的是可行性研究,选好题目是进行深入研究的基础,也是写出高质量论文的前提。反之,毕业设计就会做不下去,毕业论文也无从谈起。软件工程学能够很好地指导选题,分别从专业基础、现实意义、纵深度分析等方面进行全面分析,根据各要素的权重进行综合衡量,最终决定取舍。endprint

选题应遵循的原则:

(1)毕业设计的选题,要体现研究价值。一方面,根据本专业所学内容,尽量将选题范围包括在内,从而覆盖课程内容。另一方面,根据专业培养目标,突出知识点的强化和巩固,着眼于学生独立性和创造性的培养。

(2)毕业设计的选题,要体现切口小而深的原则。只有选题小,才能保证学生选题不会发生冲突,对于有些研究课题可以让学生自愿进行组合,同时明确各自的任务。

(3)选题要体现实用性,要方便学生毕业以后的应聘和择业需要,切实体现学生分析问题、解决问题的能力。

(4)选题要方便调试。选题要适合各个功能模块单独运行,方便最后统一的调试。

(5)选题要难度适中。在时间上要控制在10周左右时间能够完成;在难度上,既不能涉及陌生和较难的理论领域,也不能人为降低课程设置水平。

2.2 开题过程中的应用

在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求分析是软件工程中的一个关键过程,在该过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。需求分析阶段的任务是确定软件系统功能。

开题中最重要的是进行需求分析,需求分析是在可行性研究的基础上,将用户对系统的描述通过开发人员的分析概括,抽象为完整的需求定义,再形成一系列文档的过程,它完成的好坏直接影响后续软件开发的质量。开题是在选题基础上进行的,选题是可行性分析,开题则是需求分析。开题过程中需要指导学生大量地阅读国内外资料,同时进行分析研究,了解当前毕业设计的研究进度,明确毕业设计的具体方向,编写相应的毕业设计提纲,解决好设计什么,如何设计的问题。

开题中应把握软件工程原则:(1)明确需求分析是一个动态过程。对于软件系统,不可能一开始就能精确地提出功能和性能要求,只能在不断地探讨和认识中才能逐步明确。(2)需求分析阶段后续影响复杂。问题发现得越早,越容易解决,假设在需求分析阶段发现一个错误,解决它需要用1小时,到设计、编程等后续阶段解决,则要花数倍甚至数十倍的时间。

2.3 实践研究过程中的应用

软件工程学讲到的数据流图(Data FlowDiagram,简称DFD),它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。用DFD指导设计研究,最大的特点就是形式直观,涵盖设计全部过程。

毕业设计实践研究过程是对需求分析的具体化,也是软件工程应用最直观的阶段,要指导学生按照DFD数据流图的要求,明确达到设计要求需要几个步骤,每个步骤达到什么具体的功能,画出流程图,并对每一步骤进行详细的解释和说明,最后设计出DFD数据流图。DFD数据流图要对输入和输出的数据流进行具体和详细的说明,要符合软件工程规范和流程。指导教师要及时进行指导和审查,对于不符合要求的设计和不合理的流程要提出质疑,并让学生立即改正。指导教师严格把关、严格审查,确保DFD数据流图合理、准确。

对于多人合作承担同一毕业设计内容的,要让他们明白总体设计框架和自己承担部分的设计框架。原则上让共同承担某一项目的学生进行沟通协商,明确各自的部分,指导教师最后进行把关,根据各学生的特点和兴趣进行科学、合理的分工,并将分工结果体现到DFD数据流图中。通过模块结构图,使学生充分认识到整个作业过程既是系统工程和集体行动,又需要分工独立完成。

2.4 测试和调试工作过程中的应用.

对已编写完成的软件进行测试、调试是软件设计的一个重要组成部分,通过测试、调试能够发现和改正软件设计中存在的问题。软件测试和调试的工作量非常大,也是专业人员积累经验,提高能力的最直接、最有效、最可靠的途径。在测试和调试过程中,发现问题和改正错误是对所学知识的巩固和重新学习,有利于增强学用结合程度。

测试和调试过程中,应体现软件工程学的思想,有效提高工作效率。第一步发现问题,在测试和调试中要注意保存数据,适时进行分析,归纳出问题的共性,以便在下一步测试和调试过程中提高工作效率。第二步改正程序,这一步不但考验学生的专业能力,而且考验学生的耐心,需要进行周密的思考和论证,保证整个程序的一贯性。对于学生创造性的想法,指导教师要坚持支持和鼓励的态度,积极进行引导,从而保证毕业设计的高质量。

测试和调试过程中,要注意软件文档和软件说明书修改和撰写。软件文档应当在软件开发过程中,根据逻辑流程自然产生。有些学生在软件开发完成后再补写软件文档,这与软件工程的思想截然不符。毕业设计中,要依据软件设计的任务,制定适合的软件文档规范,并以此要求设计人员高质量完成软件开发任务。如果把软件文档规范流于形式,软件文档就不能准确反映软件设计各阶段工作情况,文档修改时就会发现前后不一致;软件说明书是毕业设计的最后阶段,学生通过选题、开题、计划、分工合作、完成单独模块、模块组装调试一系列过程的实践,对软件设计的流程有了比较直观和深刻的了解。软件说明书的撰写要把握3个原则:(1)做到充分重视,不能感觉软件说明书是可有可无的部分,要么草草写成,要么随便抄袭。(2)内容要全面,按照固定格式并结合软件特点进行详细的说明,尤其是软件功能方面,要结合子模块和整体模块分别进行阐述和说明。(3)层次要分明,软件说明书要借鉴软件文档,说明软件各个模块功能和整体功能。

3 结语

计算机专业学生的毕业设计在整个大学生活中极为重要,学生能够完成毕业设计,说明自身在本专业的学习中学用结合紧密,实际动手能力较强,有利于下一步的学习,有利于用人单位的工作。学生在毕业设计中遇到困难,或者毕业设计失败,说明学生本专业的学习是失败的,学生不具备独立进行计算机专业的研究和实践能力。通过毕业设计的过程及方法更加突出了软件工程学对计算机专业学生毕业设计的指导作用。

参考文献:

[1]汪灵,林金辉,龙剑平.理工科大学毕业设计(论文)团队指导法研究与实践[J].成都理工大学学报:社会科学版,2008(4):94-97.

[2]张海藩.软件工程[M].3版.北京:人民邮电出版社,2010.

[3]高超,张自力,李向华.浅谈计算机专业研究生创新能力的培养[J].西南师范大学学报:自然科学版,2013(5):164-169.

[4]姚期智.浅谈计算机科学人才培育[J].计算机教育,2011(11):6-9.

[5]武卫莉.提高大学生毕业设计(论文)教学质量研究[J].实验技术与管理,2012(2):159-161.

(编辑:赵廓)endprint

猜你喜欢

软件工程毕业设计计算机专业
基于土木工程专业认证毕业设计团队指导模式的实践研究
新工科背景下计算机专业创新创业人才培养探究
高职计算机专业教学中融入课程思政的实践路径
中职计算机专业产教融合混合式教学研究与实践
计算机专业中外合作办学中引进课程教学改革研究
高职“四层三环节二抽查”毕业设计质量监控体系的构建与实践①
电子商务专业毕业设计实施与探索
依托工作室的软件工程实践教学研究
基于工程教育认证的《软件工程》课程教学质量建设研究 
关于如何创新和完善计算机软件工程管理的探讨