نگهداری نرم افزار
معنی کلمه نگهداری نرم افزار در دانشنامه عمومی
گرایشی از مهندسی نرم افزار است که شامل نگهداری و اصلاح یک محصول نرم افزاری پس از تحویل است به منظور تصحیح اشکالات پیش آمده و بهبود عملکرد یا ویژگی های دیگر آن نرم افزار.
یک دید متعارف نسبت به تعمیر و نگهداری نرم افزار این است که آن را صرفا شامل رفع نقصهای نرم افزاری بدانیم، اما یک مطالعه نشان داده است که بیش از ۸۰٪ از فعالیت های مربوط به تعمیر و نگهداری نرم افزار مرتبط با اقدامات اصلاحی نیست. این دید متعارف توسط کاربرانی که مشکلی در نرم افزار گزارش می دهند که در واقعیت بهبودهایی بر کارایی نرم افزار هستند تقویت می شود. [ نیازمند منبع] مطالعات جدیدتر درصد فعالیت های مربوط به تعمیر و نگهداری نرم افزار که مرتبط با رفع اشکال هستند را نزدیک به ۲۱٪ گزارش کرده اند.
نگهداری نرم افزار و تکامل سیستم ها برای اولین بار توسط Meir M. Lehman در سال ۱۹۶۹ میلادی مورد بررسی قرار گرفت. طی یک دوره بیش از بیست ساله، تحقیقات او منجر به تدوین قوانین لیمن ( لیمن ۱۹۹۷ ) شد. یافته های کلیدی تحقیقات وی شامل این است که تعمیر و نگهداری نرم افزار در واقع توسعه تکاملی آن است و نگهداری نرم افزار در واقع از درک آنچه برای سیستم ( نرم افزار ) در طول زمان اتفاق می افتد در تصمیم گیری کمک می گیرد. لیمن نشان داد که سیستم در طول زمان همچنان در حال تکامل است. آن ها در تکامل و رشد خود در طی زمان پیچیده تر می شوند مگر اینکه برخی از اقدامات مانند کد refactoring به منظور کاهش پیچیدگی صورت پذیرد.
در اواخر دهه ۱۹۷۰ یک بررسی گسترده و معروف طی یک مطالعه توسط Lientz و Swanson انجام شد که در آن از سهم زیاد هزینه های تعمیر و نگهداری در هزینه های چرخه حیات یک نرم افزار پرده برداشته شد. آن ها فعالیت های تعمیر و نگهداری را به چهار کلاس طبقه بندی کردند:
• تطبیقی – اصلاح سیستم برای مقابله با تغییرات در محیط نرم افزار ( همانند DBMS ها و سیستم عامل ها )
• بهبودی ( Perfective ) – اجرای کاربری های جدید یا تغییر کاربری های موجود مورد نیاز است که دغدغه وضعیت کاربری نرم افزار را دارد
• اصلاحی – تشخیص و تعمیر خطاهایی که احتمالاً توسط کاربران گزارش شده اند
• پیشگیری – بهبود راحتی نگهداشت نرم افزار یا قابلیت اطمینان به کارایی آن جهت جلوگیری از مشکلات آتی
جملاتی از کاربرد کلمه نگهداری نرم افزار
یک دید متعارف نسبت به تعمیر و نگهداری نرمافزار این است که آن را صرفا شامل رفع نقصهای نرمافزاری بدانیم، اما یک مطالعه نشان دادهاست که بیش از ۸۰٪ از فعالیتهای مربوط به تعمیر و نگهداری نرمافزار مرتبط با اقدامات اصلاحی نیست. این دید متعارف توسط کاربرانی که مشکلی در نرمافزار گزارش میدهند که در واقعیت بهبودهایی بر کارایی نرمافزار هستند تقویت میشود.[نیازمند منبع] مطالعات جدیدتر درصد فعالیتهای مربوط به تعمیر و نگهداری نرمافزار که مرتبط با رفع اشکال هستند را نزدیک به ۲۱٪ گزارش کردهاند.
مؤسسهٔ پروژهٔ تور یک مؤسسه غیرانتفاعی تحقیقی-آموزشی در ماساچوست است که توسط راجر دینگلدان، نیک متیوسن و پنج نفر دیگر تأسیس شدهاست. پروژه تور عمدتاً مسؤل تعمیر و نگهداری نرمافزار برای شبکه ناشناس تور است.
کلید نگهداری نرمافزار توجه به مسائل مربوط به هر دو زمینه مدیریتی و فنی است. کلید مدیریت مسائل عبارتند از: همترازی و همراهی با مشتری، ایجاد اولویتهایی برای نیروی انسانی، برآورد صحیح هزینهها. کلید حل مسائل فنی عبارتند از: برطرف کردن محدود درک، تأثیر، تحلیل، تست، نگهداری و اندازهگیری.
تعمیر و نگهداری نرمافزار فعالیت بسیار گستردهای است که شامل تصحیح خطا و پیشرفت قابلیتهای نرمافزار و بهینهسازی آن است. از آنجایی که تغییر اجتناب ناپذیر است، مکانیسمهای مورد استفاده باید امکان ارزیابی و کنترل و ایجاد تغییرات را داشته باشند.