توسعه ویژگی‌محور
در ترجمه‌ی ویکی‌پدیا، دانشنامه آزاد، توسعه ویژگی محور(FDD)، یک فرایند توسعه نرم‌افزار تکرارشونده و افزایشی می‌باشد. این مورد یکی از از روش‌های بسیار راحت یا سریع، برای توسعه نرم‌افزار است. FDD، تعدادی از صنعت‌های به رسمیت شناخته‌شده را با بهترین شیوه به یک کل منسجم متصل می‌کند. این شیوه‌ها، همه از عملکرد چشم‌انداز مشتری‌محوری تبعیت می‌کنند. هدف اصلی آن، ارائه محسوس با روش زمانی استفاده از نرم‌افزار به صورت متناوب می‌باشد.
FDD ابتدا توسط جف دلوکا جهت پاسخگویی به نیازهای ویژه از پروژه نرم‌افزار توسعه(۵۰ ماه، ۵۰ شخص) در یک بانک بزرگ سنگاپور در سال ۱۹۹7 ابداع شد. جف دلوکا پنج فرایندی که روند توسعهٔ یک مدل کلی و فهرست آن، برنامه‌ریزی، طراحی، ساخت و ویژگی‌های آن را پوشش می‌دهد، ارائه می‌نماید. اولین فرایند، به شدت تحت تأثیر روند مدل‌سازی پیتر کود می‌باشد. فرایند دوم شامل ایده‌های پیتر کود با استفاده از لیست ویژگی‌هایی برای مدیریت الزامات عملکردی و توسعهٔ وظایف، می‌باشد. فرایندهای دیگر و ترکیب دیگر فرایندها و تبدیل آن به یک کل منسجم، نتیجهٔ تجربه جف دلوکا می‌باشد. تا استفاده موفقیت‌آمیز بر روی پروژه سنگاپور، چندین اجرا برای FDD وجود داشته‌است.
شرح FDD برای اولین بار در جهان، در فصل ۶ کتاب "مدلینگ در رنگ با یو ام‌ال جاواً در سال ۱۹۹۹ توسط پیتر کود، اریک لوفور و جف دلوکا، معرفی شد. سپس در کتاب‌های استیفن پالمر و مک فلشینگ با عنوان "راهنمای عملی برای پیشرفت توسعه محور"، که در سال ۲۰۰۲ منتشر شد، که جدا از کتاب مدلینگ جاوا، تعریف جدیدی از اف دی دی داده شده‌است.
روند اصلی و نهایی FDD را می‌توان در وب‌سایت جف دلوکا و در زیر مجموعهٔ مقالات، جستجو کرد. هم‌چنین وب‌سایتی عمومی جهت یادگیری بیشتر راجع به FDD، پرسش سوالات و تجربه‌ها و بحث راجع به روندهای خودشان، وجود دارد.
FDD یک روند تکرار کوتاه و مدل محور است که شامل پنج فعالیت اساسی می‌باشد. برای گزارش دقیق و پیگیری پروژه توسعه نرم‌افزار، نقاط ضعف که نشانه‌های پیشرفت در هر یک از ویژگی‌ها تعریف شده می‌باشد، مشخص شده‌است. این بخش یک بررسی اجمالی در سطح بالا از فعالیت‌ها را گزارش می‌دهد.
پروژه FDD، با خرید در سطح بالا از محدوده سیستم و متن آن شروع می‌شود. قدم بعد، ارائهٔ مدل‌های دقیق با جزئیات برای هر محدوده توسط گروه‌های کوچک ایجاد شده و بررسی دقیق آن‌ها می‌باشد. یکی از مدل‌های ارائه شده یا ترکیبی از آن‌ها برای تبدیل شدن به مدل برای هر محدوده از این دامنه، انتخاب شده‌است. مدل محدوده این دامنه به تدریج به یک مدل کلی ادغام می‌شود.
اطلاعات در طول مدل‌سازی اولیه برای معرفی یک لیست از طرح‌ها، جمع‌آوری شده است. محدوده موضوع هریک شامل فعالیت‌های کسب‌وکار و مراحل فعالیت پایه‌ای توسط تجزیه کاربردی محدوده مربوط به موضوع برای لیست طبقه‌بندی شده در طرح می‌باشد. طرح‌ها در این رابطه، اجزای کوچکتر عملکرد مشتری محور بیان شده در فرم می‌باشند که هریک شامل عملکرد، نتیجه و کالا می‌شوند. به عنوان مثال مجموع فروش یا اعتبارسنجی رمز عبور یک کاربر. تکمیل طرح‌ها نباید بیش از دو هفنه زمان ببرند، بلکه باید به اجزای کوچکتر تقسیم شوند.
بعد از تکمیل لیست طرح، قدم بعد تولید برنامه توسعه می‌باشد. اختصاص مالکیت در طرح‌ها (یا مجموعه طرح‌ها) به عنوان روندی برای برنامه‌نویسان.
برای هریک از راهکارها یک بسته تولید شده‌است. یک برنامه‌نویس ارشد، یک گروه از طرح‌ها را که در طی دو هفته توسعه یافته‌است را انتخاب می‌کند. همراه با مکاتبه با صاحبان کلاس مربوطه، برنامه‌نویس ارشد برای هر طرح و تصفیه مدل کلی، نمودارهای متوالی دقیقی را بیرون می‌کشد. کلاس و پیش‌درآمد مکتوب شده‌است و در نهایت یک بازرسی از طراحی برگزار می‌گردد.
پس از فائق آمدن در بازرسی طراحی برای تولید فعالیت طراحی، عملکرد مشتری محور برنامه‌ریزی می‌شود. هریک از صاحبان کلاس‌ها، برنامه‌نویسی کلاس‌هایشان را توسعه می‌دهند. بعد از بازرسی برنامه‌نویس‌ها و آزمون واحدها، طرح تکمیل شده به مرحله‌ی ساخت اصلی راه می‌یابد.
از آن‌جا که طرح‌ها کوچک هستند، تکمیل یک طرح، نسبتاً کار کوچکی به حساب می‌آید. برای گزارش دقیق پیگیری پروژه توسعه نرم‌افزار، مشخص نمودن روند ساخته شده در هر طرح مهم می‌باشد؛ بنابراین FDD تعریفی از 6 نقطه عطف در هر طرح می‌باشد که به تدریج تکمیل می‌شوند. سه نقطه عطف اولیه در طول فعالیت طراحی و سه مورد دیگر در طول ساخت آن تکمیل می‌شوند. برای کمک به ردیابی این روند، درصد کاملی به هر نقطه عطف اختصاص داده شده‌است. زمانی‌که برنامه‌نویسی برای یک طرح آغاز می‌شود، 44 درصد تکمیل شده می‌باشد (دامنه خرید 1 درصد، طراحی 40 درصد، بازرسی از طراحی 3 درصد؛ در مجموع 44 درصد).
توسعه روند طرح که روی مجموعه‌ای از بهترین شیوه ساخت مهندسی نرم‌افزار ساخته شده‌است، همه در یک چشم‌انداز طراحی مشتری محور هدف‌گذاری شده‌اند.
مدل‌سازی دامنه کالا: مدل‌سازی دامنه کالا متشکل از کاوش و شرح دامنه حل مشکل می‌باشد. و نتیجه مدل محدوده کالا یک چارچوب کلی که به طرح اضافه می‌شود را فراهم می‌نماید.
توسعه بر اساس طرح: هر عملکرد بیش از حد پیچیده است که بتوان در طول دو هفته اجرا شود؛ بنابراین باید به اجزای کوچکتر تقسیم شوند تا هر زیرمشکل برای تبدیل به یک طرح کافی باشد. این روند ارائهٔ عملکرد صحیح و گسترش ویرایش سیستم را آسانتر می‌کند.
کلاس‌های فردی مالکیت (برنامه‌نویسی): کلاس‌های فردی مالکیت که به معنای بخش‌های مختلف یا گروهی از برنامه‌نویسان که به یک مالک اختصاص داده می‌شود، می‌باشند. مالک، در برابر ثبات، عملکرد و یکپارچگی کلاس، مسئول می‌باشد.
تیم طراحی: یک تیم طراحی، تیمی است کوچک و پویا که فعالیت‌های کوچک را توسعه می‌دهد. با انجام این کار، ذهن‌های متعدد همیشه برای تصمیم راجع به هر طرح آماده می‌باشد و گزینه‌های مختلف همیشه قبل از انتخاب ارزیابی می‌شوند.
بازرسی: بازرسی‌ها برای اطمینان از طراحی و برنامه‌نویسی با کیفیت خوب در درجه اول با تشخیص نقص‌های آن‌ها انجام می‌گیرد.
مدیریت شکل‌گیری: میریت شکل‌گیری کمک می‌کند تا تیم طراحی با شناسایی منبع برنامه‌نویسی برای همهٔ طرح‌ها که در تاریخ مشخص انجام شده‌اند و برای حفظ سابقه‌ی تغییرات برای کلاس‌ها، آن‌ها را ارتقا می‌دهند.
ساخت منظم: ساخت منظم این اطمینان را ایجاد می‌کند که همیشه یک سیستم به روز برای نشان دادن و مشخص نمودن خطاهای منابع برنامه‌نویسی برای طرح‌های اولیه به مشتریان، وجود دارد.
چشم‌انداز روند و نتایج: با پیشرفت‌های مکرر، مناسب و گزارش دقیق در تمامی سطوح داخلی و خارجی پروژه، بر اساس کار تکمیل شده، مدیران در اداره کردن صحیح پروژه یاری می‌شوند.
جدول۲- مدل داده‌ها برای اف دی دی
متامدل به تجسم هر دو فرایند و داده‌های یک روش کمک می‌کند تا این روش‌ها بتوانند مقایسه شوند و اجزای این روش بتوانند در روشی مهندسی به راحتی دوباره استفاده شوند. مزیت این روش، آن است که واضح، جمع‌وجور و مطابق با استانداردهای یو ام‌ال می‌باشد.
در سمت چپ مدل، ابرداده به تصویر کشیده شده‌است. پنج فعالیت اساسی درگیر در یک پروژه توسعه نرم‌افزار با استفاده از اف دی دی نشان داده می‌شود. فعالیت‌ها همه شامل زیرفعالیت‌هایی که مطابق با زیرفعالیت‌های موجود در روند شرح اف دی دی در وب‌سایت جف دلوکا، می‌باشند. سمت راست مدل، ایده‌های طرح را نشان می‌دهد. این ایده‌ها از فعالیت‌های به تصویر کشیده شده در سمت چپ دیاگرام نشات می‌گیرند. تعریفی از این ایده در جدول ۳، ارائه شده است.
طراحی فکر روش توسعه طرح
1. ، Lefebvre,E. & (1999). "Java Modeling In Color With UML: Enterprise Components and Process". Prentice Hall International. ()
2. Palmer, S.R. , & Felsing,J.M. (2002). "A Practical Guide to Feature-Driven Development". Prentice Hall.