# Minimum requirements to determine the best solution

- **Total lifecycle cost:** including initial cost, installation, training, and recurrent cost for maintenance and support.
- **Maintainability:** the ease of how (cost and effort) the software can be modified to  
    correct faults, improve performance or other attribute or adapt to a changed environment.
- **Interoperability:** ihis includes additional support required to integrate with existing systems. It also includes flexibility to accommodate changes over time and among multiple systems.
- **Portability:** usability of the same software in different environments. A computer environment can include hardware, operating systems, and interfaces with other software, users and programmers.
- **Scalability:** ability to support future growth and increased through put.
- **Availability and accessibility:** robust and redundant (fault tolerant) software to achieve required level of service without disruption from software failure.
- **Reusability:** ability to make repeated use of the software for additional requirements with minimum additional cost.
- **Functionality/performance:** ability to achieve operational requirements effectively and efficiently.
- **Security:** ability to protect system data and operational environment from loss or compromise.
- Additional criteria include: vendor viability, licensing restrictions, product market share, customer recommendations, frequency of upgrades, and potential obsolescence.