hotchpotch/wikipedia-multilingual-ir-pairs huggingface dataset:
برمجة زوجية
البرمجة الزوجية هي أحد تقنيات أجيل لتطوير البرمجيات حيث يعمل اثنين من المبرمجين معا في محطة عمل واحدة. يكتب أحدهم الكود المصدري في حين يستعرض الأخر كل سطر من الأكواد كما تمت كتابتها. والشخص الذي يقوم بالكتابة يُسمى المحرك. ويطلق على الشخص الذي يستعرض الكود المراقب (أو الملاح). ويتبادل المبرمجان الأدوار بشكل متكرر.
أثناء الاستعراض، يضع المراقب في اعتباره التوجه الاستراتيجي للعمل، والخروج بأفكار من أجل إدخال تحسينات والمشاكل المحتملة في المستقبل لمعالجتها. وهذا يتيح الفرصة للمحرك في تركيز كل اهتمامه على الجوانب «التكتيكية» لاستكمال المهمة الحالية، وذلك باستخدام المراقب كشبكة أمان ودليل.
برمجة زوجية التكاليف والفوائد
وجدت بعض الدراسات أن المبرمجين الذين يعملون بشكل زوجي ينتجون برامج أقصر، مع تصميمات أفضل وعدد أخطاء برمجية أقل، من المبرمجين الذين يعملون وحدهم. وقد وجدت الدراسات انخفاض معدلات الخطأ من 15 ٪ إلى 50 ٪، وتتفاوت اعتمادا على خبرة المبرمج وتعقيد المهمة. وعادة ما ينظر الأزواج في بدائل تصميمية أكثر من المبرمجين المنفردين، ويستطيعوا التوصل إلى تصاميم أكثر بساطة وأكثر ثباتا؛ كما يستطيعون اصطياد عيوب التصميم في وقت مبكر. وعادة ما يعمل الأزواج بشكل أسرع من مبرمج واحد مخصص لنفس المهمة. وغالبا ما يجد الأزواج المشاكل التي تبدو «مستحيلة» سهلة أو حتى سريعة الحل، أو على الأقل من الممكن حلها عندما يعملون معا.
برمجة زوجية التكاليف والفوائد
ومع ذلك، وفي 2007، استنتج تحليل الميتا أن «البرمجة الزوجية ليست مفيدة بشكل موحد أو فعالة» بسبب أن العديد من العوامل الأخرى بجانب اختيار استخدام البرمجة الزوجية لها آثار كبيرة على نتائج مهمة البرمجة. ووجدت دراسة الميتا أن البرمجة الزوجية تميل إلى تقليل الوقت اللازم للتطوير، وتنتج آثارا إيجابية هامشية على نوعية الكود، ولكن هذه البرمجة الزوجية تتطلب جهد أكبر من المطور، وهذا يعني، أن تكلفتها أكثر بكثير من تكلفة البرمجة المنفردة. ويقترح المؤلفان أن دراسة البرمجة الزوجية تعاني من التحيز في النشر حيث ان الدراسات التي لا تظهر أن البرمجة الزوجية مفيدة، لا تقدم للنشر، أو لا يقبل نشرها. وبالتالي يتم الاستنتاج أنه «لا يمكنك ان تتوقع أسرع وأفضل وأرخص».
برمجة زوجية التكاليف والفوائد
على الرغم من اكتمال الترميز بشكل أسرع مما يكون عليه عندما يعمل مبرمج واحد وحده، فإن مجموع وقت المبرمج (عدد المبرمجين × الوقت الممضى) يزداد. ويجب على المدير أن يوازن بين انتهاء العمل بشكل أسرع وتقليل الاختبار ووقت التصحيح ضد ارتفاع تكلفة الترميز. ويمكن للوزن النسبي لهذه العوامل أن تختلف من مشروع إلى آخر ومهمة لأخرى. ان الاستفادة من الاقتران هو أعظم بالنسبة للمهام التي لا يستعبها المبرمجين تماما قبل أن البدء: وهذا يعني، المهام الصعبة التي تدعو إلى الإبداع والتطور.
تمر المعرفة بين المبرمجان وهم يعملون. فهما يتبادلان المعرفة بخصوصيات النظام، ويلتقطان تقنيات البرمجة من بعضهما البعض. يلتقط بسرعة الموظفون الجدد ممارسات الفريق ومعرفة تفاصيل هذا النظام. تنتشر مع «الاقتران المختلط»—كل مبرمج يدور خلال سائر مبرمجين الفريق بدلا من الاقتران بشريك واحد فقط—معرفة النظام في الفريق بأكمله، وبالتالي الحد من مخاطر الإدارة في حالة ترك أحد المبرمجين الفريق.
عادة ما يحسن الاقتران الانضباط وإدارة الوقت. فالمبرمجين أقل عرضة لتخطي اختبارات الوحدة، وقضاء بعض الوقت في تصفح شبكة الإنترنت أو على البريد الإلكتروني الشخصي، أو الالتواء عند العمل مع شريك مقترن. فالشريك المقترن «يبقيهم صادقين». وان الناس يكونوا أكثر ترددا في مقاطعة زوجا مما هو عليه الحال بالنسبة لشخص يعمل وحده.
وبعض الفوائد الإضافية المذكورة تشمل زيادة الروح المعنوية، وزيادة الثقة في صحة الكود.
برمجة زوجية الدراسات العلمية
«وقد أظهرت لوري وليامز من جامعة يوتا في مدينة سولت ليك أن المبرمجين الزوجيين ليسوا سوى 15 ٪ أبطأ من اثنين من المبرمجين الفرديين المستقلين، ولكن ينتجوا 15 ٪ أخطاء برمجية أقل. (ملحوظة: أظهرت الدراسة الأصلية أن كود 'خالي من الأخطاء’ ذهبت من 70 ٪ إلى 85 ٪، بل قد تكون أكثر سهولة للقول بأن هذا هو انخفاض 50 ٪ من الأخطاء، من 30 ٪ إلى 15 ٪). ولأن الاختبار والتصحيح في كثير من الأحيان أكثر تكلفة من العديد من البرامج الأولية، فهذه نتيجة مثيرة للإعجاب.»
وقد أظهرت وليامز في دراسة 2000 تحسنا في صحة الأخطاء بنحو 15 ٪ وانخفاض 20 ٪ -40 ٪ في الوقت، ولكن بين زيادة 15 ٪ و60 ٪ في الجهد، وهو، مجموع ساعات المبرمج. ودراية وليامز2000 تستشهد بدراسة سابقة (Nosek 1998) والتي اظهرت أيضا انخفاضا بنسبة 40 ٪ في الوقت وزيادة 60 ٪ في الجهد.
وتعرض دراسة (لوي 2006) تجربة علمية صارمة والتي عند اختبار زوجين مبتدئين ضد منفردين مبتدئين يتم تحقيق مكاسب إنتاجية أكبر بكثير من اختبار أزواج ذو خبرة ضد منفردين خبرة.
برمجة زوجية الدراسات العلمية
وفي دراسة حديثة أكبر (Arisholm 2007) يوجد زيادة 48 ٪ في صحة الأنظمة المعقدة، ولكن لا يوجد فرق كبير في الوقت، في حين كان النقص في الوقت في النظم البسيطة 20 ٪، ولكن لم يوجد اختلاف كبير في الصحة. وبشكل عمومي لم يكن هناك انخفاض عام في الوقت أو زيادة في الصحة، ولكن زيادة عامة 84 ٪ في الجهد.
ويظهر لوي، وتشان، ونوزك (2008) أن البرمجة الزوجية تتفوق في المهام التصميمية.
وفي تحليل ميتا كامل النطاق من الدراسات التجريبية على البرمجة الزوجية، من قبل أو خلال عام 2007، يؤكد (هناي. 2009) «أنه لا يمكنك توقع أسرع وأفضل وأرخص». وتكلف الجودة الأعلى للقيام بمهام معقدة جهد مرتفع، وتخفيض المدة للمهام الأبسط يأتي مع جودة أقل بشكل ملحوظ—تحليل الميتا «تشير إلى أن البرمجة الزوجية ليست مفيدة بشكل موحد أو فعالة».
قد يبدو الاقتران بين اثنين من الخبراء الاختيار الواضح لأعلى إنتاجية ويمكن أن يؤدي إلى نتائج رائعة، لكنه غالبًا ما يؤدي إلى محدودية ظهور أفكار جديدة وعملية، حيث من غير المرجح أن يشكك كلا الطرفين في الممارسات المتبعة.
برمجة زوجية الدراسات العلمية
يوفر الاقتران بين المبتدئ والخبير العديد من الفرص للخبير لتوجيه المبتدئ. يمكن لهذا الاقتران أيضًا تقديم أفكار جديدة، لأن المبتدئ أكثر عرضة للتشكيك في الممارسات المتبعة. وبالتالي سيكون من الخبير الآن شرح الممارسات المتبعة، ومن المرجح أن يبدأ بالتشكيك فيها أيضاّ. ومع ذلك، في هذا الاقتران، يمكن للمبتدئ أن يشعر بالخوف من التشكيك في ممارسات الخبير ويتردد في المشاركة بشكل مفيد. أيضًا، قد لا يتمتع بعض الخبراء بالصبر اللازم للسماح للمبتدئ بالمشاركة البناءة.
يمكن أن يؤدي الاقتران بين المبتدئ والمبتدئ إلى نتائج أفضل بكثير من عمل اثنين من المبتدئين بشكل مستقل، على الرغم من أن هذه الممارسة غير محبذة عمومًا لأنه يصعب على المبتدئين تطوير عادات جيدة دون وجود قدوة مناسبة.
برمجة زوجية مؤشرات التعثر
وهناك مؤشرات قليلة على أن هذا الزوج لا يعمل بشكل جيد:
فك الارتباط—واحد من أعضاء يحرك فعليا كرسيه بعيدا عن لوحة المفاتيح، أو يبدأ العمل على بريده الإلكتروني، وما إلى ذلك. وفي بعض الأحيان يمكن أن يصل هذا إلى أقصى قدر عند نوم أحد الأعضاء.
مشاهدة المحترف—في بعض الأحيان يكون أحد الأعضاء أكثر خبرة من الآخر. فيوجد إغراء بالإذعان إلى العضو الأكثر بروزا، وسيتم انزال الأقل خبرة إلى صفة مراقب. وهذا غالبا ما يؤدي إلى فك الارتباط.
برمجة زوجية المتغيرات
البرمجة الزوجية عن بعد، والمعروفة أيضا باسم البرمجة الزوجية الافتراضية أو البرمجة الزوجية الموزعة، هي برمجة زوجية يكون فيها المبرمجين في مواقع مختلفة، يعملون عبر محرر الوقت الحقيقي التعاوني، أو سطح مكتب مشترك، أو برنامج مساعد في بيئة تطوير متكاملة للبرمجة الزوجية عن بعد. تُدخل البرمجة الزوجية عن بعد صعوبات لم تكن موجودة في اقتران الوجه لوجه، مثل تأخير اضافي للتنسيق، وهذا يتوقف على أدوات تتبع المهمة ذات «الوزن الثقيل» بدلا من تلك «الخفيفة» مثل فهرس البطاقات، وفقدان التواصل الغير لفظي مما أدى إلى الارتباك والصراعات على أشياء مثل من «لديه لوحة المفاتيح».
العديد من الأدوات الإضافية مثل مساعدات برنامج إيكليبس متوفرة لدعم الاقتران عن بعد. ولقد جربت بعض الفرق Virtual Network Computing وRealVNC مع كل مبرمج باستخدام الحاسوب الخاص بهم. واستخدام آخرون وضع العرض المتعدد (-x) من خلال شاشة جنو المستندة إلى نص. ولدى شركةأبل ماك أو إس عشرة تطبيق تقاسم الشاشة مدمج.
برمجة زوجية المتغيرات
في برمجة بينغ بونغ الزوجية، يكتب المراقب اختبار وحدة فاشل، يعدل المحرك كود لاجتياز الاختبار. عند هذه النقطة، يقوموا بتبادل الأدوار ويكتب المحرك الأصلي (بصفته المراقب) اختبار فاشل. يُعدل المراقب الأصلي (المحرك الآن) كود لاجتياز الاختبار الجديد، وهلم جرا. وتستمر هذه الحلقة ما دام أحد العضوين قادرا على كتابة اختبار وحدة فاشل للعضو الأخر لتنفيذه. وفي العموم، قد يستغرق هذا النهج مزيدا من الوقت عن الخطة المقدرة.
ماميثا صفراء
المَامِيثَا الصفراء أو قرن الجديان أو نعمان هو نوع نباتي يتبع جنس الماميثا من الفصيلة الخشخاشية.
ماميثا صفراء البيئة والانتشار
ينتشر في كافة أنحاء حوض البحر الأبيض المتوسط وأوروبا بما في ذلك المشرق العربي والمغرب العربي. يوجد أيضاً في الأمريكتين وأستراليا.
ماميثا أفغانية
المَامِيثَا الأفغانية نوع نباتي يتبع جنس الماميثا من الفصيلة الخشخاشية.
ماميثا برتقالية
المَامِيثَا البرتقالية نوع نباتي يتبع جنس الماميثا من الفصيلة الخشخاشية.
ماميثا حلبية
المامِيثَا الحلبية نوع نباتي يتبع جنس الماميثا من الفصيلة الخشخاشية.
ماميثا أنطالية
المامِيثَا الأنطالية نوع نباتي يتبع جنس الماميثا من الفصيلة الخشخاشية.
يونتي (واجهة مستخدم)
يونتي (بالإنجليزية: Unity) هي واجهة شل لبيئة سطح المكتب جنوم طورت من طرف كانونيكال ليمتد لصالح نظام التشغيل أوبونتو.يونتي بدأت مع إصدار نتبوك أوبونتو 10.10
وهي مصممة لاستخدام أكثر فعالية للمساحة نظراً لصغر حجم شاشة النتبوك بما في ذلك
على سبيل المثال، تبديل التطبيقات عموديا. خلافا لجنوم تجميعة البرامج KDE أو إكسفس (بالإنجليزية: Xfce)، يونتي ليست تجميعة تطبيقات وإنما صممت لتستعمل مع برامج +GTK.
تعتبر يونتي جزء من مشروع Aytana project ، وهي مبادرة لتحسين تجربة المستخدم في أوبونتو.بالإضافة إلى يونتي هناك مؤشرات التطبيق وغيرها من المشاريع مثل MeMenu، ونظام الإخطار notification system وNotifyOSD.
يونتي (واجهة مستخدم) التطوير
من تقاليد أوبونتو استخدام بيئة سطح المكتب جنوم الكاملة، المؤسس مارك شاتلوورث يبين الاختلافات الجوهرية مع مجموعة جنوم من خلال تجربة المستخدمين ليشرح لماذا أوبونتو سيستعمل يونتي كسطح مكتب افتراضي بدلا من جنوم ابتداء من أبريل 2011 مع أوبونتو 11.04.
في نوفمبر 2010 اوضح مدير مجتمع اوبونتو جونو بايكون أن أوبونتو سيواصل دعم جنوم ومختلف تطبيقاته، وأن أوبونتو الأمثل لجنوم. والفرق الوحيد كما يقول يمكن أن يونيتي شل مختلف عن جنوم.
أعلنت كانونيكال أنها طورت يونتي هندسيا لتعمل على أجهزة سطح المكتب مع جعلها الشل الافتراضي لأوبونتو نسخة 11.04.
جنوم غير مدمجة في أوبونتو 11.04، لأنه لم يتم الانتهاء من العمل على ذلك في الوقت الذي تم تجميد النسخة 11.04، لكنها ستكون متاحة عبر حزمة الأرشيف الشخصية، ويتوقع أن يكون ذلك في أوبونتو 11.10.
في نوفمبر 2010، أعلن مارك شاتلوورث عن وجود نية لتشغيل يونتي في نهاية المطاف على نظام وايلاند(بالإنجليزية: Wayland) بدلا من النظام القائم حاليا باستخدامها نظام النافذة اكس (بالإنجليزية: X Window System).
يونتي (واجهة مستخدم) التوفر
يونتي ودعم مشروع Ayatana موجهة أساسا لأوبونتو، فبالتاي كل الإصدارات الجديدة تعرض على اوبونتو.
خارج اوبونتو، حاولت توزيعات أخرى من لينكس ادماج يونتي بدرجات متفوتة من النجاح فمكونات Ayatana تتطلب تعديلات على مختلف التطبيقات الأخرى، مما يزيد من صعوبة وتعقيد دعمها من قبل المنصات الأخرى.
أوبن سوزي (بالإنجليزية: openSUSE) توزيعة لينكس تدعم الكثير من مكونات Ayatana لصالح جنوم، ولكن يونتي ما زالت في انتظار الدمج فالمبرمجون يواجهون مشاكل مع كومبيز (بالإنجليزية: Compiz) بشكل أساسي.
يونتي (واجهة مستخدم) يونتي مقابل يونتي ثنائية الابعاد
حافظت كانونيكال على نسختين منفصلتين من يونتي يكاد لا يمكن التفريق بينهما بالعين المجردة ولكن هما مختلفتان كليا من الناحية التقنية.
يونتي مبرمجة كإضافة في compiz ومكتوبة بلغة سي ++ وفالا (بالإنجليزية: Vala) وتستعمل نوع من مكتبة الرسوميات المفتوحة غير معروف بكثرة يسمى نيكس (بالإنجليزية: Nux) هذه الإضافة تعطي ليونتي تسارع للجرافيك متوافق مع الأنظمة.
يونتي ثنائية الابعاد هي مجموعة من التطبيقات المنفردة.و هي مكتوبة بلغة واجهة المستخدم الرسومية QML بناء على بيئة كيوتي (بالإنجليزية: Qt).افتراضيا يونتي ثنائية الأبعاد تستخدم مدير النوافذ ميتاسيتي (بالإنجليزية: Metacity)و لكن يمكن أن تستخدم مير نوافذ متسارع مثل كومبيز (بالإنجليزية: Compiz) أو كوين (بالإنجليزية: KWin).
يونتي ثنائية الأبعاد ستعوض بيئة سطح المكتب جنوم الكلاسيكية ودعم للمستخدمين الذين لا تستطيع أجهزتهم تشغيل يونتي ثلاثية الأبعاد، ابتداءً من اوبونتو 11.10.
يونتي (واجهة مستخدم) الترخيص
يونتي عبارة عن برنامج مجاني صدر تحت شروط ترخيص جنو العمومية ر ج ع إ3 ورخصة جنو العمومية الصغرى ر ج ع ص إ3 على الرغم من هذا فإن برنامج يونتي يخضع لشروط استخدام كانونيكال ليمتد، مما يتطلب المساهمة لإعطاء شروط الاستخدام وهو ما يتيح لكانونيكال إصدار يونتي تحت تراخيص مختلفة.
يونتي (واجهة مستخدم) الإصدارات
إن تصميم وطريقة عمل يونتي كانا مثيرين للجدل منذ البداية ونتيجة لذلك فقد كتب العديد من مقيمي البرامج والخبراء حول الموضوع باحثين عن الأخطاء الموجودة فيها ومحاولين ابراز محدوديتها، وبالرغم من ذلك هناك من الخبراء من اعتبر هذا المشروع هو تحسن وتقدم نحو جنوم 2 مما يزيد من احتمال تحسين وتطوير يونتي عبر الوقت.
بعد وقت قصير من كشف النقاب عن إصدار مبكر جدا من يونتي في صيف عام 2010، لاحظ بول ريان من آرس تكنيكا ظهور مشاكل في طريقة تشغيل التطبيقات الإضافية التي ليست على شريط التطبيقات. وأشار أيضا إلى عدد من الأخطاء، بما في ذلك عدم وجود وسائل لتعقب التطبيقات التي كانت مفتوحة، جنبا إلى جنب مع غيرها من التعديلات.ولاحظ أن العديد من هذه الأخطاء ترجع على الأرجح إلى مرحلة مبكرة في عملية التطوير وتوقع ان تتحسن بمرور الوقت. واختتم بول إيجابيا، "تجربتنا لنموذج من يونتي يقودنا إلى الاعتقاد بأن المشروع يتمتع بإمكانات كبيرة ويمكن أن يجلب الكثير من القيمة إلى الإصدار النتبوك لأوبونتو.أسلوب بصري فريد من نوعه بخلطة جميلة مع أوبونتو الافتراضي الجديد ونموذجها التفاعل الأساسي يبدو مقنع ومناسب تماما للشاشات الصغيرة.
ماميثا رمادية
المامِيثَا الرمادية نوع نباتي يتبع جنس الماميثا من الفصيلة الخشخاشية.
ماميثا عربية
المامِيثَا العربية نوع نباتي يتبع جنس الماميثا من الفصيلة الخشخاشية.
ماميثا عربية البيئة والانتشار
ينتشر في جنوب غرب المشرق العربي وفي الحجاز في الجزيرة العربية.
محمود رحمي
محمود رحمي (3 يوليو 1939 - 23 يوليو 2001) . مخرج مصري ومصمم دمى. صاحب فكرة مسلسل بوجي وطمطم الذي عرض على التلفزيون المصري على مدار سنوات وكان رحمي هو مصمم الشخصيات.
محمود رحمي حياته
درس في كلية الفنون الجميلة وتخرج منها بدرجة امتياز لكنه فضل العمل في التليفزيون المصري على إكمال دراسته الجامعية، تخصص في تصميم وتقديم عروض العرائس، وقدم برنامج (توتة وسمسم)، لكنه نال شهرة كبرى بعد تقديمه لشخصية بقلظ التي ارتبطت بالإعلامية نجوى إبراهيم، أما اهم نجاحاته الفنية على الإطلاق فكان من خلال إطلاقه لشخصيتي (بوجي وطمطم) في سلسلة مسلسلات تليفزيونية شارك فيه العديد من الفنانين المصريين مثل هالة فاخر (طمطم)، يونس شلبي (بوجي)، إنعام سالوسة (طنط شفيقة).
محمود رحمي وفاته
توفي في 23 يوليو 2001 عن عمر يناهز 57 عاما بإحد مستشفيات القاهرة اثر ازمة قلبية بسبب ضيق ثلاثة شرايين في القلب رفض اجراء جراحة لها في وقت سابق، وذلك وفق ما اعلنه اصدقاءه.
ماميثا مدببة الأسنان
المامِيثَا مدببة الأسنان نوع نباتي يتبع جنس الماميثا من الفصيلة الخشخاشية.
ماميثا أنيقة
المَامِيثَا الأنيقة نوع نباتي يتبع جنس الماميثا من الفصيلة الخشخاشية.
ماميثا أنيقة الموئل والانتشار
ينتشر في جنوب بلاد الشام.
موطنه المغرب العربي ومصر وبلاد الشام والقوقاز إضافة إلى أفغانستان وطاجكستان وباكستان وإيران.
ماميثا كبيرة الأزهار
المَامِيثَا كبيرة الأزهار نوع نباتي يتبع جنس الماميثا من الفصيلة الخشخاشية.
ماميثا كبيرة الأزهار البيئة والانتشار
موطنها مناطق بلاد الشام ومصر وتركيا والقوقاز.
أزهر العبيدي
أزهر العبيدي (1946م) هو كاتب ومؤرخ موصلي.
أزهر العبيدي ترجمته
هو أزهر سعد الله خليل حياوي العبيدي، أنهى دراسته الأولية في الموصل عام 1962 التحق بالكلية العسكرية عام 1964، عين في صنف المدفعية عام 1967. دخل كلية الأركان وتخرج فيها عام 1978. اشترك بدورة الدفاع الوطني في جامعة البكر للدراسات العسكرية العليا وحصل على دبلوم عال عام 1989 شغل عدة مناصب في الجيش آخرها قائد فرقة المشاة. واحيل على التقاعد عام 1991.عضو في اتحاد الأدباء والكتاب. وعضو في جمعية المؤرخين، وعضو في جمعية النسابين.
أزهر العبيدي مؤلفاته
وله مؤلفات مخطوطة منها: مذكرات قائد فرقة عراقي (3 أجزاء) العسكرية الحقيقية، الحرب العراقية الإيرانية، حرب الخليج الثانية.
قابلية لإعادة الاستخدام
في علم الحاسوب وهندسة البرمجيات، يعد مصطلح قابلية إعادة الاستخدام (Reusability) هو عبارة عن جزء من شفرة يمكن استخدامها مرة أخرى لإضافة وظائف جديدة مع تعديلات طفيفة أو بلا تعديلات إطلاقا. الوحدات والفئات القابلة للاستخدام مرة أخرى تقلل وقت التنفيذ وتزيد من احتمالية أن تزيل الاختبارات والاستخدامات المسبقة كافة الفيروسات وتقوم بتوطين تعديلات الشفرات حين يكون هناك حاجة للتغيير في طريقة التنفيذ.
وتعد الوظائف الروتينية الفرعية أو الوظائف عامة هي أبسط أشكال إعادة الاستخدام. يتم ترتيب قدر من الشفرة بصورة منتظمة باستخدام البرمجة التركيبية أو مساحات الأسماء في صورة طبقات. ويدعي المؤيدين لهذه الطريقة أن تلك كائن (علوم الحاسوب) ومكونات البرمجيات تقدم شكلا أكثر تطورا من القابلية لإعادة الاستخدام على الرغم من أنه أصبح من الصعب قياس وتحديد المستويات أو درجات القابلية لإعادة الاستخدام بشكل موضوعي.
قابلية لإعادة الاستخدام
إن القدرة على إعادة الاستخدام تكمن في طريقة جوهرية حول القدرة على بناء أشياء أكبر من أجزاء صغيرة والقدرة على تحديد الأمور الشائعة بين هذه الأجزاء. وغالبا ما تكون القابلية لإعادة الاستخدام صفة مرغوب فيها لبرنامج منصة حاسوب. إن قابلية إعادة الاستخدام تتيح مجموعة من الملامح تطوير البرمجيات (علم حاسوب) التي لا تحتاج إلى النظر في أمرها حين لا تكون قابلية إعادة الاستخدام أمرا مطلوبا.
وتتضمن القابلية لإعادة الاستخدام بعض الإدارة الواضحة لموضوعات البناء وتغليف والتوزيع والتركيب والتثبيت والنشر والصيانة وترقية. إذا لم يتم أخذ هذه المسائل في عين الاعتبار فربما يبدو عالم البرمجيات قابلا للاستخدام مرة أخرى من وجهة نظر التصميم ولكنه لن يكون قابلا للاستخدام مرة أخرى من الناحية العملية.
قابلية لإعادة الاستخدام
وتشير قابلية إعادة استخدام البرمجيات مرة أخرى إلى سمات التصميم لعنصر من عناصر البرنامج بشكل خاص (أو مجموعة من عناصر البرامج) التي تعزز ملاءمته لإعادة الاستخدام.
وقد تم تطوير العديد من مبادئ تصميم إعادة الاستخدام في ورش عمل WISR:
http://www.umcs.maine.edu/~ftp/wisr/SEN-pap/node1.html نسخة محفوظة 15 يوليو 1997 على موقع واي باك مشين.
سمات التصميم المرشحة لإعادة استخدام البرمجيات تتضمن:
ولم يتم التوصل إلى أي إجماع حول هذه القائمة بعد شأن الأهمية النسبية للمدخلات أو للموضوعات التي تجعل كل واحدة من هذه العناصر هامة بالنسبة لفئة محددة من التطبيقات.
فحص برمجي
يشير مصطلح الفحص في هندسة البرمجيات إلى [مراجعة زميل] أي منتج عمل من جانب أفراد مدربين يبحثون عن العيوب باستخدام عملية محددة جيدًا. كما يمكن الإشارة إلى عملية الفحص بوصفها [فحص فاغان] بحسب مايكل فاغان، منشئ العملية الشهيرة لفحص البرمجيات.
فحص برمجي مقدمة
تمثل عملية الفحص أكثر أنواع ممارسات المراجعة شيوعًا الموجودة في مشاريع البرمجيات. ويتركز هدف عملية الفحص في وصول كافة مسؤولي الفحص إلى إجماع حول منتج عمل والموافقة عليه للاستخدام في المشروع. وتشمل منتجات العمل التي يشيع فحصها مواصفات متطلبات البرمجيات وخطط الاختبار. ويُحدّد منتج العمل في عملية الفحص للمراجعة ويتم جمع الفريق من أجل عقد اجتماع فحص لمراجعة منتج العمل. ويتم اختيار وسيط لترأس الاجتماع. ويحضر كل مسؤول فحص للاجتماع من خلال قراءة منتج العمل وتدوين كل عيب. والهدف من عملية الفحص هو تحديد العيوب. ويُعرّف العيب في أية عملية فحص على أنه أي جزء من منتج العمل يحول دون موافقة مسؤول الفحص عليه. على سبيل المثال، إذا كان الفريق يقوم بفحص مواصفات متطلبات البرمجيات، فسيكون كل عيب عبارة عن نص في المستند الذي يعارضه مسؤول الفحص.
فحص برمجي العملية
وضع مايكل فاغان عملية الفحص في أواسط سبعينيات القرن العشرين، وقد شهدت العملية توسعًا وتعديلاً لاحقًا.
ومن المفترض أن يكون للعملية معايير إدخال تحدد ما إذا كانت عملية الفحص جاهزة للشروع فيها. ويحول هذا دون دخول منتجات العمل غير المكتملة في عملية الفحص. وربما تكون معايير الإدخال عبارة عن قائمة مراجعة تتضمن بعض المصطلحات مثل «تم إجراء تدقيق إملائي للمستند».
ونورد فيما يلي مراحل عملية الفحص: التخطيط، الاجتماع لإلقاء نظرة شامل، الإعداد، اجتماع الفحص، إعادة العمل والمتابعة. ينبغي تكرار مراحل الإعداد واجتماع الفحص وإعادة العمل.
يقوم الوسيط بإنهاء العملية عندما تفي ببعض معايير الإنهاء المحددة مسبقًا.
فحص برمجي قواعد الفحص
تُستخدم القواعد التالية خلال عملية الفحص.
فحص برمجي أنواع الفحص ذات الصلة
يمكن إجراء [مراجعة الكود] كنوع خاص من الفحص يقوم فيه الفريق بفحص عينة كود وإصلاح أي عيوب بها. والعيب في أية مراجعة للكود عبارة عن مجموعة كود لا تطبّق على نحو ملائم متطلباتها أو التي لا تعمل كما يريد المبرمج أو التي تعد غير صحيحة ولكن يمكن تحسينها (على سبيل المثال، يمكن جعلها مقروء أكثر أو يمكن تحسين أدائها). وإضافة إلى مساعدة الفريق في إيجاد الأخطاء وإصلاحها، تعد مراجعات الكود مفيدة لكل من المبرمجين ذوي التدريب المتقاطع على الكود الذي يجري مراجعته ولمساعدة صغار المبرمجين في تعلم تقنيات البرمجة الجديدة.
تعتبر [مراجعات الزملاء] أفضل ممارسة في هذا المجال لاكتشاف عيوب البرمجيات وتعلم كيفية تدوين عناصر البرمجيات. تتألف مراجعات الزملاء من [عمليات الفحص العابر للبرمجيات] وعمليات فحص البرمجيات وتعد مكملة للأنشطة الهندسية الخاصة بإنتاج البرمجيات. وتيسّر مجموعة من المعرفة والمهارات والسلوكيات المتناسقة أفضل ممارسة محتملة لمراجعات الزملاء. وتتضمن عناصر مراجعات الزملاء عملية المراجعة الهيكلية ومعيار قوائم مراجعة المنتجات المتميزة والقواعد المحددة للمشاركين والنماذج والتقارير.
فحص برمجي أنواع الفحص ذات الصلة
وتمثل عمليات فحص البرمجيات الشكل الأكثر دقة من مراجعات الزملاء وتستخدم هذه العناصر بشكل كامل في اكتشاف العيوب. وتتذكر عمليات الفحص العابر للبرمجيات العناصر بصورة انتقائية في مساعدة المُنتِج في الحصول على أعمق فهم للعنصر والوصول إلى إجماع بين المشاركين. وتوحي النتائج المُقاسة أن مراجعات الزملاء تنتج عائد استثمار جذاب يتم الحصول عليه من خلال التعلم المتسارع والاكتشاف المبكر للعيب. وللحصول على أفضل النتائج، يتم نشر مراجعات الزملاء داخل أية مؤسسة من خلال برنامج محدد لإعداد سياسة وإجراء وتدريب الممارسين والمديرين وتحديد القياسات وملء بنية قاعدة بيانات وتعزيز البنية التحتية المنشورة.
تكامل النظم (هندسة برمجية)
تركيب النظم في هندسة تطبيقية هو جمع مكونات نظام في نظام واحد والتأكد من أن النظم الفرعية تعمل معا كنظام واحد. أما في تقنية المعلومات فإن تركيب النظم هي عملية ربط نظم الكمبيوتر المختلفة مع بعضها البعض وتطبيقات البرامج ماديا أو وظائفيا،
لتعمل معا كوحدة منسقة واحدة.
أداة تركيب النظام تجمع معا كافة النظم الغير مترابطة باستخدام مجموعة متنوعة من التقنيات مثل شبكة حاسوب، وتركيب تطبيقات الشركة وإدارة عجلة العمل أو برمجة يدوية
تكامل النظم (هندسة برمجية) نظرة عامة
هندسة أنظمة هو عبارة عن مجموعة من النظم الفرعية التي تتعاون معا بحيث يصبح النظام قادرا على تحقيق وأداء الوظيفة. ويتضمن تركيب النظام تركيب النظم الفرعية المتواجدة (المتفاوتة غالبا). وتتمتع النظم الفرعية بسطح بيني. ويتضمن التركيب ربط النظم الفرعية مع بعضها البعض عبر «لصق» الأسطح البيانية معا. إذا لم تتشابك الأسطح البينية معا بشكل مباشر، فإن «اللصق أو الرابط» بينهما يمكن أن يوفر رسم الخرائط المطلوب. يدور تركيب النظام حول تقرير «الرابط» المطلوب.
تركيب النظام يدور أيضا حول إضافة قيمة للنظام، الإمكانات الممكنة بفضل التفاعل بين النظم الفرعية.
في عالم اليوم المترابط يصبح دور مهندسي تركيب النظم أكثر وأكثر أهمية: يتم تصميم المزيد والمزيد من الأنظمة لربطها معا داخل النظام الذي لا يزال تحت الإنشاء وللنظم التي تم نشرها أيضا بالفعل.
تكامل النظم (هندسة برمجية) المهارات المطلوبة
يحتاج مهندس تركيب النظم نطاق واسع من المهارات ويمكن بصورة كبيرة تحديدها عبر مجموعة من المعارف بصورة عرضية وليس بصورة عميقة. ومع بذل الجهد لتحديد كمية المهارات المطلوبة لأداة دمج المكونات بمعايير اليوم، فقد قام إيريك ويك بتطوير نموذج مصفوفة عام 2010 لتقييم إمكانات المكملات المهتمة بمتبعة المهن في هذا المجال.
وفي الغالب تتضمن هذه المهارات هندسة البرمجيات وعتاد الحاسوب وبروتوكولات ميفاق اتصالات الأسطح البينية ومهارات حل المشكلات العامة. وفي الغالب فإن المشاكل التي تحتاج إلى حل لم يتم حلها من قبل إلا من الناحية العرضية. كما أنه من المحتمل أن تشمل مشاكل جديدة وأكثر تحديا مع مدخل من نطاق واسع من المهندسين حيث يقوم مهندس تركيب النظام ي«بجمع كافة المطلوبات معا».
تكامل النظم (هندسة برمجية) وسائل التركيب
التركيب العمودي (على عكس «الأفقي») هي عملية تركيب النظم الفرعية طبقا لوظيفيتها عبر صنع وحدات وظيفية يشار إليها أيضا باسم السلوات Silos. وتكمن فائدة هذه الوسيلة في أن التركيب يتم بسرعة ويتضمن فقط الباعة الضروريين، لذلك تعد هذه الوسيلة أرخص على المدى القصير. من الناحية الأخرى يمكن أن تكون تكلفة الملكية أعلى بدرجة واضحة مما في الوسائل الأخرى نظرا لأنه في حالة الوظيفية الجديدة أو المعززة تكون الطريقة الممكنة الوحيدة للتنفيذ (قياس النظام) هي عبر تطبيق السلوات الأخرى. إعادة استخدام النظم الفرعية لخلق وظيفية أخرى غير ممكن.
تكامل النظم (هندسة برمجية) وسائل التركيب
التركيب النجمي أو الذي يعرف أيضا باسم تركيب الإسباغيتي هي عملية لتركيب النظم حيث يرتبط كل نظام بالآخر بصورة متداخلة مع كل النظم الفرعية المتبقية. وحين يُلَاحَظُ ذلك من منظور النظام الفرعي الذي يتم تركيبها، فإن هذه الارتباطات تذكرنا بشكل النجمة، ولكن حين يتم تقديم الشكل الكلي للنظام تدو الارتباطات بشكل الاسباغيتي ومن هنا اقتبس اسم هذه الوسيلة. وتختلف التكلفة تبعا للأسطح البينية التي تقوم النظم الفرعية بتصديرها. وفي حالة حين تقوم النظم الفرعية تصدير أسطح بينية متغايرة الخواص أو متمالكة، فإن تكلفة التركيب يمكن أن تكون عالية بشكل كبير. تزداد التكلفة والوقت المطلوب لتركيب النظم بشكل أسي عند إضافة النظم الفرعية الإضافية. من ناحية السمات، تبدو هذه الوسيلة غالبا هي الوسيلة المفضلة نظرا للمرونة الشديدة في إعادة استخدام الوظائفية.
تكامل النظم (هندسة برمجية) وسائل التركيب
أما التركيب الأفقي أو حافلة خدمة المؤسسة (ESB) فهي وسيلة تركيب يتم فيها تخصيص نظام فرعي محدد للتواصل بين النظم الفرعية الأخرى بحيث يتيح ذلك قطع عدد الروابط (الأسطح البينية) وتخفيضها لتكون واحدة فقط لكل نظام ترتبط مباشرة بESB. و ES قادر على ترجمة السطح البيني إلى سطح بيني آخر بما يسمح تخفيض تكاليف التركيب وتوفير مزيد من المرونة. ومع النظم المتركيبة باستخدام هذه الطريقة يكون من الممكن استبدال نظام فرعي واحد بنظام فرعي آخر تماما بما يتيح وظائفية شبيهة ولكن تصدير أسطح بينية مختلفة، وكل هذه الأمور شفافة كثيرا لبقية النظم الفرعية الأخرى. التصرف الوحيد المطلوب هو تنفيذ السطح البيني الجديد بين ESB والنظام الفرعي الجديد.
أما المخطط الأفقي فيمكن أن يكون مضللا، إذا ما كان من المعتقد أن تكلفة نقل البيانات الوسيطة أو تكلفة نقل المسئولية عبر منطق العمل يمكن تجنبها.