| توسعه نرم‌افزار |
| --- |
| فعالیت‌های اصلیدر مهندسی نرم‌افزار
* فرایند
* نیازمندی‌ها
* طراحی
* ساخت
* آزمون
* اشکال‌زدایی
* استقرار
* نگهداری
 |
| پارادایم‌ها و مدل‌ها
* چابک
* Cleanroom
* افزایشی
* پروتوتایپ
* مدل مارپیچی
* آبشاری
 |
| متدولوژی‌ها و چارچوب‌ها
* دواپس
* DSDM
* FDD
* IID
* Kanban
* Lean SD
* MDD
* MSF
* PSP
* توسعه سریع نرم‌افزارRAD
* SAFe
* Scrum
* SEMAT
* TSP
* RUP
* مدل وی
* XP
 |
| رشته‌های مورد حمایت
* رشته‌های مورد حمایت
مدیریت پیکربندی
* مستندسازی
* تضمین کیفیت (SQA)
* مدیریت پروژه
* تجربه کاربری
 |
| کاربردهای عملی
* توسعه آزمون محور
* BDD
* CCO
* CI
* CD
* DDD
* PP
* Stand-up
* TDD
 |
| ابزار
* کامپایلر
* اشکال‌زدا
* رخ‌نمانگار
* GUI designer
* مقایسه ابزارهای زبان مدل‌سازی یکپارچه
* محیط توسعه یکپارچه
* Build automation
* Release automation
* Infrastructure as Code
* آزمون
 |
| استانداردها و بدنه‌های دانش
* CMMI
* IEEE standards
* ایزو ۹۰۰۰
* ISO/IEC standards
* SWEBOK
* پم‌باک
* BABOK
 |
| واژه‌نامه‌ها
* Artificial intelligence
* Computer science
* Electrical and electronics engineering
 |
| رئوس مطالب
* Outline of software development
 |
| * ن
* ب
* و
 |

توسعه ویژگی محور(FDD)، یک فرایند توسعه نرم‌افزار تکرارشونده و افزایشی می‌باشد. این مورد یکی از از روش‌های بسیار راحت یا سریع، برای توسعه نرم‌افزار است. FDD، تعدادی از صنعت‌های به رسمیت شناخته‌شده را با بهترین شیوه به یک کل منسجم متصل می‌کند. این شیوه‌ها، همه از عملکرد چشم‌انداز مشتری‌محوری تبعیت می‌کنند. هدف اصلی آن، ارائه محسوس با روش زمانی استفاده از نرم‌افزار به صورت متناوب می‌باشد.

تاریخچه
-------

FDD ابتدا توسط جف دلوکا جهت پاسخگویی به نیازهای
ویژه از پروژه نرم‌افزار توسعه(۵۰ ماه، ۵۰ شخص) در یک بانک بزرگ سنگاپور در سال
۱۹۹۷ ابداع شد. جف دلوکا پنج
فرایندی که روند توسعهٔ یک مدل کلی و فهرست آن، برنامه‌ریزی، طراحی، ساخت و ویژگی‌های
آن را پوشش می‌دهد، ارائه می‌نماید. اولین فرایند، به شدت تحت تأثیر روند مدل‌سازی
پیتر کود می‌باشد. فرایند دوم شامل ایده‌های پیتر کود با استفاده از لیست ویژگی‌هایی
برای مدیریت الزامات عملکردی و توسعهٔ وظایف، می‌باشد. فرایندهای
دیگر و ترکیب دیگر فرایندها و تبدیل آن به یک کل منسجم، نتیجهٔ تجربه جف دلوکا می‌باشد.
تا استفاده موفقیت‌آمیز بر روی پروژه سنگاپور، چندین اجرا برای FDD وجود
داشته‌است.

شرح FDD برای اولین بار در جهان، در فصل ۶ کتاب
"مدلینگ در رنگ با یو ام‌ال جاواً در سال ۱۹۹۹ توسط پیتر کود، اریک
لوفور و جف دلوکا، معرفی شد. سپس در کتاب‌های استیفن پالمر و مک
فلشینگ با عنوان "راهنمای عملی برای پیشرفت توسعه محور"، که در سال ۲۰۰۲
منتشر شد، که جدا از کتاب مدلینگ جاوا، تعریف جدیدی از اف دی دی داده شده‌است.

روند اصلی و نهایی FDD را می‌توان در وب‌سایت جف
دلوکا و در زیر مجموعهٔ مقالات، جستجو کرد. هم‌چنین وب‌سایتی عمومی جهت یادگیری
بیشتر راجع به FDD، پرسش سوالات و تجربه‌ها و بحث راجع به روندهای خودشان،
وجود دارد.

بررسی اجمالی
------------

FDD یک روند تکرار کوتاه و مدل محور است که شامل پنج فعالیت اساسی می‌باشد.
برای گزارش دقیق و پیگیری پروژه توسعه نرم‌افزار، نقاط ضعف که نشانه‌های پیشرفت در
هر یک از ویژگی‌ها تعریف شده می‌باشد، مشخص شده‌است. این بخش یک بررسی اجمالی در
سطح بالا از فعالیت‌ها را گزارش می‌دهد.

توسعه مدل جامع
--------------

پروژه FDD، با خرید در سطح بالا از محدوده سیستم و متن آن شروع می‌شود.
قدم بعد، ارائهٔ مدل‌های دقیق با جزئیات برای هر محدوده توسط گروه‌های کوچک ایجاد
شده و بررسی دقیق آن‌ها می‌باشد. یکی از مدل‌های ارائه شده یا ترکیبی از آن‌ها
برای تبدیل شدن به مدل برای هر محدوده از این دامنه، انتخاب شده‌است. مدل محدوده
این دامنه به تدریج به یک مدل کلی ادغام می‌شود.

ساخت لیستی از طرح‌ها
--------------------

اطلاعات در طول مدل‌سازی اولیه برای معرفی یک لیست از طرح‌ها، جمع‌آوری شده
است. محدوده موضوع هریک شامل فعالیت‌های کسب‌وکار و مراحل فعالیت پایه‌ای توسط
تجزیه کاربردی محدوده مربوط به موضوع برای لیست طبقه‌بندی شده در طرح می‌باشد. طرح‌ها
در این رابطه، اجزای کوچکتر عملکرد مشتری محور بیان شده در فرم می‌باشند که هریک
شامل عملکرد، نتیجه و کالا می‌شوند. به عنوان مثال مجموع فروش یا اعتبارسنجی رمز
عبور یک کاربر. تکمیل طرح‌ها نباید بیش از دو هفنه زمان ببرند، بلکه باید به اجزای
کوچکتر تقسیم شوند.

برنامه‌ریزی توسط طرح
--------------------

بعد از تکمیل لیست طرح، قدم بعد تولید برنامه توسعه می‌باشد. اختصاص مالکیت در
طرح‌ها (یا مجموعه طرح‌ها) به عنوان روندی برای برنامه‌نویسان.

طراحی بر اساس راهکارها
----------------------

برای هریک از راهکارها یک بسته تولید شده‌است. یک برنامه‌نویس ارشد، یک گروه
از طرح‌ها را که در طی دو هفته توسعه یافته‌است را انتخاب می‌کند. همراه با مکاتبه
با صاحبان کلاس مربوطه، برنامه‌نویس ارشد برای هر طرح و تصفیه مدل کلی، نمودارهای
متوالی دقیقی را بیرون می‌کشد. کلاس و پیش‌درآمد مکتوب شده‌است و در نهایت یک
بازرسی از طراحی برگزار می‌گردد.

ساخت بر اساس طرح
----------------

پس از فائق آمدن در بازرسی طراحی برای تولید فعالیت طراحی، عملکرد مشتری محور
برنامه‌ریزی می‌شود. هریک از صاحبان کلاس‌ها، برنامه‌نویسی کلاس‌هایشان را توسعه
می‌دهند. بعد از بازرسی برنامه‌نویس‌ها و آزمون واحدها، طرح تکمیل شده به مرحلهٔ
ساخت اصلی راه می‌یابد.

نقاط عطف
--------

از آن‌جا که طرح‌ها کوچک هستند، تکمیل یک طرح، نسبتاً کار کوچکی به حساب می‌آید.
برای گزارش دقیق پیگیری پروژه توسعه نرم‌افزار، مشخص نمودن روند ساخته شده در هر
طرح مهم می‌باشد؛ بنابراین FDD تعریفی از ۶ نقطه عطف در هر طرح می‌باشد که به
تدریج تکمیل می‌شوند. سه نقطه عطف اولیه در طول فعالیت طراحی و سه مورد دیگر در
طول ساخت آن تکمیل می‌شوند. برای کمک به ردیابی این روند، درصد کاملی به هر نقطه
عطف اختصاص داده شده‌است. زمانی‌که برنامه‌نویسی برای یک طرح آغاز می‌شود، ۴۴ درصد
تکمیل شده می‌باشد (دامنه خرید ۱ درصد، طراحی ۴۰ درصد، بازرسی از طراحی ۳ درصد؛ در
مجموع ۴۴ درصد).

بهترین شیوه ساخت
----------------

توسعه روند طرح که روی مجموعه‌ای از بهترین شیوه ساخت مهندسی نرم‌افزار ساخته
شده‌است، همه در یک چشم‌انداز طراحی مشتری محور هدف‌گذاری شده‌اند.

**مدل‌سازی دامنه کالا:** مدل‌سازی دامنه کالا متشکل از کاوش و شرح دامنه حل مشکل می‌باشد.
و نتیجه مدل محدوده کالا یک چارچوب کلی که به طرح اضافه می‌شود را فراهم می‌نماید.

**توسعه بر اساس طرح:** هر عملکرد بیش از حد پیچیده‌است که بتوان در طول دو هفته
اجرا شود؛ بنابراین باید به اجزای کوچکتر تقسیم شوند تا هر زیرمشکل برای تبدیل به
یک طرح کافی باشد. این روند ارائهٔ عملکرد صحیح و گسترش ویرایش سیستم را آسانتر
می‌کند.

**کلاس‌های فردی مالکیت (برنامه‌نویسی):** کلاس‌های فردی مالکیت که به معنای بخش‌های مختلف یا گروهی
از برنامه‌نویسان که به یک مالک اختصاص داده می‌شود، می‌باشند. مالک، در برابر
ثبات، عملکرد و یکپارچگی کلاس، مسئول می‌باشد.

**تیم طراحی:** یک تیم طراحی، تیمی است کوچک و پویا که فعالیت‌های کوچک را
توسعه می‌دهد. با انجام این کار، ذهن‌های متعدد همیشه برای تصمیم راجع به هر طرح
آماده می‌باشد و گزینه‌های مختلف همیشه قبل از انتخاب ارزیابی می‌شوند.

**بازرسی:** بازرسی‌ها برای اطمینان از طراحی و برنامه‌نویسی با کیفیت خوب در درجه اول با
تشخیص نقص‌های آن‌ها انجام می‌گیرد.

**مدیریت شکل‌گیری:** میریت شکل‌گیری کمک می‌کند تا تیم طراحی با شناسایی منبع
برنامه‌نویسی برای همهٔ طرح‌ها که در تاریخ مشخص انجام شده‌اند و برای حفظ سابقهٔ
تغییرات برای کلاس‌ها، آن‌ها را ارتقا می‌دهند.

**ساخت منظم:** ساخت منظم این اطمینان را ایجاد می‌کند که همیشه یک سیستم
به روز برای نشان دادن و مشخص نمودن خطاهای منابع برنامه‌نویسی برای طرح‌های اولیه
به مشتریان، وجود دارد.

**چشم‌انداز روند و نتایج:** با پیشرفت‌های مکرر، مناسب و گزارش دقیق در تمامی سطوح
داخلی و خارجی پروژه، بر اساس کار تکمیل شده، مدیران در اداره کردن صحیح پروژه
یاری می‌شوند.

متامدل
------

جدول۲- مدل داده‌ها برای اف دی دی

متامدل به تجسم هر دو فرایند و
داده‌های یک روش کمک می‌کند تا این روش‌ها بتوانند مقایسه شوند و اجزای این روش
بتوانند در روشی مهندسی به راحتی دوباره استفاده شوند. مزیت این روش، آن است که واضح،
جمع‌وجور و مطابق با استانداردهای یو ام‌ال می‌باشد.

در سمت چپ مدل، ابرداده به تصویر
کشیده شده‌است. پنج فعالیت اساسی درگیر در یک پروژه توسعه نرم‌افزار با استفاده از
اف دی دی نشان داده می‌شود. فعالیت‌ها همه شامل زیرفعالیت‌هایی که مطابق با
زیرفعالیت‌های موجود در روند شرح اف دی دی در وب‌سایت جف دلوکا، می‌باشند. سمت
راست مدل، ایده‌های طرح را نشان می‌دهد. این ایده‌ها از فعالیت‌های به تصویر کشیده
شده در سمت چپ دیاگرام نشات می‌گیرند. تعریفی از این ایده در جدول ۳، ارائه شده
است.

ابزار مورد استفاده
------------------

* **تنظیمات موردی:** ابزار شرکت‌های تجاری برای توسعه روند طراحی
* **تکنولوژی برتر در برنامه‌نویسی:** مجموعه‌ای تجاری از برنامه‌های کاربردی برای توسعه روند

طراحی

* **ابزار اف دی دی:** با هدف تولید یک ابزار با منبع باز و حمایت از عبور از سطح

فکر روش توسعه طرح

* **بیننده اف دی دی:** ابزاری برای نمایش و چاپ تعداد زیادی پارکینگ

منابع
-----

1. **^** **Coad, P.**، **Lefebvre,E.**
& **De Luca, J.** (1999). *Java Modeling*
In Color With UML: Enterprise Components and Process*. Prentice Hall*
International. (**ISBN 0-13-011510-X**)

2. **^** Palmer, S.R. , & **Felsing,J.M.**
(2002). *A Practical Guide to Feature-Driven Development*. Prentice Hall.
(**ISBN 0-13-067615-2**)

* **Interview with FDD-Creator Jeff DeLuca** (Podcast)

پیوند به بیرون
--------------

* ویژگی محور توسعه جامعه
* توسعه ویژگی‌محور در کرلی
* Nebulon FDD صفحه - Nebulon است عمل مشاوره از جف د لوکا
* توسعه وب سایت موفق روش‌های استفاده از FDD برای توسعه وب سایت پروژه
* ارائه کسب و کار واقعی ارزش با استفاده از ویژگی‌های محور توسعه - مقاله به بررسی اجمالی اساسی FDD
* FDD و چالاک مدل‌سازی
* بهتر نرم‌افزار سریع تر - کتاب دیگری در Coad سری ارجاع ویژگی محور توسعه است. نویسندگان اندی کارمایکل و دن Haywood شابک ‎۰-۱۳-۰۰۸۷۵۲-۱
* مصاحبه با FDD-خالق جف DeLuca (پادکست)