Sunday, December 2, 2012

Methodologies SDLC

تعرف دورة حياة النظام (System Development Life Cycle)  على أنها مدى الانشطة المرتبطة بالنظام والتي تضم أنشاء النظام وتطويره وتنفيذه وتشغيله وصيانته وتسليمه بالكامل.ظهر هذا العلم بسبب الصعوبات التي واجهها المبرمجيين والمطوريين في بداية الاربعينات من حيث عدم وجود قواعد وأنظمة تحدد العمليات المتتالية لبناء النظام البرمجي أظافة الى عدم وجود سياسة تحدد العمليات وتقسم الاعمال على فريق العمل والاكثر من هذا أفتقار المراجع والقصد من هذا توثيق مراحل بناء النظام البرمجي ضمن قواعد مسبقة لاجل الرجوع اليها في حالة أريد تغير او تطوير أحد وظائفه نظرا للبيئة المحيطة ,هذه الاسباب ادت بدورها الى ظهور تقنية  دورة حياة الانظمة في أواخر عام 1960 بحيث ظهرت الشرارة الاولى بظهور تخصص هندسة الحاسبات الذي أدخل الى نطاق التخصصات الحاسوبية ويركز هذا التخصص على تقنية دورة حياة الانظمة بجميع جوانبها.وهناك أعتقاد خاطئ عند البعض أن البرمجة عبارة عن عملية لصنع النظام البرمجي بل هي مرحلة من مراحل بناء النظام البرمجي وهذه المراحل توصف الخطوات المتشاركة لبناء وتطوير الانظمة من بداية دراسة الجدوى مرورا ببناءه الى صيانته واخيرا تسليمه.على مر السنين ظهرت الكثيرمن المنهجات التي أعطت طابع جديد لدورة حياة الانظمة وايضا صاحب هذا التطور ظهور لغات متخصصة تستخدم في مراحل بناء النظام, ويرجع السبب في تطوير دورة حياة الانظمة الى ان النظام البرمجي بطبيعته يحتاج الى التطوير والتغيير ليواكب المتطلبات المستجدة والاختلافات التي تظهر في البيئة المحيطة به . 

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

الانشطة الفنية والتقنية

Ø      تعريف فريق العمل(محلل,مصمم,مبرمج,مختبر)
Ø      تنصيب النظام(التدريب,ككتابة الدليل الارشادي)
Ø      دعم الانتاجية(ادارة المشاكل والحلول )
Ø      تعريف الاصدارات المحدثة وتقييم البدائل
الانشطة االأدارية

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

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

 النموذج الشلالي (Waterfall Mode)

      النماذج (Prototyping)

      أطار العمل التكراري التزايدي (Iterative, Increment   Framework)
      النموذج اللولبي (Spiral Mode)
      تطوير السريع للتطبيقات (Rapid Application Development)    
      تطوير المشترك للتطبيقات (Join Application Development)     
     تطوير البرامجيات المرن(Agile Software Development)    
أن ابسط منهجية ونموذج لدورة حياة الانظمة هو مايعرف بالنموذج الشلالي او التتابعي (Waterfall Mode) الذي يركز على أعداد الانظمة بشكل تسلسلي اي تبدأ مرحلة بعد أنتهاء المرحلة التي تسبقها .يتألف النموذج من عدة مراحل تضم كل مرحلة مجموعة من الانشطة يجب ان تنجز ضمن فترات زمنية محددة مسبقا وبعد أكتمال جميع الانشطة الموجودة في المرحلة الحالية يمكن الانتقال الى المرحلة التالية لبدأ في تنفيذ أنشطتها.الرسم التالي يوضح الموديل الشلالي:


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


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


2 comments: