软件项目实训及课程设计指导——如何进行项目分组和明确开发人员角色分工原则
1、项目组中的各个角色成员构建和分配的基本原则
由于在同一班级中不同的学生在学习的能力、技术的熟练程度和软件应用系统项目开发方面的接触深度都是有差别的,这是客观存在的现象,必须要面对。因此,在项目实训及课程设计的教学活动中为了能够让不同层次的学生在此活动中都能够有所收获,课程设计的指导教师应该合理地进行项目开发小组的分组和项目开发小组内各个开发人员角色成员的合理分配。
这也就要求指导教师对每个学生的技术水平和能力都应该有所了解,才有可能达到“各尽所能、各负其职和各有所获”和“合适的学生干合适的事情”的培养效果——当然,课程设计的指导教师可以提前通过测试或者摸底了解每个学生的个性和技术能力。作者建议项目组内各个角色成员构建和分配的基本原则应该是:
1) 各尽所能、各有所获——不同层次和不同技术能力的学生都能够获得锻炼、提升;
2)互相帮助、共同进步——课程设计的教学目标应该是提升学生的整体技能;
3)相互交流、团结协作——增强团队合作、协作开发的意识。
2、每个项目组的人员角色分配及职责说明
(1)项目组长人员角色(1人)
项目组长人员角色其实是模拟软件系统开发中的项目经理的角色,其主要的职责为本组项目的进度控制、组内各个成员的任务安排、制定小组各成员的学习计划,评价项目组内各个成员的工作状态,并与课程设计的指导教师共同保证课程设计中的项目顺利地完成和定时汇报本小组在项目开发过程中的开发进度。
当然,项目组长应该委任为有管理意识的学生来承担、并记录开发过程中所发生的各种事件(比如人员出勤和工作状态)和所遇到的非技术方面的问题,辅助课程设计的指导教师管理好本项目小组。
下图为作者曾经指导过的某高校软件学院04级本科生某个项目组提交的日志记录文件的截图——如果没有对开发“过程”的把控,怎么可能有好的开发“结果”?该项目组的组长应该是尽责尽力的!
(2)技术总工人员角色(1人)
技术总工人员角色主要是模拟项目开发中的系统架构师和设计师的角色,其主要的职责是完成课程设计中指导教师分配的项目的需求获取、需求分析和系统设计,并与课程设计的指导教师共同把控项目中切实可行的技术水准和解决在项目开发实现过程中有关的技术难题,并对项目组内成员进行一定的技术辅导。
当然,技术总工的角色应该委任为学习成绩比较好的学生来承担,并记录开发过程中所碰到的技术难题,能够自己独立查找相关的资料并引导项目小组中的各个成员独立地解决自己所遇到的各种技术问题。下图为作者指导某高校软件学院的研究生的J2EE课程设计的部分项目组的技术总工角色的同学提交的需求文档的截图。
(3)项目功能实现的编码人员角色(3人)
项目功能实现的编码人员角色主要是按照设计人员的设计要求分别完成系统持久层、业务服务层、控制调度层中的各个功能类代码的编程实现。并服从项目组长的管理和调配、实现技术总工的系统设计目标。由于后期的编码实现的工作量比较多,因此需要分配多位学生承担。下图为作者指导某高校软件学院05级本科生的J2EE系统架构课程设计中某个项目组提交的项目功能实现代码文件及目录的截图片段。
(4)界面开发及集成测试人员(1人)
界面开发及集成测试人员负责C/S架构下的应用程序图形用户界面GUI或B/S架构下的Web页面的开发,也同时兼任本项目组的系统功能测试和性能测试等方面的工作。下图为作者指导某高校软件学院05级本科生的课程设计中某个项目组提交的网上商城系统的界面原型局部截图。
3、对项目组中各个角色人员的基本要求及考查点
(1)项目组长
应该有比较好的工作协调能力和管理意识,技术方面可以比技术总工弱点;其课程设计的培养目标是增强项目的管理意识和提高组织协调的能力。
(2)技术总工
对Java及J2EE平台轻量级架构开发中所涉及各个方面技术比较熟悉和了解,能够独立地解决所遇到的相关问题和有良好的自学能力;其课程设计的培养目标是提高系统架构和系统设计方面的能力。当然,项目组长和技术总工两位同学应该要充分交流、沟通,并帮助项目小组内的编码和界面开发人员提高其技术水准,但不需要具体地直接参与编码工作或者代替组员完成编码工作——除非项目时间非常紧张。
(3)编码人员
也就是项目中的普通的开发人员,其课程设计的培养目标是提高编码水平、增强编码规范意识和提高程序代码的质量——不仅要学会如何写代码,而且还应该要能够写出高质量的代码和高效地编程开发实现相关的功能模块程序代码。
(4)界面开发及集成测试人员
这种角色的人员最好是熟悉与界面设计有关技术(Web界面、应用程序界面和手机移动App界面)的学生,并且有美感意识和熟悉常见的界面设计工具软件如Macromedia Dreamweaver 等页面设计工具;其课程设计的培养目标是增强软件应用系统人机界面交互设计及功能实现的能力。
4、课程设计中的项目分组和委任项目负责人
(1)项目组的人员分组按6人为一个开发小组
每个开发小组选取一个项目组长和技术总工,项目组内的各个角色成员首先要熟悉和明确自己的职责和考查点、培养目标。每个开发小组在自由组合或者指导教师直接分配的基础上按照技术水平的高低合理地搭配,避免各项目小组内的人员技术水平差距过大。
(2)每个开发小组承担一个软件系统项目的开发任务
每个开发小组承担一个软件系统项目的开发任务,每个组的项目最好有差别或者是同一个项目但课程设计的指导教师要求采用不同的技术实现方案进行实现(Web应用、PC应用和手机App应用等类型),这样可以避免出现重复或者相互抄袭,影响课程设计的最终教学效果。当然,课程设计中的项目开发不必追求项目功能的完美实现和具体技术的实现细节——因为课程设计的时间(课时)和学生的技术能力都是有限的,但必须每位学生人人都要参与,而且都有收获;并且不允许学生逃避和严格遵守学校的课程设计教学的规章和要求;当然也不允许敷衍了事,否则将加以处罚——课程设计的指导教师应该明确地向各位学生声明这些纪律和要求。
(3)尽快完成项目的分组和角色定位以避免浪费时间
课程设计的指导教师尽快完成各个项目组的人员角色分工,同时也明确告诉学生、并要求学生充分地进行配合,课程设计进行之前尽快实现项目的分组和角色定位以避免浪费时间。各个小组分组完毕后按照下表中的各个角色所对应的成员学生名单汇总给指导教师。
领取专属 10元无门槛券
私享最新 技术干货