کلیدواژگان: کیفیت نرم افزار، مدل های ارزیابی، شاخص های سنجش کیفیت، استانداردهای کیفی سازی، مهندسی نرم افزار، توسعه نرم افزار.
مقدمه
تولید نرم افزارهای کاربردی، روزبه روز گسترش می یابد و لزوم به کارگیری روش ها و اصول مهندسی نرم افزار، در مراحل توسعه، مدیریت و پشتیبانی آنها بیشتر نمود پیدا می کند. کیفیت نرم افزار (Software Quality) ، شاخص حیاتی برای تولید نرم افزارهای با کیفیت بالاست که ضمن بالا بردن بهره وری در تولید نرم افزارها، به ایجاد نرم افزارهای قدرتمند و شکست ناپذیر منجر می گردد.
مدل سازی نرم افزار، به کارگیری فنون پیشرفته آزمایش نرم افزار، مدیریت ریسک نرم افزار، تضمین کیفیت نرم افزار و مهندسی محصول، عناوینی از فهرست گسترده زیرساخت های مرتبط با توسعه نرم افزارهای قوی و مهندسی ساز است. در اینجا به طور خاص، به بررسی علمی و فنی یکی از این زیرساخت ها با عنوان کیفیت نرم افزار و روش های تعیین شاخص پرداخته شده است.
مهندسی نرم افزار و تولید نرم افزاری با کیفیت بالا
مهندسی نرم افزار، یک روش علمی، ریاضی و اقتصادی برای تولید نرم افزارهاست که بر اساس آن، نرم افزار در طی یک فرایند علمی، تجزیه و تحلیل، طراحی، پیاده سازی، آزمایش و پشتیبانی می شود. به کارگیری مهندسی نرم افزار برای پیاده سازی نرم افزارهایی که اهداف مهم و حیاتی دارند، یک ضرورت است.
در مهندسی نرم افزار برای ساخت یک سیستم نرم افزاری، سه فرآیند مهم تأثیرگذار است:
- فرآیند توسعه (Development Process) : سازماندهی فعالیت ها برای ساخت یک سیستم است.
- فرآیند مدیریت (Management Process): انتخاب افراد، تجهیزات و فرآیندها برای توسعه یک سیستم و کنترل و نظارت بر روند اجرای پروژه است.
- فرآیند پشتیبانی (Maintenance Process): کنترل و پشتیبانی نرم افزار، پس از تولید آن.
در فرآیند توسعه، هدف آن است که یک سیستم با مشخصاتِ خواسته شده تولید شود. فرآیند توسعه، از مرحله طرح یک راه حل مفهومی برای مسأله خواسته شده (مطالعه امکان سنجی) آغاز شده، پس از دریافت خواسته ها و بررسی سیستم، طراحی صورت گرفته و در نهایت، این طراحی با کمک ابزارهای پیاده سازی، به یک سیستم واقعی تبدیل می شود. مقصود از این فرآیند، آن است که از یک سو، نیازهای کاربران برآورده شود و از سوی دیگر، کیفیت مناسب عملکرد سیستم تضمین گردد. بنابراین، باید مشتمل بر مکانیسم هایی برای اعتبارسنجی نرم افزار (خروجی مطابق با خواسته ها (Validation)) و وارسی پذیری نرم افزار (صحت عملکرد خروجی (Verification)) باشد.
کیفیت
کیفیت، در مفهوم عام آن، به معنای خصوصیت یا صفتی از یک شیء است. در مورد یک شیء، کیفیت، به خصوصیاتی از قبیل: رنگ، شکل و یا اندازه اشاره دارد و در مورد یک نرم افزار شامل مواردی همچون: درجه پیچیدگی درونی الگوریتم های آن، تعداد خطوط برنامه نرم افزاری و یا ارتباطات داخلی زیربرنامه ها می شود.
شاخص های ارزیابی عمومی و خاص
شاخص های ارزیابی، به دو صورت تقسیم می شوند: شاخص های ارزیابی عمومی و شاخص های ارزیابی خصوصی. منظور از شاخص های ارزیابی عمومی، تمامی شاخص هایی می باشد که برای ارزیابی و بررسی یک محصول برشمرده شده اند و به شرکت خاصی تعلق ندارند و در تمامی شرکت ها و کمپانی های تولید نرم افزار در سراسر جهان یکسان هستند یا با اندکی تغییر در شرکتی استفاده می شود؛ اما شاخص های ارزیابی خاص، در واقع شاخص های ارزیابی مخصوص یک شرکت خاص می باشد که کارکنان و کارشناسان داخلی یک شرکت برای نگاه دقیق تر و علمی تر به کیفیت محصول خود، شاخص های داخلی خویش را دسته بندی و طبقه بندی می کنند و اگر نیاز شود، برای درک واقعی تری از کیفیت محصول خود، ارزیابی خویش را با عددی نشان می دهند.
فرایندهای موجود در معاونت فنی نور
از جمله فرایندهای موجود در معاونت فنی نور که در این نوشتار درباره آنها سخن خواهیم گفت، عبارت اند از: رابط کاربری، برنامه نویسی و سرویس ها. در ادامه، به توضیح هریک از آنها می پردازیم.
گرافیک، راز طراحی رابط کاربری موفق (UI)
ارزیابی رابط کاربری یا همان طراحی UI، به یک مهارت مهم تبدیل شده است. ممکن است، در طول کار خود درگیر طرح های فناوری اطلاعات شوید و در طول پروژه، رابط کاربری را نقد کنید. دو روش اصلی برای آزمایش رابط کاربری وجود دارد: 1. ارزیابی تجربی (تست گرفتن از کاربران واقعی)؛ 2. ارزیابی اکتشافی (تست براساس اصول و قواعد). با اینکه ارزیابی تجربی، بهترین روش محسوب می شود، اما ارزیابی اکتشافی نیز مهم و لازم است.
قواعد ارزیابی اکتشافی، در طول زمان و با آزمون و خطا مشخص شده است؛ برای مثال، زمانی که شطرنج بازی می کنید، بهتر است برای شروع، از حرکات پیش فرض استفاده کنید. این حرکات در طول زمان مشخص شده است که برای شروع در بازی شطرنج مفید هستند.
در طراحی رابط کاربری یا همان طراحی UI، یکی از رایج ترین فهرست ها فهرست ابتکارات دهگانه ژاکوب نیلسون است که به شرح ذیل می باشد:
- قابلیت دیده شدن وضعیت سیستم: سیستم باید همواره کاربر را در مورد روند خود، آگاه کند؛ مانند پروسه انتقال فایل.
- تشبیهات که برای کاربر آشنا باشد.
- کنترل و آزادی عمل کاربر: کاربر قابلیت undo و redo و نیز توانایی override سیستم را داشته باشد.
- با ثبات و استاندارد: کاربران نباید با دیدن کلمات، وضعیت ها یا اکشن های متفاوتی که همه یک کار را انجام می دهند، سردرگم شود.
- جلوگیری از بروز خطا: از رخ دادن خطا در اوّلین برخورد کاربر با سیستم، ممانعت شود. پیش بینی های لازم نسبت به ورودهای مختلف کاربر در نظر گرفته شود.
- شناسایی به جای یادآوری: اشیا، اکشن ها و تنظیمات، قابل رؤیت باشد. ناوبری (نویگیشن) قابل دیدن باشد و به راحتی بتوان به عقب برگشت و یا به صفحه اصلی رفت و یا خارج شد.
- انعطاف پذیری و کاربردی بودن: تعامل را برای کاربران حرفه ای به صورت تصاعدی بالا ببرد. کاربران حرفه ای ترجیح می دهند کلیک های کمتر همراه با اطلاعات و انعطاف زیاد در شیوه ها باشد؛ درحالی که کاربران تازه کار ترجیح می دهند به صورت گام به گام و با اطلاعات کمتر حرکت کنند.
- طراحی زیبا و خلاصه نمایی: دیالوگ ها نباید اطلاعات نامرتبط و غیر ضرروری را داشته باشند؛ به عبارت دیگر، تنها اطلاعاتی را که مورد نیاز است، نمایش دهید و اطلاعات غیرضروری را در پنجره دوم نمایش دهید.
- خطاها را مدیریت کنید: پیام های خطا باید به زبان ساده بیان شود، مشکل را به شکل دقیق بیان کنند و راه حل ارائه دهند.
- فراهم کردن راهنما: از prompt و راهنما برای تسک ها استفاده نمایید و جست وجو را آسان کنید.
به کارگیری شیوه اکتشافی در طراحی UI
تأثیرات شیوه اکتشافی به نوع استفاده بستگی دارد؛ برای مثال، رابط کاربری میت واند کاملاً با ثبات نباشد؛ مثلاً جایگاه دکمه می تواند در بخش های مختلف UI متفاوت باشد. اگر کاربران متفاوت به بخش های گوناگون می روند، تأثیر آن می تواند کم باشد؛ ولی اگر کاربران یکسان به بخش های مختلف می روند، تأثیر آن زیاد خواهد بود.
کار درستی نیست که UI را تنها بر اساس قوانین اکتشافی ارزیابی کنیم؛ زیرا تأثیر هر یک از این قوانین، به محتوایی که مورد استفاده قرار می گیرد، بستگی دارد؛ برای مثال، اشتباه است که بگوییم وب گاه CNN حدود 75% قوانین را رعایت کرده است؛ درحالی که وب گاه New York Time حدود 88% را رعایت نموده است.
قبل از استفاده از قوانین اکتشافی، لازم است تا از کاربران و تسک فهم صحیح داشته باشید. فهم صحیح از کاربران، یعنی دانستن میزان کار آنها با پایگاه، آشنایی آنان با فناوری، سن هر جنس و سطح تحصیلات آنها. تعریف فهم صحیح از تسک، به معنای این است که بدانیم هدف اصلی کاربر چیست و هدف ثانویه، روش ها و تکرار آنها چقدر است؛ یعنی کاوش کلمات در موتورهای جست وجو.
برای این منظور باید سه تا پنج ارزیاب مستقل داشته باشید تا فهرست اکتشافی را بررسی کنند. هریک از آنان رابط کاربری را یک تا دو ساعت مستقلاً ارزیابی می کنند. یافته ها را باهم به اشتراک بگذارید و مشکلات بزرگ و خُرد را ارزیابی کنید. مشکلات بزرگ باعث می شود تا کاربر نتواند کار کند؛ درحالی که مشکلات کوچک می تواند زیبایی وب گاه را تحت تأثیر قرار دهند.
برخی شاخص های گرافیک
شاخص های گرافیک، زیرمجموعه ای از رابط کاربر و در واقع، به عنوان یک زیرشاخص از رابط کاربر می باشد. هر محصولی که در مرکز نور تولید شود، موبایلی باشد یا دسکتاپی و وبی، قاعدتاً گرافیکی خواهد داشت که با محتوای آن ارتباط دارد و نیز شاخص هایی برای ارزیابی آن گرافیک که به تفصیل در جدول ذیل آمده است. این شاخص ها ضمن اینکه به امتیازدهی محصول کمک می کند، امر ارزیابی را نیز آسان تر می نماید.
شاخص های ارزیابی در برنامه نویسی موبایل، وب و دسکتاپ
با توجه به اینکه شاخص های ارزیابی، در امتیاز دهی محصولات اثر مستقیم دارد، می توان گفت که این شاخص ها ارزیابی منتج به ارزیابی و ارزیابی منتج به امتیازدهی به فرایند یا فعالیت می شود. اگر این فرایند و فعالیت، درباره پروژه یا چرخه یا محصولی از محصولات مرکز باشد، به امتیازدهی به محصول منتج می شود. و در نتیجه، این ارزیابی ها به عنوان ارزیابی نهایی یا امتیازدهی نهایی محسوب می شود.
برنامه نویسی وب، برنامه نویسی دسکتاپ و برنامه نویسی موبایل شاخص هایی دارند که در چند مورد ممکن است با هم تفاوت های جزئی داشته باشند.
شاخص های ارزیابی در سرویس های دسکتاپ، موبایل و وب
شاخص های ارزیابی در این سرویس ها، اگر در محصولی از مرکز به کار گرفته شود، روی ارزیابی آن محصول تأثیر می گذارد. این ارزیابی ها توسط کارشناسان داخل و خارج مرکز انجام می شود. البته برخی معیارها این قابلیت را دارد که توسط کاربران و مسؤولان ارزیابی و امیتازدهی شوند؛ ولی بیشتر کارهای فنی را کارشناسان مورد ارزیابی قرار می دهند و اگر ارزیابی از طرف کاربران و مدیران باشد، به صورت غیرمستقیم می باشد.
زیرشاخص ارزیابی متن کاوی
در متن کاوی کارهایی از قبیل: غنی سازی اطلاعات، دسته بندی اطلاعات و تشخیص اشیاء و عناصر متن و دیتاها، جستوجوی اطلاعات و دسترسی و واکشی اطلاعات را آسان می کند. این تلاش ها خود را در خروجی نرم افزار تحت سرویس هایی که روی محتوا عملیاتی انجام می دهد، نشان می دهد و قابل ارزیابی است و زیرمعیارهای آن در زیر تعریف شده است.
معیارها سرویس های دسکتاپ زیرمعیارها
نتیجه گیری
در ارزیابی محصولات مرکز نور، به این نکته اشاره شد که ارزیابی فنی را از ارزیابی محتوایی جدا کردیم و گفتیم ارزیابی نهایی، در واقع، ارزیابی فنی و محتوایی محصول می باشد که در این مقاله برخی از شاخص های ارزیابی در معاونت فنی نور را مورد رصد قرار دادیم و در رابط کاربری برخی شاخص های عمومی را دیدیم و نیز بعضی از شاخص هایی که مربوط به مرکز نور بود. برای ارزیابی نهایی، چند مرحله را می توان پیگیری کرد:
- کلیه فرایندها، کارها، محتواها و، سرویس هایی را که برای تولید یک محصول وجود دارد، متصور کرد و همه آنها را تحت یک سند برای یک محصول ارائه نمود؛
- فرایندها، کارها و محتواهایی را که مستقیم و یا غیر مستقیم در خروجی محصول مؤثر هستند، از یکدیگر جدا کرد؛
- هر کدام از این فرایندها و کارها به صورت جداگانه ارزیابی و امتیازدهی شود؛
- نهایتاً این ارزیابی ها با همدیگر جمع شده، ارزیابی نهایی را را رقم می زنند. روش های مختلفی برای پیاده سازی این کار در مرکز نور متصور می باشد که نقد و بررسی آنها، مجالی دیگر می طلبد.
پی نوشت: