快速應用程式開發

title: 概观.
content: 快速应用程序开发是一种涉及类似迭代式开发与软件原型(Software prototyping)技术的程序设计方法学。根据Jeffrey L. Whitten于2004年所下的定义,这是一种采用数种结构化分析与设计技术(特别是资料驱动(data-driven)型的资讯工程相关技术)与原型制作技术来加速软件系统开发的整合技术。  在快速应用程序开发中,结构化与原型制作的技术被用来定义使用者的需求并设计开发出最终执行的系统。开发的过程会以结构化技术开发初步的资料模型及企业流程模型(business process model)作为起步,下一个阶段会透过制作原型来验证需求并改善资料及流程模型。迭代式地重复这些阶段直到获得"足以建构新系统且包含商务需求以及技术设计的报告"为止。  快速应用程序开发的方法可能需要在功能与效能间取得一个平衡点,借此来加速应用程序的开发,并减少之后所需的维护成本。
title: 历史.
content: 快速应用程序开发这个名词原先是用于描述一种由James Martin于1991年所提出的软件开发过程。这个方法涉及迭代式开发与建制原型的技术。最近这个词以及缩写则被泛指一般包含多样目标在加速应用程序开发的技术,像是网络应用框架与其他类型的软件框架。  快速应用程序开发是对应到1970至80年代间的非敏捷流程开发,例如说结构化系统分析与设计方法以及其他像是瀑布模型等。之前的方法论有一个问题是应用程序需要花费相当长的时间去建制,系统需求常在系统完成前就改变,导致作出不适用甚至是不能用的系统。另一个问题则是假设可以用一个有条理的需求分析阶段便能鉴别出所有重大的需求。根据过往的经验能充分的证明即使有各层面具备丰富经验的专业人士在专案中协助,能透过一个分析阶段就能鉴别需求的实例仍就非常的稀少。  由Brian Gallagher、Alex Balchin、Barry Boehm、Scott Shultz,以及James Martin等人于1980年代在IBM产生了设计出能达成快速应用程序开发这种方法的构想。并且于1991年将这些构思集结成书加以出版,书名为《快速应用程序开发》("Rapid Application Development")。
title: 快速应用程序开发相关的效用.
content: 从传统基于交谈(session-based)的客户/服务器发展转移到开放性无交谈(open session-less)及合作开发(像是Web 2.0)的过程上也增加了加快软件开发流程阶段迭代的需求。采用率持续成长中的开放源代码框架与核心商业化发展产品的结合对于许多开发人员来说,重振了找出快速应用程序开发方法论的银弹的兴趣。  尽管多数的快速应用程序开发方法论促进了代码复用、小组结构以及分布式系统开发,多数的快速应用程序开发实践者察觉到最终还是没有一个"快速"的方法论可以提供超越其他开发方法论的数量级改进。  各式各样的快速应用程序开发方法都有潜力提供一个良好的框架用让改进的程序品质加快产品开发的速度。但实作是否成功或有多大效益则通常取决于产品类型、排程、软件出版周期,以及企业文化。有趣的是,一些大型软件厂商如Microsoft以及IBM并不会广泛的采用快速应用程序开发在其核心产品大部分的开发上,主要还是依赖传统的瀑布方法论撘配一定程度的螺旋模型来进行开发。  下表列出了一些主要的快速应用程序开发方法以及他们的优劣。
title: 批评.
content: 由于快速应用程序开发是一种迭代式的过程,可能会让原型反复延续,而无法以令人满意的成品作结。这样的失误可以借由稳固、弹性,且正确使用的应用程序开发工具加以避免。这样的情况也被像是80/20法则或其他后敏捷的衍生方法所强调。
title: 快速发展方法论的实际影响.
content: 当组织采用快速开发方法时,必须要注意避免角色与权责混淆以及开发团队内部或是团队与客户之间沟通不良。此外,特别是在客户缺席或是不能参与发展过程中的验证时,系统分析员应该以客户的角度参与验证,来借此确保能够适当的关注非功能性需求。此外,任何系统的改进都应该要完成详细且正式纪录的设计阶段。

Summary: 快速应用程序开发(原名:Rapid Application Development、缩写:RAD)是指一种以最小幅度的规划并迅速地将原形完成的软件发展方法论。采用RAD进行软件开发的规划是和撰写软件本身交错同时进行的。通常能在没有大量预先规划的情况下,让软件更快写完、更容易变更需求。

Rapid Application Development: Rapid-application development (RAD) je moderním přístupem k vývoji aplikací, který podobně jako agilní metodiky reaguje na rigidnost klasického Vodopádového modelu. Zdůrazňuje potřebu přizpůsobení požadavků jako reakci na nové skutečnosti, které se přirozeně objevují až v průběhu projektu. Inkrementální přístup k vývoji brání katastrofickým selháním, kdy po několika měsících či dokonce letech analýz a příprav jsou odhaleny zásadní problémy, které nikomu dosud nepřišly na mysl. Při RAD se uživatelé setkávají s podobou cílového řešení od samého počátku, protože používá prototypy. Zpětná vazba od uživatelů zkoušejících prototypy vede ke korekci požadavků a návrhu systému již v raných fázích vývoje.. RAD přístup je realizován na software, který rychlý vývoj aplikací umožňuje. Tento software je platformou, kterou pak organizace používá k vývoji funkcionalit, které nespadají pod jiné komponenty podnikové architektury jako např. ERP nebo by vývoj na nich byl náročný. RAD platformu je vhodné použít pro náhradu různých drobných nebo zastaralých aplikací. RAD platforma v takovém případě velmi efektivně řeší jednotné uživatelské prostředí, snižuje heterogenitu prostředí, adekvátní řízení přístupových oprávnění, centralizaci a opakované využití dat či audit trail. Minimalizujeme také řadu rizik jako je např. kompatibilita a podpora původních aplikací. Software, který lze použít jako RAD platformu, si firma často nejprve pořizuje pro řešení specifické oblasti – např. pro oblast CRM, pro řízení procesů a projektů, ITIL procesy a help desk.