数据库设计中的敏捷方法
【程序编程相关:Lotus Notes常用方法】winboy20(翻译) 【推荐阅读:PHP调用MS SQL存储过程】
【扩展信息:排序算法小结 】关键字 数据库设计 敏捷方法 进化设计 出处 http://www.martinfowler.com/articles/evodb.html 0 引言在过去几年中,我们将敏捷方法应用于数据库设计中.我们总结出一些技巧,使得当应用程序发展时,数据库也能够进化,这是敏捷方法的一个重要属性.我们的方法是通过持续集成以及自动重构,通过数据库管理人员(dba)与应用开发人员的紧密合作.这些技巧在应用开发的各个时期都有效.
1敏捷方法学近年来,出现了一种新的软件开发方法学—敏捷方法学.这给数据库设计提出了一些新的.巨大的需求.这些需求的一个中心就是进化设计.在一个敏捷项目中,需要假定我们并不能事先确定系统的需求.因此在项目的初期有一个详细设计阶段的想法是不现实的.系统的设计必须随着软件的变化而进化.敏捷方法,尤其是极限编程(xp),通过一些实践使这种进化设计成为可能.在数据库设计采用敏捷方法,反复迭代.
许多人会怀疑敏捷方法能否用于有大型数据库组件的系统.但我们的确使用了许多敏捷与xp技巧,用于解决基于大型数据库的项目中的进化与迭代问题. 本文将介绍一些在数据库设计采用敏捷方法的实践.当然,这并不是说我们已经完全解决了数据库进化的问题,但是我们想提供一些行之有效的方法. 2 积极应对变化 敏捷编程的一个显著特点就是它面对变化的态度.对软件过程的一般解释是尽早理解需求,停止需求的变动,将这些需求作为设计的基础,停止设计的变动,然后开始构筑体系.这就是瀑布方法--基于计划的生命周期. 这种方法通过大量的前期工作来减少变化.一旦前期工作完成,需求变化会引起很大的问题.因此当需求变化时,这样的方法就会有很大的问题,因此需求变动是这种过程的一个很大的问题. 而敏捷编程却以另外一种方式来面对变化.拥抱变化,甚至允许在项目开发的后期发生变化.尽管变化会被控制,但是这种态度会允许尽可能多的变化.变化部分来自于项目需求的不稳定,部分来自于要支持变化的商业环境来面对竞争压力. 为了做到这样,必须采取不同的设计态度.设计不仅仅是一个阶段—-在开始建筑之前就大部分完成的一个阶段;设计是一个持续的过程,与编码.测试甚至发布相关.这是计划设计与进化设计的不同之处.敏捷方法的一个重要贡献是提出了在可控制方式下的进化设计.因此不是由于设计没有预先计划好,产生了混乱.敏捷方法提供了控制进化设计与使其可行的技巧. 敏捷方法的一个重要特点就是迭代式开发,即整个项目生命周期中运行多个完整的软件生命周期循环.敏捷过程在每次迭代中都会度过一个完整的生命周期.... 下一页