RichStyle: The Angel is in The Detail.

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

تعني هندسة البرمجيات بمفهومها العلمي والأكاديمي القدرة على تصنيع البرمجيات آلياً، دون كتابة أي شيفرة برمجية يدوياً، وهو مفهوم نظري لا يزال بعيد المنال نسبياً في عالم صناعة البرمجيات، وذلك على الرغم أنه ممكن عملياً من خلال توليد الشيفرة البرمجية آلياً انطلاقاً من مخططات النمذجة Modeling Diagrams، وذلك بالاستعانة ببرمجيات مخصصة لهذا الغرض تدعى CASE Tools، من قبيل StarUML/WhiteStarUML و Modelio وغيرها.

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

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

وفي المقابل، يشكل هاجس قابلية المنتَج البرمجي للعمل على مختلف المنصات —وهو ما يعرف بالـ Interoperability— في معظم الأحيان عاملاً مثبطاً لمسألة تبني مبدأ إعادة الاستخدام Reusability والسير قدماً باتجاه الاستثمار الأمثل لمكونات منصة بعينها.

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

باختصار، تضمن قابلية إعادة استخدام المكونات البرمجية Reusability ثلاثة مكاسب:

  1. قابلية الصيانة Maintainability: بالنسبة للمطور، نظراً لدورها في اختزال الكثير من الشيفرات البرمجية.
  2. قابلية الاستخدام Usability: بالنسبة للمستخدم، نظراً لدورها في ضمان الاتساق (اتساق واجهة الاستخدام UI).
  3. الأداء Performance: أيضاً نظراً لدورها في اختزال الكثير من الشيفرات البرمجية.

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