论文部分内容阅读
摘要 毕业设计是大学学习生活的最后一个组成部分。着重分析在毕业设计过程中存在的问题,并阐述软件工程的基本思想,以及怎样运用软件工程的理论思想指导计算机专业学生的毕业设计。
关键词 软件工程;毕业设计;软件生命周期;计算机专业
中图分类号:G642.477 文献标识码:A 文章编号:1671-489X(2010)12-0030-03
Graduate Design of Undergraduate Students Majored in Computer Science based on Software Engineering//Li Qun, Qu Zhiqiang, Yao Junming
Abstract Graduate design is the last components of university learning life for undergraduate students. The paper focuses on possible problems during the process first. Then basic ideas of software engineering are discussed. At last, we show how to guide the process of graduate design of undergraduate students majored in computer science.
Key words software engineering; graduate design; software life cycle; computer science
Author’s address Information Engineering College, Jining Medical University, Rizhao, Shandong, China 276826
1 引言
畢业设计是理论教育与社会实践相结合的重要体现,是大学生在校期间最后一个比较重要的,培养创新能力、实践能力和创业精神的综合性实践环节。毕业设计的质量也是衡量教学水平与学位资格认证的重要依据,直接关系到毕业学生综合素质的培养和对将来从事各项工作的适应程度。尤其是计算机专业培养学生的目标是具有较强的动手能力,而学生的动手能力在教学中主要通过实践进行培养,所以对于毕业设计这一实践环节来说,其质量的高低直接反映学生动手能力的强和弱,不容忽视。
2 什么是软件工程思想
2.1 软件工程定义的提出
软件工程是一门指导计算机软件系统开发和维护的工程学科,是一门新兴的边缘学科。它也指在软件生产中采用工厂化的方法,采用一系列科学的、现代化的方法技术来开发软件。这种工程化的思想贯穿于软件开发和维护的全过程。软件工程的基本思想是将整个系统开发过程分为若干阶段,先由系统分析员对软件系统进行分析和设计,并将所得结果按一定的标准整理成规范化的文档资料,然后由程序员按这些文档资料对该系统进行编程和测试,从而完成该系统的开发。同时在整个开发过程中,应向管理人员和用户提供管理和了解开发进程的有效手段,以保证开发工作顺利进行。
2.2 软件生命周期
从用户需求开始,经过开发、交付使用,在使用过程中不断地增补修订,直至软件报废的全过程,称软件生命周期。在整个软件生命周期中,一共可以分为3个阶段,分别是软件定义阶段、软件开发阶段和软件维护阶段。在这3个阶段中又有各自的任务,其中,软件定义阶段的任务有问题定义、可行性研究和需求分析;软件开发阶段的任务有总体设计、详细设计、编码和测试;最后是软件维护阶段。
3 软件工程与毕业设计之间的对应关系
软件工程是指导计算机软件开发和维护的一门工程学科,该学科的目的是生产出能按期交付的、在预算范围内的、满足用户需求的、质量合格的软件产品。整个毕业设计的过程可以看做开发一个大型的软件,要想提高毕业设计的质量,就应该以软件工程的思想作为指导。图1中显示的是软件生命周期的各个阶段和济宁医学院信息工程学院毕业设计各阶段的对应关系,只要严格遵守软件生命周期的各个阶段和其中的原则,就可以很好地改善目前毕业设计过程中出现的若干问题。
4 学院对毕业设计的要求
近几年,信息工程学院结合自己的实际,要求学生在毕业设计过程中都做结合生产实践的课题,目的是为了培养学生的创新精神和实践能力。但是在指导过程中,发现大部分学生都没有严格按照软件工程的思想进行相应软件的开发,导致许多学生的毕业设计质量较低。根据这种情况,学院特在毕业设计的选题、毕业设计的组织管理程序、指导教师的条件和职责以及毕业设计的评阅、答辩与成绩评定等方面做了比较严格的规定,以确保毕业设计的质量。
5 计算机专业学生毕业设计中存在的主要问题
5.1 选题不恰当
本院在指导计算机专业学生做毕业设计时,均要求做软件设计类的课题,即生产实践类和社会应用类的题目。但是在实际运行过程中,仍不免存在选题不恰当的问题。1)选题的范围过大,也就是所开发软件要实现的系统模块太多,很多学生只是做了系统的几个页面或者只实现部分模块。2)选题重复。许多学生对毕业设计的重视程度不够,他们只把毕业设计作为大学生活的一个环节,纯粹地为了完成学业,为了拿到相应的学分而去做毕业设计。这样就导致许多不同指导教师的学生都做同一个题目,并且存在部分内容雷同的现象。3)选题脱离毕业实习。学院规定毕业设计是从大学本科的第七个学期开始的,而与此同时,也对学生进行毕业实习的安排,通过毕业实习,使学生进一步理解和领会所学的基本理论,了解计算机技术的发展及应用,较为系统地掌握计算机操作技能和专业技术,把所学知识与解决实际问题相联系,还可为毕业设计收集必要的资料,做好技术、知识、资料的准备工作。但是仍有部分学生的选题和毕业实习相脱离,选择一些虚拟题目。
5.2 不重视软件定义过程
上述讲到软件周期的问题,在软件定义阶段包括问题定义、可行性研究和需求分析。问题定义阶段必须回答的关键问题是“要解决的问题是什么”;可行性研究阶段要回答的关键问题是“对于上一个阶段所确定的问题有行得通的解决办法吗”,也就是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法;需求分析是回答“为了解决这个问题,系统必须做什么”,主要是确定目标系统必须具备哪些功能。然而在毕业设计的过程中,许多学生往往都直接略去软件定义阶段,没有对所要解决的问题进行实际的定义、研究和分析,直接进入软件开发阶段,而且在开发阶段也将大部分的时间放在编码上。还有一部分学生在软件开发的过程中一味编程,当需要了解需求的时候再去做研究,往往欲速则不达。这也造成毕业设计时间一再拖后,自然而然导致毕业设计质量低下。
5.3 不重视设计过程和测试过程
软件在开发阶段一般要求经过总体设计、详细设计、编码和测试这几个有序的过程。然而在毕业设计中,许多学生在开发阶段跨越前期的设计过程,直接进行编码;或者在整个设计的过程中,没有事先对所要开发的软件做一个详细的规划,往往是想起来哪个部分就做哪个部分,甚至有些部分做了一半就又开始另外一个阶段的工作,多个阶段同时进行,杂乱无章。这种无序的软件开发只能带来软件结构的混乱、功能代码的重复开发,并导致系统最后可集成性差。还有一部分学生做完编码不进行相应的测试,在答辩过程中运行系统的时候,许多地方都出现不同的错误,甚至程序无法运行,这样也极大地降低了毕业设计的质量。
5.4 不重视毕业论文的撰写
软件不仅仅是程序,还应该有较完整的文档资料,比如在需求分析阶段应该产生需求规格说明书;在设计阶段应该形成相应的设计规格说明书。有了文档,可以方便不同开发人员之间的信息交流。同时文档也是影响软件可维护性的决定因素,在一些长期使用的大型软件系统中,文档甚至比程序代码更为重要。然而在毕业设计的过程中,相当一部分学生都没有做这方面的工作,当程序运行起来发现错误的時候,不知道要从哪里修改;或者几个人合作一个课题的时候,相互之间没有一个较为全面的文档可以作为参考,交流也就遇到困难,这也是导致毕业设计质量下降的一个原因。
6 运用软件工程思想指导毕业设计
造成以上毕业设计中种种问题的最根本原因是在毕业设计过程中开发理念的失败和开发方法的不恰当。所以为了提高毕业设计的质量,引入软件工程的基本理论思想是十分必要和迫切的。
6.1 以可行性研究为指导进行选题
可行性研究的目的不是解决问题,而是确定问题是否值得去解决。毕业设计题目的选择,应立足于解决工程实际问题,注重提高学生发现问题、分析研究问题和开发创新的能力。
毕业设计题目的选择,首先应根据专业培养目标,力求有利于巩固、深化学生所学知识,有利于培养学生的独立工作能力和创新能力。在满足计算机专业教学基本要求的前提下,还应该使学生得到比较全面的训练,毕业课题的内容应尽量覆盖专业主干课程,有一定的理论意义和现实意义。其次,毕业设计的选题无需范围过大,选题要有一定的难度和深度,并且原则上每生一题或者几人合作完成,然后明确每个人要独立完成的任务,保证所做工作符合毕业设计的要求,同时使每个学生得到较全面的锻炼。再者,鼓励学生将自己的课题和毕业实习结合起来,在实际生活中寻求答案,增强自我学习的能力。
6.2 以需求分析指导毕业设计的开题
需求分析是一个非常重要的过程,它是在可行性研究的基础上,将用户对系统的描述通过开发人员的分析概括,抽象为完整的需求定义,再形成一系列文档的过程,它完成的好坏直接影响后续软件开发的质量。需求分析的过程同时又是一个现实的、目的性很强的工作,其基本任务是准确地回答“系统必须做什么”。选题完成以后,应以需求分析的思想作指导,学生和指导教师之间在规定时间内讨论题意与整个毕业设计的工作计划,明确毕业设计要做什么,然后根据课题要求查阅、收集有关资料并编写相应的设计提纲,包括毕业设计的目的与意义、国内外同类设计的概括综述、毕业设计的内容以及进行毕业设计所用的方法和具体的实施计划。
6.3 以总体设计和详细设计为指导进行实践研究
经过需求分析阶段的工作后,系统必须“做什么”就一目了然了,总体设计的基本目的就是回答“系统应该如何实现”这个问题和设计软件的结构。从这一阶段开始,学生应按照软件工程的要求,画出系统的数据流图,对输入输出数据进行详细的说明,进而设计出模块结构图。如多名学生承担着同一课题,必须让每个学生既参与总体方案论证,又有独立完成的部分。指导教师应该根据模块结构图给每个学生分工,让学生充分认识到软件开发是一个系统工程,是一种集体行为。同时,指导教师还应该明确自己的责任,对不符合要求的设计和不合理的结构提出疑问,并要求学生进行修改。
6.4 重视测试和调试工作,保证毕业设计的质量
目前,软件测试仍然是保证软件可靠性的主要手段,测试阶段的根本任务就是发现并改正软件中的错误,因此,软件测试是软件开发过程中最艰巨最繁重的任务。对于毕业设计来说,实际应用情况和测试数据是必不可少的。通过实际应用效果和相应的测试数据,保证所开发系统的正确运行。当然,在测试过程中,应该以文档的形式编写相应的测试用例。对测试过程中发现的错误及时改正,这就是调试。为了改正错误,首先必须确定错误的准确位置,这是调试过程中最困难的工作,需要慎重周密的思考和推理。有时为了改正错误往往需要修正原来的设计,必须通盘考虑、统筹兼顾,不能“头痛医头,脚痛医脚”,应尽量避免在调试过程中引入新的错误。总之,在毕业设计过程中,指导教师应该着重启发引导,注意发挥学生的主动性和创造性,目的就是保证毕业设计的质量和加强学生解决问题和创新能力的培养。
7 结束语
对计算机专业的学生来说,4年的大学生活好比一个大舞台,而毕业设计可以看做是舞台戏剧的闭幕式。毕业设计质量的高低直接反映一个学生对基本知识和专业知识的掌握程度。因此,将毕业设计看做一个大型的软件项目,有效地将软件工程的思想和方法应用到毕业设计当中去,可以极大地改善毕业设计中存在的一些问题,提高毕业设计的质量,培养出适应社会需求的、具有软件设计和开发能力的计算机专业人才,给学生的大学学习生活画上一个圆满的句号。
参考文献
[1]张海藩.软件工程导论[M].5版.北京:清华大学出版社,2008
[2]张文静,卢海霞,杨捧.软件工程思想在毕业设计环节中的应用[J].河北农业大学学报:农林教育版,2007(4):69-72
[3]王丽颖,徐喜至.关于提高计算机专业毕业设计质量的探讨[J].科技资讯,2009(28):234
关键词 软件工程;毕业设计;软件生命周期;计算机专业
中图分类号:G642.477 文献标识码:A 文章编号:1671-489X(2010)12-0030-03
Graduate Design of Undergraduate Students Majored in Computer Science based on Software Engineering//Li Qun, Qu Zhiqiang, Yao Junming
Abstract Graduate design is the last components of university learning life for undergraduate students. The paper focuses on possible problems during the process first. Then basic ideas of software engineering are discussed. At last, we show how to guide the process of graduate design of undergraduate students majored in computer science.
Key words software engineering; graduate design; software life cycle; computer science
Author’s address Information Engineering College, Jining Medical University, Rizhao, Shandong, China 276826
1 引言
畢业设计是理论教育与社会实践相结合的重要体现,是大学生在校期间最后一个比较重要的,培养创新能力、实践能力和创业精神的综合性实践环节。毕业设计的质量也是衡量教学水平与学位资格认证的重要依据,直接关系到毕业学生综合素质的培养和对将来从事各项工作的适应程度。尤其是计算机专业培养学生的目标是具有较强的动手能力,而学生的动手能力在教学中主要通过实践进行培养,所以对于毕业设计这一实践环节来说,其质量的高低直接反映学生动手能力的强和弱,不容忽视。
2 什么是软件工程思想
2.1 软件工程定义的提出
软件工程是一门指导计算机软件系统开发和维护的工程学科,是一门新兴的边缘学科。它也指在软件生产中采用工厂化的方法,采用一系列科学的、现代化的方法技术来开发软件。这种工程化的思想贯穿于软件开发和维护的全过程。软件工程的基本思想是将整个系统开发过程分为若干阶段,先由系统分析员对软件系统进行分析和设计,并将所得结果按一定的标准整理成规范化的文档资料,然后由程序员按这些文档资料对该系统进行编程和测试,从而完成该系统的开发。同时在整个开发过程中,应向管理人员和用户提供管理和了解开发进程的有效手段,以保证开发工作顺利进行。
2.2 软件生命周期
从用户需求开始,经过开发、交付使用,在使用过程中不断地增补修订,直至软件报废的全过程,称软件生命周期。在整个软件生命周期中,一共可以分为3个阶段,分别是软件定义阶段、软件开发阶段和软件维护阶段。在这3个阶段中又有各自的任务,其中,软件定义阶段的任务有问题定义、可行性研究和需求分析;软件开发阶段的任务有总体设计、详细设计、编码和测试;最后是软件维护阶段。
3 软件工程与毕业设计之间的对应关系
软件工程是指导计算机软件开发和维护的一门工程学科,该学科的目的是生产出能按期交付的、在预算范围内的、满足用户需求的、质量合格的软件产品。整个毕业设计的过程可以看做开发一个大型的软件,要想提高毕业设计的质量,就应该以软件工程的思想作为指导。图1中显示的是软件生命周期的各个阶段和济宁医学院信息工程学院毕业设计各阶段的对应关系,只要严格遵守软件生命周期的各个阶段和其中的原则,就可以很好地改善目前毕业设计过程中出现的若干问题。
4 学院对毕业设计的要求
近几年,信息工程学院结合自己的实际,要求学生在毕业设计过程中都做结合生产实践的课题,目的是为了培养学生的创新精神和实践能力。但是在指导过程中,发现大部分学生都没有严格按照软件工程的思想进行相应软件的开发,导致许多学生的毕业设计质量较低。根据这种情况,学院特在毕业设计的选题、毕业设计的组织管理程序、指导教师的条件和职责以及毕业设计的评阅、答辩与成绩评定等方面做了比较严格的规定,以确保毕业设计的质量。
5 计算机专业学生毕业设计中存在的主要问题
5.1 选题不恰当
本院在指导计算机专业学生做毕业设计时,均要求做软件设计类的课题,即生产实践类和社会应用类的题目。但是在实际运行过程中,仍不免存在选题不恰当的问题。1)选题的范围过大,也就是所开发软件要实现的系统模块太多,很多学生只是做了系统的几个页面或者只实现部分模块。2)选题重复。许多学生对毕业设计的重视程度不够,他们只把毕业设计作为大学生活的一个环节,纯粹地为了完成学业,为了拿到相应的学分而去做毕业设计。这样就导致许多不同指导教师的学生都做同一个题目,并且存在部分内容雷同的现象。3)选题脱离毕业实习。学院规定毕业设计是从大学本科的第七个学期开始的,而与此同时,也对学生进行毕业实习的安排,通过毕业实习,使学生进一步理解和领会所学的基本理论,了解计算机技术的发展及应用,较为系统地掌握计算机操作技能和专业技术,把所学知识与解决实际问题相联系,还可为毕业设计收集必要的资料,做好技术、知识、资料的准备工作。但是仍有部分学生的选题和毕业实习相脱离,选择一些虚拟题目。
5.2 不重视软件定义过程
上述讲到软件周期的问题,在软件定义阶段包括问题定义、可行性研究和需求分析。问题定义阶段必须回答的关键问题是“要解决的问题是什么”;可行性研究阶段要回答的关键问题是“对于上一个阶段所确定的问题有行得通的解决办法吗”,也就是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法;需求分析是回答“为了解决这个问题,系统必须做什么”,主要是确定目标系统必须具备哪些功能。然而在毕业设计的过程中,许多学生往往都直接略去软件定义阶段,没有对所要解决的问题进行实际的定义、研究和分析,直接进入软件开发阶段,而且在开发阶段也将大部分的时间放在编码上。还有一部分学生在软件开发的过程中一味编程,当需要了解需求的时候再去做研究,往往欲速则不达。这也造成毕业设计时间一再拖后,自然而然导致毕业设计质量低下。
5.3 不重视设计过程和测试过程
软件在开发阶段一般要求经过总体设计、详细设计、编码和测试这几个有序的过程。然而在毕业设计中,许多学生在开发阶段跨越前期的设计过程,直接进行编码;或者在整个设计的过程中,没有事先对所要开发的软件做一个详细的规划,往往是想起来哪个部分就做哪个部分,甚至有些部分做了一半就又开始另外一个阶段的工作,多个阶段同时进行,杂乱无章。这种无序的软件开发只能带来软件结构的混乱、功能代码的重复开发,并导致系统最后可集成性差。还有一部分学生做完编码不进行相应的测试,在答辩过程中运行系统的时候,许多地方都出现不同的错误,甚至程序无法运行,这样也极大地降低了毕业设计的质量。
5.4 不重视毕业论文的撰写
软件不仅仅是程序,还应该有较完整的文档资料,比如在需求分析阶段应该产生需求规格说明书;在设计阶段应该形成相应的设计规格说明书。有了文档,可以方便不同开发人员之间的信息交流。同时文档也是影响软件可维护性的决定因素,在一些长期使用的大型软件系统中,文档甚至比程序代码更为重要。然而在毕业设计的过程中,相当一部分学生都没有做这方面的工作,当程序运行起来发现错误的時候,不知道要从哪里修改;或者几个人合作一个课题的时候,相互之间没有一个较为全面的文档可以作为参考,交流也就遇到困难,这也是导致毕业设计质量下降的一个原因。
6 运用软件工程思想指导毕业设计
造成以上毕业设计中种种问题的最根本原因是在毕业设计过程中开发理念的失败和开发方法的不恰当。所以为了提高毕业设计的质量,引入软件工程的基本理论思想是十分必要和迫切的。
6.1 以可行性研究为指导进行选题
可行性研究的目的不是解决问题,而是确定问题是否值得去解决。毕业设计题目的选择,应立足于解决工程实际问题,注重提高学生发现问题、分析研究问题和开发创新的能力。
毕业设计题目的选择,首先应根据专业培养目标,力求有利于巩固、深化学生所学知识,有利于培养学生的独立工作能力和创新能力。在满足计算机专业教学基本要求的前提下,还应该使学生得到比较全面的训练,毕业课题的内容应尽量覆盖专业主干课程,有一定的理论意义和现实意义。其次,毕业设计的选题无需范围过大,选题要有一定的难度和深度,并且原则上每生一题或者几人合作完成,然后明确每个人要独立完成的任务,保证所做工作符合毕业设计的要求,同时使每个学生得到较全面的锻炼。再者,鼓励学生将自己的课题和毕业实习结合起来,在实际生活中寻求答案,增强自我学习的能力。
6.2 以需求分析指导毕业设计的开题
需求分析是一个非常重要的过程,它是在可行性研究的基础上,将用户对系统的描述通过开发人员的分析概括,抽象为完整的需求定义,再形成一系列文档的过程,它完成的好坏直接影响后续软件开发的质量。需求分析的过程同时又是一个现实的、目的性很强的工作,其基本任务是准确地回答“系统必须做什么”。选题完成以后,应以需求分析的思想作指导,学生和指导教师之间在规定时间内讨论题意与整个毕业设计的工作计划,明确毕业设计要做什么,然后根据课题要求查阅、收集有关资料并编写相应的设计提纲,包括毕业设计的目的与意义、国内外同类设计的概括综述、毕业设计的内容以及进行毕业设计所用的方法和具体的实施计划。
6.3 以总体设计和详细设计为指导进行实践研究
经过需求分析阶段的工作后,系统必须“做什么”就一目了然了,总体设计的基本目的就是回答“系统应该如何实现”这个问题和设计软件的结构。从这一阶段开始,学生应按照软件工程的要求,画出系统的数据流图,对输入输出数据进行详细的说明,进而设计出模块结构图。如多名学生承担着同一课题,必须让每个学生既参与总体方案论证,又有独立完成的部分。指导教师应该根据模块结构图给每个学生分工,让学生充分认识到软件开发是一个系统工程,是一种集体行为。同时,指导教师还应该明确自己的责任,对不符合要求的设计和不合理的结构提出疑问,并要求学生进行修改。
6.4 重视测试和调试工作,保证毕业设计的质量
目前,软件测试仍然是保证软件可靠性的主要手段,测试阶段的根本任务就是发现并改正软件中的错误,因此,软件测试是软件开发过程中最艰巨最繁重的任务。对于毕业设计来说,实际应用情况和测试数据是必不可少的。通过实际应用效果和相应的测试数据,保证所开发系统的正确运行。当然,在测试过程中,应该以文档的形式编写相应的测试用例。对测试过程中发现的错误及时改正,这就是调试。为了改正错误,首先必须确定错误的准确位置,这是调试过程中最困难的工作,需要慎重周密的思考和推理。有时为了改正错误往往需要修正原来的设计,必须通盘考虑、统筹兼顾,不能“头痛医头,脚痛医脚”,应尽量避免在调试过程中引入新的错误。总之,在毕业设计过程中,指导教师应该着重启发引导,注意发挥学生的主动性和创造性,目的就是保证毕业设计的质量和加强学生解决问题和创新能力的培养。
7 结束语
对计算机专业的学生来说,4年的大学生活好比一个大舞台,而毕业设计可以看做是舞台戏剧的闭幕式。毕业设计质量的高低直接反映一个学生对基本知识和专业知识的掌握程度。因此,将毕业设计看做一个大型的软件项目,有效地将软件工程的思想和方法应用到毕业设计当中去,可以极大地改善毕业设计中存在的一些问题,提高毕业设计的质量,培养出适应社会需求的、具有软件设计和开发能力的计算机专业人才,给学生的大学学习生活画上一个圆满的句号。
参考文献
[1]张海藩.软件工程导论[M].5版.北京:清华大学出版社,2008
[2]张文静,卢海霞,杨捧.软件工程思想在毕业设计环节中的应用[J].河北农业大学学报:农林教育版,2007(4):69-72
[3]王丽颖,徐喜至.关于提高计算机专业毕业设计质量的探讨[J].科技资讯,2009(28):234