APP下载

“软件工程”项目教学改革方案研究

2009-04-13栾好利

计算机教育 2009年4期
关键词:项目导向软件工程

栾好利 杨 政

摘要:本文研究了软件工程课程的教学特点和教学中存在的问题,提出了以软件工程知识体系为基础的课程体系的构建,并针对目前各院校的实践类教学薄弱环节,提出一套解决软件工程实践教学的项目实战方案。

关键词:项目导向;软件工程;实战方案

中图分类号:G642文献标识码:B文章编号:1672-5913(2009)04-0052-02

1教改背景

为了满足当前社会对具有丰富的实际软件项目开发经验人才的需求,许多院校适时地增加软件工程专业或软件工程方向的人才培养。即使对于原有的其他专业本、专科学生也需要增强实战项目训练的深度和广度,以增强学生对专业知识的学习兴趣和能力。目前,国内高校对于该类课程的传统做法是以教师课堂授课为主,学生被动地听课,教学内容一般是重理论而轻实践。即使设立实践课程,学生也只是编写一些规定的文档,其开发方式和手段基本上与软件工程的要求脱节。我们所采用的课程设计、毕业实训、毕业设计等实践类教学环节远远达不到我们的预期效果。究其原因主要有以下两个方面:

第一、软件工程是一门综合应用的学科,其本身的特点决定了它不是完全可以从书本和课堂上学会,理解和实践是非常重要的。学生不可能靠听讲软件工程的基本原理学会开发一个实际的软件,而是在实际的“动手做”和“真正练”中体会和掌握软件工程的思想许多教师本身缺少使用软件工程方法开发一个完整系统的经验,仅限于照本宣科地介绍上些基本原理,不能将当前软件企业的实际案例融入在基本原理的讲解之中,与实际的软件工程实践有明显的差距。

第二、我们在这些实践教学中主要以教师为主体,由指导教师来负责整个实践教学过程的管理和控制。学生只能机械地按照教师的安排完成自己的任务,使得学生认为就是在应付检查或者是为了简单的拿到学分。学生完全不能发挥自己的主观能动性,树立正确的学习目标。在课程设计、实训、毕业设计中学生很难完全自己动起来,更谈不上去从中获取实践经验和提高实践技能为将来的工作打基础。

第三、在实践环节的设计方面,我们完全按照课程来制定实践的活动安排。比如,一般根据当前的理论课程的教学进度,在学期期末或者在中间来设置一周或两周的时间进行课程设计等实践教学。这种制定策略完全脱离的实际工作技能需求,在软件开发中往往更需要整体项目开发能力的运用。而且只有整体项目的展示才能够把独立教学的理论课程揉捏到一起,形成一个实践项目的知识链条。

第四、我们教师往往使用虚拟课题作为课程设计、实训和毕业设计的题目,这样的题目本身就脱离了社会实际。这样的题目基本上不能提供软件开发中所需要的重要技能训练平台。从需求分析开始就让学生无所适从,根本不能把所学的理论知识运用到实践中,更谈不上锻炼系统的分析及设计能力。

2构建先进的课程实践体系

方案一:软件工程工作室模式

以项目研发为主体、项目管理为主线,建立一支软件工程研发小组。由学生对该研发小组进行自我组织和管理,开展实际项目的研发。并且逐步形成一个软件工程领域知识的研究团体,与课堂理论知识形成互补。教师对项目的管理和技术方向及日常知识学习进行指导,为项目的成功完成提供必要的支撑。对于规模较大或实用性较强的项目,教师也同时参与到项目的研发,从协作的角度带动研发小组建立软件工程的开发理念和方法。

执行步骤:

(1)组建团队。公开招聘学习成绩优秀,有兴趣进行软件开发的专业学生进入研发团队。

(2)搭建软硬件环境。合理规划工作室空间,组建小型研发软硬件系统。

(3)制度化建设。建立合理的管理条例,初步形成一套行之有效的团队文化。以软件工程国家标准为基础,结合团队的自身情况建立项目研发标准和规范。

(4)确立项目及开发。虚拟一个软件项目,深入开展调研。组织研发小组进行以工程化为原则进行软件开发,在工作中不断学习和完善。

(5)规模扩大,为方案二的执行做准备。

方案二:公司化项目实战管理模式

校内建立虚拟软件公司,教师进入公司担任高级管理职务(CEO、技术总监、资深顾问、部门经理)。学生组建项目开发团队、培训中心、测试中心、质量控制中心、项目管理中心。

执行步骤:

(1)制定公司人员招聘、录用方案。根据不同的职位制定招聘条件,激励学生对理论课程的学习兴趣。指导学生根据自己的兴趣、个人条件、就业方向等方面有目的的培养自身的专业素养。使学生由被动的、教师灌输式的学习变为根据职业需求主动的、吸取式的学习。

(2)建立运行及奖惩制度。以实践学分和实践课程成绩作为员工的工资报酬,对每名员工由上级主管、团队成员、工作业绩考核(参与项目考核)进行评价。从企业的评价角度来考核,让学生认识到什么才是企业所需要和看重的。从评价中塑造学生的学习观、职业观、价值观。

(3)承接实际项目。定位中小企业,建立合作关系。在公司成立初期,甚至可以免费为小型公司、企业单位开发软件系统、办公系统、网站。客户负责提供调研条件、业务需求、评价、二次开发等方面的支持。学生从中可以得到职业素养的锻炼和提高,特别是在实际调研时与客户的沟通能力。收集业务数据资料,对客户业务流进行深入认识和提炼形成业务需求。根据调研记录进行整理形成报告。

(4)项目启动及实施。高级管理人员、项目经理、部门负责人进行项目论证,进行项目开发任务拆分。完全按照企业模式,由学生担任项目经理、软件工程师、测试工程师、项目管理人员。为了确保项目的成功运行,由教师担任技术总监、资深顾问随时监控、指导项目的运行和管、理。在此完全形成了以学生主导、教师引导的项目开发模式。学生在这种模式中不是按照教师的要求去完成自己作业式的任务,而是完全要按照软件工程的原则来工作。培养学生认识企业化的工作需求、管理模式和任务提交规格,利用课堂上所学的理论知识融合项目所需的实际技术能力进行自主的知识到生产的转化。

(5)实践教学与实际项目的有机结合。采用部分带动整体的实践教学模式,引导部分学生的实践教学环节有效的进入实际项目的任务活动中。对于某一门课程的实践教学不是僵硬的规定固定的时间,而是融合在项目开发过程中的某一环节。也就是说在某一项目开发过程中可能结合若干门课程的实践教学活动。这种新的模式能增强知识的有效性和扩展性,让课堂所学的理论知识在实践中真正的流动起来。

3项目教学和实践探索式学习

软件工程的理论和方法是从众多软件开发实践中总结出来的,但是对于缺乏软件开发实际经验的学生来说,单纯地讲授理论知识往往使学生感到枯燥无味且难以理解。因此,我们收集和总结了一套完整的项目研发体系,将整个项目贯穿于理论知识的讲解中,使学生真正理解这

些理论知识,建立软件开发的系统化与工程化观念和质量意识。

(1)从分析项目开发中的挫折入手,例如需求分析失误、软件设计缺陷、客户沟通问题等,深入剖析导致软件失败的根本原因,从而引出软件开发的工程化发展方向,即以软件工程的原理和方法为指导,严格遵循软件过程规范和步骤。通过这些实例的分析,学生们逐渐改变软件开发等于编写程序代码的错误观念,开始认识到软件工程的重要性,有利于培养工程化的意识和观念。

(2)软件过程是软件工程课程中的一个重要内容,但是对于开发经验有限的学生来说,很难在头脑中将软件过程的抽象模型与实际开发联系起来,容易产生枯燥乏味的感觉。在教学过程中,我们从软件开发的实际案例中的软件系统,结合这些系统的特点和开发策略,讲解开发过程模型,学生在思考、分析和讨论过程中更好地理解和体会软件过程的基本概念,有利于在实际开发中运用这些过程模型组织开发过程。

(3)在软件项目管理方面,我们总结一些企业的最佳实践案例,诸如东软公司的人员组织与项目管理,使学生了解软件项目管理中人员、产品、过程和项目之间的关系,认识到项目管理在成本、人员、进度、质量、风险等方面活动的重要性,有利于学生在实际项目中开展团队协作和项目沟通活动。

(4)在软件工程技术方面,我们结合企业信息系统、教学管理系统、电力负荷预测系统等实际项目,论述需求工程、软件体系结构设计、用户界面设计、详细设计、软件测试和软件演化等内容,重点引入项目开发流程的开发思想及各个环节的技术手段。

在整个教学过程中,也应注重引入探索式学习策略,引导学生通过文献查阅以及与软件企业人员的接触交流,真正体会当前软件工程业界的真实案例和最佳实践。在常规的课堂教学之外,初期首先选择“方案一”建立软件工程工作室,利用有限的教学资源快速组建软件项目开发团队。教师利用“虚拟实战项目”引导学生进入项目研发情境,形成规范的项目研发标准。结合理论课程教学,针对实战项目进行需求性学习,构建一种“工作式”的学习模式。该方案实施后,学生对理论课的学习兴趣增强,提高了理论联系实际的能力。执行“方案二”后,彻底改变原有的实践教学模式。以“真实项目”为核心,从管理到技术方面广泛模拟公司化运作模式,让学生尽早转变角色。这种“真刀真枪”的实战模式极大的刺激学生的学习主动性,提高了学生的职业素养,丰富了学生的工作经验。

4结束语

软件开发是一个抽象和复杂的过程,不仅包含许多工程化的原则和方法,而且结合多种技术。在理论课教学中对于这样系列性、综合性、理论性很强的课程群,必须配合系统的、真实的、多角度的实践教学体系。“企业化项目实战”方案能够让学生进入一种企业级实战情境,进行多角度综合软件研发体系的深入学习。

猜你喜欢

项目导向软件工程
基于项目导向的创业管理学教学模式探讨
基于《证券投资实务》课程的项目导向教学改革思考
翻转课堂在项目导向课程中的应用
依托工作室的软件工程实践教学研究
应用瀑布模型的MOOC制作方法
融合APTECH体系的软件产业人才培养探究
基于“项目导向”的税法实践教学体系研究
基于工程教育认证的《软件工程》课程教学质量建设研究 
关于如何创新和完善计算机软件工程管理的探讨
项目导向教学法在岩土工程勘察课程中的应用