الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف تجعل برنامجك قابلا للاستخدام؟

مغلق
بدأه MEMONONO في 8 يناير 2005 · 4 رد · 8,750 مشاهدة · في هندسة البرمجيات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لرؤية أفضل للموضوع قم بتنزيل الملف المرفق....

اقتباس
كيف تجعل برنامجك قابلا للاستخدام؟

ست نصائح مهمة لتصميم برنامج قابل للاستخدام

مقدمة

تعتبر هندسة التفاعل البشري Interaction Design فرع من فروع الهندسة أو هندسة النظم ولكننا في علم الحاسب الآلي أدخلناه ضمن ما نحب أن نسميه هندسة البرمجيات. هذه المقالة تتكلم عن جعل تصميم أي شيء بما فيها البرامج قابلا للاستخدام. و يجب أن لا ننسى أن منتجاتنا في النهاية هي للمستخدم. فإذا كان برنامجك قابلا للاستخدام فقد بلغ فائدته المرجوة طبعا بالإضافة إلى عمله الصحيح.

القابلية للاستخدام

لكي نجعل البرنامج قابلا للاستخدام يجب أن نحقق ما يسمى أهداف الاستخدام Usability Goals. هذه الأهداف تضمن لنا جعل المنتج متفاعلا و فعالا و ممتعا بالنسبة للمستخدم. تضمن هذه الأهداف سلامة استخدام المستخدم للمنتج بفعالية لكي يؤدي نشاطاته أو عملياته بطريقة سريعة وفعالة.

الأهداف الستة

- الفعالية effectivenesE.

- الكفاءة Effecincy.

- الأمان Security.

- المنفعة Utility

- قابلية التعلم Learnability.

- قابلية التذكرMomorabilty.

والآن سنفصل في كل هدف من هذه الأهداف بتعريفه ومن ثم شرحه ونلحق كل هدف بمثال توضيحي صغير وفي النهاية نصيحة صغيرة للمصمم.

الفعالية effectivenesE

كيف يكون برنامج فعالا؟

تعرف الفعالية أنها مدى قدرة برنامجك على عمل ما ينبغي عمله.

ما معنى ذلك؟

معناه هنا بسيط وهو أن البرنامج يعمل ما هو مطلوب منه بالضبط بدون زيادة أو نقصان.

مثال:

تخيل لو انك تريد برنامج محاسبة ولكن هذا البرنامج يقدم خدمات جيدة جدا مثلا خطوط جميلة او أداة للرسم!! فهل هذا برنامج فعال؟ بالطبع لا فأنت تريد برنامجا للمحاسبة فماذا يدعم الرسم ويترك المحاسبة.

نصيحة

طبعا قد يكون المثال السابق ساذجا بعض الشيء. ولكن قد تفاجأ لو قلت لك ان الكثير من المبرمجين عند تصميمهم لبرامجهم يذهبون لأشياء يتقنونها جيدا ويبرزونها في برامجهم وقد لاتكون لها علاقة مباشرة بالمنتج ولكن المبرمج يعجبه أن يبرز مهارته في عمل هذه الشيء.

الكفاءة yEffecinc

كيف يكون برنامج ذو كفاءة عالية؟

تعرف الكفاءة على أنها مدى قدرة برنامجك على دعم المستخدم لعمل شيء معين.

ما معنى ذلك؟

معناه أنه يجب أن تصمم برنامجك بطريقة معينة بحيث تدعم المستخدم في انجاز العمليات التي يريد أن يقوم بها.

مثال:

تخيل لو انك تريد الحصول على معلومة في صفحة انترنت. فكيف تحب أن يكون حصولك عليها؟ هل تفضل الموقع الذي يجعلك تدخل 4 صفحات متتالية للحصول على تلك المعلومة ؟ أم نصف هذا العدد من الصفحات؟

لا حظ أيضا أن المستخدم يحرك المؤشر بين كل صفحة وأخرى ويضر لتتبع كل رابط لكي يصل إليها.

نصيحة

قلل عدد الحركات التي يحتاج عملها المستخدم لعمل شيء ما. و إن لم تسطع فحاول أن تقلل من عناء الحركة المستمرة للمؤشر. فلا تجعل المستخدم يقرأ الصفحة كاملة ويضر الى الذهاب بالمؤشر من آخر الصفحة إلى أولها لكي يضغط على رابط يدعى "للخلف"!!

الأمان Security

كيف يكون برنامج آمناً؟

يعرف الأمان هنا في هذا الموضع بأنه قدرة البرنامج على منع المستخدم من عمل أشياء غير مرغوب فيها أو أشياء فيها خطر إما على المنتج أو على المستخدم.

ما معنى ذلك؟

معناه أن يجب أن يكون في البرنامج شيئين مهمين هما القدرة على منع المستخدم من عمل أخطاء و القدرة على التراجع عن العمل في حالة الخطأ

مثال:

تخيل لو أن لديك برنامجاً يقرأ رسائل البريد مثل الـOutLook ولكنك إذا حذفت الرسائل لا يسألك عن ما إذا كنت متأكدا من هذه العملية. ماذا يكون شعورك في حلة انك ظللت جميع الرسائل وقمت بمسحها خطأ؟

لنأخذ سيناريو آخر وهو أن وأنت في محرر النصوص الخاص بك وكتبت تقرير طويل وبعد ذلك ذهب للقائمة لتضغط على خيار الحفظ وتفاجأ انك ضغط بالخطأ على خيار الإغلاق لأنه بجانبه!!

نصيحة

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

المنفعة yUtilit

كيف يكون برنامج ذو منفعة؟

تعرف المنفعة هنا على أنها مدى قدرة برنامجك على توفير الأدوات الممكنة للمستخدم على عمل ما يريد فعله.

ما معنى ذلك؟

معناه أنه يجب أن تصمم برنامجك بطريقة معينة بحيث توفر للمستخدم كل ما يحتاج لكي يؤدي العمل الذي يريده بالطريقة التي يريدها.

مثال:

تخيل لو كان برنامج الرسام لا يتيح لك خاصية الرسم الحر!! ومع ذلك فأنت تستطيع أن ترسم أي شيء تريده ولكنك مجبر على استخدام الأدوات المتوفرة فيه لذا فسوف تمل استخدام البرنامج.

نصيحة

دائما عند توفيرك الأدوات في برنامج حاول أن تجعل المستخدم حر في تصرفاته ووفر أدوات مرنة لعمل النشاطات التي يريد عملها.

قابلية التعلم Learnability.

كيف يكون برنامج سهل التعلم؟

تعرف قابلية التعلم على أنها درجة سهولة التعامل مع البرنامج.

ما معنى ذلك؟

معناه أنه يجب أن تصمم برنامجك بطريقة معينة بحيث يكون سهل التعامل. من المعروف أن المستخدمين لا يحبون أن يضيعوا أوقاتهم في قراءة دليل المستخدم ويحبون أن يبدؤوا بالعمل مباشرة دون الحاجة إلى تدريب. فهل برنامجك بالسهولة لكي يقوم المستخدم بفهمه من أول 10 دقائق مثلا؟ هل يسطيع أن يعرف ماذا يقدم برنامجك من مجر النظر إليه؟

مثال:

تخيل لو عندك برنامجين يعملان في مجال الكيمياء. فكيف تفضل أن يكون برنامجك؟ هل تفضل البرنامج الذي يوفر مساعدة ظاهرة بجانب البرنامج أم الذي يوفر دليلا للمستخدم؟

نصيحة

ليس دائما يكون البرنامج سهلا بحيث يستطيع المستخدم لذلك فدليل المستخدم الممتع والواضح شيء مهم لبرنامجك. أيضا لا تجعل المستخدم يتلفت يمينا ويسارا لكي يبحث عن شيء ما وبالذات إذا كانت المساعدة.

قابلية التذكرMomorabilty.

كيف يكون برنامج قابلا للتذكر؟

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

ما معنى ذلك؟

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

مثال:

تخيل لو انك تضر للتدريب على برنامج معين كلما انقطعت عنه فترة من الزمن أو أن العمليات التي يقوم بها البرنامج صعبة لدرجة انك تشعر انك تقوم بها لأول مرة.

نصيحة

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

النهاية

أريد أن أوضح أشياء مهمة:

- قد تكون هذه النصائح عامة ولكنها مفيدة جدا إذا عملت لها اعتبار وأنت تصمم البرنامج.

– احضر من يستطيع ان يقيم تصميمك من ناحية دعمه للاستخدام.

– حاول أن تجعل المستخدم مرتاحا دائما وسعيدا بالعمل في برنامجك.

– لاحظ أن هذه إرشادات لقابلية الاستخدام ويوجد هناك الكثير من الأشياء الأخرى التي ينبغي مراعاتها في التصميم.

– وإذا كان هناك أي أسئلة فأنا مستعد إن شاء الله.

وائل كابلي

كيف تجعل برنامجك قابلا للاستخدام.pdf

2

لماذا تكون الليغو اللعبة الأكثر عبقرية في العالم؟

لأنها غير قابلة للتجزئة ، وتختلف فيما بينها بالألوان و الأشكال ، وتمتلك القدرة على تكوين علاقات مع بعض. نستطيع أن نقول أن أجزاء الليغو أبدية. وهي تشبه الذرات في تراكيبها للكون

-----

وائل بن أحمد كابلي

مستشار تطوير برمجيات | مايكروسوفت للخدمات الاستشارية

MCSE | MCTS SharePoint Infrastructure | MCTS SharePoint - Development | MCP | MSF Essentials

http://blogs.msdn.com/wael

@waelkabli

#2

جزاكم الله خيراً ..

سلسلة مواضيع اكثر من رائعة..

1
اقتباس
الـ VB هى الأساس ... بتبرمج بيها بالاحساس

ولا سيمي كولن ولا أقواس ... وتعلمها سهل لكل الناس

راكب فيها موتور نفاث ... دي سريعه جدا وباخلاص

الـ VB هى التراث ... للذكور والايناث :D

الـ VB لغة عريقه ... حتى اسأل Anwarica

من ديوان الشاعر السي شاربي "معتز شمس"
#3

مرحبا بك وبمواضيعك الشيقه ;)

بعض التعليقات :-

--------------------

اقتباس
قلل عدد الحركات التي يحتاج عملها المستخدم لعمل شيء ما. و إن لم تسطع فحاول أن تقلل من عناء الحركة المستمرة للمؤشر. فلا تجعل المستخدم يقرأ الصفحة كاملة ويضر الى الذهاب بالمؤشر من آخر الصفحة إلى أولها لكي يضغط على رابط يدعى "للخلف"!!

لا ينتبه معظم المبرمجين لهذه النصيحه المنطقيه وذلك يرجع لعدم محاولتهم وضع أنفسهم فى مكان المستخدم ، بماذا يشعر عند إستخدام البرنامج ؟ ماذا سيكون إنطباعه الأول على البرنامج عند فتحه أول مره؟ من هذا المستخدم ؟هل هو مهندس أم طفل أم دكتور أم مستخدم عادى أم ... أم ... لأن واجهة البرنامج وطريقة التحرك Navigation System فى البرنامج ستختلف بإختلام المستخدم المستهدف.

اقتباس
ولكنك إذا حذفت الرسائل لا يسألك عن ما إذا كنت متأكدا من هذه العملية. ماذا يكون شعورك في حلة انك ظللت جميع الرسائل وقمت بمسحها خطأ؟

بالرغم من أن كثرة الرسائل غير مرغوب بها فى أى برنامج و كمستخدم أكره كثرة

الرسائل ولكن ... إذا حدث خطأ من هذا النوع وضاعت بيانات مهمه جدا من المستخدم بإستخدام برنامجك سيكون أول هجومه عليك هو "لماذا لا توجد رسائل تحذيريه عند القيام بالمسح كما هو الحال فى جميع البرامج الأخرى وفى نظام التشغيل عموما ؟؟!"

اقتباس
ووفر إمكانية التراجع في البرنامج في حالة قام المستخدم باختيار الخيار خطأ.

هذه إمكانيه جيده جدا وتذيد كثيرا من النقاط التى سيقوم المستخدم بإحتسابها للبرنامج فى تقييمه الا إرادى !

اقتباس
المنفعة yUtilit

إضافه هنا :

إذا إعتدت على تصميم برامج وتدع بها إحتيارات وإمكانيات كثيره لتنفيذ العمل المستهدف بكذا طريقه مع وجود إمكانيات أخرى فإنك ستصتدم بمن يقول لك "هناك مستخدمين يريدون زر واحد للقيام بالعمل بغض النظر عن شكله وطريقته ولا يريد كل هذا :angry: الأزرار والإختيارات !!"

الحل الوحيد عندى هو أن أقوم بعمل هذا للمستخدمين المتقدمين والطريقه المباشره مدمجه فى البرنامج للمستخدم العادى (أبو زر واحد) .يا ترى هل هناك حلول أخرى ؟؟

اقتباس
لا تجعل المستخدم يتلفت يمينا ويسارا لكي يبحث عن شيء ما وبالذات إذا كانت المساعدة

:rolleyes:

اقتباس
– احضر من يستطيع ان يقيم تصميمك من ناحية دعمه للاستخدام.

ويفضل أن يكون قليل المعرفه بالبرمجه أو لا توجد عنده أى خبره بالبرمجه وذلك ليعطيك ردفعل المستخدم تجاه برنامجك.

فى النهايه ، شكرا أخى وائل على الدرس الممتع

تم تعديل هذه المشاركة بواسطة أحمد عز في 9 يناير 2005 في 03:28

1
#4

شكرا لك يابو حميد

مداخلاتك دائما تدهشني :D

لماذا تكون الليغو اللعبة الأكثر عبقرية في العالم؟

لأنها غير قابلة للتجزئة ، وتختلف فيما بينها بالألوان و الأشكال ، وتمتلك القدرة على تكوين علاقات مع بعض. نستطيع أن نقول أن أجزاء الليغو أبدية. وهي تشبه الذرات في تراكيبها للكون

-----

وائل بن أحمد كابلي

مستشار تطوير برمجيات | مايكروسوفت للخدمات الاستشارية

MCSE | MCTS SharePoint Infrastructure | MCTS SharePoint - Development | MCP | MSF Essentials

http://blogs.msdn.com/wael

@waelkabli

#5

أعزك الله وائل

وأنت مواضيعك دائما تدهشنى :D

تم تعديل هذه المشاركة بواسطة أحمد عز في 16 يناير 2005 في 01:47

هذا الموضوع مغلق.

مواضيع مشابهة