The software should be reusable. Reusability is the ability of software products to be reused, in whole or in part, for new applications. The software should be compatible. Compatibility is the ease with which software products may be combined with others. The software should be maintainable.
Maintenance is important for software products.
The software should be written and documented in such a way that changes can be made without undue costs. The software should be efficient. A software system should not wasteful use of system resources as memory and processor cycles. The software should be portable. Portability is the ease with which software products may be transferred to various hardware and software environments.