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