计算机编程论文

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机编程论文

浅谈极限编程在计算机实践教学中的应用摘要:极限编程(XP)是流行的敏捷开发方法之一。它是一种适应于中小规模团队的轻量级、灵巧的软件开发方法。它所具有的良好的适应性、目标的可量度、周期性的划分等诸多方面优点使得将其方法引入计算机实践中应用成为可能。极限编程方法的运用为计算机实践教学提供了一个有效的改进途径。

关键词:极限编程(XP);结对编程;小组软件开发

在计算机的实践课程中,通常需要在一定的时间内(一学期)完成一门编程语言课程,一般采用理论与实践相结合的方法,其实验部分内容多为熟悉该语言语法的使用,掌握该语言基本的编写方法,实践时间往往较短,训练的内容较为简单,属于较低层次。而在计算机实践中需要综合各种知识进行设计开发的实践活动往往存在项目过于复杂、时间性短等原因无法达到很好的预期效果。这也使得学习的很多关于软件工程的思想和方法,仅停留于理论上,只有内容抽象的概念,缺乏实际的实践运用,而造成经常把编程等同于软件开发,形成对软件文档、测试等软件思想的误解,导致在做项目时仍处于个人编写代码的阶段,缺乏沟通和合作,只能开发小型的软件。软件的完成的好坏质量程度也局限于个

人的能力,无法完成工程上的软件开发的目标。

一、极限编程的提出及其特点

伴随着全球信息化和经济化的潮流的影响,在世界范围内的软件开发发生了巨大的变化,传统上的软件开发由于软件需求的变化大、人员变动性等原因造成了软件开发效率低、周期长,无法满足需求快速变化的要求,不再适应于现在商业信息经济时代中的急剧的变化。因此,改变传统软件开发模式,提高软件开发的效率成为了软件开发人员研究的重点。20世纪90年代初,Kent Beck, Cunningham, Jeffries 等人构建称之为极限编程(extreme Programming,简称XP)的基本元素。极限编程就是针对快速改变的软件需求而产生的。简单而言,极限编程就是一个高速迭代的过程。

XP是敏捷编程方法的代表,是一种典型的“轻量级”软件开发方法,它强调了3条基本价值观,即沟通、简单、反馈。不同于以往的软件开发理论的是,它没有对软件开发的整个过程进行强制而繁琐的规定,而是给出了一套在实际软件开发过程中需要遵守的活动实践原则。极限编程通常采用小组软件开发的过程和组内结对编程的方式。其中结对编程是两个软件开发者在一台电脑前一起工作的一种编程实践,是极限编程方法的基础。而小组软件开发的过程则提供了在开发过程、产品和小组协同工作之间平衡的重点,并且在规

划和管理软件工程中利用了广泛的工业经验基础。小组软件开发基于以下几个基本原则:遵循订制好的过程,并且得到快速反馈时,学习是最重要的;高产的小组协同工作需要有具体的目标、良好支持的工作环境和强有力的指示及领导等因素的结合;从彻底有效的开发练习中获得与工程中的实际问题作斗争的有效解决方案;提倡正确的指导源于先前实践的重要性。

二、极限编程在计算机实践课程中的应用

在计算机实践教学中,进行软件开发训练的时间往往定时,受限于教学时间。极限编程是一种限时性的软件开发方法,它可以有效地解决实践中软件开发设计中的时间不足的问题。在另一方面,它强调简单化设计的理念、循环渐进的周期性过程有利于简化目标的难度和复杂性,有利于设计的不断优化,大大地提高了实践教学的效率。

1、建立起具有挑战性的可量度的目标。它提供了一个在个人软件开发过程(PSP)基础上建立的简单框架,提供了许多规范和程序,但绝大多数都类似于PSP中使用过的东西。以周期划分产品的开发,提供了一定的时间内完成若干个开发周期的方法。每个周期都由七个步骤:决定策略、进行计划、考虑需求、设计、执行、测试和最终检查组成,包括了一个完整的需求、设计、实现和测试开发过程。这有效

地控制项目的难易程度,解决了课程的严格时间表和因实际需求不稳定经常变化引起时间耽误之间的矛盾,提供了一个科学的软件开发过程。

2、建立共同工作框架,通过沟通,反馈进行有效的组内和对外交流。小组间的比较可以体现出不同计划步骤各自的优越性,为小组评估提供了参考。通过小组划分的方式,以4-8人为一个小组,共同完成和管理一个软件项目。以明确完成的任务为目标,参照共同的工作框架,包括:计划、时间、顺序、责任人对项目进行至始至终的有效控制。采用组内学生之间以结对编程的方式相互探讨,培养和强调学生之间的沟通,反馈意识,共同学__习,协同工作。这可以一方面引发学生自主地意识到提高程序可读性可理解性的重要性,使得其对程序设计规范化的深刻理解。另一方面小组各成员共同参与对软件需求、可行性的分析,整体功能结构的划分,进度安排、计划的设计执行,模块化结构的设计,亲身体验整个工程的管理和责任划分的过程。

3、采用了多周期的循环开发战略、计划跟踪和反馈有利于对目标进展过程的控制。它从一个最小规模的产品版本开始,建立起一个最终产品的最简化的子集,首先使核心产品运行起来,然后通过循环开发战略,在每次得到了最终产品的可运行前期版本同时,也得到了获得下一周期目标的精

确计划和为后续的每个周期服务的平台。在课程中,可根据具体的教学时间,通过控制开发周期,来确定软件的设计规模和开发深度。这有效地控制了软件开发的大小和时间,并以可运行的成果消除软件开发过程中失去目标的盲目性,增强了学生的信心,从而为小组工作提供有力的支持。

4、在多周期的过程中采用了大量的角色分配和角色责任,提供了各种角色体验。以角色体验的方式解决了在实践教学过程中一味地以编程为主的教学模式,而忽视软件开发过程中的工程管理及控制等方面的问题,给学生提供了学习运行一个小组工程方方面面及小组处理工程管理任务的机会。与此同时,角色责任细化了个人在软件开发中的分工,有助于每个人专注于个人需要学习的要素。在实践过程中以周期为单位,在每个周期中小组各个成员各自承担角色的任务,而在下一个周期中各成员可通过互换角色,使得各成员获得开发过程中不同角色的体验,有效地解决了在有限时间内多角色体验的问题。

5、它提供了一整套完整的标准化的质量和效率评估机制、开发纪律。它采用“强调整个工作过程而不是个人表现得如何”的评价标准,提供了一个可实施的平等的角色和小组评估体系。通过纪律约束来协调成员之间的工作,并为小组协同工作的问题提供指导,促进小组成员间的学习经验交

相关文档
最新文档