عوامل موثر بر نگهداری نرم افزار
بسیاری از عوامل به طور مستقیم یا غیرمستقیم منجر به هزینه های بالای نگهداری می شوند. یک چارچوب نگهداری نرم افزار برای تعیین تأثیرات این عوامل بر تعمیر و نگهداری ایجاد شده است. این چارچوب شامل نیازهای کاربر ، محیط سازمانی و عملیاتی ، فرآیند نگهداری ، پرسنل نگهداری و محصول نرم افزاری است (جدول را ببینید). این عناصر بر اساس سه نوع رابطه با یکدیگر تعامل دارند که در زیر ذکر شده است.
جدول اجزای چارچوب نگهداری نرم افزار
مولفه |
خصوصیات |
نیازهای کاربر
|
· درخواست عملکرد اضافی ، تصحیح خطا ، قابلیت و بهبود قابلیت نگهداری. · درخواست پشتیبانی مربوط به غیر برنامه نویسی.
|
محیط سازمانی
|
· تغییر در سیاست های تجاری. · رقابت در بازار |
محیط عملیاتی
|
· بستر سخت افزاری · مشخصات نرم افزار |
فرایند نگهداری
|
· ثبت الزامات · تنوع در برنامه نویسی و شیوه های کار. · سنت شکنی. · تشخیص و تصحیح خطا. |
محصول نرم افزاری
|
· کیفیت اسناد. · پیچیدگی برنامه ها. · ساختار برنامه |
تیم نگهداری نرم افزار
|
· گردش مالی کارکنان. · حوزه تخصص. |
- رابطه محصول نرم افزار و محیط: در این رابطه محصول نرم افزار با توجه به محیط سازمانی و عملیاتی تغییر می کند. با این حال ، فقط پذیرش تغییراتی که برای محصول نرم افزاری مفید است ضروری است.
- رابطه محصول نرم افزار و کاربر: در این رابطه ، محصول نرم افزار با توجه به نیازهای جدید کاربران اصلاح می شود. از این رو ، تغییر و اصلاح نرم افزاری که پس از اصلاح برای کاربران مفید و قابل قبول است ، مهم است.
- ارتباط محصول نرم افزاری و تیم نگهداری نرم افزار: در این رابطه ، اعضای تیم نگهداری نرم افزار به عنوان واسطه برای پیگیری محصول نرم افزار عمل می کنند. به عبارت دیگر ، تیم تعمیر و نگهداری نرم افزار تغییرات موجود در سایر عناصر چارچوب نگهداری نرم افزار را تجزیه و تحلیل می کند تا تأثیر آنها را بر روی محصول نرم افزاری تعیین کند. این عناصر شامل نیازهای کاربر ، محیط های سازمانی و عملیاتی و فرآیند نگهداری نرم افزار است. همه این عناصر بر تغییرات در نرم افزار تأثیر می گذارند و مسئولیت حفظ کیفیت نرم افزار را بر عهده دارند.
به طور کلی ، کاربران به این دلیل که می توانند از تیم نگهداری نرم افزار پشتیبانی نکنند، دانش کمی از روند نگهداری نرم افزار دارند. همچنین ، ممکن است کاربران تصورات غلطی داشته باشند مانند این که نگهداری نرم افزار مانند تعمیر و نگهداری سخت افزار است ، تغییر نرم افزار آسان و هزینه تغییرات بسیار زیاد و زمانبر است.
اگراحتیاجات کاربر به تغییرات اساسی در نرم افزار نیاز داشته باشد ، ممکن است زمان زیادی برای اجرای آنها صرف شود. به همین ترتیب ، ممکن است کاربران تغییراتی را انتخاب کنند که مطابق با استانداردهای نرم افزار یا سیاست های یک شرکت نباشد. این وضعیت بین کاربران و تیم نگهداری نرم افزار تضاد ایجاد می کند.
برای پیاده سازی نیازهای کاربر در نرم افزار ، باید مشخصات زیر را در نظر گرفت.
- عملی: اگر تغییر درخواست شده در سیستم نرم افزاری قابل اجرا باشد ، نیازهای کاربر عملی است.
- مطلوب: قبل از اجرای تغییرات جدید ، مهم است که آیا اصلاحی که کاربر درخواست داده است لازم است یا خیر.
- اولویت بندی شده: در برخی موارد ، نیاز کاربر ممکن است هم عملی باشد و هم مطلوب. اما ممکن است در آن زمان این الزامات از اولویت بالایی برخوردار نباشند. در چنین شرایطی ، نیازهای کاربر بعداً قابل پیاده سازی است.
عملکرد نرم افزار تحت تأثیر دو نوع محیط قرار دارد ، یعنی محیط سازمانی و محیط عملیاتی. محیط سازمانی شامل قوانین تجارت ، سیاست های دولت ، سیاست های مالیات ، الگوهای کار و رقابت در بازار است. یک سازمان قوانین و خط مشی های خاص خود را دارد که باید در روند نگهداری نرم افزار گنجانده شود. محیط عملیاتی شامل سیستم های نرم افزاری (مانند سیستم عامل ها ، سیستم های پایگاه داده و کامپایلرها) و سیستم های سخت افزاری (مانند پردازنده ، حافظه و وسایل جانبی) است.
در هر دو محیط ، زمانبندی فرآیند تعمیر و نگهداری می تواند مشکلاتی ایجاد کند. برنامه ریزی تحت تأثیر عوامل مختلفی از جمله نیاز فوری به نرم افزار اصلاح شده ، اختصاص زمان کمتری برای اصلاح نرم افزار و عدم دانش مناسب در مورد نحوه پیاده سازی نیاز کاربر در نرم افزار است.
تغییرات با پیگیری روند نگهداری نرم افزار (همچنین به عنوان چرخه عمر نگهداری نرم افزار شناخته می شود) در سیستم نرم افزاری اعمال می شود. جنبه های یک فرآیند تعمیر و نگهداری که بر تکامل نرم افزار تأثیر می گذارد یا به هزینه های بالای نگهداری کمک می کند ، در زیر ذکر شده است.
- کشف و اصلاح خطا: مشاهده شده است که نرم افزار بدون خطا عملاً وجود ندارد. یعنی یک محصول نرم افزاری حاوی نوعی خطای «پس مانده» است. اگر این خطاها در مرحله بعدی توسعه نرم افزار کشف شوند ، رفع آنها گران تر می شود. وقتی خطاها در مرحله تعمیر و نگهداری شناسایی می شوند ، هزینه رفع خطاها حتی بیشتر است.
- دشواری در ثبت الزامات تغییر: الزامات و مشکلات کاربر فقط در صورت استفاده از سیستم روشن می شوند. همچنین کاربران ممکن است نتوانند الزامات خود را به شکلی بیان کنند که برای تحلیل گر یا برنامه نویس قابل درک باشد.
3- تغییر پارادایم (سنت شکنی) مهندسی نرم افزار: نگهداری سیستم های قدیمی تر که قبل از ظهور تکنیک های برنامه نویسی ساخت یافته توسعه یافته اند.
محصول نرم افزار
نرم افزار تهیه شده برای کاربران می تواند برای استفاده عمومی یا استفاده خاص باشد. به عنوان مثال ، MSOffice یک نرم افزار کاربردی است که ماهیتی عمومی دارد و ممکن است توسط طیف گسترده ای از مردم استفاده شود. از طرف دیگر ، سیستم حقوق و دستمزد ممکن است متناسب با نیازهای سازمان تنظیم شود. با این حال ، این مشکل زمانی بروز می کند که قرار است نرم افزار حفظ شود. به طور کلی ، جنبه های یک محصول نرم افزاری که به هزینه چالش نگهداری کمک می کند ، در زیر ذکر شده است.
- دشواری دامنه برنامه: الزامات برنامه هایی که به طور گسترده مورد استفاده قرار گرفته و به خوبی درک شده اند ، نسبت به مواردی که اخیراً ایجاد شده اند ، دچار تغییرات اساسی می شوند.
- انعطاف ناپذیری در برنامه ها: هنگام اصلاح نرم افزار ، باید از نظر انعطاف پذیری تغییر و استفاده مجدد بررسی شود. دلیل این امر این است که محصولات نرم افزاری غیر قابل انعطاف بیشتر در معرض خرابی ها هستند.
- کیفیت اسناد: مستندات برای درک نیازها ، طراحی نرم افزار و نحوه تبدیل این الزامات به کد نرم افزار ضروری است. در دسترس نبودن اسناد به روز سیستم ، بر بهره وری نگهداری اثرات نامطلوبی می گذارد.
تیم نگهداری نرم افزار
از گروه افرادی که مسئول نگهداری نرم افزار هستند ، تیم نگهداری نرم افزار یاد می شود که ممکن است شهردار از تیم توسعه دهنده ای که "ساخت" نرم افزار را تشکیل می دهد ، نباشد. غالباً ، یک تیم تعمیر و نگهداری جداگانه (متشکل از تحلیلگران ، طراحان و برنامه نویسان) برای اطمینان از عملکرد صحیح یک سیستم تشکیل می شود. این تیم به کار گرفته شده است زیرا مشاهده شده است که به طور کلی توسعه دهندگان اسناد را به روز نگه نمی دارند ، و این امر به نیاز افراد یا منابع بیشتری برای حل یک مشکل منجر می شود. این امر منجر به ایجاد فاصله زمانی طولانی بین زمان بروز مشکل و رفع آن می شود.
عملکردهای مختلف انجام شده توسط تیم نگهداری نرم افزار در زیر ذکر شده است:
- قرار دادن اطلاعات در اسناد سیستم
- به روز نگه داشتن مستندات سیستم
- بهبود عملکرد سیستم برای انطباق با محیط جدید
- تقویت سیستم برای انجام عملکردهای جدید با توجه به نیاز کاربر
- کشف علت اصلی خرابی ها در صورت وجود
- رسیدگی به تغییرات ایجاد شده در سیستم.
جنبه های یک تیم تعمیر و نگهداری که منجر به هزینه های بالای نگهداری می شود در زیر ذکر شده است:
- جابجایی کارکنان: به طور کلی مشاهده می شود که وقتی میزان جابجایی کارکنان (نسبت تعداد افرادی که در مدت زمان مشخصی از سازمان خارج می شوند) زیاد باشد ، نگهداری نرم افزار به درستی انجام نمی شود. دلیل این امر این است که کارکنانی که در ابتدا روی محصولات نرم افزاری کار می کردند با پرسنل جدیدی جایگزین می شوند که بخش قابل توجهی از تلاش های نگهداری را در درک سیستم صرف می کنند.
- حوزه تخصص: بعضی اوقات ، تیم تعمیر و نگهداری ممکن است اطلاعات کمی در مورد دامنه سیستم و دامنه برنامه ای که در آن کار می کنند داشته باشد. اگر اسناد حفظ نشود یا به روز نباشد ، این مشکل بدتر می شود. همه اینها ممکن است منجر به تاخیر در اجرای تغییرات درخواست شده توسط کاربر شود.
توضیحات خود را بنویسید