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