چارچوب نرمافزاری
From Wikipedia, the free encyclopedia
چهارچوب نرمافزار (به انگلیسی: Software framework) یک طراحی قابل استفاده برای سیستم یا زیرسیستمهای نرمافزاری است.
در برنامهنویسی کامپیوتر یک چهارچوب نرمافزاری یک انتزاع است که در آن نرمافزار فراهم کننده عملکردهای عمومی میتواند به صورت انتخابی توسط کدهای نوشته شده کاربران عوض شود، در تعریفی بهتر میتوان گفت یک فراهم کننده طراحیهای قابل استفاده برای نرمافزار است. در واقع یک چهارچوب یک راه استاندارد برای ساخت و گسترش برنامهها است و یک محیط با قابلیت استفاده مجدد در محیط نرمافزاری است به صورتی که عملکردهای خاصی از بخشهای یک پلتفرم بزرگ نرمافزاری را آماده میکند تا برنامهنویسی نرمافزارهای کاربردی و الگوریتمها را آسانتر کند، چهارچوبهای نرمافزاری ممکن است شامل برنامههای پشتیبانی، کامپایلرها، کتابخانههای کد، مجموعه ابزارها ورابطهای برنامهنویسی برنامه (API) باشد که تمام اجزای مختلف را گرد هم آورده تا امکان توسعه یک پروژه یا سیستم فراهم کند.
چهارچوبهای نرمافزاری امکانات کلیدی متمایز کننده ای دارند که آنها را از کتابخانههای معمولی کد متمایز میکند:
- وارونگی کنترل: در یک چهارچوب نرمافزاری، برخلاف یک کتابخانه کد کنترل جریان سراسر یک برنامه توسط صدا زننده صدا زده نمیشود بلکه توسط یک چهارچوب نرمافزاری مدیریت میشود. این ویژگی با استفاده از روش الگویی (Template Method Pattern) در برنامهنویسی شی گرا به دست میآید.
- رفتار پیش فرض: رفتار پیش فرض را میتوان با روشهای ثابت الگویی در یک کلاس انتزاعی ارائه داد که توسط چهارچوب ارائه شدهاست.
- توسعه پذیری: چهارچوب نرمافزاری میتواند توسط کاربر توسعه داده شود - معمولاً با بازنویسی انتخابی در برنامهنویسی شی گرا - یا برنامه نویسان میتوانند یک کد اختصاصی را برای فراهم کردن عملکردهای خاص به چهارچوب اضافه کنند. این کار نیز با یک روش به دام انداختن یک کلاس فرزند که یک نمونه را در کلاسهای والدین بازنویسی میکند انجام میشود. (ارث بری در برنامهنویسی شی گرا).
- کد چهارچوب غیرقابل اصلاح: کد یک چهارچوب بهطور کلی غیرقابل تغییر است در حالی که پیوستهای پیادهسازی شده توسط کاربر میتواند باعث توسعه آن شود، اما کد آن تغییر نمیکند.