Vous êtes sur la page 1sur 105

Instituto Tecnolgico de Orizaba Divisin de Estudio de Posgrado e Investigacin Maestra en Sistemas Computacionales

Tesis
TTULO:

Desarrollo de una aplicacin Web colaborativa basada en el modelo TRIZ-CBR para asistir la resolucin de contradicciones y capitalizar el conocimiento
PRESENTADA POR: I.S.C. Ren Lpez Flores

PARA OBTENER EL GRADO DE: Maestro en Sistemas Computacionales

DIRECTOR DE TESIS

Dr. Guillermo Cortes Robles


ORIZABA, VERACRUZ, MXICO MARZO 2011

A mi esposa Leticia porque confa en m tanto como para compartir su vida a mi lado, todos mis logros son logros de los dos. A mis padres que han sido el pilar ms importante en mi vida y formacin. A mis 4 hermanos espero que vean en m un buen ejemplo. A mi mis suegros y cuados que me han adoptado como un miembro ms de su familia.

Agradecimientos

A Dios, porque con Dios todo sin l nada. Al Dr. Guillermo Cortes Robles por que ha sido el gua que ha conducido el desarrollo de la tesis, muchas gracias por todo su apoyo y dedicacin. A los miembros de mi jurado: Dr. Giner, Dr. Ulises y Dr. Hilarin por sus consejos, asesoras y correcciones. A mi compaero Antonino que ha sido una parte importante en el desarrollo de este proyecto. A la academia de la Maestra en Sistemas Computacionales y los maestros por haberme brindado la oportunidad y todas las facilidades en la realizacin de mi maestra muchas gracias. A la maestra Ana Mara por su apoyo, por haberme escuchado y orientado cuando le platique de mi inters por entrar a la maestra. Al Consejo Nacional de Ciencia y Tecnologa por la beca que me otorg y que me permiti mejorar mi formacin acadmica y profesional. Al Ing. Daniel Hernndez Marn que ha compartido sus conocimientos y experiencia para la realizacin de la tesis.

Contenido
ndice de tablas...................................................................................................................... iv Resumen ................................................................................................................................ v Abstract ................................................................................................................................. vi Introduccin ............................................................................................................................ 1 Captulo 1 Antecedentes......................................................................................................... 3 1.1 Marco Terico........................................................................................................... 3

1.1.1 La evolucin tecnolgica y la innovacin ................................................................ 3 1.1.2 El enfoque psicolgico en la resolucin de problemas ............................................ 4 1.1.3 Anlisis de mtodos tradicionales ........................................................................... 5 1.1.4 La innovacin sistemtica y el enfoque de la Teora TRIZ ...................................... 6 1.1.5 Conceptos elementales de la teora TRIZ ............................................................... 6 1.1.6 La matriz de contradicciones................................................................................... 9 1.1.7 Razonamiento Basado en Casos (CBR) ............................................................... 11 1.1.8 Proceso del CBR .................................................................................................. 14 1.1.9 El modelo TRIZ-CBR ............................................................................................ 16 1.1.10 Innovacin Asistida por Computadora (CAI) ....................................................... 18 1.1.11 Aplicaciones Web ............................................................................................... 18 1.1.12 Trabajo colaborativo apoyado por la computadora (CSCW)................................ 19 1.2 Planteamiento del problema ........................................................................................ 20 1.3 Objetivo general .......................................................................................................... 20 1.3.1 Objetivos especficos ............................................................................................ 21 1.4 Justificacin................................................................................................................. 22 Captulo 2 Estado de la prctica ........................................................................................... 24 2.1 Trabajos relacionados ................................................................................................. 24 2.2 Anlisis comparativo ................................................................................................... 27 2.2.1 Conclusiones del estado de la prctica ................................................................. 28 2.3 Propuesta de solucin ................................................................................................. 28 2.3.1 Lenguaje de programacin ................................................................................... 28 2.3.2 Marcos de trabajo para aplicaciones Web............................................................. 28 2.3.3 Gestor de base de datos ....................................................................................... 29

2.3.4 Mapeo Objeto-relacional (ORM) ........................................................................... 30 2.3.5 Servidor de aplicacin ........................................................................................... 30 2.3.6 Criterios de eleccin ............................................................................................. 30 2.3.7 Solucin propuesta ............................................................................................... 31 Captulo 3 Aplicacin de la metodologa ............................................................................... 32 3.1 Introduccin................................................................................................................. 32 3.2 Casos de uso .............................................................................................................. 32 3.2.1 Casos de uso de la Web colaborativa. .................................................................. 33 3.2.2 Caso de Uso resolucin de contradicciones.......................................................... 39 3.2.3 Caso de uso Mdulo de CBR ................................................................................ 47 3.3 Modelado del dominio ................................................................................................. 49 3.4 Arquitectura de la aplicacin........................................................................................ 52 3.4.1 Elementos principales ........................................................................................... 53 3.4.2 Capa de la vista .................................................................................................... 54 3.4.3 Capa del controlador ............................................................................................. 55 3.4.4 Capa de servicios ................................................................................................. 57 3.4.5 Capa del modelo ................................................................................................... 59 3.5 Integracin de las tecnologas ..................................................................................... 62 3.6 Implementacin del mdulo de CBR ........................................................................... 64 3.7 Desarrollo de interfaces grficas de usuario ................................................................ 66 Captulo 4 Resultados........................................................................................................... 70 4.1 Registro de casos........................................................................................................ 70 4.2 Mdulo de CBR ........................................................................................................... 76 4.2.1 Variaciones en el ndice de similitud ..................................................................... 79 4.3 Proceso de colaboracin ............................................................................................. 80 Captulo 5 Conclusiones y recomendaciones ....................................................................... 85 Glosario ................................................................................................................................ 87 Publicaciones ....................................................................................................................... 91 Referencias .......................................................................................................................... 92

ii

ndice de imgenes
Figura 1.1 Fragmento de la matriz de contradicciones .......................................................... 10 Figura 1.2 Proceso del CBR ................................................................................................. 14 Figura 1.3 Modelo TRIZ-CBR ............................................................................................... 17 Figura 3.1 Diagrama de casos de uso de la Web colaborativa.............................................. 33 Figura 3.2 Diagrama de Caso de uso Resolucin de contradicciones................................... 40 Figura 3.3 Diagrama de casos de uso de la bsqueda en el Mdulo de CBR ....................... 47 Figura 3.4 Diagrama del modelo del dominio. ....................................................................... 49 Figura 3.5 Diagrama del modelo de dominio del CBR........................................................... 51 Figura 3.6 Diagrama de la arquitectura desarrollada ............................................................ 53 Figura 3.7 Formulario de registro de usuarios en ZUML ....................................................... 55 Figura 3.8 Controlador del formulario registro de usuario. .................................................... 57 Figura 3.9 Clase de servicio con operaciones para administrar usuarios. ............................. 58 Figura 3.10 Entidad de negocios con anotaciones de JPA. .................................................. 59 Figura 3.11 Interfaz GenericDAO .......................................................................................... 62 Figura 3.12 Archivo de configuracin ApplicationContext.xml ............................................... 63 Figura 3.13 Clase para la bsqueda en el CBR .................................................................... 66 Figura 3.14 Pgina de inicio con la opcin de autenticacin. ................................................ 67 Figura 3.15 Pgina principal usuario autenticado.................................................................. 68 Figura 3.16 Opcin de Mis proyectos.................................................................................... 68 Figura 3.17 Opcin de editar proyecto. ................................................................................. 69 Figura 4.1 Resultado de bsqueda en el mdulo de CBR..................................................... 77 Figura 4.2 Reporte en formato HTML ................................................................................... 78 Figura 4.3 Herramienta Notificaciones .................................................................................. 81 Figura 4.4 Invitacin a colaborar por nombre de usuario ...................................................... 82

iii

Figura 4.5 Invitacin por correo electrnico .......................................................................... 82 Figura 4.6 Mensaje con invitacin para colaborar ................................................................. 83 Figura 4.7 Opcin de colaboracin ....................................................................................... 83

ndice de tablas
Tabla 1.1 Comparacin TRIZ CBR ....................................................................................... 15 Tabla 2.1 Anlisis comparativo del estado de la prctica ...................................................... 27 Tabla 3.1 Descripcin de entidades ...................................................................................... 50 Tabla 3.2 Descripcin de entidades para el CBR .................................................................. 51 Tabla 3.3 Atributos indexados en el mdulo de CBR ............................................................ 64 Tabla 4.1 Problema colector solar......................................................................................... 70 Tabla 4.2 Problema ensamblado de automviles .................................................................. 72 Tabla 4.3 Problema garrafn de agua................................................................................... 75 Tabla 4.4 Caso de prueba del mdulo CBR. ......................................................................... 76 Tabla 4.5 Cambio en nmero de recursos ............................................................................ 79 Tabla 4.6 Cambio en el nmero de restricciones .................................................................. 80

iv

Resumen
La importancia de administrar adecuadamente la informacin en las organizaciones propici el desarrollo de sistemas de informacin, los cuales son un elemento que permite tener una ventaja competitiva para la toma de decisiones; actualmente muchas industrias dependen del uso extensivo de estos sistemas para su existencia. Un tipo de sistema de informacin con una gran trascendencia son las aplicaciones Web, las cuales utilizan la infraestructura que provee Internet. Una de las caractersticas ms interesantes de este tipo de sistemas es la capacidad de proveer una plataforma para el trabajo colaborativo. Esta capacidad se revela fundamental dentro de la administracin de la innovacin, proceso que es en esencia un trabajo colaborativo y que no escapa a la influencia de este tipo de aplicaciones computacionales. Los trabajos relacionados con este dominio de reciente creacin se encuentran en el rea de la Innovacin Asistida por Computadora (CAI). A travs del CAI se busca ofrecer a los ingenieros, administradores, inventores y dems involucrados en el proceso de innovacin, un conjunto de herramientas de software para dirigir y administrar dicho proceso. En esta tesis se desarroll una aplicacin Web que permite la colaboracin entre los involucrados en el proceso de innovacin, para que mediante el uso del modelo TRIZ- CBR se habilite la capitalizacin del conocimiento adquirido durante la resolucin de problemas inventivos.

Abstract
The importance of properly managing information in organizations led to the development of information systems, which are an element that provides a competitive advantage for making decisions, now many industries rely on extensive use of these systems for their existence. One type of information system with high relevance are Web applications that use the infrastructure that Internet provides. One of the most interesting features of these systems is the ability to provide a platform for collaborative work. This capability is essential in the management of innovation, a process that is essentially a collaborative work that has not escaped the influence of such computer applications. The works related to this domain are newly established in the area of Computer Aided Innovation (CAI). The CAI seeks to provide engineers, managers, inventors and others involved in the innovation process, a set of software tools to manage and administer such process. In this thesis is developed a Web application that enables collaboration among those involved in the innovation process, so that by using the TRIZ-CBR model enabling the capitalization of knowledge acquired while solving an inventive problem.

vi

Introduccin

Introduccin
En el ambiente industrial actual, la capacidad para controlar y dirigir el proceso de innovacin es en un factor primordial para el xito y permanencia en un mercado altamente competido. Cualquiera que sea el escenario (productos, servicios o procesos), el proceso de innovacin requiere de buenas ideas y es en esta etapa, donde la tcnicas tradicionales pierden efectividad. Tpicamente, las metodologas y herramientas empleadas para satisfacer la etapa de generacin de ideas y conceptos, estn basadas nicamente en un enfoque psicolgico. Esto conduce a soluciones poco eficientes y de una calidad inferior, a aquellas alcanzables mediante el empleo de nuevas metodologas o teoras. Existe un enfoque capaz de asistir a los ingenieros durante el desarrollo sistemtico de nuevos productos, servicios y procesos: la teora TRIZ (Teora para la resolucin de problemas inventivos) la cual se apoya en la evolucin de la tecnologa y la ciencia para resolver problemas. Sin embargo, esta teora posee varias limitaciones y dentro de estas, una es fundamental para el desarrollo de esta tesis: La teora TRIZ no dispone de un mecanismo explcito para capturar y reutilizar el conocimiento adquirido al momento de resolver un problema inventivo. Esta deficiencia se resuelve al combinar la teora TRIZ con el razonamiento basado en casos (Case-Based Reasoning o CBR). TRIZ-CBR es un modelo que propone una sinergia entre ambos enfoques, pero no cuenta actualmente con un software orientado hacia el trabajo colaborativo que facilite su aplicacin. En esta tesis se busca disear, desarrollar e implementar una aplicacin Web colaborativa que cumpla con los requisitos establecidos en dicho modelo.

Introduccin

La estructura de esta tesis se organiza en cinco captulos: Captulo 1: en este captulo se establecen los antecedentes y el marco terico. el objetivo es definir el contexto del proyecto, as como realizar una breve introduccin al concepto de innovacin y la resolucin de problemas. Tambin se busca ofrecer una descripcin de los mtodos tradicionalmente empleados en la resolucin de problemas. Se aborda la innovacin sistemtica a travs de la teora TRIZ, se describe lo que son las herramientas CAI tambin se hace una definicin de lo que es una aplicacin Web. Adems en este captulo se presenta el planteamiento del problema, el objetivo general y los objetivos especficos del proyecto, as como su justificacin. Captulo 2: presenta el estado de la prctica bajo la forma de un estudio sobre los trabajos relacionados con la presente propuesta. Es un anlisis de los artculos consultados que al final se resumen en una tabla comparativa. Tambin se incluye la solucin propuesta y metodologa de desarrollo. Captulo 3: documenta el desarrollo de la metodologa para alcanzar la solucin propuesta. Se describe: los requisitos del sistema empleando casos de uso, el modelado del dominio, la descripcin de la arquitectura, la integracin de las tecnologas y se incluyen pantallas de usuario de las interfaces grficas creadas con ZK. Captulo 4: ofrece los resultados alcanzados en el desarrollo de la tesis, para ello se documentan 3 casos resueltos con la matriz de contradicciones y que estn disponibles en la bibliografa, se explica el funcionamiento del mdulo de CBR y el proceso de colaboracin. Captulo 5: describe las conclusiones que se establecen con el desarrollo de la tesis as como recomendaciones para trabajos futuros.

Antecedentes

Captulo 1 Antecedentes
La importancia de la innovacin en la actualidad

La diversidad de creaciones tecnolgicas se entiende a travs de la teora de la evolucin tecnolgica como lo sugiere Basalla [1]. En dicha teora se busca hacer una analoga con la teora de evolucin de las especies que Charles Darwin propuso. La evolucin tecnolgica es causa de cambios en la sociedad, en la poltica y en el medio ambiente, influyendo directamente en la historia de la humanidad. En la gran variedad de productos tecnolgicos que existen actualmente se identifica un elemento comn: la innovacin. De acuerdo con varios autores [2], [3] la innovacin es un proceso creativo, social, tcnico y econmico, que es fundamental para el desarrollo de la industria actual. De esta definicin se establece la importancia que tiene en las empresas controlar este proceso tan complejo, ya que la innovacin permite tener una ventaja competitiva para ofrecer productos y/o servicios que los clientes aceptan con xito.

1.1

Marco Terico

1.1.1 La evolucin tecnolgica y la innovacin

El desarrollo tecnolgico del ser humano reposa en su capacidad para resolver problemas. Consecuentemente, uno de los retos de la innovacin es la resolucin de problemas. Diferentes autores aseguran que la innovacin es un proceso continuo de resolucin de problemas [4]. Se entiende por problema la diferencia que existe entre dos estados, el actual y otro al que se desea llegar. Esto se interpreta tambin como cualquier oportunidad para mejorar un sistema. La resolucin de problemas es una actividad central en el proceso de innovacin y el desarrollo tecnolgico. Por lo tanto es importante dedicar especial atencin al estudio de este proceso. A partir de esta premisa se plantean las siguientes preguntas:

Antecedentes

1. Cmo hacen los inventores para innovar o inventar? 2. Ms importante an, Cules son los mtodos empleados para la resolucin de problemas? 3. Estos se aprenden y se reutilizan? Para dar respuesta a estas preguntas se emplean dos enfoques que explican el proceso de resolucin de problemas: el enfoque psicolgico y el enfoque basado en la evolucin de la tecnologa.
1.1.2 El enfoque psicolgico en la resolucin de problemas

El enfoque psicolgico se apoya en las habilidades creativas innatas de cada individuo, no considera los descubrimientos de la ciencia, ni tampoco las leyes de evolucin de la tecnologa. Este enfoque sugiere que la creatividad es aleatoria y que es el resultado de un proceso especial. Algunos de los mtodos que propone este enfoque se presentan a continuacin. 1) Prueba y error. En 1898 E. Thorndike expuso formalmente el mtodo de prueba y error durante una investigacin sobre el aprendizaje. Este mtodo se caracteriza por una ausencia de direccin durante la bsqueda de soluciones. La bsqueda de conceptos capaces de resolver el problema que se enfrenta, se hace de manera aleatoria, intentando cubrir el mximo del espacio posible de soluciones. El mtodo es tan antiguo como la humanidad y se emplea desde el nacimiento de nuestra sociedad. De hecho continua vigente en nuestros das. A pesar del continuo incremento de la complejidad de los problemas inventivos actuales, los mtodos para resolverlos no presentan ninguna mejora y sin embargo, ingenieros e innovadores continan tratando de alcanzar sus objetivos utilizando este antiguo mtodo. 2) Lluvia de ideas o Brainstorming. El mtodo lo desarroll Alex Osborn en 1937, pero fue hasta 1957 que apareci la primera publicacin que haca

Antecedentes

referencia a este mtodo. La lluvia de ideas naci de la necesidad de incrementar la eficiencia del mtodo de prueba y error. En este mtodo se busca, mediante la supresin temporal del sentido de la crtica, amasar todas las ideas espontneamente producidas por los miembros de un equipo, generalmente pluridisciplinario [5]. 3) Sinctica o Synectics. Un intento por mejorar el brainstorming llev a la creacin de una metodologa: la sinctica. Durante la dcada de 1960, William Gordon descubri que exista una sinergia entre el brainstorming, el sentido de la crtica y el razonamiento analgico (o razonamiento por analogas). En consecuencia, era viable crear una red para interconectar estos tres procesos mentales y capturar la sinergia producida. Synectics es un vocablo griego que significa unir elementos aparentemente sin relacin alguna. Esta tcnica utiliza el intercambio de analogas y metforas entre un equipo pluridisciplinario y cuidadosamente seleccionado, donde coinciden diferentes personalidades y experiencias en diversas reas de la ciencia o de una industria [6].
1.1.3 Anlisis de mtodos tradicionales

Tomando como base la descripcin sobre los mtodos ms utilizados para resolver problemas bajo el enfoque psicolgico, se extraen las siguientes conclusiones:

Son altamente aleatorios. Su aprendizaje es rpido, excepto la sinctica. Despus de largos periodos de aplicacin sigue sin sufrir modificacin para incrementar su eficiencia. No permiten transferir el conocimiento adquirido de un rea de la ciencia a otra.

Antecedentes

1.1.4 La innovacin sistemtica y el enfoque de la Teora TRIZ

La solucin de problemas inventivos o complejos, necesita de herramientas o tcnicas capaces de reducir la complejidad del problema. Estas tcnicas no se formalizan nicamente con base en la experiencia de un inventor o con base en el anlisis de un solo dominio de la tecnologa. De acuerdo con Altshuller [4], la bsqueda catica y desordenada, tpica de los mtodos descritos con anterioridad, tiene un costo bastante elevado en tiempo y energa para la resolucin de un problema. Consecuentemente, es necesario desarrollar un mtodo capaz de producir una bsqueda ordenada, basada en reglas bien estructuradas y lgicas.

Preocupado por las deficiencias de los enfoques tradicionales para resolver problemas el inventor ruso G. S. Altshuller propuso una teora que llam TRIZ (Teora para resolver problemas inventivos). Lo que Altshuller pretenda como inventor era ayudar a otros en su proceso de innovacin [7], y con los trabajos de investigacin que realiz, estableci las bases para una teora que pretende hacer de la innovacin un proceso sistemtico y controlable. Una definicin de TRIZ establece que es un rea de la ciencia que explora los mecanismos de evolucin de los sistemas tcnicos con el objetivo de desarrollar mtodos analticos y tcnicas de resolucin de problemas [8]. Una ventaja de la teora TRIZ sobre otros mtodos tradicionales para resolver problemas es que gua el proceso de solucin hacia modelos industriales y de ingeniera ya probados con xito en mltiples dominios tecnolgicos. En consecuencia, lo aleatorio no reside ms que en la formalizacin del problema y en la interpretacin de las direcciones producidas por tales modelos.
1.1.5 Conceptos elementales de la teora TRIZ

A continuacin se hace una breve introduccin a algunos de los conceptos elementales de la teora de TRIZ [7].

Antecedentes

1) Sistema tcnico. De acuerdo con Savransky [9] un sistema tcnico es un conjunto ordenado de subsistemas interactuando destinados a la ejecucin de funciones especficas. Posee comportamientos y propiedades que no se reducen a los comportamientos y propiedades de los subsistemas por separado. Los sistemas tcnicos se clasifican en: dinmicos (televisin, carro, piano, entre otros) y estticos (construccin, muebles, anteojos, entre otros). 2) Tendencias de evolucin. Existen tendencias o leyes objetivas que explican la evolucin de todo sistema tcnico. Estas tendencias se descubrieron y analizaron, y ahora se aplican para resolver los problemas intrnsecos de desarrollo de productos o de tecnologas. Entre stas la ms importante es el concepto de sistema ideal, que implica que todo sistema evoluciona hacia el incremento de su grado de perfeccionamiento. El grado de perfeccionamiento se determina mediante la relacin que existe entre las funciones tiles de un sistema y la suma de los costos y efectos indeseables asociados al sistema. 3) La contradiccin como elemento central de un problema. Durante su evolucin, un sistema tcnico supera las contradicciones que existen entre un estado actual, un estado futuro y las restricciones asociadas a la transicin entre estos estados. Una contradiccin se define como la condicin en la cual dos exigencias o requerimientos de un sistema son mutuamente exclusivos y sin embargo se asocian para alcanzar un mismo objetivo [7]. La resolucin de la contradiccin (mediante la aplicacin de las herramientas adecuadas), elimina el conflicto entre ambos factores, contrariamente a los enfoques tradicionales que favorecen el compromiso. Existen dos tipos fundamentales de contradicciones: las contradicciones fsicas y las contradicciones tcnicas. 4) El proceso de innovacin se despliega sistemticamente. La aplicacin de TRIZ demuestra su habilidad para eliminar las barreras entre diferentes disciplinas. En otros trminos, las herramientas de TRIZ permiten acceder a un conjunto de mejores prcticas, a soluciones y estrategias de resolucin de

Antecedentes

problemas inventivos altamente creativas. Los conceptos fundamentales de TRIZ en coordinacin con su variado y equilibrado repertorio de herramientas, permiten delimitar el espacio de solucin de un problema y por este medio, producir de manera eficaz y casi sistemtica una solucin. 5) Resultado Ideal Final (RIF). Herramienta propuesta por Altshuller y Shapiro que sirve para guiar la resolucin de un problema. De acuerdo con Altshuller, el RIF se plantea como una fantasa, como una utopa o algo que es inalcanzable pero que funcionan de gua. El RIF es la solucin que resuelve la contradiccin sin compromiso. Los recursos se utilizan para pasar de la contradiccin a una solucin casi perfecta [9][10]. 6) El concepto de recurso. Todo sistema en evolucin, dispone de ciertos recursos que se utilizan para mejorar la eficiencia de este sistema. Un recurso es un elemento disponible en el sistema o en su ambiente, generalmente inactivo y capaz de producir una accin til sin costo o al menor costo posible. La identificacin y el uso de estos recursos produce nuevas ideas, resuelve contradicciones y dirige la evolucin de un sistema. Se recomienda despus de plantear el problema hacer un anlisis con el fin de identificar los recursos disponibles dentro del sistema. Los conceptos de TRIZ se agrupan en un conjunto de herramientas de aplicacin general. Estas herramientas se dividen en: basadas en el conocimiento y herramientas analticas. La matriz de resolucin de contradicciones tcnicas o simplemente matriz de contradicciones es una de las herramientas de TRIZ basadas en el conocimiento, y tiene una elevada importancia para el desarrollo en esta tesis. Por esta razn, la seccin siguiente ofrece una descripcin de esta herramienta.

Antecedentes

1.1.6 La matriz de contradicciones El desarrollo de la matriz de contradicciones comenz en 1946 con el objetivo primordial de ofrecer una herramienta capaz de guiar la creatividad durante la resolucin de una contradiccin tcnica. En esta herramienta se concentran las estrategias, tcnicas y mtodos ms exitosos para enfrentar este tipo de situaciones. Para el desarrollo de esta herramienta fue indispensable tomar en cuenta el avance tcnico en muchos campos de la ciencia y en diferentes tipos de industrias, sobre todo en aquellas donde se resuelve algn tipo especfico de contradiccin. Por ejemplo en la aeronutica la contradiccin entre la velocidad y el peso. Durante el anlisis de patentes, Altshuller y sus colaboradores se percataron que, inclusive las soluciones ms originales, reposaban sobre ciertos principios fundamentales. Estos principios se sintetizaron y forman un cuerpo de 40 grandes vas de resolucin de problemas inventivos. Una constatacin paralela tuvo lugar durante este anlisis: con un nmero limitado de parmetros, a saber, 39, es posible formalizar un problema inventivo. La relacin entre los 39 parmetros y los 40 principios de resolucin dio lugar a una matriz de 39*39. Una actualizacin de esta matriz aument el nmero de parmetros a 48. La cantidad de principios inventivos sigue sin modificacin. En la Figura 1.1 [11] se muestra un ejemplo de un fragmento de la matriz

Antecedentes

Figura 1.1 Fragmento de la matriz de contradicciones

Para resolver un problema empleando la matriz de contradicciones se siguen las siguientes cinco actividades: 1) Identificar en el problema el conflicto entre dos caractersticas o parmetros de un sistema. 2) Identificar estos dos parmetros entre la lista de los 39 (o los 48) parmetros genricos. 3) Con la ayuda de la matriz de contradicciones sobre las lneas, identificar el parmetro que se desea mejorar y sobre las columnas, el parmetro que se degrada debido a esta mejora (o que impide que se realice la mejora). El punto de interseccin entre la lnea y la columna es la contradiccin. Esta contradiccin asla un conjunto de principios de solucin (ordenados segn un orden recomendado de aplicacin), que se utilizan eficazmente en diversos dominios, para eliminar la contradiccin identificada.

10

Antecedentes

4) Hacer un anlisis de los principios identificados. 5) Aplicar el principio genrico para encontrar una solucin especfica a nuestro problema. Si ninguno de los principios identificados en el paso 4) permite resolver el problema, se sugiere revisar el conjunto de los 40 principios propuestos en la matriz para encontrar la solucin. Nota: si una vez revisados los 40 principios, no es posible transformar ninguno de ellos en una solucin pragmtica, se recomienda analizar el planteamiento del problema. Desafortunadamente en el proceso de resolucin de contradicciones no se contempla un mecanismo que permita registrar y recuperar los problemas resueltos en el pasado, generando con ello una prdida de conocimiento. Para superar esta limitacin se integr una tcnica del rea de la Inteligencia Artificial (AI) denominada Razonamiento Basado en Casos o CBR, el cual permite la capitalizacin y la administracin del conocimiento. Ms adelante se describe un modelo denominado TRIZ-CBR que esquematiza y describe una sinergia entre los dos enfoques.
1.1.7 Razonamiento Basado en Casos (CBR)

El CBR es una tcnica que sirve para capturar, adaptar y reutilizar el conocimiento generado en la resolucin de problemas. Se basa en el principio de que problemas similares tienen soluciones similares. Tuvo sus orgenes en el trabajo que realizaron Schank y Abelson en 1977 acerca de la memoria humana y la memoria dinmica. Un grupo de trabajo de la Universidad de Yale, que Schank dirigi, cre un modelo cognitivo para CBR y la primera aplicacin computacional basada en dicho modelo [12]. Desde un punto de vista pragmtico, mltiples son las razones que justifican el empleo del CBR como herramienta de resolucin de problemas y administracin del conocimiento, entre ellas se encuentran las siguientes [12], [13], [14]:

11

Antecedentes

Los expertos de cualquier disciplina comparan un problema nuevo, con las experiencias adquiridas. Si se identifica un problema similar, este se adapta para satisfacer las condiciones exigidas en el problema que confrontan.

Las experiencias estn disponibles en fuentes bibliogrficas y en la memoria de los expertos, de este modo, stas se adquieren cuando se resuelve un nuevo problema.

Un problema resuelto se generaliza hasta cierto punto, a fin de extraer ciertas caractersticas que faciliten su identificacin y determinen sus particularidades. La comparacin entre dos experiencias o casos, se efecta fcilmente. Adems, stas mantienen su pertinencia sobre intervalos de tiempo relativamente largos. Las razones mencionadas se resumen en dos caractersticas del CBR:

memorizar y reutilizar el conocimiento. Antes de definir el proceso de CBR se presentan las siguientes definiciones de conceptos importantes para entender mejor su funcionamiento [12]: 1) Representacin de un caso. Un caso se define como la representacin de un episodio de conocimiento o experiencia. Un caso es el relato de un evento, una historia o algn tipo de registro que tpicamente incluye: a. El problema que describe el estado del entorno cuando ocurri el caso. b. La solucin expuesta derivada de la solucin problema. Por lo tanto un caso individual se compone de dos elementos: una descripcin del problema y una solucin almacenada. 2) Indizar. Un ndice es una estructura computacional de datos que se almacena en memoria para hacer las bsquedas ms rpidamente. Un CBR tambin ocupa ndices para acelerar la bsqueda. La informacin contenida en un caso es de dos tipos:

12

Antecedentes

a. Informacin indizada que se usa para la recuperacin. b. Informacin no indizada que provee de un contexto a la informacin que es importante para el usuario pero que no se utiliza directamente en la recuperacin. Una tarea nada fcil en el diseo de un CBR es identificar los atributos o caractersticas del caso que servirn de ndices. La siguiente lista describe como se define un ndice: Es predecible. Dirige los propsitos para los cuales se usa el caso. Es lo suficientemente abstracto para permitir ampliar el uso futuro de la base de casos. Es concreto para ser reconocido en un futuro.

3) Almacenamiento. El almacenamiento es un aspecto importante en el diseo de un sistema CBR eficiente, en l se refleja la vista conceptual de la informacin que se representa en el caso y toma en cuenta los ndices. La base de casos se organiza en una estructura manejable que permite la bsqueda eficiente y la implementacin de los mtodos de recuperacin. 4) Recuperacin. La recuperacin de un caso est muy relacionada y depende del mtodo usado para indizar. En general, son dos las tcnicas usadas por las herramientas CBR comerciales: la recuperacin mediante el algoritmo del vecino ms cercano y la recuperacin inductiva. El algoritmo del vecino ms cercano es una tcnica muy simple que consiste en determinar la distancia que existe entre los atributos indizados del nuevo caso y los atributos indizados de los casos almacenados en la base de casos, localizando el que ms similitud tenga. El clculo de la distancia se realiza con

13

Antecedentes

alguna de las siguientes medidas de similitud: distancia Euclidiana, distancia de Manhattan y Alineamiento dinmico temporal. La recuperacin inductiva emplea un rbol de decisiones, a partir del cual, se encuentra el caso ms parecido a la informacin dada. El algoritmo ID3 que Ross Quinlan cre es til para la generacin del rbol de decisiones [15].
1.1.8 Proceso del CBR

En la Figura 1.2 se muestran los elementos que componen el proceso del CBR [12].

Figura 1.2 Proceso del CBR

El proceso de CBR se define en los siguientes cuatro pasos: 1) Recuperar el caso ms similar. 2) Reutilizar el caso para intentar resolver el problema. 3) Revisar la solucin propuesta si es necesario.

14

Antecedentes

4) Guardar la solucin encontrada como parte de un caso nuevo. Del proceso anterior se establece que un problema nuevo se compara con los casos en la base de casos, y se recupera uno o ms casos. La solucin propuesta por los casos similares se reutiliza y se evala. Cuando el caso recuperado no es similar, la solucin se revisa, generando un nuevo caso que se almacena una vez validado. La principal limitante en el proceso del CBR se presenta en la etapa de recuperacin, cuando no existe un caso similar en la base de casos. Este problema imposibilita continuar las siguientes actividades [16]. En la Tabla 1.1 se muestran las diferencias ms importantes entre el enfoque de TRIZ y el CBR [17].
Tabla 1.1 Comparacin TRIZ CBR

CBR

TRIZ

Basado en el pensamiento analgico Basado en el pensamiento analgico, pero enfocado a dominios especficos. pero utiliza analogas a travs de

diferentes dominios. Propone solucin a los problemas Es necesario un anlisis profundo para

rpidamente. No es necesario obtener la identificar que herramienta de TRIZ se solucin desde cero. utiliza.

Propone soluciones en disciplinas que el El problema y los elementos de TRIZ razonador no comprende del todo. requieren ser bien entendidos.

Experiencias pasadas producen criterios La idealidad es el nico criterio propuesto para evaluar las soluciones. Recuerda los problemas y para la evaluacin. errores No tienen memoria. Por lo tanto, no se

ocurridos en el pasado, previniendo al almacenan problemas resueltos, errores

15

Antecedentes

CBR razonador que acciones tomar para evitar o xitos. o prevenir errores pasados.

TRIZ

No estn disponibles la solucin o Contiene un resumen de las mejores estrategias de solucin de otros dominios soluciones y estrategias de mltiples dominios. No tiene un concepto o herramienta para Incluye superar la inercia psicolgica. algunas herramientas para

reducir la rigidez mental. Es un enfoque equilibrado entre la psicologa y la tecnologa.

Sin embargo, de acuerdo con varios autores [2], [18], [19], [16], [37] es posible establecer una sinergia entre la teora TRIZ y el CBR, de la cual se desprende el modelo TRIZ-CBR.
1.1.9 El modelo TRIZ-CBR

Es a partir de las similitudes y diferencias constatadas entre ambos enfoques, que se obtiene un mecanismo de resolucin de problemas esquematizado en la Figura 1.3 [16].

16

Antecedentes

flow chart Modelo TRIZ-CBR

Principios Asociados

Interpretacin

Solucin propuesta

No Caso Recuperado? Si Caso Resuelto FC_OnPageConnector . Recuperacin Casos Anteriores Memoria basada en las contradicciones Revisin Caso verificado y/o reparado Memorizacin Caso registrado Elaboracin Resultado Final Ideal Descripcin del problema Problema Objetivo Nuevo caso

Contradiccin

-Objetivo -Recursos -Restricciones, etc

Figura 1.3 Modelo TRIZ-CBR

En el proceso TRIZ-CBR el problema objetivo se modela como una contradiccin. Despus la contradiccin y algunos otros elementos derivados de la descripcin del problema se usan para recuperar un caso similar de la memoria. La bsqueda ofrece o no un caso similar. Por consecuencia, en esta etapa de la bsqueda, se siguen dos sub-procesos: 1) Se recupera un caso similar en la base de casos. Comienza el proceso de reutilizacin y/o adaptacin. El usuario adapta la solucin del problema en la base de casos a los requerimientos del problema objetivo. 2) No existe un caso similar registrado. El sistema propone al menos un principio de solucin asociada a la contradiccin. El usuario interpreta el principio de solucin para proponer una solucin potencial.

17

Antecedentes

Cualquiera de los dos escenarios propone una solucin. La solucin propuesta se verifica y si es necesario se rectifica. El proceso termina cuando la implementacin (xito o fracaso), la estrategia de adaptacin de la solucin y las sugerencias de implementacin se validan para memorizarse en la base de casos. De los pasos descritos en el proceso anterior, se deriva que TRIZ ofrece el conocimiento genrico que permite abordar cualquier problema formalizado como una contradiccin. Adems de esto, TRIZ ofrece una estructura que permite clasificar e indexar un caso. El CBR proporciona los elementos necesarios para buscar y comparar dos problemas, e igualmente para conservar y actualizar las experiencias obtenidas. En esta sinergia se integran diferentes herramientas y conceptos de TRIZ como la contradiccin, el resultado final ideal y la matriz de resolucin de contradicciones tcnicas. Desafortunadamente este modelo an no cuenta con herramientas que faciliten su aplicacin y difusin, el amplio uso de los sistemas de informacin los convierte en una opcin factible para la creacin de un software que permita implementarlo.
1.1.10 Innovacin Asistida por Computadora (CAI)

La Innovacin Asistida por Computadora es un dominio emergente dentro del entorno computacional y cuyo propsito es asistir a los ingenieros, administradores e innovadores en el proceso de innovacin y el desarrollo de productos. Las herramientas de tipo CAI forman parte de lo que se define en el mbito de la informtica como tecnologas asistida por computadora o CAx [21].
1.1.11 Aplicaciones Web

La definicin de aplicacin Web que aqu se plantea toma como base los elementos de diferentes definiciones, ya que no es posible encontrar una definicin aceptada por la mayora.

18

Antecedentes

Una aplicacin Web es la tercera generacin en la evolucin de los contenidos en la Web. Es un tipo de producto ms sofisticado que supera las caractersticas de sus antecesores: las pginas Web que aparecieron a mediados de 1990 como la primera etapa evolutiva y los productos de segunda generacin denominados sitios Web [22]. Se define como una coleccin de diferentes recursos (servlts, scripts, paginas HTML y clases) que se empacan y ejecutan en diferentes servidores de contenidos [23]. Entre sus caractersticas [24] se enlistan las siguientes: Se basan en una arquitectura Web e infraestructura existente. Se acceden a travs de un Web browser (Internet Explorer, Mozilla Firefox, Google Chrome, entre otros). La plataforma y lenguaje de programacin son independientes. Promueven la reutilizacin de la aplicacin ms all del Web browser. Permiten la composicin con otras aplicaciones Web o de escritorio

1.1.12 Trabajo colaborativo apoyado por la computadora (CSCW) Es un campo de investigacin multidisciplinario que se enfoca en el desarrollo

de herramientas y tcnicas computacionales que apoyan el trabajo de muchas personas en tareas relacionadas [25] [26]. Las caractersticas de un sistema CSCW (Computer Supported Cooperative Work) son: Facilita la comunicacin entre los usuarios. Coordinacin de las actividades realizadas por los usuarios. Colaboracin entre grupos de usuarios para la creacin, modificacin y distribucin de artefactos y/o productos. Control en los procesos para asegurar la integridad y llevar un registro en el progreso de los proyectos.

19

Antecedentes

1.2 Planteamiento del problema


Las personas que ocupan el enfoque para resolver problemas de la teora TRIZ, no cuentan con un sistema Web que permita el trabajo colaborativo; que sea funcional y eficiente para asistir en la resolucin de un problema formulado como una contradiccin y que al mismo tiempo permita capitalizar las experiencias adquiridas. Por lo tanto cada vez que se enfrenta un problema inventivo, se despliega el proceso completo de resolucin de problemas. Esto conlleva a que el conocimiento generado y puesto en accin durante dicho proceso no se registre, tampoco el resultado de la implementacin de la solucin propuesta, provocando la reinvencin de soluciones y disminuyendo la eficiencia del proceso. Con base en lo expuesto en el prrafo anterior, se plantea que existe la necesidad de una aplicacin Web colaborativa para asistir el proceso de modelar y resolver un problema que se formula como una contradiccin. Esta aplicacin Web necesita estar disponible en mltiples disciplinas para ir creando de forma colaborativa una base de soluciones creativas, con el propsito de contar con una herramienta informtica efectiva y eficiente capaz de hacer de la innovacin un recurso disponible sobre demanda. Generalmente los problemas inventivos o problemas que contienen al menos una contradiccin se resuelven mediante un compromiso que rara vez satisface los requerimientos reales del problema. Esto es lo que hace diferente a un problema inventivo de un problema de optimizacin, ya que distinto a la optimizacin, en este tipo de problemas se genera un espacio de solucin.

1.3 Objetivo general


Desarrollar una aplicacin Web colaborativa para capturar, modelar y resolver un problema inventivo, ocupando como base el modelo TRIZ-CBR. Este proceso ofrece un mecanismo para almacenar y recuperar problemas resueltos que se modelan como una contradiccin.

20

Antecedentes

La aplicacin provee una solucin de acuerdo a los parmetros del problema modelado, basndose en un ndice de similitud. Esto implica que el sistema posee una memoria que permite almacenar experiencias.
1.3.1 Objetivos especficos

1. Realizar un anlisis bibliogrfico sobre la teora TRIZ para comprender el funcionamiento del proceso de resolucin de problemas mediante la matriz de contradicciones tcnicas y los principios de separacin. 2. Analizar el proceso de formulacin y composicin de una contradiccin (sin importar su tipo). 3. Analizar el proceso de resolucin de una contradiccin. 4. Proponer un esquema para construir un episodio de conocimiento. 5. Proponer y modelar una estructura para almacenar los episodios de conocimiento derivado de las soluciones creativas que se vayan descubriendo con el sistema. Esto significa que se desarrolla una estructura para una memoria capaz de almacenar las experiencias adquiridas durante la solucin de un problema. 6. Proponer un esquema para recuperar y presentar soluciones almacenadas mediante el anlisis de mtodos y tcnicas para calcular el ndice de similitud entre 2 o ms problemas. 7. Modelar una arquitectura que facilite la integracin con otro mdulo para la resolucin de problemas de inventiva, pero que se basa en el Anlisis camposustancia y las 76 soluciones estndar de TRIZ. El desarrollo de este segundo mdulo est fuera del alcance de esta tesis. 8. Disear una interfaz intuitiva y fcil de usar que permita capturar y modelar los problemas inventivos en trminos de los conceptos intrnsecos de la matriz de contradicciones tcnicas y los principios de separacin. 9. Facilitar la transferencia de soluciones entre diferentes reas tecnolgicas. 10. Proveer de un mecanismo que le permita a los usuarios hacer una evaluacin o feedback de las caractersticas del sistema

21

Antecedentes

11. Tener un soporte que facilite la internacionalizacin.

1.4 Justificacin
Los siguientes puntos abordan la justificacin de la tesis desde diferentes perspectivas: tecnolgica, social, acadmica y econmica. Justificacin tecnolgica o Como aportacin tecnolgica se plantea tener una aplicacin Web colaborativa que sea eficiente y funcional para facilitar a las personas que ocupan la teora TRIZ para modelar y resolver un problema inventivo (formulado como una contradiccin). Se busca crear, con la ayuda de un sistema de tipo CBR, una base de soluciones reales en diferentes reas profesionales para facilitar la reutilizacin y transferencia del conocimiento ya adquirido. o Se pretende facilitar la transferencia entre diferentes reas tecnolgicas ya que la herramienta est disponible a travs de la Web permitiendo que los usuarios colaboren sin importar su ubicacin geogrfica. o No se tiene reportado una aplicacin Web colaborativa que sistematice el despliegue del modelo TRIZ-CBR. o Plantear en el rea de la ingeniera de software una arquitectura que de soporte al trabajo colaborativo en aplicaciones Web dentro del CAI. Justificacin social o En el mbito social su busca poner al alcance a travs del sitio Web de la Asociacin Mexicana de TRIZ, A.C. http://www.ametriz.com/ una

herramienta que est disponible en los idiomas espaol, ingls y francs, para facilitar el uso y difusin de las metodologas de la teora TRIZ: Matriz de contradicciones tcnicas y los principios de separacin.

22

Antecedentes

Justificacin acadmica o TRIZ es una teora que est en vas de consolidarse, por lo tanto, necesita de herramientas tiles que le permitan estar al alcance de un mayor nmero posible de personas. Actualmente no se reporta en la Web la existencia de una herramienta funcional que ofrezca lo que se propone con el desarrollo de este proyecto. o El desarrollo sistemtico de nuevos conocimientos, produce innovaciones en productos, procesos o en la estructura de la organizacin, por eso es necesario la creacin de una estructura que favorezca la adquisicin, el anlisis, la preservacin y la reutilizacin del conocimiento como un elemento capaz de acelerar el proceso de innovacin.

Justificacin econmica o En el mbito econmico se reduce el tiempo y el esfuerzo dedicado a la resolucin de problemas ya que se parte de soluciones reales comprobadas. Se busca asegurar el xito de una solucin, as como evitar posibles fracasos.

23

Estado de la prctica

Captulo 2 Estado de la prctica


Con el propsito de ampliar el conocimiento que existe acerca de posibles proyectos relacionados con la temtica abordada en este trabajo, se hizo un estudio en el rea del CAI tratando de establecer las tcnicas, mtodos y tecnologas empleadas en la creacin de herramientas para asistir en el proceso de innovacin. Este estudio sirve de base para determinar la trascendencia de la tesis y ayudar a establecer un punto de partida para su desarrollo. A continuacin se describen los trabajos relacionados que se consultaron y al final se muestra mediante una tabla comparativa la relacin que existe entre ellos.

2.1 Trabajos relacionados


Se entiende como marco de trabajo una estructura definida que permite organizar y desarrollar un proyecto, en [20] el proyecto Laboranova propone el marco de trabajo unificado para la colaboracin en la innovacin (UCIF Unified Collaborative Innovation Framework). Su propsito es proveer el soporte para las etapas tempranas en el proceso de innovacin dentro de entornos de trabajo colaborativo. UCIF es una construccin conceptual que funciona como la estructura y lmite sobre los cuales se integran varias entidades y conceptos para proveer una solucin. Por lo tanto, se espera que UCIF simplifique el trabajo centrndose en los usuarios de la innovacin abierta. La innovacin abierta es un concepto acuado por Henry Chesbrough, la idea central es que el mundo consiste de un conjunto de conocimiento distribuido, donde las organizaciones/empresas no se dan el lujo de depender por completo de sus propias investigaciones, es por ello que compran el producto, licencia de los procesos o invenciones de otras compaas [20]. Una plataforma basada en la Web para la administracin del conocimiento es un software diseado para facilitar la colaboracin y llevar a cabo tareas especficas relativas a la identificacin, indexacin, reutilizacin y difusin del conocimiento. En [21] se ilustra una plataforma Web http://www.kmmaster.com/ como un ejemplo de una herramienta tipo CAI, la cual ofrece apoyo para el intercambio de conocimientos, la 24

Estado de la prctica

comunicacin dentro y entre los diferentes tipos de organizaciones tales como equipos, los departamentos o redes internas de la organizacin. La plataforma Web que se describe presenta las caractersticas siguientes: trata de apoyar la comunicacin interna y externa, as como la virtualizacin de los conocimientos, la visualizacin de los procesos de toma de decisiones y la capacidad de los equipos a colaborar. Adems, provee un entorno de trabajo bsico para desarrollar, capturar, preservar, evaluar y aplicar el conocimiento. En [2], [16] se hace una descripcin de lo que es el modelo TRIZ-CBR describiendo cmo se complementan los dos enfoques en una interesante sinergia para proponer una herramienta que promueve y acelera el diseo. En esta sinergia TRIZ aporta la estructura inicial, la matriz de contradicciones, para proporcionar un soporte para indizar y almacenar casos y proponer una solucin si no se encuentran casos similares. Por otro lado, CBR provee tcnicas para acelerar la bsqueda y comparacin de problemas con otros resueltos previamente. En las propuestas se menciona el uso del algoritmo del vecino ms cercano (K-NN) para seleccionar los casos ms similares. Se describe una frmula matemtica para hacer el clculo de la similitud global. Tambin se muestra un ejemplo sobre el uso del modelo, se trata de probar las posibilidades de la sinergia TRIZ-CBR en la ingeniera qumica. Se menciona el uso de un sistema prototipo para implementar el modelo, el sistema que se describe es mediante una aplicacin de escritorio. No se especifican detalles sobre el lenguaje de programacin. En [27] presentan un reporte de una aplicacin Web para asistir a los estudiantes universitarios en el aprendizaje de TRIZ. El objetivo del proyecto es ayudar a aprender mediante juegos en lnea el conocimiento bsico sobre la teora. Se reporta un artculo [28] resultado de una investigacin emprica que tena como objetivo estudiar la interaccin entre un sistema CBR y usuarios sin en el conocimiento de CBR. A esa interaccin ellos lo llamaron interaccin Nave y ocurre frecuentemente en sistemas CBR basados en la Web, y por consiguiente en sistemas tipo e-commerce.

25

Estado de la prctica

Reutilizar el conocimiento en el desarrollo de software es un principio para aumentar la productividad en el proceso. De acuerdo con [29] es posible lograrlo haciendo que la reutilizacin sea sistemtica. Esto significa que los procesos para recuperar, reusar, revisar y retener estn definidos. Al mismo tiempo se considera problemas organizacionales. En el artculo se compara los modelos de reutilizacin del conocimiento en el desarrollo de software con el ciclo del modelo CBR. Adems se sugiere extender el modelo de CBR para considerar explcitamente problemas organizacionales. La representacin de un caso es la premisa para la recuperacin, reutilizacin, revisin y almacenamiento. De acuerdo con [30] la teora TRIZ es el enfoque basado en el conocimiento para la innovacin y una poderosa herramienta para resolver problemas. El patrn de localizacin generalizado es una herramienta til para realizar diseo automatizado. Se establece un nuevo caso para la representacin basado en ambos, el cual contiene principios de informacin para la innovacin en el diseo y la informacin geomtrica del ensamblado o partes. Se ilustra la tecnologa CBR para la automatizacin en la innovacin de diseos. Por lo tal, se desarroll un sistema prototipo de diseo asistido computadora (CAD) para verificar la utilidad de usar CBR en la innovacin de diseos basndose en TRIZ y el patrn de localizacin generalizado. En [37] se propone la integracin de la metodologa TRIZ dentro del proceso de CBR y se enfoca en explorar la posibilidad de usar los mtodos de TRIZ como un complemento para mejorar el funcionamiento de CBR en el diseo de productos. Hacen uso del problema de una lmpara de pared. Para resolver el problema, se construy un sistema interactivo CBR que provee a los diseadores de una herramienta computacional para recuperar eficientemente casos de diseo tiles, as como para asistir a los diseadores en la generacin sistemtica de ideas creativas. El sistema se implement con una aplicacin de escritorio haciendo uso del lenguaje de programacin Java con posibilidades de conexin a una base de datos en MySQL.

26

Estado de la prctica

2.2 Anlisis comparativo


La Tabla 2.1 es un anlisis comparativo de los artculos consultados para establecer el estado de la prctica.
Tabla 2.1 Anlisis comparativo del estado de la prctica

Autor H. Duin, J.Jaskov, A. Hesmer, and K. Thoben [20]

Propsito Proveer el soporte para las etapas tempranas en el proceso de innovacin dentro de entornos de trabajo colaborativo

Tecnologa No especfica

Etapa Concluido

N. Drr, E. Behunken and Dr. T. Muller [21] C. Robles, S. Negny and JM Le Lann [16] W. Lap and K. Ming [27] C. Berruquier, E. Blanzieri and A. Ebranati [28] C. Tautz and K. Althoff [29] C. Gao, K. Huang, H. Chen [30]

Ilustrar un ejemplo de herramienta CAI para administrar el conocimiento Describir la sinergia en el modelo TRIZ CBR

Plataforma Web

Concluido

No especfica

Concluido

Facilitar el aprendizaje de TRIZ

Plataforma Web

Concluido

Estudiar la interaccin entre un sistema CBR y usuarios sin en el conocimiento de CBR La reutilizacin del conocimiento en el desarrollo de software Ilustrar la tecnologa CBR para la automatizacin en la innovacin de diseos.

No especfica

Concluido

No especfica

Concluido

No especfica

Concluido

Y. Lee, Y. Deng [37]

Integracin de la metodologa TRIZ dentro del proceso de CBR

Java, MySQL

Concluido

27

Estado de la prctica

2.2.1 Conclusiones del estado de la prctica De acuerdo a los artculos revisados se concluye que existe un esfuerzo por parte de investigadores y acadmicos con el objetivo de tratar de ofrecer herramientas que faciliten la sistematizacin de la innovacin en las organizaciones. Sin embargo, mientras se realizaba la investigacin se constat que son pocas las herramientas tipo CAI que funcionan sobre la Web. Ms an, no se encontr alguna que tenga las caractersticas que se proponen en la presente tesis.

2.3 Propuesta de solucin


El contexto de la presente propuesta de solucin implica los conceptos de: innovacin asistida por computadora (CAI) y aplicacin Web colaborativa. Como parte de las actividades para el desarrollo de esta tesis, se realiz un anlisis de las diferentes tecnologas de informacin factibles de ser empleadas para el logro de los objetivos. Para fines prcticos, el anlisis se llev a cabo en los siguientes rubros: lenguajes de programacin, marcos de trabajo para aplicaciones Web, gestores de base de datos, ORM (Mapeo Objeto-Relacional), servidores y/o contenedores de aplicacin. 2.3.1 Lenguaje de programacin El lenguaje de programacin propuesto es Java, el cual presenta las siguientes caractersticas tcnicas: es de propsito general, concurrente, basado en clases y orientado a objetos. Los programadores escriben un programa una vez y lo ejecutan en cualquier computadora que tenga instalada la Mquina Virtual de Java (JVM) [31]. Se requiere un kit de desarrollo (JDK) la versin propuesta para el desarrollo es: JDK 6 Update 17. Sistema operativo: Multiplataforma. 2.3.2 Marcos de trabajo para aplicaciones Web Spring Es un marco de trabajo flexible para aplicaciones Web basadas en el patrn de diseo Modelo Vista Controlador (MVC) para el desarrollo de aplicaciones en Java/JavaEE que presenta las siguientes caractersticas: un contenedor ligero capaz 28

Estado de la prctica

de ensamblar un sistema a partir de un conjunto de componentes desacoplados llamados POJOs (Plain Old Java Object) de una forma transparente y consistente. Ofrece una capa de abstraccin comn para la administracin de transacciones, as como, una capa de abstraccin JDBC. Permite la integracin con Toplink, Hibernate, JDO, iBATIS. Ofrece funcionalidad de programacin orientada a aspectos (POA) [32].

ZK Es un marco de trabajo para el desarrollo de aplicaciones tipo AJAX y para dispositivos mviles, diseado para maximizar operaciones empresariales y minimizar el costo de desarrollo por su innovadora arquitectura Direct RIA. Caractersticas: experiencia rica del usuario usando componentes AJAX con caractersticas verstiles de Aplicaciones Ricas para Internet (RIA). Basado en estndares como XUL y HTML, tambin es compatible con JSP, JSF, Portlet y tecnologas Java EE. Direct Push, ZK provee de una tecnologa robusta e intuitiva que permite actualizaciones espontaneas enviadas del servidor al Web browser y los dispositivos mviles. Permite una alta escalabilidad y es compatible con el clustering y balanceo de carga disponibles en los servidores modernos de aplicacin. Lenguaje de programacin Java [33]. 2.3.3 Gestor de base de datos MySQL es un sistema de gestin de base de datos relacional, multihilo y multiusuario. Mantiene un esquema de licenciamiento dual, es decir, ofrece una distribucin bajo la licencia GNU GPL, pero en caso de que se utilice para productos privados se compra una licencia especfica que permita su uso comercial. Al contrario de proyectos como Apache, donde el software se desarrolla por una comunidad pblica y el derecho de autor del cdigo est en poder del autor individual, MySQL es propietario y est patrocinado por una empresa privada, que posee los derechos de autor de la mayor parte del cdigo. Dentro de las caractersticas que lo distinguen de otros SGBD estn: los mltiples motores de almacenamiento (MyISAM, Merge, InnoDB, BDB, Memory/heap, MySQL Cluster, Federated, Archive, CSV y Blackhole), permitiendo al usuario escoger la que sea ms adecuada para cada tabla de la base de datos; la agrupacin de

29

Estado de la prctica

transacciones, permite reunir mltiples transacciones de varias conexiones para incrementar el nmero de transacciones por segundo [34]. 2.3.4 Mapeo Objeto-relacional (ORM) El mapeo objeto relacional es una tcnica de programacin para convertir datos entre el sistema de tipos utilizado en un lenguaje de programacin orientado a objetos y el utilizado en una base de datos relacional, utilizando un motor de persistencia. Una herramienta ORM simula una base de datos orientada a objetos, sobre la base de datos relacional. Una herramienta que implementa un ORM es la especificacin Java Persistence API (JPA). Hibernate Annotations son un conjunto de anotaciones bsicas de Java que implementan el estndar JPA. Emplea anotaciones como reemplazo para los archivos XML que definen el mapeo objeto relacional en Hibernate [35]. 2.3.5 Servidor de aplicacin Apache Tomcat es una implementacin de software de cdigo abierto de las tecnologas Java Servlet y JavaServer Page. Las versiones 6.x tienen las siguientes caractersticas: implementa las especificaciones Servlet 2.5 y JSP 2.1, soporte para Unified Expression Language 2.1, diseado para funcionar en Java SE 5.0 reciente y soporte para Comet a travs de la interfaz CometProcessor. Versin estable 6.0.20. Sistema operativo: Windows y Linux [36]. 2.3.6 Criterios de eleccin Se presentan los criterios que sirvieron como base para la eleccin de las tecnologas propuestas:

Interoperabilidad: que permitan la interaccin con otros sistemas existentes o futuros Escalabilidad: para facilitar agregar nuevos mdulos y/o funcionalidades Robustez: para modificar cualquier parte de la aplicacin con el mnimo impacto en el resto del sistema. Facilidad de mantenimiento.

30

Estado de la prctica

El costo: aprovechar al mximo las tecnologas disponibles para desarrollar una aplicacin de bajo costo y de buena calidad.

2.3.7 Solucin propuesta Los siguientes puntos describen brevemente las razones que condujeron a la creacin de una propuesta de solucin: Se propone hacer el desarrollo de la arquitectura base integrando los marcos de trabajo: ZK, Hibernate Annotations y Spring. Se considera el uso de Spring ya que ofrece una estructura basada en el patrn de diseo MVC para organizar el proyecto, adems permite la integracin de diferentes tecnologas y marcos de trabajo. ZK provee de un gran conjunto de componentes grficos o controles, lo cual facilita el desarrollo de las interfaces grficas de usuario. El soporte de Server push es una de las caractersticas que se considera para que ZK forme parte de la propuesta de solucin. Otra caracterstica importante es el modelo de programacin en ZK, el cual es centrado en el servidor y facilita el desarrollo de aplicaciones ms seguras. Para el manejo de persistencia de la informacin se propone usar Hibernate Annotations ya que cumple con la especificacin EJB3.0 (JSR 220). Hibernate Annotations cuenta con bastante documentacin y libros disponibles en la Web, lo cual es muy importante para facilitar el uso y la implementacin de la herramienta. Para instalar la aplicacin se propone el uso de Apache Tomcat con servidor de aplicacin ya que es un contenedor de servlets robusto, y ligero.

31

Aplicacin de la metodologa

Captulo 3 Aplicacin de la metodologa


3.1 Introduccin
El presente captulo corresponde al desarrollo de la propuesta de solucin planteada previamente en el Captulo 2. Se describen los casos de uso ms representativos en el anlisis de los requerimientos del sistema, el modelo de dominio con las entidades identificadas, as como, la descripcin de la arquitectura propuesta, el diseo e implementacin del mdulo de CBR, por ltimo se muestran interfaces grficas de usuarios elaborados con el marco de trabajo ZK. En el proceso de desarrollo de la aplicacin se emplearon algunas prcticas propuestas en las metodologas giles como son: Modelado rpido de requerimientos generales con diagramas UML. Desarrollo de prototipos de interfaz. Integracin contina. Desarrollo guiado por pruebas. Participacin activa de usuarios expertos. Concepcin de la arquitectura.

3.2 Casos de uso


Para representar los requerimientos se hace uso de la notacin de diagramas de casos de uso del Lenguaje Unificado de Modelado (UML) tomando ventaja de la versatilidad de este lenguaje. A continuacin se presentan los requerimientos identificados para el diseo de la Web colaborativa, el proceso de resolucin de contradicciones y mdulo de CBR.

32

Aplicacin de la metodologa

3.2.1 Casos de uso de la Web colaborativa.

En los casos de uso para la gestin de la Web colaborativa se consideran los requerimientos que facilitan las actividades de: gestin de proyectos para organizar y dar seguimiento a las acciones en un proyecto desde que se crea hasta que se finaliza, y las actividades que les permitan a los usuarios compartir un proyecto y colaborar en la edicin de un proyecto como usuario invitado. Los casos de uso mencionados se presentan en la Figura 3.1.

Figura 3.1 Diagrama de casos de uso de la Web colaborativa

Nombre: Autor: Fecha:

Recibir notificaciones Ren Lpez Flores 12/Mayo/2010

33

Aplicacin de la metodologa

Descripcin: Modela los requerimientos necesarios para recibir notificaciones relacionadas con la actividad del usuario en el sistema. Registra las siguientes actividades: creacin de un nuevo proyecto, edicin de un proyecto, invitacin a colaborar y colaboracin. Actores: Usuario, Sistema Precondiciones: Es necesario que el usuario se encuentre validado en el sistema. Flujo normal: 1. El usuario ingresa a la pgina de inicio despus de autenticarse en el sistema. 2. El sistema recupera de base de datos las ltimas notificaciones asociadas con el usuario. 3. El sistema le presenta al usuario las notificaciones. Flujo alternativo 2A1: El usuario selecciona la opcin actualizar notificaciones. 1. El sistema recupera de base de datos las ltimas notificaciones asociadas al usuario. 2. El sistema presenta al usuario las notificaciones. Pos-condiciones El sistema actualiza el estado de las notificaciones presentadas.

Nombre: Autor: Fecha: Descripcin:

Administrar proyectos Ren Lpez Flores 12/Mayo/2010

Define los requisitos para las tareas relacionadas en la administracin de los proyectos como son: agregar nuevos proyectos y editar los proyectos existentes. Actores:

34

Aplicacin de la metodologa

Usuario, Sistema Precondiciones: Es necesario que el usuario se encuentre validado en el sistema. Flujo normal: 1. El usuario selecciona la opcin de proyectos. 2. El sistema presenta la opcin agregar proyecto. 3. El sistema recupera de base de datos los proyectos que el usuario tiene creados. 4. El sistema presenta en forma de lista los proyectos con las opciones de editar e invitar para cada proyecto. 5. El usuario selecciona la opcin de agregar nuevo proyecto. 6. El sistema le presenta al usuario una pantalla para especificar el tipo de proyecto. 7. El usuario selecciona el tipo de proyecto y asigna un nombre. 8. El sistema crea el proyecto en base de datos. 9. El sistema presenta la pantalla para edicin del proyecto. Flujo alternativo 4A1: El usuario selecciona, de alguno de los proyectos listados, la opcin de editar. 1. El sistema recupera el proyecto de base de datos. 2. El sistema le presenta al usuario una pantalla con las opciones para editar el proyecto. Pos-condiciones Se crea el proyecto en base de datos.

Nombre: Autor: Fecha: Descripcin:

Editar proyecto Ren Lpez Flores 12/Mayo/2010

35

Aplicacin de la metodologa

En este caso de uso el usuario tiene acceso al proyecto en modo de edicin para: describir el problema, asignar y remover recursos, describir el resultado final ideal, identificar las contradicciones y describir la solucin encontrada. Actores: Usuario, Sistema Precondiciones: Es necesario que el usuario se encuentre validado en el sistema. El proyecto no est bloqueado por que otro usuario. Flujo normal: 1. El usuario edita alguna de las caractersticas del proyecto: Descripcin del problema, recursos, resultado final ideal, contradicciones y la solucin encontrada. 2. El usuario selecciona la opcin guardar. 3. El sistema comprueba la validez de los datos. 4. El sistema guarda en base de datos las caractersticas del sistema actualizadas. 5. El sistema cierra la pantalla de edicin de proyectos.

Flujo alternativo 2A1: El usuario cancela la edicin de proyectos. 1. El sistema cierra la pantalla de edicin de proyectos. Pos-condiciones Se actualiza en base de datos las caractersticas editadas del proyecto.

Nombre: Autor: Fecha: Descripcin:

Invitar colaboracin Ren Lpez Flores 12/Mayo/2010

Enviar invitaciones para que otros usuarios registrados en el sistema contribuyan

36

Aplicacin de la metodologa

con su colaboracin en la resolucin de un problema. Actores: Usuario, Sistema Precondiciones: Es necesario que el usuario se encuentre validado en el sistema. Flujo normal: 1. El usuario selecciona a la opcin de proyectos 2. El sistema recupera de base de datos los proyectos que el usuario tiene creados. 3. El sistema presenta en forma de lista los proyectos con las opciones de editar e invitar para cada proyecto. 4. El usuario selecciona la opcin invitar correspondiente a un proyecto de la lista de proyectos. 5. El sistema presenta una ventana con dos opciones para hacer la invitacin: usando el nombre de usuario de un usuario registrado y usando el correo electrnico de un usuario no registrado. 6. El usuario selecciona la opcin de hacer la invitacin por nombre de usuario. 7. El usuario ingresa el nombre de usuario. 8. El sistema verifica que el nombre del usuario se encuentre registrado en base de datos. 9. El sistema enva la invitacin al usuario especificado. 10. El sistema cierra la ventana de invitaciones.

Flujo alternativo 6A1: El usuario selecciona la opcin de hacer la invitacin por correo electrnico. 1. El usuario ingresa el correo el electrnico. 2. El sistema verifica que sea un correo electrnico vlido. 3. El sistema manda una invitacin a la direccin de correo electrnico para

37

Aplicacin de la metodologa

que el usuario se registre en la aplicacin y le notifica que tienen una invitacin pendiente. 4. El sistema cierra la ventana de invitaciones. Pos-condiciones El usuario al que se le enva la invitacin se notifica que tiene una invitacin pendiente.

Nombre: Autor: Fecha: Descripcin:

Colaborar Ren Lpez Flores 12/Mayo/2010

El usuario acepta o rechaza las invitaciones pendientes para colaborar en proyectos creados por otros usuarios, adems de editar los proyectos en que colabora. Actores: Usuario, Sistema Precondiciones: Es necesario que el usuario se encuentre validado en el sistema. Para colaborar en la edicin de un proyecto, el sistema bloquea el proyecto para otro usuario no lo edite. Flujo normal: 1. El usuario selecciona la opcin colaboracin. 2. El sistema recupera de base de datos los proyectos que tienen invitacin pendiente de aceptar. 3. El sistema recupera de base de datos los proyectos que el usuario est colaborando. 4. El sistema presenta en una lista los proyectos con invitacin pendiente y en los que colabora el usuario con las opciones de aceptar invitacin, rechazar invitacin y colaborar de acuerdo al estado de la invitacin. 5. El usuario selecciona la opcin colaborar.

38

Aplicacin de la metodologa

6. El sistema le presenta al usuario una ventana con las opciones para editar el proyecto seleccionado.

Flujo alternativo 2A1: El usuario selecciona la opcin aceptar/rechazar colaboracin. 1. El sistema actualiza el estado de la invitacin pendiente del proyecto seleccionado. Pos-condiciones Se actualiza el estado de las invitaciones de colaboracin pendientes. Se actualiza los datos del proyecto.
3.2.2 Caso de Uso resolucin de contradicciones

Para la resolucin de contradicciones se utiliza como referencia el procedimiento establecido en el modelo TRIZ-CBR. La Figura 3.2 presenta el caso de uso que modela los requerimientos establecidos en el modelo TRIZ-CBR.

39

Aplicacin de la metodologa

Figura 3.2 Diagrama de Caso de uso Resolucin de contradicciones

Nombre: Autor: Fecha: Descripcin:

Situacin problemtica Ren Lpez Flores 14/Junio/2010

Permite describir caractersticas generales con relacin al proyecto que se edita. Actores: Usuario, Sistema Precondiciones: Es necesario que el usuario se encuentre validado en el sistema.

40

Aplicacin de la metodologa

Se requiere que el usuario este editando un proyecto en la opcin de situacin problemtica. Flujo normal: 1. El usuario entra a la opcin de situacin problemtica. 2. El sistema recupera y presenta la informacin que se registr previamente. 3. El usuario selecciona el objetivo del proyecto, es decir el tipo de problema que se resuelve. 4. El usuario selecciona la fecha programada para terminar el proyecto. 5. El usuario actualiza detalles referentes a la situacin problemtica. 6. El usuario selecciona la opcin guardar cambios en el proyecto. 7. El sistema actualiza los datos referentes a la situacin problemtica. Flujo alternativo 6A1: El usuario selecciona la opcin cancelar. 1. El sistema cierra la edicin de la situacin problemtica descartando las modificaciones hechas al proyecto. Pos-condiciones Se actualiza los detalles referentes a la situacin problemtica.

Nombre: Autor: Fecha: Descripcin:

Identificar recursos Ren Lpez Flores 14/Junio/2010

Permite asociar o remover recursos identificados en el sistema que presenta la situacin problemtica. Actores: Usuario, Sistema Precondiciones: Es necesario que el usuario se encuentre validado en el sistema. Se requiere que el usuario este editando un proyecto en la opcin de recursos.

41

Aplicacin de la metodologa

Se requiere tener categoras, sub-categoras y recursos registrados en el sistema. Flujo normal: 1. El usuario selecciona la opcin de recursos. 2. El sistema recupera de base de datos la lista de recursos. 3. El sistema presenta al usuario los recursos en una lista de rbol. 4. El usuario selecciona una categora de recursos. 5. El sistema presenta un formulario con los recursos asociados a la categora seleccionada. 6. El sistema presenta los recursos que el usuario identific previamente en el proyecto y el valor asociado. 7. El usuario identifica nuevos recursos o elimina recursos seleccionados. 8. El usuario selecciona la opcin de guardar los recursos. 9. El sistema actualiza los recursos seleccionados y los valores asociados en el proyecto que se est editando. Flujo alternativo 7A1: El usuario selecciona la opcin cancelar. 1. El sistema cierra la edicin de los recursos descartando las modificaciones hechas al proyecto. Pos-condiciones Se actualiza los recursos seleccionados y/o eliminados en el proyecto.

Nombre: Autor: Fecha: Descripcin:

Identificar restricciones Ren Lpez Flores 15/Junio/2010

Agrega o elimina restricciones identificadas por el usuario en el proyecto. Las restricciones se asocian con los parmetros de la matriz de contradicciones. Actores: Usuario, Sistema

42

Aplicacin de la metodologa

Precondiciones: Es necesario que el usuario se encuentre validado en el sistema. Se requiere que el usuario este editando un proyecto en la opcin de restricciones. Se requiere tener registrados en el sistema los parmetros de la matriz de contradicciones. Flujo normal: 1. El sistema presenta las categoras en las que se clasifican los parmetros de la matriz de contradicciones. 2. El sistema recupera de base de datos las restricciones identificadas previamente en el proyecto y las presenta al usuario. 3. El usuario selecciona una categora. 4. El sistema muestra los parmetros asociados a la categora. 5. El usuario agrega o elimina restricciones de la categora seleccionada. 6. El usuario selecciona la opcin de guardar restricciones. 7. El sistema actualiza las restricciones identificadas en el proyecto. Flujo alternativo 6A1: El usuario selecciona la opcin cancelar. 1. El sistema cierra la edicin de las restricciones descartando las modificaciones hechas al proyecto. Pos-condiciones Se actualiza las restricciones agregadas y/o eliminadas en el proyecto.

Nombre: Autor: Fecha: Descripcin:

Identificar contradiccin Ren Lpez Flores 15/Junio/2010

El objetivo de este caso de uso es servir para que el usuario seleccione la contradiccin identificada en el proyecto. Actores:

43

Aplicacin de la metodologa

Usuario, Sistema Precondiciones: Es necesario que el usuario se encuentre validado en el sistema. Se requiere que el usuario este editando un proyecto en la opcin de contradiccin. Se requiere tener registrados en el sistema los parmetros de la matriz de contradicciones y los principios de solucin. Flujo normal: 1. El sistema presenta las categoras en las que se clasifican los parmetros de la matriz de contradicciones. 2. El usuario selecciona de una lista el parmetro que mejora y el parmetro que empeora para especificar la contradiccin en el proyecto. 3. El sistema muestra los principios de solucin asociados a la contradiccin. 4. El usuario selecciona la opcin de guardar cambios. 5. El sistema actualiza la contradiccin en el proyecto. Flujo alternativo 5A1: El usuario selecciona la opcin cancelar. 1. El sistema cierra la edicin de la contradiccin descartando las modificaciones hechas al proyecto. Pos-condiciones Se actualiza la contradiccin identificada en el proyecto.

Nombre: Autor: Fecha: Descripcin:

Mdulo de CBR Ren Lpez Flores 18/Junio/2010

El mdulo de CBR es un caso de uso que integra los requerimientos para la administracin de la base de conocimiento. Actores:

44

Aplicacin de la metodologa

Usuario, Sistema Precondiciones: Es necesario que el usuario se encuentre validado en el sistema. Se requiere que el usuario este editando un proyecto en la opcin de base de conocimiento. Se requiere tener la contradiccin establecida. Se sugiere tener identificado al menos un recurso y una contradiccin. Se requiere que este establecido el objetivo del problema. Flujo normal: 1. Cuando el usuario accede a este caso de uso el sistema valida los datos obligatorios en el proyecto: objetivo del problema, recursos, restricciones y contradiccin. 2. El sistema presenta la opcin buscar en base de casos. 3. El usuario selecciona la opcin realizar bsqueda. 4. El sistema realiza la bsqueda en la base de casos. 5. El sistema recupera de la base de casos los que son similares con el caso que se compara y presenta en forma de lista los que tienen un porcentaje de similitud mayor al 50%. 6. El usuario selecciona el reporte de los casos mostrados que sean de su inters. 7. El sistema recupera el caso y genera un reporte del proyecto seleccionado por el usuario. Flujo alternativo 5A1: No existe en el sistema un caso que tenga una similitud de ms del 50% con el caso que se est comparando. 1. El sistema le presenta al usuario los principios de solucin asociados con la contradiccin identificada en el proyecto. Pos-condiciones

45

Aplicacin de la metodologa

Nombre: Autor: Fecha: Descripcin:

Plantear solucin Ren Lpez Flores 25/Junio/2010

Plantear solucin es el ltimo caso de uso en el proceso de resolucin de un problema planteado como una contradiccin. En este caso de uso se recupera informacin que se registr previamente en alguno de los otros casos de uso de la edicin del proyecto. Sirve para documentar, en lo posible, la solucin del proyecto. Actores: Usuario, Sistema Precondiciones: Es necesario que el usuario se encuentre validado en el sistema. Se requiere que el usuario este editando un proyecto en la opcin de plantear solucin. Se requiere tener la contradiccin establecida. Se sugiere tener identificado al menos un recurso y una contradiccin. Se requiere que este establecido el objetivo del problema. Flujo normal: 1. Cuando el usuario accede a este caso de uso el sistema valida los datos obligatorios en el proyecto: objetivo del problema, recursos, restricciones y contradiccin. 2. El sistema recupera informacin sobre la propuesta de solucin introducida previamente por el usuario, y la presenta. 3. El usuario actualiza algunas de las partes que componen el planteamiento de solucin: la solucin propuesta, la implementacin y detalles de la solucin. 4. El usuario confirma la solucin. 5. El sistema verifica que estn registrados los datos requeridos para hacer la confirmacin de la solucin.

46

Aplicacin de la metodologa

6. El proyecto cumple con los datos requeridos para confirmar la solucin. 7. El sistema crea un nuevo episodio de conocimiento en la base de casos con el proyecto que est en edicin. 8. El sistema cambia el estado del proyecto a Proyecto resuelto. 9. El sistema notifica a los usuarios que estn colaborando en el proyecto. Flujo alternativo 6A1: El proyecto no cumple con los datos requeridos para confirmar la solucin. 1. El sistema notifica al usuario de la informacin requerida para confirmar la solucin. Pos-condiciones Se crea un nuevo caso en la base de casos. Se actualiza el estado del proyecto en edicin.
3.2.3 Caso de uso Mdulo de CBR

El caso de uso Mdulo de CBR modela las tareas especificadas en el ciclo del CBR. La Figura 3.3 presenta los requerimientos establecidos para realizar la bsqueda de un caso en la base de casos.

Figura 3.3 Diagrama de casos de uso de la bsqueda en el Mdulo de CBR

47

Aplicacin de la metodologa

Nombre: Autor: Fecha: Descripcin:

Realizar bsqueda Ren Lpez Flores 26/Junio/2010

Caso de uso para hacer la bsqueda y recuperacin de un caso en la base de casos del mdulo de CBR. Actores: Usuario, Sistema, Base de casos Precondiciones: Es necesario que el usuario se encuentre validado en el sistema. Se requiere que el usuario este editando un proyecto en la opcin de base de conocimiento. Se requiere tener la contradiccin establecida en el proyecto. Se sugiere tener identificado al menos un recurso y una contradiccin. Se requiere que este establecido el objetivo del problema. Flujo normal: 1. El usuario selecciona la opcin Realizar bsqueda. 2. El sistema forma el caso (Problema objetivo) que se va a comparar, para ello recuperar del proyecto en edicin los siguientes atributos indexados: objetivo del problema, recursos identificados, restricciones y la

contradiccin. 3. El sistema recuperan los casos almacenados en la Base de Casos. 4. El sistema hace la comparacin del caso a comparar contra los casos recuperados. 5. El sistema muestra los casos que presentan similitud de ms del 50%. Flujo alternativo . Pos-condiciones

48

Aplicacin de la metodologa

3.3 Modelado del dominio


En la Figura 3.4 se presenta un diagrama robusto del modelo de objetos del dominio, con las clases ms importantes identificadas en el desarrollo de la metodologa. En el diagrama tambin se presenta las relaciones que existen entre dichas entidades. Se aprecia que las entidades Proyecto y Perfil son las que ms relaciones tienen con el resto de las entidades.

Figura 3.4 Diagrama del modelo del dominio.

Una vez presentado el diagrama se hace una descripcin de las entidades en la Tabla 3.1.

49

Aplicacin de la metodologa

Tabla 3.1 Descripcin de entidades

Nombre entidad CasoCBR

Descripcin Es un episodio de conocimiento registrado en la base de casos del CBR, se forma a partir del proyecto despus de que se confirma la solucin.

Contradiccion

Representa

una

contradiccin

de

la

matriz

de

contradicciones en el problema. Invitacion Invitacin por parte de otros usuarios registrados en el sistema para colaborar en un proyecto para la resolucin de un problema. Notificacion Aviso que el usuario recibe sobre la actividad realizada en los proyectos que tiene agregados o en los que se encuentra colaborando. Perfil Entidad que tiene agregada los proyectos de los usuarios, administra las notificaciones y las invitaciones para colaborar. Pizarra Entidad en la que se registran las notificaciones recibidas por el usuario. Proyecto Agrupa las caractersticas de los proyectos como lo son: descripcin del problema, recursos y solucin. ProyectoContradiccion Tipo de proyecto que se resuelve aplicando la matriz de contradicciones de TRIZ Recurso Cualquier medio tangible o intangible que potencialmente utilizable para resolver un problema. Solucion Es el resultado del proyecto despus de aplicar las herramientas de matriz de contradicciones de TRIZ o la bsqueda orientada a recursos. Usuario Representa la cuenta de los usuarios para autenticarse en el sistema. Forma parte de la entidad perfil.

50

Aplicacin de la metodologa

El modelado del dominio del mdulo de CBR se describe en la Figura 3.5. En la figura se describen las entidades que forman la base de conocimiento del mdulo de CBR.

Figura 3.5 Diagrama del modelo de dominio del CBR

Para entender mejor el diagrama de la Figura 3.5 en la Tabla 3.2 se explican las entidades que intervienen en l.
Tabla 3.2 Descripcin de entidades para el CBR

Nombre entidad ContradiccionCBR

Descripcin Representa la contradiccin como un atributo indexado en el caso.

CasoCBR

Es un episodio de conocimiento registrado en la Base de Casos del CBR, se forma a partir del proyecto despus de que se confirma la solucin. Los atributos que componen el caso son los atributos que se indexan.

Proyecto

Agrupa las caractersticas de los proyectos como lo son: descripcin del problema, recursos y solucin.

RestriccionCBR

Entidad que describe una restriccin como atributo indexado en el CBR. Se maneja como una lista con

51

Aplicacin de la metodologa

Nombre entidad

Descripcin los identificadores de los recursos para hacer ms rpido la comparacin.

RecursosCBR

Guarda una lista con los identificadores de los recursos que se indexan en el caso.

3.4 Arquitectura de la aplicacin


La arquitectura de un sistema informtico se define como una estructura o estructuras que estn compuestas por los elementos de software, las propiedades de esos elementos que son visibles externamente y las relaciones entre ellos [38]. La arquitectura gua la evolucin del desarrollo del sistema, es una forma de comunicacin que provee un lenguaje comn para trasmitir los diferentes asuntos relacionados con el sistema. Para representarla es necesario tener vistas arquitectnicas. La Figura 3.6 es una vista arquitectnica del sistema. Para realizarla se emple una vista lgica, una de las 4 vistas propuestas por Kruchten [39], haciendo uso de un diagrama de paquetes de UML para su representacin.

52

Aplicacin de la metodologa

Figura 3.6 Diagrama de la arquitectura desarrollada

3.4.1 Elementos principales

En el modelado de la arquitectura se toma como referencia el estilo arquitectnico cliente-servidor y el patrn de diseo modelo vista controlador (MVC). Los elementos principales propuestos para la Web colaborativa son: Como cliente se tiene cualquier Web browser que soporte el protocolo HTTP y que procese HTML. Se emplea como un medio para acceder a la aplicacin. En la parte del servidor se administran peticiones de los clientes y responde a dichas peticiones mediante el llamado a los componentes utilizados para la presentacin de los datos. Los componentes del servidor se organizan en un estilo de capas basadas en MVC agregando una capa de servicios que se describen ms adelante. Base de datos, se usa como un medio para almacenar y recuperar las entidades que componen a la aplicacin, adicionalmente funciona como un repositorio para soportar la base de casos del sistema CBR.

53

Aplicacin de la metodologa

3.4.2 Capa de la vista

Est compuesta por los paquetes de colaboracin y solucin de proyectos. En el paquete de solucin de proyectos se definen las interfaces grficas responsables de mostrar la informacin relacionada con la creacin, edicin y resolucin de proyectos empleando la matriz de contradicciones. En la colaboracin, el paquete de interfaces de usuario, incluye los componentes grficos requeridos para enviar las invitaciones, aceptar invitaciones y colaborar en los proyectos de otros usuarios. Esta capa se comunica con la capa del controlador para gestionar los eventos del usuario. Para la definicin de los componentes grficos se emplean archivos de tipo ZUL. Un archivo de tipo ZUL utiliza el lenguaje de marcado para interfaces de usuario ZUML, un lenguaje que se basa en XML para crear interfaces tipo RIA. La Figura 3.7 trata del formulario de registro de usuarios descrito en el lenguaje ZUML. Las etiquetas ms relevantes que componen el archivo son: En la lnea 3 se encuentra la etiqueta <window>, que es como una etiqueta DIV en HTML utilizada para agrupar otros componentes, el atributo apply indica cual es la clase de tipo controlador con el que se relaciona. <caption> de la lnea 4 es un componente para representar un ttulo o encabezado de un Groupbox. La lnea 5 define un <vbox>, que es una etiqueta que agrupa componentes en una orientacin vertical. En las lneas 6,8 y 10 entre otras, hay etiquetas del tipo <label> que es un componente del tipo etiqueta para representar cualquier texto. Como se aprecia en la declaracin de la etiqueta no existe un valor asignado por que dicho valor se asigna en el mecanismo de internacionalizacin. Una etiqueta <textbox> como en las lneas 7, 9 y 11 es un componente que le permite al usuario introducir informacin en forma de texto.

54

Aplicacin de la metodologa

En la lnea 16 la etiqueta <button> define un componte de tipo botn para que el usuario ejecute alguna accin al momento de presionarlo. 1. <?page title="Sign Up" contentType="text/html;charset=UTF-8"?> 2. <zk> 3. <window id="winSignUp" border="normal" width="280px" apply="itsolver.controller.usermanagement.Signup"> 4. <caption id="signUpCaption" image="/assets/image/sign-up-icon.png" style="fontweight: bold; color: #0F3B82;"/> 5. <vbox style="padding-left:5px; padding-bottom:5px;"> 6. <label id="lblUsrName" /> 7. <textbox id="txtUserName" width="260px" /> 8. <label id="lblName" /> 9. <textbox id="txtName" width="260px" /> 10. <label id="lblLastName" /> 11. <textbox id="txtLastName" width="260px" /> 12. <label value="e-mail:" /> 13. <textbox id="txtEmail" width="260px" constraint="/.+@.+\.[a-z]+/: Please enter an e-mail address"/> 14. <label id="lblPassword" /> 15. <textbox id="txtPassword" type="password" width="260px" /> 16. <button id="btnSignup" /> 17. </vbox> 18. </window> 19. </zk>
Figura 3.7 Formulario de registro de usuarios en ZUML

3.4.3 Capa del controlador

Toma como entrada las peticiones hechas a la capa de la vista y resuelve qu significa la informacin que se solicita. Para realizar esta funcin se comunica con la capa de servicio para recuperar y almacenar informacin en base de datos. La capa del controlador agrupa las clases requeridas para la administracin de proyectos, administracin de usuarios, colaboracin y resolucin de problemas empleando la matriz de contradicciones. En la capa del controlador se encuentran clases que interactan con los archivos de tipo ZUL. Las clases heredan de la clase GenericForwardComposer provista por el marco de trabajo ZK. En la Figura 3.8 se aprecia una parte del cdigo del controlador para el registro de usuario.

55

Aplicacin de la metodologa

1. import org.zkoss.zul.Button; 2. import org.zkoss.zul.Caption; 3. import org.zkoss.zul.Label; 4. import org.zkoss.zul.Messagebox; 5. import org.zkoss.zul.Textbox; 6. import org.zkoss.zul.Window; 7. /** 8. Clase que sirve como controlador del formulario de registro 9. @author rene 10. * 11. */ 12. public class Signup extends GenericForwardComposer { 13. /** 14. Etiqueta para el nombre del usuario 15. */ 16. public Label lblUsrName; 17. /** 18. Etiqueta para indicar el password del usuario. 19. */ 20. public Label lblPassword; 21. /** 22. Caja de texto para el nombre de usuario 23. */ 24. public Textbox txtUserName; 25. /** 26. Caja de texto para el password del usuario 27. */ 28. public Textbox txtPassword; 29. /** 30. Botn que lanza el evento de registro 31. */ 32. public Button btnSignup; 33. /** 34. Interfaz de una clase de la capa de servicio con operaciones para administrar usuarios. 35. */ 36. private UserService userService; 37. /** 38. * Sobrescribe el mtodo que inicializa los componentes 39. @param comp 40. @throws Exception 41. */ 42. @Override

56

Aplicacin de la metodologa

43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61.

public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); userService = ServiceLocator.getUserService(); } /** *Mtodo que se genera cuando el usuario da click en el botn de registro. *En este mtodo esta la lgica para crear al nuevo usuario @param event @throws Exception */ public void onClick$btnSignup(Event event) throws Exception {

Profile profile = new Profile(); User user = new User(); user.setUserName(txtUserName.getText()); user.setPassword(txtPassword.getText()); user.setProfile(profile); profile.setUser(user); //Valida que no exista un usuario con el nombre de usuario ingresado. validateExistingAccount(user); 62. //Emplea un mtodo de una clase de la capa de servicio para persistir al nuevo usuario. 63. boolean isRegistered = userService.registerUser(user);
Figura 3.8 Controlador del formulario registro de usuario.

3.4.4 Capa de servicios

Funciona como un intermediario entre el controlador y la capa del modelo para el intercambio de informacin. Es una abstraccin para hacer uso de la persistencia en base de datos o alguna otra fuente de datos como servicios Web sin que la capa del controlador se vea afectada en caso de que exista alguna modificacin. Los algoritmos para el sistema de CBR y la resolucin de problemas usando la metodologa de TRIZ se localizan en la capa de servicios. Tambin organiza las clases con las reglas de negocio relacionadas con la administracin de proyectos, la administracin de usuarios, la administracin de actividades del proceso de colaboracin y servicios para el envi de correos electrnicos. En la Figura 3.9 se presenta la implementacin de una clase de la capa del servicio con algunas de las operaciones para la administracin de usuarios.

57

Aplicacin de la metodologa

1. /** 2. Clase servicio con las operaciones para administrar a los usuarios 3. @author rene 4. **/ 5. public class UserServiceImpl implements UserService{ 6. //DAO con las operaciones de persistencia para administrar usuarios 7. private UserDAO userDAO; 8. /** 9. Implementa el mtodo para hacer el registro de un numevo usuario 10. @param user instancia del nuevo usuario que se registra 11. @return regresa un valor boleano indicando el estado de la operacin 12. */ 13. public boolean registerUser(User user) { 14. //Se emplea el DAO para acceder a la operacin de persistencia del nuevo usuario 15. userDAO.persist(user); 16. //Vlida si se registra el usuario en base de datos 17. if (user.getId() != null && user.getId() > 0){ 18. return true; //Regresa un valor verdadero cuando se registra el usuario 19. } 20. return false; //Regresa un valor falso cuando no se registra el usuario 21. } 22. /** 23. Vlida si un usuario se encuentra registrado tomando en cuenta el nombre de usuario y su password 24. @param user instancia con los datos del usuario que se valida 25. @return regresa la instancia del usuario encontrado en base de datos. 26. */ 27. public User validateUser(User user){ 28. //Emplea el mtodo en el DAO para buscar un usuario por medio de su nombre de usuario en base de datos 29. User userFound = userDAO.findByUserName(user.getUserName()); 30. if (userFound == null){ 31. return null; 32. } 33. //Vlida que el password sea el mismo 34. if ( userFound.getPassword().compareTo(user.getPassword())== 0 ){ 35. return userFound; //Regresa la instancia del usuario vlido. 36. }else{ 37. //Regresa un valor null cuando el password no coincide 38. return null; 39. }
40. }
Figura 3.9 Clase de servicio con operaciones para administrar usuarios.

58

Aplicacin de la metodologa

3.4.5 Capa del modelo

La capa del modelo se compone de dos tipos de clases: las clases que representan las entidades de negocio y las clases responsables de acceder a base de datos para almacenar y recuperar dichas entidades de negocio. Entidades de negocio. La implementacin de las clases de entidades de negocio se hace con el uso de anotaciones del API Java Persistence API (JPA) para hacer la conversin de los objetos a las tablas de base de datos y viceversa. En la Figura 3.10 se muestra un ejemplo de una clase y sus atributos con anotaciones de JPA. 1. 2. 3. 4. 5. 6. 7. 8. @Entity @Table(name="project") @Inheritance(strategy = InheritanceType.JOINED) public class Project implements Serializable{ @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="project_id", nullable=false) private long Id;

9. @ManyToOne(targetEntity = Profile.class ) 10. @JoinColumn(name = "profile_id", nullable = false) 11. private Profile profile; 12. @Column(name="project_name") 13. private String projectName; 14. @Temporal(TemporalType.TIMESTAMP) 15. @Column(name="created_on", nullable = false) 16. private Date createdOn = new Date(); 17. @OneToMany(mappedBy="project", fetch=FetchType.LAZY, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE } ) 18. private List<Invitation> invitationList; 19. @Enumerated(EnumType.STRING) 20. @Column(name = "project_status", nullable = false) 21. private ProjectStatus projectStatus = ProjectStatus.WORKING;
Figura 3.10 Entidad de negocios con anotaciones de JPA.

59

Aplicacin de la metodologa

Los elementos que componen la figura son: En la lnea 1 con la anotacin @Entity se indica que la clase se mapea con una tabla en base de datos. La anotacin @Table de la lnea 2 especificar el nombre de la tabla en base de datos donde se persiste la entidad. Es una anotacin opcional, si no se incluye la entidad se persiste en una tabla que coincide con el nombre de la clase. Para utilizar alguna estrategia de herencia se emplea la anotacin @Inheritance como se indica en la lnea 3. En las lneas 5, 6 y 7 se definen las caractersticas de la propiedad que funciona como identificador de la entidad. Una entidad cumple una serie de restricciones como, por ejemplo, tener un constructor vaco, ya sea pblico o protegido, poseer un campo que sea clave primaria, lo cual se define con la anotacin @Id. JPA permite establecer relaciones entre las entidades, un tipo de relacin es el que se emplea en las lneas 9, 10 y 11. La anotacin @ManyToOne de la lnea 9 indica que se trata de una relacin, en la lnea 10 la anotacin @JoinColumn define el nombre de la columna en la tabla de la base de datos y algunas restricciones. La anotacin @Column de la lnea 12 define varias propiedades de la columna en base de datos donde se persiste la propiedad de la clase. En la lnea 14 la anotacin @Temporal sirve para indicar que se persisten solo tipos de datos java.util.Date y java.util.Calendar. La anotacin de la lnea 19 @Enumerated describe un atributo de tipo enum. Entidades de acceso a datos. Son clases que contienen detalles especficos para definir las operaciones de acceso a datos de las entidades de negocio, se usan

60

Aplicacin de la metodologa

para aislar en la aplicacin la tecnologa de persistencia. Se utiliza el patrn de diseo para aplicaciones empresariales en Java (JEE) Objetos de Acceso a Datos (DAO) [40], para proveer de una interfaz comn entre la aplicacin y el gestor de almacenamiento de datos. En la Figura 3.11 se describe la interfaz genrica de la que heredan las clases que implementan el DAO, se utilizan los tipos de datos genricos de Java para implementar una interfaz DAO genrica. 1. package itsolver.model.dao; 2. import java.io.Serializable; 3. import java.util.List; 4. /** 5. Interfaz para implementar el patrn de diseo Data Access Object 6. * 7. @param <T> Tipo de dato de la entidad de negocio que almacena el DAO. 8. @param <ID> Tipo del identificador en la entidad de negocio 9. */ 10. public interface GenericDAO <T, ID extends Serializable> { /** 11. Encuentra una entidad T por su identificador de tipo ID y la regresa si es que existe. 12. En caso contrario regresa null 13. @param id identificador de la entidad de tipo ID 14. @return Entidad con la que coincide el id. Si no hay coincidencia regresa null. 15. */ 16. T findById(ID id); 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. /** Regresa todas las entidades de tipo T en la base de datos. @return Todas las entidades en base de datos de tipo T */ List<T> findAll(); /** Persiste una entidad en base de datos @param entity Entidad */ void persist(T entity); /** Actualiza o persiste una entidad en base de datos

61

Aplicacin de la metodologa

29. 30. 31. 32. 33. 34. 35. 36. 37. }

@param entity Entidad */ void merge(T detachedEntity); /** Elimina una entidad de persistencia en base de datos. @param entity Entidad */ void remove(T entity);

Figura 3.11 Interfaz GenericDAO

3.5 Integracin de las tecnologas


En la construccin de la aplicacin Web se integraron diferentes marcos de trabajo y tecnologas con el propsito de tener mejor estructurada la aplicacin, facilitar el desarrollo y el mantenimiento del cdigo, permitir la escalabilidad y crear una aplicacin con una interfaz agradable al usuario. La integracin fue posible con el uso del marco de trabajo Spring en la versin 3. En Spring, ApplicationContext.xml es el archivo de configuracin bsico del contexto de aplicacin. Consiste en un archivo XML donde se aaden todos los objetos que existen en la aplicacin al inicializarse la misma, la Figura 3.12 incluye parte de la configuracin del sistema desarrollado en la tesis. Algunos de los elementos que lo componen son: De la lnea 12 a la lnea 28 trata la configuracin para inicializar JPA. Entre la lnea 30 y 33 la configuracin de un Bean. Con esta configuracin permite referenciarse al Bean desde cualquier punto de la aplicacin para hacer la inyeccin de cdigo en las clases de Java. La lnea 34 se refiere a la configuracin de AspectJ.

62

Aplicacin de la metodologa

1. <?xml version="1.0" encoding="UTF-8"?> 2. <beans xmlns="http://www.springframework.org/schema/beans" 3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4. xmlns:tx="http://www.springframework.org/schema/tx" 5. xmlns:aop="http://www.springframework.org/schema/aop" 6. xsi:schemaLocation="http://www.springframework.org/schema/beans 7. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 8. http://www.springframework.org/schema/tx 9. http://www.springframework.org/schema/tx/spring-tx.xsd 10. http://www.springframework.org/schema/aop"> 11. <!Inicializa algunos parametros de configuracin para JPA --> 12. <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 13. <property name="driverClassName" value="${db.driver}"/> 14. <property name="url" value="${db.url}"/> 15. <property name="username" value="${db.username}"/> 16. <property name="password" value="${db.password}"/> 17. </bean> 18. <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 19. <property name="persistenceXmlLocation" value="classpath:METAINF/persistence.xml" /> 20. <property name="persistenceUnitName" value="itsolverJPA" /> 21. <property name="dataSource" ref="dataSource"/> 22. </bean> 23. <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 24. <property name="entityManagerFactory" ref="entityManagerFactory"/> 25. <property name="dataSource" ref="dataSource"/> 26. </bean> 27. <tx:annotation-driven transaction-manager="transactionManager" /> 28. <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostPro cessor" /> 29. <!Finaliza configuracin de JPA --> 30. <bean id="userService" class="itsolver.service.UserServiceImpl" > 31. <property name="userDAO" ref="userDAO"/> 32. </bean> 33. <bean id="userDAO" class="itsolver.model.dao.UserDAOImpl"/> 34. <aop:aspectj-autoproxy /> 35. </beans>
Figura 3.12 Archivo de configuracin ApplicationContext.xml

63

Aplicacin de la metodologa

3.6 Implementacin del mdulo de CBR


Para la implementacin del mdulo del CBR el primer paso fue establecer los atributos indexados, los cuales se muestran en la Tabla 3.3. La ponderacin se defini por un panel de expertos que emple el mtodo de consenso.
Tabla 3.3 Atributos indexados en el mdulo de CBR

Atributo Contradiccin Naturaleza del problema Recursos Restricciones 50% 5% 25% 20%

Peso

El siguiente paso fue la creacin de las clases para hacer la bsqueda en el mdulo de CBR, para la cual se utiliz el API jCOLIBRI en la versin 2. La Figura 3.13 documenta la clase que hace la comparacin de los casos. Como regla se presentan en el resultado de la bsqueda los casos que tienen un porcentaje de similitud mayor al 50%. 1. import jcolibri.cbrcore.Attribute; 2. import jcolibri.cbrcore.CBRCase; 3. import jcolibri.cbrcore.CBRQuery; 4. import jcolibri.method.retrieve.RetrievalResult; 5. import jcolibri.method.retrieve.NNretrieval.NNConfig; 6. import jcolibri.method.retrieve.NNretrieval.NNScoringMethod; 7. import jcolibri.method.retrieve.NNretrieval.similarity.global.Average; 8. import jcolibri.method.retrieve.NNretrieval.similarity.local.Equal; 9. /** 10. Clase que implementa los algoritmos para hacer la bsqueda de casos en el CBR con la ayuda de clases de la implementacin de jCOLIBRI 11. @author rene 12. **/ 13. public class CBREngine { 14. //Atributo para almacenar la lista de casos 15. private Collection<CBRCase> casesList; 16. //Instancia del servicio para acceder a la base de casos. 17. private CbrService cbrService;

64

Aplicacin de la metodologa

18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54.

public CBREngine() { casesList = new java.util.ArrayList<CBRCase>(); cbrService = ServiceLocator.getCbrService(); } /** Mtodo que hace la bsqueda en el modulo del CBR @param project. Recibe como parmetro una entidad con los datos del proyecto que se va a comparar @return */ public Collection<RetrievalResult> doCBRSearch(Project project){ //Transforma el proyecto en un objeto de tipo CBRQuery para hacer la comparacin CBRQuery query = getQueryDescription(project); NNConfig simConfig = null; //Recupera la configuracin de los atributos indexados simConfig = getCBRContradictionConf(); //Recupera de la base de casos los casos almacenados casesList = cbrService.getCBRCaseCollection(); /********* Ejecuta NN ************/ //Emplea el algoritmo del vecino mas cercano para hacer la comparacin de los casos, este mtodo lo provee la implementacin de jCOLIBRI Collection<RetrievalResult> eval = NNScoringMethod.evaluateSimilarity(casesList, query, simConfig); //Regresa la lista de casos que se compararon con el porcentaje de similitud. return eval; } /** Configuracin de los atributos indexados para hacer la comparacin de casos @return */ private NNConfig getCBRContradictionConf() { NNConfig simConfig = new NNConfig(); simConfig.setDescriptionSimFunction(new Average()); //Configuracin del atributo contradiccin. Attribute contrAttribute = new Attribute("cbrContradiction", CBRCaseEntity.class); simConfig.addMapping(contrAttribute, new EqualContradiction()); //Se asigna el peso de 50% a la contradiccin. simConfig.setWeight(contrAttribute, 0.5); //Configuracin del atributo naturaleza del problema Attribute problemNatureAttribute = new Attribute("problemNature", CBRCaseEntity.class);

65

Aplicacin de la metodologa

55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. }

simConfig.addMapping(problemNatureAttribute, new Equal()); //Se le asigna un peso del 5% simConfig.setWeight(problemNatureAttribute, 0.05); //Configuracin del atributo de los recursos Attribute cbrResourceAttribute = new Attribute("cbrResource", CBRCaseEntity.class); simConfig.addMapping(cbrResourceAttribute, new EqualList()); //Se asigna un peso del 25% simConfig.setWeight(cbrResourceAttribute, 0.25); //Configuracin del atributo de las restricciones Attribute cbrConstrainAttribute = new Attribute("cbrConstraint", CBRCaseEntity.class); simConfig.addMapping(cbrConstrainAttribute, new EqualList()); //Se le asigna un peso del 20% simConfig.setWeight(cbrConstrainAttribute, 0.2); return simConfig; } /** Transforma la entidad del proyecto en un objeto de tipo CBRQuery para hacer la comparacin contra los casos almacenados @param project Entidad con los datos del proyecto que se compara @return Regresa un objeto del tipo CBRQuery */ private CBRQuery getQueryDescription(Project project){ CBRCaseEntity queryDesc = this.cbrService.getCBRCaseEntity(project); CBRQuery query = new CBRQuery(); query.setDescription(queryDesc); return query; }
Figura 3.13 Clase para la bsqueda en el CBR

3.7 Desarrollo de interfaces grficas de usuario


El uso del marco de trabajo ZK en el desarrollo de la aplicacin Web permiti crear interfaces grficas de usuario atractivas y que al mismo tiempo son muy funcionales. A continuacin se describen algunas caractersticas de la aplicacin Web empleando imgenes de las interfaces de usuario creadas con ZK. La Figura 3.14 muestra la pgina de inicio cuando se accede a la aplicacin. 1. Opcin para autenticarse en el sistema, valida las credenciales del usuario para ingresar a la aplicacin.

66

Aplicacin de la metodologa

2. Formulario para que un nuevo usuario se registre.

Figura 3.14 Pgina de inicio con la opcin de autenticacin.

En la Figura 3.15 se aprecia el diseo de la interfaz principal una vez que el usuario se autentic para ingresar al sistema. 1. Seccin de notificaciones para el usuario. 2. Men de opciones de la aplicacin. 3. Men de opciones adicionales: Acerca de, Preguntas frecuentes, Contacto, Retroalimentacin.

67

Aplicacin de la metodologa

3
Figura 3.15 Pgina principal usuario autenticado.

La Figura 3.16 corresponde a la opcin de Mis Proyectos donde el usuario agrega y edita un proyecto, adems, de enviar invitaciones de colaboracin a otros usuarios. 1. Opcin para agregar un proyecto 2. Lista de proyectos que tiene registrado 3. Opcin de editar proyecto 4. Opcin de invitar a colaboracin.
1 3 4

2
Figura 3.16 Opcin de Mis proyectos

En la Figura 3.17 se observan las opciones para editar un proyecto seleccionado previamente. 1. Datos de la descripcin del problema 2. Men con las opciones para editar las caractersticas del proyecto.

68

Aplicacin de la metodologa

Figura 3.17 Opcin de editar proyecto.

69

Resultados

Captulo 4 Resultados
4.1 Registro de casos
Con el propsito de hacer pruebas en la herramienta se revis la bibliografa para buscar problemas resueltos empleando la matriz de contradicciones, y hacer la documentacin de los mismos en la aplicacin Web. La aplicacin Web est disponible a travs de un Web browser en el dominio http://www.innovasolver.com/ en tres diferentes idiomas: espaol, ingls y francs. En la Tabla 4.1 se documenta el Caso 1 que tiene que ver con un problema en el desarrollo de un nuevo colector solar [41].
Tabla 4.1 Problema colector solar

Descripcin Nombre del proyecto Naturaleza Fecha de entrega Breve descripcin Proceso de desarrollo de un nuevo colector solar Agregar nueva funcionalidad 26 Junio 2010 Proceso de desarrollo de un nuevo colector solar que genere el rendimiento de un colector solar de tubos al vaco Mientras se calienta un fluido mediante colectores solares entre ms grande es el rea de absorcin se recibe ms energa. El problema con esto es que para tener una zona de absorcin ms grande usando un colector solar de placa plana convencional se necesita una caja ms grande y, como resultado, el espesor del vidrio superior y de las paredes de la caja tiene que ser aumentada para soportar el nivel de alto vaco requiere Una zona de absorcin ms grande usando un colector solar de placa plana convencional Recursos

Situacin problemtica

Mejora/Defecto a eliminar

70

Resultados

Temperatura ambiental Espacio Tamao Tiempo Propiedades de la sustancia Restricciones 22. Temperatura mnima (150 grados centgrados) 27. Prdida de energa (se busca que sea mnima) 24. Eficiencia de una funcin til (Proveer el calor requerido por 3 toneladas de absorcin de un aire acondicionado en 10 metros cuadrados) Resultado Final ideal Tener un colector solar capaz de tener una temperatura en operacin de 150 grados centgrados manteniendo una eficiencia alta y buen rendimiento incluso en malas condiciones de clima pero a un bajo costo. Contradiccin Caracterstica que mejora Descripcin caracterstica que mejora Caracterstica que empeora Descripcin caracterstica que empeora 2. Peso de un objeto estacionario Aumentar el rea de absorcin

27. Prdida de energa Vaco de la bomba ms grande, ms gruesa cubierta de cristal superior y paredes de la caja ms gruesas. Solucin

Solucin propuesta

Principio: 7. Colocacin interna/Anidacin Como se adapt: La solucin resultante fue acomodar los soportes verticales debajo de la cubierta para que las

71

Resultados

fuerzas se distribuyan. Detalles Comentarios: En la solucin tambin se emple el principio 17. Mover a otra dimensin Problemas con la solucin: Fuentes de informacin: Patente (US 4,881,521). Solucin alterna: Datos contacto: Alejandro Garza-Crdoba, UltraEnertech, S.A. de C.V., ( agarzac@ultraenertech.com) Noel Len Rovira, CIDYT, ITESM (noel.leon@itesm.mx) Satisfaccin de la solucin: 100%

El Caso 2 es un problema en el proceso de ensamblado de automviles [42] que se documenta en la Tabla 4.2.
Tabla 4.2 Problema ensamblado de automviles

Descripcin Nombre del proyecto Naturaleza Fecha de entrega Breve descripcin Situacin problemtica Resolver un problema en el ensamblado de automviles usando TRIZ. Mejorar rendimiento. 31 Marzo 2011 Resolucin del problema en el depsito de combustible durante el proceso de montaje del modelo de carro X La carrocera del vehculo se transporta a travs de la planta hasta que desciende para unirse con la parte inferior del vehculo (que contiene el eje trasero, tanque de combustible, de escape, entre otras partes) para el montaje. Ambas partes se estn moviendo, y el acoplamiento se produce de una manera dinmica. El operador mantiene la atencin en muchas partes ya que controla el descenso del cuerpo. Es muy fcil fallar. Una de las fallas ms comunes es el dao a la boquilla del tanque

72

Resultados

de combustible. Mejora/Defecto a eliminar Friccin entre la boquilla del tanque de combustible y el cuerpo del coche en el momento del acoplamiento. Recursos Recursos de la sustancia: aire, papel, depsito de combustible, el cuerpo, la humedad; Recursos energticos: aire comprimido, la fuerza muscular del operador, el potencial y la energa cintica del cuerpo, la cintica la energa de las partes mviles; Espacio recursos: el espacio entre la boquilla del tanque de combustible y el cuerpo, el espacio entre el tanque de combustible y el cuerpo, el espacio entre perno de gua y el cuerpo. Campo de los recursos: el campo gravitatorio. Recursos de tiempo: tiempo necesario para bajar el cuerpo, el tiempo asignado para la operacin en su conjunto. Recursos de informacin: descendente / ascendente del cuerpo, el movimiento de montaje carro, de la direccin. Funcin de recursos: acoplamiento de los componentes de la parte inferior del vehculo con el cuerpo, el centro y el tanque de combustible gua. Restricciones

Resultado Final ideal a) La boquilla no roza contra el cuerpo y cae en la posicin correcta por s mismo. b) El sistema de colocacin es efectiva y mantiene una cantidad relativamente buena de la distancia entre el cuerpo y el tanque de combustible, por lo tanto evitar el deterioro. Contradiccin

73

Resultados

Caracterstica que mejora Descripcin caracterstica que mejora Caracterstica que empeora Descripcin caracterstica que empeora

45. Complejidad del sistema a) La complejidad del sistema tcnico. b) Costo. 25. Prdida de sustancia La friccin entre la boquilla del tanque de combustible y el cuerpo. Solucin

Solucin propuesta

Principio: 28. Substitucin de sistemas mecnicos por otro sistema. Como se adapt: Generacin de un campo magntico opuesto entre la boquilla del tanque de combustible y el cuerpo, dando propiedades repeler a cada uno, evitando as contacto y, en consecuencia, el deterioro

Detalles

Comentarios: Problemas con la solucin: Fuentes de informacin: Solucin alterna: Utilizando el principio 35. Transformacin de propiedades/Cambio de parmetros Cambio de la densidad de la goma de la junta de la boquilla a un nivel que evita el deterioro y an mantiene las propiedades de sellado Datos contacto: Marco A. de Carvalho, Edson O. Martins

Satisfaccin de la solucin:

100%

En la Tabla 4.3 se presenta el Caso 3, un problema para maximizar el transporte de los garrafones de agua [43].

74

Resultados

Tabla 4.3 Problema garrafn de agua.

Descripcin Nombre del proyecto Naturaleza Fecha de entrega Breve descripcin Problema en garrafn de agua Agregar nueva funcin 12 Noviembre de 2010 El problema es maximizar el espacio disponible en vehculos en el reparto de agua purificada en un garrafn de 19lts. Este problema genera numerosos inconvenientes: (1) los contenedores no se colocan verticalmente (uno arriba del otro). Esto reduce tanto el tamao del lote en un vehculo y la tasa de entrega. (2) Si se colocan verticalmente uno al lado del otro, es difcil para los operadores recoger el contenedor, lo que tambin representa un riesgo de lesin. Maximizar espacio disponible Recursos De espacio: Colocacin interna Propiedad de la sustancia: El peso Restricciones 8. Volumen de un objeto estacionario, el volumen del garrafn es de 19 litros. Resultado Final ideal Es un contenedor que no tiene dimensin fsica (peso, volumen, entre otros), pero que cumple su funcin til. Contradiccin Caracterstica que mejora Descripcin caracterstica que mejora 8. Volumen de un objeto estacionario El volumen del garrafn cuando est dentro del camin repartidor

Situacin problemtica

Mejora/Defecto a eliminar

75

Resultados

Caracterstica que empeora Descripcin caracterstica que empeora

9. Forma La forma de los garrafones de agua

Solucin Solucin propuesta Principio: 7. Colocacin interna/Anidacin Como se adapt: Hacer retrctil la entrada del garrafn de agua como una antena de radio que se extiende. Detalles Comentarios: Se emple tambin el principio de solucin 35. Transformacin de propiedades/Cambio de parmetros. Problemas con la solucin: Fuentes de informacin: Datos contacto: Guillermo Cortes Robles, Maricela Gallardo Crdova, Stphane Negny, Jean Marc Le Lann Satisfaccin de la solucin: 100%

4.2 Mdulo de CBR


La evaluacin de la base de conocimiento contenida en el mdulo de CBR se realiz con el caso descrito en la Tabla 4.4, con la informacin descrita en la tabla se llev a cabo el proceso de bsqueda en la base de conocimiento, los resultados se aprecian en la Figura 4.1.
Tabla 4.4 Caso de prueba del mdulo CBR.

Descripcin Nombre del proyecto Naturaleza Fecha de entrega Caso para probar mdulo de CBR Agregar nueva funcionalidad 26 Enero 2010

76

Resultados

Recursos Temperatura ambiental Espacio Tamao Tiempo Propiedades de la sustancia Restricciones 22. Temperatura mnima (150 grados centgrados) 27. Prdida de energa (mnima) 24. Eficiencia de una funcin til (Proveer suficiente calor) Contradiccin Caracterstica que mejora Caracterstica que empeora 2. Peso de un objeto estacionario 27. Prdida de energa

En la Figura 4.1 se aprecia el resultado de la bsqueda empleando el procedimiento descrito en el punto 3.6 de esta tesis referente a la implementacin del mdulo de CBR. El caso con un porcentaje mayor al 50% es el Caso 1 que se documenta en la Tabla 4.1 con una similitud del 100%.

Figura 4.1 Resultado de bsqueda en el mdulo de CBR

77

Resultados

En la Figura 4.1 las imgenes

son opciones para generar un reporte en

formato PDF o HTML respectivamente. Un reporte del Caso 1 en HTML se aprecia en la Figura 4.2

Figura 4.2 Reporte en formato HTML

78

Resultados

A partir del reporte se plantea la solucin al problema que se resuelve, reutilizando la experiencia que qued registrada previamente en el caso que result similar. En este punto el proceso de adaptacin queda reducido a la consulta del reporte y es el usuario quin interpreta y adapta la solucin a su problema.
4.2.1 Variaciones en el ndice de similitud

Empleando el Caso de prueba descrito en la Tabla 4.4

se realizaron

modificaciones en los atributos para evaluar la variacin en el ndice de similitud con respecto al Caso 1. Las variaciones consistieron en disminuir paulatinamente el nmero de recursos del problema que se compara en el CBR. Tambin se eliminaron restricciones y por ltimo se cambi la naturaleza del problema. Las variaciones del ndice de similitud cuando se eliminan recursos del Caso de prueba se documentan en la Tabla 4.5
Tabla 4.5 Cambio en nmero de recursos

Nmero de recursos eliminados en el Caso de prueba 1 2 3 4 5

Porcentaje de similitud con el Caso 1 95% 90% 85% 80 75%

En la Tabla 4.6 se muestran las variaciones del ndice de similitud con respecto al Caso 1 cuando se eliminan restricciones en el Caso de prueba.

79

Resultados

Tabla 4.6 Cambio en el nmero de restricciones

Nmero de restricciones eliminadas en el Caso de prueba 1 2 3

Porcentaje de similitud con el Caso 1 68.33% 61.67% 55%

Cuando se modifica la naturaleza del problema el porcentaje de similitud del Caso de prueba con respecto al Caso 1 se reduce al 50%. Con el anlisis anterior se demuestra la pertinencia del proceso de comparacin y bsqueda en la base de casos, entre ms elementos tienen en comn el caso del problema que se resuelve con los casos de las base de casos, mayor ser el ndice de similitud.

4.3 Proceso de colaboracin


En el desarrollo de la aplicacin Web, el proceso de colaboracin se centr en los siguientes cuatro puntos: 1) Ofrecer herramientas que faciliten la comunicacin entre los usuarios. 2) Coordinacin de las actividades realizadas por los usuarios. 3) Que los usuarios colaboren para crear, modificar y compartir proyectos. 4) Asegurar la integridad de la informacin en los proyectos y llevar un registro del progreso de los proyectos. Como herramienta de comunicacin existe un chat al que todos los usuarios autenticados en el sistema tienen posibilidad de acceder. Otra herramienta que tiene la funcin de facilitar la comunicacin entre los usuarios son las notificaciones que se generan al realizar ciertas actividades (creacin de proyecto, edicin, invitacin a colaborar, entre otras) que son de importancia para el usuario o los usuarios con los

80

Resultados

que colabora; las notificaciones se muestran en una herramienta que se denomina Notificaciones en la Figura 4.3 se muestra un ejemplo de la herramienta.

Notificaciones

Figura 4.3 Herramienta Notificaciones

La coordinacin y la colaboracin inician cuando se comparte un proyecto para que otro usuario tenga la posibilidad de editar alguna de sus caractersticas. Para compartir un proyecto existen dos opciones: compartir el proyecto con un usuario registrado en el sistema y enviar la invitacin empleando el correo electrnico. Actualmente no existe en la aplicacin Web un mecanismo que garantice la calidad de las colaboraciones de otros usuarios cuando se hace el anlisis del problema y se plantea una posible solucin. Las notificaciones sirven para mantener actualizado al creador del proyecto de los cambios que sufre pero no asegura que las contribuciones son correctas. La Figura 4.4 presenta la opcin para invitar a colaborar por nombre de usuario.

81

Resultados

Figura 4.4 Invitacin a colaborar por nombre de usuario

El formulario para compartir un proyecto por correo electrnico a un usuario que no est registrado se presenta en la Figura 4.5.

Figura 4.5 Invitacin por correo electrnico

Despus que se enva la invitacin, el usuario recibe un correo electrnico con el siguiente mensaje de la Figura 4.6.

82

Resultados

Figura 4.6 Mensaje con invitacin para colaborar

Finalmente el usuario que colabora accede al proyecto para contribuir en la edicin. La opcin de Colaborar se encuentra en la pestaa de Colaboraciones como se aprecia en la figura 4.7.

Figura 4.7 Opcin de colaboracin

Par asegurar la integridad de la informacin se implement un mecanismo de exclusin mutua en los proyectos, cuando un usuario edita un proyecto o realiza una colaboracin el sistema bloquea dicho proyecto para que ningn otro usuario lo modifique. El proyecto se bloquea por 10 minutos y se consideran los siguientes escenarios: El usuario cierra la ventana de edicin del proyecto sin guardar los cambios. En esta situacin el sistema libera el proyecto.

83

Resultados

El usuario cierra la ventana del Web browser. Cuando expiran los 10 minutos sin actividad en el proyecto el sistema lo libera.

El usuario abre la ventana de edicin del proyecto pero no actualiza ninguna de las caractersticas en un periodo mximo de 10 minutos, despus de ese tiempo el sistema notifica al usuario, cierra la ventana de edicin y libera el proyecto.

Cuando se resuelve un problema y se confirma la solucin, ya sea individualmente o en colaboracin, se genera un nuevo caso en la base de casos y queda disponible para todos los usuarios. Es as como se construye de forma colaborativa una base de casos entre todos los usuarios del sistema.

84

Conclusiones y recomendaciones

Captulo 5 Conclusiones y recomendaciones


Conclusiones Una vez concluido el proyecto de tesis se establece que: Los usuarios de la teora de TRIZ cuentan con una herramienta funcional que les asiste en el proceso de resolucin de un problema plateado como una contradiccin. La herramienta est disponible como una aplicacin Web y se accede a ella a travs de un Web browser con el nombre de dominio http://www.innovasolver.com/. Se implement el modelo TRIZ-CBR haciendo uso de las tecnologas disponibles para el desarrollo de aplicaciones Web, y la integracin de la API jCOLIBRI para la construccin del mdulo CBR encargado de la

administracin del conocimiento. Los usuarios de la teora TRIZ en diferentes dominios del conocimiento cuentan con una estructura para memorizar y compartir los problemas resueltos, la cual les permite la capitalizacin y reutilizacin del conocimiento. Se estableci un esquema para recuperar y presentar los casos almacenados basndose en un ndice de similitud. Con el desarrollo de la aplicacin Web se agreg la funcionalidad para el trabajo colaborativo al modelo TRIZ-CBR, dicha funcionalidad no se contempla en la concepcin original del modelo. El marco de trabajo Spring facilit la integracin de las diferentes herramientas y marcos de trabajos empleados en la construccin del sistema, adems, la arquitectura que se propone facilita el mantenimiento. Con el marco de trabajo ZK se facilit el desarrollo de las interfaces de usuario para crear una aplicacin Web tipo RIA en un tiempo mnimo.

85

Conclusiones y recomendaciones

Se integr un mecanismo para que los usuarios hagan observaciones que contribuyan en el mejoramiento de la herramienta.

La internacionalizacin de la aplicacin en los idiomas espaol, ingls y francs cumple con los requerimientos planteados.

Recomendaciones Como trabajo futuro se recomienda: Integrar otros mdulos y/o herramientas de la teora de TRIZ para que se cuente con un entorno colaborativo ms completo que asista en el proceso de innovacin y resolucin de diferentes tipos de problemas. Agregar la bsqueda en base de datos de patentes para que se disponga del conocimiento planteado en las patentes. Mejorar el mecanismo de adaptacin de la solucin para explotar los resultados del mdulo de CBR. Integrar una opcin que facilite identificar la contradiccin en el problema. Contemplar en el proceso la resolucin de mltiples contradicciones. Crear la estructura para hacer la adaptacin de la aplicacin Web a un dominio del conocimiento especfico.

86

Glosario

Glosario
AJAX: acrnimo de Asynchronous JavaScript And XML (JavaScript asncrono y XML), es una tcnica de desarrollo Web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el Web browser de los usuarios mientras se mantiene la comunicacin asncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las pginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones. API: Una interfaz de programacin de aplicaciones o API (del ingls Application Programming Interface) es el conjunto de funciones y procedimientos (o mtodos, en la programacin orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstraccin. Cluster: El trmino cluster se aplica a los conjuntos o conglomerados de computadoras construidos mediante la utilizacin de componentes de hardware comunes y que se comportan como si fuesen una nica computadora. Hoy en da desempean un papel importante en la solucin de problemas de las ciencias, las ingenieras y del comercio moderno. La tecnologa de clusters evolucion en apoyo de actividades que van desde aplicaciones de supercmputo y software de misiones crticas, servidores Web y comercio electrnico, hasta bases de datos de alto rendimiento, entre otros usos. Comet: En el desarrollo Web, Comet es un nuevo trmino para describir un modelo de aplicacin Web en el que una peticin HTTP mantenida abierta permite a un servidor Web enviar datos a un navegador por tecnologa push, sin que el navegador los solicite explcitamente. Comet es un trmino paraguas de mltiples tcnicas para conseguir esta interaccin. Todos estos mtodos confan en caractersticas incluidas por defecto en navegadores, como JavaScript, en lugar de plugins no disponibles por defecto.

87

Glosario

EJB: Los Enterprise JavaBeans proporcionan un modelo de componentes distribuido estndar del lado del servidor. El objetivo de los EJB es dotar al programador de un modelo que le permita abstraerse de los problemas generales de una aplicacin empresarial (concurrencia, transacciones, persistencia, seguridad, etc.) para centrarse en el desarrollo de la lgica de negocio en s. El hecho de estar basado en componentes permite que stos sean flexibles y sobre todo reutilizables. No hay que confundir los Enterprise JavaBeans con los JavaBeans. Los JavaBeans tambin son un modelo de componentes creado por Oracle - Sun Microsystems para la construccin de aplicaciones, pero no se utilizan en entornos de objetos distribuidos al no soportar nativamente la invocacin remota. GNU GPL: La Licencia Pblica General de GNU o ms conocida por su nombre en ingls GNU(General Publical License) o simplemente su acrnimo del ingls GNU GPL, es una licencia creada por la Free Software Foundation en 1989 (la primera versin), y est orientada principalmente a proteger la libre distribucin, modificacin y uso de software. Su propsito es declarar que el software cubierto por esta licencia es software libre y protegerlo de intentos de apropiacin que restrinjan esas libertades a los usuarios. GUI: La interfaz grfica de usuario, conocida tambin como GUI (del ingls Graphical User Interface) es un tipo de interfaz de usuario que utiliza un conjunto de imgenes y objetos grficos para representar la informacin y acciones disponibles en la interfaz. JEE: Java Platform, Enterprise Edition o Java EE (anteriormente conocido como Java 2 Platform, Enterprise Edition o J2EE hasta la versin 1.4), es una plataforma de programacinparte de la Plataforma Javapara desarrollar y ejecutar software de aplicaciones en Lenguaje de programacin Java con arquitectura de N niveles distribuida, basndose ampliamente en componentes de software modulares ejecutndose sobre un servidor de aplicaciones. La plataforma Java EE est definida por una especificacin. Similar a otras especificaciones del Java Community

88

Glosario

Process, Java EE es tambin considerada informalmente como un estndar ya que los suministradores cumplen ciertos requisitos de conformidad para declarar que sus productos son conformes a Java EE; estandarizado por The Java Community Process. POJO: Un POJO (acrnimo de Plain Old Java Object) es una sigla creada por Martin Fowler, Rebecca Parsons y Josh MacKenzie en septiembre de 2000 y utilizada por programadores Java para enfatizar el uso de clases simples y que no dependen de un marco de trabajo en especial. Este acrnimo surge como una reaccin en el mundo Java a los frameworks cada vez ms complejos, y que requieren un complicado andamiaje que esconde el problema que realmente se est modelando. En particular surge en oposicin al modelo planteado por los estndares EJB anteriores al 3.0, en los que los "Enterprise JavaBeans" implementan interfaces especiales. Rake: Es una herramienta de construccin de software. Es similar a make, de los sistemas Unix, pero tiene un nmero de diferencias. Esta herramienta est escrita en el lenguaje de programacin Ruby, y los Rakefiles (equivalentes a los Makefiles en make) usan sintaxis de Ruby. Scaffolding: Es un mtodo de meta-programacin para construir aplicaciones con conexin a bases de datos. Esta es una tcnica soportada por algunos marcos de trabajo basados en el Modelo Vista Controlador, en el que el programador escribe una especificacin que describe como la aplicacin interacta con la base de datos. El compilador usa esta especificacin para generar cdigo que la aplicacin se usar para, crear, leer, actualizar y borrar registros en la base de datos, tratando efectivamente la plantilla como un andamio (scaffold) en la que se construyen aplicaciones ms potentes. Server push: HTTP server push (conocido como HTTP streaming) es un mecanismo de envo de datos desde un servidor Web hacia un Web browser. HTTP server push se realiza a travs de muchos mecanismos. Generalmente el servidor Web no

89

Glosario

termina la respuesta despus que la informacin es enviada al cliente. El servidor Web deja el response abierto para que si un evento ocurre, ste es enviado inmediatamente a uno o a muchos clientes. De otra manera, la informacin es puesta en lista de espera hasta que se reciba la prxima peticin del cliente. Muchos servidores Web ofrecen esta funcionalidad a travs de CGI (por ejemplo NPH scripts en Apache). Web Browser: es un programa que permite ver la informacin que contiene una pgina Web (ya se encuentre sta alojada en un servidor dentro de la World Wide Web o en un servidor local). Interpreta el cdigo, HTML generalmente, en el que est escrita la pgina Web y lo presenta en pantalla permitiendo al usuario interactuar con su contenido y navegar hacia otros lugares de la red mediante enlaces o hipervnculos. Widget: En el contexto de la programacin de aplicaciones visuales, es un componente o control visual que el programador reutiliza y tiene un gran valor para el usuario, idea ntimamente ligada con el concepto de interfaz grfica de usuario (GUI por sus siglas en ingls). Desde esta perspectiva, un widget, tambin conocido como artilugio o control, es un componente grfico, o control, con el cual el usuario interacta, como por ejemplo, una ventana, una barra de tareas o una caja de texto. XUL: Acrnimo de XML-based User-interface Language, lenguaje basado en XML para la interfaz de usuario; XUL es un lenguaje basado en XML (Extensible Markup Language) utilizado para describir y crear interfaces de usuario, diseado para brindar la portabilidad de las mismas, por lo que permite desarrollar aplicaciones multi-plataforma sofisticadas o complejas sin necesidad de herramientas especiales.

90

Publicaciones

Publicaciones
Antonino Salas Lpez, Ren Lpez Flores, Daniel Hernndez Marn, Guillermo Cortes Robles. A framework for assisting the innovation process by using TRIZbased Web services en la conferencia internacional IDMME Virtual Concept 2010, Bordeaux, France, Octuber 2010. Publicado como captulo de libro por la casa editorial Springer-Verlag con ISBN 978-2-8178-0168-1 Ren Lpez Flores, Antonino Salas Lpez, Daniel Hernndez Marn, Guillermo Cortes Robles. "Marco de trabajo para asistir el proceso de innovacin mediante servicios Web basados en TRIZ" en el 5to Congreso Iberoamericano de Innovacin tecnolgica basado en TRIZ, Puebla, Puebla, Diciembre 2010. Editado por la Benemrita Universidad Autnoma de Puebla con ISBN 978-607-487-234-7

91

Referencias

Referencias
[1] G. Basalla, The Evolution of Technology, Cambridge University Press. 1989 [2] G. Cortes, S. Negny and J. Marc, Case-based reasoning and TRIZ: A coupling for innovative conception in Chemical Engineering, in Chemical Engineering and Processing 48 (2009) 239249, 2009. [3] von Hipple E. y Thomke S., Customers as innovators: A new way to create value, Harvard Business Review, Abril 2002. [4] G. Altshuller, The Innovation Algorithm, 1999, Technical Innovation Center [5] R. Sutton and A. Hargadon, "Brainstorming Groups in Context: Effectiveness in a Product Design Firm", in Administrative Science Quarterly. 1996 [6] Dundis, Stephen, Instructional Media in Human Resource Development, Northeastern Illinois University, 2001 [7] G. Altshuller, 40 Principles Extended Edition: TRIZ keys to technical Innovation, Technical Innovation Center. 2005 [8] D. Kucharavy, TRIZ: Methods and Tools, INSA Strasbourg, Graduate School of Science and Technology, 2006. [9] S.D. Savransky, Engineering of Creativity: Introduction to TRIZ Methodology of Inventive Problem Solving, CRC Press LLC, Boca Raton, FL, EUA. 2000 [10] K. Rantanen, E Domb, Simplified TRIZ, St. Lucie Press. EUA, 2002 [11] creachile, Matriz de contradicciones.

http://www.creachile.org/index.php?option=com_content&view=article&id=101:contra diccion-tecnica&catid=49:contradicciones&Itemid=92. [Consulta: Martes, 4 de enero de 2011]

92

Referencias

[12] I. Watson, Applying Case-Based Reasoning: techniques for enterprise systems, Morgan Kaufmann Publishers, Inc., 1997 [13] Lenz M., Case Retrieval Nets as a Model for Building Flexible Information Systems, 1999, Tesis doctoral en la Universidad de Humboldt, Berlin. [14] Kolodner J., Case-Based Reasoning, Morgan Kaufmann Publishers, Inc, 1993. [15] J.R. Quinlan, Induction of Decision Trees, in Machine learning, p.p 81-106 Springer Berlin, 1986 [16] C. Robles, S. Negny, JM Le Lann, "Design acceleration in chemical engineering", in Chemical Engineering and Processing. 2008 [17] C. Robles, S. Negny, JM Le Lann, Innovation and Knowledge Management: applying TRIZ in the knowledge capitalization process, 2005 [18] G. Cortes, S. Negny and J. Marc, La innovacin basada en el conocimiento: Presentacin y aplicacin delo modelo TRIZ-RBC. 2006 [19] G. Cortes, G. Alor and A. Aguilar, Accelerating the Knowledge Innovation Process", in Intelligent Data Engineering and Automated Learning - IDEAL 2009, p.p 184-192 Springer Berlin, 2009 [20] H. Duin, J.Jaskov, A. Hesmer, and K. Thoben,"Towards a Framework for Collaborative Innovation", in Computer-aided innovation (CAI): IFIP 20th World Computer Congress, 2008. [21] N. Drr, E. Behunken and Dr. T. Muller, "Web-based platform for Computer Aided Innovation Combining Innovation and Product Lifecycle Managment " , in Computer-aided innovation (CAI): IFIP 20th World Computer Congress, 2008. [22] H. P. Kuklinski. "Un modelo de aplicaciones Web institucional universitaria", Tesis Doctoral, Universidad Autnoma de Barcelona, Barcelona, Espaa, 2005.

93

Referencias

[23] J. D. Davidson, D. Coward. Java TM Servlet Specification, v2.2 Final Release, Sun microsystems, 1999. [24] M. Hadley. Web Application Description Language, Sun Microsystems Inc,California, U.S.A, 2009. [En lnea]. Disponible:

http://www.w3.org/Submission/2009/SUBM-wadl-20090831/. [Consulta: Mircoles, 5 de enero de 2011] [25] D. Eseryel, R. Ganesan, G. Edmonds, Review of Computer-Supported Collaborative Work Systems, Educational Technology & Society 5(2), 2002. [26] A. Tapiador, A. Fumero, J. Salvachua, S. Aguirre, A Web Collaboration Architecture, in International Conference on Collaborative Computing: Networking, Applications and Worksharing, 2006. [27] W. Lap, K. Ming , "Development of Online Game-Based Learning for TRIZ", in Technologies for E-Learning and Digital Entertainment: Second International Conference, Edutainment 2007, Hong Kong, China, June 11-13, 2007, Proceedings, China, 2007. [28] C. Berruquier, E. Blanzieri and A. Ebranati, "CBR Nave Interaction in a WebBased System for Tourism, in Information and Communication Technologies in Tourism 2005 Proceedings of the International Conference in Innsbruck, Austria, 2005 [29] C. Tautz and K. Althoff, "Using case-based reasoning for reusing software knowledge", in Case-Based Reasoning Research and Development, pp. 156-165, Springer Berlin. 2006 [30] C. Gao, K. Huang, H. Chen, "Case-Based Reasoning Technology Based on TRIZ and Generalized Location Pattern", in Journal of TRIZ in Engineering Design, Vol. 2, No. 1, pp. 40-58. 2006. [31] I.Horton, Ivor Horton's Beginning Java 2, JDK 5 Edition. Wrox, 5 ed., 2004.

94

Referencias

[32] R. Johnson, Java Development News, Introduction to the Spring Framework, Mayo 2005, Disponible: http://www.theserverside.com/news/1364527/Introduction-tothe-Spring-Framework. [Consulta: Martes, 8 de enero de 2011] [33] Computacional, Architecture Overview,in ZK Developer's Reference, Diciembre 2010. Disponible: .

http://books.zkoss.org/wiki/ZK/Developer27s/Reference/Architecture/Overview [Consulta: Mircoles, 9 de enero de 2011]

[34] Computacional, Captulo 1. Informacin general, MySQL 5.0 Reference Manual, 2010. Disponible: http://dev.mysql.com/doc/refman/5.0/es/introduction.html. [Consulta: Martes, 18 de enero de 2011] [35] E. Bernard, Hibernate Annotations, in Reference Guide, Septiembre 2010. [En lnea]. Disponible: http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html/ [36] Computacional, Apache Tomcat 6.0, in Documenentation, 2010. Disponible: http://tomcat.apache.org/tomcat-6.0-doc/index.html. [Consulta: Martes, 18 de enero de 2011] [37] Y. Lee, Y. Deng,"A Design System Integrating TRIZ Method and Case-Based Reasoning Approach", in Proceedings of the 8th International DDSS Conference, 2006 [38] B.Len , K. Rick and C. Paul. Software Arquitecture in practice 2ed., 2003 [39] K. Philippe, Architectural BlueprintsThe 4+1 View Model of Software Architecture, in IEEE Software 12 (6):42-50, 1995. [40] Sun Microsystems,"Core J2EE Patterns - Data Access Object", in Core J2EE Pattern Catalog, 2002. Disponible:

http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html. [Consulta: Jueves, 3 de febrero de 2011]

95

Referencias

[41] G. Alejandro, L. Noel, "Vacuum chamber solar collector development using triz methodology". Disponible: http://www.aitriz.org/articles/TRIZFeatures/30383131-

526F76697261.pdf .2008. [Consulta: Viernes, 4 de febrero de 2011] [42] C. Marco,M. Edson,"Solving an automotive assembly problem using triz", in 5 Congreso Iberoamericano de Innovacin Tecnolgica Puebla, Puebla. 2010. [43] C. Guillermo, G Maricela, N. Stphane, L. Lann Jean. "Applying the TRIZ-CBR model to improve a system", in Proceedings of the TRIZ-future conference.Frankfurt, Germany, 2007

96