چگونه يک پروژه نرم افزاري را با موفقيت انجام دهيم!؟

23 05 2009

در دوران دانشجويي و حتی قبل از دانشجویی برای من خیلی پیش آمد که برای کسی برنامه بنویسم و پروژه نرم افزاری انجام بدم. بعضی هایش را قبول کردم و برخی را به علت هایی رد کردم. اوایل که جوگیر شده بودم و فکر میکردم خیلی برنامه نویسم، اگر هر پروژه ای به من واگذار میشد، نه نمی گفتم. خوشبختانه آن اوایل به جز یک برنامه، پیشنهاد دیگری به من نشد! به هر حال، در این اواخر رویه ای را پیش گرفتم در پروژه گرفتن و پروژه انجام دادن، که فکر میکنم رویه درستی است و از آن نتیجه های خوبی هم گرفتم. اگر دانشجو هستید و مثل من کم تجربه، حتماً قبل از گرفتن پروژه مسائلی که در این مطلب ذکر کردم را در نظر داشته باشید.

پروژه را قبول کنيم يا خير!
قبل از اينکه جواب اين سئوال را بدهيد، بايد پروژه اي که قرار است انجام دهيد را بفهميد. براي اين کار هم بايد به صورت حضوري با کارفرما ملاقات کنيد و اگر ملاقات حضوري در دسترس نيست، بوسيله تلفن با او صحبت کنيد. سئوالات و ابهامتان را در مورد پروژه از کارفرما بپرسيد. سعي کنيد تمام سئوال هايتان را از قبل در يک برگه بنويسيد تا هنگام صحبت با کارفرما سئوالي را فراموش نکنيد، چون معمولاً کارفرما را کمتر در طول انجام پروژه ملاقات مي کنيد. بعضي از کارفرمايان عادت دارند که از جواب دادن به سئوالات شما فرار کنند و با گفتن جمله اي شبيه به “ببينيد من فقط ميخواهم اين پروژه کار من را راه بيندازد و فلان کار را به خوبي انجام دهد” و از اين دست جمله ها، سر و ته صحبت را به هم بياورند. شما بايد بتوانيد هر اطلاعاتي که لازم داريد از زير زبان کارفرما بيرون بکشيد. اين يک مهارت است. خيلي وقت ها کارفرمايان شما از سيستم هاي کامپيوتري چيزي نمي دانند و نبايد تعجب کنيد که حتي دستشان به ماوس هم نخورده باشد! اگر کاربر سيستم شما همان کارفرما باشد که کارتان خيلي سخت خواهد بود. در غير اين صورت حتماً بعد از صحبت با کارفرما با کاربراني که قرار است با سيستم شما کار کنند نيز صحبت کنيد و از سطح آشنايي با کامپيوتر و سواد آن ها اطلاع پيدا کنيد. آشنايي با کاربران سيستم، ديد شما را بازتر خواهد کرد.

امکان سنجي کنيد
بعد از اينکه فهميديد کارفرما واقعاً چه مي خواهد، امکان سنجي کنيد که آيا مي توانيد با دانش خود و ابزارهاي موجود اين پروژه را انجام دهيد يا خير. به هر حال خودتان بهتر مي دانيد چه توانايي هايي داريد و با چه ابزارهايي آشنايي داريد. اگر پروژه اي فقط با يک ابزار خاص بايد انجام شود و شما کار با آن ابزار را بلد نيستيد، خيلي راحت پروژه را قبول نکنيد. هرگز به اميد اينکه طي انجام پروژه، کار با ابزاري را ياد خواهيد گرفت، پروژه اي را قبول نکنيد. فاکتورهای بسیار مهم دیگری که باید تخمین بزنید و در نظر بگیرید، زمان و هزینه پروژه هستد. معمولاً زمان تحویل را کارفرما تعیین می کند، اگر حتی یک درصد هم امکان می دهید که این زمان برای انجام چنین پروژه ای کم است، پروژه را قبول نکنید یا وقت بیشتری از کارفرما بخواهید. اگر زمان تحویل دست خودتان است، زمانی که تخمین می زنید را دو برابر کنید و در قرارداد ذکر کنید. دستمزد انجام پروژه معمولاً دست شما نسیت و کارفرما آنقدر چانه زنی می کند که شما را از رو خواهد برد. اگر پول برایتان مهم نیست و فقط برای کسب تجربه پروژه انجام می دهید که هیچ، اما اگر دستمزدتان برایتان مهم است حتماً قیمت معقولی را بر اساس حجم کار و زمانی که از شما خواهد گرفت، بدهید. این قیمت می تواند تحت تاثیر اعتبارتلن نیز قرار گیرد. به هر حال من خودم هنوز به فرمول مشخصی برای قیمت دادن نرسیدم.

حتماً قرارداد ببنديد

هر چقدر هم پروژه مورد نظر کوچک باشد، شما بايد با طرف مقابل قرارداد محکمي ببنديد و حتماً امضا و احتمالاً مهر کارفرما را زير آن قرارداد داشته باشيد. حتماً فاکتور زمان و استثناهايي که ممکن است در طول انجام پروژه پيش بيايد را در بندهاي قرارداد جاي دهيد. هزينه انجام پروژه را به صراحت در قرارداد ذکر کنيد و بندي قرار دهيد که مثلاً 50 درصد هزينه را کارفرما در طي انجام پروژه پرداخت کند و بقيه را حداکثر تا 10 روز پس از تحويل پروژه بپردازد. اگر کارفرما به پشتيباني نياز دارد، حتماً و تاکيد مي کنم حتمآً چند بند را در قرارداد براي خدمات پشتيباني و استثناهاي مربوط به آن کنار بگذاريد. به طور مثال شما مي توانيد با همان هزينه انجام پروژه، يک سال به صورت رايگان پشتيباني را انجام دهيد. در اين صورت بطور دقيق تاريخ اتمام يک سال خدمات پشتيباني رايگان را ذکر کنيد. براي استفاده از خدمات پشتيباني نرخي را در قرارداد ذکرکنيد و بندي هم قرار دهيد که ممکن است در سال هاي بعد اين نرخ افزايش يابد. حتماً مشخص کنيد که اين خدمات پشتيباني فقط مربوط به مشکلات مربوط به نرم افزار شماست نه چيز ديگر. مثلاً ذکر کنيد که شما در قبال مشکلات سخت افزاري و نصب ويندوز و اين جور چيزها مسئوليتي نداريد.

پروژه را تحليل کنيد

نيازهاي هر کاربر از سيستم را ليست کنيد. سرويس هايي که قرار است سيستم به کاربران مختلف بدهد را مشخص کنيد. اگر با مباحث مهندسي نرم افزار آشنايي داريد، اين قسمت همان شناسايي Actorها و Usecaseهاي سيستم است. هر چقدر شناخت خود را از پروژه افزايش دهيد، کيفيت خروجي کار شما بالاتر خواهد بود و در نتيجه کارفرما راضي تر. پس تا مي توانيد مرحله شناخت نيازها و تحليل سيستم را جدي بگيريد. خروجي فسمت تحليل، مستنداتي است که بر اساس آن پروژه شکل مي گيرد. سعي کنيد همه چيز را مستند کنيد. از مصاحبه هايي که با کاربران سيستم انجام داده ايد تا مسائل فني را براي خودتان بنويسيد. حتي اگر پروژه خيلي هم به نظراتان کوچک باشد، باز هم اين مستندات لازم و حياتي هستند. در قسمت طراحي و پياده سازي متوجه خواهيد شد که اين مستندات چقدر فهم مسئله را ساده تر مي کنند. در اینجا می توانید از یکی از روش های معمول مهندسی نرم افزار برای تحلیل استفاده کنید.

فاز طراحي را جدي بگيريد

با استفاده از مستندات قسمت تحليل، بايد طراحي سيستم نرم افزاري را شروع کنيد. کلاس هاي سيستم را با توجه به مستندات و شناختي که از سيستم داريد مشخص کنيد. اين کلاس ها ممکن است در زمان پياده سازي تغييراتي بکنند. شما فعلاً به صورت کلي کلاس ها را ببينيد. سعي کنيد براي درک بهتر آن ها، دياگرام کلاس ها را نيز رسم کنيد. در اين فاز معماري سيستم نيز مشخص مي شود. ابتدا معلوم کنيد که پلت فرمي که قرار است سيستم روي آن کار کند چيست. مثلاً قرار است نرم افزار تحت وب کار کند يا تحت ويندوز. البته پلت فرم بسياري از پروژه ها در هنگام سفارش، معلوم مي شود. اگر پلت فرم بستگي به نظر شما دارد، سعي کنيد پلت فرمي را انتخاب کنيد که هم روي آن تجربه و تخصص داريد و هم مناسب انجام اين پروژه است.

پياده سازي

اگر فازهاي قبلي را به درستي انجام داده باشيد، در پياده سازي با مشکل حادي برخورد نخواهيد کرد. مستندات دو فاز قبلي مشخصات پياده سازي را تعيين مي کنند. اگر پروژه شما نياز به يک پايگاه داده براي ذخيره اطلاعات دارد (که در اکثر پروژه ها همينطور است)،ابتدا داده هايي که قرار است ذخيره کنيد را بر اساس مستندات فازهاي قبلي شناسايي کنيد. اگر مي توانيد نمودار روابط بين موجوديت ها يا ERD و Data Model را براي درک بهتر بانک اطلاعاتي سيستم رسم کنيد. براي بانک اطلاعاتي خود يک RDBMS مناسب انتخاب کنيد. وقتي به طور مثال SQLite يا Access نياز شما را برطرف مي کنند، بيخودي خود را درگير پيچيدگي هاي SQL Server يا Oracle نکنيد.

براي پياده سازي يک پروژه نرم افزاري، احتياج به ابزارهاي توسعه نرم افزار و يک زبان برنامه نويسي داريد. اگر کارفرما اين ها را مشخص کرده که هيچ، اما اگر بستگي به خودتان دارد، ابزار و زباني را انتخاب کنيد که در آن تجربه داريد و متناسب با پروژه شماست. پلت فرم ها و محيط هاي معمول توسعه نرم افزار براي پروژه هاي شما مناسب هستند، پس اصلاً نگران انتخاب ابزار و زبان نباشيد.

معمولاً بعد از پیاده سازی و تحویل نهایی به کارفرما کارتان تمام نمی شود. تازه بعد از آن است که کارفرما هر روز با شما تماس می گیرد که فلان قسمت برناه را برایش عوض کنید یا قابلیت جدیدی به آن اضافه کنید. در اینجا فقط یک قرارداد محکم می تواند شما را نجات بدهد. باید در قراردادی که با کارفرما بسته اید، بندهایی برای تغییر در نرم افزار و اضافه کردن قابلیت جدید به آن در نظر بگیرید که زبان شما هم در مقابل کارفرما دراز باشد.

در آخر

اگر صلاحیت فنی و روحی انجام پروژه ای را در خودتان نمی بینید، به هیچ وجه قبولش نکنید، چون دردسرهای زیادی برایتان پیش خواهد آورد. سعی کنید به هیچ وجه با کارفرما خودمانی نشوید و شوخی نکنید، کلاس کاری خود را حفظ کنید و فاکتور زمان را حتمآً رعایت کنید. پروژه را که سروقت تحویل دهید در حقیقت به اعتبارتان افزوده اید. کارفرمایان اوصولاً در هنگام پول دادن کم پیدا می شوند و شما اگر بهترین نرم افزار هم برایش تولید کرده باشید، باز ایراد خواهد گرفت و از شما تخفیف خواهد خواست.

اگر سئوال یا ابهامی دارید در کامنت های همین مطلب ذکر کنید تا به آن پاسخ داده شود.





وب سرویس به زبان ساده

20 05 2009

وقتی اینترنت همه گیر شد و استفاده از آن سرعت گرفت، همیشه این سئوال بود که دو کامپیوتر که از هم دور هستند چگونه می توانند بدون دخالت یک انسان با هم ارتباط برقرار کنند. منظور از ارتباط این است که یک برنامه در یک کامپیوتر بتواند تابعی که در یک برنامه دیگر که در یک کامپیوتر دور از خودش قرار دارد را صدا بزند و نتیجه اش را دریافت کند. به هر حال شرکت های نرم افزاری دست به کار شدند تا پاسخی برای این مشکل پیدا کنند. شرکت مایکروسافت در این زمینه هم پیشرو بود و تکنولوژی DCOM را برای رفع این نیاز تولید کرد.
نسل بعدی راه حل این مشکل، که هم اکنون به صورت گسترده ای در اینترنت مورد استفاده قرار می گیرد، وب سرویس ها هستند. وب سرویس ها، برنامه های تحت دسکتاپ و تحت وب را قادر می سازند که با یک ارتباط روی HTTP به توابع داخل آن ها دسترسی پیدا کنند و نتیجه اش را در قالب فرمت استاندارد XML دریافت کنند.
وب سرویس ها به زبان برنامه نویسی، پلت فرم و پروتکل خاصی وابستگی ندارند.  یعنی شما می توانید با هر زبان برنامه نویسی روی هر پلت فرمی از وب سرویس ها استفاده کنید. یک وب سرویس نتیجه پردازش هایش را در قالب فرمت XML به برنامه در خواست کننده بوسیله HTTP می فرستد. فرمت XML، راهی استاندارد برای ارتباط دو سیستم ناسازگار است. علت اینکه پیغام های وب سرویس ها با استفاده از HTTP ارسال می شود این است که به راحتی و بدون اینکه توسط فایروال ها بلاک شوند، به دست برنامه درخواست کننده روی اینترنت برسد.
از مثال های وب سرویس های ساده ای که امروز استفاده می شود، می توان به سرویس گزارش وضع هوا، سرویس اخبار، سرویس تبدیل واحدهای پولی، سرویس شناسایی کشور از روی IP و … اشاره نمود.

Web Service in .NET platform

اصطلاحات معمولی که با وب سرویس بکار می روند :

  • SOAP
    مخفف Simple Object Access Protocol و قراردادی است که نحوه صدا زدن متدهای یک وب سرویس و اینکه چطور پیغام ها قالب بندی می شوند، و چطور با HTTP فرستاده می شوند را مشخص می کند. SOAP همچنین نمایش استانداردی برای پیغام های خطا ارائه می کند.
  • WSDL
    مخفف Web Service Description Lanuage و استانداردی است که به کلاینت می گوید چه ورودی هایی این وب سرویس قبول می کند و پس از پردازش آن چه خروجی هایی به آن برخواهد گرداند. WSDL شامل همه جزئیاتی است که برای استفاده از آن وب سرویس نیاز است. متدها و خصوصیاتی که وب سرویس فراهم می کند، URL متدهایی که کلاینت می تواند به آن ها دسترسی داشته باشد، انواع داده ای مورد استفاده وب سرویس و پروتکل ارتباطی که مورد استفاده وب سرویس قرار می گیرد، اطلاعاتی هستند که WSDL به کلاینت ارائه می کند.
  • REST
    مخفف Representational State Transfer که توابع استاندارد پروتکل HTTP مثل GET, POST را به کلاینت ارائه می کند. به طور مثال API وب سایت توییتر در واقع وب سرویسی است که به کلاینت های مختلف اجازه فرستادن آپدیت ها و یا گرفتن تایم لاین های مختلف را می دهد.
  • SOA
    مخفف Service-oriented Architecture و مفهومی است که وب سرویس ها قادر به پیاده سازی آن ها می باشند. معماری مبتنی بر سرویس یکی از مفاهیم جدیدی است که شرکت های بزرگ نرم افزاری سرمایه گذاری های زیادی روی آن انجام داده اند.

وب سرویس ها در پلت فرم های نرم افزاری معروف مثل دات نت و جاوا از جایگاه ویژوه ای برخوردارند. به طور مثال برای ایجاد یک وب سرویس با استفاده از پلت فرم دات نت و ویژوال استادیو قدم های زیر را دنبال کنید :
از منوی File و زیر منوی New گزینه WebSite را برگزینید. در پنجره باز شده ASP.NET Web Service را انتخاب کنید. در پنجره Solution Explorer فایل Service.asmx را به نام مناسب تغییر دهید. برای مثال من متدی برای تبدیل تاریخ میلادی به تاریخ شمسی به وب سرویسم اضافه می کنم.
[WebMethod(Description="Convert a greogorian date to persian date")]
public DateTime ToPersianDate(DateTime gdate)
{
return BLL.ToPersianDate(gdate);
}

البته در این مثال مهم نیست که چطور این متد تاریخ میلادی را به شمسی تبدیل می کند، مهم نحوه اضافه کردن یک متد به یک وب سرویس است.





دانلود ویژوال استادیو 2010 و مشاهده چند ویدئو در مورد آن

17 05 2009

در مطالب بعدی در مورد ویژگی های جدید دات نت فریم ورک 4.0 و ویژوال استادیو 2010 صحبت خواهم کرد. فعلاً اگر اینترنت پرسرعت دارید حتماً نسخه CTP ویژوال استادیو 2010 را دانلود کنید و ویدئوهای زیر را هم مشاهده کنید.

.NET Logo

دانلود ویژوال استادیو 2010

حجم آن برای دانلود حدود 8 گیگابایت است و برای نصب آن به فضایی حدود 75 گیگابایت و نصب نرم افزار Microsoft Virtual PC 2007 SP1 احتیاج دارید.

ویدئو های ویژوال استادیو 2010

بعد از دانلود ویژوال استادیو 2010 حتماً Training Kit آن را هم دریافت کنید.

مطالب مرتبط :

برای اینکه مطالب آینده این وبلاگ در مورد ویژال استادیو 2010 را از دست ندهید، مشتراک فید فراسان شوید.





چگونه یک رابط کاربری مناسب و استاندارد طراحی کنیم؟

15 05 2009

اگر شما قوی ترین نرم افزار را در یک زمینه خاص تولید کنید اما یک رابط کاربری مناسب برای آن طراحی نکنید، کاربران از آن استفاده نخواهند کرد. طراحی رابط کاربر مناسب، مسیر ارتباطی موثری بین کاربران و نرم افزار کامپیوتری ایجاد می کند. اگر استفاده از نرم افزار مشکل باشد، اگر باعث بروز اشتباهات متعدد شود، یا اگر نرم افزار کاربر را به راحتی به هدفش نرساند، علیرغم قدرت عملکردی که ارائه می کند، کاربران علاقه ای به استفاده از آن نخواهند داشت. طراحی رابط کاربری مناسب یکی از مهمترین مسایل تولید نرم افزار است، چون کاربر فقط رابط کاربری که با آن سر و کار دارد را درک می کند و آن را به عنوان نرم افزار می شناسد.

به علت طولانی بودن مطلب، این مقاله را می توانید در قالب PDF دانلود کنید +
برای داشتن یک طراحی خوب در زمینه رابط کاربری، ابتدا باید کاربران نرم افزار را شناسایی کنید، سن، سطح سواد، نیازها و کارهایی که می خواهند با نرم افزار انجام بدهند را در نظر بگیرید. به طور مثال وقتی می خواهید نرم افزاری برای گروه سنی کودکان تولید کنید باید طراحی را با توجه با سن کاربران انجام دهید. پس از مشخص کردن کاربران و مشخصات آنان، سناریوهای هر کاربر را که در بخش تحلیل ایجاد شده اند را مورد بررسی قرار دهید و Use caseهای هر کاربر را در نظر بگیرید تا مجموعه ای از اشیاء و اعمال مربوط به آن ها مشخص شوند. این اجزاء معمولاً مبنایی برای ایجاد صفحات (منظور از صفحه، هر جزئی از رابط کاربری است که یکسری اجزای مربوط به هم را در کنار هم قرار می دهد، نه فقط صفحات وب) رابط کاربری می شوند که شامل طراحی گرافیکی، آیکون ها، متن ها، توضیحات صفحه و منوها می باشد.

office2007windows
خیلی از مدیر پروژه های شرکت های نرم افزاری در ایران، طراحی رابط کاربری را امری پیش پا افتاده می دانند و ایجاد آن را هم به دست برنامه نویسان می سپارند. همین که رابط کاربری، ظاهری جذاب و زیبا داشته باشد برای آنان کافی است. این ها هر چه می توانند از تصاویر گرافیکی و کامپوننت های UI برای ایجاد ظاهر زیبا در نرم افزارهایشان استفاده می کنند تا در نظر کاربر نرم افزارشان حرفه ای به نظر آید. درست است که زیبایی یکی از فاکتورهای مهم یک رابط کاربری خوب است اما همه چیز نیست. در اینجا به برخی از اصول طراحی رابط کاربری خوب اشاره می کنیم :

  • استفاده از عنوان های با معنی برای اجزای صفحه : برای اجزای رابط کاربری خود عنوان های مناسبی انتخاب کنید تا کاربر منظورتان را با یک نگاه بفهمد. برای منو ها و دکمه ها عنوان های با معنی بگذارید که کاری که انجام می دهند را در یک یا دو کلمه توصیف کند. عنوان های بی معنی و طولانی برای کاربران ناخوشایند هستند.
  • استفاده از آیکون های مناسب و با معنی : هرجایی که قرار است از آیکون استفاده کنید، به جز زیبایی ظاهر آن، به اندازه آن در واحد پیکسل و با معنی بودن آن هم توجه کنید. آیکون ها باید نماد مشخصی از تابعی باشند که قرار است آن را صدا بزنند. هرجا که می توانید به جای منوها از شکلک ها استفاده کنید، چون کاربران ارتباط بهتری با شکلک ها برقرار می کنند تا منوهای تو در تو.
  • جزئیات تکنیکی از دید کاربر پنهان باشد : شما نباید کاربر را درگیر مسائل تکنیکی کنید، حتی اگر این مسایل از نظر شما مسایل راحت و پیش پا افتاده ای باشند. به طور مثال شما نباید کاربر را مجبور کنید که یک کلید خاص را در رجیستری ویندوز انتخاب کند!
  • در هر صفحه پیش فرض هایی داشته باشید : در هر صفحه باید چند عمل پیش فرض برای کاربر تعریف کنید. اگر در حال گرفتن اطلاعات از کاربر هستید، باید دکمه پیش فرضی برای کاربر قرار دهید که با کلیک روی آن تمام اطلاعات آن فرم پاک یا به اصطلاح Reset شود. یا به طور مثال دکمه های تایید یا OK در خیلی از فرم ها به عنوان پیش فرض آن فرم قرار داده می شوند تا کاربر با زدن دکمه Enter قادر به اجرای تابع مورد نظر باشد.
  • کاهش بار فکری کاربر : هر چه کاربر بیشتر مجبور باشد بخاطر بسپارد، ارتباط او با نرم افزار دارای خطای بیشتری خواهد بود. یک رابط کاربری مناسب به حافظه کاربر متکی نیست. هر زمانی که لازم شد، نرم افزار باید اطلاعات مورد نیاز را ذخیره کند و به هنگام نیاز آن اطلاعات را به کاربر یادآوری کند.
  • تعریف کلیدهای میانبر : سعی کنید کلیدهای میانبر مناسبی برای توابع پرکاربرد موجود در نرم افزار ایجاد کنید. این کلیدهای میانبر باید با اعمالی که قرار است انجام دهند به گونه ای مرتبط شوند که بخاطر سپردن آن ها توسط کاربران آسان باشد. برای مثال کلید Ctrl به علاوه حرف اول عنوان تابع مورد نظر. اگر برای کاری کلید میانبر استانداردی وجود دارد (مثل Ctrl+C برای کپی)، همان را استفاده کنید، چون عوض کردن این گونه کلیدها باعث سردرگمی کاربران می شود.
  • رابط کاربری را بر اساس دنیای واقعی مدل کنید : به طور مثال برای ثبت فاکتور در یک سیستم فروش، سعی کنید صفحات شبیه به فاکتورهای واقعی طراحی شوند. این کار باعث می شود که کاربر احساس راحتی با نرم افزار شما کند.
  • اطلاعات را به تدریج نمایش دهید : اگر قرار است اطلاعات گوناگون و حجیمی را به کاربر نمایش دهید، ابتدا آن را در بالاترین سطح مجردسازی به کاربران نمایش دهید. جزئیات بیشتر باید به علاقه کاربر و با دستور او ارائه شوند.
  • فراهم نمون ارتباط قابل انعطاف : چون کاربران مختلف علایق گوناگون و سطح آشنایی متفاوتی با کامپیوتر دارند وجود انتخاب نحوه ارتباط ضروری است. نرم افزار باید به کاربر امکان دهد که از ماوس، صفحه کلید، قلم دیجیتالی یا حتی دستورات صوتی برای اجرای کارهای مختلف بهره بگیرد.
  • کارهای طولانی باید وقفه پذیر باشند : کاربر باید بتواند اعمال در حال اجرای طولانی را متوقف کند. کاربر باید از زمان اجرای یک کار آگاهی داشته باشد تا بتواند بهتر در مورد اجرا یا عدم اجرای آن کار تصمیم بگیرد. مثال ساده این عمل را در کپی کردن فایل ها دیده اید، کاربر از زمان اجرای عمل باخبر است و هرگاه که تصمیم بگیرد می تواند آن را متوقف کند.
  • کارهای حساس باید برگشت پذیر باشند : ممکن است کاربر عملی را به اشتباه انجام دهد و نیاز داشته باشد آن عمل اشتباه را لغو کند. نرم افزار باید چنین امکانی را در کارهای حساس به کاربر ارائه کند. به طور مثال در ویرایشگرهای تصویر، اگر به اشتباه جایی از تصویر را خراب کنید، به راحتی با یک عمل Undo می توانید اشتباه خود را جبران کنید.
  • رابط کاربری باید یکنواخت باشد : علاوه بر رعایت استانداردهای معمول یک رابط کاربری، شما بایستی استانداری برای طراحی رابط خود تعریف کنید تا تمام صفحات رابط شما از یکنواختی مشخصی برخوردار باشند. رابط کاربری شما باید اطلاعات را به صورت یکنواخت نمایش دهد یا دریافت کند. این کار باعث می شود تا کاربر با صفحات جدیدی که برایش باز می شوند نا آشنا نباشد و با آن ها راحت کار کند.

gmail-web

حتماً عوامل موثر دیگری هم در ایجاد رابط کاربری مناسب و استاندارد وجود دارند که در این مطلب به آن ها اشاره نشد. موضوع مهمی که حتماً باید در نظر بگیرید، پلت فرمی است که قرار است نرم افزار شما روی آن کار کند. به طور مثال اگر نرم افزار شما تحت وب است طراحی شما شرایط متفاوتی با یک نرم افزار تحت دسکتاپ دارد. هر چند که مسایل بالا هم در نرم افزارهای تحت وب قابل پیاده سازی است و هم در نرم افزارهای تحت دسکتاپ. همچنین طراحی رابط کاربری در سیستم عامل های مختلف نیز تفاوت های زیادی با هم دارند. در این مطلب ما به صورت Abstract و جدا از پلت فرم به مسئله طراحی رابط کاربری نگاه کردیم.
مثال هایی از رابط کاربری استاندارد در نرم افزارهای امروز را می توان Gmail در وب، Office 2007 در ویندوز و فایرفاکس در لینوکس عنوان کرد.

دریافت این مقاله در قالب PDF

مطالب مرتبط :

می توانید برای مطلع شدن از مطالب جدید فراسان، مشترک فید آن شوید!