ضرورت تهیه و تدوین استاندارد در صنعت بر همگان روشن است و نرم افزار كه بعنوان یك مقولة فراگیر و بسیار مهم در جهان صنعتی امروز شناخته می شود از این قاعده مستثنی نبوده و نیست. در طی چند دهة گذشته و در مقابله با بحران موجود در تولید محصولات نرم افزاری، متخصصین و صاحبنظران، با بوجود آوردن علوم مهندسی نرم افزار، تلاشهای ارزنده بسیاری را در راستای قوام بخشیدن، برقراری و بهبود نظام تولید نرم افزار بانجام رسانیده اند. اما ویژگیهای خاص این صنعت نوین كه در اثر رشد تكنولوژی، با جهش سریع و تغییر زود هنگام نسلها، و نیز با رُشد فزاینده و همه جانبه كاربردهای آن همراه بوده است، زمینه ساز تداوم برخی ابهامات و پیچیدگیها، و همچنین بوجود آمدن مسائل جدید در مبانی و امور مرتبط با آن می باشد. این است كه علیرغم انجام فعالیتهای گوناگون توسط مؤسسات استاندارد سازی، هنوز استانداردهای جامع و مورد پذیرش جهانی در این زمینه موجود نیست و استانداردها و رهنمودهای حاصل از این فعالیتها، علیرغم اهمیت بسیار زیاد همچنان سیر تكاملی خود را سپری می نمایند.



كیفیت نیز بعنوان یكی از مهمترین مفاهیم در مهندسی نرم افزار، نظر بسیاری از كارشناسان را بخود جلب نموده و تلاشهای بسیاری را بخود اختصاص داده است. در این مقوله، همواره دو دیدگاه "كنترل كیفیت محصول نهایی" و "تضمین كیفیت تولید" بعنوان راه كارهای مستقل، و یا مكمل یكدیگر، در نظام كیفیت مطرح بوده اند. نتایج فعالیتهای مذكور، بصورت مجموعه ای از كتب، استانداردها و رهنمودهای كلی تحت عناوین تعریف كیفیت، فرایند تضمین كیفیت[1]، ارزیابی[2] و كنترل كیفیت، مهندسی كیفیت و ... به جامعة كاربران عرضه شده است. در همین راستا و در جهت حفظ همگامی و هماهنگی با پیشرفتهای جهانی در این زمینه، استاندارد مهندسی نرم افزار_رهنمود عمومی در تعریف كیفیت محصولات نرم افزاری، بعنوان یكی از استانداردهای پایه، از خانوادة استانداردهای ضروری در زمینه كیفیت و بعنوان اولین فعالیت رسمی در این موضوع توسط شورای عالی انفورماتیک تهیه و تدوین شده است.


در بسیاری از متون فنی اینچنین عنوان شده است كه كیفیت بر مبنای خواسته های مشتری تعریف می شود. اگرچه این نظریه بطور كلی صحیح است، اما بهمین دلیل(كلی بودن)، فاقد ارزش عملیاتی و غیر قابل اتكاء است، زیرا خواسته ها، خود مبتنی و تحت الشعاع پارامترهای مختلف مانند زمان، مكان، رشد تكنولوژی، توان مالی، ادراك، سلیقه، قدرت پذیرش و دیگر محدودیتهای موجود در محیط تولید و استفاده هستند، و بنابر این با تكیه بر این نگرش، كیفیت به مقوله ای نسبی، پارامتری، ناهمگون و تقریباً غیرقابل ارزیابی مبدل می شود. روشن است كه گام اول در حل این مسأله، تخصیص مقادیر مشخص به پارامترهای فوق، و یا محدود كردن آنها، درحد ضرورت یا امكان می باشد. بعبارتی دیگر برای بوجود آوردن امكان اظهار نظر دربارة كیفیت یك محصول، لازم است كه یك تعریف كاربردی و غیرپارامتری برای آن ارائه شود كه قابلیت استفاده در فرایندهای تولید،تضمین و ارزیابی كیفیت را دارا باشد.


بهمین خاطر، متخصصین با تغییر نگرش، و با مطالعه، بررسی و جمع بندی نظریات موجود در این باب به این نتیجه رسیده اند كه از دیدگاه كاربرد، كیفیت یك محصول بصورت جامع، در بر گیرنده مجموعه ای از خصوصیات و مؤلفه های فرعی كیفیت[3] بوده، و از طریق تعریف این مجموعه و تبیین راه كارهای ایجاد و بررسی آنها، قابل تعریف و تشخیص است. روشن است كه در تعیین درجة كیفیت و مرغوبیت، میزان و اندازة این خصوصیات از دیدگاه عموم لزوماً یكسان نیست و نیز شایان توجه اینكه، میان برخی از این خصوصیات، روابط نامتقارن تضاد (معكوس) یا توافق(همراستایی) وجود دارد. بعبارتی دیگر، در شرایط معین(برای مثال از نظر بودجه و امكانات)، افزایش نسبی یك خصوصیت، به كاهش یا افزایش نسبی خصوصیات دیگر منجر می شود. استفاده كنندگان این روش، اعم از تولیدكننده نرم افزار یا دیگر كاربران، بسته به شناخت، سلیقه و توان خود، یك زیر مجموعة منطقی از این خصوصیات را بعنوان عوامل كیفی محصول مدنظر قرارداده، و پس از اولویت بندی و ارزش گذاری از نظر علمی، تجربی، شورایی و یا سلیقه ای(سبُك و سنگین كردن)، با تلاش در آزمایش و سنجش این خصوصیات و جمع بندی نتایج حاصل، به تولید یا ارزیابی كیفیت كلی محصول موردنظر از دیدگاه خود می پردازند. بنابراین تقسیم بندی و تجزیة مذكور، ضمن كاهش پیچیدگی مفهومی، پایه و اساس مناسبی را برای شناخت، ایجاد و ارزیابی كیفیت در نرم افزار فراهم می آورد.