Los requisitos funcionales son una lista de características que debe cumplir el software. Se derivan de los objetivos del sistema y representan el "qué" del sistema. En contraste, los casos de uso representan el "cómo" el sistema debe cumplir con los requisitos funcionales. Esto significa que describen el comportamiento del sistema desde el punto de vista del usuario. En general, se recomienda usar una mezcla de requisitos funcionales y casos de uso para especificar un sistema.
Los requisitos funcionales se pueden agrupar en categorías de alto nivel, como seguridad, rendimiento, fiabilidad, etc. Se pueden escribir de una manera muy general o muy específica. En general, es mejor ser lo más específico posible, ya que facilita el diseño y la implementación del sistema. Los requisitos funcionales también se pueden agrupar en niveles de abstracción, desde requisitos muy concretos hasta requisitos muy abstractos.
Los casos de uso se pueden considerar como una forma específica de requisito funcional. Describen el comportamiento del sistema desde el punto de vista del usuario. Se pueden utilizar para especificar el comportamiento de un sistema en una situación dada. Los casos de uso se pueden agrupar en categorías de alto nivel, como seguridad, rendimiento, fiabilidad, etc. Se pueden escribir de una manera muy general o muy específica. En general, es mejor ser lo más específico posible, ya que facilita el diseño y la implementación del sistema.
Los requisitos funcionales y los casos de uso se pueden usar juntos para especificar un sistema. En general, se recomienda usar una mezcla de requisitos funcionales y casos de uso. Los requisitos funcionales se pueden utilizar para especificar el comportamiento del sistema de una manera más general. Los casos de uso se pueden utilizar para especificar el comportamiento del sistema de una manera más específica. De esta forma, se pueden cubrir todos los aspectos del sistema de una manera más completa.