بخشی از مقاله
چکیده:
کیفیت طراحی معماری یک سیستم نرم افزاری تاثیر بسزایی در دستیابی به نیازمندی های غیرعملیاتی یک سیستم دارد. با گسترش استفاده از نمودارهای زبان مدلسازی یکپارچه برای توصیف معماری نرم افزار و اهمیت ارزیابی نیازمندیهای غیرعملیاتی در سطح معماری، ایجاد مدلی قابل اجرا از این نمودارها در مراحل آغازین طراحی و فرآیند توسعه ضروری است. از آنجایی که اشکالات کارایی بایستی در همان مراحل ابتدایی فرآیند تولید نرم افزار شناسایی شوند نیاز به ارزیابی و تحلیل این ویژگی در مرحله طراحی معماری به وجود م یآید. یک راه حل برای این مسئله استفاده از یک مدل قابل اجرا است. با استفاده از شبکه های پتری رنگی و تحلیل بازخورد قبل از مرحله پیاده سازی می توان قابلیت اطمینان سیستم ATM را محاسبه کرد، ارزیابی مدل رسمی در این تحقیق، با ابزار CPN Tools انجام می شود. نتایج موردی نشان می دهد رویکرد پیشنهادی، قابلیت اطمینان سیستم ATM را در سطح معماری نرم افزار قبل از پیاده سازی بهبود می بخشد.
واژگان کلیدی: ارزیابی قابلیت اطمینان، زبان مدلسازی یکپارچه، شبکه های پتری رنگی،CPN TOOLS، CPN Modele
-1 مقدمه
یکی از اهداف مهمی که در بررسی کیفیت معماری دنبال می شود، بررسی میزان دستیابی معماری به صفات کیفی همچون کارایی، قابلیت اطمینان و .. است .برای ارزیابی این پارامترهای غیر عملیاتی ابتدا معمار می تواند معماری نرم افزار را بااستفاده از
زبان توصیف معماری ( Architecture Description Language )،
نمودار ترتیب پیامMessage Sequence) Chart )یا زبان
مدلسازی یکپارچه( (Unified Modeling Language توصیف
نماید که از میان آن ها زبان مدلسازی یکپارچه برای توصیف معماری نرم افزار بسیار پرکاربرد و مناسب می باشد.[1]
یکی از مهم ترین خواص فوق العاده کاربردی در سیستم های نرم افزاری مدرن، میزان کارایی آن ها می باشد. تغییرات معماری در اواخر مراحل توسعه ، بسیار پرهزینه است. بنابراین، ضروری است که قادر به پیش بینی کارایی سیستم در زمان طراحی به منظور تشخیص مشکلات بالقوه قبل از به کـار گیری منابع باشیم .[2] روش های ارزیابی و تحلیل کارایی نرم افزار زیادی تا کنون برای معماری پیشنهاد شده انـد 3]،.[4 در رو شهـای پیشـین بـه معماری به صورت یکپارچه نگاه میکردند و هیچ گونه تلاشی برای پیدا کردن ساختار داخلی معماری نمی شد.
کل معماری به صـورت یکجـا ارزیـابی می گشت که این کار باعث پیچیدگی ارزیابی می شد. در این مقاله سعی بر آن است که بتوان با استفاده از یک مدل واقعی به توصیف معماری نرم افزار پرداخت. سپس ویژگی هایی از معماری نرم افزار با استفاده از نمودارهای UML بیان می شود و اطلاعات لازم در رابطه با نیازهای غیروظیفه مندی در قالب نمایه های عملیاتی و به صورت کلیشه ها و برچسب هایی به نمودارهای UMl حاشیه نویسی می شود تا به یک مدل اجرایی مبتنی بر شبکه پتری رنگی تبدیل و در نهایت قابلیت ارزیابی شود. با تبدیل مدل واقعی به مدل رسمی امکان ارزیابی قابلیت اطمینان معماری نرم افزار بر روی مدل رسمی فراهم می شود. انتظار می رود با استفاده از شبکه های پتری رنگی و تحلیل بازخورد قبل از مرحله پیاده سازی بتوان به ارزیابی قابلیت اطمینان پرداخت.
-2 بستر انجام کار
بیان معماری نرم افزار بر اساس، زبان مدل سازی یکپارچه، شبکه های پتری رنگی، قابلیت اطمینان، می باشد که هرکدام به اختصار بررسی می گردند.
.
1
-1-2 معماری نرم افزار
معماری نرم افزار امروزه به عنوان یکی از مهمترین شاخه های مهندسی نرم افزار مطرح است که شامل تکنییک ها و روش هایی جهت مدیریت پیچیدگی نرم افزار می باشد. بنابراین برای غلبه بر پیچیدگی سیستم های نرم افزاری و طراحی آنها می توان از معماری نرم افزار استفاده کرد .معماری نرم افزار نقش مهمی را در دستیابی به پارامترهای کیفی سیستم ایفا می کند.
بنابراین تصمیمات اتخاذ شده در طول معماری تاثیر زیادی روی نتیجه سیستم دارد .تعریف واژه معماری نرم افز ار کارساده ای نیست. شاید گواه این موضوع وجود تعاریف مختلفی باشد که در این زمینه ارائه شده است.هر چند بسییاری از این تعاریف ویژگی های مشترکی دارند اما هنوز توافق بر روی یک تعریف استاندارد وجود ندارد.ما از تعاریف ارائه شده توسط باس((Bassو همکارانش استفاده خواهیم نمود.[×9]
"معماری نرم افزار برای یک برنامه یا سیستم محاسباتی ساختار یا ساختارهای آن سیستم است که شامل اجزای نرم افزاری، خصوصیات قابل مشاهده هر یک از اجزا و ارتباط بین آنها میباشد".
به طور گرافیکی رفتار سیستم با عوامل دیگر را نشان داد. مورد کاربری عبارت است از دنباله ای از عملیات که یک سیستم انجام می دهد تا یک نتیجه قابل مشاهده و ارزشمند برای کاربر فراهم نماید. به بیان دیگر برای هر مورد کاربری می توان سناریوهایی که مبین روند ارائه سرویس آن مورد کاربری را با بیضی نشان می دهند و نام آن را در داخل بیضی یا زیر آن می نویسند.[5]
عامل چیزی از خارج محدوده ی سیستم بوده که بوسیله یک مورد کاربری یا بیشتر با سیستم در ارتباط است. فرد، سیستم و یا سازمانیاست که با سیستم مورد نظر در تعامل است. تعامل بدین معناست که به سیستم داده ای می دهد و یا از نتایج استفاده می کند5]،.[10