SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
Desarrollo de un Software de reconocimiento
de colores de objetos en Imágenes Digitales
orientado a personas con Daltonismo del tipo
Deuteranomalía
Autores: Cristhian Caicedo
Manuel Pérez
Resumen del problema
La mayor cantidad de información
que puede obtener un ser humano
proviene de la adquisición directa del
sentido de la visión, mediante la cual se
puede percibir el entorno físico que le
rodea y los elementos que lo componen.
Estos elementos poseen
interrelaciones que permiten realizar una
distinción o comparación entre uno o más
de estos; un ejemplo claro es la relación
presente entre un objeto y su color.
Los colores de los globos es el único atributo que
permite distinguir los unos de los otros
Resumen del problema
En la actualidad, existen una diversidad de
maneras de representar gráficamente este
entorno, dentro de las cuales se encuentran las
imágenes digitales, cuya presencia en la vida
cotidiana ha incrementado con el pasar de los
años.
No obstante, algunas personas no poseen
la capacidad de detectar una o más
características contenidas en imágenes, como
por ejemplo, los colores. Tal es el caso de
aquellas que padecen de daltonismo o ceguera
del color.
Esta discapacidad limita el reconocimiento
de colores y dificulta la distinción entre ellos,
reduciendo el espectro de colores que puede
percibir un individuo.
Comparación de la percepción cromática entre
varios tipos de daltonismo
Objetivo General
Desarrollar un software de
reconocimiento de colores de objetos
mediante el procesamiento de imágenes
digitales para mejorar la percepción
cromática a las personas que padecen de
deuteranomalía.
Resultado esperado:
Mejorar artificialmente su percepción
cromática respecto a las imágenes digitales,
para que así puedan interpretar
correctamente la información que contienen
éstas dentro de su contexto.
Técnica para el procesamiento de imágenes
digitales: Segmentación basada en el color
Objetivos Específicos
● Determinar el espectro del color y los colores
de confusión correspondientes a las personas
con deuteranomalía
● Establecer los requerimientos funcionales y no
funcionales del software
● Analizar los métodos y técnicas existentes en
la librería OpenCV orientados a detectar los
colores de un objeto en una imagen digital
● Desarrollar los algoritmos para la detección de
colores de un objeto en una imagen digital
● Verificar los algoritmos para la detección de
colores de objetos en una imagen digital.
Espectro del color que servirá como punto de
partida para la determinación de los colores
afectados en la deuteranomalía
Ciclo de vida del
Software
Modelo en cascada puro:
Es un ciclo de vida que admite iteraciones,
en donde después de cada etapa se realiza una o
varias revisiones para comprobar si se puede
pasar a la siguiente. Es un modelo rígido, poco
flexible, y con muchas restricciones.
Es un ciclo adecuado para los proyectos
en los que se dispone de todos los
requerimientos al comienzo, para el desarrollo
de un producto con funcionalidades conocidas o
para proyectos, que aun siendo muy complejos,
se entienden perfectamente desde el principio.
Diagrama del modelo en cascada puro con sus
etapas e interacciones entre sí
Ciclo de vida del
Software
Razones para usar el modelo en cascada puro:
● Trabaja de acuerdo a una planificación
sencilla
● No justifica un modelo de gestión más
elaborado
● Se dispone de la mayoría de los
requerimientos al inicio del proyecto
● No requiere un personal altamente
calificado para entregar un producto de
alta calidad
● Se dispone de bastante tiempo para la
corrección de cualquier error
A partir del ciclo de vida lineal nace el modelo en
cascada puro
Etapas del ciclo de vida de la Ingeniería de Requerimientos
I) Elicitación
II) Negociación
IV) Verificación y Validación
III) Especificación
● Tormenta de ideas
● Investigación documental
● Definición requerimientos
● Debate de preferencias
● Estudio de la factibilidad
● Modelado inicial del sistema
● Especificación de
requerimientos
● Prototipo
● Revisión de los requerimientos
● Medición de requerimientos
Metodología Agile Unified Process (AUP)
Esta metodología fue desarrollada en
septiembre de 2005 por Scott Ambler y es una
versión simplificada del Proceso Racional
Unificado (RUP). El proceso unificado ágil se
preocupa especialmente de la gestión de riesgos y
propone que aquellos elementos con alto riesgo
tengan prioridad en el proceso de desarrollo y
sean abordados en etapas tempranas del mismo.
En el proceso unificado ágil se establecen
cuatro fases que transcurren simultáneamente,
estas son: la iniciación, la elaboración, la
construcción y la transición.
Etapas de la metodología AUP
Fase I: La Iniciación
En esta fase se obtiene una comprensión
común entre el cliente y el equipo de
desarrollo, de este modo se podrá identificar el
alcance inicial del proyecto.
Como finalidad de esta fase, se tiene la
comprensión de la problemática y el
planteamiento inicial de una solución, gracias a
la generación de una gran variedad de puntos
de vistas del problema, producto de la
aplicación de las técnicas utilizadas en la
primera etapa del ciclo de vida de la ingeniería
de requerimientos: la elicitación de
requerimientos.
Representación gráfica de la obtención de una
idea generada en una tormenta de ideas
Fase I: La Iniciación
En esta etapa se pretende usar la técnica
de investigación documental, cuya finalidad es
comprender a profundidad los factores
relacionados al daltonismo del tipo llamado
deuteranomalía, para así determinar el
espectro del color y los colores de confusión
correspondientes a las personas que padecen
esta discapacidad.
Por otra parte, se usarán las técnicas de
tormenta de ideas y definición de
requerimientos, de tal manera que sea posible
establecer unos requerimientos funcionales y
no funcionales iniciales del software,
mediante el uso de un documento con un
formato especial para esto.
Posteriormente, estos requerimientos
irán tomando mejor forma en las siguientes
etapas del ciclo de vida de la ingeniería de
requerimientos.
Tormenta de ideas
➔ Elegir el objeto de estudio:
◆ Imágenes digitales
➔ Determinar el área de aplicación más apta y
adecuada a la problemática:
◆ Procesamiento de imágenes digitales
➔ Plantear un modelo completo hipotético del
sistema
◆ Definir requerimientos iniciales
➔ Investigar antecedentes
◆ Estudios científicos
◆ Estudios de muestreo
➔ Comprensión del dominio
◆ Conceptos y términos fundamentales
◆ Tipos y subtipos
➔ Recursos informáticos disponibles
◆ API's de interés
◆ Libros y manuales
Investigación documental
Etapa I: Elicitación
Definición de
requerimientos
Esta actividad tiene como
objetivo la redacción de un listado
de características que espera el
cliente que tenga el sistema. El
documento se redacta para
mejorar la comprensión entre el
Usuario y el Cliente.
Cabecera del documento de definición de
requerimientos
Lista de requerimientos funcionales establecidos en el documento de definición de requerimientos
Fase II: La Elaboración
Para esta etapa el enfoque es
profundizar en la comprensión de los
requisitos del sistema y validar la
arquitectura del software para realizar las
mejoras pertinentes.
Ya estando en la fase de negociación
del ciclo de vida de la ingeniería de
requerimientos, se realizaron debates acerca
de las herramientas y tecnologías disponibles
que sean más favorables para el desarrollo
del software.
Adicionalmente, como parte del
análisis y diseño del sistema, se realiza la
especificación de los requerimientos que
deberá tener el primer software funcional a
construir. Por lo que cabe mencionar que
esta fase de la metodología abarca más de
una etapa del ciclo de vida de la ingeniería de
requerimientos.
Debate sobre las tecnologías disponibles
Fase II: La Elaboración
Luego de obtener la definición
inicial de los requerimientos gracias a la
etapa de elicitación, se debe proceder
con las siguientes etapas del ciclo de vida
de la ingeniería de requerimientos.
Por tal motivo se debe realizar la
especificación de los requerimientos
definidos anteriormente y la validación
de los mismos para así poder establecer
una definición completa y consistente de
los requerimientos funcionales y no
funcionales del softwareOpenCV y GTK como librerías a utilizar en el desarrollo
del software
Debate de preferencias
➔ Establecer el alcance del sistema. Ej.:
◆ Entradas y salidas
◆ Plataformas a nivel de:
● Hardware
● Software
➔ Elegir el tipo de anomalía:
◆ Deuteranomalia
➔ Elegir las herramientas de software y
frameworks más favorables:
◆ OpenCV
◆ PyGTK
➔ Analizar el rendimiento apropiado
➔ Evaluar la disposición y proporción de
ciertos recursos:
◆ Tiempo
◆ Capital intelectual
➔ Evaluar la operatividad e interoperabilidad
➔ Facilidad de desarrollo del sistema
Estudio de la factibilidad
Etapa II: Negociación
Modelado inicial
del sistema
Diagrama de transición de estados
para describir el funcionamiento de
la interfaz gráfica de usuario del
sistema
Etapa III: Especificación
Diagrama de transición de estados
Especificación de
requerimientos
Una vez se hayan definidos los
requerimientos, se realiza una
especificación técnica de los
mismos, en la cual se menciona a
detalle las actividades que
determinarán si el requisito fue
cumplido o no.
Documento de especificación de requerimientos
Listado de especificación de requerimientos
Construir una interfaz gráfica para el manejo del
software
1. Desarrollar las ventanas de la interfaz
a. Una ventana principal
b. Una ventana para tomar la foto
c. Una ventana para la navegación entre
archivos
d. Una ventana para la imagen de respuesta
e. Una ventana que contenga una breve
documentación del software
2. Agregar los botones de la interfaz
a. Un botón que active la cámara para tomar
una foto
b. Un botón para seleccionar una imagen desde
el directorio local
c. Un botón para procesar la imagen
seleccionada
d. Un botón para mostrar la documentación
Tomar una foto con la cámara del Raspberry Pi y
guardarla en formato JPEG
1. Indicar la dirección del fichero destino
2. Definir el formato JPEG para la imagen
capturada
3. Capturar una imagen
4. Guardar la imagen en el fichero destino
Subir imagenes en formato JPEG o PNG ya guardadas
en el directorio local
1. Indicar la dirección del fichero destino
2. Comprobar que el formato de la imagen sea
JPEG o PNG
3. Cargar la imagen a procesar
Listado de especificación de requerimientos
Identificar la tonalidad y brillo de los colores de los
objetos localizados
1. Transformar el modelo RGB a un modelo
de color orientado a la percepción visual
2. Revisar los valores cromáticos de los
pixeles de acuerdo al modelo del color
elegido
3. Determinar a qué tonalidad corresponden
los valores y que brillo posee tal color
Localizar los objetos dentro de la imagen
1. Particionar la imagen en múltiples
segmentos que correspondan a los
objetos
2. Delimitar los bordes de cada objeto por
individual
Determinar si el color identificado forma parte de los
colores confundidos en la deuteranomalía
3. Comparar el color de los objetos con el
conjunto de colores confundidos
4. Arrojar un resultado que establezca los
objetos a etiquetar
Listado de especificación de requerimientos
Guardar la imagen devuelta como respuesta
1. Indicar la dirección del fichero destino
2. Guardar la imagen en el fichero destino
Agregar una opción de ayuda para que el usuario
conozca la información del software
1. Incorporar una función que llame a la
ventana con la documentación
Devolver como respuesta la misma imagen procesada
pero con los colores ya identificados en etiquetas con
sus respectivos nombres y adjetivos
1. Crear las etiquetas que conlleven la
información cromática de los objetos
2. Localizar la correspondencia entre los
diferentes objetos y sus respectivas
etiquetas
3. Colocar las etiquetas sobre los objetos
que ya fueron determinados para tal
acción
Prototipo
➔ Prototipo posiblemente
desechable
➔ Apariencia y percepción
genérica de la interfaz gráfica
de usuario
➔ Parcial y flexible para ser
complementada con otras
vistas
Ventana principal de la interfaz gráfica
Revisión de los requerimientos
➔ Verificar trazabilidad entre los
documentos de requerimientos:
◆ Definición de requerimientos
◆ Especificación de requerimientos
➔ Evaluar ciertas variables como:
◆ Número de requerimientos
◆ Cantidad de cambios introducidos
➔ Medir cuantitativamente la calidad del
software:
◆ Rapidez, Fiabilidad, entre otros.
➔ Diagnosticar el estado de los
requerimientos mediante una encuesta
para diseñadores y verificadores
Medición de requerimientos
Etapa IV: Validación y verificación
Fase III: La Construcción
Durante la fase de construcción el
sistema es desarrollado y probado en el
ambiente de desarrollo. La finalidad de esta
fase es construir un software funcional en una
base regular e incremental, la cual cumpla
con las necesidades de prioridad más alta de
los involucrados de su proyecto.
En esta etapa se inicia el desarrollo del
software, una vez se tengan bien
especificados los requerimientos del mismo.
Desarrollo de las primeras ventanas de la interfaz
gráfica de usuario
Fase III: La Construcción
Del mismo modo, en esta etapa se
realizará la adaptación del espacio de
trabajo para realizar pruebas de ejecución
con las herramientas y tecnologías
seleccionadas. Esto con la finalidad de poder
analizar los métodos y técnicas existentes en
la librería OpenCV que se encuentren
orientados a detectar los colores de un
objeto en una imagen digital.
Así como también, se iniciará con el
desarrollo de los diferentes módulos del
software para la detección de colores de
un objeto en una imagen digital, a través
de la implementación de los algoritmos
correspondientes, los cuales se
complementarán entre sí para cumplir
con cada uno de los requerimientos
establecidos.
Fase IV: La Transición
Ya en la cuarta fase de la
metodología AUP, el software se lleva a
los espacios de calidad donde es
sometido a las pruebas de validación y
aceptación, con la finalidad de verificar la
funcionalidad del software antes de ser
desplegado en el ambiente de producción.
El dispositivo Raspberry Pi versión 3 modelo B
será el equipo de producción
Fase IV: La Transición En relación a lo anteriormente
expuesto, se establece que en esta fase sean
aplicadas todas aquellas pruebas a nivel
técnico y funcional, entiéndase por estas las
pruebas de caja blanca y caja negra para
buscar algún comportamiento no adecuado
y poder detectar posibles errores no
previstos. Y de esta manera, de ser posible,
realizar las correcciones respectivas,
además de verificar los algoritmos
implementados para la detección de colores
de objetos en una imagen digitalSistema operativo Raspbian donde se
implementará el software
A modo de resumen de la
metodología aplicada, se muestra
la siguiente gráfica en donde se
representan cada una de las fases
explicadas anteriormente.
La gráfica muestra la
cantidad de esfuerzo requerido
en las actividades de cada una de
las fases
Como se puede observar,
en cada fase se relacionan todas
las actividades, pero dependiendo
de la fase el esfuerzo dedicado a
una actividad en específico.
Factores de calidad
Corrección
Es el grado en el que un programa
satisface sus especificaciones y en el que
cumple con los objetivos de la misión del
cliente. En base a esto, es importante resaltar
que es necesario cumplir con las
especificaciones establecidas para el proyecto,
ya que sin estas el software no brindaría una
utilidad.
Por ejemplo, si no se logra alcanzar un
alto grado de precisión al reconocer los colores
de los objetos en una imagen digital, no se
podrá despejar la confusión de los colores que
poseen las personas con deuteranomalía.
Factores de calidad
Eficiencia
Es el grado en el que el software emplea
óptimamente los recursos del sistema, según
lo indican los subatributos siguientes:
comportamiento del tiempo y de los recursos.
Ejemplo de esto es la elección de Python
como lenguaje de programación adecuado
para el Raspberry Pi, debido al problema de
consumo de memoria ram que posee un
lenguaje como MATLAB, en referencia a las
librerías de procesamiento de imágenes
digitales.
Facilidad de uso
Es el esfuerzo que se requiere para
aprender, operar, preparar las entradas e
interpretar las salidas de un programa. Dicho esto,
a nivel de interfaz gráfica solamente el usuario
dispondrá de dos funcionalidades elementales, las
cuales son tomar una foto y cargar una imagen, de
tal forma que sean pocos los pasos para procesar
tal cosa.
Para respaldar aún más lo anterior, el
usuario contará con un botón de ayuda donde se
explique brevemente el uso del software.
Factores de calidad
Facilidad de prueba
Se refiere al esfuerzo que se requiere
para probar un programa a fin de garantizar
que realiza la función que se pretende.
Este factor tiene lugar en el proyecto,
debido a que se llevarán a cabo tanto pruebas
de ejecución para el análisis de métodos y
técnicas orientadas a detectar los colores de
un objeto en una imagen digital, como para las
pruebas de caja blanca y caja negra para la
verificación del correcto funcionamiento del
software.
Portabilidad
Es el esfuerzo que se necesita para
transferir el programa de un ambiente de
sistema de hardware o software a otro.
A partir de esto, gracias a que las
tecnologías que se usarán para el desarrollo
del software son multiplataformas, la
portabilidad del mismo está garantizada a
todos aquellos sistemas operativos que
permitan el uso de la librería PyGTK, como es
el caso de Windows y Linux.
Factores de calidad
Reusabilidad
Está relacionado al grado en el que un
programa (o partes de uno) pueden volverse a
utilizar en otras aplicaciones.
El sistema a desarrollar se puede dividir
en dos partes independientes: la interfaz
gráfica de usuario y el algoritmo de
procesamiento de imágenes digitales. En
consecuencia, cualquier otra aplicación puede
disponer de los beneficios que brindan estas
partes por separado.
Un ejemplo de esto es el desarrollo de
una aplicación similar a esta pero que esté
orientada a uno, varios o todos los tipos de
daltonismo, haciendo una modificación al
conjunto de colores a reconocer, incluyendo o
excluyendo uno o más de ellos.
Referencias Bibliográficas
● Pressman, R. (2010). Ingeniería del Software. Un enfoque práctico (7a ed). México, D.F.: Editorial
McGraw-Hill
● Ambler, S. (2005). Agile Unified Process. Proceso Ágil Unificado. Extraído desde:
http://www.ambysoft.com/unifiedprocess/agileUP.html
● Seymour, C. (2012). HOWTO: Configure Your Raspberry Pi With VNC Without Ever Connecting
It To A Keyboard & Monitor. Extraído desde:
https://lildude.co.uk/howto-configure-raspberry-pi-with-vnc-without-ever-connecting-keyboard-
monitor
● Industrial Shields (s.f.). Raspberry pi 3 Model B. Extraído desde:
https://www.industrialshields.com/es/shop/raspberry-pi-3-model-b/
● USERS.CODE (2008). LA BIBLIA DEL PROGRAMADOR IMPLEMENTACIÓN Y DEBUGGING.
Extraido desde: https://ingsw.pbworks.com/f/Ciclo+de+Vida+del+Software.pdf
Referencias Bibliográficas
● AulaFacil (2009). Apuntes de Teoría del Color. Extraído desde:
http://www.aulafacil.com/cursos/l13908/informatica/diseno-grafico-cad/gimp-2-6-10/apuntes-d
e-teoria-del-color
● Gavin, L. (2017). 12 Photos That Show How People With Color Blindness See The World.
Extraído desde:
https://www.providr.com/how-people-with-color-blindness-see-the-world/?f=one
● Stackoverflow (2015). Image (color?) segmentation with opencv C++. Extraído desde:
https://stackoverflow.com/questions/30303151/image-color-segmentation-with-opencv-c
● Gil, G. (2002). Herramienta para implementar lel y escenarios (TILS). Extraído desde:
http://postgrado.info.unlp.edu.ar/Carreras/Magisters/Ingenieria_de_Software/Tesis/Gil_Gustavo.
pdf

Más contenido relacionado

La actualidad más candente

Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software'Jorge Martinez
 
Metodologías para el desarrollo de aplicaciones móviles
Metodologías para el desarrollo de aplicaciones móvilesMetodologías para el desarrollo de aplicaciones móviles
Metodologías para el desarrollo de aplicaciones móvilesJaqueline Luna
 
Modelos del ciclo de vida del software
Modelos del ciclo de vida del softwareModelos del ciclo de vida del software
Modelos del ciclo de vida del softwareAbner Torres
 
Modelo basado en prototipos - Ingeniería de Software
Modelo basado en prototipos - Ingeniería de SoftwareModelo basado en prototipos - Ingeniería de Software
Modelo basado en prototipos - Ingeniería de SoftwareJoan Fernando Chipia Lobo
 
Modelos de proceso del software
Modelos de proceso del softwareModelos de proceso del software
Modelos de proceso del softwareDiego Llusco
 
Metodologías Ágiles en la Práctica
Metodologías Ágiles en la PrácticaMetodologías Ágiles en la Práctica
Metodologías Ágiles en la PrácticaManuel Rubio
 
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...Joel Fernandez
 
Presentación MeRinde 6CNSL Abril 2010
Presentación MeRinde 6CNSL Abril 2010Presentación MeRinde 6CNSL Abril 2010
Presentación MeRinde 6CNSL Abril 2010Kiberley Santos
 
Metodologias de software ISI-311 Trabajo Practico#2
Metodologias de software ISI-311 Trabajo Practico#2Metodologias de software ISI-311 Trabajo Practico#2
Metodologias de software ISI-311 Trabajo Practico#2RICARDOANDRESSAUCEDO
 
Diseño de una infraestructura TI para un ambiente de Integración Continua en ...
Diseño de una infraestructura TI para un ambiente de Integración Continua en ...Diseño de una infraestructura TI para un ambiente de Integración Continua en ...
Diseño de una infraestructura TI para un ambiente de Integración Continua en ...Lis Pater
 
Ciclo de vida del software
Ciclo de vida del softwareCiclo de vida del software
Ciclo de vida del softwarearealisherrera
 
Ciclos de vida del software
Ciclos de vida del softwareCiclos de vida del software
Ciclos de vida del softwareGUEOVANNY20
 
U1T1 - Conceptos Básicos de Ingeniería del Software
U1T1 - Conceptos Básicos de Ingeniería del SoftwareU1T1 - Conceptos Básicos de Ingeniería del Software
U1T1 - Conceptos Básicos de Ingeniería del SoftwareLuis Eduardo Pelaez Valencia
 
Qué metodología será más adecuada para mi proyecto software
Qué metodología será más adecuada para mi proyecto softwareQué metodología será más adecuada para mi proyecto software
Qué metodología será más adecuada para mi proyecto softwareLeanSight Consulting
 
Metodologías para desarrollar(moviles )
Metodologías para desarrollar(moviles )Metodologías para desarrollar(moviles )
Metodologías para desarrollar(moviles )Fernand Bernowly
 

La actualidad más candente (20)

Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software
 
Metodologías para el desarrollo de aplicaciones móviles
Metodologías para el desarrollo de aplicaciones móvilesMetodologías para el desarrollo de aplicaciones móviles
Metodologías para el desarrollo de aplicaciones móviles
 
Modelos del ciclo de vida del software
Modelos del ciclo de vida del softwareModelos del ciclo de vida del software
Modelos del ciclo de vida del software
 
Modelo basado en prototipos - Ingeniería de Software
Modelo basado en prototipos - Ingeniería de SoftwareModelo basado en prototipos - Ingeniería de Software
Modelo basado en prototipos - Ingeniería de Software
 
Modelos de proceso del software
Modelos de proceso del softwareModelos de proceso del software
Modelos de proceso del software
 
Metodologías Ágiles en la Práctica
Metodologías Ágiles en la PrácticaMetodologías Ágiles en la Práctica
Metodologías Ágiles en la Práctica
 
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...
 
MeRinde ALTEC
MeRinde ALTECMeRinde ALTEC
MeRinde ALTEC
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
 
MeRinde
MeRindeMeRinde
MeRinde
 
Presentación MeRinde 6CNSL Abril 2010
Presentación MeRinde 6CNSL Abril 2010Presentación MeRinde 6CNSL Abril 2010
Presentación MeRinde 6CNSL Abril 2010
 
Metodologias de software ISI-311 Trabajo Practico#2
Metodologias de software ISI-311 Trabajo Practico#2Metodologias de software ISI-311 Trabajo Practico#2
Metodologias de software ISI-311 Trabajo Practico#2
 
Diseño de una infraestructura TI para un ambiente de Integración Continua en ...
Diseño de una infraestructura TI para un ambiente de Integración Continua en ...Diseño de una infraestructura TI para un ambiente de Integración Continua en ...
Diseño de una infraestructura TI para un ambiente de Integración Continua en ...
 
Ciclo de vida del software
Ciclo de vida del softwareCiclo de vida del software
Ciclo de vida del software
 
Ciclos de vida del software
Ciclos de vida del softwareCiclos de vida del software
Ciclos de vida del software
 
U1T1 - Conceptos Básicos de Ingeniería del Software
U1T1 - Conceptos Básicos de Ingeniería del SoftwareU1T1 - Conceptos Básicos de Ingeniería del Software
U1T1 - Conceptos Básicos de Ingeniería del Software
 
Rup
RupRup
Rup
 
Qué metodología será más adecuada para mi proyecto software
Qué metodología será más adecuada para mi proyecto softwareQué metodología será más adecuada para mi proyecto software
Qué metodología será más adecuada para mi proyecto software
 
Jovanni jimenez v.
Jovanni jimenez v.Jovanni jimenez v.
Jovanni jimenez v.
 
Metodologías para desarrollar(moviles )
Metodologías para desarrollar(moviles )Metodologías para desarrollar(moviles )
Metodologías para desarrollar(moviles )
 

Similar a Ingenieria del software aplicada

Acti deaprendizaje equipo_software1
Acti deaprendizaje equipo_software1Acti deaprendizaje equipo_software1
Acti deaprendizaje equipo_software1Dalia Sandiego
 
Ciclo de Vida del Software.pdf
Ciclo de Vida del Software.pdfCiclo de Vida del Software.pdf
Ciclo de Vida del Software.pdfyormis3
 
Prototipado rapido de interfaces
Prototipado rapido de interfacesPrototipado rapido de interfaces
Prototipado rapido de interfacesGaby Fernandez
 
Ciclosdevidadelsoftware
CiclosdevidadelsoftwareCiclosdevidadelsoftware
CiclosdevidadelsoftwareJuan Quiroga
 
Libro de ciclos de vida de un software
Libro de ciclos de vida de un softwareLibro de ciclos de vida de un software
Libro de ciclos de vida de un softwareDarketo Galindo
 
Metodologia rup
Metodologia rupMetodologia rup
Metodologia ruposcarhm90
 
Sistemas Unidad IV
Sistemas Unidad IVSistemas Unidad IV
Sistemas Unidad IVCasssandraG
 
2_-_Ingeniería_de_requerimientos.pdf
2_-_Ingeniería_de_requerimientos.pdf2_-_Ingeniería_de_requerimientos.pdf
2_-_Ingeniería_de_requerimientos.pdfdiego773338
 
MODELO DE DESARRROLLO DE SOFTWARE
MODELO DE DESARRROLLO DE SOFTWAREMODELO DE DESARRROLLO DE SOFTWARE
MODELO DE DESARRROLLO DE SOFTWAREJesus Yepez
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwaremat3matik
 
Ingeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryyIngeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryynelly
 
Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16Ramon
 
Ingenier%c3%ada de software
Ingenier%c3%ada de softwareIngenier%c3%ada de software
Ingenier%c3%ada de softwareMarilupe
 

Similar a Ingenieria del software aplicada (20)

Rup
RupRup
Rup
 
Mod 6.2 introducción al análisis
Mod 6.2 introducción al análisisMod 6.2 introducción al análisis
Mod 6.2 introducción al análisis
 
Acti deaprendizaje equipo_software1
Acti deaprendizaje equipo_software1Acti deaprendizaje equipo_software1
Acti deaprendizaje equipo_software1
 
Presentaciã³n1
Presentaciã³n1Presentaciã³n1
Presentaciã³n1
 
Ciclo de Vida del Software.pdf
Ciclo de Vida del Software.pdfCiclo de Vida del Software.pdf
Ciclo de Vida del Software.pdf
 
Prototipado rapido de interfaces
Prototipado rapido de interfacesPrototipado rapido de interfaces
Prototipado rapido de interfaces
 
Ciclosdevidadelsoftware
CiclosdevidadelsoftwareCiclosdevidadelsoftware
Ciclosdevidadelsoftware
 
Libro de ciclos de vida de un software
Libro de ciclos de vida de un softwareLibro de ciclos de vida de un software
Libro de ciclos de vida de un software
 
Capitulogratis
CapitulogratisCapitulogratis
Capitulogratis
 
Metodologia rup
Metodologia rupMetodologia rup
Metodologia rup
 
Sistemas Unidad IV
Sistemas Unidad IVSistemas Unidad IV
Sistemas Unidad IV
 
2_-_Ingeniería_de_requerimientos.pdf
2_-_Ingeniería_de_requerimientos.pdf2_-_Ingeniería_de_requerimientos.pdf
2_-_Ingeniería_de_requerimientos.pdf
 
PRIMER TRABAJO
PRIMER TRABAJOPRIMER TRABAJO
PRIMER TRABAJO
 
SOTFWARE
SOTFWARESOTFWARE
SOTFWARE
 
MODELO DE DESARRROLLO DE SOFTWARE
MODELO DE DESARRROLLO DE SOFTWAREMODELO DE DESARRROLLO DE SOFTWARE
MODELO DE DESARRROLLO DE SOFTWARE
 
Proyectos I
Proyectos IProyectos I
Proyectos I
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Ingeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryyIngeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryy
 
Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16
 
Ingenier%c3%ada de software
Ingenier%c3%ada de softwareIngenier%c3%ada de software
Ingenier%c3%ada de software
 

Último

Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolicalf1231
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptCRISTOFERSERGIOCANAL
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
Condensadores de la rama de electricidad y magnetismo
Condensadores de la rama de electricidad y magnetismoCondensadores de la rama de electricidad y magnetismo
Condensadores de la rama de electricidad y magnetismosaultorressep
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptxBRAYANJOSEPTSANJINEZ
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdfCristhianZetaNima
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricoalexcala5
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónXimenaFallaLecca1
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrialGibranDiaz7
 

Último (20)

Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
Condensadores de la rama de electricidad y magnetismo
Condensadores de la rama de electricidad y magnetismoCondensadores de la rama de electricidad y magnetismo
Condensadores de la rama de electricidad y magnetismo
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctrico
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdf
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrial
 

Ingenieria del software aplicada

  • 1. Desarrollo de un Software de reconocimiento de colores de objetos en Imágenes Digitales orientado a personas con Daltonismo del tipo Deuteranomalía Autores: Cristhian Caicedo Manuel Pérez
  • 2. Resumen del problema La mayor cantidad de información que puede obtener un ser humano proviene de la adquisición directa del sentido de la visión, mediante la cual se puede percibir el entorno físico que le rodea y los elementos que lo componen. Estos elementos poseen interrelaciones que permiten realizar una distinción o comparación entre uno o más de estos; un ejemplo claro es la relación presente entre un objeto y su color. Los colores de los globos es el único atributo que permite distinguir los unos de los otros
  • 3. Resumen del problema En la actualidad, existen una diversidad de maneras de representar gráficamente este entorno, dentro de las cuales se encuentran las imágenes digitales, cuya presencia en la vida cotidiana ha incrementado con el pasar de los años. No obstante, algunas personas no poseen la capacidad de detectar una o más características contenidas en imágenes, como por ejemplo, los colores. Tal es el caso de aquellas que padecen de daltonismo o ceguera del color. Esta discapacidad limita el reconocimiento de colores y dificulta la distinción entre ellos, reduciendo el espectro de colores que puede percibir un individuo. Comparación de la percepción cromática entre varios tipos de daltonismo
  • 4. Objetivo General Desarrollar un software de reconocimiento de colores de objetos mediante el procesamiento de imágenes digitales para mejorar la percepción cromática a las personas que padecen de deuteranomalía. Resultado esperado: Mejorar artificialmente su percepción cromática respecto a las imágenes digitales, para que así puedan interpretar correctamente la información que contienen éstas dentro de su contexto. Técnica para el procesamiento de imágenes digitales: Segmentación basada en el color
  • 5. Objetivos Específicos ● Determinar el espectro del color y los colores de confusión correspondientes a las personas con deuteranomalía ● Establecer los requerimientos funcionales y no funcionales del software ● Analizar los métodos y técnicas existentes en la librería OpenCV orientados a detectar los colores de un objeto en una imagen digital ● Desarrollar los algoritmos para la detección de colores de un objeto en una imagen digital ● Verificar los algoritmos para la detección de colores de objetos en una imagen digital. Espectro del color que servirá como punto de partida para la determinación de los colores afectados en la deuteranomalía
  • 6. Ciclo de vida del Software Modelo en cascada puro: Es un ciclo de vida que admite iteraciones, en donde después de cada etapa se realiza una o varias revisiones para comprobar si se puede pasar a la siguiente. Es un modelo rígido, poco flexible, y con muchas restricciones. Es un ciclo adecuado para los proyectos en los que se dispone de todos los requerimientos al comienzo, para el desarrollo de un producto con funcionalidades conocidas o para proyectos, que aun siendo muy complejos, se entienden perfectamente desde el principio. Diagrama del modelo en cascada puro con sus etapas e interacciones entre sí
  • 7. Ciclo de vida del Software Razones para usar el modelo en cascada puro: ● Trabaja de acuerdo a una planificación sencilla ● No justifica un modelo de gestión más elaborado ● Se dispone de la mayoría de los requerimientos al inicio del proyecto ● No requiere un personal altamente calificado para entregar un producto de alta calidad ● Se dispone de bastante tiempo para la corrección de cualquier error A partir del ciclo de vida lineal nace el modelo en cascada puro
  • 8. Etapas del ciclo de vida de la Ingeniería de Requerimientos I) Elicitación II) Negociación IV) Verificación y Validación III) Especificación ● Tormenta de ideas ● Investigación documental ● Definición requerimientos ● Debate de preferencias ● Estudio de la factibilidad ● Modelado inicial del sistema ● Especificación de requerimientos ● Prototipo ● Revisión de los requerimientos ● Medición de requerimientos
  • 9. Metodología Agile Unified Process (AUP) Esta metodología fue desarrollada en septiembre de 2005 por Scott Ambler y es una versión simplificada del Proceso Racional Unificado (RUP). El proceso unificado ágil se preocupa especialmente de la gestión de riesgos y propone que aquellos elementos con alto riesgo tengan prioridad en el proceso de desarrollo y sean abordados en etapas tempranas del mismo. En el proceso unificado ágil se establecen cuatro fases que transcurren simultáneamente, estas son: la iniciación, la elaboración, la construcción y la transición. Etapas de la metodología AUP
  • 10. Fase I: La Iniciación En esta fase se obtiene una comprensión común entre el cliente y el equipo de desarrollo, de este modo se podrá identificar el alcance inicial del proyecto. Como finalidad de esta fase, se tiene la comprensión de la problemática y el planteamiento inicial de una solución, gracias a la generación de una gran variedad de puntos de vistas del problema, producto de la aplicación de las técnicas utilizadas en la primera etapa del ciclo de vida de la ingeniería de requerimientos: la elicitación de requerimientos. Representación gráfica de la obtención de una idea generada en una tormenta de ideas
  • 11. Fase I: La Iniciación En esta etapa se pretende usar la técnica de investigación documental, cuya finalidad es comprender a profundidad los factores relacionados al daltonismo del tipo llamado deuteranomalía, para así determinar el espectro del color y los colores de confusión correspondientes a las personas que padecen esta discapacidad. Por otra parte, se usarán las técnicas de tormenta de ideas y definición de requerimientos, de tal manera que sea posible establecer unos requerimientos funcionales y no funcionales iniciales del software, mediante el uso de un documento con un formato especial para esto. Posteriormente, estos requerimientos irán tomando mejor forma en las siguientes etapas del ciclo de vida de la ingeniería de requerimientos.
  • 12. Tormenta de ideas ➔ Elegir el objeto de estudio: ◆ Imágenes digitales ➔ Determinar el área de aplicación más apta y adecuada a la problemática: ◆ Procesamiento de imágenes digitales ➔ Plantear un modelo completo hipotético del sistema ◆ Definir requerimientos iniciales ➔ Investigar antecedentes ◆ Estudios científicos ◆ Estudios de muestreo ➔ Comprensión del dominio ◆ Conceptos y términos fundamentales ◆ Tipos y subtipos ➔ Recursos informáticos disponibles ◆ API's de interés ◆ Libros y manuales Investigación documental Etapa I: Elicitación
  • 13. Definición de requerimientos Esta actividad tiene como objetivo la redacción de un listado de características que espera el cliente que tenga el sistema. El documento se redacta para mejorar la comprensión entre el Usuario y el Cliente. Cabecera del documento de definición de requerimientos
  • 14. Lista de requerimientos funcionales establecidos en el documento de definición de requerimientos
  • 15. Fase II: La Elaboración Para esta etapa el enfoque es profundizar en la comprensión de los requisitos del sistema y validar la arquitectura del software para realizar las mejoras pertinentes. Ya estando en la fase de negociación del ciclo de vida de la ingeniería de requerimientos, se realizaron debates acerca de las herramientas y tecnologías disponibles que sean más favorables para el desarrollo del software. Adicionalmente, como parte del análisis y diseño del sistema, se realiza la especificación de los requerimientos que deberá tener el primer software funcional a construir. Por lo que cabe mencionar que esta fase de la metodología abarca más de una etapa del ciclo de vida de la ingeniería de requerimientos. Debate sobre las tecnologías disponibles
  • 16. Fase II: La Elaboración Luego de obtener la definición inicial de los requerimientos gracias a la etapa de elicitación, se debe proceder con las siguientes etapas del ciclo de vida de la ingeniería de requerimientos. Por tal motivo se debe realizar la especificación de los requerimientos definidos anteriormente y la validación de los mismos para así poder establecer una definición completa y consistente de los requerimientos funcionales y no funcionales del softwareOpenCV y GTK como librerías a utilizar en el desarrollo del software
  • 17. Debate de preferencias ➔ Establecer el alcance del sistema. Ej.: ◆ Entradas y salidas ◆ Plataformas a nivel de: ● Hardware ● Software ➔ Elegir el tipo de anomalía: ◆ Deuteranomalia ➔ Elegir las herramientas de software y frameworks más favorables: ◆ OpenCV ◆ PyGTK ➔ Analizar el rendimiento apropiado ➔ Evaluar la disposición y proporción de ciertos recursos: ◆ Tiempo ◆ Capital intelectual ➔ Evaluar la operatividad e interoperabilidad ➔ Facilidad de desarrollo del sistema Estudio de la factibilidad Etapa II: Negociación
  • 18. Modelado inicial del sistema Diagrama de transición de estados para describir el funcionamiento de la interfaz gráfica de usuario del sistema Etapa III: Especificación Diagrama de transición de estados
  • 19. Especificación de requerimientos Una vez se hayan definidos los requerimientos, se realiza una especificación técnica de los mismos, en la cual se menciona a detalle las actividades que determinarán si el requisito fue cumplido o no. Documento de especificación de requerimientos
  • 20. Listado de especificación de requerimientos Construir una interfaz gráfica para el manejo del software 1. Desarrollar las ventanas de la interfaz a. Una ventana principal b. Una ventana para tomar la foto c. Una ventana para la navegación entre archivos d. Una ventana para la imagen de respuesta e. Una ventana que contenga una breve documentación del software 2. Agregar los botones de la interfaz a. Un botón que active la cámara para tomar una foto b. Un botón para seleccionar una imagen desde el directorio local c. Un botón para procesar la imagen seleccionada d. Un botón para mostrar la documentación Tomar una foto con la cámara del Raspberry Pi y guardarla en formato JPEG 1. Indicar la dirección del fichero destino 2. Definir el formato JPEG para la imagen capturada 3. Capturar una imagen 4. Guardar la imagen en el fichero destino Subir imagenes en formato JPEG o PNG ya guardadas en el directorio local 1. Indicar la dirección del fichero destino 2. Comprobar que el formato de la imagen sea JPEG o PNG 3. Cargar la imagen a procesar
  • 21. Listado de especificación de requerimientos Identificar la tonalidad y brillo de los colores de los objetos localizados 1. Transformar el modelo RGB a un modelo de color orientado a la percepción visual 2. Revisar los valores cromáticos de los pixeles de acuerdo al modelo del color elegido 3. Determinar a qué tonalidad corresponden los valores y que brillo posee tal color Localizar los objetos dentro de la imagen 1. Particionar la imagen en múltiples segmentos que correspondan a los objetos 2. Delimitar los bordes de cada objeto por individual Determinar si el color identificado forma parte de los colores confundidos en la deuteranomalía 3. Comparar el color de los objetos con el conjunto de colores confundidos 4. Arrojar un resultado que establezca los objetos a etiquetar
  • 22. Listado de especificación de requerimientos Guardar la imagen devuelta como respuesta 1. Indicar la dirección del fichero destino 2. Guardar la imagen en el fichero destino Agregar una opción de ayuda para que el usuario conozca la información del software 1. Incorporar una función que llame a la ventana con la documentación Devolver como respuesta la misma imagen procesada pero con los colores ya identificados en etiquetas con sus respectivos nombres y adjetivos 1. Crear las etiquetas que conlleven la información cromática de los objetos 2. Localizar la correspondencia entre los diferentes objetos y sus respectivas etiquetas 3. Colocar las etiquetas sobre los objetos que ya fueron determinados para tal acción
  • 23. Prototipo ➔ Prototipo posiblemente desechable ➔ Apariencia y percepción genérica de la interfaz gráfica de usuario ➔ Parcial y flexible para ser complementada con otras vistas Ventana principal de la interfaz gráfica
  • 24. Revisión de los requerimientos ➔ Verificar trazabilidad entre los documentos de requerimientos: ◆ Definición de requerimientos ◆ Especificación de requerimientos ➔ Evaluar ciertas variables como: ◆ Número de requerimientos ◆ Cantidad de cambios introducidos ➔ Medir cuantitativamente la calidad del software: ◆ Rapidez, Fiabilidad, entre otros. ➔ Diagnosticar el estado de los requerimientos mediante una encuesta para diseñadores y verificadores Medición de requerimientos Etapa IV: Validación y verificación
  • 25. Fase III: La Construcción Durante la fase de construcción el sistema es desarrollado y probado en el ambiente de desarrollo. La finalidad de esta fase es construir un software funcional en una base regular e incremental, la cual cumpla con las necesidades de prioridad más alta de los involucrados de su proyecto. En esta etapa se inicia el desarrollo del software, una vez se tengan bien especificados los requerimientos del mismo. Desarrollo de las primeras ventanas de la interfaz gráfica de usuario
  • 26. Fase III: La Construcción Del mismo modo, en esta etapa se realizará la adaptación del espacio de trabajo para realizar pruebas de ejecución con las herramientas y tecnologías seleccionadas. Esto con la finalidad de poder analizar los métodos y técnicas existentes en la librería OpenCV que se encuentren orientados a detectar los colores de un objeto en una imagen digital. Así como también, se iniciará con el desarrollo de los diferentes módulos del software para la detección de colores de un objeto en una imagen digital, a través de la implementación de los algoritmos correspondientes, los cuales se complementarán entre sí para cumplir con cada uno de los requerimientos establecidos.
  • 27. Fase IV: La Transición Ya en la cuarta fase de la metodología AUP, el software se lleva a los espacios de calidad donde es sometido a las pruebas de validación y aceptación, con la finalidad de verificar la funcionalidad del software antes de ser desplegado en el ambiente de producción. El dispositivo Raspberry Pi versión 3 modelo B será el equipo de producción
  • 28. Fase IV: La Transición En relación a lo anteriormente expuesto, se establece que en esta fase sean aplicadas todas aquellas pruebas a nivel técnico y funcional, entiéndase por estas las pruebas de caja blanca y caja negra para buscar algún comportamiento no adecuado y poder detectar posibles errores no previstos. Y de esta manera, de ser posible, realizar las correcciones respectivas, además de verificar los algoritmos implementados para la detección de colores de objetos en una imagen digitalSistema operativo Raspbian donde se implementará el software
  • 29. A modo de resumen de la metodología aplicada, se muestra la siguiente gráfica en donde se representan cada una de las fases explicadas anteriormente. La gráfica muestra la cantidad de esfuerzo requerido en las actividades de cada una de las fases Como se puede observar, en cada fase se relacionan todas las actividades, pero dependiendo de la fase el esfuerzo dedicado a una actividad en específico.
  • 30. Factores de calidad Corrección Es el grado en el que un programa satisface sus especificaciones y en el que cumple con los objetivos de la misión del cliente. En base a esto, es importante resaltar que es necesario cumplir con las especificaciones establecidas para el proyecto, ya que sin estas el software no brindaría una utilidad. Por ejemplo, si no se logra alcanzar un alto grado de precisión al reconocer los colores de los objetos en una imagen digital, no se podrá despejar la confusión de los colores que poseen las personas con deuteranomalía.
  • 31. Factores de calidad Eficiencia Es el grado en el que el software emplea óptimamente los recursos del sistema, según lo indican los subatributos siguientes: comportamiento del tiempo y de los recursos. Ejemplo de esto es la elección de Python como lenguaje de programación adecuado para el Raspberry Pi, debido al problema de consumo de memoria ram que posee un lenguaje como MATLAB, en referencia a las librerías de procesamiento de imágenes digitales. Facilidad de uso Es el esfuerzo que se requiere para aprender, operar, preparar las entradas e interpretar las salidas de un programa. Dicho esto, a nivel de interfaz gráfica solamente el usuario dispondrá de dos funcionalidades elementales, las cuales son tomar una foto y cargar una imagen, de tal forma que sean pocos los pasos para procesar tal cosa. Para respaldar aún más lo anterior, el usuario contará con un botón de ayuda donde se explique brevemente el uso del software.
  • 32. Factores de calidad Facilidad de prueba Se refiere al esfuerzo que se requiere para probar un programa a fin de garantizar que realiza la función que se pretende. Este factor tiene lugar en el proyecto, debido a que se llevarán a cabo tanto pruebas de ejecución para el análisis de métodos y técnicas orientadas a detectar los colores de un objeto en una imagen digital, como para las pruebas de caja blanca y caja negra para la verificación del correcto funcionamiento del software. Portabilidad Es el esfuerzo que se necesita para transferir el programa de un ambiente de sistema de hardware o software a otro. A partir de esto, gracias a que las tecnologías que se usarán para el desarrollo del software son multiplataformas, la portabilidad del mismo está garantizada a todos aquellos sistemas operativos que permitan el uso de la librería PyGTK, como es el caso de Windows y Linux.
  • 33. Factores de calidad Reusabilidad Está relacionado al grado en el que un programa (o partes de uno) pueden volverse a utilizar en otras aplicaciones. El sistema a desarrollar se puede dividir en dos partes independientes: la interfaz gráfica de usuario y el algoritmo de procesamiento de imágenes digitales. En consecuencia, cualquier otra aplicación puede disponer de los beneficios que brindan estas partes por separado. Un ejemplo de esto es el desarrollo de una aplicación similar a esta pero que esté orientada a uno, varios o todos los tipos de daltonismo, haciendo una modificación al conjunto de colores a reconocer, incluyendo o excluyendo uno o más de ellos.
  • 34. Referencias Bibliográficas ● Pressman, R. (2010). Ingeniería del Software. Un enfoque práctico (7a ed). México, D.F.: Editorial McGraw-Hill ● Ambler, S. (2005). Agile Unified Process. Proceso Ágil Unificado. Extraído desde: http://www.ambysoft.com/unifiedprocess/agileUP.html ● Seymour, C. (2012). HOWTO: Configure Your Raspberry Pi With VNC Without Ever Connecting It To A Keyboard & Monitor. Extraído desde: https://lildude.co.uk/howto-configure-raspberry-pi-with-vnc-without-ever-connecting-keyboard- monitor ● Industrial Shields (s.f.). Raspberry pi 3 Model B. Extraído desde: https://www.industrialshields.com/es/shop/raspberry-pi-3-model-b/ ● USERS.CODE (2008). LA BIBLIA DEL PROGRAMADOR IMPLEMENTACIÓN Y DEBUGGING. Extraido desde: https://ingsw.pbworks.com/f/Ciclo+de+Vida+del+Software.pdf
  • 35. Referencias Bibliográficas ● AulaFacil (2009). Apuntes de Teoría del Color. Extraído desde: http://www.aulafacil.com/cursos/l13908/informatica/diseno-grafico-cad/gimp-2-6-10/apuntes-d e-teoria-del-color ● Gavin, L. (2017). 12 Photos That Show How People With Color Blindness See The World. Extraído desde: https://www.providr.com/how-people-with-color-blindness-see-the-world/?f=one ● Stackoverflow (2015). Image (color?) segmentation with opencv C++. Extraído desde: https://stackoverflow.com/questions/30303151/image-color-segmentation-with-opencv-c ● Gil, G. (2002). Herramienta para implementar lel y escenarios (TILS). Extraído desde: http://postgrado.info.unlp.edu.ar/Carreras/Magisters/Ingenieria_de_Software/Tesis/Gil_Gustavo. pdf