葛怀雨
摘要:《Delphi程序设计》是我院软件技术专业学生的选修课程,传统的教学方法不能满足现在企业中的团队合作的需要。模拟教学法则是以学生为主,老师为辅;以企业工作中实际角色分配任务,老师少讲,学生多做,提高学生的综合能力,尤其是职业行动力,该文结合实际教学情况对模拟教学法在Delphi程序设计课程中的应用进行了研究与实践。结果证明,模拟教学法对Delphi程序设计课程的教学具有积极的作用。
关键词:Delphi程序设计;模拟教学法;角色分配
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2014)22-5260-05
Delphi程序设计是我院软件技术专业三年级学生的选修课程,该课程采用面向对象程序设计方法。程序设计是一门概念复杂、抽象、知识面广的课程。每位学生都想着有一天自己的程序能在指缝间源源不断的敲击出来,自己设计的系统能完美运行。然而在真正学习该课程后,开始编写系统程序时,往往无所下手,没有头绪,没有思路,尽管当时努力学习课程,通过考试,但并没有体会到理论联系实际的乐趣,便逐渐使学生失去了编程的兴趣。
Delphi程序设计的前导课程是VB、C程序设计和数据库系统、软件工程。因此学生们已具备软件工程开发思想,编程能力和数据库基础。该课程进一步提高学生的编程能力、分析解决问题的能力及用软件工程的思想和方法设计开发功能较完整的实际应用系统,并提高学生的分工协作、团队合作、口头表达及文字表述能力方面的能力。
1 模拟教学法
如何提高学生的学习积极性,从传统教学法到任务驱动法的教学过程使学生的学习积极性提升上来了,但并不符合当前企业的岗位实际需要。如何既能保证学生的学习兴趣不减,又能使学生更好地理解软件企业的岗位需要,提高协作能力,课程教学过程中设计了一套模拟教学法,也就是模拟企业在软件开发过程中岗位需求的设置,结合高职院校学生的实际学习情况,将模拟教学法应用到Delphi程序设计课程中。模拟教学法结合案例教学法、项目教学法、角色扮演和探索式教学法。将全体成员分成若干小组,采用小组合作,明确分工,演示汇报的方式完成课程教学。
2 实践及过程
2.1角色扮演及职业生涯规划
课程中最先讲解的是角色扮演。软件工程的思想,是针对不同的难度和规模的项目,会有不同的人员配置方案,学生应充分理解这些角色及职责,为自己的职业生涯进行规划,拉近自己与企业的距离,由于课程中学时有限,只选取了部分角色让学生了解、掌握。
部分角色的职责:
1) 项目经理
· 组织项目所需的各项资源
· 设置项目组中的各种角色,并分配好各角色的责任与权限
· 定制项目组内外的沟通计划。(必要时可配置管理要求写项目策划目录中的《项目沟通计划》
2) 需求分析员
· 在项目前期根据《需求调研计划》对客户进行需求调研
· 收集整理客户需求,负责编写《用户需求说明书》
· 代表项目组与用户沟通与项目需求有关的所有事项。
3) 系统设计工程师
· 根据需求分析结果及概要设计规范设计、编制概要设计说明。
· 保证概要设计的科学性、可行性,并与需求分析一致。
· 协助项目经理制定项目开发计划。
· 依照开发计划的要求保证设计进度。
· 参与需求分析、概要设计、详细设计等过程的阶段评审,从是否达到概要设计的角度提出评审意见。
4) 高级软件工程师
· 根据概要设计结果及详细设计规范设计、编制详细设计文档。
· 保证详细设计满足概要设计对功能界定、可靠性、用户界面等各方面的要求。
· 依照开发计划的要求保证设计进度。
· 参与概要设计、详细设计、软件实现等过程的阶段评审,从是否达到详细设计要求的角度提出评审意见。
5) 编码人员
· 根据《系统概要设计说明书》编写《系统详细说明书》。
· 按《系统详细设计说明书》进行代码实现。
· 控制本模块的开发进度。
6) 测试人员
· 独立编写测试计划。
· 独立编写测试用例。
· 协调测试团队内部的工作以及与开发团队之间的工作。
· 完成“执行测试”的工作。
7) 美工
· 负责完成软件设计师安排的功能界面设计。
· 负责对项目整体色彩的调配。
· 向系统分析师提出项目美化的建议。
8) 客户经理
· 在项目实施阶段,跟踪、检查实施人员的工作质量。
· 负责协助用户进行“用户确认测试”和编写《确认测试报告》。
9) 维护人员
· 制订具体项目的质量保证计划及执行。
· 评审的组织。
· 研发流程的执行监督、反馈、数据收集。
依据上述角色介绍,由学生选择角色并制定自己的职业生涯规划,这样可以锻炼学生的语言表达能力,为后期小组演示汇报预演。让学生胜任角色,成功扮演角色,同时要有教师的适当指导、发挥学生的各自特点,使他们适应角色。以下是小组内选择项目经理角色的职业生涯规划:
1) 项目经理:完成不同阶段的任务。
2) 项目经理具备的素质:认真负责的态度;有扎实的技术;协调各部门的能力;项目总体规划能力。
3) 选择职业的原则:择已所爱,择世所需,择己所长。
4) 项目经理的工作职责:
· 所管辖的区域客户进行信息跟踪、分析及报告,并定期进行更新。
· 所管辖的区域客户的产品开发进行项目管理,满足用户需求。
· 经常与客户进行沟通、与客户保持亲密联系,定期走访、了解产品的质量等情况。
5) 项目经理需要了解你所在企业的软件项目技术特点,了解软件项目的售前过程,招标方案;掌握需求分析——概要设计——详细设计——开发进度控制——风险控制——测试流程——现场实施——验收——售后服务等业务。
6) 努力的方向 :项目经理是一个管理者,因此要锻炼自己的组织管理能力,增强自己的团队精神,技术才是硬道理,努力学好专业知识,熟悉自身的IT业务,做一个洞察力很强的人,培养认真负责的态度,拥有扎实的技术,并协调好各部门的能力提高项目总体规划能力。
2.2需求分析阶段
教学第二步,项目选题应该是对知识的深入学习。使用企业真实案例让各小组分别完成。模拟现实工作环境、真实事件,让学生按照工作流程,在工作过程中扮演接近真实身份的角色,从而理解角色的作用、工作内容等,以达到体验真实工作岗位的目的。学生在扮演角色的过程中充分运用所学知识,发挥自己的才能和想象空间,增强对实际问题的预测和处理能力。Delphi程序设计课程中给出企业的真实开发案例,整个开发设计过程应体现软件工程的思想和方法、运用数据库技术和程序开发技术。
需求分析是软件开发过程中至关重要的环节,本阶段的角色扮演者应充分理解用户的实际需要,并写成书面文字,以备后续环节设计及实现。如果本环节需求获取不准确,后期更正将会付出10倍甚至更多的代价来弥补。鉴于学生们无实际工作经验,不知道此环节的重要性,所以从这一阶段开始,就让学生正式进入角色,完成工作。
如何确定用户?采用指导教师为指定题目中的实际用户,题目为:生产许可证申报系统。先给每个小组一定的准备时间,商量获取需求信息的方法,可以是用户面谈,用户调查,从行业标准和规则中提取需求信息。在与用户沟通交流的过程中,尽量提供给学生真实的工作过程环境。以下是需求分析员的实践结果:
根据与用户谈话、调查及从行业标准和规则中提取的信息,要求生产许可证申报系统实现以下几个主要功能:
1) 申报单位申报数据要从手工完成的过程中解放出来,在这里开发完成企业基本资料录入。
2) 由于申报单位要有自身的经济发展,生产的产品会随着社会的需求而增多,申报产品是一个长期需要,所以系统在完成数据的添加、修改、删除功能。
3) 对于申报企业基本信息的变化的处理,如单位地址变更或者法人信息变更系统,在这里要完成资料变更功能。
4) 用户相关信息录入后,根据实际需要递交评审部门全国生产许可证申请书或地方生产许可证申请书,在这里要完成报表打印功能。
5) 为了减轻评审部门数据录入的工作量,在申报系统中申报单位将录入的数据进行上报的功能开发。
它主要能够实现申报数据录入、生产许可证申请书打印、数据转换、数据上报等内容。生产许可证申报系统在实际运行和使用过程中,性能上应能达到:
1) 容量要求:需要系统处理和存储的数据主要有申报单位基本信息、申报产品基本信息、主要技术人员信息、与产品有关的生产设备、原材料、检测仪器信息等,由于采用了关系型数据库Paradox,因此在数据库容量方面足以满足需要。
2) 数据精确度:要按照严格的数据格式输入,否则系统不给予响应处理并提示警告信息。进行查询时要保证查全率,所有相应域包括查询关键词的记录都应能查到。因为申报的数据的记录量会很大。
3) 设计有效的输入方式,方便用户操作,有效减少重复数据输入的工作量,以提高申报数据录入的工作效率
4) 时间特性方面:一般操作的响应时间控制在1~2秒内,对数据转换和打印机的操作也应控制在用户可接受的时间范围内完成。
5) 适应性方面:生产许可证申报和管理系统应满足申报单位和评审部门使用的需求。
6) 人机交互友好性:在用户界面的使用上,应有全新感觉,操作简便,一目了然,视图友好等特点,并用使用习惯性的菜单界面驱动方式,给具体操作用户极大的便利,能单独支持鼠标和键盘,便于用户操作使用。
7) 硬件接口方面,保证申报数据与存储介质之间的数据传输的完整。
8) 软件接口方面,运行于Windows95及更高版本具有Win32 API的操作系统之上。
9) 系统健壮性,正常使用本系统时不应出现错误,若运行时遇到不可恢复的系统错误,也必须保证数据库完好无损。
10) 系统安全性:申报数据数据中许多是涉及到企业机密的商业信息,有效防止与系统无关人员窃取企业的商业机密。
11) 系统可靠性:为了提高系统可靠性,减少系统故障,需尽可能采用模块化、结构化设计。
12) 系统通用性:通用化程度高,适用于所有申报单位使用。
2.3设计阶段
该环节软件开发公司与用户接触较少,属于内部设计开发阶段,主要包括数据库的结构设计,实施及应用程序的总体设计、详细设计、编码和调试等。在设计过程中严格控制工作进度。以下是系统设计工程师和高级软件工程师的部分实践结果:
2.4 代码编写及美工过程
代码实现部分,因工作量大,所以需要小组内成员全体参与,编码能力强的同学可以多写几个功能,代码学的不好的同学,分配做报表或者美工。
2.5 测试阶段
就测试而言,用面向对象开发方法的系统测试与其他方法开发的系统测试没有什么不同,在所有开发系统中都是根据规范说明来验证系统设计的正确性。程序验证应尽可能早地开始。程序测试步骤是从最低层开始,从单元测试、综合测试、到系统测试。单元测试是系统构件的分体测试,将测试好的系统构件接起来看它们之间相互作用的正确性称综合测试,最后是整个系统的测试,包括软件系统所在相关环境的测试。通常综合测试是一种“主攻”活动,在系统开发期是非常关键的。这一阶段应随着连接已开发的每一部分,再看它们的实际工作,这种“主攻”活动在面向对象系统中是一种实质性的、渐渐增长的测试策略。测试活动在早期的开发过程中就应开始。当开始开发时,就可做测试计划。测试计划一般在分析期做,而实际的测试通常等到系统构造后进行。事先根据期望的方法和层次建立测试导向图,然后确定是自动测试还是手工测试,测试计划需反复多次。
测试计划如下:
虽然每位同学都有自己要扮演的角色,但在课程中的每个环节每位学生都必须参与,特别是设计及编码阶段,因为系统要实现的功能很多,所以每位学生都要负责一个或几个模块的设计及代码实现。不能说测试人员光管测试,不参与其他工作。
2.6 评价
观察每位学生在整个学期中的表现,包括学习态度、工作与职业操守、团队合作精神、交流与表达能力、组织协调能力进行职业能力考核。根据课程设计中做出的项目给出项目考核分数此两项为平时成绩占总评成绩的70%,期末考试的技能操作占总评成绩的30%,这样给出学生的总体评价或总评成绩。
模拟教学法应用于Delphi程序设计课程中,是对程序设计课程的改革。该方法既达到实现课程目标,课程的要求,完成了课程内容的目的,又能为学生走上软件项目开发工作的实际岗位做实战准备,让学生扮演不同的角色,体验真实项目开发的过程,场景,让学生对工作岗位有相应的认识和了解。同时模拟教学法也为指导教师合理评价学生的学习过程提供了依据。