Loading AI tools
من ويكيبيديا، الموسوعة الحرة
تشير جودة البرمجيات (بالإنجليزية: Software quality) في سياق هندسة البرمجيات إلى مفهومين مرتبطين ولكنهما مختلفان:
يمكن تقييم العديد من جوانب الجودة الهيكلية بشكل ثابت فقط من خلال تحليل البنية الداخلية والكود المصدري للبرمجيات، على مستوى الوحدة ومستوى التكنولوجيا ومستوى النظام، وهو في الواقع كيفية التزام بنيتها بالمبادئ السليمة لبنية البرمجيات المُبينة في بحث عن هذا الموضوع قامت به مجموعة إدارة الكائن.[2] لكن بعض الخصائص البنيوية، مثل قابلية الاستخدام، لا يمكن تقييمها إلا بشكل ديناميكي (يتفاعل المستخدمون أو الذين يعملون بالنيابة عنهم مع البرمجيات أو على الأقل مع بعض النماذج الأولية أو التنفيذ الجزئي؛ وحتى التفاعل مع إصدار وهمي مصنوع من الورق المقوى يمثل اختبارًا ديناميكيًا لأنه يمكن اعتباره مثل هذا الإصدار نموذجًا أوليًا). قد تتضمن الجوانب الأخرى، مثل المصداقية، البرمجيات بالإضافة إلى الأجهزة الأساسية، لذا، يمكن تقييمها بشكل ثابت وديناميكي (اختبار الإجهاد)
عادةً ما تقيّم الجودة الوظيفية ديناميكيًا، لكن من الممكن أيضًا استخدام الاختبارات الثابتة (مثل مراجعات البرمجيات).
من الناحية التاريخية، اشتُقت أو استُخرجت البنية والتصنيف ومصطلحات السمات والمقاييس المطبقة على إدارة جودة البرمجيات من معيار أيزو 9126-3 ونموذج الجودة التالي أيزو 25000:2005،[3] المعروف أيضًا باسم «سكويرSQuaRE ».[4] واستنادًا إلى هذه النماذج، حدد اتحاد جودة برمجيات تكنولوجيا المعلومات خمس خصائص هيكلية رئيسية مرغوبة وضرورية لجزء من البرمجيات لتوفير قيمة الأعمال: المصداقية، والكفاءة، والأمان، وإمكانية الصيانة، والحجم المناسب.
يحدد قياس جودة البرمجيات مدى تصنيف البرنامج أو النظام البرمجي لكل من هذه الأبعاد الخمسة. يمكن حوسبة القياسات المجمعة لجودة البرامج من خلال نظام تسجيل نوعي أو كمي أو مزيج من الاثنين ثم من خلال نظام ترجيح يعكس الأولويات. يستكمل عرض جودة البرمجيات هذا الذي يرتكز على سلسلة خطية متصلة من خلال تحليل «أخطاء البرمجة الحرجة» الذي يمكن أن يؤدي في ظل ظروف معينة إلى انقطاعات كارثية أو تدهور بالأداء الذي يجعل نظامًا معينًا غير مناسب للاستخدام بغض النظر عن التصنيف المستند إلى القياسات المجمعة. تمثل أخطاء البرمجة على مستوى النظام ما يصل إلى 90% من مشكلات الإنتاج، بينما تمثل أخطاء البرمجة على مستوى الوحدة، حتى لو كانت كثيرة العدد، أقل من 10% من مشكلات الإنتاج. نتيجة لذلك، فإن جودة الكود خارج سياق النظام الكامل، كما وصفها دبليو إدواردز ديمنغ، لها قيمة محدودة.
لعرض، واستكشاف، وتحليل ونقل قياسات جودة البرمجيات، توفر مفاهيم وتقنيات تصور المعلومات وسائل مرئية وتفاعلية مفيدة، خاصة إذا كان يجب أن ترتبط عدة إجراءات لجودة البرامج بعضها ببعض أو بمكونات برمجية أو نظام. مثلًا، تمثل الخرائط البرمجية نهجًا متخصصًا «يمكنه التعبير عن المعلومات المتعلقة بتطوير البرمجيات وجودة البرمجيات وديناميكيات النظام وجمعها»[5]
«ينضج العلم بنضج أدوات قياسه» (لويس باستور في إيبرت ودومك، ص 91). يحفّز قياس جودة البرامج بسببين على الأقل:
على أي حال، فإن التمييز بين قياس جودة البرمجيات وتحسينها في نظام مضمن (مع التركيز على إدارة المخاطر) وجودة البرمجيات في برمجيات الأعمال (مع التركيز على إدارة التكلفة والصيانة) أصبح غير ذي صلة إلى حد ما. غالبًا ما تتضمن الأنظمة المضمنة الآن واجهة مستخدم، ويهتم مصممو هذه الأنظمة بالمشاكل التي تؤثر على قابلية الاستخدام وإنتاجية المستخدم بقدر اهتمام نظرائهم الذين يركزون على تطبيقات الأعمال. ويبحث هؤلاء الأخيرون في نظام تخطيط موارد المؤسسة أو إدارة علاقات العملاء باعتباره نظامًا عصبيًا للشركة يعتبر وقت التشغيل والأداء من الأمور الحيوية لرفاه المؤسسة. يكون هذا التقارب مرئيًا بشكل أكبر في الحوسبة المحمولة: يعتمد المستخدم الذي يصل إلى تطبيق تخطيط موارد المؤسسة من هاتفه الذكي على جودة البرامج عبر كل أنواع الطبقات البرمجية.
يستخدم كلا نوعي البرمجيات الآن مكدسات تقنية متعددة الطبقات، وهيكلة معقدة حتى يُدار تحليل جودة البرامج وقياسها بطريقة شاملة ومتسقة، وبشكل منفصل عن الغرض أو الاستخدام النهائي للبرمجيات. في كلتا الحالتين، يجب أن يكون المهندسون والإداريون قادرين على اتخاذ قرارات عقلانية مبنية على القياس والتحليل القائم على الحقائق، وذلك في إطار الالتزام بمبدأ «نحن نثق بالله فقط. على جميع الآخرين جلب البيانات»، الذي نُسب بشكل خاطئ إلى دبليو إدواردز ديمنغ وآخرون.
هناك العديد من التعريفات المختلفة للجودة. بالنسبة للبعض، هي «قدرة منتج البرنامج على الامتثال للمتطلبات» (أيزو/ آي إي سي 9001).[10] بينما بالنسبة للآخرين، يمكن أن تكون مرادفة لـ«قيمة العميل» (هايسمث، 2002) أو حتى مستوى العيب.
يُنسب أول تعريف مسجل تاريخيًا للجودة لشيوارت في بداية القرن العشرين: هناك جانبان شائعان للجودة: يتعلق أحدهما بجودة شيء ما باعتباره واقع موضوعي مستقل عن وجود الإنسان. أما الآخر فيتعلق بما نفكر فيه أو نحس أو نشعر به نتيجة للواقع الموضوعي. وبعبارة أخرى، هناك جانب ذاتي من الجودة. (شيوارت)[11]
قدّم كيتشنهام وفليغر تقارير أخرى عن تعاليم ديفيد غارفين، وحددوا خمسة وجهات نظر مختلفة حول الجودة:[12]