بخشی از مقاله

چکیده
یکی از مهمترین شاخه های بحث معماری سیستمهای نرم افزاری مسئله تحلیل معماری میباشد.در این مقاله پس از تبیین جایگاه و اهمیت مقوله تحلیل در معماری سیستمهای نرم افزاری،رویکردهای متنوع موجود برای تحلیل معماری معرفی می شوند.از آنجا که روشهای مبتنی بر سناریو به عنوان مهمترین و رایج ترین روشهای تحلیل معماری نرم افزارمطرح می باشند و نظر به لزوم تعریف و ایجاد چارچوبی مشخص و دقیق برای مطالعه،شناخت و ارزیابی نظام مند این روشها،در این تحقیق چارچوبی مفید و کارا برای
طبقه بندی روشهای مبتنی بر سناریو در تحلیل معماری نرم افزار ارائه می گردد.طبقه بندی پیشنهادی مبتنی بر سه معیار تعریف شده در این مقاله می باشد. این سه معیار،که از درونمایه فنی برجسته ترین روشهای مبتنی بر سناریو در تحلیل معماری نرم افزار اقتباس شده اند،عبارتند از رویکرد مطلوب در گزینش سناریوها،تعداد خصیصه های کیفی تحت پوشش و سطح انتزاع راهکارهای پیشنهادی این تحقیق در واقع نوعی تلاش در جهت ساماندهی مسئله تحلیل در معماری سیستم های نرم افزاری به شمار می رود. کلمات کلیدی: معماری نرم افزار،تحلیل معماری،خصیصه های کیفی،سناریوها
١-مقدمه
معماری سیستم های نرم افزاری موضوع تحقیقاتی نوینی در عرصه مهندسی نرم افزاربه شمار می رود. اگر چه ایده اصلی آنچه که امروز معماری نرم افزار خوانده می شود از دهه شصت میلادی مطرح بوده است. اما با ظهور سیستمهای بزرگ،پیچیده و حساس در دهه نود و عمومیت یافتن این سیستمها،ایده مذکور مورد توجه ویژه پژوهشگران قرار گرفت. با این وجودبررسی فعالیتهای صورت گرفته در این زمینه نشان میدهد که هنوز هیچ تعریف استاندارد و همه پذیری برای مفهوممعماری نرم افزار وجود نداردو گروههای تحقیقاتی مختلف نقطه نظرات گوناگونی در این زمینه دارند. برخی بر این باورند که معماری سیستم نرم افزاری همان ساختار سیستم است که شامل اجزاء نرم افزاری،ویژگیهای خارجی مشهود آنها و ارتباطات میان آنها میباشد. برخی دیگر معماری نرم افزار را به عنوان اسکلت سیستمی که قرار است ایجاد شود تلقی می کنند. عده ای هر نمودار سطح بالایی را که برای مبادله اطلاعات و تحلیل برخی ویژگیهای یک سیستم نرم افزاری مورد استفاده قرار گیرد به عنوان معماری سیستم نرم افزاری به حساب می آورند. بنابر عقيده گروه دیگری از محققین،معماری نرم افزار توصیفی انتزاعی وقابل فهم از سیستم نرم افزاری است که نحوه ارضای نیازهای کاربران توسط سیستم را بیان می کند.
اندک تأملی در مجموعه به ظاهر متنوع تعاریف ارائه شده برای معماری نرم افزار منجر به درک ایده مشترک مستتر در اکثر این تعاریف می شود: معماری نرم افزار،یک سیستم نرم افزاری را در سطح بالایی از انتزاع و در قالب اجزاءساختاری آن، و اتصالات" میان این اجزاء و نحوه اتصال اجزاء(برای ارضای نیازهای کاربر) توصیف می نماید.اگر چنین توصیفی قابل تحليل فنی باشد امکان پیش بینی بسیاری از ویژگیهای سیستم نرم افزاری،حتی قبل از پیاده سازی آن،به وجود خواهد آمد. این دستاورد در صورت حصول بقدری ارزشمند است که در سالهای اخیر موضوع تحلیل معماری سیستمهای نرم افزاری را به یک زمینه پژوهشی روزمبدل ساخته استدر این مقاله ضمن تبیین جایگاه و اهمیت مقوله تحلیلدر معماری سیستم های نرم افزاری،رهیافتی جهت طبقه بندی و ارزیابی شاخص ترین خانواده روشهای تحلیل معماری سیستم های نرم افزاری یعنی روشهای مبتنی بر سناریو ارائه می گردد. در ادامه این مقاله در بخش دوم،اهداف و روشهای مختلف موجود برای تحلیل معماری سیستم های نرم افزاری مورد بررسی قرار میگیرد.در بخش سوم چارچوبی مفید و کارا برای طبقه بندی روشهای مبتنی بر سناریو در تحلیل معماری نرم افزار ارایه میگردد. در بخش چهارم علاوه بر معرفی اجمالی برجسته ترین روشهای مبتنی بر سناریو،آنها را در چارچوب طبقه بندی پیشنهادی مورد ارزیابی قرار می دهیم. در بخش پنجم مقاله نتایج حاصل از این تحقیق و زمینه های تداوم آن معرفی میگردد.
۲ -تحلیل معماری نرم افزار دنیای پیرامون اکثر سیستم های نرم افزاری در حال تغییر مداوم است،این امر اعمال تغییرات مناسب و دوره ای در این سیستم ها رابه صورت یک الزام مطرح می سازد. مطالعات و بررسیهای متعدد نشان میدهد تا هفتاد درصدهزینه دوره حیات یک سیستم نرم افزاری صرف توسعه و نگهداری بعد از تولید اولیه آن میشودمجموعه نسبتا کاملی از تعاریف مختلف ارائه شده برای معماری نرم افزار درموجود است.
در سالهای اخیر تلاشهای فراوانی از سوی پژوهشگران بخش مهندسی نرم افزار در جهت کاهش این هزینه ها صورت گرفتهاست. یک رویکرد اساسی در تمامی این تلاشها،یافتن روشهایی برای پیش بینی تغییرات محتمل و توسعه های آتی در سیستم تحت طراحی می باشد. معماری سیستم نرم افزاری میتواند محمل مناسبی برای انجام این پیش بینی ها،حتی قبل از پیاده سازی سیستم،فراهم آورد. بنابراین محققین بر این باورند که معماری یک سیستم نرم افزاری باید از دو ویژگی مهم و اساسی برخوردار باشد.اول آنکه معماری باید به گونه ای طراحی شود که نیازمند کمترین تغییر بنیادی در آینده باشد[۵] . دوم آنکه امکان تحلیل از ابعاد مختلف روی معماری وجود داشته باشد. یک تحلیلدقیق و کامل از معماری میتواند تصویری روشن از عملکرد یک سیستم نرم افزاری ارائه نماید و به این ترتیب بسیاری از هزینه های آتی سیستم را کاهش دهد و یا حذف نماید. بر این اساس در سالهای اخیر موضوع تحلیل معماری نرمافزار به عنوان یک زمینهپژوهشی جدید و با اهمیت در عرصه مهندسی نرم افزار مطرح گردیده است
۱- ۲ - اهداف تحلیل
به طور کلی یک معماری نرم افزار باید قادر باشد تا دو گروه از نیازمندیها را برآورده سازد: نیازمندیهای وظیفه ای و نیازمندیهای غیر وظیفه ای. نیازمندیهای وظیفه ای ریشه در ساختار سیستم و وظایف عملیاتی آن دارند،حال آنکه نیازمندیهای غیروظیفه ای که به نیازمندیهای کیفی نیز موسومند به عملکرد سیستم از بعد کیفی)کیفیت انجام وظایف(مربوط می شوند. بنابراین میتوان تعریفی کلی از تحلیل معماری نرم افزار)که اهداف تحلیل نیز در آن مستتر است(رابه ص ورت زیر بیان کرد: تحلیل معماری نرم افزار فرایند پیش بینی برآورده شدن یا نشدن) نیازمندیهای وظیفه ای و غیروظیفه ای سیستم نرم افزاری در صورت پیاده سازی معماری طراحی شده برای آن سیستم می باشد.
مطالعه و بررسی اهدافی که در مراجع معتبر برای تحلیل معماری نرم افزار بیان شده است نشانگر توجه ویژه آنها به نیازمندیهای کیفی می باشد،به گونه ای کهحتی در برخی موارد هیچ اشاره ای به لزوم بررسی نیازمندیهای وظیفه ای در فرایند تحلیل معماری نشده است. علت این توجه ویژه به نیازمندیهای کیفی را میتوان در عللی همچون تاثیر این خصیصه های کیفی در هزینه های آتی سیستم،پیچیده تر بودن پیش بینی این خصیصههانسبت بهنیازمندیهای وظیفه ای و رجحان فنی نیازمندیهای کیفی بر نیازمندیهای وظیفه ای جستجو کرد. علاوه بر این برخی خصیصه های کیفی مانند تغییر پذیری، بصورت صریح نیازمندیهای وظیفه ای سیستم را تحت تاثیر خود قرار میدهند.
به طور کلی تحلیل معماری نرم افزار با نگرش کیفیت مداری با دو مشکل اساسی مواجه است و علی رغم سعی فراوانی که افراد مختلف در راستای حلآنها مبذول داشته اند این دو مشکل همچنان باقی است.مشکل اول،فقدان یک درک پایه ای دقیق از بسیاری از خصیصه های کیفی و وجود ابهام و نسبیت در ماهیت اینخصیصه ها می باشد.دومین مشکلی که فراروی فرایند تحلیل معماری قرار دارد این است که همه چیز در سطح معماری قابل پیش بینی نیست،چراکه برخی خصیصه های کیفی ممکن است به دلیل نوع پیاده سازی دستخوش تغییرات شوند)خصیصه هایی نظیر میزان صحت و قابلیت استفاده(. بنابراین انجام هر گونه پیش بینی در خصوص این موارد قبل از پیاده سازی سیستم در عمل غیر ممکن است و روشهای ارائهشده برای تحلیل معماری در بررسی و ارائه نظر در چنین مواردی ناتوانند.
با توجه به نقش تعیین کننده برخی از خصیصه های کیفی و نظر به مشکلات فوق الذکر، برخی از محققین معتقدند که در فرایند تحلیل معماری باید به آن دسته از خصیصه های کیفی بها داد که اولا قابل پیش بینی در سطح معماری باشند و ثانیا با ساختار سیستم ارتباط نزدیک داشته باشند. به عنوان مهمترین نمونه های چنین خصایصی میتوان به کارایی و تغییر پذیری اشاره کرد[بر این اساس اغلب روشهای تحلیل معماری تنها روی چنین خصایصی متمرکز شدهاند.
۲- ۲-روشهای تحلیل معماری نرم افزار
مطالعه و بررسی مجموعه روشهای متنوع ارائه شده جهت انجام تحلیل معماری نرم افزار نشان میدهد کهمیتوان این روشها را در دو گروه کلی مورد بررسی قرارداد:روشهای وابسته به نوع توصیف معماری و روشهای مستقل از نوع توصیف معماری.روشهای وابسته به نوع توصیف معماری در انجام تحلیل بطور کامل بهنحوه توصیف معماری توسط زبان توصیفگر معماری وابسته اند،در حالیکه روشهای مستقل از نوع توصیف معماری که از فراگیری بیشتری برخوردارند،بدون هیچگونه وابستگی به نحوه توصیف معماری آن را تحلیل می کنند. در چارچوب این گروه بندی میتوان اکثر روشهای ارائه شده برای تحلیل معماری نرم افزار را جزء گروه دوم،که به روشهای مبتنی بر سناريو" نیز موسومند،دانست. بنابراین در ادامه ضمن بررسی اجمالی روشهای نوع اول به طبقه بندی و ارزیابی روشهای مبتنی بر سناریو خواهیم پرداخت.
۱- ۲- ۲- روشهای مبتنی بر نوع توصیف معماری
این روشها تحلیل معماری را براساس آنچه توسط زبانهای توصیفگر معماری بیان شده است انجام میدهند. بطور کلی هر زبانی که مجموعه ای از نمادها را جهت توصیف اجزاء و اتصالات میان آنها در یک معماری نرم افزار ارائه نماید،یک زبان توصیفگر معماری(ADL) خواندهمی شود. از آنجا که هر یک از زبانهای توصیفگر معماری قابلیتها و روش تحلیل خاص خود را دارا هستند،روشهای تحلیل معماری مبتنی بر توصیفات حاصل از این زبانها از طبقه بندی خاصی،نظیر آنچه در روشهای مبتنی بر سناریو مطرح خواهد شد،برخوردار نیستند. اما آنچه قابل بررسی نظام مند در مجموعه این روشهاست نوع پشتیبانی های فراهم شده توسط زبانهای توصیفگر معماری جهت انجام انواع مختلف تحلیلها می باشد.اینکه هر زبانی امکان انجام چه نوع تحلیلی را روی توصیفات خود فراهم می آورد بستگی بهمدل مفهومی بنیادی آن زبان و ویژگی های توصیفدر آن دارد. به عنوان مثال زبانWright امکان تحلیل بن بست در سیستم را فراهم می آورد. زبانهایc2 وAesop امکان حصول اطمینان از تبعیت از محدودیتهای پیکربندی وابسته به سبک رافراهم می کنند.همچنین بهکمکزبانهایی چونUnicon MetaH میتوان تحلیل قابلیت زمانبندی را با دقت بالایی انجام داد. علاوه بر این،توصیفات ارائه شده توسط برخی زبانها، امکان تحلیل بر اساس شبیه سازی رفتار توصیف شده معماری را فراهم می آورد. به عنوان مثال در زبانهای
weavesوRapide ابزارهایی نظیر پایش رخداد قابل استفاده می باشند. از آنجا که هر یک از زبانهای توصیفگر معماری بر ابعاد متفاوت معماری متمرکز شدهاندو از طرفی انجام عمليات تحليل از ابعاد مختلفمورد نظر است،بنابراین فراهم آوردن امکان تبادل اطلاعات میان زبانها و نگاشت توصیفات زبانهای مختلفبه یکدیگر ضروری می نماید. بر این اساس مجموعه ای از فعالیتهای ابتدایی جهت طراحی و ساخت یک زبان مبدل برای نگاشت توصیفات زبانهای مختلف به یکدیگر آغاز شده است نتیجه این تلاشها درزبانACME تبلور یافته است
۲- ۲- ۲ - روشهای مبتنی بر سناریو
روشهای مبتنی بر سناریو را شاید بتوان بعنوان رایج ترین روشهای تحلیل معماری نرم افزار قلمداد کرد. این روشها بدون وابستگی به نوع توصیف معماری و بر اساس مفهوم سناریو،معماری نرم افزار را مورد تحلیل قرار میدهند. بطور کلی یک سناریو یک رخداد بالقوه است که میتواند در چرخه حیات یک سیستم نرم افزاری متجلی شود. سناریوها برای استخراج نیازمندیها،مقایسه گزینه های مختلف طراحی و درک نحوه عملکرد یک سیستم بکار گرفته می شوند. ایدهاستفاده از سناریوها به عنوان ابزاری جهت انجام تحلیل نخستین بار توسطparnas درمطرح شد. kazmanو همکارانش نخستین افرادی بودند کهاز سناریوها برای تحلیل معماری نرم افزار بهره جستند. ایده اصلی روشهای مبتنی بر سناریو در تحلیل معماری نرم افزار عبارت است از استخراج مجموعه ای مناسب از سناریوها،اعمال این سناریوها روی معماری مورد نظرو مطالعه تاثیرات ناشی از این سناریوها.در ادامه این بخش رهیافتی جهت طبقه بندی و ارزیابی روشهای مبتنی بر سناریو به عنوان شاخص ترین خانواده روشهای تحلیل معماری نرم افزار ارائه می گردد
3 . طبقه بندی روشهای مبتنی بر سناریو
در این بخش ضمن معرفی سه معیار اصلی،روشهای مبتنی بر سناریو در تحلیل معماری نرم افزار بر اساس این سه معیار طبقه بندی می شوند. این معیارها از درونمایه فنی برجسته ترین روشهای مبتنی بر سناریو اقتباس شده اند. با طبقه بندی روشهای مذکور بر اساس این معیارها امکان بررسی رفتاری آنها در چارچوبی مشخصفراهم میشود. این سه معیار عبارتند از: رویکرد مطلوب در گزینش سناریوها،تعداد خصیصه های کیفی تحت پوشش و سطح انتزاع راهکارهای پیشنهادی. این سه معیار در واقع سه منظر متفاوت را برای طبقه بندی روشهای مبتنی بر سناریو عرضهمی کنند.
۱- ۳-رویکرد مطلوب در گزینشسناریوها
تامل در ایده کلی و جزئیات عملیاتی روشهای تحلیل معماری مبتنی بر سناریو نشان میدهد که میزان دقت و صحت نتایج تحلیل در این روشها وابستگی کامل به میزان دقت و صحت سناریوهای گزینش شده دارد. به دیگر بیان نوع سناریوهای گزینش شده مسیر عملیات تحلیل را تعیین می کند. به این ترتیب رویکرد مطلوب روشهای مبتنی بر سناریو در گزینش سناریوها معیاری مناسب برای شناسایی و طبقه بندی آنها محسوب میشود. بطور کلی در تعیین سناریوها جهت انجام تحلیل دو رویکرد کلی وجود دارد،رویکرد خوشبینانه و رویکرد بدبینانه.
رویکردخوشبینانه مبتنی بر تصور کارکرد طبیعی سیستم در آینده(بدون توجه به حالات خاص و استثنائی)می باشد. در این رویکرد هدف تخمین متوسطهزینه نگهداری سیستم در آینده با توجه به احتمال رخداد سناریوهای استخراج شده و هزینه لازم جهت عملی شدن آنها می باشد. بنابراین رویکرد مذکور تنهابهسناریوهای معقول با هزینه های منطقی توجه نشان میدهد .شکلتمرکز این رویکرد روى حد متوسط هزینه ها در نمودار هزینه- زمان را نشان می دهدچنانکه ملاحظه میشود در این رویکرد نقاط مرزی یا همان حالات استثنائی کمتر مورد توجه واقع شده اند. درچارچوب این رویکرد هدف اصلی متقاعد کردن ناظر کیفی معماری با یک تحلیل معمولی میباشد. در حالیکه این امر می تواند منجر به عدم کشف نارسائیهای احتمالی در معماری و در نتیجه افزایش هزینه های آتی گردد.
رویکرد بدبینانه،که به ارزیابی ریسکنیز موسوم است،معتقد است که سناریوهای معمولی و ساده تمامی حالات ممکن را پوشش نمی دهند. در بحث آزمون نرم افزار این مطلب بیان می شودکهیک آزمون تنها وقتی مفید است که کاشف یک خطا باشد. بر این اساس رویکرد بدبینانه معتقد است کهیک سناریو تنها وقتی مفید است که تحقق آن برای سیستم مشکل ساز باشد. بنابراین از این منظر به نقاط مرزی و سناریوهایی با هزینه های بالا(حتی اگر احتمال وقوع آنها خیلی کمباشد)توجه می شوددر چارچوب این رویکرد متقاعد کردن ناظر کیفی معماری با یکتحلیل ساده هدفی غیر هوشمندانه برای تحلیل استکهمی تواند منجر بهعدمکشف نارسائیهای احتمالی در معماری و در نتیجه افزایش هزینه های آتی گردد. بنابراین در نمودار هزینه-زمان،این رویکردروی نقاط اکسترمم نسبی جهت کشف استثنائات متمرکز می شود. این فرایند را میتوان تلاش در جهت کشف خطرهایی که معماری را تهدید می کند دانست.شکل2نگرش این رویکرد در کشف نقاط مرزی و موارد استثناء را نشان میدهد. بنابراین بر اساس این معیار روشهای تحلیل معماری مبتنی بر سناریو به دو گروه روشهای خوشبینانه و روشهای بدبینانه تقسیم می شوند. روشهای خوشبینانه که از فراگیری بیشتری برخوردارند مبتنی بر رویکرد خوشبینانه در گزینش سناریوها هستند و بنابراین به تحلیل معماری با تصور کارکرد طبیعی آن(بدون توجه به استثنائات)می پردازند. در حالیکه روشهای بدبینانه تحلیل معماری را با هدف کشفریسک هایی که معماری را در طول حیات سیستم تهدید می کنند انجام می دهند. این روشها بیش از آنکه به کار کرد طبیعی سیستم توجه داشته باشند به موارد استثنائی و خاص توجه نشان میدهند.
۲- ۳- تعداد خصیصه های کیفی تحت پوشش
چنانکه پیش از این در بخش اهداف تحلیل ذکر شد،روشهای مختلف تحلیل معماری خصیصه های کیفی متفاوتی را تحت پوشش قرار میدهند.از همین عامل میتوان به عنوان معیاری مناسب جهت طبقه بندی روشهای تحلیل معماری مبتنی بر سناریو بهره جست. مطابق این معیار میتوان بطور کلی روشهای مبتنی بر سناریو را به دو گروه کلی تقسیم بندی نمود:روشهای تک خصیصه ای و روشهای چند خصیصهای به روشهای تک خصیصه ای عبارتند از روشهایی که در فرایند تحلیل معماری نرم افزار تنها یک خصیصه کیفی را مدنظر قرار میدهند. بنابراین در این روشها عمليات تحليل و نتایج آن منحصر به یک خصیصه کیفی می شود.بهعنوان مثال روشهای متعددی در تحلیل معماری نرم افزار مبتنی بر سناریو وجود دارند که تنها به خصیصه تغییر پذیری در معماری تحت تحلیل می پردازند بدون آنکه سایر خصیصه ها را مورد توجه قرار دهند. در مقابل روشهای چند خصیصه ای روشهایی هستند که بیش از یک خصیصه کیفی را در فرایند تحلیل معماری مورد توجه قرار میدهند. بنابراین در این روشها عمليات تحليل و نتایج حاصل از آن مجموعه ای از خصایص کیفی رادربر می گیرند.روشهای چند خصیصه ای را میتوان به دو نوع مجزا تقسیم کرد. روشهای چند خصیصه ای نوع اول،تحلیل خصیصه های مختلف را بصورت مستقل و جداگانه انجام میدهند و توجهی به تعامل میان این خصیصه ها نشان نمی دهند،در مقابل روشهای چند خصیصه ای نوع دوم،خصیصه های کیفی مختلف را بصورت مستقل تحلیل نمی کنند بلکه توجه خود را معطوف نحوه تعامل میان این خصیصه ها و تاثیرات این تعامل ها در کارکرد کلی سیستم می نمایند.
۳- ۳-سطح انتزاع راهکارهای پیشنهادی
روشهای تحلیل معمارینرم افزار مبتنی بر سناریو به لحاظ سطح انتزاع راهکارهای پیشنهادی از سوی طراحان آنها یکسان نیستند.برخی از این روشها تنها بهترسیم چارچوبی کلی برای عملیات تحلیل بسنده نموده اند و فقط گامهای اساسی لازم برای انجام این عملیات را تعیین و معرفی کرده اند،در حالیکه برخی دیگر علاوه بر معرفی چارچوب کلی و قدمهای اساسی برای انجام عملیات تحلیل به ارائه راهکارهای عملی برای انجام عملیات مذکور پرداخته اند.همین مطلب می تواند به عنوان معیاری مناسب جهت طبقه بندی روشهای تحلیل معماری نرم افزار مبتنی بر سناریو مطرح شود. بر این اساس روشهای تحلیل معماری مبتنی بر سناریو به دو گروه تقسیم می شوند: روشهای انتزاعی و روشهای راهبردی. روشهای انتزاعی بدون ارائه راهکارهای عملی قابل توجه تنها مراحل اصلی کار را مشخص می کنند و در واقع چارچوبی انتزاعی را برای انجام عملیات تحلیل معماری ارائه می نمایند. در این روشها اتخاذ تصمیم در خصوص نحوه اجرای عملی هر یک از گامهای تحلیل به عهده تحلیل گر است و توصیه عملی قابل توجهی در این مورد ارائه نمی شود. بنابراین میزان موفقیت این روشها در عمل بستگی زیادی به تجربه و مهارتهای تحلیلگر دارد.روشهای راهبردی علاوه بر تعیین چارچوب کلی و مراحل اصلی عملیات تحلیل معماری،راهکارهای مناسبی را برای اجرای هر یک از گامهای پیشنهادی ارائه می نمایند. این روشها تحلیلگر را ملزم به استفاده از روشهای نظام مند و مشخص در فرایند تحلیل و عدم بکارگیری روشهای سلیقه ای می نمایند.
۴- ارزیابی روشهای مبتنی بر سناریو در میان روشهای مبتنی بر سناریو در تحلیل معماری نرم افزار،روشهایALMA , ATAM
, B &B ,SAAM به عنوان برجسته ترین روشها مطرحمی باشند. در این بخش ضمن معرفی اجمالی هر یک از این روشها به ارزیابی آنها در چارچوب طبقه بندی پیشنهادی در بخش قبل خواهیم پرداخت.

- ۴-روشSoftware Architecture Analysis Method
SAAM این روش را میتوان نخستین روش تحلیل معماری نرم افزار مبتنی بر سناریو دانست.این روش در سال۱۹۹۶توسطka zman و همکارانش ارائه شد.روشSAAM معماری نرم افزار را طی پنج مرحله تحلیل می کند.
١- توصیف معماری نامزد، در این مرحله باید معمارییا معماریهای نامزد با نمادهای قابل فهم توسط افراد گروه،بیان شود
۲- ایجاد سناریوها،در این مرحله سناریوها بر اساس تصور کارکرد طبیعی سیستم در آتیه،بدون توجه به موارد خاص و استثنائی،استخراج می شوند
٣- اعمال سناریوهای مستقل،در این مرحله ابتدا به ازای هر یک از سناریوهای استخراج شده توانایی یا عدم توانایی معماری تحت تحلیل در محقق ساختن آن بررسی می شود. سپس تغییراتی که باید روی معماری اعمال شود تا قادر به محقق ساختن تمامی سناریوهای غیر مستقیمباشد شناسایی و ثبت می شود
۴- درک(کشف)تعامل میان سناریوها،در این مرحله تعامل میان سناریوهای غیر مستقیمیعنی تاثیر آنها بر اجزاء مشترکی در معماری شناسایی می شود
۵- ارزیابی کلی، در این مرحله با انتساب وزنهایمناسب به سناریوها و تعامل میان آنها(که شاخص اهمیت آنها می باشد)امکان انجام یک ارزیابی کلی در خصوص معماری تحت تحلیل بوجود می آید.
رویکردSAAM در گزینش سناریوها خوشبینانه است و این روش قادر به تحلیل خصیصه های کیفی متعدد در معماری پیشنهادی می باشد. به این ترتیب میتوان دریافت که در چارچوب طبقه بندی پیشنهادی روشSAAM روشی خوشبینانه و چند خصیصه ای(نوع اول)می باشد،و از آنجا که ارائه دهندگان این روش تنها گامهای اصلی عملیات تحلیل را بدون ذکر راهکارهای عملی معرفی نموده اند روش مذکور را میتوان به عنوان روشیانتزاعی تلقی نمود. بررسی دقیق این روش نشان میدهد که میتوان از چند خصیصه ای بودن آن به عنوان مهمترین مزیت این روش یاد کرد. در حالیکه این روش چهار نقطه ضعف فنی مهم نیز دارد. اول آنکه چون این روش روشی انتزاعی است بنابراین فقط مراحل اصلی کار را مشخص می سازد وتصمیم گیری در خصوص نحوه انجام هر یک از مراحلراتا حدزیادی به تحلیلگران و تجربه آنها و واگذار می کند

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید