Wednesday, June 29, 2011

Spiral model النموذج الحلزوني

Spiral model 


تم تقديم تلك الطريقة بواسطة باري دبليو بوهم Barry W. Boehm سنة 1988 و كان الدافع لذلك هو التعرف علي الأخطاء و المشاكل الغير متوقعة و التعديلات في المتطلبات التي غالباً ما تصيب تقدم المشروع.

وهو عبارة عن نموذج يستخدم في تحليل النظام أي دورة حياة النظام البرمجي Software life cycle,إن الفكرة الرئيسية خلف هذا النموذج هي فكرة الدورات, حيث يتكون هذا النموذج من مجموعة من الدورات فكل دورة من هذه الدورات تغطي مجموعة من مراحل تطوير البرنامج, ويتم اختيار عناصر كل دورة على حسب الأهمية فمثلاً البدء بأهم المتطلبات ثم إعداد المجسمات لهذه المتطلبات لتأكد من صحتها ثم ينتقل فريق تطوير البرنامج الى مرحلة التصميم ثم المراحل التي تليها حتى الانتهاء من هذا الجزء, في الدورة التالية يقوم فريق تطوير البرنامج بتحديد العناصر لهذه الدورة وإنهاءها على أن يتم ربطها بجميع المنتجات السابقة, وتستمر هذه الدورات الى أن ينهي فريق تطوير البرنامج إنتاجه للبرنامج.

خطوات تنفيذ النموذج الحلزوني (Spiral Model)
1.     أخذ المتطلبات من الزبون (Requirements)
2.     تحليل جزء من المشكلة وتسمى (Analysis).
3.     طرح حلول المشكلة وتسمى (Design).
4.     التأكد من المواصفات (Specification)
5.     تنفيذ التصميم ويسمى (Implementation).
6.     إجراء اختبار ويسمى (Testing).
7.     نشر هذا الجزء من البرنامج ويسمى (Deployment).
8.     صيانة الأخطاء التي تظهر فيه وتسمى (Maintenance).

يتضح بأن كل دورة ستكون وحدة متكاملة لإنتاج مرحلة من مراحل المشروع وبالتالي فإن الفكرة الرئيسية لهذه الطريقة هي أنك لا تقلق بأن يحدث خطأ ما أو تعديل ما فأنك سوف تكون قادراً علي إصلاح والقيام به في الدورة القادمة وهكذا حتى تنتهي الدورات ويخرج المشروع للنور

و تعتمد مراحل الطريقة الحلزونية تقريبا علي نفس مراحل الطرق السابقة لكن مع بعض التعديلات‚ فتأتي المرحلة الأولى مرحلة الاستكشاف discovery كأول مرحلة وهي المتعلقة بجمع المتطلبات وتحديد الأهداف Objectives . و في خلال مرحلة الاستكشاف ربما نضطر لكتابة بعض الأكواد الأولية Prototypes

أما المرحلة الثانية وهي أكبر المراحل أهمية هي التقييم Evaluation فهي المنوطة بتقدير المهام الأكثر خطورة في الدورة الحالية

أما المرحلة الثالثة هي مرحلة البناء والتطوير Development ويتم فيها بناء المهمات التي تم توضيح خطورتها في مرحلة التقييم ( المرحلة الثانية ) و نضرب لذلك مثالاً: لو نتج عن مرحلة التقييم أن الخوارزم Algorithm المكتوب يحتمل أن يكون صعباً جداً أو ربما مستحيلاً فستكون المهمة الرئيسية في المرحلة الثالثة في الدورة الحالية هي تمثيل بناء و اختبار ذلك الخواريزم

و نصل إلي المرحلة الرابعة و هي التحليل و التخطيط
و بهذا نكون قد أنهينا دورة كاملة في الحلزون و ننتقل للدروة التالية وهكذا حتى ننتهي ومن المتوقع أن يكون كل دورة قصيرة الوقت وهذا يعتمد علي نتائج الدورة السابقة


وهنالك عدة مزايا لهذا النموذج ومنها:
أن المتطلبات الأساسية التي عرفت في الدورات الأولى سوف تختبر جيداً في كل دورة.

أن هذا النموذج يوافق طبيعة العمل وخاصة في مرحلة جمع المتطلبات لأنه يبدأ مع الأهم والأكثر عمومية ثم ينتقل الى الكثر تفصيلاً.

أنه يقبل التغيير والتعديل وذلك لأنه كما ذكرنا سابقاً انه يعطي فرصة اكبر لفهم التفاصيل وان أي تغيير يمكن أن يضاف في الدورات القادمة.


اعطائنا الأولية للقيام بالمهام الأكبر خطورة يعطي فرصة أكبر لنجاح المشروع لأنك تتجنب الكثير من المخاطر التي غالباً ما تحدث في أي مشروع أو تحت ضغط المتطلبات الجديدة التي قد تطرأ علي النظام و هذا يمثل ميزة كبيرة للطريقة الحلزونية و بتكرار التحليل و التخطيط و تجديدهما في كل دورة من دورات الطريقة الحلزونية فذلك يزيل معظم العوائق الكامنة في طريق إنهاء المشروع. فإنك مع كل دورة من الدورات تحصل علي ميزة جديدة و معرفة أكبر بالمشروع مما يثري التصميم و يصب ذلك كملة في مصلحة المشروع و خروجة بشكل قوي.


من الواضح أن هذا النموذج صعب الإدارة وخاصةً اذا اخطاء فريق تطوير البرنامج في اختيار عناصر كل دورة.

العيوب:
النموذج الحلزوني “قلل من المشاكل بشكل كبير “ولكن يمكن أن تظهر نفس المشكلة في التي كانت تظهر في النموذج الأول" الشلال" ..
حيث في حال أكتشف المبرمج أن هناك خطأ أو نقص في التصميم لا يمكن العودة للخلف ويجب الانتظار حتى البدء في الدورة الثانية


صعوبة الحصول علي مخرج نهائي أو تقييم لتطور المشروع بعد كل دورة من الدورات، وربما في أسأ الحالات تتحول الطريقة إلي طريقة الشلال بسبب تضخم كل دورة علي حدى.


إن إخراج تصور مبدئي لعدد الدورات التي ستكون كفيلة بإخراج المشروع ربما تكون مستحيلة لأن ذلك سيختلف من مشروع لآخر.

العبئ الثقيل الناتج من القيام بأربع مراحل في كل دورة وصعوبة عمل التربيط اللازم لتلك الدورات وتعظم المشكلة، لو انقسم فريق العمل إلي عدة فرق عمل في آن واحد فعندها غالباً ما سنفقد التزامن Synchronization في عمل تلك الفرق.
الحل أنهم قاموا بتطوير نموذج الحلزوني (Spiral Model) إلى نموذج جديد يسمى: النموذج المتكرر (Iterative Model)..


وفي النهاية قد قاموا بالجمع بين النماذج الشلال والحلزوني والمتكرر (Waterfall, Spiral, Iterative Models).
البعض سماه النموذج الحلزوني أيضا, والآخرون قالو أنه النموذج الحلزوني المتكرر ( Spiral- Iterative Model )..

وتعد الطريقة الحلزونية فرد من أفراد عائلة إدارة هندسة البرمجيات بطريقة العمليات التكرارية Iterative process  وهي تكرار خوارزم كل مسألة محددة بحيث يكون المخرج من أي مرحلة هو المدخل للمرحلة الثانية


أخوكم خالد أحمد أبو دقة

تعليقات الفيس
5 تعليقات بلوجر

5 comments :

وما يلفظ من قول إلا لديه رقيب عتيد

كورس متقدم مايكروسوفت اوفيس

آخر المشاريع على GitHub

آخر الأعمال على بيهانس

FaceBook

من تغريداتي

من قناتي

صوت

الأكثر قراءة ومشاهدة