徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
下载
比浏览器更快的访问!
 

极限编程

指数 极限编程

极限编程(Extreme programming,縮寫為XP),是一种软件工程方法学,是敏捷软件开发中。如同其他敏捷方法学,极限编程和传统方法学的本质不同在于它更强调可适应性而不是可预测性。極限编程的支持者认为软件需求的不断变化是很自然的现象,是软件项目开发中不可避免的、也是应该欣然接受的现象;他们相信,和传统的在项目起始阶段定义好所有需求再费尽心思的控制变化的方法相比,有能力在项目周期的任何阶段去适应变化,将是更加现实更加有效的方法。 極限编程为管理人员和开发人员开出了一剂指导日常实践的良方;这个实践意味着接受并鼓励某些特别的有价值的方法。支持者相信,这些在传统的软件工程中看来是“极端的”实践,将会使开发过程比传统方法更加好的响应用户需求,因此更加敏捷,更好的构建出高质素软件。.

15 关系: 反馈代码审查代码重构结对编程隐喻项目软件工程肯特·貝克重构JUnitRational统一过程沃德·坎宁安持續整合测试驱动开发敏捷软件开发

反馈

反饋(,又稱回--授),--,是控制论的基本概念,指将系统的输出返回到输入端并以某种方式改变输入,它们之间存在因果关系的回路,进而影响系统功能的过程。 在这种情况下,我们可以说系统“反馈到它自身”。在讨论反馈系统时,因果关系的概念应当特别仔细对待: “对于反馈系统,很难作出简单的推理归因,因为当系统A影响到系统B,系统B又影响到系统A,形成了循环。这使得基于因果关系的分析特别艰难,需要将系统作为一个整体来看待。” 反馈可分为负反馈和正回饋。前者使输出起到与输入相反的作用,使系统输出与系统目标的误差减小,系统趋于稳定;后者使输出起到与输入相似的作用,使系统偏差不断增大,使系统振荡,可以放大控制作用。对负反馈的研究是控制论的核心问题。.

新!!: 极限编程和反馈 · 查看更多 »

代码审查

代碼審查(Code review)是指對電腦源代码系統化地审查,常用的方式進行,其目的是在找出及修正在軟體開發初期未發現的錯誤,提升软件质量及開發者的技術。代碼審查常以不同的形式進行,例如结对编程、非正式的看過整個程式碼,或是正式的。.

新!!: 极限编程和代码审查 · 查看更多 »

代码重构

代码重构(Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。.

新!!: 极限编程和代码重构 · 查看更多 »

结对编程

结对编程(Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。 在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理。这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面。观察员当作安全网和指南。结对编程对开发程序有很多好处。比如增加纪律性,写出更好的代码等。 结对编程是极端编程的组成部分。.

新!!: 极限编程和结对编程 · 查看更多 »

隐喻

一个隐喻或者暗喻是用在比较两个好像无关事物,制造的一个修辞的转义。通常,第一个事物可以被描述成作为第二个物体。以这种方法,第一个对象可能很容易用第二物体来描述。不过,隐喻不是总描述一物体的特性;有时使用它完全是由于审美原因。 有些人(通常是認知語言學家)認為(隱喻)有認知上的功能,但有些人認為類知類的隱喻以類比一詞替代來較為恰當。.

新!!: 极限编程和隐喻 · 查看更多 »

项目

--(Project),又譯為計劃、--,是为完成某一独特的产品或服务所做的臨時性努力。臨時性是指--有確定的開始日期和结束日期。独特意味着--的最终結果不重複。 著名的--包括:.

新!!: 极限编程和项目 · 查看更多 »

软件工程

软件工程(quote) 1968年秋季,NATO(北約)的科技委員會召集了近50名一流的編程人員、計算機科學家和工業界巨頭,討論和制定擺脫“軟體危機”的對策。在那次會議上第一次提出了軟體工程(software engineering)這個概念,研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。其后的几十年里,各种有关软件工程的技术、思想、方法和概念不断被提出,软件工程逐步发展为一门独立的科学。 1993年,电气电子工程师学会(IEEE)给出了一个更加综合的定义:"将系统化的、规范的、可度量的方法用于软件的开发、运行和维护的过程,即将工程化应用于软件开发中"。此后,IEEE多次给出软件工程的定义。 在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,提高人们的工作效率,同时提升了生活质量。 软件工程师是对应用软件创造软件的人们的统称,软件工程师按照所处的领域不同可以分为系统分析师、系统架构师、软件设计师、程序员、测试工程师、界面与交互设计师等等。各种软件工程师人们俗称程序员。.

新!!: 极限编程和软件工程 · 查看更多 »

肯特·貝克

肯特·貝克(Kent Beck,),美國著名軟體工程師與作家,在軟體工程方面有很大的貢獻。他是Smalltalk軟體的開發者,設計模式的先驅,测试驱动开发的支持者,也是極限編程的創始者之一。現在Facebook工作。 曾為Smalltalk寫作了SUnit單元測試架構,之後將這個架構移植到Java,寫作了JUnit。.

新!!: 极限编程和肯特·貝克 · 查看更多 »

重构

重构可以指下列意思:.

新!!: 极限编程和重构 · 查看更多 »

JUnit

JUnit是一个Java语言的单元测试框架。它由肯特·貝克和埃里希·伽瑪(Erich Gamma)建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中为最成功的一个。 JUnit有它自己的生态圈。.

新!!: 极限编程和JUnit · 查看更多 »

Rational统一过程

#重定向 统一软件开发过程.

新!!: 极限编程和Rational统一过程 · 查看更多 »

沃德·坎宁安

沃德·坎宁安(Ward Cunningham,),计算机程序员和Wiki概念的发明者。他也是设计模式和敏捷软件方法的先驱之一。 他从普度大学获得(电子工程和计算机科学的)交叉学科工学学士学位以及计算机科学的硕士学位。 他1995年在波特兰模式知识库创建了第一个Wiki站点。这个站点现在还在运作,致力于“人、项目和模式”,并且是一个“程序设计语言思想的非正式历史”。例如,这个站点被用来为有用的软件开放的模式语言以及极限编程的软件方法的发展进行分类。坎宁安提到Wiki的概念是他在20世纪80年代末期想到的,并且他首先使用HyperCard堆栈的方法进行实现。 他是The Wiki Way(2001年)这本书的作者(与Bo Leuf合著)。 他是Cunningham & Cunningham, Inc.公司的创始人。他还是Wyatt Software研发部门的总裁,以及Tektronix Computer Research Laboratory的主要工程师。沃德·坎宁安之所以闻名的是对面向对象程序设计的开发实践的贡献,这个变种叫做极限程序设计,以及由他的WikiWikiWeb提供的社团。他还是“山坡组”的创始人,并且作为其赞助的“程序的模式语言”会议的程序主席。 2003年12月,沃德·坎宁安加入微软,为微软的“模式与实践”组工作。 2005年10月,他转入Eclipse基金会。 沃德·坎宁安现居俄勒冈州的波特兰。.

新!!: 极限编程和沃德·坎宁安 · 查看更多 »

持續整合

持續整合(Continuous integration,縮寫CI)是一種軟體工程流程,是將所有软件工程師對於軟體的工作副本持续整合到共用主線(mainline)的一种举措。该名稱最早由葛來迪·布區(Grady Booch)在他的中提出,不过他並不支持在一天中进行数次整合。之後该举措成為極限編程(extreme programming)的一部份時,其中建議每天應整合超过一次,甚至達到數十次。在测试驱动开发(TDD)的作法中,通常還會搭配自動單元測試。持續整合的提出主要是為解決軟體進行系統整合時面臨的各項問題,極限編程稱這些問題為整合地獄(integration hell)。.

新!!: 极限编程和持續整合 · 查看更多 »

测试驱动开发

测试驱动开发(Test-driven development,縮寫為TDD)是一種软件开发过程中的應用方法,由极限编程中倡导,以其倡导先写测试程序,然后编码实现其功能得名。测试驱动开发始于20世纪90年代。测试驱动开发的目的是取得快速反馈并使用“illustrate the main line”方法来构建程序。 测试驱动开发是戴两顶帽子思考的开发方式:先戴上实现功能的帽子,在测试的辅助下,快速实现其功能;再戴上重构的帽子,在测试的保护下,通过去除冗余的代码,提高代码质量。测试驱动着整个开发过程:首先,驱动代码的设计和功能的实现;其后,驱动代码的再设计和重构。.

新!!: 极限编程和测试驱动开发 · 查看更多 »

敏捷软件开发

敏捷软件开发(Agile software development),又稱敏捷开发,是一種從1990年代開始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于「非敏捷」,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发過程中人的作用。 敏捷軟體開發(或稱快速程式開發RAD)描述了一套軟件開發的價值和原則,在這些開發中,需求和解決方案皆通過自組織跨功能團隊達成。敏捷軟體開發主張適度的計畫、進化開發、提前交付與持續改進,並且鼓勵快速與靈活的面對開發與變更。這些原則支援許多軟件開發方法的定義和持續進化。 「敏捷」(Agile或agile)一詞由「敏捷軟件開發宣言」(Manifesto for agile software development)中開始推廣,「敏捷軟件開發宣言」定義了相關的價值和原則。敏捷軟體開發的框架不斷的發展,兩個最廣泛被使用的是Scrum與Kanban。.

新!!: 极限编程和敏捷软件开发 · 查看更多 »

重定向到这里:

EXtreme Programming极端编程极限程序设计

传出传入
嘿!我们在Facebook上吧! »