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:
- 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
). - La biblioteca determina la identidad del usuario mediante el UID del proceso.
- Se realiza la operación solicitada y emite un mensaje de confirmación o fallo.
- 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
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:
- La aplicación solicita el registro de un pin para su uso a la biblioteca. Comienza el caso de uso RF-1.
- 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.
- 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:
- La aplicación solicita la liberación del pin al comando
gpio-admin
. Comienza el caso de uso RF-1 - La aplicación es notificado del resultado de la operación.
- La aplicación solicita la liberación del pin al comando
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:
- La aplicación solicita modificar la dirección del pin al comando
gpio-admin
. Comienza el caso de uso RF-1.
- La aplicación solicita modificar la dirección del pin al comando
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:
- La aplicación solicita modificar el valor del pin al comando
gpio-admin
. Comienza el caso de uso RF-1.
- La aplicación solicita modificar el valor del pin al comando
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:
- La aplicación solicita el valor del pin al comando
gpio-admin
. Comienza el caso de uso RF-1. - Se retorna el valor del pin a la aplicación.
- La aplicación solicita el valor del pin al comando
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:
- La biblioteca intenta identificar el error que se ha dado.
- 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:
- El usuario ejecuta la herramienta, utilizando los parámetros de la línea de comandos para indicar la acción a realizar.
- 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