معايير توكيد جودة برامج الكمبيوتر ((SQA)) Software Quality Assurance

Dr. M. Gawdat د. مصطفى جودت

Dr. M. Gawdat
د. مصطفى جودت

ظهرت معايير توكيد جودة برامج الكمبيوتر (SQA) استجابة للحاجة لوضع مواصفات شاملة لتأكيد جودة برامج الكمبيوتر مع اختلاف أهدافها وطرق إنتاجها ، وبشكل عام يقصد بالجودة مطابقة المنتج للمواصفات الموضوعة له، وعلى هذا فإن جودة البرامج Software Quality حسب التعريف الوارد ضمن معيار ISO 9126 هي “مجموع السمات والخصائص المتعلقة بالمنتج البرنامجي التي تجعله قادراً على تحقيق الهدف من إنتاجه “ ([1]) ، ويمكن تعريفها كذلك “بمجموعة العمليات والأدوات المستخدمة في مراقبة إنتاج برامج الكمبيوتر في ضوء أهداف واضحة ومواصفات محددة[2] . وتندرج خصائص البرنامج تحت عدد من العوامل والتي ترتبط بدورها بعدد من معايير الجودة، ويتم التحقق من توافر معايير الجودة عن طريق أدوات لقياس تلك المعايير Software Quality Metrics تبدأ من أداة بسيطة لجمع المعلومات، أو نموذج تقويم يملؤه أحد الخبراء إلى أن تصل إلى معادلات غاية في التعقيد لتقويم جوانب دقيقة من البرنامج ([3]) ([4]).

وتحدد المنظمة الدولية للتوحيد القياسي ستة عوامل تؤثر في جودة البرامج وهي التوظيف Functionality ، والموثوقية Reliability ، والكفاءة Efficiency، وإمكانية الاستخدام Usability، وإمكانية الصيانة Maintainability، وإمكانية التنقل بين نظم تشغيل مختلفة Portability ([5]). أما أكثر المحاور شمولاً فهي ما وصفها ميشيل إيفانس Michael W. Evans ([6]) تحت مسمى هرم الجودة ، حيث وصف اثنا عشر عاملاً تبنى عليه جودة البرنامج وقسم تلك العوامل إلى ثلاث فئات وهي :-

400_F_47176691_i7IoWAdZb2ZfJny0NmUXrvW2enPsKFQt

(ا) عوامل تتعلق بالأداء Performance ، ومنها :-

أ. الكفاءة Efficiency .             ج. الموثوقية Reliability .

ب. السلامة Integrity .            د. سهولة الاستخدام Usability .

(2) عوامل تتعلق بالتصميم ، ومنها :-

أ. الصحة Correctness .          ج. إمكانية الاختبار Testability .

ب. إمكانية الصيانة Maintainability .

(3) عوامل تتعلق بالتكيف Adaptation ، ومنها :-

أ. إمكانية التوسع المستقبلي Expandability .

ب. المرونة Flexibility .

ج. التوافق Interoperability .

د. إمكانية النقل Portability .

هـ. إمكانية إعادة الاستخدام Reusability .

وفيما يلي شرح لتلك العوامل من منظور جودة البرامج التعليمية : –

(1) الكفاءة Efficiency : لابد من تحديد مستوى معين من الكفاءة لا يتم إجازة البرنامج إلا بعد تخطيه لهذا المستوى ، ويختلف هذا المستوى تبعاً لمتطلبات كل برنامج ووظيفته ، وتتعلق الكفاءة بالإجابة على تساؤل مفاده كيف يمكن للبرنامج أن يساعد على إتاحة موارده للمستخدم، وذلك عن طريق الكفاءة في التنفيذ ، والكفاءة في التخزين .

أ. كفاءة التنفيذ : تقاس كفاءة التنفيذ عن طريق ما يسمى بوقت التنفيذ Processing Time ، ومن العمليات التي تتطلب كفاءة في التنفيذ : تحليل استجابات المتعلم وخاصة إذا كانت عن طريق اللغة الطبيعية، وليست مقيدة بأسئلة موضوعية، وأيضاً العرض المتزامن بين أكثر من وسيلة من الوسائل المتعددة لأن تأخر أحدها قد يؤدي إلى نتائج غير مطلوبة .

ب. كفاءة التخزين : وتقاس كفاءة التخزين بقدرة البرنامج على اختزان واسترجاع وحدات البيانات، ونحتاج برامج الوسائل المتعددة التعليمية أدوات تخزين ذات قدرات عالية – كالأقراص الضوئية- لتختزن الأشكال المختلفة للمعلومات، كما أن العديد من البرامج التعليمية تتصل بقواعد بيانات تسجل بها أمثلة متنوعة، وأسئلة مختلفة حتى يمكن أن يختار منها ما يناسب المتعلم .

(2) السلامة Integrity : وهو مسمى مرادف للأمن Security ، ويجب أن يتمتع البرنامج بأمن البيانات ، ومن ذلك :

أ. التحكم في الدخول للبرنامج Access Control: خاصة للبرامج التعليمية الموضوعة على شبكات محلية أو عامة ، ويجب أن نتأكد من أن من يستخدم البرنامج مسموح له باستخدامه بالفعل ، ومن صور الأمن كذلك عدم سماح البرنامج للطالب أن يطلع على تقارير زملائه ممن استخدموا نفس البرنامج إلا عن طريق كلمة مرور خاصة بالمعلم .

ب. التدقيق في الدخول Access Audit : وذلك عن طريق تسجيل بيانات كل من قام باستخدام البرنامج ، وتاريخ وزمن الدخول والفترة التي استخدم فيها البرنامج ، وهي خاصية للبرامج التي تتاح عن طريق الشبكات .

(3) المصداقية Reliability : تتصل المصداقية أو الموثوقية بالدرجة التي يمكن للبرنامج أن يؤدي فيها وظائفه دون أخطاء ، وعموماً كلما زادت مرات المراجعة وفترة الاختبار للبرنامج كلما قلت أخطاؤه ، وقد تكون الأخطاء في البرنامج التعليمي أخطاء في المحتوى ، و يمكن تصحيحها بسهولة ، أو أخطاء فنية تؤدي إلى توقف البرنامج عن العمل أو إعطاؤه نتائج غير صحيحة عن مستوى الطالب ، ولكي يتحقق مستوى جيد من المصداقية يجب مراعاة ما يلي :

أ. الدقة Accuracy : في جميع مراحل تصميم وإنتاج ومراجعة البرنامج ، وتقاس الدقة بعدد الأخطاء في الألف ، ويعد مستوى ثلاثة أخطاء في الألف مستوى مقبول في الدقة بشرط عدم إعاقة العمليات الأساسية ولكل مؤسسة الحق في وضع محك الدقة الخاص بها .

ب . البساطة Simplicity : كلما كان بناء البرنامج بسيطاً وبعيداً عن التعقيد أمكن تجنب الأخطاء وبالتالي تحقيق المصداقية للبرنامج .

(4) سهولة الاستخدام Usability : وتعد من أهم المعايير المؤثرة على نجاح البرنامج ، فلو صعب استخدام البرنامج من قبل المستخدم النهائي فإن ذلك يجعل البرنامج عديم الفائدة حتى لو تمتع بالكفاءة والمصداقية ، وليس معنى ذلك أن يكون البرنامج دائماً صديقاُ للمستخدم User Friendly فقد يتطلب قدراً من التدريب على استخدامه ، لكن يجب مراعاة أن يركز المستخدم اهتمامه على تعلم المهارات التي يتيحها البرنامج ، لا أن يتعلم كيف يستخدم البرنامج . ويراعى في أداء البرنامج ما يلي :

أ . إمكانية التشغيل Operability : معظم البرامج التعليمية تم إعدادها بإستراتيجية التعلم الفردي ، وبالتالي ليس من المقبول أن لا يتمكن المستخدم من استخدام البرنامج بنفسه.

ب . التدريب Training : تطلب جميع البرامج التعليمية حداً أدنى من المعرفة والتدريب وهو ما يسمى بالثقافة الكمبيوترية Computer Literacy ، إلا أن بعض البرامج قد تتطلب تدريباً خاصاً على استخدامها كبعض برامج المحاكاة ولكن كلما قلت فترة التدريب التي يتطلبها البرنامج كلما كان ذلك أفضل.

(5) الصحة Correctness : يقصد بالصحة مدى اتفاق البرنامج مع الأهداف التي وضع من أجلها ، والمعايير المحددة لأدائه . ويتم ذلك عن طريق :

أ . الاكتمال Completeness : يقصد به الأداء الأمثل لتحقيق أكبر قدر من حاجات المستفيد .

ب . الاتساق Consistency : والذي يعتبر من صفات البرنامج الذي يقدم إطاراً أو أسلوباً موحداً في الأداء ، والبرنامج الذي يحقق قدراً عالياً من الاتساق يألفه المستخدم بسرعة ، مما يجنبه الارتباك والفهم الخاطئ.

ج . التتبع Traceability : هو الخط الواصل بين المتطلبات والتنفيذ .

(6) قابلية البرنامج للصيانة Maintainability : ويقصد بقابلية البرنامج للصيانة المجهود المطلوب لتحديد وإصلاح أي خطأ يقع فيه البرنامج في مرحلة معينة من مراحل التشغيل . فالبرنامج كأي نظام يحتاج إلى دعم وصيانة ، لذلك يجب أن يراعى في تصميم البرنامج عمليات الصيانة اللاحقة ويتم ذلك عن طريق :

أ . النمذجة Modularity : حيث يجب تقسيم البرنامج إلى عدة نماذج ليسهل معرفة كل منها والعمليات الداخلة فيها ، ويسجل النموذج في شكل مخطط بحيث يسهل تتبع الخطأ فيما بعد.

ب . السهولة Simplicity : كلما كان بناء البرنامج سهل وبعيد عن التعقيد كلما أصبح في الإمكان صيانته فيما بعد .

ج . الاتساق Consistency : عن طريق استخدام أسلوباً موحداً ومتسقاً في بناء وحدات البرنامج حتى يسهل تتبع وتشخيص ومعالجة الأخطاء .

د. الشرح الذاتي Self-Descriptiveness : تزود بعض البرامج ونظم التشغيل بإمكانية التشخيص لبعض المشكلات التي تتعرض لها أثناء العمل مما يسهل معالجتها ، ومن أمثلة ذلك التنبيه على عدم كفاية الذاكرة الحالية لتشغيل البرنامج بكامل طاقته ، التنبيه إلى أن المساحة الحالية على القرص لا تكفي لتحميل البرنامج ، التنبيه على وجود خطأ في أحد ملفات البرنامج قد يكون بسبب تعرضه لفيروس.

هـ . إمكانية الوصول للوثائق Document Accessibility : عملية التصميم والبرمجة تنتج عنها وثائق ، لابد أن تتاح هذه الوثائق فيما بعد لتسهيل عملية صيانة البرنامج .

(7) إمكانية الاختبار Testability والتحقق Verifiability : ترتبط قابلية البرنامج للاختبار بإتاحة الوثائق المرتبطة بتقييم كل مرحلة من مراحل الإنتاج وذلك لمراجعتها والتحقق من التزامها بالمواصفات القياسية، كوجود نسخة مطبوعة من الشفرة (الكود) المستخدمة في كتابة البرنامج وتنظيمها بشكل يسهل مراجعتها:

أ . النمذجة Modularity : توافر نماذج موثقة للبرنامج تسهل عملية الاختبار فيما بعد .

ب . السهولة Simplicity : حيث تؤدي سهولة بناء البرنامج إلى سهولة اختباره.

ج . الاختبار Test : لابد من تصميم اختبارات لقياس أداء البرنامج ، والتحقق من وفائه بالمتطلبات المطلوبة. وقد يمر البرنامج بعدة اختبارات مثل التحقق من الخلو من الأخطاء النحوية والإملائية ، والفنية ، وقياس قدرات البرنامج ومقارنتها بالمحكات الموضوعة من قبل مصمم البرنامج .

د . الشرح الذاتي Self-Descriptiveness : تعين البرامج المزودة بتلك الخاصية القائمين على اختبارها ومراجعتها من التحقق من كفاءتها ومطابقتها للمواصفات.

هـ . الوصول إلى الوثائق Document Accessibility : يجب أن تتاح لمن يقوم باختبار البرنامج أثناء الإعداد كافة الوثائق المتعلقة بعملية تصميم البرنامج وأهدافه ووظائفه ، ومعايير التقويم للبرنامج في حالة وجودها.

(8) إمكانية التوسع Expandability : يتعلق هذا العامل بإمكانية ترقية البرنامج وزيادة قدراته ووظائفه لرفع كفاءته وزيادة محتواه أو تحديثه . وتعد هذه الخاصية ضرورية في برامج التطبيقات والمنافع، أما بالنسبة للبرامج التعليمية فلا تتم عملية التحديث فيها من خلال ترقية برنامج حالي ، بل عن طريق إصدار برنامج جديد أو طبعة جديدة . وتتيح بعض البرامج التعليمية إمكانية زيادة المحتوى من الأمثلة والتمارين للمعلم بحيث يقوم بتوسيع برنامجه بنفسه وفق حاجة الموقف التعليمي .

(9) المرونة Flexibility : يقصد بمرونة البرنامج مقدار السهولة في التغيير في وظيفة البرنامج أو محتواه أو بياناته . ويتوقف ذلك بالطبع على الاتفاقية بين منتج البرنامج ومن يقوم بالتعديل . ومن أمثلة مرونة البرنامج التعليمي إن يتيح للمعلم إضافة المزيد من الأمثلة والأسئلة على المحتوى الرئيسي للبرنامج من خلال قاعدة بيانات مستقلة عن البرنامج الأصلي ، وتتميز بعض برامج الوسائل المتعددة بأن ملفات الصوت تكون مستقلة عن ملفات التشغيل وبالتالي يمكن استبدالها في حالة الرغبة في تغيير لغة الحوار .

(10) التوافق Compatibility وإمكانية التشغيل المترابط Interoperability: ويقصد بذلك إمكانية تعامل البرنامج مع نظم تشغيل وأجهزة مختلفة ، وتوجد العديد من البرامج التعليمية العربية تعمل مع جميع إصدارات النوافذ المعربة وغير المعربة ، كذلك تصدر بعض الشركات إصدارات خاصة بأجهزة IBM وأخرى بأجهزة الماكنتوش.

(11) إمكانية النقل Portability : يدخل ضمن هذا العامل إمكانية طرح البرنامج للاستخدام من خلال شبكة بها أجهزة مختلفة وأنظمة مختلفة ويتطلب ذلك وجود شفرة قياسية موحدة لتبادل المعلومات مثل Unicode.

(12) إعادة الاستخدام Reusability : يقصد بهذا العامل تحويل محتويات البرنامج لكي تستخدم في برنامج آخر ويشبه ذلك معامل إمكانية النقل Portability ، والفرق بينهما أن إمكانية النقل تبحث نقل البرنامج من جهاز أو نظام تشغيل إلى جهاز أو نظام تشغيل آخر ، بينما إعادة الاستخدام تتعلق الانتفاع بمحتويات البرنامج في تطبيقات أخرى تحت نفس نظام التشغيل ، ويجب أن يُسمح بذلك من قبل المنتج الأصلي للبرنامج ، وتتيح بعض الموسوعات التي تستخدم الوسائل المتعددة نسخ الصور والمقالات المتواجدة بها للاستفادة بها في كتابة مقالات أخرى أو طباعتها عن طريق معالج كلمات متوافق مع النظام الحالي ، إلا أن حقوق التأليف تمنع استخدامها في برامج مشابه بصورة تجارية .

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

ويجب أن يتم تحديد عوامل الجودة في مرحلة تصميم البرنامج ، ثم وضعها في الاعتبار طوال مراحل مراقبة وتوكيد الجودة . والفرق بين مصطلحات مراقبة الجودة أو التحقق من الجودة Quality Auditوتوكيد الجودة Quality Assurance هو أن مصطلح “مراقبة الجودة” يعتبر طريقة لفحص واستبعاد العمل المعيب ، وتتم من خلال اختبارات متعددة تطبق على البرنامج في مختلف مراحله ، بينما مصطلح “توكيد الجودة” يدل على منع حدوث الأخطاء والعيوب في البرنامج ([7]) ، عن طريق التصميم الجيد وإدارة جيدة وشاملة للجودة .

sqa1 sqa2 sqa3

 

 

9788126525935

 

 

 

 

 

 

 

 

 

 

 

المصادر :

[1] – Fenton, Norman. , Robin Whitty & Yoshiori Lizuka. Software Quality Assurance and management : a worldwide perspective . – London : International Thomson Publishing Co., 1995, p13.

[2] – http://www.sqa.net/

[3] – Fenton, N., p 12.

[4]Establishing a Quality Assurance functions for software . Electronic Engineering Association , 1995, p p 6 – 11.

[5] – Fenton, Norman. op., cit., p 13.

[6] – Evance, Michael W. & John J. Marchiniak. Software Quality Assurance and management . – New York : John Wiley & Sons, 1989, p 160.

[7] – فارمان ، ريتشارد . توكيد الجودة في التدريب والتعليم : طريقة لتطبيق معايير ISO9000 / ترجمة سامي حسن الفرس ، ناصر محمد العديلي . – بيروت : دار آفاق الابداع العالمية ، 1995 ، ص 18.

Comments

Comments

error: Content is protected !!
%d مدونون معجبون بهذه:
التخطي إلى شريط الأدوات