



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程思想在毕业设计中的应用探讨王光琼(四川文理学院 计算机科学系,四川 达州 635000) 摘 要毕业设计是一个十分重要的教学环节,是一个系统工程,应使用工程化的方法、步骤统筹安排以取得良好的效果。本文对毕业设计过程中存在的问题进行了分析,探讨了如何运用软件工程的思想来指导毕业设计,从而提高毕业设计的质量。 关键词软件工程;毕业设计;软件生命周期1引言 软件工程是计算机学科中一个年轻并且充满活力的研究领域,其出现的背景和根本目的是利用工程学和经济学的思想来指导软件开发的过程,从而解决软件开发领域日趋严重的软件危机。它包括两方面内容:软件开发技术和软件项目管理。其中,软件开发技术包括软件工程方法学、软件工具和软件工程环境,软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划。毕业设计是大学生在校期间最后一个重要的综合性实践教学环节,这个教学环节着重培养学生综合运用所学知识与解决实际问题的能力,体现专业培养目标和要求。对于计算机专业的学生来说,毕业设计是培养学生动手能力和进行工程技术人员所必须具备的基本素质训练的重要手段,通过毕业设计,培养学生理论联系实际、实事求是的科学态度和严谨求实的工作作风,训练和提高学生方案设计、资料利用、实验研究、理论计算、数据处理、文字表达等方面的能力和技巧。这个环节把握得好,对学生就业有很大的帮助。2软件工程与毕业设计的对应关系 毕业设计本身是个工程,要用工程的方法去处理。软件工程是每个学生都学习过的内容,便于学生应用。在软件工程中,把软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程称为软件生命周期。软件生命周期与毕业设计过程各个阶段有着如图1所示的对应关系。 由图1的对应关系,我们可以把毕业设计环节作为一个大型的软件项目,以软件工程思想为指导思想,在毕业设计的过程中,严格遵守软件工程学的各个原则,就可以很好地解决目前毕业设计中存在的问题,提高毕业设计的质量。 目前许多高校计算机专业学生毕业设计环节存在这样或那样的问题,比较突出的就是没有严格遵循软件工程方法来进行毕业设计。图1 软件生命周期与毕业设计各阶段的映射3毕业设计中存在的问题3.1选题不当 选题恰当是做好毕业设计的前提,但选题不当的情况仍然时有发生,主要表现在两个方面:一是对于毕业设计的重视程度不够。目前多数的大学生没有充分认识到毕业设计的重要性。他们只是把毕业设计环节作为大学生活的必经环节,纯粹的为了完成学业而去做毕业设计。在这种前提下,出现了一题多做,多人做一题的现象。甚至有些学生为了减少精力投入,别人做什么题目,他也做什么题目,其目的就是为了偷工减料,将别人的研究稍作变动就变成自己的“研究成果”。有些学生更加“精明”,干脆几个人做同一题目,其内情也就不言自明了。二是选题没有一个确切的目标。不少同学对毕业设计的含义理解的不够深刻,只是为了作设计而选题,没有一个具体的目标。3.2不重视可行性研究和需求分析 可行性研究阶段的任务不是具体解决某个问题,而是研究问题的范围,探索这个问题是否值得去解决,是否有可行的解决办法,这个阶段应该导出系统的高层逻辑模型。并且在此基础上更准确、更具体地确定工程规模和目标。 需求分析是软件开发的起始部分,也是软件开发中最关键的部分,是准确地回答“系统必须做什么”的问题,对用户需求的理解是否正确直接决定了系统构建的正确性。因此,对用户需求做出全面、正确的分析,对于软件开发的成败起着至关重要的作用。 然而在毕业设计过程中,学生往往认为编程最重要,因此,对软件工程中的可行性研究和需求分析阶段不重视,甚至在软件开发过程中,一边写程序,一边了解需求,程序完成了需求才清楚,这是很危险的。3.3设计过程混乱无序 软件设计一般要求经过从概要设计到详细设计、模块设计,才能进行编码,而在毕业设计中大部分的软件开发跨越了前期的设计过程,直接进行编码;或者在整个设计的过程中,没有一个具体的规划,往往是想起来哪个部分就做哪个部分,甚至有些部分做了一半,就又开始了另外一个阶段的工作,多个阶段同时进行,思路混乱不清。这种无序的软件设计只能带来软件结构的混乱、功能代码的重复开发,并导致系统最后可集成性差。这样,极大地降低了毕业设计的质量。3.4开发过程中文档的不完备 软件工程要求系统开发过程中的文档必须和所开发的软件完全一致,要清楚地说明系统开发到某一阶段时已经做了什么,下一步应该做什么,以及算法的精确描述或出处等,以便毕业设计小组成员之间进行有效的交流。同时这些文档也是备忘录,对系统的维护和更新意义重大,不合格、不完备的文档给开发人员内部的工作交流会带来诸多不便,更严重的是如果没有准确的文档,诸如修改系统中的错误、改进和增添新功能、移植到其他软件环境等这些工作都将非常难做。3.5不重视软件测试工作 软件工程要求系统开发过程中必须要进行测试,通过各种类型的测试使软件达到预定的要求。但在毕业设计过程中,由于多种因素,学生往往不重视测试工作,甚至省略该步骤。4用软件工程思想指导毕业设计 从软件工程的角度去指导学生进行毕业设计,使学生明白在毕业设计过程中,要系统地将所学知识应用于实际问题,按软件工程思想展开工作。4.1以可行性研究指导选题,严把选题关 可行性研究的目的不是解决问题,而是确定问题是否值得去解决。一般来说,至少应该从技术可行性、经济可行性、操作可行性三个方面去研究,必要时还应该从法律、社会效益等更广泛的方面去研究。 毕业设计题目的选择,应立足于解决工程实际问题,注重提高学生发现问题、分析研究问题和开发创新的能力。 在选题原则上,首先,要从本专业的培养目标要求“重基础,强应用”出发,体现本专业基本训练的内容,对于需求分析、系统设计、代码实现、系统调试、系统运行和维护、资料查阅和外文阅读、翻译等内容应综合考虑,使学生得到比较全面的综合训练,并且毕业设计工作要有一定量的编程要求,以保证有明确的工作成果。其次,选题应有独立性和完整性,原则上一个学生一个题目,但当几名学生参加一个课题时,必须明确每个学生应独立完成的任务,保证其主要部分为独立进行的工作,使每个学生都受到较全面的训练。第三,鼓励学生自己到社会、生产企业中寻求研究课题,培养他们自主学习的意识。4.2需求分析是毕业设计的关键 用户需求的获取是软件开发中最重要的工作,也是难度最大的工作。不仅要涉及到软件开发方面的知识、应用领域方面的知识,还涉及到与用户沟通的能力。 在软件开发时,对于需求的获取和分析由系统分析员负责。系统分析员可以通过多种形式来获取用户需求,对用户提出的需求进行分析,以此来确定其中要实现系统的功能。对需求划分优先等级,找出核心需求和重要需求,以保证系统构建的正确性。由于系统分析员和系统程序员对于需求理解的不同,可能会出现程序员完成的系统与需求不一致的情况,容易导致最终开发完成的产品与最初的设计不符。因此在进行系统开发时,我们还需要对某些核心需求进行需求跟踪。需求跟踪是为了保证开发出的软件产品符合用户需求。使用需求跟踪可以随时了解用户需求的实际情况。可以有效避免在产品中遗漏用户需求或程序员即兴增加功能等情况出现。 随着项目的进展,会有一些新的需求产生,也会有一些原来的需求产生变化,这种现象叫做需求变更。对于需求变更首先要进行分类,判断出该变更是不影响总体设计的变更和还是影响总体设计的变更。在进行项目开发时,要尽量避免影响总体设计的变更,因为需要修改系统的构架,重新对系统进行设计和实现,大大延长系统的开发时间和周期。 在进行毕业设计时,系统分析员一般由学生来担任,由于学生自身的能力和经验的限制,不可能把获取用户需求做的十分完善。为了保证需求获取的准确性和全面性,可以让项目组的所有学生都参与到用户需求的获取的工作中来,发挥集体的能力,并由指导教师进行最终确认。4.3规范设计过程 需求分析完成后的下一个阶段就是系统设计,包括概要设计和详细设计。概要设计阶段主要是确定方案,这个阶段要回答的问题是:概括地说,应该如何解决这个问题?在目标和成本间做出选择,选择一个合适自己的方案。然后进行设计软件的结构,确定程序的模块组成以及模块间的软件结构。在实现上可以是确定程序的由哪些函数构成,每个函数的功能及参数,以及函数的调用关系。并根据模块划分及功能完成系统测试用例和系统测试计划。在这个阶段里应该完成的交付物是概要设计说明书和集成测试用例。 详细设计阶段的任务就是深入每个函数内部,以伪代码或注释的形式实现整个函数,但不编写代码,而是设计出程序的详细规格说明。并根据函数语句流向写出每个函数的单元测试用例和单元测试计划。 从系统设计开始,学生要按照软件工程的要求,画出DFD图,对输入、输出数据流进行详细的说明,建立符合软件工程规范的数据字典,根据DFD图设计出模块结构图。4.4重视文档的写作 软件工程要求在整个软件开发过程的每一阶段,都要有相应的文档,用来说明系统开发到该阶段时已经做了什么,下一步应该做什么,以及算法的精确描述或出处等。 在毕业设计的过程中,要严格遵照软件文档的思想,记载设计过程的每一阶段完成了哪些设计,下一阶段的任务、目标及技术手段,这样,把文档作为整个设计的指挥棒,使设计有条不紊地进行。另一方面,文档还可以方便毕业设计小组成员之间进行有效的交流,同时这些文档也是备忘录,对系统的维护和更新意义重大。4.5重视测试工作、撰写毕业设计说明书 软件测试工作也是软件开发的重要组成部分。对于毕业设计来说,实际应用情况和测试数据是不可缺少的。通过实际应用效果和测试数据,毕业设计的成效就可一目了然。 毕业设计主要应该进行三种形式的软件测试:单元测试、集成测试和系统测试。 单元测试由系统程序员自己来完成。系统程序员在完成一个模块编码后。就要对这个模块进行相应的黑盒测试和白盒测试,测试通过后才标志该模块编码完成。单元测试要达到两个目的:首先要验证自己的程序是否完成了相应的功能;另外要对程序的所有的分支进行测试,以确保每个分支是可以正确执行的。 集成测试由系统测试员来负责。系统测试员需要对系统程序员完成的模块进行集成。集成测试的主要目的是把通过了单元测试的程序模块拿来,构造成一个构件或子系统,并对构造好的子系统进行测试,保证新的构件或子系统能够正确执行。 系统测试由系统测试员来负责。系统测试主要用于测试整个系统的整体功能是否正确。是否与当初用户提出的要求相同。经过系统测试的软件才是最终的软件产品。系统测试的作用不光是修正特定的错误,还能够进一步改进软件的质量。 毕业设计说明书的撰写是最后一个阶段,要求学生回顾设计过程,总结劳动成果,这时学生就会对软件开发及必须经历的几个步骤都有更深刻的认识。最后,要求学生对毕业设计进行系统的总结,写出毕业论文。结束语 毕业设计是在校大学生的一个重要的实践环节,是大学期间学习成果的一个重要的检验手段。把毕业设计环节作为一个大型的软件项目,以软件工程思想为指导思想,在毕业设计的过程中,严格遵守软件工程学的各个原则,可以极大的改善目前毕业设计中存在的问题,提高毕业设计的质量。参考文献 1 马冬来,宋 雨,刘海龙. 软件工程思想在高职院校毕业设计中的应用与探索J.河北软件职业技术学院学报,2008(3):28-30 2李国彬,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年民营医院精细化管理食材供应及质量检验执行协议
- 2025年度高校学生宿舍租赁代理服务协议
- 高端商务空间玻璃隔断设计与施工全流程管理合同
- 2025年长三角地区冷链物流运输服务协议修订与补充
- 2025年高端住宅装饰风格设计定制与材料采购一体化服务合同
- 2025生物制药临床试验伦理审查及研究者职责合作协议
- 2025年体育赛事专用教练车队租赁合同书
- 2025城市小产权房交易补充协议及房屋产权争议解决机制
- 2025年北京地区存量房交易安全评估及买卖合同规范范本
- 2025年度上市公司年报审计及财务风险评估合同
- 水工闸门课件
- 水泥生产企业生产安全事故综合应急预案
- 全自动血液细胞分析仪产品技术要求深圳迈瑞
- 找对英语学习方法的第一本书
- 安徽涵丰科技有限公司年产6000吨磷酸酯阻燃剂DOPO、4800吨磷酸酯阻燃剂DOPO衍生品、12000吨副产品盐酸、38000吨聚合氯化铝、20000吨固化剂项目环境影响报告书
- 制造业业务流程
- 《诺丁山》经典台词
- 对铁路机车乘务员规章培训的探讨与实践
- 临床医学实验室 仪器设备一览表格模板
- 《绿色建筑》绿色建筑与建筑节能课件
- 二级生物安全实验室备案登记申请表(模板)
评论
0/150
提交评论