المدونة--الفصل الأولالفصل الثانيهندسة البرمجياتمبادئ هندسة البرمجيات | الوحدة الأولى | الدرس الأول

مبادئ هندسة البرمجيات | الوحدة الأولى | الدرس الأول

مبادئ هندسة البرمجيات

مبادئ هندسة البرمجيات هو عنوان الدرس الأول من الوحدة الاولى التي تحمل اسم “هندسة البرمجيات” من مقرر “هندسة البرمجيات”.

ستتعرف في هذا الموضوع على مفهوم هندسة البرمجيّات، ومعرفة دورة حياة تطوير البرمجيّات (Software Development Life Cycle – SDLC)، وتطبيقها على مثال لدورة حياة تطوير تطبيق هاتف ذكي، وتمييز فرص العمل في هندسة البرمجيّات، بالإضافة لمعرفة منهجيات تطوير البرمجيّات (Software Development Methodologies) المختلفة، وتمييز مراحلها، وأهم مزايا كل منهجية وتحدياتها.

مبادئ هندسة البرمجيات

لذا قم بقراءة أهداف التعلُّم بعناية، ثم أعد قراءتها وتأكَّد من تحصيل كافة محتوياتها بعد انتهائك من دراسة الموضوع.

أهداف التعلُّم

  • معرفة مفهوم هندسة البرمجيّات.
  • معرفة دورة حياة تطوير البرمجيّات وتطبيقها في تطوير تطبيق هاتف ذكي.
  • تمييز فرص العمل في هندسة البرمجيّات.
  • تمييز منهجيات تطوير البرمجيّات المختلفة.

هيا لنبدأ!

مقدمة مبادئ هندسة البرمجيات

تعد هندسة البرمجيات (Software Engineering) أحد فروع علم الحاسب التي تختص بتطوير أنظمة البرمجيات وصيانتها، وتتضمن هندسة البرمجيات:

  • تطبيق المبادئ والأسس الهندسية لتصميم البرامج وتطويرها.
  • اختبارها.
  • صيانتها.

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

  • عمليات وأدوات وتقنيات منهجية محددة.

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

لمعرفة المزيد من المعلومات عن هندسة البرمجيات، قم بالاطّلاع على الرابط التالي:

هندسة البرمجيات – ويكيبيديا

دورة حياة تطوير البرمجيات (Software Development Lifecycle (SDLC))

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

سيتم في هذا الموضوع مناقشة مراحل دورة حياة تطوير البرمجيات ضمن سياق تطوير أنظمة تقنية المعلومات والاتصالات Information and Communication Technology (ICT).

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

مبادئ هندسة البرمجيات

مبادئ هندسة البرمجيات

خطوة 1: التحليل Analysis

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

تتضمن عملية جمع المتطلبات:

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

وهنا يتضح الاختلاف بين المتطلبات الوظيفية وغير الوظيفية فيما يلي:

  • المتطلبات الوظيفية (Functional Requirements):

هي القدرات أو الميزات المحددة التي يجب أن يمتلكها البرنامج لتلبية احتياجات أصحاب المصلحة.

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

  • المتطلبات غير الوظيفية (Non-functional Requirements):

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

إليك بعض الأمثلة المميزة على المتطلبات غير الوظيفية للبرامج:

  • توفير متطلبات الأداء (زمن الاستجابة، الإنتاجية).
  • توفير متطلبات الأمان (خصوصية البيانات، المصادقة).
  • توفير متطلبات قابلية الاستخدام (وجود واجهة سهلة الاستخدام).

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

تُعد الأدوات التالية الأكثر استخدامًا لجمع البيانات المطلوبة:

  • الاستبانات.
  • المقابلات.
  • الملاحظة المباشرة.

مبادئ هندسة البرمجيات

بإمكانك مراجعة محتوى موضوع “مبادئ هندسة البرمجيات” من بدايته وحتى نهاية هذا القسم، من خلال الرابط التالي:

خطوة 2: التصميم Design

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

تتضمن مرحلة التصميم ما يلي:

  1. تحديد تدفق البيانات والمعلومات في جميع أجزاء النظام الجديد.
  2. تحديد البيانات الرئيسية المراد معالجتها، والتي يتم تحديد هياكل البيانات المستخدمة من قبل بناء النظام بناء عليها.
  3. تحديد مكان تخزين البيانات وطريقة تخزينها ومعايير الأمان الخاصة بها.
  4. تصميم التقارير وغيرها من مخرجات البيانات والمعلومات.
  5. تصميم واجهات المستخدم وتحديد وظائف كافة العناصر الموجودة فيها.
  6. تصميم واجهات تكاملية لتبادل البيانات مع أنظمة تبادل المعلومات والاتصالات الأخرى.
  7. تحديد طريقة اختبار النظام والبيانات المستخدمة للاختبار، وكيفية استخدامها في ضمان الجودة.
مبادئ هندسة البرمجيات

مبادئ هندسة البرمجيات

خطوة 3: التطوير والاختبار Development and Testing

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

  1. اختبار صحة البيانات المدخلة:

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

  1. اختبار وظائف النظام وقابليته للاستخدام:

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

  1. اختبار أخطاء التشغيل:

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

  1. اختبار الاتصال بالأنظمة الأخرى:

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

خطوة 4: التنفيذ Implementation

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

مبادئ هندسة البرمجيات

مبادئ هندسة البرمجيات

خطوة 5: الصيانة Maintenance

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

خطوة 6: التوثيق Documentation

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

خطوة 7: التقييم Evaluation

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

يمكن اجراء التقييم من قبل الجهات التالية للتأكد من أن النظام يفي بالمتطلبات:

  • فريق تقنية المعلومات.
  • المستخدمون.
  • الإدارة.

من المجالات التي تحتاج إلى تقييم مستمر:

  • كفاءة النظام.
  • سهولة الاستخدام والتعلم.
  • ملائمة النظام للمهام المطلوبة.

دورة حياة تطوير البرمجيّات لتطبيق هاتف ذكي (SDLC for a Smartphone Application)

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

مبادئ هندسة البرمجيات

كما تعلمت سابقًا في هذا الدرس، ستتضمن دورة حياة تطوير البرمجيات لهذا التطبيق المراحل التالية:

  • التحليل.
  • التصميم.
  • التطوير.
  • الاختبار.
  • التنفيذ.
  • الصيانة.
  • التوثيق.
  • التقييم المستمر.

 

التحليل Analysis

يتم تحديد فيها المشكلة التي تحتاج إلى حل، وهكذا فإن التطبيق سيصمم لما يلي:

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

بناء على هذه المتطلبات، يجب أن يتميز التطبيق بما يلي:

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

التصميم Design

تشمل مرحلة التصميم تحديد جميع التفاصيل الفنية للتطبيق، وبشكل أكثر تحديدًا، تشمل المتطلبات الفنية ما يلي:

  • يجب أن يكون التطبيق مصممًا لنظام التشغيل أندرويد.
  • يجب أن يكون حجم الشاشة ثابتًا.
  • يجب ألا يحتوي على ألوان كثيرة لتجنب إرباك المستخدمين.

التطوير والاختبار والتنفيذ

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

سيتم استخدام برنامج مخترع التطبيقات (App Inventor) في هذه المرحلة لتطوير التطبيق المطلوب.

سيحتاج التطبيق إلى بعد ذلك إلى اختبار شامل قبل نشر في متجر التطبيقات مثل قوقل بلاي (Google Play).

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

الصيانة Maintenance

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

يتم الاستعانة بملاحظات المستخدمين لتقييم التطبيق بشكل مستمر لتحسينه وضمان استمراريته في العمل.

يمكن عمل بعض التعديلات الصحيحة والصغيرة حسب الحاجة.

التوثيق والتقييم

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

تساعد عملية التوثيق المطورين وأصحاب العمل والمستخدمين في فهم الغرض من التطبيق ووظائفه وعمله.

بينما فيما يتعلق بالتقييم، فيمكن جمع المعلومات من تطبيقات متجر قوقل بلاي ومراجعات التطبيق.

يجب القيام بالخطوات التالية لتوثيق التطبيق:

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

فرص العمل في هندسة البرمجيّات (Job Opportunities in Software Engineering)

تقدم هندسة البرمجيات فرص عمل متنوعة في مختلف المجالات والصناعات، فيما يلي بعض فرص العمل الأكثر شيوعًا في هندسة البرمجيات:

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

 

بإمكانك مراجعة محتوى موضوع “مبادئ هندسة البرمجيات” بدايةً من عنوان “خطوة 2: التصميم Design” وحتى نهاية هذا القسم، من خلال الرابط التالي:

منهجيات تطوير البرمجيّات (Software Development Methodologies)

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

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

منهجية الشلال The Waterfall Methodology

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

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

  1. مرحلة التحليل Analysis Stage

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

  1. مرحلة التصميم Design Stage

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

  1. مرحلة التطوير Development Stage

يتم في هذه المرحلة إنشاء النظام وكتابة البرامج بناء على مخرجات النظام.

  1. مرحلة الاختبار Testing Stage

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

  1. مرحلة التنفيذ Implementation Stage

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

  1. مرحلة الصيانة Maintenance Stage

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

مبادئ هندسة البرمجيات

مزايا منهجية الشلال في التطوير:

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

تحديات منهجية الشلال:

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

منهجية التطوير السريع للتطبيقات (Rapid Application Development Methodology (RAD))

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

يساعد هذا في تجنب سوء فهم المتطلبات، وبالتالي تجنب التكلفة الكبيرة التي تنطوي عليها الحاجة لتعديل النظام بعد اكتمال التطوير، ومن المهم الإشارة إلى أن النماذج الأولية التي يتم تطويرها تُعدّل لتصبح جزءًا من المنتج النهائي.

تتضمن هذه المنهجية المراحل التالية:

  1. تخطيط المتطلبات Requirements Planning
  • مرحلة تخطيط المتطلبات في منهجية التكوير السريع للتطبيقات (RAD) هي مرحلة في عملية تطوير البرمجيات.
  • في هذه المرحلة يتم تحديد نطاق المشروع وأهدافه.
  • تركز مرحلة تخطيط المتطلبات على التأكد من أن متطلبات المشروع والبرنامج واضحة ومحددة بشكل جيد، وبأن المخطط الزمني والموارد اللازمة لإكمال المشروع قد تم تحديدهما.
  1. تصميم المستخدم User Design
  • هي مرحلة في عملية تطوير البرمجيات يتم فيها إنشاء متطلبات البرامج وتصميمها من خلال التعاون الوثيق مع المستخدمين النهائيين.
  • تركز مرحلة التصميم على التيقن من أن تطبيق البرنامج يلبي احتياجات وتوقعات المستخدمين المستهدفين.
  1. الإنشاء Construction
  • هي مرحلة يتم فيها تطوير وإنشاء البرنامج وتتضمن كتابة التعليمات البرمجية ودمج المكونات المختلفة لتطبيق البرنامج، واختباره للتأكد من أنه يفي بالمتطلبات اللازمة ومعايير الجودة.
  • تتضمن هذه المرحلة أيضا إصلاح الأخطاء والمشاكل التي تم اكتشافها أثناء الاختبار.
  • تركز على تقديم تطبيق برمجي فعال يفي بالمتطلبات المحددة بكفاءة في المراحل المبكرة من عملية تطوير التطبيقات السريعة.
  1. الانتقال Cutover
  • هي المرحلة الأخيرة من عملية تطوير البرمجيات.
  • يتم فيها نقل تطبيق البرنامج الجديد إلى بيئة التشغيل الواقعية.
  • تتضمن مرحلة الانتقال سلسلة من الأنشطة التي يجب القيام بها من أجل نقل التطبيق البرمجي الجديد إلى مرحلة التشغيل بنجاح، ولتدريب المستخدمين على كيفية استخدامه.

 

مزايا منهجية التطوير السريع للتطبيقات:

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

 

تحديات منهجية التطوير السريع للتطبيقات:

  • تعد دورة التطوير أكثر تعقيدًا ويجب إدارتها بعناية.
  • قد يؤدي تفاعل أصحاب المصلحة في تقديم الملاحظات بشكل غير كافٍ إلى توفير منتج لا يلبي المتطلبات الموجودة.
  • يتطلب اتباع هذه المنهجية وجود فريق عمل من المبرمجين والمصممين ذوي تأهيل عالٍ وقدرة على إنجاز المهام المنوطة بهم بشكل فعال.

منهجية التطوير الرشيقة (Agile Methodology)

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

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

يمكن في هذه المنهجية العمل على المنتج وتعديله أو إضافة وظائف جديدة عند الحاجة.

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

تعريف هام

فترة التطوير الزمنية القصيرة (Sprint)

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

مبادئ هندسة البرمجيات

مزايا منهجية التطوير الرشيقة:

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

تحديات منجية التطوير الرشيقة:

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

معلومة

تتطلَّب منهجية التطوير الرشيقة التواصل الفعَّال والتعاون المستمر بين جميع الفِرق المشاركة في التخطيط والتصميم والتطوير واختبار المُستخدِم.

بإمكانك مراجعة محتوى موضوع “مبادئ هندسة البرمجيات” بدايةً من عنوان “منهجيات تطوير البرمجيّات” وحتى نهاية الموضوع، من خلال الرابط التالي:

اختبر تحصيلك لمحتوى الموضوع من خلال الرابط التالي:

الواجب الإلكتروني

إلى هنا يكون قد انتهى موضوع “مبادئ هندسة البرمجيات”، لا تنسوا مراجعة أهداف التعلُّم أعلى المقال، وانتظرونا في الموضوع القادم!

روابط هامة

مقررات الفصل الدراسي الأول

مشاركة المقال عبر:

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *