软件开发过程训练的平台构建

2018-02-07 18:11戴牡红
软件工程 2018年1期
关键词:教学平台实践教学

戴牡红

摘 要:针对软件工程专业存在的实践教学缺少从项目策划到项目实现全过程的项目管理,缺少软件需求分析、设计与实现的软件工程项目完整的过程训练等问题,围绕使学生具备设计和实施软件项目工程能力的培养目标,构建软件开发全工程的训练平台,按照工程化的原则和方法来培养学生软件开发过程的实践能力。该训练平台是软件工程专业学生不可缺少的重要实践教学环节,是学生把课堂所学理论知识与实际项目相结合的重要途径。实现了对软件开发完整过程链的实践教学,形成了系统化、规范化和可度量的实践教学质量保障体系。实践证明,软件开发过程训练效果良好,培养了学生的工程实践能力和创新能力。

关键词:软件开发过程;实践教学;过程训练;教学平台

中图分类号:TP311.5 文献标识码:A

Abstract:The paper analyzes the problems of the lack of practical teaching from planning to project completion as well as the lack of complete process training in software demand analysis,design and implementation.To reach the training objectives of the students' ability to design and implement the software project,the training platform of the software development project is constructed and the practical ability of the student software development process is cultivated according to the engineering principles and methods.The training platform is an indispensable practical teaching part of software engineering students,which is an important way for students to combine the theoretical knowledge and practical project.It implements practical teaching of a complete chain of software development,a systematic,standardized and measurable practice teaching quality assurance system is formed.Practice has proved that the software development process training effect is good and it has cultivated the students' engineering practice ability and innovation ability.

Keywords:software development process;practice teaching;process training;teaching platform

1 引言(Introduction)

軟件工程是一个动手能力很强的专业。目前许多大学的实践教学效果不理想。软件工程实践教学管理制度不完善,实践教学管理过程不规范,实践教学相对独立,缺乏实践的全过程监督体系和科学的实践评价机制,缺乏有大型软件项目开发经验的实践教学教师,教学模式和组织形式与软件工程本身的固有特性与要求不相容[1,2]。软件专业本科学生软件工程实战少,理论落后于实践。要有效提高软件人才的培养质量,需要建立科学合理的实践教学管理体系和量化的质量保证措施,要实现软件生产全过程的实践教学的监督和管理,培养学生的学习主动性,提高实践教学的有效性[3]。湖南大学软件学院一直对本科生强化软件过程训练,开设了创新课程与项目实战,取得了良好的效果。本文介绍软件过程训练过程的基本思路和工作流程、过程训练的组织与管理方法,以及软件过程训练平台的构建。

2 软件工程过程训练(The process training in

software engineering)

软件过程训练贴紧软件行业发展需求,与实际的工程项目相结合。四年制本科教学的过程训练原则上在完成了主要的程序设计语言、软件工程等专业基础课之后的第3学年的夏季学期,在过程训练平台上实战,然后以4—6人为一个小组,从一个实际项目的需求分析开始,涵盖总体设计、详细设计、代码编写、测试、系统集成、客户化等一系列完整的软件项目开发过程[4],开发出一个初步可运行的系统。

在训练过程中,每个项目指定一个指导老师。指导教师在工程中心的统一协调下,由其负责该小组软件开发平台、工具、规范的学习、实际过程的指导,最后考查其完成情况,并将最后的成果提交给工程中心。由工程中心组织项目最后的测试、答辩,从而决定该小组各成员的成绩[5]。基本的流程如图1所示。

2.1 过程训练选题

过程训练开始前,由过程训练指导老师向学院教务办提交过程训练项目。根据过程训练老师提交的训练项目,教务办向学生公布本期过程训练项目情况:要开发的软件项目描述、小组成员的基本要求(使用的编程语言、开发工具等)、小组成员的人数等。学生在规定的时间内选题,并返回学生选题情况表;教务办和工程中心根据学生的选题情况,认真审查后确定《过程训练学生分组名单》。endprint

2.2 过程训练项目与文档

参加过程训练的项目组必须在训练期间分析、设计、开发出一个真正可以运行的系统。过程训练项目组需提交以下文档:项目组人员分工安排表、需求分析说明书、系统设计说明书、系统测试报告、系统使用手册、过程训练总结报告。

承担过程训练的指导教师必须有实际项目管理、开发经验,具备一定组织管理能力,精通一门开发语言,精通一种系统设计方法,有足够的时间保证用于指导项目组。指导教师必须对每一阶段的文档进行指导与审查。

2.3 过程训练答辩

过程训练答辩由文档审查、答辩前的测试和答辩等过程组成。答辩前必须提交过程训练要求的所有文档,含电子与纸质两种。文档未提交齐全者,不安排测试。工程中心组织老师对各项目组提交的文挡进行审查,安排老师对文档通过的项目组系统进行测试,测试通过后方可进行答辩。

过程训练答辩成绩采用100分制计算,各项目组答辩时,先由各项目组长进行答辩,分以下几个方面介绍:

(1)项目简介:包括项目背景、主要需求。

(2)功能实现:系统功能演示。

(3)文档质量:文档完成情况,设计思路与技术。

(4)过程质量:实习过程基本情况,遇到的问题及具体的解决方案。

(5)创新能力:完成任务的办法、新技术、创新内容。

各项目组长对项目实施情况陈述后,就完成的情况回答老师提出的问题,然后是各组员介绍自己在过程训练中的情况并回答老师提出的问题,指导老师根据各同学的答辩情况确定其个人成绩。

2.4 过程训练考核

过程训练的考核方式为根据功能实现、文档质量、过程质量、工具熟悉程度、创新能力、训练的出勤率等考核指标,综合学生是否通过过程训练。通过的学生给予8个学分,未通过的学生必须重修。

3 软件开发过程训练平台建设(Construction of the

software development process training platform)

过程训练开始后,项目组成员必须参加由工程中心统一组织的软件工程规范训练及各指导教师安排的组内训练。训练的内容包括:工程中心管理文件,文档编制规范,开发平台,分析、设计、编程工具等。

过程训练平台(图2)是一个以案例教学为主的自主学习平台,以具体的案例展示软件项目生命周期的各个阶段。学生们通过案例的模拟运行,身临其境,仿佛置身于一個真实的项目中,获取直观的经验。了解软件生命周期各阶段的要求、方法、规范和产生的成果,再结合过程训练的要求从事一个具体项目的开发操练,从而使学生掌握软件开发过程(产品研发和工程项目)中所需的基本技能。

3.1 项目策划

训练按软件工程的方法进行项目管理的方法。在软件项目开发之前系统地规划整个项目进展过程,包括阶段划分、资源分配、进度安排、阶段具体计划的制定等,确保项目在预算之内及时交付并达到质量目标。

3.2 需求分析

训练软件产品和软件项目的需求分析方法。在进行软件开发前,明确其应达到的目标,对系统目标做出完整、准确、清晰、具体的要求[6]。为使需求分析的结果能够完整、无遗漏地反映待开发系统的要求,阐述需求分析报告的编写格式和内容要求。

3.3 系统设计

训练总体设计、详细设计、涉及使用数据库的设计编写数据库设计等的方法、格式和内容要求[7]。系统设计报告主要为使软件产品和软件项目满足规定的软件规格要求而确定软件系统的体系结构、组成成分、数据组织、模块、内外部接口。主要任务有建立软件产品和软件项目目标系统的总体结构。对于大规模软件系统,应分为若干子系统,在本报告中只说明总体设计,然后为每个子系统编写系统设计报告。

3.4 编码规范

良好的编程风格是提高程序可靠性非常重要的手段,也是大型项目多人合作开发的技术基础。训练程序编写过程中的编码规范,目的在于通过规范定义来避免不好的编程风格,增强程序的易读性,便于自己和其他程序员理解。

3.5 软件测试

训练对软件产品进行测试的工作流程、资源及各项工作的要求及所需形成的文档,以提高测试质量和测试效率,确保软件产品满足质量要求[8]。测试计划用于明确软件产品确认测试过程中测试设计、测试执行及测试总结工作的具体任务分解、人员安排、进度及输出结果,以使整个测试工作有计划地顺利进行。为了指导软件测试人员有效地设计测试用例,对所测试软件进行全面测试,以尽可能发现最隐藏问题。

3.6 产品制作

产品制作指软件产品或软件项目释放后,产品制作部门所进行的复制、安装盘检验、包装等的一切工作。训练软件产品和软件项目的制作工作规范,以使产品的制作程序完整、正确,方便用户使用。训练软件产品释放方案(包括名称、包装、价格、广告等)的规范化,保障产品质量满足质量要求。

3.7 项目总结报告

训练项目总结报告的编写规范,主要描述在软件产品或软件项目开发完成时所需编写的项目总结报告应该包含的内容,使得项目总结报告便于软件产品或软件项目日后的维护、交接和代码重用。

3.8 技术报告

训练技术报告编写规范,训练在软件产品或软件项目开发完成时所需编写的技术报告应该包含的内容,使得技术报告便于软件产品或软件项目日后的维护、交接和代码重用。

3.9 配置管理

项目实施过程所需要的或产生的软件、硬件、工具、释放产品、文档等形成配置项,通过阶段评审并可用作下一步的开发基础的配置项称为基准配置项。训练配置管理计划和配置管理规范,以确保配置项正确地唯一标识并易于存取,保证基准配置项的更改受控并可追溯,明确基准配置项的状态。endprint

猜你喜欢
教学平台实践教学
数学实验云计算辅助教学平台的建设初探
专业学位研究生职业危害控制技术课程创新型教学平台建设研究
基于WordPress构建项目化课程教学平台的研究
数字积分法插补仿真实验教学系统开发
茶学专业校企合作实践教学探索
《电气工程毕业设计》 课程的教学设计
研究型学习在传热学实践教学中的应用
思想政治理论课实践教学研究述评
高职院校商务礼仪课程教学改革探索刍议
《数据库高级应用》教学创新方法研究