1.准备阶段
教学内容:软件工程概述;补充介绍选题方法。实践内容:分组与选题。(1)分组。将一个班的学生分为若干个项目组,每组3~5人,每组有一名组长作为项目经理组织后续的项目开发,负责给成员分配角色,如系统分析员、软件设计师、软件开发工程师、软件测试工程师。根据角色,每个成员都有相应的任务。(2)选题。在项目驱动教学法中,项目选择是关键步骤,关系到整个项目能否顺利实施。因此,在各组自选项目时要注意:尽量选择自己熟悉的流程来构建软件系统,如图书馆借还书系统;所选系统有3~5个功能模块,过于复杂则难以把握,过于简单则缺乏整体性;尽可能选择与实际需要相结合的项目、科研创新基金项目等;项目开发所需的软硬件都是可获得的,所需开发技术是学生已掌握的或短期内可掌握的。最后,教师要认真审查学生选题,避免重复,控制规模,确保可实现。
2.需求分析阶段
教学内容:软件需求分析原理、结构化分析法、面向对象分析法;补充介绍主流建模工具、开发平台、Web开发环境。实践内容:深入了解和分析需求,形成文字化需求说明;安装建模工具,使用Rose/Visio进行需求建模,绘制用例图和活动图,完成软件需求分析报告。配置开发环境,熟悉开发环境的使用,编程实现“登录”功能。教师及时批阅和评价需求分析报告,重点检查用例分割的粒度是否合适,指出学生在运用方法和工具解决实际问题时存在的不当之处,对突出问题进行集中讲解,确保学生建立正确的认识,树立信心。
3.软件设计阶段
教学内容:软件设计原理、结构化设计法、面向对象设计法;补充介绍平台设计、界面设计及工具的选择、数据库设计及数据库管理系统的选择、程序设计语言及编程环境的选择、出错处理。实践内容:在Rose/Visio中绘制类图、顺序图、状态图;用PDL对关键处理进行描述;对典型界面进行设计;数据库基表设计;完成软件设计报告。编程实现“读取数据库数据并显示到页面”的过程。教师及时批阅和评价软件设计报告,重点关注类图的合理程度、顺序图表达细度等,指出存在的问题,确保学生充分经历软件设计阶段的各种设计任务。
4.实现和测试阶段
教学内容:软件测试方法、主流测试工具介绍。实践内容:编写系统源代码;设计测试用例,进行单元测试、集成测试和系统测试;完成系统测试报告。教师及时批阅和评价测试报告,指出可能存在的漏洞。在系统完成后,根据开发文档对系统进行整体检查,重点关注学生常常疏忽的出错处理问题,在软件用户友好性方面提出更高要求,增强其专业素质。
5.结束语
初步的教学尝试表明,在项目驱动的软件工程教学模式下,教师和学生的工作量都有大幅增加。教师必须熟悉开发过程和主流开发平台,必须有实际开发经验以应对学生遇到的各种问题,必须积极引导和评价以增强学生开发软件的自信心和成就感。学生则必须依据自身能力进行自主学习与协作学习,在项目开发过程中充分发挥主观能动性和创造性思维,全面提高其作为软件专门人才的综合素质。
作者:陈海燕 张育平 臧洌 沈国华 单位:南京航空航天大学