در دنیای امروز به روش هایی جهت توسعه نرم افزار نیاز است که مقاوم و منعطف باشند و در برابر تغییرات سازگار باشند. از آنجا که مشخص نمودن تمام نیازها توسط مشتری در ابتدای کار معمولاً غیرممکن است و نیاز به روش هایی است که بطور مداوم به تغییرات رسیدگی نماید. فرآیند توسعه نرم افزار که با عنوان چرخه حیات توسعه نرم افزار نیز شناخته می شود، ساختاری است که روی توسعه محصولات نرم افزاری اعمال می شود. بعبارتی دیگر، فرآیند توسعه نرم افزار چهارچوبی برای کارها و فعالیت های مورد نیاز به منظور توسعه نرم افزار با کیفیت است. زیرا توسعه یک محصول نرم افزاری استاندارد در گرو عبور این محصول از خلال فازهای گوناگونی مانند مهندسی نیازمندی ها ، تحلیل ، طراحی ، پیاده سازی ، نگهداری ، تست و کنترل می باشد. آنچه یک محصول نرم افزاری را از سایر محصولات متمایز می کند، توجه به نیاز مشتری، اطمینان از درک صحیح نیاز مشتری و انعکاس آن در نرم افزار و امکان تغییر نیاز مشتری در حین فرایند تولید محصول است. در چند سال اخیر نسل جدیدی از متدلوژی های تولید و توسعه نرم افزار تحت عنوان متدلوژی های چابک ظاهر شد و با استقبال زیادی مواجه شد. پیدایش این روشها در مهندسی نرم افزار از یک دهه قبل می باشد. علت پدید آمدن این روشها را میتوان در مشکلات روشهای گذشته مانند عدم توجه به نیاز مشتری، عدم اطمینان از درک صحیح نیاز مشتری و عدم امکان تغییر نیاز مشتری در حین فرایند تولید محصول، گوناگونی نیازهای مشتریان، محدودیت ها و تغییرات تکنولوژی توسعه و … در مواجهه با پروژه های نرم افزاری و پیچیدگی ذاتی تولید نرم افزار پیدا نمود. هدف این متدلوژی ها تحویل زود هنگام نرم افزار و جلب رضایت مشتری در طول حیات نرم افزار می باشد. روشهای چابک در مهندسی نرم افزار جایگاه خاصی به خود اختصاص داده اند که تغییر از ارکان اصلی و مهم این روش ها بحساب می آید. در این روش مدل سازی و مستندسازی تا اندازه ای که مورد نیاز است، توصیه می شود. همچنین روش چابک با تقسیم کردن کارها به طرح های کوچکتر، باعث می شود که تکرارها در چارچوبهای زمانی کوتاهتری انجام شده و نسبت به تغییرات انعطاف پذیر باشند. امید است در این تحقیق بتوانیم متدلوژی های چابک و موارد مربوط به آن را بطور دقیق بیان کرده و تجربههای مختلف محققین در این حیطه را ارائه نماییم. امیدوارم این تلاش اندک زمینه ساز کارهای بزرگتر و عمیق تری در این زمینه گردد