Requisitos funcionales

RF-1: Comunicación con la biblioteca

  • Versión: 1

  • Autores: Requisito marcado por la implementación original

  • Fuentes: Implementación original

  • Objetivos asociados: OBJ-1, OBJ-3

  • Requisitos asociados: NFR-2

  • Descripción: Siguiendo el mismo modelo de trabajo de la implementación original, la realización de las diferentes operaciones se realizará mediante llamadas al comando gpio-admin.

  • Precondición

  • Secuencia normal:

    1. La implementación de la biblioteca solicita la realización de una tarea al comando, especificando los parámetros de la aplicación a través de los parámetros de entrada propios de una llamada al sistema (recogidos en el array argv).
    2. La biblioteca determina la identidad del usuario mediante el UID del proceso.
    3. Se realiza la operación solicitada y emite un mensaje de confirmación o fallo.
  • Poscondición: La operación es realizada.

  • Excepciones:

    • En el caso de que la biblioteca retorne un error, comienza el caso de uso RF-7
  • Rendimiento: Alto

  • Frecuencia: Alta

  • Importancia: Media

  • Urgencia: Alta

  • Estado: Completo

  • Estabilidad: Estable

RF-2: “Registro” de un pin

  • Versión: 1

  • Autores: Requisito marcado por la implementación original

  • Fuentes: Implementación original

  • Objetivos asociados: OBJ-3

  • Requisitos asociados: IRQ-1

  • Descripción: La biblioteca considera que un pin debe ser “propiedad” de un usuario antes de poder utilizar el mismo, y a petición de un usuario verificará que el pin solicitado está libre u ocupado, reservándolo en el primer caso.

  • Precondición

  • Secuencia normal:

    1. La aplicación solicita el registro de un pin para su uso a la biblioteca. Comienza el caso de uso RF-1.
    2. Se analiza el código de retorno de la llamada al sistema. En caso de que el pin se encuentre reservado, el caso de uso finaliza y el usuario es notificado. En caso de que el pin no se encuentre reservado, la biblioteca indica que el usuario solicitante es el nuevo propietario.
    3. La biblioteca notifica al usuario de que la reserva ha sido satisfactoria.
  • Poscondición: El usuario obtiene acceso al pin.

  • Excepciones: No se plantean excepciones

  • Rendimiento: Alto

  • Frecuencia: Generalmente un usuario realizará una reserva en cada ejecución.

  • Importancia: Alta

  • Urgencia: Alta

  • Estado: Completo

  • Estabilidad: Estable

RF-3: “Liberación” de un pin

  • Versión: 1

  • Autores: Requisito marcado por la implementación original

  • Fuentes: Implementación original

  • Objetivos asociados: OBJ-1, OBJ-3

  • Requisitos asociados: IRQ-1

  • Descripción: De la misma forma que un pin es reservado debe ser liberado al finalizar la ejecución, de forma que posteriores usuarios puedan utilizar el mismo.

  • Precondición: El pin debe estar reservado.

  • Secuencia normal:

    1. La aplicación solicita la liberación del pin al comando gpio-admin. Comienza el caso de uso RF-1
    2. La aplicación es notificado del resultado de la operación.
  • Poscondición: El pin es liberado.

  • Excepciones: En caso de que se solicite la liberación de un pin no reservado, se notifica a la aplicación y el caso de uso finaliza.

  • Rendimiento: Alto

  • Frecuencia: Media

  • Importancia: Alta

  • Urgencia: Alta

  • Estado: Completo

  • Estabilidad: Estable

RF-4: Modificación de la “dirección” del pin

  • Versión: 1

  • Autores: Requisito marcado por la implementación original

  • Fuentes: Implementación original

  • Objetivos asociados: OBJ-1, OBJ-3

  • Requisitos asociados: IRQ-1

  • Descripción: La dirección del pin indica si se utilizará para recibir o enviar información. Todos los pines pueden operar en ambos modos.

  • Precondición: El pin debe estar reservado previamente.

  • Secuencia normal:

    1. La aplicación solicita modificar la dirección del pin al comando gpio-admin. Comienza el caso de uso RF-1.
  • Poscondición: La dirección del pin es modificada.

  • Excepciones: En caso de que se solicite la modificación de un pin no reservado, se notifica a la aplicación y el caso de uso finaliza.

  • Rendimiento

  • Frecuencia: Se estima que durante cada ejecución se modificará la dirección del pin únicamente durante la fase de inicialización del mismo.

  • Importancia: Alta

  • Urgencia: Alta

  • Estado: Completo

  • Estabilidad: Estable

RF-5: Modificación del valor de un pin

  • Versión: 1

  • Autores: Requisito marcado por la implementación original

  • Fuentes: Implementación original

  • Objetivos asociados: OBJ-1, OBJ-3

  • Requisitos asociados: IRQ-1

  • Descripción: En caso de que la dirección del pin sea de salida, el valor del pin podrá ser modificado (los valores de tensión admitidos con 0 y 5 voltios).

  • Precondición: El pin debe estar reservado previamente.

  • Secuencia normal:

    1. La aplicación solicita modificar el valor del pin al comando gpio-admin. Comienza el caso de uso RF-1.
  • Poscondición: El valor del pin es modificado.

  • Excepciones: En caso de que se solicite la modificación de un pin no reservado, se notifica a la aplicación y el caso de uso finaliza.

  • Rendimiento:

  • Frecuencia: El número de modificaciones que se realizarán en un programa se estima muy elevado, por lo que el rendimiento deberá ser alto.

  • Importancia: Alta

  • Urgencia: Alta

  • Estado: Completo

  • Estabilidad: Estable

RF-6: Lectura del valor de un pin

  • Versión: 1

  • Autores: Requisito marcado por la implementación original

  • Fuentes: Implementación original

  • Objetivos asociados: OBJ-1, OBJ-3

  • Requisitos asociados: IRQ-1

  • Descripción: En caso de que la dirección del pin sea de entrada, el valor (tensión) del pin podrá ser consultado (los valores de trabajo son 0 y 5 voltios).

  • Precondición: El pin debe estar reservado previamente.

  • Secuencia normal:

    1. La aplicación solicita el valor del pin al comando gpio-admin. Comienza el caso de uso RF-1.
    2. Se retorna el valor del pin a la aplicación.
  • Poscondición: La aplicación cuenta con el valor pin.

  • Excepciones: En caso de que se solicite la lectura de un pin no reservado, se notifica a la aplicación y el caso de uso finaliza.

  • Rendimiento:

  • Frecuencia: El número de consultas que se realizarán en un programa se estima muy elevado, por lo que el rendimiento deberá ser alto.

  • Importancia: Alta

  • Urgencia: Alta

  • Estado: No realizado

  • Estabilidad: Estable

RF-7: Gestión de error

  • Versión: 1

  • Autores: Diego Martín

  • Fuentes: Análisis preliminar

  • Objetivos asociados: OBJ-1, OBJ-3

  • Requisitos asociados: NFR-3

  • Descripción: En el caso de que la biblioteca o la herramienta gpio-admin retornen un código de error no identificado, comienza este caso de uso.

  • Precondición: Se debe dar un error en la biblioteca o en gpio-admin

  • Secuencia normal:

    1. La biblioteca intenta identificar el error que se ha dado.
    2. En caso de poder determinarlo envía un mensaje descriptivo a la aplicación. En caso contrario utilizará un mensaje genérico.
  • Poscondición: La aplicación es informada del error.

  • Excepciones: No se plantean excepciones

  • Rendimiento: Medio

  • Frecuencia: Baja

  • Importancia: Media

  • Urgencia: Media

  • Estado: Completo

  • Estabilidad: Estable

RF-8: Interacción directa con gpio-admin

  • Versión: 1

  • Autores: Diego Martín

  • Fuentes: Análisis preliminar

  • Objetivos asociados: OBJ-1

  • Requisitos asociados: IRQ-1

  • Descripción: La herramienta gpio-admin puede ser utilizada de forma directa por el usuario, de la misma forma que la biblioteca interactúa con ella.

  • Precondición: El usuario debe haber iniciado sesión en el sistema.

  • Secuencia normal:

    1. El usuario ejecuta la herramienta, utilizando los parámetros de la línea de comandos para indicar la acción a realizar.
    2. La biblioteca ejecuta la acción y muestra los resultados de éxito o error.
  • Poscondición: La operación a ejecutar se ha llevado a cabo.

  • Excepciones: En caos de que se dé algún tipo de error, la biblioteca mostrará un mensaje informativo.

  • Rendimiento: Alto

  • Frecuencia: Alta

  • Importancia: Alta

  • Urgencia: Media

  • Estado: Completo

  • Estabilidad: Estable

Vista de casos de uso