نكته اول و نكته آخر: اگر فكر ميكنيد با خواندن اين مقاله استاد طراحي رابط كاربر ميشويد، ساده بگويم كه وقت خود را هدر خواهيد داد.
سالهاست كه از عمر محصولات نرم افزاري مي گذرد، با اين حال انگار همين ديروز بود كه نرم افزارها با محيطي سرد و بيروح با رنگهاي تيره و ترسناك فقط از راه خط فرمان دستورات را اجرا ميكردند، چقدر ذوق زده شديم وقتي كتابخانههاي توربو ويژن را دراختيار گرفتيم، چند سال قبل از آن حتي آدمهاي خوشبين هم فكر نمي كردند روزي موشواره اي اختراع ميشود تا كامپيوتر به كار آدمهاي كم سواد هم بيايد. اين سرعت آن قدر زياد بود كه حتي فرهنگستانها و لغت نامه نويسها هم نميدانستند چگونه واژهي معادل براي اين همه كلمه جديد پيدا كنند، از سوي ديگر آساني ورود به اين عرصهي جديد (علوم كامپيوتر و نرم افزار) و به كار گيري ابزارهاي آن منجر به اين شد كه يك شخص از هر طايفه و صنفي كه بود به راحتي بتواند در اين حوزه هم خودي نشان دهد. اگر باور نداريد ميتوانيد آمار افراد غير فيزيكداني را كه در رشتهي فيزيك فعاليت ميكنند را با افراد غير كامپيوتري كه در اين رشته دستي دارند، مقايسه كنيد.
اين قضيه بغرنج تر هم شد. وقتي يك عده آدم از خدا بي خبر آمدند و ويندوز (رابط كاربر گرافيكي[1]) را اختراع كردند. بعد هم، همه جا جار زدند كه نرم افزارها بايد طبق سليقهي مشتري توليد شود. در هر مرحله اي از ساخت هم باشد فرقي نمي كند. پس از آن صدها متدولوژي، روش ومدل و ... به خورد ما دادند، هيچ كس، حتي يك نفر هم نـگفت كه ما هنـوز اولي را هضم نكردهايم، يك چند سالي به ما فرصت بدهيد بگذاريد ما همان برنامههاي پيكاني خود را پيش فروش كنيم، بعداً سراغ تكنولوژي دست چندم ميرويم. البته اين نيز جاي تامل دارد. تكنــولوژي و واژه هاي جديد مثل باران و سيل بر سر ما مي بارد. البته ما هم بي صبرانه منتظر بارش هاي بعدي هستيم. هنوز در معني لغوي WEB مانده ايم كه .Net مي آيد، ERP مي آيد B2B و BPR و .. مي آيد. آن وقت وقتي منشي دفتر مان به جاي پست الكترونيك (خودش دو كلمه لاتين است!) مي نويسد Email، دهها تذكر به وي وارد ميشود. راستي پيشنهاد مي كنم كتابهاي آقاي رابرت ليفور[2] را مطالعه كنيد. سبك طنز گونهي تحرير جملات بالا را از كتابها ايشان فرا گرفتم (اگر ترجمه اي از وي داريد، دنبال اين سبك نگرديد). حالا كه اين همه تنوع ايجاد شده، خودمان هـم كه توقع مشتريان از نرم افزارها را بالا بردهايم، راهكار براي جبران اين اشتباه!(Blooper) چيست؟ اين جاست كه باز هم اين آدمهاي از خدا بي خبر فرنگي و ساموراييهاي بيصاحاب[3](!) وقتي كه ما شبها در خواب خوش هستيم ، بي خود سمينار مي گذارند، مقاله مينويسند، قهوه مي نوشند و دانش توليد ميكنند، تا فردا صبح نشريات IT چيزي براي چاپ داشته باشند. درسهاي جديدي مثل روانشناسي انتخاب منوها[4] و معماري مردمي[5] ميسازند. رشتههاي تحصيلي نوين با نامهاي مهندسي اجتماعي[6] و مهندسي رابط كاربري[7] ايجاد ميكنند، تازه مراكزي با نامهاي عجيب همچون دانشكده طراحي رسانه[8] تاسيس ميكنند. وزارت علوم و فنون و تحقيقات و تكثيرات و فناوري و غيره هم استانداردهايي براي رابط كاربر ميدهد كه هرچه بيشتر آنرا مطالعه ميفرماييد، كمتر اثري از كاربر آن مي بينيد، چه برسد به رابطش، مثل يكي از همكاران دوران بچگي ام كه ميگفت:" GUID [9]همان GUI است ولي Disignش". بگذريم، حال كه صحبت به اين جا رسيد، بهتر است سوالي مطرح كنيم (البته هيچ جايزهاي ندارد). چگونه مطمئن ميشويد كه طراحي رابط كاربر شما مناسب و خوب است؟ مواردي كه در ادامه به آنها اشاره مي شود، شما را در جواب دادن به اين سوال ياري ميدهد. تمامي آنها نكاتي است كه طي اين چند سال تجربه در حوزهي نرم افزار با توجه به مطالعات، بررسي نرمافزار هاي ديگر و استانداردهاي موجود به آنها رسيدهام . آشنايي با استانداردها، تكنيكها و مدلهاي ( الگو ) معرفي شده براي طراحي رابط كاربر، تاثيرات به سزايي در ايجاد يك نرم افزار با نماي جالب و كاربر پسند خواهد داشت. لازم به ذكر است كه تمامي اين نكات صرفاٌ راهنمايي در اين حوزه است و قاعده و قانون لازم الاجرا نيست. با اين وجود پيروي و بهره گيري از اين راهنماييها ميتواند تاثيرات خوبي در نرم افزار شما داشته باشد. مطمئن باشيد كه اگر كاربر نتواند با نرم افزار شما ارتباط برقرار كند يا به كارگيري آن برايش مشكل باشد، سريعاً آن را كنار گذاشته و به نرم افزار مشابه رجوع مي كند. مخصوصاٌ در حوزه طراحي صفحات وب، اين قضيه جلوهي بيشتري خواهد داشت . قوانين ساده اي كه در مقدمه به آنها اشاره شد را ميتوان به نكات ذيل دسته بندي كرد:
1. ثبات رفتاري ( پرهيز از ايجاد نكات تعجب آور ) - داشتن رفتار يكسان در هر زمان و هر مكان از برنامه - داشتن اصطلاحات يكسان در تمام برنامه به طور مثال، جايي پيام قبول - لغو بدهيم و جايي ديگر تاييد - انصراف - داشتن آيكن هاي يكسان و مشخص - داشتن رنگهاي منحصر و يكسان
2. سادگي - يك عمل پيچيده را به اعمال ساده تر بشكنيد و عملكردهاي اضافي را نيز حذف كنيدتا رابط ساده تر شود . - اگر كاربر بايد يك فرايند[10] طولاني را انجام دهد، بهتر است اين توالي به مراحل كوتاه تر تبديل شود ( استفاده از Wizards ) . - اعمال را با به كاربردن آيكن ها و كلمات ساده مشخص كنيد. - ازكلمات و آيكنهايي كه براي كاربر آشناترند، استفاده كنيد. - مفاهيم شبيه به هم را در يك گروه و دسته قراردهيد، مثلاٌ در يك منو يا يك كادر يا Tab Control - از نمايش Message Box خوداري كنيد، مگر اطلاعاتي كه كاربر لازم است كه ببيند همچنين از بيامهاي كوتاه و موثر استفاده كنيد (از كلمات لطفاٌ، در صورت لزوم پرهيز نماييد).
3. محدوديت حافظه انساني - به حافظه كاربر فشار تحميل نكنيد. - مراحل بايد طوري طراحي شوند تا لازم نباشد كه مثلاٌ كاربر اعمال انجام شده در 10 مرحله قبل را به ياد آورد. - از نمايش اطلاعات مهم با حجم زياد آن هم در مدت كوتاه، پرهيز كنيد. - فيلدهاي صفحه به شكلي كه كاربر انتظار آن را دارد، طراحي كنيد. مثلاٌ فيلد نام خانوادگي بايد بعد از فيلد نام باشد و يا فيلد تاريخ بصورت ..../.../.... مشخص باشد . - استفاده از Hint و عنوان هاي كوتاه و معني دار براي مشخص كردن اين كه كاربر در چه مرحله اي از انجام يك عمليات قرار دارد (مثلاٌ در يك برنامة نصب، اين نكته كه كاربر در حال حاضر درچه مرحله اي از پروسه نصب قرار دارد مهم است ) . - باز خوردهاي پيشرفت را مشخص كنيد. اين نكته كه در حال حاضر چه عملي در حال انجام يا چه عملي اتفاق افتاده است . - مراحل را طوري پيش بيني كنيد تا كاربر بتواند روند را تشخيص دهد، نه اين كه بخواهد مطلبي را به ياد آورد . مثلاٌ با روشن شدن كليد ( ذخيره ) كاربر ميفهمد كه تغييراتي به وجود آمده و بايد آنها را ذخيره كند. اين بهتراز آن است كه كليد ذخيره دايم روشن باشد و كاربر تغييرات خود را به ياد داشته باشد . - ازاستفادهي تعداد زياد آيكن و فرايندهاي طولاني اجتناب كنيد، چرا كه به ياد آوري مراحل مختلف و يا سپرده آن به حافظه از طرف كاربر مشكل است .
4. باز خورد - دادن باز خورد مناسب به كاربر در زمان مقرر به طور مثال، در ويندوز وقتي در يك فرم كليد Tab زده ميشود، كنترل هاي كه فوكوس برنامه روي آنها قرار دارد، اصطلاحاً Highlight مي شوند. مانند يك Textbox يا يك Button. - تدارك مشاهده شاخص وضعيت مثلاٌ نمايش يك Progress Bar هنگام كپي كردن يك فايل يا تغيير مكان نماي[11] ماوس. دراين زمان كاربر متوجه مي شود كه اتفاقي در حال انجام است و حتي مي تواند پيش بيني تقريبي از زمان آن داشته باشد.
5. پيامهاي سيستم - پيامهايي راكه كاربر آنها را سريعاٌ درك كند، به كار ببريد. مثلاٌ Problem in sending Email به جاي Error 12790 in using smtp port - استفاده از پيامهاي صريح و روشن پيامها نبايد حالت چند گانگي به وجود بياورد. مثال معروف آن Press Return بجاي Press Any Key است. در بازي تاكسي ديوانه از اين موضوع استفادهي طنز شده است و همه پيامها بصورت Press A key for Continue است كه جواب آن هم، زدن كليد A از طرف كاربر است . - پرهيز از پيام هاي عجيب براي خطاهاي استثنايي وقتي در برنامه Exception Handling ميكنيد، در صورت بروز خطاهاي نا شخص پيامهاي نامشخصي مانند Fatal Error , Job Abortion , Catastrophic Failure Error نشان ندهيد. - از كلمات مشخص و سودمند استفاده كنيد. مثلاٌ استفاده از جملهي "داده هاي ورودي كافي نيست" زياد مناسب نيست. بلكه بهتر است مشخصاٌ بگوئيد كه مثلا " نام و نام خانوادگي را وارد نماييد" . نكته : امروزه برنامهاي تحت وب و جملهي اطلاعات ورودي كافي نيست در بالا ميآيد و كنار هر فيلدي كه اجباري است يك علامت مشخص كننده مثل * نمايش مييابد. - بهتر است سيستم بار گناه را به دوش بكشد و مقصر شناخته شود . مثلاٌ براي استفاده از پيام " دستور ورودي غير مجاز است " پيام بدهيم كه دستور ورودي مفهوم يا فايل مشخص نيست. از لحاظ رواني، كاربر با خواندن جملهي اول، برنامه ساز را مقصر ميداند و در حالي كه جمله دوم كاربر سيستم (يا خودش) را مقصر قلمداد مي كند. - براي برنامه جنبه هاي انساني در نظر نگيريد. استفاده از پيامهاي انساني از نظررواني براي كاربر، دلهره آور است، شايد هم او را عصباني ميكند. فكرش را بكنيد كاربر صبح OutLook را باز مي كند و سلام صبح بخير را مشاهده ميكند و يا هنگام بستن يك برنامه پيام " روز خوبي داشته باشيد " را مشاهده كند.
6. حالات و قيود - استفاده از مدهاي مختلف بايد با دقت انجام بگيرد (مد، يك رفتار يا حالتي است كه برنامه در يك شرايط خاص در آن قراردارد) مثلاً تغيير شكل مكان نما يا شكل ماوس به كاربر مي فهماند كه در حال حاضر در حال ويرايش است يا جستجو . - حالات / مدها ، تا جايي كه ممكن است بايد قابليت برگشت به حالت قبل را دارا باشد. - كمترين استفاده از مدهاي انحصاري ( مثل [12]Show Modal ) از فرمها Modal زماني استفاده كنيد كه مفهوم مقيد بودن در آن فرم موجود باشد. مثل يك فرم Save Dialog كه ميخواهد يك فايل را برايمان ذخيره كند و دسترسي به فرمهاي اصلي برنامه را قطع ميكند تا هنگامي كه بسته شود. - خنثي كردن يا باطل كردن عمل اتفاق افتاده ( Undo ) - تا حد امكان، اعمال طوري طراحي شوند كه امكان Undo كردن داشته باشند. اما هميشه يك سقفي براي اين كار در نظر بگيريد تا كنترل از دست برنامه خارج نشود، مثلاً در خيلي از برنامه ها 15-10 بار Undo مجاز است . - خروج ا زعمليات امكان خارج شدن از عمليات در حال اجرا امكان خوبي است . - خود من براي آشنايي با خيلي از برنامه ها و Wizardها و برنامه هاي نصب، آنها را تا مرحله يكي به آخر انجام مي دهم و سپس انصراف مي دهم .
7. توجه و دقت - در استفاده از روشها و تكنيكهايي كه توجه كاربر را برمي انگيزد، محتاط و هوشيار باشيد . از استفاده مكرر از رنگهاي اخطاري، پيام هاي چشمك زن، خطوط ضخيم و ..... پرهيز كنيد. - گوناگوني فونت ها بهتر است در يك فرم به خصوص از چندين سايز و قلم متفاوت استفاده نشود، حداكثر 4 سايز قلم منطقي است و بيشتر از 3 نوع فونت هم غير منطقي است. - براي استفلده از خطوط و كلمات زير خط دار، دليل منطقي داشته باشيد. در هر صورت، استفاده مكرر از كلمات زير خط دار جلوه خوبي ندارد . - استفاده افراطي از تذكر (Hint)هاي صوتي و تصويري به تمركز فكري كاربر لطمه ميزند . - اگراز كلمات لاتين استفاده مي كنيد، سعي كنيد تماماٌ از حروف بزرگ استفاده نكنيد. استفاده از رنگها بايد مناسب و در خور انتظار باشد. در عرف جامعه، بعضي رنگها مفهوم خاصي دارند كه اغلب آنها را ميشناسيم. انتخاب رنگ قرمز براي كليد "قبول" خارج از انتظار است و يا داشتن يك فرم به رنگ قرمز و زرد و بنفش، تعجب هر كاربري را برمي انگيزد. به هر حال سعي كنيد بيشتر از 4 رنگ در يك فرم استفاده نكنيد. متون آبي به سختي خوانده مي شوند. سعي كنيد از آنها استفاده نكنيد. در عوض زمينهي آبي براي كاربران خوشايند است. اما در زمينهي آبي از متن قرمز استفاده نكنيد. استفادهي همزمان از رنگهايي با كنتراست بالا به هيچ عنوان توصيه نميشود.
8. يكپارچگي در نمايش - سعي كنيد قيافه و نمايش از يك فرم به فرم ديگر زياد تغيير نداشته باشد. - مثلاٌ در يكي، كليد Ok بالاي صفحه و در ديگري پائين صفحه باشد . - با گذاشتن كادرهايي از پيچيدگي فرمها بكاهيد. قبلاٌ هم گفتيم محصور كردن اعمال شبيه هم در يك كادر يا پانل باعث كم شدن پيچيدگي فرمها مي شود. - در تمام فرمها براي اعمال يكسان، كلمات يكسان (بامعني واضح، روشن و صريح) استفاده كنيد. - در تمام برنامه، آيكن ها بايد معني يكه و واحد داشته باشند. - توازن توزيع اطلاعات در سطح يك فرم را رعايت كنيد . به طور مثال، مقدار زياد اطلاعات را در قسمت بالاي فرم قرار ندهيد تا قسمت پايين فرم خالي بماند. بهتراست فرم را 4 قسمت كنيد و اطلاعات را در آن پخش نماييد. - تركيببندي مناسب اطلاعات در فرمها از ارايهي توضيحات اضافي جلوگيري ميكند. درك مطالب از اين طريق، سريعتر از زماني است كه كاربر بخواهد توضيح بسيار دربارهي هر قسمت بخواند.
9- تفاوتهاي فردي - - كاربراني كه از برنامه استفاده ميكنند، تفاوتهاي فردي زيادي دارند. اين خوب است كه بر روي مشتركات آنها برنامهريزي ميكنيم، اما توجه به تواناييهاي فردي در سطح Minimum ميتواند مفيد واقع شود . - - امكان استفاده از Keyboard به جاي Mouse بهتر است براي هر عملي كه با ماوس انجام مي شود، معادلي در صفحه كليد موجود باشد. - استفاده از قلمها و رنگهاي مناسب، تا افرادي كه ضعف بينايي دارند در استفاده از برنامه مشكلي نداشته باشند. - بسياري از كاربران ما ازبرنامههاي معروف ديگر نيز استفاده مي كنند. بنابر اين بهتر است پيامها، آيكنها، كليدها و .... مشابه نسخههاي نرمافزارهاي پر استفاده باشد.
[1] Graphic User Interface (GUI)
[2] Robert Lefore يكي از اساتيد مسلم برنامه سازي
[3] Ronin International 1 اشاره به گروه
[4] Psychology of Menu Selecting
[5] Popular Architecture
[6] Social Engineering
[7] User Interface Engineering
[8] Knowledge Media Design Institute
[9] Global Unique ID يك مشخصه بي همتا در ويندوز
[10] Sequence
[11] Cursor
[12] حالتي از فرم ها كه وقتي يك فرم باز ميشود كنترل برنامه رادر دست ميگيرد واجازه كار با ديگر فرمهاي برنامه را نميدهد.
رضا كيواني
© کپی رایت توسط : مشهد رایانه Mashhad Rayaneh (کلیه حقوق مادی و معنوی مربوط و متعلق به این سایت است.)
برداشت مطالب فقط با اجازه کتبی و ذکر منبع امکان پذیر است .