基于软件工程的计算机专业学生的毕业设计

文萃集 人气:2.6W

摘要:毕业设计是大学学习生活的最后一个组成部分。着重分析在毕业设计过程中存在的问题,并阐述软件工程的基本思想,以及怎样运用软件工程的理论思想指导计算机专业学生的毕业设计。

基于软件工程的计算机专业学生的毕业设计

关键词:软件工程;毕业设计;软件生命周期;计算机专业

1、引言

毕业设计是理论教育与社会实践相结合的重要体现,是大学生在校期间最后一个比较重要的,培养创新能力、实践能力和创业精神的综合性实践环节。毕业设计的质量也是衡量教学水平与学位资格认证的重要依据,直接关系到毕业学生综合素质的培养和对将来从事各项工作的适应程度。尤其是计算机专业培养学生的目标是具有较强的动手能力,而学生的动手能力在教学中主要通过实践进行培养,所以对于毕业设计这一实践环节来说,其质量的高低直接反映学生动手能力的强和弱,不容忽视。

2、什么是软件工程思想

2.1 软件工程定义的提出

软件工程是一门指导计算机软件系统开发和维护的工程学科,是一门新兴的边缘学科。它也指在软件生产中采用工厂化的方法,采用一系列科学的、现代化的方法技术来开发软件。这种工程化的思想贯穿于软件开发和维护的全过程。

软件工程的基本思想是将整个系统开发过程分为若干阶段,先由系统分析员对软件系统进行分析和设计,并将所得结果按一定的标准整理成规范化的文档资料,然后由程序员按这些文档资料对该系统进行编程和测试,从而完成该系统的开发。同时在整个开发过程中,应向管理人员和用户提供管理和了解开发进程的有效手段,以保证开发工作顺利进行。

2.2 软件生命周期

从用户需求开始,经过开发、交付使用,在使用过程中不断地增补修订,直至软件报废的全过程,称软件生命周期。在整个软件生命周期中,一共可以分为3个阶段,分别是软件定义阶段、软件开发阶段和软件维护阶段。在这3个阶段中又有各自的任务,其中,软件定义阶段的任务有问题定义、可行性研究和需求分析;软件开发阶段的任务有总体设计、详细设计、编码和测试;最后是软件维护阶段。

3、软件工程与毕业设计之间的对应关系

软件工程是指导计算机软件开发和维护的一门工程学科,该学科的目的是生产出能按期交付的、在预算范围内的、满足用户需求的、质量合格的软件产品。整个毕业设计的过程可以看做开发一个大型的软件,要想提高毕业设计的质量,就应该以软件工程的思想作为指导。图1中显示的是软件生命周期的各个阶段和济宁医学院信息工程学院毕业设计各阶段的对应关系,只要严格遵守软件生命周期的各个阶段和其中的原则,就可以很好地改善目前毕业设计过程中出现的若干问题。

 4、学院对毕业设计的要求

近几年,信息工程学院结合自己的实际,要求学生在毕业设计过程中都做结合生产实践的课题,目的是为了培养学生的创新精神和实践能力。但是在指导过程中,发现大部分学生都没有严格按照软件工程的思想进行相应软件的开发,导致许多学生的毕业设计质量较低。根据这种情况,学院特在毕业设计的选题、毕业设计的组织管理程序、指导教师的条件和职责以及毕业设计的评阅、答辩与成绩评定等方面做了比较严格的规定,以确保毕业设计的质量。

 5、计算机专业学生毕业设计中存在的主要问题

5.1 选题不恰当

本院在指导计算机专业学生做毕业设计时,均要求做软件设计类的课题,即生产实践类和社会应用类的题目。但是在实际运行过程中,仍不免存在选题不恰当的问题。1)选题的范围过大,也就是所开发软件要实现的系统模块太多,很多学生只是做了系统的几个页面或者只实现部分模块。

2)选题重复。许多学生对毕业设计的重视程度不够,他们只把毕业设计作为大学生活的一个环节,纯粹地为了完成学业,为了拿到相应的学分而去做毕业设计。这样就导致许多不同指导教师的学生都做同一个题目,并且存在部分内容雷同的现象。3)选题脱离毕业实习。学院规定毕业设计是从大学本科的第七个学期开始的,而与此同时,也对学生进行毕业实习的安排,通过毕业实习,使学生进一步理解和领会所学的基本理论,了解计算机技术的发展及应用,较为系统地掌握计算机操作技能和专业技术,把所学知识与解决实际问题相联系,还可为毕业设计收集必要的资料,做好技术、知识、资料的准备工作。但是仍有部分学生的选题和毕业实习相脱离,选择一些虚拟题目。

5.2 不重视软件定义过程

上述讲到软件周期的问题,在软件定义阶段包括问题定义、可行性研究和需求分析。问题定义阶段必须回答的关键问题是要解决的问题是什么;可行性研究阶段要回答的关键问题是对于上一个阶段所确定的问题有行得通的解决办法吗,也就是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法;需求分析是回答为了解决这个问题,系统必须做什么,主要是确定目标系统必须具备哪些功能。然而在毕业设计的过程中,许多学生往往都直接略去软件定义阶段,没有对所要解决的问题进行实际的定义、研究和分析,直接进入软件开发阶段,而且在开发阶段也将大部分的时间放在编码上。还有一部分学生在软件开发的过程中一味编程,当需要了解需求的时候再去做研究,往往欲速则不达。这也造成毕业设计时间一再拖后,自然而然导致毕业设计质量低下。

5.3 不重视设计过程和测试过程

软件在开发阶段一般要求经过总体设计、详细设计、编码和测试这几个有序的过程。然而在毕业设计中,许多学生在开发阶段跨越前期的设计过程,直接进行编码;或者在整个设计的过程中,没有事先对所要开发的软件做一个详细的规划,往往是想起来哪个部分就做哪个部分,甚至有些部分做了一半就又开始另外一个阶段的'工作,多个阶段同时进行,杂乱无章。这种无序的软件开发只能带来软件结构的混乱、功能代码的重复开发,并导致系统最后可集成性差。还有一部分学生做完编码不进行相应的测试,在答辩过程中运行系统的时候,许多地方都出现不同的错误,甚至程序无法运行,这样也极大地降低了毕业设计的质量。