هندسة البرمجيات علم هندسي غايته صنع الأنظمة المعلوماتية، إذ يتضمن كل ما يتعلق بمعالجة المعلومات اللازمة لتحسين سير المنظومة الاجتماعية والاقتصادية بأسرها. وفي هذا المقال اخترنا لك كتاب هندسة البرمجيات تأليف جاك برينتز، وترجمة زينا مغربل، ومراجعة د/ محمد مراياتي. حيث نستعرض فيه أهم النقاط التي تم ذكرها في هذا الكتاب المفيد.
وتهتم هندسة البرمجيات بما “وراء البرمجيات” فهي ترسي عددًا من القواعد الثابتة والضمانات، التي تكون بمثابة شروط تضمن سير عملية التصنيع على نحو سليم. يمكنك معاينة آراء القراء حول كتاب هندسة البرمجيات من خلال موقع Goodreads وهو متوفر في المربع التالي
طلب الحصول على كتاب Le Genie Logiciel
يمكنك طلب الحصول على النسخة الأصلية من كتاب هندسة البرمجيات وهو يسمى ب LE GENIE LOGICIEL (QUE SAIS-JE ?) باللغة الفرنسية وذلك من خلال موقع أمازون وهو متوفر في الرابط التالي
ملخص كتاب هندسة البرمجيات
بعض المعطيات الاقتصادية
تكلفة البرمجيات
تقاس تكلفة البرمجيات عادةً بوحدة “أفراد-شهور” فش، أو “أفراد-أعوام” فع. أما حجم البرنامج الحاسوبي، فيقاس عادة بعدد أسطر شفرة البرنامج المصدر أو التعليمات “سطور المصدر” سم، أو “ألف سطر من المصدر” كسم، الذي يتضمنها برنامج الحاسوب الذي جرى تسليمه والجاهز للإستخدام. وتقاس إنتاجية التطوير البرمجي ب (سم) لكل (فش).
هيكلة التكاليف
تجدر الإشارة إلى التغيير الكبير الذي طرأ على هيكل التكاليف الحاسوبية، إذ كانت تكاليف العناصر المادية أي المعدات تمثل القسط الأعظم في السابق، إلا أن الأمر تغير على مرحلتين:
- سمحت سياسة “التفكيك” التي فرضتها شركة أي بي إم بتحليل تكلفة البرمجيات على هذا النحو أي جزءً جزءً.
- سلط ظهور الحوسبة الدقيقة أو الصغرية في حقبة الثمانينات الضوء على انخفاض التكلفة للعناصر المادية بشكل غير مسبوق منذ ولادة المجتمعات الصناعية.
تطور الطلب
هناك عدة عوامل إيجابية ارتبطت بظاهرة تنامي الطلب على جميع أنواع البرمجيات في حقبة الثمانينات هي:
- طلب هائل على التطبيقات الجديدة.
- تفاعل بين المستخدم والأنظمة المعلوماتية.
- رقمنة كل ما كان تناظريًا Analogae في السابق مثل الكتب والموسيقى والأفلام.
- زيادة الخدمات المعلوماتية أو الحاسوبية المطلوبة حجمًا وعددًا.
- ظهور مجالات جديدة ذات أهمية مثل ألعاب الفيديو والرسومات الحاسوبية.
وقد أدى ذلك إلى زيادة الإقبال على التقنيات والوسائل التي تسمح بالإنتاج بسرعة متزايدة.
تصنيف البرمجيات
يمكن تحديد ثلاثة مكونات رئيسية مميزة لثلاثة أنواع من البرامج:
- البرامج الحاسوبية ذات المواصفات المحددة والثابتة، والتي نشير إليها بالبرامج التي من نوع ث أو ث_برمج.
- والبرامج الحاسوبية التي تعالج عددًا يحتمل أن يكون لا متناهيًا من المسائل المتماثلة، والتي تتضمن معايير يمكن أن تتغير وفق احتياجات المستخدم فهي برامج من نوع م أو م_برمج.
- البرامج التي تتفاعل مع البيئة (الأفراد، أجهزة الاستقبال، الأنظمة الأخرى، إلخ…) والتي ربما تكون تفاعلات عشوائية، وذات مدد زمنية مختلفة، ويحتمل أن تشوبها الأخطاء، وهي البرامج من نوع ب أو ب_برمج.
وننصحك عزيزي القاريء بالرجوع إلى كتاب هندسة البرمجيات للاطلاع على أمثلة على كل نوع من هذه البرامج.
القضية الأساسية في هندسة البرمجيات
هدف هندسة البرمجيات
تنطوي هندسة البرمجيات على إجمالي الوسائل التقنية والصناعية والبشرية التي ينبغي جمعها لتحديد وتشييد وتوزيع وصيانة برمجيات تتصف بالآتي:
- موثوقة.
- سهلة الاستخدام.
- قابلة للتطور.
- اقتصادية.
نموذج التطوير ودورة الحياة
مفهوم عملية الجودة
- في حقبة السبعينات: عملية صناعة البرامج كانت متدرجة على مراحل، وقد جرى العمل على توصيف ما يلي:
- كل من المراحل المتتالية لعملية” التصنيع” منذ طلب الطرف المتعاقد للبرنامج وحتى لحظة الاستخدام.
- منطق تتابع مختلف المراحل.
- في حقبة الثمانينات بدأ الاهتمام الجدي بالظروف التي ينبغي توفيرها لتعزيز السيطرة على جودة البرمجيات المصنعة، ولتسليم منتج متطابق مع المنتج المطلوب في الأساس.
البرمجة والاختبارات
تمثل البرمجة النشاط الرئيسي والأكثر شهرة في دورة تطوير النظام البرمجي، فهي تجسد “روح” النظام. إلا أن هذه العملية لا يمكن اختزالها بوجود البرنامج وحده، لأنها تتضمن عددًا من الأنشطة الأخرى الضرورية لديمومة البرنامج.
البرمجة
البرمجة هي تنسيق البيانات والتعليمات معًا بهدف حل مسألة ما.
- نموذج البرمجة.
- البرنامج = الخوارزميات + هياكل أو بني البيانات.
- تقديم بعض الآليات حيث تجري هيكلة حيز أسماء برنامج ما في مرحلتين هما:
- المرحلة الأولى: يكون عالم الأسماء منبسطًا ويمكن النفاذ إلى كل ما فيه من كل قبل. وهو نموذج لغات الجيل الأول فورتر ان وكوبول.
- والمرحلة الثانية: مع تعاظم حجم البرنامج وضرورة عمليات الترجمة المنفصلة، يزداد هذا العالم تعقيدًا، وتنظم الأسماء في تسلسل هرمي.
عملية البرمجة
تعود خصوصية عملية البرمجة بلا شك لكون هذا العمل ناجمًا عن نشاط فرد متميز يضفي بصمته الخاصة عليه التي لا يمكن محوها أحيانًا. وفي لحظة بدأ عملية البرمجة، يوجد عدد من السطور يساوي الصفر، ويكون أمام المبرمج مجموعة من الملفات أو البرامج السابقة التي عليه تغييرها وتجميعها لتكوين كيان جديد ينطوي بنهاية هذه العملية على عدد (ع) من السطور، وسيكون عليه تحديد جميع البيانات الوسيطة وسلاسل البيانات اللازمة، وإدارة الموارد التي يتناولها البرنامج وترتيب النص ليكون واضحًا وسهل القراءة.
إنتاجية البرمجة
يطرح تحليل عملية البرمجة تحدي قياس البرمجيات بشكل عام.
شروط إنجاز عملية البرمجة:
- إتمام كتابة البرنامج.
- إجراء جميع اختبارات الوحدات بنجاح وتحقيق تغطية محددة مسبقًا لمخطط التحكم الخاص بالبرنامج.
- توافر وثائق البرنامج.
- إجمالي الإنتاجية: عدد كسم/فع (350 أمر لكل فع يعتبر معدلًا جيدًا).
- معدل تقدم المهمة أو العملية: عدد كسم (مدة المهمة).
تشييد كيانات رفيعة المستوى
للآلات ذات الحالات محدودة العدد -تم الإشارة إليها في الفصول السابقة من كتاب هندسة البرمجيات- أهمية كبيرة، فهي أجهزة تسهل برمجتها. برجاء الإطلاع على كتاب هندسة البرمجيات للتعرف على مخطط “حالة -الانتقال”.
تحديد متغيرات البرنامج
إن تحديد المتغيرات جانب جوهري من عملية البرمجة. وينطوي ذلك على القدرة على تجديد برنامج سليم بعد إضفاء بعض التعديلات. وتتناول هذه العملية البيانات أو شفرة البرنامج، وفكرة تحديد متغيرات البرنامج في حد ذاتها متأصلة في البرمجة بسبب أوجه التعميم التي تنطوي عليها هذه العملية.
معالجة الأخطاء والضبط الذاتي
يتعلق هذا الجزء من البرنامج بالأجزاء ب2 وت2 من النمط الأساسي لنشاط البرمجة (راجع الفقرة 1، نموذج البرمجة) فهو يساهم في التحقق الديناميكي من تنفيذ البرنامج وتعزيز قوته. جميع البرامج الخاصة بمعالجة الاستثناءات ومواطن الإخفاق هي من النوع (ب) وهي بالغة الحساسية للبيئة الخارجية.
وتعرض عملية استرجاع الأحداث الموافقة للآليات المقترحة من قبل لغة البرمجة، وآليات مراقب المعالجة، وآليات نظام التشغيل الضمني وآليات العتاد في آن واحد للخطر. لذا أشار الكاتب إلى ضرورة السيطرة بشكل كامل على تعايش مختلف هذه الآليات عندما يكون ثمة احتمال برمجة هذا النوع من الواجهات.
البرمجة والمفاهيم غرضية التوجه
البرمجة غرضية التوجه ليست بفكرة جديدة، فقد ظهرت قرب أواخر حقبة التسعينات وبداية السبعينات في مجالين متميزين من مجالات التطبيقات:
- المحاكاة مع لغة سيمولا (Simula) عام 1967.
- مجال الواجهات الرسومية مع سمولتوك (Smalltalk) عام 1972.
وصف كتاب هندسة البرمجيات
اسم الكتاب | هندسة البرمجيات LE GENIE LOGICIEL(QUE SAIS-JE ?) |
اسم المؤلف | جاك برينتز
المترجم: أ/ زينا المغربل |
دار النشر | مدينة الملك عبد العزيز للعلوم والتقنية KACST |
عدد صفحات الكتاب | 153 صفحة |
سنة النشر | 2015 م |
وفي نهاية هذا المقال، أحب أن أشير إلى أن علم هندسة البرمجيات يهدف إلى صنع أنظمة معلوماتية غالبًا ما تتسم بالتعقيد، ويمكّن هذا الكتاب القاريء من تعزيز إدراكه للتحدي الحقيقي الذي تواجهه هندسة البرمجيات، وهو ضمان كافة الأنظمة المعلوماتية التي تحيط بنا من كل صوب قيد خدمتنا.، لا تنسى أن تقوم بمتابعتنا أيضًا على منصات التواصل الاجتماعي: