معماری نرم‌افزار

معماری نرم‌افزار یعنی ساختار و سازمان یک سیستم نرم‌افزاری که به منظور پشتیبانی از عملیات مشخص، بر روی سازماندهی اجزاء متمرکز می‌باشد. در واقع اجزاء را در حوزه‌های مرتبط به هم گروه‌بندی می‌کند.
دیگر حوزه‌های مرتبط به هم، بر روی تبادل و تعامل با این حوزه متمرکز می‌شوند.

معماری نرم‌افزار از کلیدی‌ترین بخش‌های تولید نرم‌افزار مخصوصاً نوع تجاری آن است که البته در سالهای اخیر با ایجاد مدل‌های کلاسیک تولید نرم‌افزار به نرم‌افزارهای عظیم تر محدود شده‌است.

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

معماری نرم‌افزار فرایند تعریف یا راه حل نرم‌افزاری ساختار منداست به شکلی که بتواند کلیه نیازمندی‌های فنی و عملیاتی مورد انتظار را، پوشش دهد.

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

درخت مفاهیم در معماری نرم‌افزار

جستارهای وابسته 

نویسنده:فرشاد جهانگرد و رضا صاحب الزمانی

 
ادسخر دیکسترا
برنامه‌نویسی