المهارات الرقمية12 فصل أول

الثاني عشر خطة جديدة

icon

مفهوم دورة حياة تطوير النظام (SDLC)

إنّ لكل نظام رحلة بناء تتضمن مجموعة من المراحل المتسلسلة والمنظمة التي يمر بها أي نظام أثناء عملية بنائه.  وحتى تتم عملية تطوير أي نظام جديد أو تعديل لنظام قائم، هناك عدة مراحل لا بدّ أن يمر بها النظام.

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

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

 

مراحل دورة حياة تطوير النظام:

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

وعادةً لا بدّ لاي نظام من المرور بالمراحل الظاهرة في االشكل التالي:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

وفيما يلي شرحاً توضيحياً حول كل مرحلة من المراحل:

 

المرحلة الأولى: التخطيط وتحليل المُُتطلََّبا ت  ()Planning and Requirement Analysis)

تتضمن هذه المرحلة ثلاث مهمات رئيسة هي:

1.تحديد المشكلة(  تحديد الأهداف) ويقصد به فهم المشكلة التي يسعى النظام لحلها أو الحاجة التي يسعى لتلبيتها لدى المستخدم، حيث يتم معرفة كل من :

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

2.جمع المتطلبات: (تحليل متطلبات الفئة المستهدفة) جمع معلومات عن احتياجات المستخدمين، العمليات الحالية، القيود، والمواصفات الفنية. اذ يجب الإلتقاء بالعملاء لغايات جمع المعلومات المطلوبة والتي تتضمن:

  • البيانات الخاصة بالمشروع
  • مواصفات المشروع
  • إعداد خارطة طريق لغايات التطوير والتحسين
  • وضع الجدول الزمني اللازم لتنفيذ المشروع

3.تحليل المتطلبات (تحليل الموارد المتاحة): تحليل المعلومات المجمعة وتحديد المتطلبات الوظيفية وغير الوظيفية للنظام،من خلال معرفة ما ينبغي للنظام من تحقيقه من خلال التفاعل مع العملاء والمستخدمين والتي ممكن اجراؤها من خلال :

  • اجراء مقابلات
  • توزيع استبانات
  • عمل دراسات وأبحاث لمعرفة احتياجات السوق

 

ويبين الشكل التالي خطوات هذه المرحلة الثلاث

التي تم شرحها بالأعلى:

 

 

 

 

مثال:

والآن، لنتخيل اننا سوف نقوم  بإعداد دورة حياة تطوير نظام (عيادة طبيب أسنان) والذي سوف يرافقنا طوال شرح الدرس. بحيث نقوم بتطبيق كل مرحلة من المراحل التي سوف نتعلمها من خلال هذا المثال.

ولنبدأ بالمرحلة الأولى، مرحلة التخطيط  لبناء نظام لعيادة أسنان

تحديد الأهداف (تحديد المشكلة)

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

 

 جمع المتطلبات (تحليل متطلبات الفئة المستهدفة )

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

 

تحليل المتطلبات (تحليل الموارد )

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

 

المرحلة الثانية: تحديد المُُتطلََّبات (Defining Requirements)

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

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

وينتج عن هذه المرحلة وثيقة المواصفات الخاصة بمتطلبات البرنامج (Software Requirement  Specification) والتي يرمز لها بالمختصر (SRS)

إذ يتم توثيق كل المعلومات والمتطلبات التي يحتاجها هذا النظام  الحاسوبي والتي تشمل مهام النظام والمتطلبات التكنولوجية الخاصة بالنظام  بالإتفاق مع كل الأطراف (العملاء ومحللي السوق).

وحسب المثال الذي لدينا، فإن  وثيقة المواصفات الخاصة بمشروع نظام عيادة الأسنان تشمل:

أ.وثيقة متطلبات البرنامج التي تحدد مهام المستخدم

  • فتح سجلات المرضى وتحميل الملفات اللازمة
  • إدارة المواعيد والحجوزات (أضافة موعد ، تعديل موعد، حذف موعد)
  • تحديد حالة المريض (مكتملة /غير مكتملة) مثلاً يحتاج الى جلسات أخرى أو تم الانتهاء من معالجة الحالة
  • إعطاء أولوية لحالة مستعجلة
  • إرسال إشعارات للمريض لتذكيره بالموعد، دفع التكاليف، إلغاء الحجز أو تعديله
  • إدارة الفواتير والمدفوعات (دفع قسط،اتمام عملية الدفع،إصدار فاتورة، محاسبة التأمين،إصدار تقارير  مالية) 

ب.تحديد المتطلبات التكنولوجية :

  • الأجهزة والمعدات الواجب توفرها
  • البرامح الخاصة لحماية بيانات المرضر
  • مخزون المواد الطبية اللازمة للعيادة

 

المرحلة الثالثة: التصميم (Design)

بعد الانتهاء من مرحلة تحديد المتطلبات والحصول على وثيقة (SRS) ، تكون هذه الوثيقة بمثابة حجر الأساس للمرحلة الثالثة وهي مرحلة التصميم. اذ يتم الاستفادة منها في إعداد التصاميم الخاصة بالنظام من خلال إدراجها في وثيقة  مواصفات وثيقة التصميم (Design Document Specification: DDS).

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

إذ يتم في هذه المرحلة:

  • تحديد المدخلات والمخرجات
  • تحديد أجزاء النظام
  • تصميم واجهة المستخدم
  • تصميم قواعد البيانات
  • تحديد آلية عمل النظام

 

وحسب المثال الذي نعمل عليه، فإن مشروع نظام عيادة الأسنان يتطلب تصميم واجهة المستخدم وقاعدة البيانات على النحو التالي:

أ.واجهة المستخدم

  • إمكانية  إضافة مريض جديد
  • إمكانية تعديل بيانات مريض موجود
  • إمكانية حجز موعد،التعديل على موعد،الغاء موعد
  • إمكانية طباعة تقارير حول حالة كل مريض
  • إمكانية إجراء العمليات المالية واصدار الفواتير

 

ب.قاعدة البيانات

  • إنشاء جدول يحتوى على بيانات كل المرضى (الاسم ،الرقم الوطني، تاريخ الميلاد،الجنس، الحالة المرضية،...)
  • إنشاء جدول يحتوي على المواعيد المحجوزة مرتبطا باسماء المرضى
  • إعداد رسم توضيحي لمخططات قاعدة البيانات والعلاقة بين الجدول وكيفية إرتباطها.

 

المرحلة الرابعة: التطوير (Development)

في هذه المرحلة يقوم مطور النظام (أو فريق المطورين)  بتحويل كل مخرجات عملية التصميم الى صيغة برمجية (Code)، إذ يقومون بكتابة  البرنامج اللازم لهذا  للمنتج. وذلك من خلال كتابة المقاطع البرمجية (code) الخاصة بعمل النظام مع مراعاة امكانية تعديلها لغايات التطوير والتحسين المستمر.

حسب مثالنا السابق(نظام عيادة طبيب الأسنان)، يتم اختيار اللغة المناسبة للمشروع وكتابة الكود الخاص من خلال المبرمج المسؤول.

 

المرحلة الخامسة: الاختبار (Testing)

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

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

 

المرحلة السادسة: النشر والصيانة (Publishing and Maintenance)

المقصود بمرحلة نشر النظام؛ جعل النظام  متاحًًا للاستخدام في بيئة حقيقية، و ذلك ضمن عدد من المراحل؛ للتأكد من أنََّ النظام يعمل بسلاسة وسهولة ويُُسْْر حسب الطريقة المُُخطََّط لها .

اما بالنسبة لمرحلة الصيانة، فيقصد بها إخضاع النظام للصيانة الدورية؛ حيث يُصلِّح الفريق الأخطاء ويحل مشكلات العملاء، بالإضافة إلى ذلك، يراقب الفريق أداء النظام العام  لضمان تنفيذه جميع المهام المنوطة به بصورة صحيحة.

 

النماذج الخاصة بدورة حياة تطوير النظام ( SDLC Models(

هناك العديد من النماذج التي يمكن اعتمادها أثناء العمل على دورة حياة تطوير النظام،إذ تختلف هذه النماذج من حيث:

  • آلية تطبيق النموذج
  • إيجابيات النموذج
  • سلبيات النموذج

 

 

ويمثل الشكل التالي أهم ثلاثة نماذج خاصة بـ SDLC :  

 

 

 

 

 

 

 

 

 

وفيما يلي شرحًا توضيحيًا لكل نموذج:

أولاً: نموذج الشلال (Waterfall)

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

ويتألف النموذج من ست مراحل يُبينها الشكل التالي:

 

 

 

 

 

 

 

والتي سبق وشرحنا كل مرحلة منها بالتفصيل في بدايات هذا الدرس.

 

ولهذا النموذج عدد من الإيجابيات (مزايا) وعدد من السلبيات (محددات) يمكن تلخيصها في الجدول التالي:

 

ثانياً: النموذج الرشيق (Agile)

يعتبر هذا النموذج عملية تدريجية ومتكررة لتطوير البرمجيات.حيث يعمل نموذج (Agile) على تقسيم  المهام  الى مجموعة من المراحل الصغيرة التي يُطلق عليها اسم (Iteration) أو (Sprint) ويمكن تسمية هذه المراحل بالتكرارات.

كل مرحلة أو تكرار من هذه التكرارات يتبع مسارًا خطيا،بحيث ينتهي التكرار أو المرحلة بانتهاء المدة الزمنية التي تم تحديدها والتي قد تمتد من أسبوع واحد إلى أربعة أسابيع.

بعد إنتهاء المدة الزمنية المحددة،تبدأ عملية مراجعة ما تم تحقيقه من متطلبات وجمع التغذية الراجعة من المستخدمين لغايات معرفة التحسينات اللازم إجراؤها والتعديلات الواجب إدخالها على المشروع خطوة بخطوة.

إن هذه العملية التي تحدثنا عنها،تجعل هذا النموذج قادرًا على منح النظام مرونة عالية وجعله أكثر قدرة على التكيف مع المتغيرات لذا يتم استخدامه في الأنظمة التي تتطلب تكيفًا سريعًا. وهذه الخاصية جعلت مطوري البرامج يطلقون على هذا النموذج اسم (Change Driven) أي موُجه بالتغيير.

 

مراحل النموذج الرشيق (Agile)

كما سبق وتحدثنا،فإن كل تكرار (Sprintحسب هذا النموذج  يمر بالمراحل الخمسة التي تعرفنا عليها وهي :

البناء،التصميم،التخطيط،التحليل والاختبار الموضحة بالشكل التالي:

 

 

 

 

 

 

مبادئ النموذج الرشيق (Agile)

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

 

 

 

 

 

 

 

خصائص العمليات في النموذج الرشيق (Agile)

يمتاز هذا النموذج بعدد من الخصائص يمثلها الشكل التالي:

 

 

 

 

 

 

 

 

 

 

ثالثًا: نموذج الحلزون (Spiral)

يعتبر هذا النموذج نمودجًا شاملًا يحتوي على جميع نماذج دورة تطوير حياة النظام، فهو نموذج يمزج ما بين النموذج الشلال والنموذج الرشيق. ويمتاز بشكله الحلزوني ووجود الحلقات المتعددة فيه، وكل حلقة  تمثل مرحلة من مراحل عمليات التطوير.

وأهم ما يتميز به هذا النموذج هو مقدرته على إدارة المخاطر في المشروعات المعقدة و التي تتطلب دراسة دقيقة للمخاطر التقنية والتشغيلية.

 

مراحل نموذج الحلزون (Spiral)

يمثل الشكل التالي مراحل تطوير النظام من خلال

نموذج الحلزون(Spiral).

وكما سبق وأشرنا،فإن كل حلقة تمثل مرحلة من مراحل عمليات التطوير.

حيث تشير الأرقام الى كل  مرحلة من المراحل:

1.مرحلة تحديد الأهداف والحلول البديلة.

2.مرحلة تحديد المخاطر وسبل مواجهتها.

3.مرحلة تطوير نسخة جديدة من المنتج

4.مرحلة المراجعة والتخطيط للمرحلة التالية

 

مواجهة المخاطر في نموذج الحلزون (Spiral)

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

ويعتمد نموذج الحلزون على استراتيجية فاعلة للتعامل مع المخاطر ومواجهتها حتى يضمن نجاح المشروع.

وتتمثل أهمية هذه الاستراتيجية في النقاط التالية:

 

 

 

 

 

 

الحالات والمشاريع التي تعتبر مناسبة لإستخدام نموذج الحلزون (Spiral) 

. 1المشروعات الضخمة: يُستخدَم نموذج الحلزون في المشروعات الكبيرة التي تتطلَّب تخطيطًا وتنفيذًا دقيقين، واختبارًا مستمرًّا للمخاطر في مراحل مُتعدِّدة.

. 2الإصدارات المُتكرِّرة: يُستخدَم نموذج الحلزون عند الحاجة إلى إصدار نسخ مُتكرِّرة من المُنتَج بصورة دورية.

. 3النماذج الأوَّلية: تتطلَّب عملية تطوير البرمجيات أحيانًا إنشاء نموذج أوَّلي؛ لفهم المُتطلَّبات اللازمة، أو تقييم الحلول المُمكِنة.

. 4تقييم المخاطر: قد يكون حتليل المخاطر وتقييمها جزءًا أساسيًّا من عملية التطوير، كما في المشروعات العسكرية، والمشروعات المالية، والمشروعات الطبية.

. 5المُتطلَّبات المُعقَّدة والغامضة: يُفضَّل استخدام نموذج الحلزون في المشروعات ذات المُتطلَّبات غير الواضحة أو المُعقدَّة التي قد تتغيَّر مع تقدُّم سَيْر العمل في المشروع.

 

 

Jo Academy Logo