软件工程课程教学方法的探索
详细内容
一、概要1968年秋,NATO(北约)科技委员会召集近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。会上首次提出软件工程的概念[1]。软件工程是指导计算机软件开发与维护的工程学科;是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理措施和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。虽然软件工程应用了几十年,软件人才依然紧缺,大部分大学毕业生刚毕业缺少项目经验、实用技能和职业素质。用人单位不得不再投资,对刚毕业的大学生进行再培训,IBM公司和M icrosoft公司对新员工的技术培训就是一个很好的例子。
虽然各高等院校意识到这一现象,对软件专业、计算机应用专业都开设有软件工程课程,但是由于软件人才培养的实践性、连贯性、分工协作性,使得在大学环境下培养软件人员的方法、手段上面临着不少困难,具体表现在:软件专业的大学生在校园里缺乏实战项目、大学缺乏软件项目经理、缺乏有实际软件项目开发经验的教员。目前国内《软件工程》教学还是老师讲得多,学生做得少。学生也只是注重具体的编程能力,对于软件开发项目的全局不够重视,团队观念不够强,学生学得不扎实,兴趣不是很高。鉴于本文作者具有国内外软件开发公司的多年工作经验、多个项目的项目经理的工作经验,具有国内外大学的学习、科研经验,具有《软件工程》、《软件开发》、《项目管理》等课程的教学经验,特此介绍《软件工程》课程的教学方法,从理论和实践两个方面促进高校《软件工程》课程的教学改革,目标是充分调动学生学习的积极性、主动性和能动性,培养学生大型软件开发项目的综合能力。
二、教学目标和内容本课程的教学目标是让学生掌握求解软件的基本思想、工具、技术、过程和方法,为从事计算机软件开发、测试与维护奠定良好的基础。从实用的角度讲述软件工程的基本原理、概念和技术,强调软件开发过程的方法研究,使学生掌握软件分析、设计、实现和测试等基本技术以及面向对象分析和设计的基本方法。通过案例研究和实践,实际运用软件工程的原理,掌握软件项目管理和团队开发的基本技能。具体内容包括软件工程与软件过程概念、结构化分析、设计和实现、面向对象的分析、设计和实现、软件项目管理基础、统一建模语言基础等内容。
三、教学方法众所周知,大学本科软件工程及其相关专业的学生,在大学学习期间,对软件开发接触的不是很多,特别是大型的项目,更是时间上和环境上的不允许。因而学生更注重于具体的编程技术而缺乏项目组及其团队精神。为此我们探索对《软件工程》课程的教学进行改革。中心思想是以学生实际情况为基础,以实际项目开发为主线,以企业软件开发过程中的问题为引导,特别是以本人多年的企业软件开发经验为实例,在讲述理论知识的同时,举出软件开发过程中遇到的实际问题,并讲述利用理论知识和其他知识解决问题的方法。为此特别设计若干个实际开发案例。从课程的第一节课开始,就要求学生和实际的开发案例联系起来。随着理论知识的逐步讲解,软件项目的实际开发过程的各个阶段也接着逐步进行。每一个阶段的完成,就是下一个阶段的基础及开始。
最终系统地完成整个软件开发任务。具体来说,就是将课程讲解分成软件需求分析、系统原型建立、系统设计实现、系统测试、和系统总体报告等五个相互关联的软件开发阶段讲解,考核方式也是围绕着这五个阶段,要求学生每个阶段都提交阶段报告,最后现场演示并提交总体开发报告。这样既解决了以往教学上理论讲解和实际软件开发脱节的问题,又解决了对众多学生考评的问题。下面以一个冰酒销售系统为实践案例进行说明:首先,在教学的第一堂课,就提交给学生软件开发案例,即用户(冰酒销售商店老板)自述:“我是一个果园农场主,又是一个冰酒供应商。我向市场上提供不同种类的冰酒。我的客户可能是小商店、超市、批发商、或个人。客户可以通过电话购买冰酒,也可以到我的商店上门买酒。我以前是将每一次客户及购买信息登记到一张卡片上,并计算费用。我还要根据客户不同的要求送货,当然送货费用越远越高。我将所有的卡片放到一个盒子里以便查询。月末我还要对卡片进行统计。随着我的销售量的增加,我发现越来越难于应付了。现在需要用电脑系统来管理。”让学生已开始就有思想准备,就有一个目标,就有一个问题,即如何去完成软件开发任务。然后引导学生要有团《软件工程》课程教学方法的探索(本论文由上海论文网://shlunwen. 整理提供,如需转载,请注明出处或联系我们的客服人员)