مصنع البرمجيات
مصنع البرمجيات هو مجموعة منظمة من أصول البرمجيات المترابطة، تُسهم في إنتاج تطبيقات أو مكونات برمجية حاسوبية وفقًا لمتطلبات محددة من قبل المستخدم النهائي، وذلك من خلال عملية تجميع. [ 1 ] يطبق مصنع البرمجيات تقنيات ومبادئ التصنيع على تطوير البرمجيات، لمحاكاة مزايا التصنيع التقليدي. وعادةً ما تشارك مصانع البرمجيات في عمليات إنشاء البرمجيات المُسندة إلى جهات خارجية .
وصف
في هندسة البرمجيات وهندسة برمجيات المؤسسات ، يُعرَّف مصنع البرمجيات بأنه خط إنتاج برمجي يقوم بتكوين أدوات وعمليات ومحتوى واسع النطاق باستخدام قالب قائم على مخطط لأتمتة تطوير وصيانة متغيرات منتج نموذجي من خلال تكييف وتجميع وتكوين المكونات القائمة على إطار العمل. [ 2 ]
بما أن البرمجة تتطلب مهندس برمجيات (أو ما يُقابله في التصنيع التقليدي، حرفي ماهر)، يتم استبعادها من العملية في طبقة التطبيق ، ويتم إنشاء البرنامج بتجميع مكونات مُحددة مسبقًا بدلًا من استخدام بيئات التطوير المتكاملة التقليدية . يقتصر استخدام البرمجة التقليدية على إنشاء مكونات أو خدمات جديدة. وكما هو الحال في التصنيع التقليدي ، يقتصر دور الهندسة على إنشاء المكونات وجمع متطلبات النظام. والنتيجة النهائية للتصنيع في مصنع البرمجيات هي تطبيق مُركب .
غاية
يُعالج تطوير التطبيقات القائم على مصانع البرمجيات مشكلة تطوير التطبيقات التقليدية، حيث تُطوَّر التطبيقات وتُسلَّم دون الاستفادة من المعرفة المكتسبة والأصول المُنتَجة من تطوير تطبيقات مماثلة. تُستخدم العديد من الأساليب، مثل التدريب والتوثيق والأطر، لمعالجة هذه المشكلة؛ إلا أن استخدام هذه الأساليب لتطبيق المعرفة القيّمة المكتسبة سابقًا أثناء تطوير تطبيقات متعددة بشكل متسق قد يكون عملية غير فعّالة وعرضة للأخطاء.
تعالج مصانع البرمجيات هذه المشكلة من خلال تضمين ممارسات مُثبتة لتطوير نمط مُحدد من التطبيقات ضمن حزمة إرشادات متكاملة يسهل على فرق المشاريع اعتمادها. ويمكن أن يوفر تطوير التطبيقات باستخدام مصنع برمجيات مناسب العديد من المزايا، مثل تحسين الإنتاجية والجودة وقابلية التطوير. [ 1 ]
عناصر
تتميز مصانع البرمجيات بخصائص فريدة، وبالتالي تحتوي على مجموعة فريدة من الأصول المصممة للمساعدة في بناء نوع محدد من التطبيقات. وبشكل عام، تحتوي معظم مصانع البرمجيات على أصول مترابطة من الأنواع التالية:
- مخطط المصنع: وثيقة تصنف وتلخص الأصول المستخدمة لبناء وصيانة نظام (مثل مستندات XML والنماذج وما إلى ذلك) بطريقة منظمة، وتحدد العلاقات بينها. [ 2 ]
- التنفيذ المرجعي : يقدم مثالاً على منتج نهائي واقعي تساعد شركة البرمجيات المطورين على بنائه.
- إرشادات وأنماط معمارية : تساعد في شرح خيارات تصميم التطبيقات والدوافع وراء تلك الخيارات.
- مواضيع إرشادية: تقديم الإجراءات والتعليمات اللازمة لإنجاز المهام.
- الوصفات: أتمتة الإجراءات في مواضيع "كيفية القيام بشيء ما"، إما كليًا أو في خطوات محددة. يمكنها مساعدة المطورين على إنجاز المهام الروتينية بأقل قدر من التدخل.
- القوالب : عناصر تطبيق جاهزة مع عناصر نائبة للوسائط. يمكن استخدامها لإنشاء عناصر المشروع الأولية.
- المصممون: قدموا معلومات يمكن للمطورين استخدامها لنمذجة التطبيقات على مستوى أعلى من التجريد.
- الكود القابل لإعادة الاستخدام : مكونات تُنفذ وظائف أو آليات مشتركة. يُقلل دمج الكود القابل لإعادة الاستخدام في مصنع البرمجيات من متطلبات كتابة الكود يدويًا ويشجع على إعادة استخدامه عبر التطبيقات. [ 1 ]
تطوير المنتجات
يتضمن بناء منتج باستخدام مصنع برمجيات الأنشطة التالية:
- تحليل المشكلة : يحدد ما إذا كان المنتج يندرج ضمن نطاق مصنع البرمجيات. ويحدد مدى ملاءمة المنتج ما إذا كان سيتم بناء كل أو جزء منه باستخدام مصنع البرمجيات.
- مواصفات المنتج : تحدد متطلبات المنتج من خلال توضيح الاختلافات عن متطلبات خط الإنتاج باستخدام مجموعة من آليات مواصفات المنتج.
- تصميم المنتج : يربط الاختلافات في المتطلبات بالاختلافات في بنية خط الإنتاج وعملية التطوير لإنتاج عملية مخصصة.
- تنفيذ المنتج: يمكن استخدام مجموعة من الآليات لتطوير التنفيذ اعتمادًا على مدى الاختلافات.
- نشر المنتج : يتضمن إنشاء أو إعادة استخدام قيود النشر الافتراضية وتكوين الموارد المطلوبة اللازمة لتثبيت الملفات التنفيذية التي يتم نشرها.
- اختبار المنتج : يتضمن إنشاء أو إعادة استخدام أصول الاختبار (مثل حالات الاختبار ومجموعات البيانات والبرامج النصية) وتطبيق أدوات القياس والتحليل. [ 2 ]
فوائد
يمكن أن يوفر تطوير التطبيقات باستخدام مصنع البرمجيات العديد من المزايا مقارنةً بأساليب تطوير البرمجيات التقليدية . وتشمل هذه المزايا ما يلي:
- الاتساق: يمكن استخدام مصانع البرمجيات لإنشاء نسخ متعددة من خط إنتاج برمجي (مجموعة من التطبيقات التي تتشارك في ميزات وبنية متشابهة)، مما يُسهّل تحقيق الاتساق. وهذا يُبسّط عملية الإدارة ويُقلّل أيضًا من تكاليف التدريب والصيانة.
- الجودة: يُسهّل استخدام مصنع البرمجيات على المطورين تعلّم وتطبيق أفضل الممارسات المُثبتة. وبفضل دمج التعليمات البرمجية القابلة لإعادة الاستخدام، يتمكن المطورون من تخصيص وقت أطول للعمل على الميزات الفريدة لكل تطبيق، مما يقلل من احتمالية وجود عيوب في التصميم أو التعليمات البرمجية. كما يُمكن التحقق من التطبيقات المطورة باستخدام مصنع البرمجيات قبل نشرها، مما يضمن اتباع أفضل الممارسات الخاصة بالمصنع أثناء التطوير.
- الإنتاجية: يمكن تبسيط وأتمتة العديد من أنشطة تطوير التطبيقات، مثل إعادة استخدام أصول البرامج وتوليد التعليمات البرمجية من تجريدات عناصر التطبيق وآلياته. [ 1 ]
يمكن لهذه المزايا أن توفر قيمة للعديد من الفرق المختلفة بالطرق التالية:
قيمة للأعمال
يمكن تبسيط مهام العمل، مما يُسهم في زيادة إنتاجية المستخدمين بشكل ملحوظ. ويتحقق ذلك من خلال استخدام واجهات مستخدم موحدة ومتسقة، مما يقلل الحاجة إلى تدريب المستخدمين النهائيين. كما يُتيح سهولة نشر الوظائف الجديدة والمُحدثة، ومرونة واجهات المستخدم، للمستخدمين النهائيين أداء المهام بما يتوافق مع سير العمل . وتُقلل تحسينات جودة البيانات من الحاجة إلى تبادل البيانات بين أجزاء التطبيق عبر اختصار ALT+TAB وتقنيات النسخ واللصق. [ 3 ]
قيمة للمهندسين المعماريين
يمكن للمهندسين المعماريين استخدام مصانع البرمجيات لتصميم تطبيقات وأنظمة بجودة واتساق محسّنين. ويتحقق ذلك من خلال القدرة على إنشاء تطبيق جزئي للحل يتضمن فقط الآليات الأكثر أهمية والعناصر المشتركة. يُعرف هذا النوع من التطبيقات باسم البنية الأساسية، ويمكنه معالجة تحديات التصميم والتطوير، وكشف القرارات المعمارية، وتخفيف المخاطر في وقت مبكر من دورة التطوير. كما تُمكّن مصانع البرمجيات من إنشاء طريقة متسقة وقابلة للتنبؤ لتطوير وتغليف ونشر وتحديث مكونات الأعمال، لفرض معايير معمارية مستقلة عن منطق الأعمال. [ 3 ]
قيمة للمطورين
يمكن للمطورين استخدام مصانع البرمجيات لزيادة الإنتاجية وتقليل وقت الإعداد. ويتحقق ذلك من خلال إنشاء نقطة انطلاق عالية الجودة (أساس) للتطبيقات، تشمل التعليمات البرمجية والأنماط. وهذا يُمكّن المشاريع من البدء بمستوى نضج أعلى من التطبيقات المطورة بالطرق التقليدية. تساعد الأصول القابلة لإعادة الاستخدام والإرشادات والأمثلة في معالجة السيناريوهات والتحديات الشائعة، كما أن أتمتة المهام الشائعة تُمكّن المطورين من تطبيق الإرشادات بسهولة وبطرق متسقة. توفر مصانع البرمجيات طبقة تجريد تُخفي تعقيد التطبيق وتفصل بين الاهتمامات، مما يسمح للمطورين بالتركيز على مجالات مختلفة مثل منطق الأعمال، وواجهة المستخدم، أو خدمات التطبيق دون الحاجة إلى معرفة متعمقة بالبنية التحتية أو خدمات الأساس. يُمكن أن يُساهم تجريد مهام المطورين الشائعة وزيادة إمكانية إعادة استخدام تعليمات البنية التحتية في تعزيز الإنتاجية وسهولة الصيانة. [ 3 ]
القيمة مقابل العمليات
تُسهم التطبيقات المبنية باستخدام مصانع البرمجيات في توحيد الجهود التشغيلية، مما يُسهّل نشر عناصر ووحدات الأعمال المشتركة، ويؤدي إلى إدارة متسقة للتكوين عبر مجموعة من التطبيقات. ويمكن إدارة التطبيقات مركزياً باستخدام بنية قابلة للتوصيل، مما يسمح لفرق العمليات بالتحكم في الخدمات الأساسية. [ 3 ]
مناهج أخرى
توجد عدة مناهج تمثل وجهات نظر متباينة حول مفاهيم مصانع البرمجيات، تتراوح بين المبادرات الموجهة نحو الأدوات والمبادرات الموجهة نحو العمليات. وتغطي المناهج التالية مبادرات يابانية وأوروبية وأمريكية شمالية. [ 4 ]
منظمة برمجيات صناعية (اليابان)
بموجب هذا النهج، تُستخدم البرمجيات المُنتجة في مصنع البرمجيات بشكل أساسي في أنظمة التحكم، والمفاعلات النووية، والتوربينات، وما إلى ذلك. وتتمثل الأهداف الرئيسية لهذا النهج في تحقيق جودة تتناسب مع الإنتاجية، بما يضمن عدم تأثير ارتفاع التكاليف على القدرة التنافسية. كما يهدف هذا النهج إلى خلق بيئة تُمكّن من تنفيذ التصميم والبرمجة والاختبار والتركيب والصيانة بطريقة موحدة.
يكمن مفتاح تحسين الجودة والإنتاجية في إعادة استخدام البرمجيات. وتشمل السمات الرئيسية للتصميم التنظيمي بذل جهد حثيث لجعل العمل التشغيلي روتينياً وبسيطاً ومتكرراً، وتوحيد إجراءات العمل.
ومن الأمثلة على هذا النهج مفهوم مصنع البرمجيات الخاص بشركة توشيبا، والذي يشير إلى قسم البرمجيات والإجراءات الخاصة بالشركة كما كانت عليه في عامي 1981 و1987 على التوالي.
مصنع برمجيات عام (أوروبا)
تم تمويل هذا النهج ضمن برنامج يوريكا، ويُعرف باسم "مصنع برمجيات يوريكا". يضم المشروع شركات أوروبية كبرى، ومصنّعي أجهزة كمبيوتر، وشركات برمجيات، ومعاهد بحثية، وجامعات. ويهدف هذا النهج إلى توفير التكنولوجيا والمعايير والدعم التنظيمي والبنى التحتية اللازمة لإنشاء مصانع برمجيات وتخصيصها من مكونات تُسوّقها شركات مستقلة.
يهدف هذا النهج إلى إنتاج بنية وإطار عمل لبيئات التطوير المتكاملة . يقوم مصنع البرمجيات العام بتطوير المكونات وبيئات الإنتاج التي تُعد جزءًا من مصانع البرمجيات، بالإضافة إلى المعايير والإرشادات الخاصة بمكونات البرمجيات.
مصنع مكونات قائم على الخبرة (أمريكا الشمالية)
تم تطوير مصنع المكونات القائم على الخبرة في مختبر هندسة البرمجيات بمركز غودارد لرحلات الفضاء التابع لوكالة ناسا . تهدف هذه المقاربة إلى "فهم عملية تطوير البرمجيات في بيئة إنتاجية، وتحديد تأثير التقنيات المتاحة، وإعادة دمج الأساليب المحددة/المحسّنة في عملية التطوير". وتتمثل هذه المقاربة في تجربة تقنيات جديدة في بيئة إنتاجية، واستخلاص الخبرات والبيانات من التجارب وتطبيقها، وقياس تأثيرها من حيث التكلفة والموثوقية والجودة.
يركز هذا النهج بشدة على التحسين المستمر من خلال فهم العلاقة بين خصائص العمليات وجودة المنتج. ويُستخدم مصنع البرمجيات لجمع البيانات حول نقاط القوة والضعف لتحديد معايير التحسين وجمع الخبرات لإعادة استخدامها في المشاريع الجديدة.
مؤسسة برمجيات ناضجة (أمريكا الشمالية)
يُعرّف هذا النهج، وفقًا لنموذج نضج القدرات ، بأنه يهدف إلى إنشاء إطار عمل لتحقيق عملية تطوير برمجيات قابلة للتنبؤ، وموثوقة، وذاتية التحسين، تُنتج برمجيات عالية الجودة. تتألف الاستراتيجية من تحسينات تدريجية في تنظيم البرمجيات، مع تحديد العمليات الأساسية في عملية التطوير. وتتميز عملية تطوير البرمجيات وجودة المنتج النهائي بإمكانية التنبؤ بهما لأنهما يخضعان لحدود قابلة للقياس.
تاريخ
- كانت شركة هيتاشي أول شركة تتبنى هذا المصطلح في عام 1969 مع قسمها "هيتاشي سوفتوير ووركس". وفي وقت لاحق، تبنته شركات أخرى مثل "سيستم ديفيلوبمنت كوربوريشن" في عام 1975، [ 5 ]
- اتبعت شركات NEC وتوشيبا وفوجيتسو في عامي 1976 و1977 نفس النهج التنظيمي. [ 6 ] [ 7 ] [ 4 ]
يقترح كوسومانو [ 8 ] أن هناك ست مراحل لمصانع البرمجيات:
- الهيكل التنظيمي والإداري الأساسي (من منتصف الستينيات إلى أوائل السبعينيات)
- تكييف التكنولوجيا وتوحيدها (من أوائل السبعينيات إلى أوائل الثمانينيات)
- ميكنة العمليات ودعمها (أواخر السبعينيات)
- تحسين العملية وتوسيع نطاقها (أوائل الثمانينيات)
- الأتمتة المتكاملة والمرنة (منتصف الثمانينيات)
- تحسين المنتج / التنوع تدريجياً (أواخر الثمانينيات)
انظر أيضاً
مراجع
- 1 2 3 4 "مصانع البرمجيات" . MSDN. 20 مايو 2014.
- 1 2 3 غرينفيلد، جاك؛ شورت، كيث؛ كوك، ستيف؛ كينت، ستيوارت (2004). مصانع البرمجيات: تجميع التطبيقات باستخدام الأنماط والنماذج والأطر والأدوات . وايلي. ISBN 0-471-20284-3.
- 1 2 3 4 "مصانع البرمجيات: السيناريوهات والفوائد" . MSDN. 20 مايو 2014.
- 1 2 آين، إيفان؛ بوتشر، بيتر؛ ماتياسن، لارس (1997). "مصنع البرمجيات: المساهمات والأوهام" (ملف PDF) . وقائع ندوة أبحاث نظم المعلومات العشرين . سكاندينافيا، أوسلو.
- ↑ براتمان، هـ.؛ كورت، ت. (1975). "مصنع البرمجيات". مجلة الكمبيوتر . 8 (5): 28-37 . doi : 10.1109/cm.1975.218953 . S2CID 537648 .
- ↑ كوسومانو، مايكل أ. (مارس 1989). "مصنع البرمجيات: تفسير تاريخي". مجلة IEEE للبرمجيات . 6 (2): 23-30 . doi : 10.1109/ms.1989.1430446 . S2CID 18982313 .
- ↑ غريس، إم إل (1993). "إعادة استخدام البرمجيات: من المكتبة إلى المصنع". مجلة أنظمة آي بي إم . 32 (4): 548-566 . CiteSeerX 10.1.1.88.2855 . doi : 10.1147/sj.324.0548 .
- ↑ كوسومانو، مايكل أ. (1991). "مفاهيم وممارسات المصانع في تطوير البرمجيات". حوليات تاريخ الحوسبة . 13 (1): 3-32 . doi : 10.1109/mahc.1991.10004 . S2CID 7733552 .
روابط خارجية
- مجلة هارفارد بزنس ريفيو : ويبرو تكنولوجيز: نموذج المصنع
- يهدف مشروع "مصنع البرمجيات" بقلم بي جيه كونولي إلى الاستعانة بمصادر خارجية دون نقل العمليات إلى الخارج.
- إدارة تكنولوجيا المعلومات
- إدارة مشاريع البرمجيات
