چکیده
این نوشتار، گزارش سمینار کارشناسی ارشدی است که به بررسی روشهای ارزیابی معماری نرمافزار اختصاص دارد. برای رسیدن به این منظور توضیحاتی در معرفی معماری نرمافزار، اهمیت ارزیابی معماری نرمافزار، معماری قابل اجرا و ابزار مدلسازی معماری به عنوان پیشنیاز در این چکیده آورده شده است. معماری نرم افزار یعنی بیان ساختار یا ساختارهای سیستم که مولفه های نرمافزاری، ویژگیهای قابل رویت از خارج این مولفهها و روابط بین آنها را نشان میدهد. تعریف دیگری که برای معماری نرمافزار ارائه شده، عبارت است از ساختار مولفهها در یک سیستم، رابطه داخلی آنها و اصول و خطوط راهنمایی که طراحی و ارزیابی سیستم را در طی زمان کنترل میکند. این تعریف جنبههای داخلی سیستم را در نظر میگیرد و بنابراین اکثر روشهای تحلیل و ارزیابی براساس آن عمل میکنند. تعریف و معماری خرد معماری نرم افزار باید شامل دوقسمت معماری کلان باشد که اولی روی محیطِ سیستم متمرکز می شود و دومی ساختار داخلی یک سیستم را پوشش میدهد. البته تعاریف مختلفی برای معماری نرمافزار وجود دارد که ما در اینجا قصد ارائه همه آنها را نداریم و به دو تعریف فوق اکتفا میکنیماعتبار سنجی کارایی نرم افزار از همان فازهای اولیه چرخه حیات سیستم، یک مسئله تعیینکننده در طراحی سیستمهای نرمافزاری پیچیده میباشد. بر اساس چرخه کاری معماری نرمافزار یکی از مراحلی که پیشبینی شده که باید در مراحل اولیه چرخه حیات انجام گیرد، مرحله ارزیابی و یا تحلیل معماری است. تصمیمات معماری مرتبط با صفات کیفی معماری بوده و تاثیر زیادی روی کیفیت سیستمهای نرمافزاری میگذارند. در نتیجه همیشه در توسعه و تولید سیستمهای نرمافزاری این مسئله مطرح است که چگونه یک معماری نرمافزار را تدوین کنیم تا نیازهای صاحبان سهام را برآورده سازد. بنابراین همیشه
تولیدکنندگان نرمافزار به دنبال راههایی هستند که بتوانند پیش از شروع تولید نرمافزار و قبل از پرداخت هر گونه هزینه تولید، سیستم را ارزیابی و تحلیل نمایند. در زمان ارزیابی معماری، تمرکز بر روی ویژگیها و صفات کیفیتی و میزان برآورده شدن آنها است. ارزیابی معماری نشان میدهد که آیا معمار تصمیمات کلیدی را به درستی اتخاذ نموده است و آیا ابهامی در این تصمیمات وجود ندارد و از سوی دیگر تاثیر این تصمیمات بر روی بقیه فرآیند کار چه خواهد بود.
در جواب به این نیازها که در بالا بیان شد، محققین مسئله معماریهای قابل اجرا را مطرح نمودند. معماری قابل اجرا یک پیاده سازی جزئی از سیستم محسوب می شود که به منظور نمایش دادن چگونگی انجام عملیات، وظایف و ویژگیهای سیستم مورد نظر باشد، به علاوه در آن ویژگیهایی نمایش داده می شود که دربرگیرنده نیازمندیهای غیر وظیفه مندی میباشد. معماری قابل اجرا در طول فاز تشریح برای کاستن ریسکهای مرتبط با کارایی، توان عملیاتی، ظرفیت، قابلیت اطمینان و ویژگیهای دیگر ایجاد میشود. بنابراین معماری قابل اجرا میتواند معماری نرمافزار را اعتبار سنجی نماید و همچنین معماری قابل اجرا قابلیت های وظیفه مندی سیستم را نمایش می دهد، تا با پایه و اساس قوی و بدون ترس از شکست وارد فاز ساخت شویم. در واقع مقصود از معماری قابل اجرا، ساختن یک نمونه تکاملی با قابلیت ارضاء نیازمندیها است. مدلهای زیادی برای نشان دادن معماری قابل اجرا وجود دارد، مانند شبکه های پتری رنگی که ابزار مناسبی برای مدلسازی سیستم و نمایش دادن صفات کیفیتی غیر وظیفه مندی میباشند، و به دلیل سادگی و قابلیت بالا، بسیار مورد توجه هستند. البته علاوه بر مدلهای موجود، زبانهایی نیز برای توصیف معماری وجود دارند که می توانند معماری قابل اجرا را نمایش دهند مانند زبان ADL و ADML
با نگاهی به مراحل اصلی فرآیند معماری، ضرورت داشتن یک مدل اجرایی در سطح معماری بیشتر به چشم میخورد. ما با داشتن یک مدل اجرایی در سطح معماری بسیاری از مراحل معماری را با
دقت بالاتری انجام خواهیم داد. با توجه به اهمیتی که معماری صحیح سیستم در تولید سیستم دارد،
داشتن مدل اجرایی در این سطح که اشتباهات را کم، فهم نیازها را راحتتر، تحلیل و ارزیابی سیستم را بهتر و ارائه معماری را سادهتر نماید، بسیار مهم است.
در فصل اول این گزارش تحت عنوان مفاهیم بنیادی به معرفی کلیات و اصطلاحات اولیه لازم برای درک معماری و تحلیل و ارزیابی معماری پرداخته شده است. در فصل دوم این گزارش روشهای ارزیابی معماری مبتنی بر سناریو مورد بررسی قرار گرفته است. در فصل سوم با توضیح مختصری در مورد شبکه های پتری، به روش ارزیابی مبتنی بر شبکههای پتری پرداخته شده است. در فصل چهارم روش ارزیابی SAM مورد بررسی قرار گرفته است و در نهایت در فصل پنجم به تشریح نتایج حاصل از این تحقیقات پرداخته شده است و کارهای آتی معرفی گردیده است. آنچه در این گزارش میخوانید عموماً برداشت مستقیم یا گزینشی از متون از پیش نوشته شده است، به جز فصل آخر که به طور کامل برداشتهای شخصی اینجانب میباشد.
نویسنده : مریم پورکمالی انارکی
منبع :دبیرخانه شورای عالی اطلاع رسانی کمیته فنی معماری اطلاعات
روشهای ارزیابی معماری نرم افزار
۱۳۹۴-۰۶-۲۸معماری فناوری اطلاعات۰
مطلب قبلیمدیریت دانش و سازمان یادگیرنده: تحلیلی بر نقش مستندسازی دانش و تجربه
مطلب بعدیکارتهای CRC در معماری نرم افزار