Compatibility of software is defined as minimum hardware resources required to perform its functions. There are many other software qualities. Some of them will not be important to a specific software system, thus no activities will be performed to assess or improve them. Maximizing some qualities may cause others to be decreased. For example, increasing the compatibility of a piece of software may require writing parts of it in assembly language. This will decrease the transportability and maintainability of the software.