بخشی از مقاله
چکیده
از زمانی که پیچیدگی سیستمهای نرمافزاری افزیش یافته مسائل مربوط به طراحی، به موضوعات مهمتری نسبت به مسائل مربوط به انتخاب الگوریتم و ساختمانداده تبدیل شدند. بنابراین یکی از وظایف توسعهدهندگان ارائه راهحلهایی است که به سادگی فرایند توسعه نرمافزار کمک می کند.
یکی از روشهای توسعه استفاده از الگوها و سبکهای معماری است. معماری تخته سیاه به عنوان یک سبک نرمافزاری، برای سیستمهایی که نیاز به پردازش و تفسیر پیچیده سیگنالها داشته اند نظیر پردازش صوت و یا تشخیص الگو استفاده شده است و امروزه توسط اکثر مهندسین نرمافزار مورد استفاده قرار میگیرد.
همچنین از سوی دیگر، کارت های CRC یک روش عمومی برای نمایش ساختار سبکها و الگوها هستند که توسط متخصصین استفاده می گردد. در این مقاله سعی بر این شده است که ساختار ایستای الگوی طراحی تخته سیاه را با کارتهای CRC نشان داده و سپس یک مدل رسمی با شبکه پتری از این سبک ارائه گردد. با این کار، به طراحان نرم افزار کمک می شود تا قبل از ورود به فاز طراحی بتوانند معماری خود را مورد ارزیابی قرار دهند.
مقدمه
با توجه به گسترش و پیچیدگیهای سیستمهای نرمافزاری و نیاز به خدمات برای تعمیر و بروزرسانی، موفقیت این سیستم تا حد زیادی بستگی به معماری و طراحی آن دارد. در دو دههی گذشته معماری نرمافزار عنصر کلیدی در فرایند توسعه نرمافزار بوده است. الگوهای طراحی معماری نرمافزار راه کاری برای بهرهگیری از امکانات یک طراحی مبتنی بر معماری هستند
یکی از سبک های معماری نرم افزار تخته سیاه می باشد. این سبک در زمره سبک های مرکز داده به شمار می آید. در یک سبک مرکز داده، دو نوع کاملا متمایز از مولفه ها وجود دارد: یک ساختار داده ای مرکزی که حالت فعلی را بیان می کند و مجموعه ای از مولفه های مستقل که بر روی موجودی انبار داده مرکزی عمل می کنند. ارتباطات متقابل میان مخزن و مولفه های خارجی آن می توانند میان سیستم ها به صورت چشمگیری متفاوت باشند. اگر انواع تراکنش ها در یک جریان ورودی، مجموعه ای از فرایند ها را جهت اجرا بیاندازد مخزن می تواند یک پایگاه داده سنتی باشد. از طرف دیگر ، اگر حالت فعلی ساختار داده مرکزی عامل اصلی انتخاب فرایند ها جهت اجرا باشد مخزن می تواند یک تخته سیاه باشد
راه حل روش کارتهای CRC یک تکنیک اثبات شده برای شناسایی کلاسها و تجسم و تست مدل مبتنی بر کلاسهای مختلف در طول فاز طراحی است. کارتهای CRC همچنین تاثیر زیادی به عنوان یک جلو رونده برای روشهای طراحی هستند. از طرفی داشتن یک مدل قابل اجرا از معماری یک توصیف رسمی از معماری محسوب میشود که در این مقاله به دلیل پشتوانه قوی ریاضی شبکه پتری رنگی برای توصیف رسمی استفاده میشود.
در ادامه ساختار مقاله به این صورت بیان میگردد: در بخش دوم بستر کار مورد توجه قرار میگیرد. این بخش بر روی الگوی طراحی تخته سیاه، کارتهای CRC و شبکه پتری رنگی تاکید میکند. در بخش سوم کارهای انجام پذیرفته در راستای مقاله را مورد بررسی قرار میدهد. راه حل و متد پیشنهادی و چگونگی تحلیل آن در بخش چهارم مورد توجه قرار میگیرد. بخش پنجم به ارائهی مطالعه موردی و بخش ششم به نتیجهگیری اختصاص یافته است.
بستر کار
زمینه انجام کار شامل: الگوی طراحی تختهسیاه، کارتهای CRC و شبکه پتری میباشد که به اختصار بررسی میگردد.
الگوی طراحی تخته سیاه
الگوی معماری تخته سیاه در طبقه بندی مدون سبکها در گروه داده محورها قرار گرفته است. این سبک از قدیم عمدتا برای کاربرد هایی که نیاز به پردازش و تفسیر پیچیده سیگنالها داشته اند نظیر پردازش صوت و یا تشخیص الگو استفاده شده است
تخته سیاه سبکی است که در آن مولفه های مستقل پردازشی، منبع دانش نامیده می شوند، که بر روی انبار داده مشترک به نام تخته سیاه عمل می کند. منبع دانش به صورت مستقیم با هم تعامل ندارند، زمانی که تخته سیاه یک حالت قابل اجرا باشد، منبع دانش بر روی تخته سیاه به صورت فرصت یابی عمل می کند
کارتها CRC
کارتهای CRC در سال 1191 ، توسط Kent Beck و Ward Cunnigham برای کمک به طراحان و برنامهنویسان غیرشیگرا در شناسایی اشیاء و به عنوان ابزاری برای طراحی معرفی شدند
کارتهای CRC در اصل به عنوان یک ابزار تکنیک فکری شیگرایی برای برنامه نویسان توصیف شده است - . - Buschmann et al, 2001 آنها یک ابزار غیر رسمی برای مدلسازی شیگرایی میباشند. بسیاری از مدرسان، کارتهای CRC را به عنوان یک ابزار برای آموزش طراحی راحت و یک ابزار برای منتقل کردن تفکرات شیگرایی به تصویب رساندهاند. قدرت روش کارتهای CRC در نقش فعالیتهای مرتبط به آنها نهفته است
2015 کارتهای CRC در بخشهای مختلف معماری استفاده میشود. مراحل مختلف معماری نرمافزار حاوی تعدادی خروجی میباشد اگر این خروجیها بشکلی باشند که به طور ساده هدف و منظور معمار را نشان دهند در فهم و درک نیازمندیها به سهامداران کمک فراوانی کرده و در نتیجه خروجی کار یعنی همان معماری، معماری مطلوب خواهد شد. معماری نرمافزار باید بتواند توصیفات درستی از سیستم را ارائه دهد تا ارزیابی مناسبی هم از آن قابل انجام باشد
شبکه پتری
این شبکه ها به عنوان ابزاری برای مدلسازی سیستمها - بخصوص سیستم ها با رویداد گسسته - استفاده میگردند. در میان مدلهای رسمی ، شبکههای پتری ابزار قدرتمندی جهت مدلسازی همزمانی هستند
شبکههای پتری ابزار مناسبی برای مدلسازی ریاضی و گرافیکی به حساب میآیند از این ابزار میتوان برای مدلسازی، توصیف و تحلیل سیستمهایی که دارای ماهیتی همزمان، غیرهمزمان، توزیع شده، موازی، نامعین و انتفاقی هستند استفاده نمود. یکی دیگر از خصوصیات شبکه پتری قابل اجرا بودن آنهاست که از همین خاصیت میتوان برای ارزیابی رفتار و کارایی یک سیستم بهره برد
کارهای مرتبط
در مقاله - Emadi and Shams, 2009 - معماری یک سیستم را با استفاده از سه نمودار موردکاربری، ترتیب و مولفه زبان مدلسازی یکپارچه توصیف کرده است و سپس نقش این نمودار ها را در ارزیابی کارایی و حاشیهنویسیهای مربوط به آن بررسی کرده است و سپس یک الگوریتم جهت تبدیل به شبکه پتری تصادفی تعمیم یافته را ارائه داده است.
در مقاله خود رفتار و ساختار سبک معماری تخته سیاه را با استفاده از نمودار مولفه و نمودار فعالیت با استفاده از گراف میانی به شبکه پتری رنگی زمانی تبدیل نموده و مورد ارزیابی قرار دادهاند. - Motameni and Nemati, 2014 - در پژوهش خود کارتهای CRC را به شبکه پتری تصادفی نگاشت داده و سپس پارامتر های کیفیت امنیت را به آنها الصاق نموده سپس به ارزیابی و تحلیل پارامترها پرداخته شده است.