چکیده

        ما سیستم های یکپارچه نرم افزار و سخت افزاری قطعات با طول عمر اعم از 10-15 سال را توسعه می دهیم. در طول عمر این سیستم ها، نیازهای بازار به طور قابل توجهی با توجه به پیشرفت های تکنولوژیکی، نیازهای زیست محیطی، و اولویتهای فرهنگی تغییر کرده است. هزینه تغییر نرم افزار و سخت افزار یک محرک بسیار بزرگ است که اغلب منجر به معرفی تغییری می شود که در نتیجه منجر به معرفی تغییر در نرم افزار برای روبه رو شدن با تکامل انتظارات بازار خواهد شد. بزرگترین مزیت نرم افزار-، سازگاری آسان – است و همچنین بزرگترین نقطه ضعف آن، متعد بودن برای تغییر است. از این رو، طراحی نرم افزار به ویژه در توسعه نرم افزار در سطح جهانی (GDSD) بسیار چالش برانگیز است. در این مقاله تمرینی، ما رویکردمان را از اعمال نفوذ محدودیت های معماری نرم افزار و چالش مواجه شده به همراه درس های آموخته شده را به اشتراک میگذاریم، استفاده مجدد نرم افزار در هنگام اضافه کردن و بهبود ویژگی ها هم باعث کاهش هزینه های کلی و هم باعث کاهش زمان برای رسیدن محصول به بازار برای یک تیم گسترش نرم افزار توزیع شده خواهد بود.

1. سابقه

        سیستم های یکپارچه ای که ما به طور مستمر در حال توسعه آن ها هستیم در حال فشرده سازی نرم افزار بیشتر هستند، در حالی که در گذشته آنها فشرده تر بود. علاوه بر این، پس از چند سال، سیستم ما در حال تحول است و همچنین در حال رشد در هر دو بعد اندازه و پیچیدگی می باشد. 

         بنابراین معماری نرم افزار نقش رهبر را بازی می کند و آن را تبدیل به یک محصول مرکزی در چرخه زندگی سیستم های ما می نماید، چرا که آنها یک مرور کلی از سازمان و از این سیستم ها برای ارائه به ذینفعان مختلف را انجام می دهند. معماری نرم افزار به صورت زیر تعریف شده است  "مجموعه ای از ساختارهای یک سیستم نرم افزاری، که برای استدلال در مورد آن ... لازم است (و) از بخش های نرم افزاری تشکیل شده است و همچنین به صورت روابط میان آنها و خواص این اشخاص و روابط"  تعریف شده است[1]. معماری نرم افزار باعث می شود تا هر دو اجزای یک سیستم نرم افزاری و وابستگی بین این اجزا به صورت صریح باشد [2]. در سال 1990 اصطلاح "معماری نرم افزار" شروع به جلب توجه قابل توجهی هم از جامعه پژوهش و از صنعت نمود [3]. چالش ایجاد ارزیابی و حفظ این سیستم بزرگ تا حد زیادی باعث تحریک و رشد در زمینه معماری شده است. اهمیت معماری نرم افزار برای سیستم های نرم افزاری بزرگ و پیچیده را می توان با دلایل زیر توضیح داد[4]:

• ارتباطات متقابل: اکثر ذینفعان سیستم ها می توانند از معماری نرم افزار به عنوان پایه برای درک سیستم، به صورت اجماع، و برقراری ارتباط با یکدیگر استفاده کنند.

این مقاله در نشریه آی تریپل ای منتشر شده و ترجمه آن با عنوان محدودیت های معماری در سایت ای ترجمه به صورت رایگان قابل دانلود می باشد. جهت دانلود رایگان مقاله فارسی و انگلیسی روی عنوان فارسی (آبی رنگ) کلیک نمایید.
منبع:

Using architectural constraints to drive software component reuse while adding and enhancing features