课程设计中软件工程技术的应用
摘要:课程设计是大学生一个重要的实践教学环节,但目前来看课程设计中存在诸多问题,如果用软件工程思想来管理课程设计,将会为此项实践教学环节带来一个全新局面。
关键字:课程设计软件工程
1.前言
课程设计是大学生在校期间一个重要的实践教学环节,这个教学环节着重培养学生运用所学知识与解决实际问题的能力,体现专业培养目标和要求。对于计算机专业的学生来说,课程设计是培养学生动手能力和进行工程技术人员所必须具备的基本素质训练的重要手段。
2.软件工程与课程设计的对应关系
课程设计本身是个工程,要用工程的方法去处理。软件工程是每个学生都学习过的内容,便于学生应用。软件中的生命周期与课程设计过程各个阶段有着如下所示的对应关系。
可行性研究=选题
需求分析和概要设计=分析与调研
详细设计、编码和测试=设计并撰写
运行与维护=设计结果
由对应关系,我们可以把课程设计环节作为一个大型的软件项目,以软件工程思想为指导思想,在课程设计的过程中,严格遵守软件工程学的各个原则,就可以很好地解决目前课程设计中存在的问题,提高课程设计的质量。
3.课程设计中存在的问题
3.1选题不当
选题好坏是做好课程设计的前提,但选题不当的情况仍然时有发生,主要表现在两个方面:一是对于课程设计的重视程度不够,出现一题多做,多人做一题的现象。甚至有些同学,别人做什么题目,他也做什么题目,完美的应用了“拿来主义”。二是选题没有一个确切的目标。不少同学对课程设计的含义理解的不够深刻,只是为了作设计而选题。
3.2不重视可行性研究和需求分析
在课程设计过程中,同学们往往认为编程最重要,对软件工程中的可行性研究和需求分析阶段不重视;甚至在软件开发过程中,一边了解需求,一边写程序,这样做出来的课程设计质量可想而知。
3.3设计过程混乱无序
软件设计一般要求经过从概要设计到详细设计、模块设计,才能进行编码,而在课程设计中大部分的软件开发跨越了前期的设计过程,直接进行编码;或者在整个设计的过程中,没有一个具体的规划,往往是想起来哪个部分就做哪个部分,甚至有些部分做了一半,就又开始了另外一个阶段的工作,多个阶段同时进行,思路混乱不清。这样就大大的降低了课程设计的质量。
3.4开发过程中文档的不完备
软件工程要求系统开发过程中文档必须和所开发的软件完全一致,要清楚地说明系统开发到某一阶段时已经做了什么,下一步应该做什么,以及算法的精确描述或出处等,以便课程设计小组成员之间进行有效的交流。同时这些文档也是备忘录,对系统的维护和更新意义重大,不合格、不完备的文档给开发人员内部的工作交流会带来诸多不便,更严重的是如果没有准确的文档,诸如修改系统中的错误、改进和增添新功能、移植到其他软件环境等这些工作都将非常难做。
3.5不重视软件测试工作
软件工程要求系统开发过程中必须要进行测试,通过各种类型的测试使软件达到预定的要求。但在课程设计过程中,由于多种因素,学生往往不重视测试工作,甚至省略该步骤。
4.用软件工程思想指导课程设计
从软件工程的角度去指导学生进行课程设计,使同学们明白在课程设计过程中,要系统地将所学知识应用于实际问题,按软件工程思想展开工作。
4.1以可行性研究指导选题,严把选题关
可行性研究的目的不是解决问题,而是确定问题是否值得去解决。
在选题原则上,首先,要从本专业的培养目标要求“重基础,强应用”出发,体现本专业基本训练的内容,即要让学生得到比较全面的综合训练,又要保证课程设计有一定量的编程,以明确其工作成果。其次,选题应有独立性和完整性,原则上一个学生一个题目。第三,鼓励同学自己到社会、生产企业中寻求研究课题,培养他们自主学习的意识。
4.2需求分析是课程设计的关键
用户需求的获取是软件开发中最重要的工作,也是难度最大的工作。不仅要涉及到软件开发方面的知识、应用领域方面的知识,还涉及到与用户沟通的能力。
在进行课程设计时,系统分析员一般由学生来担任,由于学生自身的能力和经验的限制,不可能把获取用户需求做的十分完善。为了保证需求获取的准确性和全面性,可以让项目组的所有学生都参与到用户需求的获取的工作中来,发挥集体的能力,并由指导教师进行最终确认。
4.3规范设计过程
概要设计阶段主要是确定方案,这个阶段要回答的问题是:应该如何解决这个问题?在目标和成本间做出选择,选择一个合适自己的方案。
详细设计阶段的任务就是深入每个函数内部,以伪代码或注释的形式实现整个函数,但不编写代码,而是