Download Documento de Requisitos
Document related concepts
Transcript
Documento de Requisitos del Proyecto “Reconocimiento De Rostros Para Acceso A Sesión De Computador” Fecha 29-04-2011 Versión versión 0.1 Integrantes del grupo: Benjamín Ginouvès Franco Luca Carlos Quiroz Herbyn Toledo Documento de Requisitos de Nombre del Sistema Página i Prefacio Alcance del documento Documentos relacionados Este es el Documento de Requisitos del Proyecto de Proceso Digital de Imágenes llamado “RECONOCIMIENTO DE ROSTROS PARA ACCESO A SESIÓN DE COMPUTADOR”. La idea general de este sistema es lograr el acceso a un ordenador o sistema operativo mediante autentificación biométrica. El Documento de Requisitos es la base de todo el desarrollo futuro del Proyecto “RECONOCIMIENTO DE ROSTROS PARA ACCESO A SESIÓN DE COMPUTADOR”. Describe los siguientes aspectos del sistema: propósito, contexto, requisitos funcionales, requisitos de pruebas, requisitos de calidad, requisitos de ambiente, arquitectura del sistema, requisitos del desarrollo, requisitos de postdesarrollo, y riesgos del proyecto. Documento de Inicio de Proyecto, proyecto “RECONOCIMIENTO DE ROSTROS PARA ACCESO A SESIÓN DE COMPUTADOR”, versión 0.1, 28-04-2011. Autor Benjamín Ginouvès, Franco Luca, Carlos Quiroz, Herbyn Toledo Lectores Este documento está dirigido principalmente a los desarrolladores del proyecto, pero es de interés de todos los interesados en el mismo. Historia del Documento Versión Fecha Explicación del cambio Autor 0.1 29-04-02011 Primer borrador Benjamín Ginouvès, Franco Luca, Carlos Quiroz, Herbyn Toledo Documento de Requisitos de Nombre del Sistema Página ii Índice de Materias Prefacio ....................................................................................................................................................... ii Historia del Documento ............................................................................................................................. ii Lista de Figuras ......................................................................................................................................... iv Lista de Tablas .......................................................................................................................................... iv 1 Introducción ............................................................................................................................................. 1 1.1 Propósito ................................................................................................................................................. 1 1.2 Alcance ................................................................................................................................................... 1 1.3 Contexto .................................................................................................................................................. 1 1.4 Estándares ............................................................................................................................................... 1 1.5 Referencias.............................................................................................................................................. 1 1.6 Documentación ....................................................................................................................................... 1 1.6.1 Documentos Existentes ........................................................................................................................ 2 1.6.2 Documentos a Desarrollar .................................................................................................................... 2 1.6.3 Documentos a Modificar...................................................................................................................... 2 2 Requisitos del Sistema ............................................................................................................................. 3 2.1 Requisitos Funcionales ........................................................................................................................... 3 2.2 Requisitos de Interfaces .......................................................................................................................... 3 2.3 Manejo de Excepciones .......................................................................................................................... 4 2.4 Requisitos de Prueba ............................................................................................................................... 4 2.5 Matriz de Requisitos Funcionales y de Pruebas...................................................................................... 4 3 Requisitos de Calidad .............................................................................................................................. 6 3.1 Calidad de la Funcionalidad.................................................................................................................... 6 3.1.1 Calidad de la Funcionalidad 1.............................................................................................................. 6 3.2 Confiabilidad........................................................................................................................................... 7 3.2.1 Confiabilidad 1..................................................................................................................................... 7 3.3 Usabilidad ............................................................................................................................................... 7 3.3.1 Usabilidad 1 ......................................................................................................................................... 7 3.4 Eficiencia ................................................................................................................................................ 7 3.4.1 Eficiencia 1 .......................................................................................................................................... 7 3.5 Mantenibilidad ........................................................................................................................................ 8 3.5.1 Mantenibilidad 1 .................................................................................................................................. 8 3.6 Portabilidad ............................................................................................................................................. 8 3.6.1 Portabilidad 1 ....................................................................................................................................... 8 3.7 Otros Requisitos de Calidad.................................................................................................................... 8 3.7.1 Otros 1.................................................................................................................................................. 8 4 Requisitos de Ambiente ......................................................................................................................... 10 4.1 Requisitos del Ambiente de Desarrollo ................................................................................................ 10 Documento de Requisitos de Nombre del Sistema Página iii 4.1.1 Hardware de Desarrollo ..................................................................................................................... 10 4.1.2 Software de Desarrollo ...................................................................................................................... 10 4.2 Requisitos del Ambiente Objetivo ........................................................................................................ 10 4.2.1 Hardware Objetivo ............................................................................................................................. 10 4.2.2 Software Objetivo .............................................................................................................................. 10 4.3 Requisitos del Ambiente de Pruebas ..................................................................................................... 10 4.3.1 Hardware de Pruebas ......................................................................................................................... 10 4.3.2 Software de Pruebas ........................................................................................................................... 10 4.4 Hardware y Software Entregado por el Cliente .................................................................................... 10 5 Arquitectura del Sistema ....................................................................................................................... 11 5.1 Diagrama de Arquitectura ..................................................................................................................... 11 5.2 Descripción de Componentes................................................................................................................ 11 5.2.1 Componente 1 (Abreviatura) ............................................................................................................. 11 5.3 Matriz de Requisitos Funcionales y Componentes ............................................................................... 12 6 Requisitos de Desarrollo y Post-Desarrollo ......................................................................................... 13 6.1 Normas de Desarrollo ........................................................................................................................... 13 6.2 Requisitos de Comunicación................................................................................................................. 13 6.3 Requisitos de Medios de Entrega .......................................................................................................... 13 6.4 Condiciones de Entrega ........................................................................................................................ 13 6.5 Requisitos de Entrenamiento y Transferencia Tecnológica .................................................................. 13 7 Gestión de Riesgos.................................................................................................................................. 14 7.1 Supuestos .............................................................................................................................................. 14 7.2 Dependencias ........................................................................................................................................ 14 7.3 Restricciones ......................................................................................................................................... 14 7.4 Riesgos .................................................................................................................................................. 14 7.4.1 Riesgo 1 ............................................................................................................................................. 14 7.4.2 Riesgo 2 ............................................................................................................................................. 14 Definiciones............................................................................................................................................... 15 Lista de Figuras Figura 1: Diagrama de arquitectura del sistema ................................................................................... 11 Lista de Tablas Documento de Requisitos de Nombre del Sistema Página 4 Tabla 1: Documentación del proyecto ....................................................................................................... 2 Tabla 2: Eventos externos .......................................................................................................................... 3 Tabla 3: Respuestas del sistema................................................................................................................. 3 Tabla 4: Excepciones .................................................................................................................................. 4 Tabla 5: Matriz de requisitos funcionales y de pruebas ......................................................................... 4 Tabla 6: Matriz de requisitos funcionales y componentes ................................................................... 12 Documento de Requisitos de Nombre del Sistema Página 5 1 Introducción En esta introducción se describe brevemente el contexto, objetivos y alcance del proyecto a desarrollar, así como la documentación relativa al mismo. Esta información está basada en el Documento de Inicio de Proyecto.] 1.1 Propósito El sistema es un programa capacitado para reconocer a una persona al detectarla analizando su rostro, con lo cual se consultará a una base de datos para comparar, para así acceder a una sesión si es que la persona detectada ha sido reconocida satisfactoriamente. Por lo cual el proyecto a desarrollar es el Acceso a un ordenador mediante el Reconocimiento de Rostro, aplicando en cierta parte lo que es el Proceso Digital de Imágenes, para esto se han planteado una serie de objetivos a cumplir. El objetivo general del proyecto es lograr el acceso a un ordenador mediante autentificación biométrica, pero este objetivo se divide a la vez cronológicamente en objetivos específicos, empezando por la detección de rostro para así ir avanzando y cumpliendo las demás metas. 1.2 Alcance El alcance del proyecto a desarrollar se orienta a lo que es la detección de un rostro, el reconocimiento de personas por sus rostros, acceso de sesión de computadores. 1.3 Contexto El software a desarrollar es elavorado en C++ y trabaja en OpenCV. Éste código ya está desarrollado para la detección de rostro y ojos (http://xromsystem.net/?p=843), y existen varias versiones y diferentes aplicaciones. Nosotros buscamos aplicar este código al inicio de sesión de un computador. Supuestamente, esta aplicación ya está disponible para Windows. (http://elgeek.com/luxand-blink-iniciar-sesion-en-windows-por-medio-del-reconocimientofacial). 1.4 Referencias Libros y Manuales: Learning OpenCV: Computer Vision with the OpenCV Library (Gary Bradski, Adrian Kaehler) http://www.sisoft.ucm.es/Manuales/C++.pdf ABSTRACCIÓN Y ESTRUCTURA DE DATOS EN C++ (Garrido Carrillo, Antonio; Fernández Valdivia, Joaquín) Páginas Web: http://xromsystem.net/?p=843 (Link que muestra codificación para detectar rostros y ojos) http://elgeek.com/luxand-blink-iniciar-sesion-en-windows-por-medio-delreconocimiento-facial http://www.dacostabalboa.com/es/iniciar-sesion-con-reconocimiento-facial-enlinux/10909 Documento de Requisitos de Nombre del Sistema Página 1 2 Requisitos del Sistema 2.1 Requisitos Funcionales RF1 El sistema debe ser capaz de ejecutar el software en el momento en que el computador vaya a solicitar la clave para ingresar a alguna sesión del equipo. RF2 El sistema debe poder mediante una webcam, detectar un rostro, compararlo con la base de datos donde estarán almacenadas las claves de las distintas sesiones del computador, y lograr ver si coincide con alguno para así poder dar acceso al computador. RF3 El sistema debe poder interpretar el reconocimiento facial como una clave de usuario de alguna sesión existente. 2.2 Requisitos de Interfaces Evento externo 1: El sistema debe responder al estimulo entregado por el usuario al momento de querer ingresar a su sesión en el computador. Evento externo 2: El sistema debe obtener del usuario un argumento de entrada el cual será su rostro, a través de la captura mediante la webcam y utilizarlo como clave de la sesión correspondiente. La Tabla 1 muestra la lista de eventos externos a los que el sistema responde. La primera columna es el nombre del evento; la segunda es la descripción del mismo. El “iniciador” es la componente externa al sistema que inicia el evento. Los parámetros son los datos asociados al evento. La respuesta es el nombre de una respuesta, cuya descripción está en la Tabla 2. Tabla 1: Eventos externos Evento Descripción Iniciador Parámetros Respuesta Evento externo 1 El sistema debe capaz de detectar cuando el usuario quiere ingresar a su sesión. El usuario al momento de iniciar el computador. Encendido del computador o al momento de salir del estado de hibernación del pc. Iniciar el software. Evento externo 2 El software debe poder detectar un rostro humano, e interpretarlo como un password de sesión en el computador. El software será el iniciador, debe poder detectar al usuario y obtener los parámetros necesarios para su correcta ejecución. Los parámetros usados serán rasgos físicos del usuario, los cuales se verán más adelante cuales serán tomados en cuenta. El software podrá emitir una respuesta positiva si lo reconoce dejando abrir la sesión o negativa obstruyendo el ingreso del usuario. Documento de Requisitos de Nombre del Sistema Página 2 La Tabla 2 muestra las respuestas del sistema frente a eventos externos. Tabla 2: Respuestas del sistema Respuesta Descripción Parámetros Respuesta al evento 1 Puede ser la detección de La respuesta será la ejecución del movimiento en el ambiente o software. simplemente detectar un evento como movimiento del mouse. Respuesta al evento 2 El software deberá interactuar con el sistema operativo al momento de Usar el rostro como password. detectar e identificar al rostro para así poder dar acceso a la sesión. 2.3 Manejo de Excepciones Excepción 1: La principal excepción que vamos a tener en cuenta es que en caso de que el software falle y no pueda reconocer el rostro, igual sea posible tener acceso a la sesión mediante el ingreso de una clave alfanumérica. Excepción 2: en caso de que el Software sufra algún fallo inesperado de ejecución, se podría emplear un contador para que en caso de que el software no entregue ninguna respuesta en cierta cantidad de tiempo, poder reiniciarlo o enviar algún aviso al usuario de que ingrese con su clave alfanumérica. Excepción 3: se tratara de buscar alguna solución, al evento de que alguien quiera ingresar a la sesión de algún usuario mostrando una foto de él, para esto podríamos tratar de detectar movimiento pero dentro del rostro. Excepción 4: Hay que tener cuidado con la iluminación del ambiente, la que puede afectar considerablemente las respuestas del software, para esto se tratara de estandarizar los factores del ambiente como por ejemplo tratar de usar fondos de un solo color y luz artificial siempre constante. La siguiente tabla muestra las condiciones de excepción que se pueden dar en el sistema, en relación con eventos externos y internos. Tabla 3: Excepciones Excepción Descripción Eventos o situaciones en que ocurre 1 En caso de que el software no Puede ocurrir que la luz no deje detectar el pueda entregar ninguna rostro. respuesta. 2 Fallos del software que no se Puede colgarse el programa por falta de pueden manejar. memoria o por motivos de la ejecución. 3 Seguridad del sistema, Ocurre cuando se quiera violar la seguridad diferenciar a la persona de del software. una imagen es decir una foto. Documento de Requisitos de Nombre del Sistema Página 3 Excepción 4 Descripción Eventos o situaciones en que ocurre Diferencias en las Puede que la luz afecte al reconocimiento de intensidades de la luz al rostro. momento de llenar la base de datos y al momento de tratar de ingresar a una sesión. 2.4 Requisitos de Prueba Los requisitos de prueba son clases de pruebas que se harán sobre el sistema para determinar que se cumplen los requisitos funcionales. Un requisito de prueba dará lugar a muchos casos de prueba. RP1 - Probar que el software se ejecute cuando el computador se prenda. Probar que el software al salir del estado de hibernación, se ejecute también para volver a ingresar a la sesión. Probar que el software permite ingresar en cualquier momento con una clave alfanumérica. Probar que el software pueble la base de datos al momento de configurar una sesión. Probar que el software no sufra problemas de memoria. RP2 - - Probar que el software realiza la comparación en tiempo real del usuario con la base de datos. Probar que la clave que usara el usuario, es decir su rostro, haya quedado guardado con niveles óptimos de luz, para no tener inconvenientes a la hora de ingresar a la sesión. Probar como responde el software a distintas iluminaciones del ambiente. Probar la seguridad del software, tratando de vulnerarlo para poder prevenir riesgos de seguridad en un futuro RP3 - Probar que el rostro es usado como clave de ingreso a una sesión. Probar con distintos rostros para ver la fiabilidad del software. Probar con distintas iluminaciones. Probar la tolerancia de cambios de expresiones faciales del usuario. Probar con fotos en vez de con el usuario real para ver si es posible engañar al software. 2.5 Matriz de Requisitos Funcionales y de Pruebas La siguiente matriz muestra qué clases se prueba verificarán qué requisitos funcionales. Una línea vacía en la matriz indica un requisito funcional no probado. En ese caso es probable que falte un requisito de prueba; en caso contrario sobraría el requisito funcional. Una columna vacía indica una prueba que no es útil para estos requisitos funcionales. En ese caso es probable que falte un requisito funcional “obvio”, que debe hacerse explícito; en caso contrario sobraría el requisito de prueba. Documento de Requisitos de Nombre del Sistema Página 4 [La matriz de abajo debe re-formatearse de modo que tenga columnas para todos los requisitos de prueba y filas para todos los requisitos funcionales. Una vez re-formateada la matriz, ponga una X el una celda para indicar que el requisito de prueba de la columna respectiva ayuda a verificar el cumplimiento del requisito funcional de la fila respectiva.] Tabla 4: Matriz de requisitos funcionales y de pruebas RP1 RF1 Capaz de ejecutar el software en el momento en que el computador vaya a solicitar la clave. RF2 Mediante una webcam, detectar un rostro y compararlo. RF3 Interpretar el reconocimiento facial como una clave. Documento de Requisitos de Nombre del Sistema RP2 RP3 X X X Página 5 3 Requisitos de Ambiente Esta sección describe el hardware y software relevante para el sistema “RECONOCIMIENTO DE ROSTROS PARA ACCESO A SESIÓN DE COMPUTADOR”. 3.1 Requisitos del Ambiente de Desarrollo 3.1.1 Hardware de Desarrollo Para el desarrollo de este proyecto se utilizará principalmente un computador, en el cual deberá tener incorporada una cámara web, o en el caso de que no la tenga, conectar una webcam por puerto USB al ordenador. Este PC debe contar con las herramientas necesarias para ejecutar lo que necesite el software, éstas serían: un procesador apto para el uso que se le va a dar en el proyecto, una buena memoria RAM, un disco duro con capacidad suficiente para guardar cierta información obtenida por el sistema y puertos USB para la conexión de alguna cámara en caso de no tenerla incorporada, para así simplemente con estos requisitos, llevar a cabo lo que es el desarrollo del proyecto. 3.1.2 Software de Desarrollo Para el desarrollo del proyecto se utilizará un software de detección de rostro en OpenCV. OpenCV es una biblioteca libre de visión artificial originalmente desarrollada por Intel. Se ha utilizado en infinidad de aplicaciones. Desde sistemas de seguridad con detección de movimiento, hasta aplicativos de control de procesos donde se requiere reconocimiento de objetos. Además es multiplataforma, existiendo versiones para GNU/Linux, Mac OS X y Windows. Contiene más de 500 funciones que abarcan una gran gama de áreas en el proceso de visión, como reconocimiento de objetos (reconocimiento facial), calibración de cámaras, visión estéreo y visión robótica. Su programación es en código C y C++ optimizados. Dentro de los sistemas operativos disponibles, se trabajará en un ambiente Linux y la programación necesaria para el desarrollo del proyecto estará orientada a lo que es C y C++. 3.2 Requisitos del Ambiente de Pruebas El ambiente de pruebas incluye todos los elementos de software y hardware identificados en la sección 3.1 además del hardware y software adicional aquí identificado. 3.2.1 Hardware de Pruebas El hardware que se utilizará para pruebas del sistema será un computador en específico, para llevar a cabo el desarrollo solamente en un ordenador, y así después del buen funcionamiento del sistema, probarlo en otros. Se harán pruebas con la cámara integrada del computador, o en caso de no tenerla, con alguna conectada por puerto USB. Uno de los que podrían ser hardware adicional, sería una cámara filmadora, para obtener alguna grabación, además de fotografías, o también a través de la cámara web capturar vídeo, además de fotografías. Documento de Requisitos de Nombre del Sistema Página 6 3.2.2 Software de Pruebas Los software de pruebas serían: - En primera instancia el sistema operativo Linux, y como futuras aplicaciones en Windows o en Mac. - Un software de detección de rostro en OpenCV, capacitado para programar algoritmos necesarios para la detección de objetos. - Lenguajes de Programación como C y C++, probando diferentes algoritmos que implementen lo necesario para el desarrollo del proyecto. También se espera que tenga futuras aplicaciones en otros lenguajes como JAVA. - Entre softwares adicionales, se buscaría probar en otros programas con capacidad de detectar o reconocer objetos. Probar también con distintos lenguajes de programación, o también con distintos sistemas operativos, pero todo esto viéndolo mas que nada como futuras aplicaciones. Documento de Requisitos de Nombre del Sistema Página 7 4 Arquitectura del Sistema 4.1 Diagrama de Flujo de Datos La siguiente figura muestra los módulos del sistema y los principales flujos de información. Los módulos aparecen indicados con su nombre corto o abreviatura. Figura 1: Diagrama de flujo de datos del sistema 4.2 Descripción de Módulos Las siguientes son las componentes descritas en la Figura 1. Por cada componente se entrega un breve párrafo descriptivo de su función y sus interacciones con otras componentes y con el medio. Módulo Rostro. Este módulo será el encargado de la importación de la imagen desde la cámara web que mediante un algoritmo filtrará para dejar en óptimo estado la imagen para una detección posterior. Módulo Detección. Recibida la imagen desde el módulo de rostro, será la encargada de los cálculos necesarios para obtener una identificación única de la imagen, la que será entregada al programa principal. Módulo XML/SQL. Este módulo se encargará de configurar el acceso a la base de datos y/o archivo donde se guardarán las imágenes autorizadas para el acceso. Módulo BD. Módulo encargado de la manipulación de los datos almacenados en la base de datos y/o archivo con las imágenes codificadas. Módulo Configuración. Documento de Requisitos de Nombre del Sistema Página 8 Módulo que solicitará el ingreso de las imágenes para establecer quién tendrá autorización de acceso al sistema, también se encargará de entregar la tolerancia de la detección, así como también de todos los parámetros de configuración de acceso a las sesiones del sistema. Tendrá también un GUI gráfico para el ingreso de los datos, así como de la presentación de las imágenes configuradas con acceso. Módulo Inicio Sesión. Módulo que interactuará con el sistema de inicio de las sesiones del sistema, obteniendo quien es de la detección y las credenciales de la configuración. Módulo Programa Principal. Módulo principal que se encargará de la coordinación total del programa, que en caso de no contar con una configuración definida (indicada del módulo de configuración) iniciará el módulo de configuración automáticamente, en caso contrario pasará a modo silencios para la detección de las imágenes recibidas del módulo Detección. 4.2.1 Módulo captura de la imagen con el rostro (Rostro) Este módulo capturará la imagen desde una fuente de cámara web u otra que se disponga, con el objetivo de aplicar una serie de filtros adecuados para que el módulo de detección pueda procesarla correctamente. La señal de iniciar la captura de la imagen se iniciará desde el módulo de Detección., y la imagen de salida será enviada al módulo de detección del rostro (Detección). 4.2.2 Módulo de detección del rostro en la imagen (Detección) Este módulo iniciará el proceso de la captura de la imagen (módulo Rostro), el cual recibirá la imagen resultante y calculará, por medio de un algoritmo, un valor identificatorio del rostro en la imagen. La salida de éste módulo será entregado al programa principal. Los parámetros de cómo detectar o cual algoritmo utilizar, incluyendo la tolerancia de la detección, se obtendrán del módulo de configuración. 4.2.3 Módulo de acceso a archivo y/o base de datos SQL (XML/SQL) Este módulo iniciará el acceso al archivo o base de datos SQL con el propósito de almacenar, cargar y borrar la información que se solicita. Este módulo recibirá y entregará información desde el módulo de acceso a la base de datos o archivo. Este módulo podrá ser adaptado de alguno que ya esté desarrollado para estos efectos. 4.2.4 Módulo de acceso a la base de datos y manejo de archivos (BD) Este módulo iniciará el control del acceso a archivos o bases de datos genéricos, permitiendo una adaptación de módulos ya desarrollados con los requerimientos de nuestro programa. La solicitud de lectura de información se realizará desde el programa principal y la salida será entregada al módulo solicitante.. Documento de Requisitos de Nombre del Sistema Página 9 4.2.5 Módulo de configuración de parámetros de detección y de configuración de sesión (Configuración) Este módulo se encargará de solicitar la configuración inicial del programa, las imágenes de rostros detectadas que se utilizarán como base en la identificación, la tolerancia de la detección, la ubicación del archivo de configuración y/o datos de acceso de la base de datos para el almacenaje de la información, así como los parámetros de inicio de sesión para cada persona identificada. Dispondrá de un GUI (Graphical User Interface) para solicitar los datos. Y entregará datos de configuración a los módulos que requieran guardar configuración de parámetros críticos para el funcionamiento del programa y que sean configurables por el usuario. 4.2.6 Módulo de configuración de parámetros de detección y de configuración de sesión (Configuración) Este módulo se encargará de solicitar la configuración inicial del programa, las imágenes de rostros detectadas que se utilizarán como base en la identificación, la tolerancia de la detección, la ubicación del archivo de configuración y/o datos de acceso de la base de datos para el almacenaje de la información, así como los parámetros de inicio de sesión para cada persona identificada. Dispondrá de un GUI (Graphical User Interface) para solicitar los datos. Y entregará datos de configuración a los módulos que requieran guardar configuración de parámetros críticos para el funcionamiento del programa y que sean configurables por el usuario. También estará encargada de la ubicación del programa como un programa residente que deberá ser iniciado al iniciar el sistema operativo. 4.2.7 Módulo encargado del inicio de sesión del sistema (Inicio Sesión) Este módulo se encargará de la interacción con el sistema de inicio de sesión de Linux, dependiendo de los parámetros que el programa principal le entregue. 4.2.8 Programa principal Este bloque será el encargado del control total del programa, el cual funcionará de forma silenciosa si no se requiere la intervención del usuario, para este caso iniciará el módulo de configuración y/o de detección adecuadamente. De la misma forma ocurrirá si se deben almacenar las configuraciones del programa, llamando al módulo de almacenaje (BD) 4.3 Matriz de Requisitos Funcionales y Componentes La siguiente matriz muestra qué módulos implementan qué requisitos funcionales. Una línea vacía en la matriz indica un requisito funcional no implementado. En ese caso es probable que falte un módulo. Una columna vacía indica un módulo no es útil para estos requisitos funcionales. En ese caso es posible que falte un requisito funcional. Documento de Requisitos de Nombre del Sistema Página 10 Tabla 5: Matriz de requisitos funcionales y componentes C1 C2 C3 C4 C5 C6 C7 C8 X X X RF4 Capaz de ejecutar el software en el momento en que el computador vaya a solicitar la clave. RF5 Mediante una webcam, detectar un rostro y compararlo. X X X X X X X X X RF6 Interpretar el reconocimiento facial como una clave. Documento de Requisitos de Nombre del Sistema X X Página 11 5 Gestión de Riesgos 5.1 Supuestos 1. El usuario dispondría de un Sistema Operativo Linux. 2. El usuario dispondría de un computador con cámara web. 5.2 Dependencias 1. Dependencia de las condiciones del entorno (iluminación, fondo, colores). 5.3 Restricciones 1. Limitaciones de la cámara web a utilizar. 2. Limitaciones del sistema operativo (Linux). 3. Limitaciones que pueda generar el uso de OpenCV. 5.4 Riesgos [Los riesgos son hechos que pueden o no ocurrir, y que de ocurrir generan problemas al proyecto. Algunos riesgos provienen de supuestos, dependencias y restricciones, pero otros provienen de otras partes. El indicar un riesgo nos compromete a evitar que se transforme en problema; en el caso de los riesgos mayores, debemos tener de antemano un plan de contingencia.] A continuación se indican los principales riesgos del proyecto. 5.4.1 Riesgo 1: Fotografía del usuario Existe el riesgo de que el software sea engañado a través de una fotografía del usuario y se pueda acceder a su cuenta por medio de ésta. En este caso el software a desarrollar debería tener un sistema que reconozca movimientos y gestos faciales, o bien, reconocer diferentes ángulos del rostro para poder compararla con la base de datos. 5.4.2 Riesgo 2: Cambio de entorno La sensibilidad de la cámara ante cambios de iluminación y fondo podrían afectar la detección. Para esto se realizarán diferentes pruebas de sensibilidad, cambiando la iluminación, el fondo y los colores, de tal forma de ajustar los márgenes en los que se pretende que el sistema funcione de manera efectiva. Documento de Requisitos de Nombre del Sistema Página 12 5.4.3 Riesgo 3: Tiempo de reconocimiento El tiempo de reconocimiento podría ser mayor de lo que se necesita para iniciar la sesión. Esto puede deberse a ineficiencias en el código que causan algún retardo, lo que pretende corregirse realizando pruebas eficiencia en la ejecución del programa y corrigiendo dichas ineficiencias. Documento de Requisitos de Nombre del Sistema Página 13