impact to existing system functions. • is a design principle where the implementation takes future growth into consideration. • extensions can be through the addition of new functionality or through modification of existing functionality Extensibility
program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality.