In
software engineering,
extensibility (not to be confused with
forward compatibility) is a
system design principle where the implementation takes future growth into consideration. It is a systemic measure of the ability to extend a
system and the level of effort required to implement the extension. Extensions can be through the addition of new functionality or through modification of existing functionality. The central theme is to provide for change – typically enhancements – while minimizing impact to existing system functions.