التطوير الموجه بالميزات
| جزء من سلسلة عن |
| تطوير البرمجيات |
|---|
التطوير القائم على الميزات ( FDD ) هو عملية تطوير برمجيات متكررة ومتزايدة . إنها طريقة خفيفة الوزن [ وفقًا لمن؟ ] أو Agile لتطوير البرمجيات . يمزج FDD بين العديد من أفضل الممارسات المعترف بها في الصناعة [ وفقًا لمن؟ ] في كيان متماسك. يتم دفع هذه الممارسات من منظور الوظيفة ( الميزة ) التي يقدرها العميل [ يحتاج إلى توضيح ] . الغرض الرئيسي منه [ وفقًا لمن؟ ] هو تقديم برمجيات ملموسة وعاملة بشكل متكرر في الوقت المناسب وفقًا للمبادئ وراء بيان Agile . [1]
تاريخ
تم ابتكار FDD في البداية بواسطة جيف دي لوكا لتلبية الاحتياجات المحددة لمشروع تطوير برمجيات مدته 15 شهرًا وشارك فيه 50 شخصًا في أحد البنوك الكبرى في سنغافورة في عام 1997. وقد أدى هذا إلى مجموعة من خمس عمليات تغطي تطوير نموذج شامل وإدراج الميزات وتخطيطها وتصميمها وبنائها. تتأثر العملية الأولى بشكل كبير بنهج بيتر كواد في نمذجة الكائنات . تتضمن العملية الثانية أفكار كواد حول استخدام قائمة الميزات لإدارة المتطلبات الوظيفية ومهام التطوير. العمليات الأخرى هي نتيجة لتجربة جيف دي لوكا. كانت هناك عدة تطبيقات لـ FDD منذ استخدامها الناجح في مشروع سنغافورة.
تم تقديم وصف FDD لأول مرة للعالم في الفصل 6 من كتاب Java modelling in Color with UML [1] بقلم بيتر كواد وإريك ليفبفر وجيف دي لوكا في عام 1999. لاحقًا، في كتاب ستيفن بالمر وماك فيلسينج A Practical Guide to Feature-Driven Development [2] (نُشر في عام 2002)، تم تقديم وصف أكثر عمومية لـ FDD منفصلًا عن نمذجة Java.
ملخص
FDD هي عملية تكرارية قصيرة تعتمد على النموذج وتتكون من خمسة أنشطة أساسية. لإعداد تقارير دقيقة عن الحالة وتتبع مشروع تطوير البرمجيات، يتم تحديد المعالم التي تشير إلى التقدم المحرز في كل ميزة. يقدم هذا القسم نظرة عامة عالية المستوى على الأنشطة. في الشكل الموجود على اليمين، يتم عرض نموذج العملية الفوقية لهذه الأنشطة. أثناء أول نشاطين متتاليين، يتم إنشاء شكل نموذجي عام. يتم تكرار الأنشطة الثلاثة الأخيرة لكل ميزة.

تطوير النموذج الشامل
يبدأ مشروع FDD بجولة رفيعة المستوى حول نطاق النظام وسياقه. بعد ذلك، يتم إنشاء نماذج مجال مفصلة لكل منطقة نمذجة بواسطة مجموعات صغيرة وتقديمها لمراجعة الأقران . يتم اختيار نموذج واحد أو أكثر من النماذج المقترحة لتصبح النموذج لكل منطقة مجال. يتم دمج نماذج منطقة المجال تدريجيًا في نموذج عام.
بناء قائمة الميزات
تُستخدم المعرفة التي تم جمعها أثناء النمذجة الأولية لتحديد قائمة من الميزات من خلال تحليل المجال وظيفيًا إلى مجالات موضوعية. تحتوي كل مجال موضوعي على أنشطة تجارية، وتشكل الخطوات داخل كل نشاط تجاري الأساس لقائمة ميزات مصنفة. الميزات في هذا الصدد عبارة عن أجزاء صغيرة من الوظائف التي يقدرها العميل والتي يتم التعبير عنها في النموذج "<action> <result> <object>"، على سبيل المثال: "حساب إجمالي عملية بيع" أو "التحقق من صحة كلمة مرور المستخدم". لا ينبغي أن يستغرق إكمال الميزات أكثر من أسبوعين، وإلا فيجب تقسيمها إلى أجزاء أصغر.
التخطيط حسب الميزة
بعد اكتمال قائمة الميزات ، تكون الخطوة التالية هي إنتاج خطة التطوير وتعيين ملكية الميزات (أو مجموعات الميزات) كفئات للمبرمجين .
التصميم حسب الميزة
يتم إنتاج حزمة تصميم لكل ميزة. يختار كبير المبرمجين مجموعة صغيرة من الميزات التي سيتم تطويرها خلال أسبوعين. بالتعاون مع مالكي الفئة المقابلة، يعمل كبير المبرمجين على رسم مخططات تسلسل مفصلة لكل ميزة ويصقل النموذج الإجمالي. بعد ذلك، تتم كتابة مقدمة الفئة والطريقة، وأخيرًا يتم إجراء فحص التصميم .
البناء حسب الميزة
بعد التخطيط لفحص التصميم الناجح لكل نشاط لإنتاج ميزة، يقوم مالكو الفئة بتطوير الكود لفئاتهم. بعد اختبار الوحدة وفحص الكود الناجح ، تتم ترقية الميزة المكتملة إلى البناء الرئيسي.
المعالم البارزة
نظرًا لأن الميزات صغيرة، فإن إكمال الميزة يعد مهمة صغيرة نسبيًا. لإعداد تقارير دقيقة عن الحالة وتتبع مشروع تطوير البرمجيات، من المهم تحديد التقدم المحرز في كل ميزة. لذلك، يحدد FDD ستة مراحل رئيسية لكل ميزة يجب إكمالها بالتتابع. يتم إكمال المراحل الرئيسية الثلاثة الأولى أثناء نشاط التصميم حسب الميزة، ويتم إكمال المراحل الرئيسية الثلاثة الأخيرة أثناء نشاط البناء حسب الميزة. لتتبع التقدم، يتم تعيين نسبة مئوية مكتملة لكل مرحلة رئيسية. في الجدول أدناه، يتم عرض المراحل الرئيسية ونسبة إكمالها. عند نقطة بدء الترميز، تكون الميزة مكتملة بنسبة 44% (الجولة الميدانية 1%، التصميم 40%، فحص التصميم 3% = 44%).
| شرح المجال | تصميم | فحص التصميم | شفرة | فحص الكود | الترويج للبناء |
|---|---|---|---|---|---|
| 1% | 40% | 3% | 45% | 10% | 1% |
أفضل الممارسات
يعتمد التطوير الموجه بالميزات على مجموعة أساسية من أفضل ممارسات هندسة البرمجيات التي تهدف إلى منظور الميزات الذي يقدره العميل.
- نمذجة كائنات المجال . تتكون نمذجة كائنات المجال من استكشاف وشرح مجال المشكلة المراد حلها. يوفر نموذج كائنات المجال الناتج إطارًا عامًا لإضافة الميزات إليه.
- التطوير حسب الميزة . أي وظيفة معقدة للغاية بحيث لا يمكن تنفيذها خلال أسبوعين يتم تقسيمها إلى وظائف أصغر حتى تصبح كل مشكلة فرعية صغيرة بما يكفي لتسميتها ميزة. وهذا يجعل من الأسهل تقديم الوظائف الصحيحة وتوسيع النظام أو تعديله.
- ملكية الفئة الفردية (الكود) . تعني ملكية الفئة الفردية أن أجزاء أو مجموعات مميزة من الكود يتم تعيينها لمالك واحد. ويكون المالك مسؤولاً عن الاتساق والأداء والسلامة المفاهيمية للفئة.
- فرق الميزات . فريق الميزات هو فريق صغير متشكل ديناميكيًا يطور نشاطًا صغيرًا. يتم دائمًا تطبيق أفكار متعددة على كل قرار تصميم، ويتم تقييم خيارات تصميم متعددة قبل اختيار أحدها.
- عمليات التفتيش . يتم إجراء عمليات التفتيش لضمان جودة التصميم والترميز بشكل أساسي من خلال اكتشاف العيوب.
- إدارة التكوين . تساعد إدارة التكوين في تحديد الكود المصدر لجميع الميزات التي تم إكمالها حتى الآن والحفاظ على سجل التغييرات التي تطرأ على الفئات أثناء قيام فرق الميزات بتحسينها.
- عمليات البناء المنتظمة . تضمن عمليات البناء المنتظمة وجود نظام محدث دائمًا يمكن عرضه على العميل والمساعدة في تسليط الضوء على أخطاء التكامل في الكود المصدر للميزات في وقت مبكر.
- وضوح التقدم والنتائج : يوجه المديرون المشروع باستخدام تقارير التقدم المتكررة والمناسبة والدقيقة من جميع المستويات داخل وخارج المشروع بناءً على العمل المكتمل.
النموذج الفوقي (النمذجة الفوقية)

تساعد النمذجة الوصفية في تصور كل من العمليات وبيانات الطريقة . وهذا يسمح بمقارنة الطرق، ويمكن إعادة استخدام أجزاء الطريقة في عملية هندسة الطريقة بسهولة. يتوافق استخدام هذه التقنية مع معايير UML .
يُظهر الجانب الأيسر من نموذج البيانات الوصفية الأنشطة الأساسية الخمسة المشاركة في مشروع تطوير برمجيات باستخدام FDD. تحتوي جميع الأنشطة على أنشطة فرعية تتوافق مع الأنشطة الفرعية في وصف عملية FDD. يُظهر الجانب الأيمن من النموذج المفاهيم المشاركة. تنشأ هذه المفاهيم من الأنشطة الموضحة في الجانب الأيسر من الرسم التخطيطي.
انظر أيضا
- تطوير البرمجيات الرشيقة
- التنمية القائمة على السلوك
- دورة حياة المشروع
- هندسة البرمجيات
- عملية تطوير البرمجيات
- هندسة البرمجيات
مراجع
- ^ "المبادئ وراء بيان Agile". 2019-06-11.
- 1. ^ Coad, P. , Lefebvre, E. & De Luca, J. (1999). Java modelling In Color With UML: Enterprise Components and Process . Prentice Hall International. ( ISBN 0-13-011510-X )
- 2. ^ Palmer, SR, & Felsing, JM (2002). دليل عملي للتطوير القائم على الميزات . برنتيس هول. ( ISBN 0-13-067615-2 )
روابط خارجية
- مجتمع التطوير القائم على الميزات
- التطوير القائم على الميزات في Curlie
- صفحة Nebulon FDD - Nebulon هي ممارسة الاستشارات الخاصة بـ Jeff De Luca
- منهجيات تطوير الويب الناجحة - استخدام FDD لمشاريع تطوير الويب
- تقديم قيمة تجارية حقيقية باستخدام التطوير القائم على الميزات - تقدم المقالة نظرة عامة أساسية على FDD
- FDD والنمذجة الرشيقة
- Better Software Faster - كتاب آخر في سلسلة Coad يشير إلى تطوير قائم على الميزات. المؤلفان Andy Carmichael وDan Haywood ISBN 0-13-008752-1
- مقابلة مع جيف دي لوكا، مؤسس FDD (بودكاست)
