Los requisitos no funcionales son especificaciones que indican características del software que no están relacionadas directamente con una función particular del mismo. Los requisitos no funcionales incluyen el rendimiento, la fiabilidad, la seguridad, el tamaño y el costo del proyecto. Por otro lado, los requisitos funcionales son especificaciones que indican las funciones que el software debe realizar. Los requisitos funcionales deben ser lo suficientemente detallados como para permitir que el desarrollador del software pueda entender lo que se necesita y, a su vez, lo suficientemente abstractos como para permitir que el software se adapte a los cambios en el entorno.
Rendimiento: el rendimiento es un requisito no funcional que se refiere a la capacidad del software para realizar las tareas asignadas de manera eficiente y efectiva. El rendimiento tiene un impacto directo en la usabilidad del software, ya que un software de bajo rendimiento puede ser muy frustrante para el usuario.
Fiabilidad: la fiabilidad es un requisito no funcional que se refiere a la capacidad del software para realizar las tareas asignadas de manera consistente y precisa. Un software fiable es esencial para cualquier aplicación crítica, como un sistema de control de aviones.
Seguridad: la seguridad es un requisito no funcional que se refiere a la capacidad del software para proteger los datos y la información de los usuarios de forma segura. La seguridad es especialmente importante en las aplicaciones que manejan datos sensibles, como los sistemas bancarios.
Tamaño: el tamaño es un requisito no funcional que se refiere a la cantidad de espacio que ocupa el software en el disco duro o en la memoria. El tamaño del software es un factor importante a considerar en la fase de diseño, ya que un software muy grande puede ser difícil de almacenar y transportar.
Costo: el costo es un requisito no funcional que se refiere al precio del software y a los costos de mantenimiento. El costo es un factor importante a considerar en la fase de diseño, ya que un software muy costoso puede no ser rentable para el usuario.