Software Adaptability is when software components with a well-defined, stable Application Programming Interface (API) can be exchanged using another components with minimal effort as long as the component adheres to the API. For example, SQL describes an API for a database component. As long as the software adheres to the standard SQL API, the DataBase Management System (DBMS) can be exchanged from Oracle to PostreSQL with no to minimal impact.1).