Requisitos no funcionales

NFR1 Tornado

  • Versión: 1
  • Autores: Diego Martín
  • Fuentes: Análisis preliminar
  • Descripción: El backend web deberá implementarse sobre el framework Tornado con el objetivo de optimizar el rendimiento del sistema. Todas las aplicaciones que gestionen programación de operaciones utilizarán el bucle de eventos de Tornado por razones de sencillez y eficacia.
  • Importancia: Alta
  • Urgencia: Alta
  • Estado: Completo
  • Estabilidad: Estable

NFR2 Abstracción de la base de datos

  • Versión: 1
  • Autores: Diego Martín
  • Fuentes: Análisis preliminar
  • Objetivos asociados: OBJ-1
  • Requisitos asociados: RF-1, OBJ-2
  • Descripción: Con el objetivo de garantizar la compatibilidad con diferentes modelos de bases de datos se utilizará el Object-relational Mapping (ORM) del framework Django para conseguir este nivel de abstracción.
  • Importancia: Alta
  • Urgencia: Alta
  • Estado: Completo
  • Estabilidad: Estable

NFR3 HTTPS con doble validación

  • Versión: 1
  • Autores: Diego Martín
  • Fuentes: Análisis preliminar
  • Objetivos asociados: OBJ-1, OBJ-2, OBJ-3
  • Requisitos asociados: RF-1, RF-2, RF-6, RF-7, RF-8
  • Descripción: En toda comunicación segura ambos lados validarán la identidad del otro a través de los certificados HTTPS ofrecidos al establecer la conexión. De esta forma es posible recibir órdenes de control de forma segura.
  • Importancia: Alta
  • Urgencia: Alta
  • Estado: Completo
  • Estabilidad: Estable

NFR4 Compatibilidad con systemd e initd

  • Versión: 1
  • Autores: Diego Martín
  • Fuentes: Análisis preliminar
  • Descripción: Los diferentes daemons que este producto software incluye ofrece deben ser compatibles con los gestores de servicios systemd e init.d
  • Importancia: Media
  • Urgencia: Baja
  • Estado: Por realizar
  • Estabilidad: Estable

NFR5 Instalación a través de setuptools

  • Versión: 1
  • Autores: Diego Martín
  • Fuentes: Análisis preliminar
  • Requisitos asociados: NFR-4
  • Descripción: La instalación del software estará asistida por el estándar de facto para aplicaciones escritas en Python, setuptools.
  • Importancia: Baja
  • Urgencia: Baja
  • Estado: Por realizar
  • Estabilidad: Estable

NFR6 Registro

  • Versión: 1
  • Autores: Diego Martín
  • Fuentes: Análisis preliminar
  • Objetivos asociados: OBJ-1, OBJ-2
  • Requisitos asociados: IRQ-2
  • Descripción: Se deberá almacenar una serie de registros de las diferentes operaciones realizadas y programadas, así como una serie de ficheros que reflejen el comportamiento del sistema al realizar una operación.
  • Importancia: Media
  • Urgencia: Media
  • Estado: Completo
  • Estabilidad: Estable

NRF7 Validación de los datos de usuario

  • Versión: 1
  • Autores: Diego Martín
  • Fuentes: Análisis preliminar
  • Objetivos asociados: OBJ-1
  • Requisitos asociados: RF-1, RF-2, RF-3, RF-4
  • Descripción: Todo dato introducido por el usuario deberá ser sometido a procesos de “desinfección” (sanitization) con el objetivo de evitar ataques tales como Cross-Side Scripting (XSS) o inyección SQL.
  • Importancia: Alta
  • Urgencia: Media
  • Estado: Completo
  • Estabilidad: Estable
  • Comentarios: Al emplear el ORM de Django la mayoría de este tipo de ataques son filtrados de forma automática.