بخشی از مقاله

مقایسه دو روش ارزیابی معماری نرم افزار SAAM و ATAM
چکیده
وقتی که سایز و پیچیدگی سیستم نرم افزاری افزایش مییابد، دیگر مسئله طراحی ماوراء الگوریتمها و ساختمان دادهها و محاسبات میشود و در واقع مسئله طراحی، موضوعی است که صرفا به الگوریتم و ساختمان داده ربطی ندارد. طراحی و تشریح کردن ساختار کلی سیستم، یک نوع جدید از مسئله را برای ما آشکار میسازد که به آن معماری نرم افزار گفته میشود. در سالهای اخیر تحقیقات درباره معماری نرم افزار، به یکی از مباحث مهم در حوزه مهندسی نرم افزار تبدیل شده است و ارزیابی معماری نرم افزار، یکی از موضوعات اصلی در این حوزه میباشد. ارزیابی معماری نرم افزار به عنوان ابزاری برای دستیابی به صفات کیفی مانند قابلیت نگهداری و اعتماد معرفی شده است. هدف ارزیابی معماری نرم افزار، بررسی این موضوع است که آیا معماری صفات کیفی موردنیاز را برآورد میکند یا نه؟
در این مقاله دو روش ارزیابی ATAM و SAAM شرح داده شده و سپس این دو روش بر اساس پانزده پارامتر بررسی شده و در جدولی مقایسه میشوند.

واژههایکلیدی معمار: ینرمافسار، روشه ایارزیابی،SAAM،.ATAM


1 -مقدمه
در یک فرآیند توسعه نرم افزار، بعد از کامل کردن تحلیل نیازمندیها و به دست آوردن یک سند کامل، شامل مشخصات نیازمندیها، معماری نرم افزار سیستم توسعه داده شده، طراحی میشود. اگر معماری پذیرفته شده توسط طراح، نیازمندیهای موجود را برآورده نسازد، سیستم با کیفیت پایین تولید خواهد شد و در نتیجه میزان زیادی هزینه و وقت به هدر خواهد رفت، چراکه سیستم باید مجددا توسعه یابد. برای اجتناب کردن از تلف شدن سرمایه و زمان که به دلیل انتخاب معماری نامناسب میباشد، ارزیابی معماری قبل از شروع به پیادهسازی یک سیستم، میتواند بسیار مفید باشد.
در ارزیابی و تحلیل معماری باید به شیوهای عمل نمود که نیازهای همه صاحبان سهام در نظر گرفته شود. به طور کلی از فواید ارزیابی معماری میتوان به ملاقات صاحبان سهام، کاهش هزینه نگهداری، اولویتبندی ویژگی کیفیتی، بهبود کیفیت مستندات معماری، بهبود کیفیت معماری نرم-افزار،کاهش ریسک و هزینه کمتر در تغییرات سیستم، اشاره نمود .[1] از جمله روشهای ارزیابی معماری می توان به روشهای SAAM، ATAM،ARID ،SAAMER،ALMA ، SBAR ، SAAMCS، ISAAMCR اشاره کرد.

2 -روشهای ارزیابی معماری
چون معماری نرم افزار (SA) نقش مهمی را در دستیابی به صفات کیفی ایفا میکند، پس ارزیابی معماری سیستم با توجه به نیازمندیهای کیفی مطلوب بسیار مهم است. تاکنون روشهای زیادی برای ارزیابی موضوعات مرتبط کیفی در سطح معماری نرم افزار معرفی شده است .[2]

-3 روش تحلیل معماری نرم افزار (SAAM)
این روش در سال 1993 و به منظور ارزیابی بعضی از صفات کیفیتی معماری مانند قابلیت اصلاح پذیری، قابلیت حمل وجابجایی، قابلیت گسترش، قابلیت نگهداری، قابلیت تجمیع، قابلیت اطمینان ایجاد گردیده است. روش ارزیابی SAAM قابلیت تشخیص نقاط ضعف و قدرت یکی معماری را دارد. تاکید این روش بر روی قابلیت اصلاحپذیری است به گونهای که این روش به راحتی میتواند نقاطی از معماری نرم افزار سیستم موردنظر را که نیازمندی قابلیت اصلاح پذیری را برآورده نساخته، مشخص نماید و یا اگر چند معماری متفاوت از سیستم وجود دارد که عملکرد یکسانی دارند، این روش میتواند از جنبه قابلیت اصلاح پذیری آنها را مقایسه کند و به صورت نسبی آنها را رتبهبندی نماید.

-ورودیها و پیش شرطهای [1] SAAM

در این روش باید صفات کیفیتی که مدنظر هستند و قرار است که در یک نشست ارزیابی شوند در یک متن مشخص شده و به دنبال آن سناریوهایی که برای بررسی آن صفات کیفیتی مورد نیازند و نحوه تعامل کاربر با سیستم را توصیف میکنند، تعیین گردند. علاوه بر سناریوها ( بیان نیازمندیها) که ورودی اصلی یک نشست SAAMهستند، توصیفات معماری و توصیف مشکلات نیز جزو ورودیهای مورد نظر این روش میباشند.

- مراحل نشست ارزیابی [1] SAAM
این روش ارزیابی شامل 6 مرحله اصلی است که با مرور کوتاهی بر متن تهیه شده و نیازمندیهای وظیفهمندی آغاز میشود.
مرحله اول : ایجاد سناریوها : در اولین مرحله SAAM ذینفعان سعی میکنند که با کمک جرقههای ذهنی انواع فعالیتهایی که سیستم باید پشتیبانی نماید، را تعیین نمایند
و همچنین تغییرات و اصلاحاتی که درمورد این فعالیتها به نظرشان میرسد را نیز اعلام نمایند. این فعالیت ها همراه با تغییرات و اصلاحات مورد نیاز، گروهبندی میشوند و سناریوهای سیستم را تشکیل میدهند.
مرحله دوم: توصیف معماری ها: در این مرحله از ارزیابی، معماری یا معماریهای کاندید مشخص میشوند. مستنداتی که برای معرفی معماری یا معماریهای کاندید استفاده می-شود باید به نحوی تهیه شده باشد که برای همه افراد شرکت کننده درارزیابی قابل درک باشد و همچنین باید تمام بخش-های ایستا و پویای سیستم را به خوبی معرفی نموده باشد. بخشهای ایستای سیستم بیشتر به تعریف مولفه ها بر می-گردد و بخشهای پویای سیستم به تعاملات بین مولفه ها و رابطه مولفه ها با محیط مربوط میشود.

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

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

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

- نقشهای موجود در روش [1] SAAM
سه دسته از نقشها در این روش ایفای نقش میکنند، که این سه دسته عبارتند از ذینفعان خارجی، ذینفعان داخلی، و تیم

.SAAM
ذینفعان خارجی: هیچ تاثیر مستقیمی در فرآیند توسعه معماری ندارند. آنها فقط ذینفعان سیستم هستند و نقش آنها معرفی اهداف کاری پروژه، تهیه صفات کیفیتی سیستم، میزان توقع و انتظارشان از انجام کار و تهیه سناریوهای مستقیم و غیرمستقیم همراه با دستهبندی و اولویتبندی آن-هاست. مثالهایی ازاین نوع ذینفعان عبارتند از : مشتریهای سیستم ، کاربران نهایی، بازاریابها ، مدیران سیستم و.....

ذینفعان داخلی: این دسته از سهامدارن تاثیر مستقیمی در پیشنهاد استراتژیهای معماری نرم افزار دارند که میتواند نیازمندیهای کیفیتی را برآورده نماید. آنها نقش تجزیه و تحلیل، تعریف و معرفی مفاهیم معماری، تخمین هزینه و زمانبندی مربوط به این استراتژیها را برعهده دارند. مثال-هایی از این ذینفعان عبارتند از : معماران نرم افزار، تیم معماری، طراحان و تحلیلگران سیستم و..

تیم: SAAM این تیم، نشست ارزیابیSAAM را رهبری می-کند و نقش مستقیمی در معماری نرم افزار ندارد. این تیم شامل یک ارزیاب (رهبر تیم)، کارشناس دامنه کاربرد،کارشناس معماری خارجی (برای ارزیابی رسمیتر) و یک منشی میباشد. تیم ارزیاب مطابق با اهداف و مقیاس پروژه میتواند استفاده از این روش ارزیابی را تایید نماید و در یک دستور جلسه ارزیابی، انجام 6 مرحله مربوط به این نوع ارزیابی را زمانبندی کند. باتوجه به سایز پروژه و تعداد ذینفعان موجود، مدت زمان جلسه متفاوت است.

- محاسن و معایب روش [1] SAAM

محاسن روش SAAM به عنوان اولین روش ارزیابی معماری مبتنی بر سناریو عبارت است از :

ذینفعان، معماری تجزیه و تحلیل شده را به خوبی درک می-کنند و میفهمند.

بعضی اوقات پس از یک نشست ارزیابی، مستندات معماری نرم افزار تقویت میشوند.

ارتباط بین ذینفعان افزایش مییابد.

یک نگاشتی بین سناریوهای حاصل از جرقه ذهنی با تغییرات آینده معماری سیستم ایجاد میشود.

-معایب روشSAAM عبارتند از :

فرآیند تولید سناریو بر اساس دید ذینفعان میباشد وتصور سناریوی غیرمستقیم برای ذینفعان مشکل میباشد.

در SAAM یک اندازهگیری کیفی مشخصی از ویژگیهای معماری تجزیه و تحلیل شده وجود ندارد .

این روش ارزیابی، یک روش مرحلهای برای ارزیابی معماری است، ولی با وجود این، تکنیکهای کمی را برای انجام مراحل مختلف ارائه میدهد و در اصل موفق بودن این روش ارزیابی، به تجارب ارزیاب وابسته میباشد.

-4 روش تحلیل معماری از طریق مصالحه((ATAM

روش ATAM برمبنای SAAM برای تحلیل قابلیت اصلاح، کارآیی، در دسترس بودن و امنیت میباشد. ATAM در سال
1998 به عنوان یک مدل مارپیچی از طراحیها و در MAY سال 1999 به عنوان یک مدل مارپیچی از تحلیل و طراحی مطرح شد .[3] هدفATAM فراهم کردن یک راه اصولی برای فهمیدن توانایی معماری نرم افزار با در نظر گرفتن چندین صفت کیفیتی که با یک دیگر رقابت دارند، میباشد. ATAM علاوه بر ارزیابی صفات کیفیتی، وابستگیهای این صفات کیفیتی را نیز مشخص مینماید. در واقع این روش قبل از تولید سیستم و وقتی که معماری نرم افزار سیستم مشخص شد، ضرورت یک مصالحه را در بین چندین صفت کیفیتی تشخیص میدهد و همچنین مکانیزمهای مصالحه را نیز مشخص میسازد. همچنین ریسکهای معماری نرم افزار که مانع رسیدن به اهداف کاری سازمان میشوند نیز در این روش مشخص میگردد. .[4]
این روش نقاط حساس، نقاط مصالحه و ریسکها را مشخص نموده و استخراج مینماید..[1]

- مراحل نشست ارزیابی .[1] ATAM

این روش شامل دو فاز اصلی است، وهر فاز دارای مجموعه ای از مراحل است :
فاز اولیه : این فاز به دو بخش زیر تقسیم میشود:

الف: بخش ارائه و معرفی ATAM که شامل مراحل زیر می-باشد:

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

مرحله دوم: معرفی محرکها یا پیشرانهای کاری: سخنران پروژه در مورد اهداف کاری و انگیزه اصلی توسعه و راه اندازی کیفیتهای اصلی توضیح میدهد و پیشرانهای کیفیتی اولیه معماری را مشخص میکند.

مرحله سوم: ارائه و معرفی معماری: در این مرحله معمار، معماری نرم افزار سیستم را توضیح میدهد و همچنین چگونگی متمرکز شدن معماری بر روی پیشرانهای شرح داده شده در مرحله قبل را شرح میدهد.

ب- بخش تحلیل و بررسی که شامل مراحل زیر میباشد :

مرحله چهارم : شناسایی روشهای معماری : در این مرحله معماران روشهای معماری را مشخص میکنند، ولی هیچگونه تحلیلی برروی آن انجام نمیدهند.
مرحله پنجم: ایجاد درخت سودمندی برای صفات کیفیتی : صفات کیفیتی که سودمندی سیستم را مشخص مینمایند از بالا به پایین استخراج میشوند و دراینجا از بالا به سمت پایین حرکت داده میشود تاسطح سناریوها مشخص شده و اولویت-بندی شوند. ریشه این درخت را هدف معماری تشکیل می-دهد و سطح بعدی این درخت شامل صفات کیفی است و سپس در سطوح بعد این صفات پالایش شده و کم کم بسط مییابند، چون چگونگی تحقق این صفات به صورت کلی و عمومی قابل تعریف نیست، بنابراین باید مصادیق این صفات شناسایی شوند و این قسمت وارد جزئیات میشود و به جزئیات می پردازد. در سطح بعدی هرکدام از این صفات کیفیتی را به یک سناریو نگاشت میکنیم.

مرحله ششم: تحلیل روشهای معماری: با توجه به سناریوهای سطح بالایی که در مرحله قبلی شناسایی شده است، روش-های معماری که به این سناریوها اشاره میکنند و این سناریوها را میپوشانند، انتخاب میشوند و تحلیل میگردند. در طی این مرحله نقاط حساس، نقاط مصالحه و همچنین پتانسیل ریسکها شناسایی میشوند.

فاز دوم: این فاز به دو بخش زیر تقسیم میشود:
الف- بخش تست و آزمایش: که شامل مراحل زیر میباشد: مرحله هفتم: جرقههای ذهنی و اولویت بندی سناریوها: در طی نشستهای مختلف، ذینفعان با کمک جرقههای ذهنی تعداد زیادی از سناریوهای لازم را تهیه میکنند و تیم ATAM با کمک خود ذینفعان این سناریوها را با استفاده از روش رایگیری اولویتبندی میکنند.

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

- نقشهای موجود در [1] ATAM
نقش شرکت کنندگان در یک نشست ATAM به سه دسته ذینفعان خارجی، ذینفعان داخلی و تیم ارزیاب تقسیم میشود که بصورت زیر میباشد:

ذینفعان خارجی: بطور مستقیم در فرآیند توسعه معماری دخالت ندارند،آنها باید متن پروژه کاری را بر اساس نیازمندیهای اولیه تعریف نمایند، تاسناریوها از روی آن مشخص گردد. همچنین آنها در پایان نشست ارزیابی و در هنگام اعلام نتایج ارزیابی، تصمیم میگیرند که کدام مصالحه-ها بهتر است که انجام گیرد. مشتریان، مدیرپروژه، کاربران و...جزء ذینفعان خارجی میباشند.

ذینفعان داخلی: در فرآیند توسعه و تولید معماری نقش مستقیمی دارند. نقش آنها تجزیه و تحلیل، تعریف و پیاده-سازی معماری است. همچنین آنها در طی نشست ATAM مسئول توصیف، ارائه و ارزیابی معماری هستند. معماران، مسئولین تیم طراحی، تست کنندهها و یکپارچه سازها و....
جزء این دسته از ذینفعان هستند.

تیم :ATAM این دسته از افراد، تاثیر مستقیمی در معماری نرم افزار ندارند ولی برای رهبری و مدیریت نشست ارزیابی دعوت میشوند. همچنین وظیفه رهبری جریان ارزیابی، ثبت محصولات میانی ارزیابی و همچنین معرفی نتایج پایانی ارزیابی را بر عهده دارند. مهمتر از همه اینکه تیم ATAM باید درصورت نیاز توانایی معرفی معماری و همچنین پشتیبانی از ذینفعان و معماران را در تولید سناریوها داشته باشند. این تیم

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