Professional Documents
Culture Documents
Proyecto de Tesis
Dedicatoria
Mayra Villanueva
Manuel Medina
Agradecimiento
Mayra Villanueva
Manuel Medina
Índice:
Dedicatoria........................................................................................................................2
Agradecimiento.................................................................................................................3
Resumen............................................................................................................................9
Abstract............................................................................................................................10
CAPÍTULO I: PLAN DE INVESTIGACIÓN................................................................11
1.1. Realidad Problemática......................................................................................11
1.2. Formulación del Problema................................................................................12
1.3. Hipótesis...........................................................................................................12
1.4. Objetivo General...............................................................................................12
1.5. Objetivos Específicos.......................................................................................12
1.6. Población y Muestra.........................................................................................12
1.6.1 Población:......................................................................................................12
1.6.2 Muestra..........................................................................................................13
1.7. Técnica y procedimiento de recolección de datos............................................13
1.8. Marco Conceptual.............................................................................................14
1.8.1 Sistemas Basados En Conocimiento.............................................................14
1.8.2 Redes Neuronales Artificiales.......................................................................14
1.8.3 Software........................................................................................................14
1.8.4 Metodología de Desarrollo de Software.......................................................15
1.9. Métodos y Procedimientos................................................................................15
1.9.1. Método.......................................................................................................15
CAPÍTULO II: MARCO TEÓRICO...............................................................................16
2.1. Sistemas Basados en Conocimiento.................................................................16
2.1.1. Definición..................................................................................................16
2.1.2. Ventajas......................................................................................................17
2.1.3. Clasificación..............................................................................................17
2.1.4. Estructura...................................................................................................17
2.1.5. Desarrollo de un Sistema Basado en Conocimiento..................................18
2.1.6. Campos de Aplicación...............................................................................20
2.1.7. Limitaciones..............................................................................................21
2.2. Redes Neuronales Artificiales...........................................................................22
2.2.1. Definición:.................................................................................................22
2.2.2. Modelo Biológico:.....................................................................................22
2.2.3. Modelo Artificial.......................................................................................23
2.2.4. Características............................................................................................26
2.2.5. Arquitectura...............................................................................................26
2.2.5.1. Según el número de capas:........................................................................26
Índice de Ilustraciones:
Figura 9: Esquema de una estructura directa. Fuente: (Serrano, Soria, & Martín,
2010)....................................................................................................................29
Figura 10: Esquema de una estructura inversa. Fuente: (Serrano, Soria, &
Martín, 2010).......................................................................................................29
Figura 11: Esquema de una estructura con retardo. Fuente: (Serrano, Soria, &
Martín, 2010).......................................................................................................30
Figura 12: Esquema de un cancelador activo de ruido. Fuente: (Serrano, Soria, &
Martín, 2010).......................................................................................................30
Figura 13: Categorías de aprendizaje. Fuente: (Serrano, Soria, & Martín, 2010)
.............................................................................................................................31
Figura 14: Arquitectura centrada en Datos. Fuente: (Pressman, 2010)...............43
Figura 15: Arquitectura de flujo de datos. Fuente: (Pressman, 2010).................43
Figura 16: Arquitectura de programa principal/subprograma. Fuente: (Pressman,
2010)....................................................................................................................44
Figura 17: Arquitectura en capas. Fuente: (Pressman, 2010)..............................45
Figura 18: Arquitectura propuesta del Sistema Basado en Conocimiento. Fuente:
Elaboración propia...............................................................................................58
Figura 19: Modelo de red neuronal artificial. Fuente: Elaboración propia.........65
Figura 20: Interfaz de Inicio. Fuente: Elaboración propia..................................80
Figura 21: Interfaz EquipoProyecto. Fuente: Elaboración propia.......................81
Figura 22: Interfaz ReqDocCon. Fuente: Elaboración propia.............................81
Figura 23: Interfaz Proyecto1. Fuente: Elaboración propia................................82
Figura 24: Interfaz Proyecto2. Fuente: Elaboración propia................................82
Figura 25: Interfaz RecursosYCliente. Fuente: Elaboración propia...................83
Figura 26: Interfaz Resultados. Fuente: Elaboración propia...............................83
Índice de Tablas:
Resumen
proyecto software. Además, se verifica que este proceso puede ser realizado de manera
confiable.
Abstract
1.3. Hipótesis
1.6.1 Población:
1.6.2 Muestra
Z 2 × P ×(1−P)
n=
E2
Donde:
n=Tamaño de muestra representativa que deseamos obtener.
Z=valor correspondiente a la distribución de Gauss.
P=proporción en que la variable estudiada se da en la población.
E=Error de estimación.
De acuerdo a las variables dadas a continuación:
Z=1.96, para el 95% de confianza.
P=0.92 (caso más desfavorable, desconocido)
E= 8%
Obtenemos:
n= (1.962 * 0.92 * (1-0.92))/0.082
n=44.1784 dando así un aproximado de una muestra de 44 proyectos
software en la ciudad de Trujillo.
TÉCNICA INSTRUMENTOS
Observación Cronómetro, grabadora de voz
Entrevista Hoja de entrevista, grabadora de
voz
Encuesta Cuestionario
Investigación Hoja de Lectura
bibliográfica
Definición:
Definición:
1.8.3 Software
Definición:
Definición:
1.9.1. Método
2.1.1. Definición
Sistemas Inteligentes
Sistemas Basados en
Conocimiento
Sistemas
Expertos
2.1.3. Clasificación
2.1.4. Estructura
Las bases de conocimiento contendrán los conocimientos sobre los dominios que
va a necesitar el sistema basado en conocimiento; mientras que el motor de
inferencia, explotará estas bases de conocimiento para obtener una salida.
Además de estos dos elementos, los sistemas basados en conocimiento suelen
poseer interfaces de entrada y salida para comunicarse con los usuarios, con
dispositivos físicos o con otros sistemas basados en conocimiento [ CITATION
Pal08 \l 10250 ].
Motor de
Inferencia Sistema Basado
Interfaz de En
Usuario Conocimiento
Base de
Conocimientos
Expertos
Representación del
conocimiento
Metodologías de Desarrollo:
Cuando recién se comenzaban a desarrollar los primeros sistemas expertos, los
desarrolladores utilizaban el método de desarrollo de prueba y error, el cual
consistía en que el ingeniero preguntaba al experto como resolver un problema,
lo codificaba en forma de reglas y luego se probaba el prototipo haciendo
diversas versiones. Este método causaba muchos problemas como enormes
retrasos y costos, perdida de fiabilidad y la incapacidad de crear sistemas muy
grandes. Por ello luego se usó el modelo en cascada para el desarrollo de estos
sistemas, pero el problema con este modelo era que para pasar a la siguiente
fase, la fase anterior debe estar cerrada, y esto no suele darse en los sistemas
basados en conocimiento. Por ello luego se comenzó a usar el modelo en espiral,
el cual construye el sistema en ciclos, siendo este el más adecuado. [ CITATION
Pal08 \l 10250 ]. A partir de este modelo se han desarrollado diversas
metodologías de desarrollo de Sistemas basados en conocimiento, una de ellas
propuesta por Jhon Durkin la cual consta de 6 fases las cuales son:
Evaluación.
Adquisición del conocimiento.
Diseño.
Pruebas.
Documentación.
Mantenimiento.
2.1.7. Limitaciones
2.2.1. Definición:
peso, que representa la información utilizada por las neuronas para resolver un
problema. [ CITATION Veg09 \l 10250 ].
El cerebro está compuesto por células vivas llamadas neuronas, las neuronas se
diferencian del resto de células biológicas ya que tienen la capacidad de
comunicarse entre ellas. En la Figura 4 se muestra la estructura de una neurona
biológica.
Wij: Pesos
X1
W1j
X2 W2j Regla Función de
Función
de de
propagación salida Salida Yi:
activación
Wnj
Xn
[-1,1]
y= +1, si x ≥ 0
−1, si x <0 {
Lineal a tramos [-1,1]
{
x , si−1 ≤ x ≤1
y= +1, si x >1
−1, si x ←1
Sigmoidea 1 [0,1]
y= −x
1+e
y=tanh x [-1,1]
Sinusoidal y=sin ω . x +φ [-1,1]
Tabla 2: Funciones de activación más usadas.
2.2.4. Características
Las características de las redes neuronales artificiales, son muy semejantes a las
de las redes neuronales biológicas, en [ CITATION Veg09 \l 10250 ] se
presentan las siguientes características principales:
Aprenden a través de ejemplos.
Inferencia estadística.
Adaptabilidad.
Dilema plasticidades y estabilidad.
Capacidad de generalización.
Tolerante a fallas.
Rápida implantación.
2.2.5. Arquitectura
2.2.6. Estructura
2.2.7. Fases
Aprendizaje
Aprendizaje
Aprendizaje
no
Supervisado
Supervidado
2.2.9. Ventajas
Las redes neuronales tienes ciertas ventajas que las hacen atractivas para ser
usadas en una gran cantidad de problemas prácticos, en [ CITATION Ser10 \l
Ventaja Descripción
Son sistemas Una neurona es un elemento no lineal por lo que su
distribuidos no interconexión entre ellas (red neuronal) también será un
lineales. dispositivo no lineal, permitiendo simular sistemas no
lineales y caóticos, lo cual no se puede realizar con los
sistemas clásicos lineales.
Son sistemas Al ser un sistema distribuido, permite el fallo de algunos
tolerantes a elementos individuales (neuronas) sin alterar
fallos. significativamente la respuesta total del sistema.
Adaptabilidad. Tienen la capacidad de modificar los parámetros de los que
depende su funcionamiento, de acuerdo con los cambios
que se produzcan en su entorno de trabajo, hay que tener
en cuenta que estos cambios no pueden ser excesivamente
grandes ya que generaría un sistema inestable, este es el
problema conocido como dilema plasticidad-estabilidad.
Establecen Las redes neuronales son capaces de relacionar dos
relaciones no conjuntos de datos, comparados con los métodos
lineales entre estadísticos que realizan la misma tarea, tienen la ventaja
datos. que los datos no tiene por qué cumplir las condiciones de
linealidad, gausianidad y estacionariedad.
Posibilidad de Esta posibilidad permite que estos sistemas puedan ser
implementación aplicados en sistemas de tiempo real, simulando sistemas
en VLSI (very biológicos mediante elementos de silicio.
large scale
integration)
2.3. Software
2.3.1. Definición
2.3.2. Características
El software no se “desgasta”
El software es inmune a los males ambientales que desgastan el hardware.
2.3.4. Tipos
2.3.7. Componentes
Programas
Los programas son conjuntos de instrucciones que proporcionan la
funcionalidad deseada cuando son ejecutadas por el ordenador. Están
escritos usando lenguajes específicos que los ordenadores pueden leer y
ejecutar, tales como lenguaje ensamblador, Basic, FORTRAN, COBOL, C.
2.3.8. Arquitecturas
Los procesos principales son aquellos que resultan útiles e inician o realizan el
desarrollo, la explotación o el mantenimiento del software durante su ciclo de
vida; los procesos de soporte son los que sirven de apoyo al resto y se aplican en
cualquier punto del ciclo de vida, y los procesos de la organización son los que
se emplean para llevar a cabo funciones tales como la gestión, la formación del
personal o la mejora del proceso. En la Tabla 8, se describen de manera general
los procesos principales:
2.4.1. Definición
2.4.2. Ventajas
Son muchas las ventajas que puede aportar el uso de una metodología. En la
Tabla 9 se presentan algunas de ellas desde distintos puntos de vista.
[ CITATION Lab09 \l 10250 ]
Ventajas
Desde el punto de vista de Desde el punto de Desde el punto de vista
gestión: vista de los ingenieros del cliente o usuario:
de software:
Facilitar la tarea de Ayudar a la Garantía de un
planificación. comprensión del determinado nivel de
Facilitar la tarea de
problema. calidad en el
control y seguimiento de Optimizar el
producto final.
un proyecto. conjunto y cada una Confianza en los
Mejorar la relación
de las fases del plazos de tiempo
coste/beneficio
proceso de fijados en la
Optimizar el uso de
desarrollo. definición del
recursos disponibles.
Facilitar el
Facilitar la evaluación de proyecto.
mantenimiento del Definir el ciclo de
resultados y cumplimiento
producto final. vida que más se
de los objetivos.
Permitir la
Facilitar la comunicación adecue a las
reutilización de
efectiva entre usuarios y condiciones y
partes del producto.
desarrolladores. características del
desarrollo.
Tabla 9: Ventajas del uso de Metodología de Desarrollo de Software.
2.4.3. Clasificación
Criterio Alternativas
Requerimientos Están bien definidos
No están bien definidos
Son fijos
Son cambiantes
Documentación Es necesaria una amplia documentación.
Es necesaria pero no debe ser muy
amplia.
No es necesaria.
Fechas límite de Son flexibles, pueden cambiar
entregas Son estrictas, no pueden cambiar
Cliente Esta activamente involucrado
Solo participa en reuniones
2.4.6. Componentes
Una metodología define una estrategia global para enfrentarse con el proyecto.
Entre los elementos que forman parte de una metodología podemos mencionar
los siguientes:
Fases: tareas a realizar en cada fase.
Productos: entradas y salidas de cada fase, documentos.
Procedimientos y herramientas: apoyo para la realización de cada tarea.
Criterios de evaluación: del proceso y del producto. Saber si se han
logrado los objetivos. [ CITATION Lab09 \l 10250 ].
2.4.7. Limitaciones
3.1. Arquitectura
En la Error: Reference source not found se muestra una comparación entre los
distintos modelos de redes neuronales existentes.
Red Red Self Red Red Red
BackPropag Organizing CounterPropa Hopfield Bidirectional
ation Map gation Associative
Memory
Diseñador Rumelhart y Kohonen Hecht-Nielsen Hopfield Bart Kosko
Parker (1985) (1979-82) (1987) (1982) (1987)
Arquitectura La unidad Presenta una La primera Tiene una La red tiene
procesadora topología por capa única capa de dos capas
realiza una dos capas: constituye la unidades centrales de
suma primera es la capa de procesadoras. neuronas
ponderada de capa de entrada, la Cada una de totalmente
las entradas, entrada, y la segunda es la las unidades interconectad
presenta una segunda, capa capa procesadoras as además de
salida y tiene competitiva competitiva o tiene un valor las capas
un valor está organizada de Kohonen y o nivel de buffer de
asociado que en una rejilla la tercera es la activación, entrada y
se utilizará en de dos capa de salida también salida.
el proceso de dimensiones. llamada llamado
ajuste de los también de estado, que es
pesos. Grossberg. binario.
Normalmente Objetivo
, utiliza tres o perseguido por
más capas. esta red, el
emparejamient
o del vector de
entrada X y el
vector deseado
Y.
Característic *Solución a *Aprendizaje *Clasificación *Concepto de *Inspirada en
as las sin Adaptativa de la red en la red ART.
limitaciones supervisión. Patrones. términos de *Heteroasoci
de su red *Organizar *Un buen energía. ativa: acepta
predecesora mapas ejemplo de *Doble un vector de
el Perceptron. topológicos combinación conexión por entrada en un
*Método de de diferentes cada pareja conjunto de
entrenamient capas para la de unidades neuronas y
o construcción procesadoras. produce otro
supervisado. de un nuevo *Red vector
tipo de red. recursiva. relacionado
Algoritmo de Conlleva una Localiza la Durante Tiene El conjunto
Entrenamient fase de neurona en la entrenamiento asignado un de
o propagación capa de se ajustan los estado para entrenamient
hacia Kohonen, pesos de las cada unidad o está
adelante y aumentar la conexiones de de proceso: constituido
otra fase de aproximación las dos capas, procedimient por parejas
Para un primer prototipo se consideran como salida cuatro metodologías, las cuales
son el modelo en Cascada, Rational Unified Process, SCRUM y Xtreme
Programming.
Metodología Patrón de Salida
Cascada 1000
RUP 0100
SCRUM 0010
XP 0001
Tabla 16: Patrones de Salida.
Pseudocódigo:
-Entrada: Patrones de entrada, patrones de salida.
-Salida: Pesos de la red neuronal artificial [0,1].
-Inicializar los pesos de la red con valores aleatorios pequeños [0,1]
Hacer
Para cada (patrón de entrada)
salida_deseada = salidas (RNA, patrón_entrada); // calcular la
//salida deseada de la red neuronal para un patrón de entrada determinado
No habrán cambios.
Se adecua mejor para proyectos con criticidad media o alta. Para proyectos
con criticidad baja RUP se vuelve menos eficiente y consume más tiempo,
debido a la documentación extensiva que se debe generar.
Adoptar RUP requiere de una gran inversión. Esto incluye comprar, las
herramientas, costos por entrenar a las personas a usar las herramientas, y
si se quiere adecuar RUP de acuerdo a las necesidades de la organización,
se agrega un costo adicional, este proceso en si es un proyecto que requiere
pericia externa.
-SCRUM:
-XP:
Adecuado para construir software de alta calidad.
En la Tabla 17, se muestran los criterios de selección elegidos, sus opciones y las
cuatro metodologías. Se marca con una X los criterios de selección que se tienen
en cuenta para cada metodología:
Criterios Opciones Cascada RUP SCRUM XP
Equipo de trabajo 1. Son expertos X
2. Son calificados X X
3. Tienen poca experiencia X
4. Es estable X
5. Es inestable X
6. Tamaño: Pequeño (1-10) X X
7. Tamaño: Mediano (11-20) X X
8. Tamaño: Grande (20-más) X
9. En una misma locación X X
10. Distribuido
geográficamente
Requerimientos 11. Ya están definidos X X X
12. Aún no están definidos X
13. Son estables X X
14. Pueden cambiar X X X
Documentación 15. Es necesarias X
16. No es necesaria X X
Revisiones y 17. Son estrictas X
control 18. No son estrictas X
Recursos 19. Es necesario minimizar su X X
uso
A continuación se definen las reglas en lenguaje natural que serán usadas para la
selección de cada metodología.
Regla LN 1: Si el equipo de trabajo tiene poca experiencia(3) y es
inestable(5), los requerimientos ya están definidos(11), y son estables(13), la
documentación es necesaria(15), las revisiones y el control son
estrictos(17), es necesario minimizar el uso de recursos(19), se hará
mantenimiento al sistema en el futuro(21) , el proyecto es grande (largo,
costoso y complicado)(25) y su criticidad es mediana(27), no existe presión
para una rápida implementación(30), y la solución y objetivos son claros y
definidos(31), la metodología será Cascada.
Para esto usaremos una librería en java de Redes Neuronales, la cual contiene el
algoritmo backpropagation el cual nos permitirá entrenar nuestra red neuronal,
para obtener los pesos necesarios para realizar la tarea de selección de una
metodología, para ello definimos en un archivo .pat el número de reglas, el
número de neuronas en la capa de entrada, el número de neuronas en la capa de
salida, y los patrones de entrada y salida, necesarios para el entrenamiento.
Número de reglas: 28
Número de neuronas en la capa de entrada: 42
Número de neuronas en la capa de salida: 4
TRABAJOS FUTUROS
CONCLUSIONES
RECOMENDACIONES
Pinzon, S., & Guevara Bolaños, J. C. (2006). La Gestión, los procesos y las
metodologías de desarrollo de software. Bogotá.
Pressman, R. (2010). Ingeniería del Software: Un Enfoque Practico (Séptima
ed.). Mexico: McGraw-Hill.
Sajja, P. S., & Akerkar, R. (2010). Knowledge-based Systems (Primera ed.).
USA: Jones and Bartlett Publishers.
Sajja, P. S., & Akerkar, R. (2010). Knowledge-Based Systems for Development .
TMRF, 1-11.
Serrano, A. J., Soria, E., & Martín, J. D. (2010). Redes Neuronales Artificiales.
Valencia: Escuela Técnica Superior de Ingeniería.
Software Engineering Standards Comite of the IEEE Computer Society. (s.f.).
IEEE Standars for Developing Software Life Cycle.
Sommerville, I. (2011). Ingeniería de Software (Novena ed.). Mexico: Pearson
Education.
Vega Huerta, H., Cortez Vásquez, A., Huayna, A. M., Alarcón Loayza, L., &
Romero Naupari, P. (2009). Reconocimiento de Patrones mediante Redes
Neuronales Artificiales. Revista de Ingeniería de Sistemas e Informática, 17-26.
Yague, A., Rodríguez, P., & Garbajosa, J. (2008). La implantación de métodos
ágiles: Ventajas y Problemas. Madrid.
ANEXOS
Inicio:
Nombre de la persona entrevistada: Hiroshi Hiromoto
Experto en el tema de: Agile – SCRUM master
Fecha de la entrevista: 27/Nov/2015
Preguntas:
-¿Cuáles considera que son las metodologías más usadas en la actualidad para el
desarrollo de un proyecto de software?
Scrum, Kanban, Moprosoft.
-¿Cuáles son los criterios más importantes que se deben tomar en cuenta al
momento de elegir una metodología?
Tamaño del proyecto, riesgos, dominio del negocio y equipo de desarrollo.
-¿Si se tiene poco tiempo para desarrollar el proyecto software o se requiere que el
desarrollo sea lo más rápido posible, es conveniente utilizar la metodología Scrum?
Si
-¿Si las revisiones al proyecto son constantes y/o formales, es conveniente usar la
metodología Scrum?
Si.
-¿Siendo la criticidad de un proyecto baja, media o alta, para cuál o cuáles de ellas
es más conveniente usar la metodología Scrum?
Para todas.
-¿La metodología Scrum es más apropiada para ser usada con equipos de trabajo
estables (no cambia su composición) o inestables?
Más adecuada para equipos estables.
-¿La metodología Scrum es más apropiada para ser usada con equipos de trabajo
que se encuentran en una misma locación o distribuidos geográficamente?
Más adecuada para equipos que se encuentran en un misma locación.
-¿Si se requiere llevar un control estricto del desarrollo del proyecto, es conveniente
usar la metodología Scrum?
No.