软件工程综合实训软件过程初探_第1页
软件工程综合实训软件过程初探_第2页
软件工程综合实训软件过程初探_第3页
软件工程综合实训软件过程初探_第4页
软件工程综合实训软件过程初探_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1/6软件工程综合实训软件过程初探软件工程综合实训软件过程初探摘要软件工程综合实训应采用迭代的软件开发过程。基于实训课程目的的分析,提出一个为期20周、分6次迭代的实训模型。学生以小组为单位开展实践,分别任组长、开发经理、计划经理、测试经理及技术支持经理等角色,每完成两次迭代交换角色一次。实训中开展业务分析、需求、分析设计、实现、测试、部署、团队管理、计划管理、配置管理及环境支撑等领域的约30种活动,考核分迭代的考核和角色考核两种。论文联盟关键词软件工程;综合实践;软件过程;迭代开发为了提高软件工程人才培养的水平,增强学生的实践能力,文献1基于建构主义认知学说提出了一种创新的人才培养模式。该培养模式的特点是在第67学期引入长周期的综合实训。为便于实施,该综合实训可按学期分成两段。其中第6学期的实训为期20周,如何开展全面的软件工程过程实践,是本文要探讨的对象。此实训将部分原在课堂讲授的理论课贯穿在实训中讲解,并要求学生以小组为单位完成软件开发项目,从而理解和掌握软件开发过2/6程与技术。为有效开展此实训,本文依据现有软件过程理论和经验,对实训中的软件过程进行探讨。1概念与研究的必要性软件开发过程是指在工业化环境如软件公司、大型软件开发团队开发软件的有先后顺序的一系列活动。它是将各种软件技术组织在一起的粘合剂,是合理高效开发软件产品的保证2。对软件过程的描述,往往包括过程模型、活动、角色、制品等方面。软件工程综合实训课程的目的是为了让学生熟悉软件开发过程,掌握软件开发技术,增强实际动手能力。它与实际软件开发有以下几点不同1目标不同。前者以培养学生为目标,后者以生产软件为目标。2实践主体不同。前者为学生,后者为工作者。3环境不同。前者在学校的模拟环境进行,后者处于具体的软件开发环境。这意味着实训教学中应该采用接近实际的软件开发过程,但又不能完全照搬实际过程。这是我们必须探讨综合实训软件开发过程的原因。以下从软件开发过程模型、过程角色、主要活动及对学生的考核等几方面对软件工程综合实训的软件开发过程进行讨论。2综合实训的软件过程模型3/6历史上,出现过多种软件过程模型,但大致可分为线性模型和迭代模型两类。线性模型也称瀑布模型,已被实践证实不能适应需求变化的场景。迭代模型认为软件开发是一个反复的过程,比较符合软件复杂、易变的本质,是当今软件开发的主流思想。在考虑实训教学软件过程模型的选取时,应以简单易行、便于软件技术学习、便于软件过程理解为出发点。单从简单易行的角度,采用瀑布模型比较有吸引力。瀑布模型的步骤和章法清晰,教学组织方便。但是,如果使用瀑布模型,对迭代过程的介绍只能停留在口头上,学生无法从实践中领会这一重要的过程思想。瀑布模型是一次性完成需求描述,然后做全面设计。这不利于由浅入深、循序渐进地掌握软件架构、设计和编码方面的技术。如果采用迭代式模型,虽会令实训的组织和管理变得复杂,但既可以领会瀑布模型的章法,也可以克服瀑布模型的弊端。对于本文所针对的长达一个学期的综合实训,其教学目标是多维和综合的,既要在过程中传授显性知识,也要通过过程组织和实践指导传递隐性知识。如采用瀑布模型,会将开发过程理想化,而使很多隐性知识和实践经验难以传播。因此长周期的综合实训采用迭代式过程模型更合理。按照有关迭代开发经验3,对于小型项目,以3周4/6为一次迭代较合适。我们决定将20周的实训分为开始1周、结束1周、中间6次迭代18周。各次迭代的目标如表1所示。表中,迭代1的任务是发掘和初步表述系统的主要需求,并设计系统原型;迭代2要完成系统的主要功能,约占全部功能的3040;迭代3完成系统的全部功能;迭代4对系统架构进行优化,增加业务逻辑层;迭代5进一步优化系统架构,增加数据读写层;跌代6使用现有框架对系统进行重构。在实际的软件开发过程中,早期迭代要着重于影响架构的功能和性能需求的实现,从而一开始就为系统选择合理的架构。但在实训教学中,按由浅入深的教学规律,在学生具备一定的开发经验后引入架构设计知识。因此,前几次迭代较少涉及架构设计的细节,所完成的软件在架构方面是不成熟的。在后几次迭代中,通过对代码的重构逐渐完成软件架构的优化,从而让学生牢牢树立架构设计的理念。这是实训软件过程与实际软件过程的区别。上述各次迭代的目标,也是系统开发的里程碑。教师检查各次迭代提交制品的同时,也考核了学生团队的成绩。3综合实训过程中的角色基于文献4及文献5的思想,软件工程综合实训5/6学生团队应设置对等角色。即每个小组成员担任一种角色,负责一个方面的工作,同时又是其他成员所负责工作的参与者。这既是实际开发团队的做法,也最适合学生的学习。考虑到项目规模较小,实训时间较长,一个小组人数不宜过多。以5人一组,分别扮演组长、开发经理、计划经理、测试经理、技术支持经理等角色,各角色职责主要为41组长负责小组建设,让小组成员有共同的目标和项目愿景,激励士气,维持纪律,安排任务,主持每周小组例会、成员互评等。2开发经理主持小组开发工作,包括需求、分析与设计、实现等过程。3计划经理负责带领小组制订项目计划和迭代计划,督促各成员按要求完成工作日志,制订项目周计划,整理项目周报,对计划进行跟踪,在例会或计划会议上通报项目进度。4测试经理负责测试计划的制订,编写测试用例,组织测试实施及管理,组织每日集成测试。5技术支持经理组织执行配置管理、变更控制、数据库管理及风险管理,培训本组成员正确使用工具软件,督促每日代码签入、签出。6/6上述角色职责涉及的各种活动,详见第4节说明。指导教师在实训中的角色是代表客户方提出对系统的要求,同时也是学生开发活动的指导者和监督者。在实际的软件开发过程中,团队成员的角色在一个项目中是固定的。但在实训过程中,为了让学生得到更全面的训练,可规定每两次迭代交换角色一次。这样在整个实训中,每人都可以担任三种不同的角色。这是实训过程不同于实际过程的地方。4综合实训过程的主要活动及制品依据文献4和文献6,将学生在综合实训中的活动领域分为两大类,一类是核心开发域,包括业务分析、需求、分析与设计、实现、测试、部署等;一类是核心支持域,包括团队管理、计划管理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论