نگهداری (Maintenance) نرم افزار

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

  • تصحیح خطاها
  • بهبود performance
  • اضافه کردن قابلیت های جدید
  • حذف کردن قسمتهای منسوخ شده

علی‌رغم باور معمولی اکثر برنامه نویسان که میگوند؛ maintenance و یا نگهداری فقط برای حذف خطاهایی است که ممکنه در زمان استقرار نرم‌افزار پیش بیایند، در واقعیت بسیاری از عملیاتی که در روند نگهداری نرم افزار انجام می شوند، شامل؛ اضافه کردن قابلیت های اصلی و فرعی به ماژول های تولید شده است. به عبارت دیگر؛ اگر قرار باشد که قابلیت های مختلفی به برنامه اضافه شود و یا از برنامه حذف شوند، نیاز به فرآیند و بخش نگهداری داریم. اما نگهداری و یا maintenance انواع مختلفی دارد که در قسمت زیر به آنها می پردازیم.

انواع مختلف maintenance

فعالیت های مختلفی که در فاز نگهداری و یا maintenance انجام می شوند را می توان به چهار دسته اصلی تقسیم کرد:

دسته corrective maintenance: در این دسته، خطاهایی که ممکن است در زمان پیاده سازی و یا استقرار نرم‌افزار به وجود بیایند تصحیح می شوند. این خطاها ممکن است توسط کاربران نهایی گزارش داده شود.

دسته preventive maintenance: در این دسته، تغییراتی که برای جلوگیری کردن از خطاهای احتمالی آینده هستند، وجود دارند.

دسته adaptive maintenance: در این دسته، تغییرات احتمالی که ممکن است در محیط اجرایی نرم افزار رخ بدهند، گاهی نیازمند ایجاد تغییر در نرم‌افزار هستند. این نوع از تغییرات و نگهداری را اصطلاحاً adaptive maintenance و یا نگهداری تطبیقی می نامیم. برای مثال؛ اگر سیستم آموزشی یک دولت تغییر کند، در عوض می بایست تغییراتی بر روی نرم افزار مدیریت دانشگاه‌ها رخ بدهد، که به این نوع نگهداری ها و تغییرات، adaptive maintenance می گوییم.

دسته perfective maintenance: تغییراتی که در نرم افزار از قبل موجود، برای لحاظ کردن نیازمندی های جدید لحاظ می شوند را اصطلاحاً perfective maintenance می نامیم. در این نوع از نگهداری، هدف همواره تولید و استقرار به روزترین تکنولوژی ها و ابزارها است.

اما برای نگهداری نرم افزار، ابزارهای مختلفی وجود دارد که در رابطه با آنها در قسمت زیر صحبت خواهیم کرد.

ابزارهای نگهداری

برخی از برنامه نویسان و توسعه دهندگان نرم افزار، از ابزارهای مختلفی استفاده می کنند که به آنها در روند maintenance و یا نگهداری نرم افزار کمک می کند. در ادامه چند مورد از مهمترین آنها را بیان می‌کنیم:

  • ابزار program slicer: این نوع از ابزارها، بخشی از برنامه که می‌تواند در روند ایجاد یک تغییر تاثیر بپذیرد را مشخص می‌کنند.
  • ابزار Data flow analyzer: این نوع از ابزارها، تمامی جریان‌های داده‌ ای امکان‌پذیر در یک نرم‌افزار را ردگیری و رصد می‌کنند.
  • ابزار Dynamic analyzer: این نوع از ابزارها، مسیرهای اجرا و یا execution path های مربوط به یک برنامه را ردگیری می‌کنند.
  • ابزار Static analyzer: این نوع از ابزار ها، تمامیِ ساختارهای مختلفِ مربوط به برنامه را رصد و جمع‌بندی می‌کنند.
  • ابزار Dependency analyzer: این نوع از ابزارها می‌توانند برای کشف وابستگی های مربوط به قسمت های مختلف یک برنامه به برنامه نویس کمک کنند.

در پایان از شما تشکر می کنیم که یک بار دیگر با وبسایت پرووید همراه بودید. امیدواریم که این سری آموزشی که در رابطه با متدولوژی های مختلف توسعه نرم‌افزار بود مورد توجه تمامی دوستان عزیز قرار گرفته باشند. در پایان، استفاده از بسته ی آموزش ویدئویی کدنویسی تمیز: نوشتن کد برای انسان ها و بسته ی آموزش ویدئویی اصول کدنویسی با کیفیت بالا و بسته ی آموزش ویدئویی ریفکتورینگ در سی شارپ را به تمامی دوستان عزیز توصیه می‌کنیم. ضمناً می توانید از آموزش متنی فرآیندهای توسعه نرم افزار (SDLC) نیز به منظور درک هرچه بهتر فرآیند توسعه نرم افزارهای موفق استفاده بفرمایید.