معماری نرمافزار و سبکهای آن
توضیحات
در جلسه ششم درس سیستمعامل پیشرفته دکتر حقیقت که از مهمترین دروس تخصصی آزمون دکترای مهندسی کامپیوتر در گرایش نرمافزار و گرایش شبکه و رایانش است، فصل دوم این درس با عنوان «معماری» آغاز میشود. در این جلسه معماری نرمافزار و سبکهای آن مورد بحث و بررسی قرار میگیرد. ابتدا در مورد چرایی معماری سخن به میان میآید. سپس در این مورد بحث میشود که در معماری نرمافزار (Software Architecture) سه چیز باید مشخص شود: 1) سیستم توزیعشده از چه مؤلفههایی (شی، لایه، فرایند و غیره) تشکیل میشود. 2) این مؤلفهها چگونه با یکدیگر ارتباط برقرار میکنند. 3) مؤلفهها چگونه در کنار هم قرار میگیرند و کدام مؤلفهها با کدام مؤلفهها ارتباط دارند. بنابراین سه مفهوم در یك معماری وجود دارد: 1) مؤلفهها (components) که اجزای مجزا، مستقل و قابل جایگزینی (حذف، اضافه، تغییر) سیستم هستند. 2) اتصالدهندهها (connectors) که مکانیسمی است که نحوه ارتباط، هماهنگی و همگامسازی مؤلفهها را تعیین میکند. 3) سازماندهی (Organization) که نظم و ساختار مؤلفهها و جایگاه هر مؤلفه در سیستم را مشخص میکند و اینکه کدام مؤلفهها با هم در ارتباط هستند. سپس سبكهای معماری نرم افزار به تفصیل و با جزئیات کامل مورد بحث قرار میگیرند و در مورد هر سبک، مؤلفهها، اتصالدهندهها و نحوه سازماندهی سیستم معرفی و تشریح میشوند. این سبکها به ترتیب عبارتند از: 1) لایهای (Layered) 2) مبتنی بر شیء (Object-based) 3) داده محور (Data-Centric) 4) مبتنی بر رویداد (Event-based) 5) فضای داده اشتراکی (Shared Data Space) که ترکیب سبکهای داده محور و مبتنی بر رویداد است.