بخشی از مقاله
چکیده :
تحلیل معماری نرمافزار یک فعالیت مرکزی در توسعه نرم افزار است. معماری نرمافزار دارای فنون چندگانهای میباشد که در هزینه و پیچیدگی تفاوت دارند، که به ذینفعان پرداخته و از انواع تحلیلها پشتیبانی میکند. برای پشتیبانی جامع ارزیابی معماری نرمافزار، چندین فنون تحلیل باید در یک پروژه استفاده شود. در حال حاظر فنون موجود با هرروشی یکپارچه نیستند و نیازمند استفاده از پردازههای مختلف ، ابزارها و معانی مختلفی برای ارئه معماری میباشند، که باعث کاربردهای مختلفی میشود هرچند به طور باالقوه تکمیل کردن فنون تحلیل، باعث صرف زمان و منابع زیادی میشود که هزینهبر است. در این مقاله رویکردی را برای ترکیب فنون چندگانه تحلیل با پشتیبانی جامع ، یکپارچه و مقرون بهصرفه بودن تحلیل معماری نرم-افزار ارائه میدهیم. این رویکرد ترکیبی از قابلیتهای تحلیل ارائه شده توسط ابزار مدیریت معماری نرمافزار، زبان توصیف معماری و روشهای تحلیل مبتنی بر سناریو میباشد.
.1مقدمه :
تحلیل معماری نرمافزار نقش مهمی در توسعه نرمافزار ایفا میکند. همتای تحلیلی برای فرآیندهای سودمند طراحی معماری و پیادهسازی میباشد.[1] تیلور و همکارانش تحلیل معماری را بهعنوان کشف فعالیتهای مهم سیستم با استفاده از سیستم مدل معماری تعریف میکنند.[2] تحلیل معماری دارای اهداف مختلفی میباشد، مانند تشخیص نیازهای متضاد، تحلیل تاثیر تصمیمات طراحی معماری، بررسی سازگاری معماری و پیادهسازی، بررسی سازگار بودن مدل معماری و بررسی صحت راهحلهای معماری با در نظر گرفتن الزامات تعریف شده . تحلیل، اجازه تشخیص زودهنگام مشکلات، قبل از هزینهبر شدن آنها را میدهد.[3] همانطور که توسط بوهم [4] گفته شد، تشخیص و حل مشکلات بعدی گرانتر میباشد.
این امر به ویژه برای مشکلات معماری مطرح است چونکه معماری شامل تصمیمگیری طراحی زودرس و طولانیمدت است، که معمولا تغییرات آینده در توسعه آن سخت میباشد. [5] فنون مختلف تحلیل معماری مانند روش مبتنیبر تحلیل سناریو، زبان توصیف معماری - ADLs - ، ابزار نرم افزار مدیریت معماری - AMTs - ، اسکلت معماری، و نمونه های اولیه وجود دارند. هر کدام از این فنون از انواع گوناگون تحلیل در مراحل مختلف فرآیند توسعه نرم افزار استفاده میکنند. آنها در چندین نقطه تفاوت دارند ، مانند تشریفات م1ورد نیاز از شرح معماری، ذینفعان مورد خطاب، منابع مورد نیاز، هدف تحلیل پشتیبانی، زمان تحلیل تعیین شده و وجود ابزار حمایت از فرآیند ارزیابی میباشد.
با توجه به اهمیت معماری نرمافزار به عنوان یک عنصر مرکزی در توسعه نرمافزار [5]، تحلیل معماری باید همهجانبه برای بررسی تمام خواص مربوطه باشد .[6] این نیاز با استفاده از فنون متعدد تحلیل در طول فرایند توسعه برطرف شود. [7] [8] در حال حاضر، روشهای تحلیل معمولا به طور مستقل از یکدیگر استفاده میشوند. دارای چندین معایب مانند استفاده از توصیفهای متعدد معماری[9]، مدیریت مستقل از نتایج تحلیل و استفاده از ابزارهای متعدد، به ویژه در استفاده از توصیف معماریهای متعدد میتواند سحت و مشکل باشد، چون که تغییرات معماری به طور بالقوه نیاز به یک بروزرسانی در هر توصیف معماری منحصر بهفرد دارند.
در این مقاله یک رویکرد را ، که ترکیبی از تکنیک های متعدد تحلیل در یک محیط سازگار میباشد را ارائه می دهیم. کار ارائه شده بخشی از پروژه مهندسی معماری نرمافزار - SAE - برای حمایت از توسعه نرم افزارمعماری محور است.[10] نتیجه مرکزی پروژه SAE LISA یک رویکرد برای توسعه نرم افزار معماری محور میباشد. هنگام شروع این پروژه، روی فنون اتوماتیک ارزیابی معماری متمرکز شدیم که توسط ADLs و AMTs ارائه شده است. استفاده از LISA در پروژه نشان داد که یک اشکال عمده از روش ما این بود که ما فقط ویژگیهای با کیفیت انتخاب شده را ارزیابی میکردیم .
به منظور غلبه بر این کمبود، روش خود را با پشتیبانی از تحلیل مبتنیبر گسترش دادیم و در حال توسعه یک مدل کلی برای تحلیل معماری هستیم که ادغام عناصر از سه روش مختلف تحلیل معماری میباشد، که شامل ابزارهای مدیریت معماری، زبان توصیف معماری و ارزیابی معماری مبتنی برسناریو میباشد. ادامه این مقاله به شرح زیر میباشد: بخش 2، یک نمای کلی از روشهای تحلیل معماری نرمافزار مبتنی برمدل و مبتنی بر سناریو است. در بخش 3 ، ما رویکرد ترکیب هر دو تکنیک را ارائه می دهیم. در بخش 4،ما تجربیاتمان را گزارش میدهیم و در بخش 5 با یک خلاصه و یک چشم اندازاز اینده کار نتیجهگیری میکنیم.
.2 تکنولوژی جدید:
در این بخش، یک مرور کلی از فنون مختلف تحلیل معماری مورد استفاده و نقاط قوت و ضعف آن را نشان میدهیم. علاوه بر این رویکردهای ترکیب فنون مختلف ارزیابی را مطرح میکنیم.
.2.1تحلیل معماری نرمافزار مبتنی بر سناریو :
سناریوها در روشهای تحلیل مبتنی بر مرور استفاده میشود و متعلق به فنون مورد استفاده تحلیل معماری میباشد .[11] انواع مختلفی از روش های مبتنی بر سناریو وجود دارند.[13] [12] دو نمونه برجسته آن، رویکردهای تحلیل معماری نرمافزار - SAAM - [14] و رویکردهای مصالحه معماری [ATAM] - 15 - میباشد. روش های مختلف مبتنی بر سناریو اهداف تحلیلی متفاوتی هم دارند. به عنوان مثال، هدف از ATAM، پیدا کردن تناقضهای مورد نیاز است، در حالی که هدف از SAAM تحلیل اصلاح یک سیستم میباشد .
ارزیابی مبتنی بر سناریو معمولا به صورت دستی توسط ذینفعان یک سیستم در یک یا دو روز در کارگاه پس از مرحله آماده-سازی انجام میشود. روش های ارزیابی مبتنی بر سناریو معمولا شامل پنج گام میباشند که در شکل1 - الف - شرح داده شده-اند.[7] نخست معمار نرمافزار، معماری را برای ذینفعان ارائه میکند، پس از آن سناریوهایی که الزامات مهم سیستم را توصیف میکنند، را تعریف میکنیم . پس از فرایند رایگیری، که در آن مهمترین سناریو ها شناسایی، و هر سناریو ارزیابی میشود.
اولویت بندی سناریوها لازم است، زیرا همه حالات تعریف نشده را میتوان در زمان دردسترس در طول کارگاه تحلیل کرد. برای هر سناریو معماری نرمافزار، معمار نرمافزار توضیح میدهد که چگونه سناریو مورد خطاب مورد خطاب قرار میگیرد - ویا مورد خطاب قرار نمیگیرد - . نتیجه این روند بازبینی مجموعهای از مشکلات معماری میباشد که توصیف معماری را باید اصلاح کند. قدرت فنون تحلیل مبتنی بر سناریو ماهیت کلی آن است، که باعث میشود آنها برای هر دو ویژگیهای کیفی و نیازمندیها عملکردی مناسبی داشته باشند. الزامات سناریوهای توصیف شده قابل رسیدگی هستند.[3] هر سناریو یک تعامل فردی از یک ذینفع با سیستم توصیف میکند.[16] روش مبتنی بر سناریو پشتیبانی از ادغام انواع ذینفعان میباشد .
روش تحلیل مبتنیبر سناریو زمان متمرکزی را مطرح میکند[12]، چرا که آنها باید فعالیتها را به صورت دستی انجام دهند. این فعالیتها عبارتند از ایجاد یک توصیف معماری و تعریف سیستم مورد نیاز. در نتیجه یک تحلیل معماری مبتنی بر سناریو بستگی به تجربه و تخصص دینفعان دارد. رویکرد تحلیل معماری مبتنی بر سناریو فاقد پشتیبانی از ابزار مکاتبه کننده است. همانطور که توسط بابر و همکاران گزارش شده است.
[12] پشتیبانی ابزار مطرح شده توسط همه توسعهدهندگان و با استفاده از روش تحلیل مبتنی بر سناریو بسیار مهم است اما تنها تعداد کمی از ابزارهای تخصصی در دسترس هستند.[17] Kazman یک ابزار حمایت از SAAM و ویژگیهای ابزار تحلیل معماری مورد نظر را ارائه و مطرح میکند.[18] بابر و همکارانش، PAKME که ابزاری برای مدیریت دانش معماری که از ضبط سناریوها و تولید درختان سودمند پشتیبانی می-کند را مطرح نمود.
.2.1.1 روش تحلیل معماری نرمافزار :SAAM
روش تحلیل نرمافزار روشی مبتنی بر سناریو میباشد که به منظور ارزیابی ویژگیهای کیفی معماری نرمافزار مانند :قابلیت نگهداشت، قابلیت اطمینان، قابلیت تجمیع و... ارائه شده است. تاکید اصلی این روش بر روی قابلیت اصلاح پذیری است و اگر چند معماری متفاوت برای سیستم وجود دارد، این روش میتواند آنها را از نظر قابلیت اصلاح پذیری مقایسه کند. ورودیهای ارزیابی به این روش سناریوها، توصیفات معماری و توصیف مشکلات میباشند. این ورودیها را در شکل زیر نشان داده شده است.
روش ارزیابی SAAM قابلیت تشخیص نقاط ضعف و یک معماری را دارد. تاکید این روش بر روی قابلیت اصلاح پذیری است به گونه ای که این روش به راحتی میتواند نقاطی از معماری نرمافزار سیستم مورد نظر را که نیازمند قابلیت اصلاح پذیری را برآورده نساخته، مشخص نماید و یا اگر چند معماری متفاوت از سیستم وجود دارد که عملکرد یکسانی دارند، این روش میتواند از جنبه قابلیت اصلاح پذیری آنها را مقایسه کند و به صورت نسبی آنها را رتبه بندی نماید.
.2.1.2 روش تحلیل معماری از طریق مصالحه : - ATAM -
روش ATAM برمبنای SAAM برای تحلیل قابلیت اصطلاح، کارآیی، در دسترس بودن و امنیت میباشد.