Software characteristics are classified into 6 major components:
Functionality: It refers to the degree of performance of the software against its intended purpose. It basically means are the required functions.
Reliability:A set of attribute that Bear on the capability of software to maintain its level of performances understated conditions for a stated period of time.
Efficiency: It refers to the ability of the software to use System Resources in the most Effective and Efficient Manner. The software should make effective use of storage space and executive commands as per desired timing requirement.
Usability: It refers to the extent to which the software can be used with ease. Or the amount of effort or time required to learn how to use the software should be less.
Maintainability: Refers to the ease with which the modifications can be made in a software system to extend its functionality, improvement, performance or correct errors.
Portability: A set of attributes that bears on the ability of the software to be transferred from one environment to another, without or minimum changes.
Robustness and integrity are also important:
Robustness: It refers to the degree to which the software can keep on functioning in spite of being provided with invalid data.
Integrity: It refers to the degree to which Unauthorized Access to the software data can be prevented.