刘坤彪
(武汉工业职业技术学院,武汉 430064)
所谓项目驱动教学法,是师生通过共同实施一个完整的“项目”而进行的教学活动。在职业教育中,项目是指以生产一件具体的、具有实际应用价值的产品为任务。由此可见,项目与企业实际生产过程或现实的商业经营活动有直接的关系,并能将某一教学课题的理论知识与实际技能紧密结合起来。
在项目驱动教学模式中,教学关注的重点是学生掌握和应用知识的能力,指导教师的任务是根据学生已有的经验、知识、水平以及企业的实际工程项目来选取恰当的项目,使学生置身于探索知识和职业岗位的情境之中,从根本上将传统课堂的“满堂灌”方式转变为“以学生为主体,教师为主导”的教学模式。
在实施项目驱动教学法之前,必须明确师生的任务和目标,教师的主导作用在于选取、设计、规划、布置、评估和总结工程项目;学生的主体作用在于分析、思考、讨论、开发、演示和总结工程项目。在实训教学中,教师要引导学生根据工程项目的研发过程,采用团队协作和独立工作相结合的方式,组织学生完成整个项目,同时熟悉行业规则和业务流程,学会运用理论知识解决实际问题,尤其要注重培养学生的职业素质。学生要听从教师的指导和协调,充分发挥自身的积极性、主动性,扎扎实实地完成每一个功能模块的设计,要善于变通知识和获取新知识,锻炼与人沟通和协作的能力。下面以面向岗位的职业教育培训为目标,以“Visual Basic程序设计”为课程平台,探讨项目驱动法在教学中的应用。
这一阶段要求教师对分散的知识点进行提炼、归类合并,使之形成一个较完善的知识体系,再从丰富的企业项目资源中选取最具代表性的案例,并根据教学需要分解其功能模块,然后对所选项目的目标、结构、开发步骤和实训方案进行设计,达到项目实战与知识巩固的完美融合。在学生学习了VB的常用控件、程序控制结构和数据库技术后,以此为知识背景,我们设计了一个适用于商品流通类企业的“库存管理信息系统”,其目标是提供商品信息、供应商信息,具备强大的查询、库存管理及不同用户权限管理的功能。根据项目涉及的内容,合理地分解为用户登录、入库管理、存货管理、出库管理、报表管理、系统维护六大子模块。
教师应该在此阶段介绍项目的开发背景、产品目标、开发的软硬件环境、研发团队组织结构及项目验收方式等与行业密切相关的信息。“库存管理信息系统”的开发背景是:中小型流通企业经营的商品种类繁多,业务不断拓展,人工业务管理难以奏效。因而构建信息管理平台便成为企业提高经营管理效率及核心竞争力的首选途径。系统目标是:实现企业商品库存的信息化管理,加快商品的流通速度,有效降低管理费用,并提高企业的市场竞争力。系统的开发环境是:以WindowsXP或Windows 2000/2003为平台,使用Visual Basic 6.0集成开发工具,以SQL Server2000为数据库,使用PhotoShop设计系统界面。为了完成该系统的项目开发,公司组建了一个临时的项目团队,由项目经理、系统分析员、程序编写员、界面设计师和软件测试师构成。项目验收分为内部验收和外部验收两种方式。在项目开发完成后,首先进行内部验收,由软件测试师根据用户需求和项目目标进行验收,内部验收通过后,交给客户,由客户依据需求规格说明书进行验收。
每个小组配备5名成员,具体的角色和职责可以定位如下:
(1)项目经理。对系统进行架构设计,即定义和设计软件的模块化,模块之间的交互,用户界面风格,对外接口方法,创新的设计特性以及业务逻辑处理等。
(2)系统分析员。对要解决的问题进行详细的分析,并对系统进行可行性研究,对用户的要求及现实环境进行调查、了解以确定顾客的需要,从技术、经济和社会方面论证项目的可行性。
(3)程序编写员。将软件的详细设计转换成用程序设计语言描述的程序代码。因此,程序设计语言的技术性能直接关系到程序设计的效能和质量。依软件工程的观点,为特定的软件项目选择程序设计语言时,通常考虑的因素有:项目的应用范围,算法和数据结构的复杂性,软件执行的环境,软件开发人员的知识和能力等。选择一种功能强而又适用的语言,对成功地实现从软件的概念设计到编码的转换,提高软件质量,改善软件的可测试性和可维护性是至关重要的。
(4)界面设计师。通过对软件的人机交互、操作逻辑、界面美观的整体设计,即UI(用户界面)设计,使产品变得美观、个性、易用、易学、人性化等。美观亲和的图形化界面与合理易用的交互方式是界面设计应追求的目标。UI设计包括:人机对话设计,数据输入界面设计,屏幕显示设计,控制界面设计。
(5)软件测试师。对源程序及整个软件开发期间各个阶段所产生的文档进行验证和确认,从中发现程序中错误的、破坏性的过程,以便及时改进,其目的在于检验系统是否满足规定的需求或弄清预期结果与实际结果之间的差别。采用独立测试方式,无论在技术上还是管理上,对提高软件测试的有效性都具有重要意义。
1.计划
对可使用的资源(如软硬件、人力等资源)的成本、效益和开发进度作出估计,制订开发任务的实施计划。
(1)进度安排。为实现企业的信息化管理,企业原有的业务需要重组,系统操作人员需要接受技术培训,以适应业务自动化的信息管理。系统分析员需要在一周内深入了解企业的业务规范与流程,记录用户的需求,同时用户要确认需求分析文档。程序开发团队要在两周内完成系统的设计、编码和测试工作。
(2)投资及效益分析。根据系统的规模及项目的开发周期,公司为项目团队直接支付5万元的工资及各种福利待遇。在项目需求分析、安装和调试阶段的费用支出需要5 000元。项目累计投资5.5万元。客户提供项目资金10万元,因此公司可以获得4.5万元的利润。项目成交后,能为以后开发类似的项目提供资源储备,包括技术和经验的积累。
2.分析
根据需求说明书的要求,建立软件的体系结构,并将整个系统分解成若干个子系统或模块,定义它们之间的接口关系。
(1)系统目标。根据需求分析的描述,该系统实现的目标为:界面设计简洁、友好;操作简单;数据存储安全、可靠;强大的数据综合查询功能;具有灵活的权限设置功能;对用户输入的数据进行有效性的检验。
(2)系统功能结构如图1所示。
图1 企业库存管理系统功能结构图
3.设计
软件设计可以分为概要设计和详细设计两个阶段。概要设计就是用软件结构图表示软件的模块结构。详细设计就是采用结构化程序设计方法对模块的流程、算法、数据结构及数据库进行设计。
(1)软件的体系结构如图2所示。
图2 企业库存管理系统的体系结构图
(2)数据库的逻辑设计。数据库的逻辑设计即对数据的字段、数据类型、字段大小、主关键字、次关键字、不同数据表之间的关系进行设计。
4.编码
要使应用程序的结构和编码风格标准化,使代码易读、易改并减少以后的维护工作量,就有必要使用统一的编码约定。好的编码约定可使源代码严谨、可读性强且意义清楚。本文中的软件程序的编码规范可归纳如下:
(1)命名约定
变量的命名。程序中的变量遵循“前缀+变量含义”表示法,变量的含义为一个或多个英文单词,每个单词的首字母大写。变量前缀为三个小写字母示意的数据类型的缩写,所需添加的前缀遵循微软在MSDN中的建议。全局变量加前缀“g_”如:g_strCon,模块级变量加前缀:“m_”,例如:m_Flag,过程级变量不加前缀。
控件的命名。控件命名一律使用“控件类型缩写+控件用途”的命名方式,书写规则同变量名,如:cmdSure
函数和过程的命名。此处函数包括sub和function,以下这两种过程统称为函数。函数表示的是一个动作,所以它的结构应该是“动词+名词”,动词必须小写,后面的名称首字母大写,如:getMaterialCode,updateGrid。函数命名尽量不要使用缩写,达到“见名知义”的效果。
符号常量的命名。符号常量的命名应该全部大写,使用“_”作为单词间的分隔符,单词尽量使用全名称,定义一个符号常量的语句,如:const PI=3.14159,const MSG_EMPTY_INPUT=“输入为空”。
窗体和模块的命名。窗体命名格式为“Frm前缀+功能名词”,并且单词首字母大写,如:FrmList。模块命名的格式为“Mod前缀+功能名词”,并且单词首字母大写,如ModList。
(2)书写格式约定
定义。定义的代码块应该放在一起,不要在中间定义变量,变量定义的语句应该左端对齐。
缩进。变量声明块不用缩进,实现块中的语句特别是基本的控制结构语句需用Tab键作缩进。缩进示例如下:
语句分行。当一行语句过长时,可使用续行符“_”(一个空格后面跟一个下划线)将长语句分成多行。示例代码如下:
注释。注释是一种非执行语句,它不仅仅是对程序的解释说明,同时还对程序的调用起着非常重要的作用,如利用注释来屏蔽一条语句,当程序再次运行时,可以发现问题或错误。
5.测试
对于软件测试的技术可以从不同角度加以分类。从是否需要运行被测软件的角度,可分为静态测试和动态测试;从测试是否针对系统内部结构的角度,可分为白盒测试和黑盒测试。测试工具的应用可以提高测试的质量和效率,实现测试自动化。测试师使用黑盒测试工具WinRunner和白盒测试CodeReview对本文中的系统进行了测试。
学生以项目小组为单位演示作品,并讲述小组成员协同完成任务的情况,遇到的技术和管理方面的问题,解决问题的思路和方法,总结自己的收获及心得体会。教师根据教学目标检验系统的界面、功能、运行效率以及学生的成果和表现等指标,作出合理的评价,既要肯定学生的成绩,也要对其不足之处给予指正。通过这样一种“学习—实践—反馈”的机制,有效地调动了学生的学习主动性,着力培养了他们独立解决实际问题和团队协作的能力。
实践证明,项目驱动教学法的应用,对于学生而言,学习兴趣浓厚,学习热情高涨,学习目标明确;对于教师而言,它有利于加强理论与实践的联系,为培养技能型高级专门人才提供了绝佳的途径。鉴于此,笔者大力推崇项目驱动教学法在实践性和操作性较强的课程教学中的应用,为高职教育的教学模式创新积累宝贵的经验。
[1]陈紫红.Visual Basic项目开发全程实录[M].北京:清华大学出版社,2008.