Download - Re Vista 2008

Transcript
Page 1: Re Vista 2008

Universidad Mayor de San AndrésFacultad de Ciencias Puras y Naturales

Carrera de InformáticaINSTITUTO DE INVESTIGACIONES EN INFORMÁTICA

Revista “TRIPLE i” No. 3 del Instituto de Investigaciones enInformática, dependiente de la Carrera de Informática – Facultadde Ciencias Puras y Naturales.

Las opiniones expresadas son de responsabilidad exclusiva de susautores y no reflejan, necesariamente el criterio de la “Triple i”.

El material de esta publicación pude ser reproducido citandofuente y autor.

Autoridades:

FACULTAD DE CIENCIAS PURAS Y NATURALESM.Sc. Franz Cuevas QuirozDecanoM.Sc. Luís Morales EscobarVicedecano

CARRERA DE INFORMÁTICALic. Eufren Llanque QuispeJefe de Carrera

INSTITUTO DE INVESTIGACIONES EN INFORMÁTICAM.Sc. Edgar Clavijo CárdenasDirector

Edición, Diseño e Impresión:Ing. Oscar L. Guzmán JordánMaría Magdalena PonceNicolás Machicado Chávez

INSTITUTO DE INVESTIACIONES EN INFORMÁTICAAv. Villazón 1995 – Monoblock Central

Edificio Carrera de Informática, 2do. PisoTeléfono: 2440338 – 2440325 Int. 3

Sitio Web http://iii.informatica.edu.boCorreo Electrónico: [email protected]

La Paz, Diciembre 2008Bolivia

Page 2: Re Vista 2008

ÍNDICE

Pág.1. Ingeniería de Requerimientos con Teoría Fundamentada

Guillermo Choque Aspiazu……………………………………………..………… 3

2. MiddlewareRoberto Vargas Blacut …………………………………………………………………… 12

3. Resumen de una noticia de prensa: un pretexto para tener presente elprocesamiento del lenguaje naturalLucio Torrico Díaz …………………………………………………………………………. 17

4. Recurso didáctico para programación orientada a objetosMenfy Morales Ríos, Carlos R. Fernández L., Jaime Chura P. yJuan P. Poma ………………………………………………………………………………. 21

5. HUMANITIES COMPUTING: Iniciativas Digitales en HumanidadesBrígida Carvajal Blanco …………………………………………………………………… 27

6. Canales de información y matricesEdgar Clavijo Cárdenas……………………………………………………………………. 32

7. Sistemas inteligentes educativosPatricia Trino Camacho……………………………………………………………………. 40

8. Hojas de estiloRené Casilla Gutiérrez……………………………………………………………………….. 49

9. Programación orientada a componentesCarmen R. Huanca Quisbert y Celia E. Tarquino Peralta …………………………… 54

10.Teoría computacional en sistema multi-agenteElizabeth García Escalante …………………………….. …………………………………. 65

Page 3: Re Vista 2008

Editorial

Cada etapa nos marca un nuevo comienzo y en cada comienzo renovamos lasesperanzas de mejores días.

Nos preparamos a dar nuevos pasos en la consolidación de nuestra publicacióninstitucional dando acceso a profesionales de fuera de nuestra institución paraenriquecer de experiencias nuestra revista.

Contamos a partir de éste número con un comité editor conformado por prestigiososprofesionales de la Informática en nuestra región con la misión de vigilar por la calidadde la publicación, a los cuales agradecemos su colaboración desinteresada.

La publicación de este tercer número de la revista “Triple i” es emblemático por lacoincidencia con el nombre y número.

Los artículos presentados son parte de la experiencia profesional de nuestros colegasque se entrega generosamente para compartir y socializar su conocimiento sin otroreconocimiento que el agradecimiento sincero de parte de nuestra institución. Entreestos contamos aquellos que son parte de los resultados de los proyectos deinvestigación del I. I. I., investigaciones realizadas conectadas con el quehaceracadémico, investigaciones de interés personal con impacto social o experienciasprácticas de alto nivel profesional.

Finalmente, debemos agradecer a nuestra sociedad la oportunidad que nos brindade realizar nuestras labores académicas y científicas esperando devolver con esteaporte el esfuerzo que realiza por contar con instituciones de carácter científico comolo es el Instituto de Investigaciones en Informática. Agradecer también al personaladministrativo del Instituto de Investigaciones en Informática por el apoyo a ésteesfuerzo.

Lic. Edgar Clavijo Cárdenas M. Sc.Diciembre, 2008

Page 4: Re Vista 2008

INGENIERÍA DE REQUERIMIENTOS CON TEORÍA FUNDAMENTADA

Guillermo Choque AspiazuUniversidad Mayor de San Andrés

Carrera de Informá[email protected]

RESUMENLa ingeniería de requerimientos cumple un papel primordial en el proceso de producción desoftware, ya que se enfoca en la definición de lo que se desea producir. Su principal tarea consisteen la generación de especificaciones correctas que describan con claridad, sin ambigüedades, enforma consistente y compacta, el comportamiento del sistema; de esta manera, se pretendeminimizar los problemas relacionados al desarrollo del producto software. El presente artículopropone utilizar la teoría fundamentada para el análisis de requerimientos de los proyectosinformáticos que se encaran utilizando la tecnología estratificada del software, para el efecto sehace uso del paquete computacional AtlasTi como herramienta para las tareas de elaboración yespecificación al interior del clásico proceso de la ingeniería de requerimientos.

ABSTRACTRequirement engineering plays a role in the process of software production, as it focuses on thedefinition of what is desired to produce. Its main task is to correct the generation of specificationsthat describe clearly, unambiguously, in a consistent manner and compact, the behavior of thesystem, in this way, it is intended to minimize the problems related to development software product.This article proposes to use of Grounded Theory in the stage of requirements analysis of the softwareprojects that are using stratified technology, for this purpose AtlasTi computational package is usedas a tool to execute tasks in the design and specification of the classic process engineeringrequirement.

Palabras clave. Tecnología estratificada, Ingeniería de requerimientos, teoría fundamentada,AtlasTi.Keywords. Stratified technology, engineering requirements, grounded theory, AtlasTi.

1. INTRODUCCION

Una de las mayores deficiencias en la práctica de construcción de software es la poca atenciónque se presta a la discusión del problema. En general los desarrolladores se centran en lasolución dejando el problema inexplorado y por ende no descrito totalmente. Uno de losresultados más importantes de la aplicación del proceso de ingeniería de sistemas es laespecificación de un sistema basado en computadora que se describe de manera genérica enlos siguientes niveles: vista global de todo el sistema, vista del dominio, vista del elemento y vistadetallada [1]. Como se observa en la Figura 1, esta jerarquía está organizada de maneradeductiva, de lo general a lo particular.

En este contexto se presenta un desafío a los ingenieros del software ¿Cómo se puede asegurarque se ha especificado un sistema que recoge las necesidades del cliente y satisface susexpectativas?. Según [1] no hay una respuesta segura a esta difícil pregunta, pero un sólido

Vista del dominio

Vista global

Vista del elemento

Vista detallada

Figura 1. Jerarquía de sistemas computacionales

Fuente: Tomado de [1]

Page 5: Re Vista 2008

proceso de ingeniería de requerimientos constituye la mejor solución de la que se dispone eneste momento.

2. INGENIERIA DE REQUERIMIENTOS

La ingeniería de requerimientos facilita el mecanismo apropiado para comprender lo querequiere el cliente, analizando necesidades, confirmando su factibilidad, negociando unasolución razonable, especificando la solución sin ambigüedad, validando la especificación ygestionando los requerimientos para que se transformen en un sistema operacional [2].

La ingeniería de requerimientos cumple un papel primordial en el proceso de producción desoftware, ya que enfoca un área fundamental: la definición de lo que se desea producir. Suprincipal tarea consiste en la generación de especificaciones correctas que describan conclaridad, sin ambigüedades, en forma consistente y compacta, el comportamiento del sistema;de esta manera, se pretende minimizar los problemas relacionados al desarrollo del productosoftware [1].

Es necesario apuntar que las técnicas más habituales en la elicitación de requerimientos son lasentrevistas, el desarrollo conjunto de aplicaciones1, la tormenta de ideas y la utilización deescenarios [3] más conocidos como casos de uso [4]. A estas técnicas se las suele apoyar conotras técnicas complementarias como la observación in situ, el estudio de documentación, loscuestionarios, la inmersión en el negocio del cliente [5] o haciendo que los ingenieros derequerimientos sean aprendices del cliente [6].

3. PROCESO DE LA INGENIERIA DE REQUERIMIENTOS

La ingeniería de requerimientos proporciona el mecanismo apropiado para entender lo que elcliente quiere, analizar las necesidades, evaluar la factibilidad, negociar una solución razonable,especificar la solución sin ambigüedades, validar la especificación, y administrar los requisitosconforme éstos se transforman en un sistema operacional. El proceso de la ingeniería derequerimientos se lleva a cabo a través de siete distintas funciones: (1) Inicio, (2) obtención, (3)elaboración, (4) negociación, (5) especificación, (6) validación y (7) gestión [1].

Resulta importante destacar que algunas de estas funciones de la ingeniería de requerimientosocurren en paralelo y que todas deben adaptarse a las necesidades del proyecto. Todas estándirigidas a definir lo que el cliente quiere, y todas sirven para establecer una base sólidarespecto del diseño y la construcción de lo que obtendrá el cliente.

4. TEORIA FUNDAMENTADA

A comienzos del siglo XXI los investigadores cualitativos disponen de todo un repertorio deparadigmas, métodos y estrategias que emplear en sus investigaciones. Las teorías van desde elinteraccionismo simbólico hasta el constructivismo, la indagación naturalista, positivismo y post-positivismo, fenomenología, etno-metodología, crítica semiótica, estructuralismo, feminismo yvarios paradigmas étnicos. La investigación cualitativa va ganando en valor, y la política y laética de la investigación cualitativa fueron tópicos de gran interés. Las estrategias deinvestigación iban desde la “teoría fundamentada” hasta el estudio de casos, los métodoshistóricos, biográficos, la etnografía en la acción y la investigación. También se disponen dediversas normas de recoger y analizar materiales empíricos, incluyendo la entrevista cualitativa,la observación, la visualización, la experiencia personal y los métodos documentales. Lascomputadoras van entrando progresivamente [7].

Glaser y Strauss desarrollaron la teoría fundamentada [8] como un método de investigaciónproveniente del interaccionismo simbólico y como un método para derivar sistemáticamenteteorías sobre el comportamiento humano y el mundo social, con una base empírica [9]. En lapráctica, los investigadores, comúnmente, se refieren a la teoría fundamentada como un modode análisis. Charmaz define la teoría fundamentada como:

“....unas directrices analíticas que permiten a los investigadores focalizar su recolecciónde datos y construir teorías de rango medio a través de sucesivas recolecciones dedatos y desarrollos conceptuales” [10].

1También conocida como “Joint Application Development (JAD)”.

Page 6: Re Vista 2008

Como cualquier otro método cualitativo, la teoría fundamentada ofrece una manera derepresentar la realidad que arroje luz o un entendimiento sobre lo estudiado. Los investigadoresla utilizan con el objetivo de crear categorías teóricas a partir de los datos y analizar lasrelaciones relevantes que hay entre ellas [11]. Es decir, a través de los procedimientos analíticos,se construye teoría que está fundamentada en los datos, de ahí su nombre. El interés que tienees que hace explícitos los procedimientos de análisis cualitativo y ayuda a los investigadores adesarrollar conceptualizaciones útiles de los datos. Hasta su creación, el análisis cualitativodependía de métodos implícitos y por tanto de la intuición y el talento de los investigadores [11].

Un estudio de teoría fundamentada se inicia con una pregunta general, no con hipótesis. Estapregunta suele ser del tipo “¿qué es lo que pasa aquí?, ¿qué es lo que sucede?”. Lascaracterísticas o los atributos de lo que está en estudio, lo que se llamaría variables, han de surgiren el análisis y no asumirse o imponerse. A través del proceso de investigación se siguenintereses, pistas o corazonadas que se identifican en los datos. La teoría fundamentadaentonces, enfatiza el descubrimiento y el desarrollo de teoría y no se basa en un razonamientodeductivo apoyado en un marco teórico previo [11]. Esto hace que emplee unas estrategiascaracterísticas aunque ya no exclusivas de ella. Primero, la recolección de datos y el análisistranscurren de manera concurrente. Segundo, los datos determinan los procesos y productos dela investigación y no marcos teóricos preconcebidos. Tercero, los procesos analíticos suscitan eldescubrimiento y desarrollo teórico y no la verificación de teorías ya conocidas. Cuarto, elmuestreo se realiza con base en lo que emerge de los datos, se le denomina muestreo teóricoque sirve para refinar, elaborar y completar las categorías, y por último, el uso sistemático de losprocedimientos analíticos lleva a niveles más abstractos de análisis [11].

El resultado de un estudio de teoría fundamentada es una interpretación analítica del mundode los participantes y de los procesos para construir esos mundos [11], los criterios para evaluarlason cuatro: (1) ajuste, esto es que encaje en la experiencia de los participantes; (2)funcionamiento, es decir que explique la mayor variedad posible; (3) relevancia al fenómeno enestudio y por último, (4) la posibilidad de modificarse la propia teoría; que significa que estateoría se pueda acomodar a nuevos hallazgos [12] .

5. ATLAS.TI

AtlasTi es una herramienta informática cuyo objetivo es facilitar el análisis cualitativo de,principalmente, grandes volúmenes de datos textuales. Puesto que su foco de atención es elanálisis cualitativo, no pretende automatizar el proceso de análisis, sino simplemente ayudar alintérprete humano agilizando considerablemente muchas de las actividades implicadas en elanálisis cualitativo y la interpretación, como por ejemplo la segmentación del texto en pasajes ocitas, la codificación, o la escritura de comentarios y anotaciones; es decir, todas aquellasactividades que, de no disponer del programa, se realizaría con la ayuda de otras herramientascomo papel, lápices de colores, tijeras, fichas, fotocopias, etc. [13] .

Los programas informáticos utilizan diferentes denominaciones para referirse a los archivos en losque almacenan su trabajo. Por ejemplo, se habla de “documento” para hacer referencia a losarchivos almacenados en el disco duro de la computadora, o en un medio externo, que se hacreado con un procesador de texto; se habla de “presentaciones” para referirse a los archivoscreados con programas como Power Point; o se habla de “hojas de cálculo” cuando los datosse lo ha creado con programas como Excel.

Sin embargo, un documento es, en realidad, la combinación de diferentes elementos: una seriede caracteres relacionados con códigos de formato: negritas, cursiva, definición de márgenes,etc.; es decir, con propiedades de esos caracteres o datos “brutos”. Una presentación sonimágenes combinadas entre sí siguiendo una serie de criterios y a las que se aplica una serie decaracterísticas: orden, tiempo de presentación en pantalla, efectos de difuminado, etc.;mientras que una hoja de cálculo incluirá, por ejemplo, fórmulas para el tratamiento de los datosnuméricos.

De acuerdo con [13], en el caso de AtlasTi el resultado del trabajo realizado será un archivo,almacenado en el disco duro de la computadora o en una unidad externa dealmacenamiento, compuesto por una serie de elementos. En este caso, al archivo esdenominado Unidad Hermenéutica y sus componentes principales son los siguientes:

Page 7: Re Vista 2008

1. Documentos primarios. Los Documentos Primarios son la base del análisis, es decir, los “datosbrutos”. Pueden ser datos textuales, prácticamente en cualquier formato, imágenes conextensiones: JPG, WMF, GIF, BMP, etc.; archivos de sonido con extensiones: WAV, MP3, AU,etc., e incluso vídeo con extensiones: AVI, MPG, WMV, etc.

2. Citas. Las Citas son fragmentos de los Documentos Primarios que tienen algún significado, esdecir, son los segmentos significativos de los Documentos Primarios. Se los puede entendercomo una primera selección del material de base, una primera reducción de los datosbrutos.

3. Códigos. Los Códigos suelen ser, aunque no necesariamente, la unidad básica de análisis.Habitualmente el análisis se basará en ellos. Se puede entender los mismos comoconceptualizaciones, resúmenes o agrupaciones de las Citas, lo que implicaría un segundonivel de reducción de datos. Aun así, se debe tener en cuenta que no necesariamentetienen que estar relacionados con las Citas, es decir, los Códigos pueden utilizarse tambiéncomo “conceptos” útiles para el análisis que no necesariamente tienen una relación directacon fragmentos de texto, imagen o sonido

4. Anotaciones. Son el cuarto de los componentes principales, junto a Documentos, Citas yCódigos. Aunque cada uno de los componentes anteriores pueden tener asociado unComentario, se pueden entender las Anotaciones como comentarios de un nivelcualitativamente superior, puesto que son todas aquellas anotaciones que realiza el analistadurante el proceso de análisis y que pueden abarcar desde notas recordatorias, hipótesisde trabajo, etc., hasta explicaciones de las relaciones encontradas, conclusiones, etc. quepueden ser utilizadas como punto de partida para la redacción de un informe.

5. Familias. De la misma forma que los Códigos pueden ser vistos como agrupaciones de Citas,AtlasTi permite también agrupar en Familias el resto de componentes principales. Estasagrupaciones pueden ser un primer paso en el análisis conceptual.

6. Redes. Son uno de los componentes más interesantes y característicos de AtlasTi, y uno delos elementos principales del trabajo conceptual. Permiten representar informacióncompleja de una forma intuitiva mediante representaciones gráficas de los diferentescomponentes y de las relaciones que se hayan establecido entre ellos.

En síntesis, la Unidad Hermenéutica es el “contenedor” que agrupa a todos los elementosanteriores. Dicho de otra forma, es el archivo en el que se graba toda la informaciónrelacionada con el análisis, desde los documentos primarios hasta las redes. Es decir, es elequivalente a un fichero “.doc” (documento de texto), “.ppt” (presentación), o “.xls” (hoja decálculo) [13].

6. USO DE ATLAS.TI PARA LA INGENIERIA DE REQUERIMIENTOS

Para fines exclusivos de la propuesta, se debe reconocer que el proceso de ingeniería derequerimientos consiste fundamentalmente en la elicitación, análisis, validación y especificaciónde las necesidades de los clientes. En el contacto que se tiene entre el ingeniero del softwarecon los clientes, lo que normalmente se recoge son datos cualitativos antes que cuantitativos.Los datos cualitativos por lo general provienen desde las entrevistas en profundidad, discursos,entrevistas focales, diarios, informes y testimonios; con la adición de los sistemas computarizadosse propone la inclusión de textos de carácter general, documentos históricos, fotografías,imágenes, videos y sonidos.

Cabe aquí entonces hacer una distinción del dato cualitativo:”Los ingenieros de requerimientosconsideran datos toda una serie de datos relativos a las interacciones de los sujetos entre sí ycon el propio ingeniero, sus actividades y los contextos en que tienen lugar, la informaciónproporcionada por los sujetos, bien a iniciativa propia o a requerimiento del ingeniero derequerimientos, o por los artefactos que construyen y usan, sean estos documentos escritos uobjetos materiales [7].

6.1. Proceso analítico

El proceso analítico propuesto para el manejo de los requerimientos a través de la teoríafundamentada tiene su base en un procedimiento descrito de manera macro en el diagramade bloques de la Figura 2.

Los pasos que comprende el proceso descrito, en la figura 2, son detallados a continuación.

Page 8: Re Vista 2008

1. Inicio. De manera general, la mayoría de los proyectos comienzan cuando se identifica unanecesidad de negocios o se descubre un nuevo mercado o servicio potencial. Se inicia conuna conversación con el cliente y se acuerda la grabación o la toma de notas de laentrevista. Al inicio del proyecto los ingenieros del software hacen una serie de preguntaslibres de contexto. El objetivo es establecer una comprensión básica del problema, laspersonas que quieren una solución, la naturaleza de la solución que se desea, y laefectividad de la comunicación preliminar entre el cliente y el ingeniero de requerimientos.

2. Obtención. Aparenta ser muy simple preguntarle al cliente, a los usuarios y otros interesadoscuáles son los objetivos para el sistema o producto software, qué es lo que se debe lograr,de qué forma el producto satisface las necesidades del negocio y por último cómo seutilizará el sistema o producto día a día. Pero no es simple, es bastante difícil y se debe tenerbastante cuidado en evitar los siguientes problemas de la ingeniería de requerimientos: (a)Problemas de ámbito, definiendo en la subjetividad del usuario el límite del sistemaclarificando principalmente los objetivos generales del sistema. Obviamente en términoscualitativos estos límites pueden ser explicitados de manera difusa o incierta para luegoajustarlos en el análisis del discurso. (b) Problemas de comprensión, asegurando obtener loque el cliente necesita, intentando obtener el conocimiento de las capacidades ylimitaciones de su ambiente de cómputo; se deben rescatar las necesidades del cliente enuna conversación amena y agradable, cuidando que no omitan información queconsideran “obvia”, intentando conseguir mayor información para reparar los requisitosambiguos o inestables. (c) Problemas de volatilidad, intentar estabilizar los requerimientospara espacios de tiempo dinámicos, normalmente los problemas son bastante volátiles ydeben ser detectados en el análisis del discurso del cliente.

3. Codificación. Para [14] en la investigación cualitativa, la codificación es un modosistemático de desarrollar y refinar las interpretaciones de los datos. El proceso decodificación incluye la reunión y análisis de todos los datos que se refieren a temas, ideas,conceptos, interpretaciones y proposiciones. La codificación es considerada una actividadfundamental en el proceso de reducción de datos, aunque no por ello la única o másimportante, sus operaciones se basan en el uso de códigos los cuales se concibencomúnmente como una abreviación, símbolo o marca que se aplica a unas frases, párrafoso en general a las unidades de análisis de los datos obtenidos como resultados de laaplicación de un instrumento. Por tanto puede entenderse como una operación que sehace inicialmente sobre los datos, en otras palabras una primera transformación de losmismos. La técnica de codificación que suele usarse a inicialmente es la de la codificaciónabierta, definida por [15] como el procedimiento analítico por medio del cual se descubrenlos conceptos en términos de sus propiedades y dimensiones. Posteriormente se aplica de lacodificación axial: “acto de relacionar categorías con subcategorías, siguiendo la línea desus propiedades y dimensiones y de mirar como se entrecruzan y vinculan”. Este último tipode codificación está más asociado a los niveles de categorización y conceptualización.También es importante destacar que la codificación no es un proceso lineal, y que se puedealternar entre un tipo y otro de manera simultánea.

4. Nivel de categorización. La categorización es entendida como una operación que tiene laparticularidad de agrupar o clasificar conceptualmente un conjunto de elementos, datos ocódigos, que reúnen o comparten un significado, por tanto es concebida en un nivel deabstracción superior que está más próxima a un nivel relacional conceptual, que a un nivelde datos brutos. Según [14] el número de categorías que se adopten dependerá de lacantidad de datos recogidos y de la complejidad del esquema analítico. Para [16] en lateoría fundamentada “Algunas categorías pueden ser derivadas de teorías existentes, peroeste procedimiento es flexible”, es aquí entonces donde se habla de la emergencia de lascategorías a partir de los datos. Este nivel de categorización se logra en el análisis a travésdel agrupamiento de códigos, resaltando las relaciones entre éstos y su incidencia en lacategoría. A través del uso del AtlasTi se forman familias de códigos que representan lascategorías.

5. Conceptualización. Como se menciono anteriormente la codificación axial es base en laformación de conceptos, aspecto muy importante en el análisis de los datos, ya quepermite visualizar patrones o rutinas en el conjunto de datos que forman la coyunturaprincipal para explicar la realidad observada, es decir, es un nivel de abstracción superiorque permite hacer las conclusiones pertinentes de los fenómenos estudiados. Para lograr talconceptualización se hace uso de las relaciones y vínculos entre los diferentes códigos ycategorías descubriendo así elementos centrales en los datos que permiten ser apreciadosmediante representaciones visuales que muestran el todo de una manera coherente. Alaplicar el software AtlasTi éstas relaciones se muestran a través de los elementosdenominados redes.

Page 9: Re Vista 2008

6. Teorización. Para [15] las teorías son: “conjuntos de conceptos bien relacionados vinculadospor medio de oraciones de relación, las cuales juntas constituyen un marco conceptualintegrado que puede usarse para explicar o predecir fenómenos”. De igual manera lasteorías pueden clasificarse, según su nivel de generalización, en formales y sustantivas. Lasprimeras responden a la búsqueda de leyes y conclusiones de carácter universal, y lassegundas buscan la generalización de un contexto específico o una realidad concreta, enmuchas de las investigaciones el nivel teórico de la investigación tiene un caráctersustantivo, para lograr esto se hace uso de la codificación selectiva, que consiste en refinare integrar la teoría y descubrir la categoría central a través del uso de diagramas omemorandos.

7. Negociación. Es relativamente común que diferentes clientes o usuarios proponganrequerimientos que entran en conflicto entre sí al argumentar que su versión es “esencialpara las necesidades especiales”. El ingeniero de requerimientos debe conciliar estosconflictos por medio de un proceso de negociación. En este proceso se pide a los clientes,usuarios y otros interesados que ordenen sus requerimientos y después discutan los conflictosrelacionados con la prioridad. Se identifican y analizan los riesgos asociados con cadarequisito. Se hacen “estimaciones” preliminares del esfuerzo requerido para su desarrollo ydespués se utilizan para evaluar el impacto de cada requerimiento en el costo del proyectoy sobre el tiempo de entrega. Mediante un enfoque iterativo, los requisitos se eliminan,combinan o modifican de forma que cada parte alcance cierto grado de satisfacción.

8. Especificación. La especificación se encuentra entendida como el refino de la teorizaciónrealizada en el paso 6. Normalmente a la teoría obtenida se le adiciona los acuerdosrealizados en la tarea de negociación previa, esto significa afinar alguno de losrequerimientos descritos en la teoría, en términos de AtlasTi en forma de gráficos omemorandos. La especificación es el producto de trabajo final que genera la ingeniería derequerimientos. Sirve como base para las actividades de ingeniería del softwaresubsecuentes.

9. Validación. La validación de requisitos examina la especificación para asegurar que todoslos requisitos del software se han establecido de manera precisa; que se han detectado lasinconsistencias, omisiones y errores y que éstos han sido corregidos, y que los productos detrabajo cumplen con los estándares establecidos para el proceso, proyecto y producto. Elmecanismo primario para la validación de requerimientos es la revisión técnica formal. El

Obtención Codificación

Categorización

Conceptualización

Teorización Negociación

Validación Especificación

Gestión

Inicio

Figura 2. Proceso de ingeniería de requerimientos con teoría fundamentadaFuente: Con base en [1] y [15]

Page 10: Re Vista 2008

equipo de revisión que valida los requerimientos incluye ingenieros del software, clientes,usuarios y otros interesados que examinan la especificación y buscan errores en elcontenido o la interpretación, áreas que tal vez requieran una clarificación, informaciónfaltante, inconsistencias, conflictos entre los requerimientos, o requerimientos inalcanzables.

10. Gestión. Los requerimientos para los sistemas basados en computadora cambian y que eldeseo de cambiarlos persiste durante la vida del sistema. La gestión de requerimientos es unconjunto de actividades que ayudan al equipo del proyecto a identificar, controlar yrastrear los requerimientos y los cambios a estos en cualquier momento mientras sedesarrolla el proyecto. Muchas de estas actividades son idénticas a las actividades de lagestión de la configuración del software.

6.2. Aplicación del proceso

El procedimiento descrito en el proceso de ingeniería de requerimientos con teoríafundamentada se aplica a la entrevista real sostenida con el Sr. Rubén Solíz Ortuño, GerentePropietario de la Empresa Importadora de Productos Suntuarios “Solíz S.R.L”. En dichaoportunidad se realizó la presentación de la empresa de desarrollo de software “SistemasIntegrales” y el Lic. Ramiro Loza fue el encargado de realizar la entrevista al Sr. Solíz. Para mostrarla ejecución del proceso se selecciona un segmento de la entrevista que se muestra transcritaen la Figura 3.

El proceso de transferencia de los datos al AtlasTi, la codificación y categorización de los de losdatos mostrados en la figura 6 se muestra de manera grafica en la Figura 4.

Figura 3. Inicio y obtención de requerimientos

Figura 4. Codificación y categorización de requerimientos

Page 11: Re Vista 2008

En la Figura 5 se pueden observar los resultados obtenidos luego de aplicar los pasos deconceptualización y teorización de los requerimientos seleccionados como prueba.

Finalmente en la Figura 6 se presentan los requerimientos obtenidos luego de la aplicación delproceso de ingeniería de requerimientos con teoría fundamentada a la conversación realizadacon el gerente general de la empresa “Solíz SRL”

7. CONCLUSIONES

La ingeniería de requerimientos cumple un papel primordial en el proceso de construcción delproducto software, debido a que se enfoca en la definición de lo que se desea construir comoproducto software. Su principal tarea consiste en la generación de especificaciones correctasque describan con claridad, sin ambigüedades, en forma consistente y compacta, elcomportamiento del sistema; de esta manera, es pretensión de la ingeniería de requerimientos,minimizar los problemas relacionados con el desarrollo del software. El presente artículo planteade manera sistemática el empleo de la teoría fundamentada para el análisis de requerimientosde los proyectos informáticos, aquello que el cliente especifica en lenguaje natural con toda la

gestión de ventas

[1:2][15] solicitud mediante proformas--------------------solicitud mediante proformas

[1:3][15] las cotizaciones que se realiz..--------------------las cotizaciones que se realizan en lasmismas

[1:4][15] los pedidos que realizan los c..--------------------los pedidos que realizan los clientes

[1:5][15] ventas al contado--------------------ventas al contado

[1:6][15] ventas al crédito con posibili..--------------------ventas al crédito con posibilidades deacceder a un plan de pagos

[1:7][15] depósitos que se realizan por ..--------------------depósitos que se realizan por las ventasen una cuenta bancaria de la empresa

[1:8][15] Las reservas normalmente sela..--------------------Las reservas normalmente se las realizapor teléfono

[1:9][15] cliente asiduo de la empresa e..--------------------cliente asiduo de la empresa es posibleque acceda a una línea de crédito

[1:10][15] si paga al contado a undescue..--------------------si paga al contado a un descuento

[1:11][15] Las ventas pueden serrealizad..--------------------Las ventas pueden ser realizadas confactura o sin factura dependiendo delcliente

[1:12][15] Es política de la empresa fact..--------------------Es política de la empresa facturar portoda entrega realizada al cliente de losproductos con los que se cuenta

[1:13][15] es posible que el clientehaga..--------------------es posible que el cliente haga unareserva para la importación de unproducto que no se tiene en ese momento

[1:14][15] La empresa también cuentacon ..--------------------La empresa también cuenta con agentesque realizan ventas por comisiones

Figura 5. Conceptualización y teorización de requerimientos

Fig. 6. Especificación de requerimientos luego de la negociación

Page 12: Re Vista 2008

subjetividad que le es inherente. Estos requerimientos se encaran utilizando la tecnologíaestratificada del software, utilizando, para la captura de los pedidos cualitativos que realiza elcliente, el paquete computacional AtlasTi como herramienta para las tareas de elaboración yespecificación al interior del clásico proceso de la ingeniería de requerimientos. Obviamenteeste método puede ser utilizado para desarrollar el proceso de ingeniería de requerimientospara cualquier problema que involucre la interrelación entre el desarrollador y el usuario para laespecificación de los requisitos, aquellos que correctamente especificados hacen posible laconstrucción de productos software de alta calidad.

8. AGRADECIMIENTOS

Un agradecimiento especial a la empresa “Sistemas Integrales Innovadores SRL” la que presta unapoyo decidido a la investigación en nuestro medio, otro bastante grande para la “Asociaciónde Investigación en Software Inteligente” por las observaciones puntuales realizadas a lapresente investigación y finalmente una mención significativa al “Instituto de Investigaciones enInformática” por apoyar de manera decidida la producción intelectual de la comunidadinformática de la Universidad Mayor de San Andrés.

9. REFERENCIAS BIBLIOGRAFICAS

[1] Pressman R.S. (2005) Ingeniería del Software: un enfoque práctico. 6º edición, McGrawHill.

[2] Thayer R.H. & M. Dorfman (1997) Software Requirements Engineering. Wiley.[3] Weidenhaput K., K. Pohl, M. Jarke, & P. Haumer (1998) Scenarios in System Development:

Current Practice. IEEE Software, 15(2):34–45, Marzo/Abril 1998. Este artículo aparece enICRE’98: http://sunsite.informatik.rwthaachen.de/CREWS/reports97.htm

[4] Booch G., J. Rumbaugh & I. Jacobson (1999) El Lenguaje Unificado de Modelado.Addison Wesley Iberoamericana.

[5] Goguen J. A. & C. Linde (1993) Techniques for Requirements Elicitation. En Proceedingsof the First International Symposium on Requirements Engineering. Disponible enhttp://www.cse.ucsd.edu/goguen

[6] Beyer H. R. & K. Holtzblatt (1995) Apprenticing with the Customer. Communications of theACM, 38(5), Mayo 1995.

[7] Rodríguez G., J.G. Flores & E. García (1996) Metodología de la Investigación Cualitativa.Editorial Aljibe, Málaga.

[8] Glaser B. & Strauss, A. (1967) The discovering of grounded theory. New York: Aldine.[9] Kedall J. (1999) Axial coding and the grounded theory controversy. Western Journal of

Nursing Research, 21 (6), 743-757.[10] Charmaz K. (2005) Grounded theory in the 21st Century. En: The Sage handbook of

qualitative reserach (Denzin N K y Lincoln Y S). SAGE, Thousand Oaks, CA, pp.507-535.[11] Charmaz K. (1990) “Discovering” chronic illness: using grounded theory. Social Science

and Medicine, 30 (11), 1161-1172.[12] Glaser B. (1978) Theoretical Sensitivity. The sociology Press, Mill Valey, CA.[13] Muñoz J. J. (2005) Análisis cualitativo de datos textuales con ATLAS.ti 5. Universitat

Autonoma de Barcelona. Noviembre de 2005. Versión 3.03.[14] Taylor S. & Bogdan R. (1986) Introducción a los métodos cualitativos de investigación.

Buenos Aires: Paidós.[15] Strauss A. & Corbin J. (2002) Bases de la investigación cualitativa. Técnicas y

procedimientos para desarrollar la teoría fundamentada. Medellín: Universidad deAntioquia.

[16] Tesch R. (1990) Qualitative research: analysis types and software tools, New York, TheFalmer Press.

Page 13: Re Vista 2008

MIDDLEWARE

RESUMENAl igual que individuos de diferentes nacionalidades requieren de un traductor para podercomunicarse entre si; las aplicaciones corriendo en diferentes sistemas operativos y hardwarediverso, también requerirán de ayuda para comunicarse. Esta ayuda se denominamiddleware y es un software que se constituye como una capa de traducción intermediaentre una aplicación corriendo en un servidor y un número de clientes que solicitan servicio.Las funciones que provee el Middleware permiten acceder a aplicaciones e informacióndesde diferentes arquitecturas, protocolos y redes. En pocas palabras, el Middleware permitea los usuarios interactuar con aplicaciones en un ambiente computacional heterogéneo.

Roberto Vargas BlacuttDocente – UMSA

[email protected]

PALABRAS CLAVE: Sistemas Distribuidos. Computación distribuida. RPC. RMI. CORBA, DCOM+OLE.Sistemas Operativos Distribuídos.KEYWORDS: Distributed Systems. Distributed Computing. Remote Procedure Call. RMI. CORBA.Distributed Operating Systems.

INTRODUCCIÓNEl Middleware es una tecnología de software diseñada para la ayuda y soporte a laheterogeneidad y complejidad de los sistemas distribuidos. Se define al Middleware como unacapa de software que se halla por encima del sistema operativo y debajo de los programas deaplicación. Se constituye por tanto, en un estrato intermedio entre el software de base y elsoftware de aplicación. Proporciona una abstracción común de programación a todo lo largo yancho del sistema distribuido a través de bloques de construcción de más alto nivel que el delas interfaces de programación de aplicaciones (APIs). En términos figurados, se asemeja a unproveedor de tuberías ya que permite conectar distintas partes de un sistema distribuido pormedio de estas "tuberías" y para luego pasar un flujo de datos entre las partes conectadas.

El propósito del Middleware es enmascarar la heterogeneidad y proveer un modelo deprogramación que se representa mediante procesos ejecutándose sobre un conjunto decomputadores que interactúan entre sí; para implementar mecanismos de comunicación yrecursos compartidos para aplicaciones distribuidas. También aporta con los elementosnecesarios para la construcción de componentes de software que puedan trabajar con otrossimilares en un sistema distribuido. Por lo que mejora el nivel de comunicación de los programasya que soporta abstracciones como: procedimientos de invocación remota, comunicaciónentre grupos de procesos, notificación de eventos, replicación de datos compartidos ytransmisión de datos multimedia en tiempo real.

FUNCIONES DEL MIDDLEWARESus funciones pueden ser divididas en tres categorías:

a) Middleware para aplicaciones especificas. Proporciona servicios para varias clases deaplicaciones como ser: bases de datos distribuidas, transacciones, serviciosespecializados para multimedia y computación móvil.

b) Middleware de intercambio de información. Categoría que gestiona los intercambios deinformación a través de las redes. Usado por las aplicaciones en tareas como:transferencia de datos, ejecución de procedimientos, recepción de respuestas yresolución de conflictos.

c) Middleware para administración y soporte. Incluye productos para localización derecursos, comunicación con servidores, manejo de seguridad y control de fallos.

La implementación de un Middleware permite: automatizar las operaciones del negocio,conectar aplicaciones dispares y diferentes como aplicaciones web y antiguas aplicacionesheredadas de sistemas centralizados, aplicaciones existentes con nuevos sistemas y aplicacionespreservando así la inversión. Por ejemplo, en el segmento del comercio electrónico ayuda aconectar aplicaciones de producción, ventas y contabilidad con modernas aplicacionesbasadas en Internet.

Un Middleware (ver Figura No.1) implementado de forma apropiada puede ayudar a:

- Proteger a los desarrolladores de software de detalles vinculados a la plataforma y laprogramación de sockets.

Page 14: Re Vista 2008

- Proveer un conjunto de abstracciones de alto nivel disponibles para responder a peticionesde distintas aplicaciones simplificando el desarrollo de sistemas distribuidos.

- Proporcionar un amplio conjunto de servicios de control de acceso y seguridad requeridospara operar de forma efectiva en un ambiente de redes e interconexiones. Un Middlewarepodría incluir servicios que incluyen seguridad y soporte a transacciones.

Figura No. 1: Capas MiddlewareElaboración propia

CATEGORÍAS DEL MIDDLEWAREExisten diferentes tipos, todos ellos varían en términos de las abstracciones de programación queproporcionan, así como de las clases de heterogeneidad soportadas mas allá de aquellasencontradas en las redes y el hardware. Las categorías de Middleware incluyen:

a) Middleware de Base de DatosLas Bases de Datos Distribuidas ofrecen la abstracción de tuplas distribuidas, y proveen unlenguaje de consulta (SQL) que permite a los programadores manipular estos conjuntos detuplas. Hace posible que las aplicaciones puedan comunicarse con una o más bases de datoslocales o remotos.

b) Middleware para Llamadas a Procedimientos Remotos (RPC)Este tipo de Middleware extiende la interfaz del llamado a procedimiento local y ofrece una

abstracción de una invocación a un procedimiento cuyo código se encuentra en otra parte dela red.

c) Middleware orientado a mensajes (MOM)Provee la abstracción de una cola de mensajes que pueden ser accedidos mediante la red. Sebasa en una generalización de un buzón de correo donde los programas pueden depositar oretirar mensajes de colas, cuya gestión y administración las realiza este middleware.

d) Middleware de Objetos DistribuidosProvee la abstracción de un objeto remoto cuyos métodos pueden ser invocados de la mismamanera como si el objeto estuviese en el mismo espacio de direcciones del proceso que realizala petición. Los objetos distribuidos implementan todos los beneficios de las técnicas del enfoquede orientación a objetos como ser la encapsulación, herencia y polimorfismo, las cuales estándisponibles para el desarrollo de aplicaciones distribuidas.

CORBA (Common Object Request Broker Architecture) es el estándar para la implementaciónde objetos distribuidos. Desarrollado por Object Management Group (OMG), se constituye en elMiddleware disponible más difundido. Aparte de proveer una abstracción para objetos

Red

Aplicacion Distribuida

Sistema Operativo

Comunicaciones Procesamiento Almacenamiento

API Sistema Operativo

Middleware

API Middleware

Host A

Aplicacion Distribuida

Sistema Operativo

Comunicaciones Procesamiento Almacenamiento

API Sistema Operativo

Middleware

API Middleware

Host B

Page 15: Re Vista 2008

distribuidos, proporciona a los desarrolladores un soporte para aplicaciones distribuidas depropósito general, a través de mecanismos que ocultan la heterogeneidad de los lenguajes deprogramación. Sus estándares son públicos y bien definidos. CORBA es considerado por muchoscomo el Middleware más avanzado así como el más utilizado comercialmente.

DCOM es la tecnología de distribución de objetos de Microsoft que incluye OLE (Object Linkingand Embedding) y COM (Component Object Model). La abstracción de objetos de DCOM esincrementada por otras tecnologías de Microsoft como el Transaction Server y Active Directory.SOAP (basado en XML y HTTP) y .NET también proveen de soporte a la heterogeneidad delenguajes y el hardware.

El RMI (Remote Method Invocation) de Java posee similar abstracción de objetos distribuidosque CORBA y DCOM. RMI provee soporte a la heterogeneidad en sistemas distribuidos solo enentornos Java. Sin embargo, permite una fuerte integración con otras características de Javaque facilitan la programación y proveen una gran funcionalidad.

Si bien, todos los tipos realizan funciones de comunicación; el tipo de Middleware a seleccionardepende exactamente de las necesidades de acceso e información que se requieran.

MIDDLEWARE Y SISTEMAS DISTRIBUIDOSEl Middleware proporciona un modelo computacional uniforme a programadores deaplicaciones distribuidas que incluyen: invocación de objetos remotos, notificación de eventosremotos y procesamiento distribuido de transacciones. Por ejemplo, CORBA proporciona lainvocación de objetos remotos permitiendo que un objeto en un programa invoque un métodode un objeto de otro programa que se ejecuta en otro computador.

Para los propósitos de un sistema distribuido, el middleware proporciona: Transparencia deubicación, Independencia de los detalles (protocolos, software y hardware) y algunas de susformas admite que componentes estén escritos en diferentes lenguajes.

Transparencia frente a ubicación: En RPC, el cliente que llama a un procedimiento no puedediscernir si el procedimiento se ejecuta en el mismo proceso o en otro diferente y posiblementeen otro computador. El proceso Cliente no necesita conocer la ubicación del servidor; de formaanáloga sucede con RMI.

Protocolos de comunicación: Los protocolos que dan soporte a las abstracciones delMiddleware son independientes de los protocolos de transporte. Ejemplo: El protocolo petición -respuesta puede estar implementado en UDP o TCP.

Hardware de las computadoras: Se emplean en el empaquetado y desempaquetado de losmensajes. Ocultan diferencias de arquitectura en el Hardware.

Sistemas Operativos: Las abstracciones de mayor nivel que provee la capa del Middleware sonindependientes de los Sistemas Operativos subyacentes.

CAPAS DE MIDDLEWAREPueden coexistir múltiples capas de Middleware presentes en la configuración de un sistema. Unservicio de difusión virtual puede ser usado directamente por las aplicaciones. Es común el usode Middleware como módulos de construcción para construir otros Middleware de más altonivel, como por ejemplo, el proveer tolerancia a fallas. Entre los middleware de más alto nivel seencuentran CORBA y MOM.

La mayoría de los Middleware pertenecen a la capa de Aplicación (Capa 7 del Modelo OSI), ysus componentes en la capa de Presentación (Capa 6). Por lo que se podría decir que, elMiddleware es una “aplicación” para los protocolos de red presentes en el sistema operativo.

PROGRAMACION CON MIDDLEWARELos programadores no tienen que aprender un nuevo lenguaje y es común usar lenguajes comoC++ o Java.

Existen tres formas de desarrollar Middleware con los lenguajes existentes. La primera, es cuandoel Middleware provee una librería de funciones que deben ser llamadas para utilizar sus servicios.Los sistemas de Bases de Datos Distribuidas hacen precisamente esto. La segunda es usar un

Page 16: Re Vista 2008

lenguaje de definición de Interfaz (IDL) externo. Bajo esta modalidad, un archivo IDL describe lainterfaz para el componente remoto. La tercera forma se realiza por medio de un lenguaje quesoporta la distribución de forma nativa, tal el caso de Java RMI (Remote Method Invocation).

MIDDLEWARE Y LA ADMINISTRACIÓN DE RECURSOSLas abstracciones ofrecidas por varios sistemas de Middleware pueden ser usadas para proveeruna administración de recursos al más alto nivel en un sistema distribuido, esto se logra,incluyendo estas abstracciones en las tres clases de recursos físicos a cargo del sistemaoperativo: comunicaciones, procesamiento y almacenamiento (memoria y disco).

Estas abstracciones abarcan una perspectiva global permitiendo una vista completa para laadministración de recursos, ya que no están recluidas a un solo host. Por tanto, lasabstracciones de programación del Middleware también incorporan procesamiento yalmacenamiento. La Tabla 1 muestra el grado en que las categorías de Middlewareencapsulan e integran estos recursos.

Tabla 1: Encapsulación e Integración de Recursos

Categorias de Middleware Comunicación Procesamiento Almacenamiento

Base de Datos Distribuidas Si Limitado Si

RPC Remote Procedure Call Si Si No

Message-Oriented Middleware Si No Limitado

Objetos Distribuidos Si Si Si

El modelo de Base de Datos Distribuidas solo ofrece una limitada forma de procesamiento parael cliente. RPC no integra al almacenamiento, mientras que MOM no incluye el procesamiento.Los objetos distribuidos, no solamente encapsulan estos tres tipos de recursos, sino también quelos integran en un paquete, lo que permite una administración de recursos distribuidos así comoproveer diferentes clases de transparencia (acceso, movilidad y ubicación).

CONCLUSIONESEl Middleware es una capa de software que provee una abstracción de programación y ocultalas diferencias de redes, hardware, sistemas operativos y lenguajes. Se constituye en softwareque reside entre las aplicaciones y las capas subyacentes al sistema operativo, pilas deprotocolos y hardware.

El diseño del Middleware busca ocultar los diferentes tipos de heterogeneidad con la que losprogramadores deben tratar, tal el caso de hardware y las redes. Muchos sistemas Middlewareocultan las marcadas diferencias entre sistemas operativos y lenguajes de programación. Lasabstracciones de programación proporcionadas por el Middleware otorgan transparenciarespecto a la distribución en una o más de las siguientes dimensiones: localización,concurrencia, replicación, fallas y movilidad. El Middleware puede ser considerado como unsoftware que hace que un sistema distribuido sea programado.

Hasta la fecha varias tecnologías han sido ideadas para alivianar la gran complejidad asociadacon el desarrollo de software para aplicaciones distribuidas. Su éxito ha añadido una nuevacategoría de sistemas de software a la gran familia de sistemas operativos, lenguajes deprogramación, redes y bases de datos.

Desde el punto de vista funcional, el rol del Middleware es cubrir la brecha entre los programasde aplicación y el hardware de bajo nivel y la infraestructura de software a objeto de coordinarla forma en que las aplicaciones son conectadas y como estas operan entre ellas. Asimismopermite y a la vez simplifica la integración de componentes desarrollados por múltiplesproveedores de tecnología.

Referencias1. Bernstein, P. "Middleware: A Model for Distributed System Services." Communications of the

ACM. February 1996.2. Birrel, A. Y Nelson, B. "Implementing remote procedure calls" ACM Transactions Computer

Systems, vol. 2. 1984.3. http://www.sun.com. Sun Microsystems. Java Remote Method Invocation.4. http://www.omg.org

Page 17: Re Vista 2008

RESUMEN DE UNA NOTICIA DE PRENSA: UN PRETEXTO PARATENER PRESENTE EL PROCESAMIENTO DEL LENGUAJE NATURAL

Lucio Torrico DiazDocente investigador

[email protected]

RESUMENSe resume una noticia de prensa utilizando algunos rudimentos de la recuperación de información y el procesamiento del lenguajenatural.Subterfugios como este, son útiles para presentar nuevas ideas, hacer un repaso del estado del arte o –como en este caso- recordarque el Procesamiento del Lenguaje Natural y la Recuperación de Información existen (como uno de los más bellos capítulos de laInformática) evocando algunos de su muchos conceptos.

PALABRAS CLAVE: Procesamiento del lenguaje natural. Recuperación de Información. Resumende textos. Ley de Zipf. Luhn

KEYWORDS: Natural language procesing. Information Retrieval. Text abstract. Zipf’s law. Luhn

INTRODUCCIÓNEn el Anexo se tiene el cuerpo de una noticia de prensa (sin (sub)títulos); se quiere un resumende él.

Esta tarea supone que el texto tiene sentido y no es una secuencia aleatoria de símbolos y/opalabras.

El enfoque para resumir un documento difiere dependiendo de su idioma, de si el texto estádividido en campos tales como autor, palabras clave, etc., es decir, si está (semi)estructurado ono; y de otras consideraciones.

De hecho la tarea empieza con la obtención del documento digitalizado y de la determinaciónde su codificación (por ej. utf-8). Aquí supondremos que el texto está en español, digitalizadobajo un estándar abierto (por ej. PDF) y (prescindiendo del títulos y subtítulos) se considera quesu estructura no pasa de párrafos, oraciones, etcétera).

ENFOQUE ESTADÍSTICO DE EXTRACCIÓN

En principio puede hacerse un tratamiento estadístico apoyado en ideas generalmenteaceptadas.

Se extraen las oraciones (o cualquier otra secuencia, por ej. párrafos) consideradas másrelevantes según algún criterio.

Ello significa tokenizar el documento: hacer una lista de palabras. Aunque parece una tareasencilla, no es así. No basta utilizar alguna función de split o un match a través de expresionesregulares; debe tenerse en cuenta si los números serán considerados, si hay palabras con dígitos,números y símbolos mezclados (por ej. utf-8), si algunos nombres deben o no partirse, qué hacercon las abreviaturas, los signos de puntuación, entre otros.

Un documento muy extenso (en Mbytes o Gbytes) podría requerir la intervención deherramientas de compresión y uso eficiente de memoria.

La Ley de George Zipf (1949) establece que, en un texto, la enésima palabra más común ocurrecon una frecuencia inversamente proporcional a n (respecto de la primera) [2]. Esta ley hagenerado importantes estudios y consecuencias; y ha sido verificada y establecida de maneramás general por Mandelbrot. La implementación práctica en nuestro caso es obtener eldiccionario de palabras a partir de la lista de tokens, junto a sus rangos:

Page 18: Re Vista 2008

Tabla No. 1: Palabras de la noticia de prensa y cantidad de apariciones (fragmento)Elaboración propia

LA 49 Y 8

DE 29 PODEMOS 7

EL 18 UNA 7

… … … …

NO 13 PARA 4

A 11 POR 4

LOS 10 … …

SE 10 VíA 1

Por ejemplo, la 1° palabra (la más frecuente) es “LA” (la conversión a mayúsculas vía unafunción upercase no afecta el resultado) y aparece 49 veces; la 208° palabra (una de las menosfrecuentes, aquí aparece en último lugar por un mero orden lexicográfico) es “YA” y ocurre 1vez.Las cantidades de veces que aparecen las palabras desde la que ocurre más hasta la queocurre menos son: 49 (una palabra), 29, 18, 16, 15, 13, 11 10 (dos palabras), 8, 7, 5, 4, 3, 2 y1(ciento cuarenta y tres palabras).A partir de la ley de Zipf, Luhn ha postulado que las palabras más frecuentes son las que ocurrenen casi todos los documentos, y las menos frecuentes son tales que su aparición es casianecdótica en un documento [2]. Es decir, que las palabras que son parte de la esencia de undocumento (y de ahí que deben estar en su resumen) son las de frecuencia media de aparición(en relación a las más y las menos frecuentes).En nuestro caso, consideramos las palabras que aparecen 7 veces, u 8 ... o 16 veces. Estas sonlas elegidas: {QUE, EN, NO, A, LOS, SE, CONSTITUCIÓN, Y, PODEMOS}Luego, separamos las oraciones del documento (consideramos el punto como separador entreoraciones) y elegimos aquellas que contienen dichas palabras (una o todas), en realidadseleccionamos las oraciones que tengan más ocurrencias de ellas). Con este criterio, el resumenes:Mientras Podemos ratificó que no dará luz verde a una convocatoria sin que antes se reforme elproyecto oficialista de nueva Constitución, el MAS respondió que no se someterá a los chantajesde la oposición.Que tiene 12 ocurrencias del grupo de palabras elegidas.

ENFOQUE ESTADÍSTICO DE EXTRACCIÓN CON APOYO LINGÜÍSTICOUna refinación interesante consiste en no incluir en la lista de palabras elegidas aquellas quesean vacuas o nulas (es decir, sin mayor interés en un texto). Estas palabras se conocen máspopularmente con el nombre de “stop words” y se agrupan en una “stop list” (son del tipo que,en, los, se, y, etc.). Es común utilizar stop words de repositorios públicos y añadirles palabrassegún el trabajo que se esté realizando.Visto así, el nuevo conjunto de palabras elegidas es: {CONSTITUCIÓN, PODEMOS}. Y la selecciónde oraciones (como se hizo antes) devuelve tres. La de arriba en negrita y las dos siguientes:

“No vamos a viabilizar en el Congreso ninguna fecha para aprobar la Constitución si nose revisan algunos elementos mínimos de esa Constitución”, advirtió Hoz de Vila, mientrasFernández dijo que “nosotros vamos a viabilizar un referéndum donde se incorporen a mayoríasy minorías; no vamos a viabilizar un referéndum con cerco, ni con palos, ni con piedras”.

“Nosotros hemos luchado por la Constitución, los prefectos han luchado por autonomíaen su región; nosotros hemos luchado aquí en La Paz, en la plaza Murillo; hemos luchado enSucre, en Oruro; porque los abusos de la imposición masista en la Constitución no están sólo enla parte de autonomía”, señaló Quiroga.Cada una de ellas con 2 ocurrencias del nuevo conjunto de palabras elegidas.

No es el caso de este ejemplo, pero en otros contextos ocurren mejoras dramáticas si seseleccionan oraciones con muchas ocurrencias de la nueva lista de palabras elegidas o de susvariantes.Estas variaciones pueden detectarse a través de stemming y lematización, es decir, de maneraque las ocurrencias cuenten si la palabra en una oración y la palabra elegida son equivalentesen su tronco o en su lema.Una forma muy ruda de ver esto es si sus prefijos son iguales: por ejemplo constitucional yconstitución son palabras de tronco equivalente.

Page 19: Re Vista 2008

Y la selección de oraciones (como se hizo antes) con esta nueva aproximación, son todas lasanteriores a las que se agregan dos candidatas más:

Podemos y el MAS anticiparon ayer una nueva batalla en el Congreso, esta vez por laaprobación de la ley de convocatoria a los referendos constitucionales.

El jefe de Podemos, Jorge Quiroga, y los senadores Tito Hoz de Vila y Fernando Rodríguezseñalaron que no aprobarán un referéndum para dar curso a un texto constitucional observado,al que se hubieran incorporado cambios sólo en el tema de autonomía, como piden losprefectos.

Si nuestro criterio de extracción asciende de oraciones a párrafos, no consideramos stop words yutilizamos stemming entonces el párrafo seleccionado es:Mientras Podemos ratificó que no dará luz verde a una convocatoria sin que antes se reforme elproyecto oficialista de nueva Constitución, el MAS respondió que no se someterá a los chantajesde la oposición.Podemos y el MAS anticiparon ayer una nueva batalla en el Congreso, esta vez por laaprobación de la ley de convocatoria a los referendos constitucionales.OTROS ENFOQUESEl párrafo seleccionado coincide con un criterio humano pero muy utilizado: puede considerarseel primer párrafo de una noticia como su resumen.Además de este criterio existen muchos otros criterios, herramientas y técnicas que puedencompetir con el criterio estadístico o complementarlo:Resúmenes por abstracción, n-gramas, modelos vectoriales, centroides, regla del coseno,tratamiento lingüístico previo o posterior (etiquetado, identificación de verbos, sustantivos, etc.),detección de relaciones y significados, sinonimia, y un largo etcétera.

Discusión de resultados y conclusiones.Se ha obtenido un resumen por extracción cuya calidad –a juicio del autor- no es mala.Sin embargo, la discusión más importante es si en nuestro contexto tenemos presente (y endesarrollo) el Procesamiento del Lenguaje Natural y la Recuperación de Información o esnecesario revivirlas.

AgradecimientosAgradecemos la colaboración de Avril Torrico en la programación de los scripts en Ruby y manjode las hojas electrónicas que se han utilizado en el trabajo.

Referencias

5. http://www.la-razon.com/versiones/20080925_006406/nota_249_677586.htm[accesado el 25/09/2008].

6. http://irsweb.blogspot.com/2005/04/luhn-zipf-y-los-tn.html[accesado el 25/09/2008].

Page 20: Re Vista 2008

ANEXO

Podemos y el MAS anticiparon ayer una nueva batalla en el Congreso, esta vez por laaprobación de la ley de convocatoria a los referendos constitucionales.

Mientras Podemos ratificó que no dará luz verde a una convocatoria sin que antes se reforme elproyecto oficialista de nueva Constitución, el MAS respondió que no se someterá a los chantajesde la oposición. Podemos replicó que ofrecerá resistencia ante la imposición.

El jefe de Podemos, Jorge Quiroga, y los senadores Tito Hoz de Vila y Fernando Rodríguezseñalaron que no aprobarán un referéndum para dar curso a un texto constitucional observado,al que se hubieran incorporado cambios sólo en el tema de autonomía, como piden losprefectos.

“Nosotros hemos luchado por la Constitución, los prefectos han luchado por autonomía en suregión; nosotros hemos luchado aquí en La Paz, en la plaza Murillo; hemos luchado en Sucre, enOruro; porque los abusos de la imposición masista en la Constitución no están sólo en la parte deautonomía”, señaló Quiroga.

“No vamos a viabilizar en el Congreso ninguna fecha para aprobar la Constitución si no serevisan algunos elementos mínimos de esa Constitución”, advirtió Hoz de Vila, mientrasFernández dijo que “nosotros vamos a viabilizar un referéndum donde se incorporen a mayoríasy minorías; no vamos a viabilizar un referéndum con cerco, ni con palos, ni con piedras”.

Señaló que si la aprobación se da de esta forma, la Constitución “durará lo que dure el gobiernode Evo Morales”. Hoz de Vila aclaró que no se trata de obstaculizar el proceso de pacificación,sino de exigir una Constitución para todos.

“No vamos a someternos al chantaje de una minoría electoral contra el país, contra lademocracia y contra el proceso de cambio”, respondió el jefe de bancada del MAS enDiputados, César Navarro. Cuando se le consultó cómo lo harán sin los votos de Podemos,respondió: “eso lo vamos a discutir en el Congreso”.

Sin la votación de Podemos no es posible lograr los dos tercios necesarios para la aprobación.

El senador Ricardo Díaz (MAS) dijo que “en Podemos existe una división interna, donde cada vezson más los disidentes y ya no deben sentirse seguros de contar con todos sus diputados ysenadores”.

No obstante, Rodríguez anticipó que resistirán una aprobación por la vía de la imposición.

Mientras tanto, el Poder Judicial se sumó al pedido de realizar ajustes al proyecto de textoconstitucional. El consejero de la Judicatura, Rodolfo Mérida, anunció que elaboran undocumento sobre los ajustes que consideran necesarios al proyecto de Constitución y quepodrían ser expuestos en el contexto del diálogo de Cochabamba. “En el Poder Judicialsostenemos que no se debe asumir una posición a uno ni otro sector”, aclaró. [1]

Page 21: Re Vista 2008

RECURSO DIDÁCTICO PARA PROGRAMACIÓN ORIENTADA AOBJETOS

RESUMENRecurso didáctico, también llamado tutor interactivo para programación orientada aobjetos (POO), se basa en el contenido de la materia de segundo semestre“Algoritmos y programación” de la Carrera de Informática, UMSA.

Es un recurso didáctico multimedia, maneja recursos visuales dinámicos e interactivospara que el estudiante pueda interactuar.

Representamos el conocimiento a través de imagen, color, animación y se trata dereducir al mínimo el texto.

Se divide en cuatro capítulos, los cuales contienen conceptos, polimorfismo, herencia yagregación.

Los que a su vez tienen una parte de ejemplos, conectados a un link para su respectivarepresentación en seudolenguaje orientado a objetos (SOO) y su traducción en Java.El aporte principal de este tutor interactivo son los distintos ejercicios desarrollado enSOO.

Menfy Morales RíosDocente – Investigador

[email protected]

Participantes en el proyecto:

Carlos R. Fernández LinoEstudiante – Investigador

[email protected]

Jaime Chura PattiEstudiante – Investigador

Juan Pablo Poma ChuraEstudiante - Investigador

[email protected]

PALABRAS CLAVE: Recurso didáctico, clase, seudolenguaje, POO, constructor, herencia,composición, agregación, polimorfismo, sobrecarga, objeto, encapsulamiento, SOO.

1. INTRODUCCIÓNEl objetivo del proyecto es desarrollar e implementar recursos didácticos informáticos en laCarrera de Informática, en este caso particular para la materia “Algoritmos y Programación”.Este recurso didáctico o tutor interactivo ha utilizado herramientas tales como el dreamweaver,flash, Swish, html, homesite, javascript, actionscript, html y otros.Este recurso se basa en el contenido regular de la materia “Agoritmos y Programación” que esprogramación orientada a objetos (POO), propone un seudolenguaje orientado a objetos (SOO)para la representación de los algoritmos orientados a objetos, utiliza el diagrama UML,(modelamiento de lenguaje unificado), para representar las clases y las asociaciones entreclases. A pesar de que muchos ejemplos son bastante extensos, estos están a disposición de losestudiantes en formato PDF el que se describe a través de un SOO y el código en lenguaje deprogramación JAVA.

2. RECURSO DIDÁCTICO PARA POOEl recurso didáctico o tutor interactivo INF-121, para POO, utiliza recursos multimedia pararealizar de una manera amigable, dinámica y llamativa el desarrollo del contenido.En esta primera etapa se realiza un desarrollo completo de los conceptos que involucran ladefinición de POO, como ser el objeto, la clase, el método, el mensaje, el proceso deabstracción y encapsulamiento. Además conceptos de TDA tipos de datos abstractos paraentrar al desarrollo del seudolenguaje. Así como los conceptos de constructor y destructor.A través de ejemplos desarrollados en SOO y el lenguaje de programación JAVA.

El equipo de trabajo ha intentado buscar un mecanismo que permita visualizar los cuatrocapítulos del tutor para ello se utiliza el siguiente formato como muestra la figura 1.

Page 22: Re Vista 2008

Figura No. 1: Pantalla que describe un objeto

En la parte superior de la figura 1, se puede observar los botones correspondientes a los cuatrocapítulos del tutor interactivo. La parte derecha nos permite hacer una descripción textual delconcepto correspondiente de la manera más resumida posible (el tutor interactivo ha tratadode reducir al mínimo la descripción textual). La parte izquierda nos permite visualizar a través deanimación el concepto que se está describiendo. Los botones en la parte superior izquierda nospermiten acceder a distintos ejemplos que también a través de animación tratan de reflejar elconcepto que se describe.

En la parte superior derecha existen dos botones, el de ayuda, que da una descripción generaldel tutor y su navegabilidad, y el botón de índice, a través del cual se puede direccionar altema que se desee consultar.

La figura 2, nos introduce al tema de asociación, con el concepto de composición, a diferenciade la anterior figura, esta incorpora dos botones en la parte inferior izquierda, el primero nosindica que el ejemplo que se esta visualizando (el cuerpo humano compuesto por brazo y pie)tiene su correspondiente algoritmo desarrollado en seudolenguaje orientado a objetos, elsegundo botón nos indica que además este ejemplo tiene su correspondiente traducción allenguaje JAVA (el que a través de una descarga de la carpeta correspondiente funciona alejecutarla, sin tener que hacer adecuaciones al código).

Figura No. 2: Pantalla que describe composición

Page 23: Re Vista 2008

El tutor interactivo ha sido estructurado en cuatro capítulos:En el primer se describen los siguientes conceptos: Qué es POO, objeto, clase, método, mensaje,encapsulamiento y abstracción.En el segundo se describe: Polimorfismo, funciones polimórficas, operadores polimórficos, unariosy binarios.En el tercer capítulo se describe: Herencia Simple, herencia múltiple.En el cuatro capítulo se describe: Asociaciones, agregados y composición.

Este tutor interactivo es un recurso didáctico multimedia, diferente a un software educativodebido a que no cuenta con una evaluación en línea.

Los pasos que se han seguido para el desarrollo de este tutor interactivo han sido los siguientes:

1. Para el desarrollo:

Esbozar un documento que describa textualmente los capítulos de Conceptos,Polimorfismo, Herencia y Asociación.

Esbozar un documento con distintos ejemplos relacionados a los anteriores capítulosmencionados.

Seleccionar distintos ejemplos que se adecuen a los capítulos Estudiar e investigar herramientas multimedia Identificar, seleccionar ejercicios o ejemplos a los que se pueden dar animación Desarrollar estilos de animación para cada tipo de ejercicio y/o ejemplo. Buscar la forma de crear interactividad con el estudiante.En esta etapa, se han dispuesto responsables, como se muestra en la tabla 1:

Tabla No. 1: Tabla de responsabilidadesFuente: elaboración propia

Actividades ResponsableConcepto Lic. Menfy Morales

Polimorfismo Lic. Menfy Morales

Herencia Univ. Jaime Chura

Asociación Univ. Carlos Fernández

Formato del tutor Univ. Juan Pablo Poma

Revisión de conceptos Todos los miembros

Revisión de Polimorfismo Todos los miembros

Revisión de Herencia Lic. Menfy Morales

Revisión de Asociación Lic. Menfy Morales

Revisión de Seudolenguaje Lic. Menfy Morales

Revisión y ejecución de programas en JAVA Lic. Menfy Morales

2. Para la prueba Seleccionar estudiantes con cero conocimientos acerca de POO Preparar el material correspondiente (quemar CD´s con el tutor interactivo) Distribuir aproximadamente 60 CD’s a los estudiantes del paralelo B de INF-121, gestión

(2/2008)

3. Para la evaluación Aplicar evaluaciones continuas Evaluación acerca de los distintos temas. Evaluación acerca de entorno del tutor interactivo

Discusión de resultados y conclusiones.El tutor interactivo esta diseñado para ser una herramienta de apoyo en la asignatura de“Algoritmos y programación”, el mismo que se puede conseguir a través de CD o del servidordel Instituto de Investigación de Informática. La versión P. es una versión prueba, la que ha sidoimplementada en la materia de INF-121 del paralelo D en la gestión 2/2008. Se puedemencionar que este tutor interactivo ha tenido bastante expectativa por los alumnos de lamateria.

Page 24: Re Vista 2008

Se han repartido aproximadamente 60 CD´s, a los estudiantes de este curso, para que ellospuedan someterse a dos tipos de evaluaciones.

Primero, se ha evaluado la presentación del tutor en general, para lo que se han consideradolos siguientes criterios: (1. Muy Adecuado 2. Adecuado 3. Inadecuado)Las variables que se han medido son las siguientes: Acceso, útil, interactivo, aprendizaje, color,entendible, ejemplos, uso.Se han obtenido los siguientes resultados, como se muestra en la Tabla 2:

Tabla No. 2: Encuesta realizada acerca de algunos indicadoresFuente: elaboración propia

Indicadores Muyadecuado

Adecuado Inadecuado

Acceso 43% 54% 3%

Útil 60% 40% 0%

Interactivo 33 50 17

Aprendizaje 20 80 0

Color 33 44 23

Entendible 27 66 7

Ejemplos 27 46 27

Uso 33 60 7

Una de las variables que nos interesa es “Aprendizaje”, y como se muestra, rescatamosel 80 % de los estudiantes que lo probaron, opinan que es “Adecuado”

Segundo se ha evaluado el contenido del tutor, para ello se han realizadoevaluaciones continuas de los distintos temas del tutor a través de un cronogramaplanificado. De tal manera se han obtenido los siguientes resultados:Los alumnos se presentaron a unas evaluaciones y a otras no. Para nuestra muestra esnecesario hacer una limpieza, y considerar todas las evaluaciones, quedandoaproximadamente 15 estudiantes bajo esta condición. Además para poder realizaruna comparación, se tomo en cuenta el rendimiento de los alumnos de la gestión(1/2008), a este grupo también se tuvo que hacer una limpieza de datos,considerando a aquellos que hicieron todas las pruebas de esta parte. Para que elanálisis sea lo más claro posible. De estos dos grupos se puede mencionar lo siguiente,ver tabla 3:

Tabla No. 3: Porcentaje de rendimiento con el tutorFuente: elaboración propia

Con tutor Sin tutor

% de aprobados 80 % 49 %

% de reprobados 20 % 57 %

Se pueden dar distintas interpretaciones a la tabla 2, sin embargo es necesariomencionar que el tutor interactivo (recurso didáctico) es por si mismo un gran apoyo alproceso de aprendizaje. Se logro subir el porcentaje de aprobación en un cursoregular de la materia.

Algunas recomendaciones que nacen de ambas evaluaciones, son la siguiente: Completar los temas de POO, como ser funciones amigas, plantillas,

asociaciones (uno a uno, uno a varios y varios a varios ) , clases virtuales,funciones virtuales

Adicionar mas ejemplos en cada uno de los capítulos Mejorar el color Adicionar Sonido (componente de multimedia) Incrementar la teoría en cada capítulo (aumentar texto)

Page 25: Re Vista 2008

Permitir la impresión de la parte conceptual - teórica

Se podría pensar en una versión 2. Con todas estas recomendaciones

Agradecimientos.A todos las personas que nos permiten re-usar código, como algunos ejemplos descript que se puede bajar de la web. A todos los alumnos de INF-121 gestión 2/2008,que han tenido la voluntad de usar el tutor y nos ha permitido evaluar tanto sucontenido como su forma. A todos los docentes de la materia que con su expectativahan logrado impulsar mas este proyecto. A los universitarios investigadores, con suapoyo desinteresado han hecho posible que este tutor llegue a la etapa deevaluación, permitiendo de esta manera adelantar el cronograma planificado.Gracias.

Referencias7. Joyanes, 1998. Programación Orientada a Objetos,8. Ceballos 2003. Programación en JAVA.9. Flash MX, paso a paso, Joel de la Cruz Villar, Ed. MegaByte.10. Flash MX, Curso Práctico, José Luis Oros, Ed. Alfaomega, 2003, México.11. James Martin, Diseño Orientado a objetos.12. Grady Booch, James Rumbaugh, Ivar Jacobson, 2000, El lenguaje unificado de modelado.13. David Flanagan, 1999, Java ina nutsehell.14. Laura Lemay y Charles L. Perkins, 1996, Aprendiendo Java.

HUMANITIES COMPUTING: Iniciativas Digitales enHumanidades

RESUMENEl presente artículo ofrece una visión actual sobre lo que se entiende por HumanitiesComputing o Digital Humanities, simbiosis que surgió entre las disciplinas deHumanidades y la informática, y que se ha ido convirtiendo en un importante focode atención investigadora en cuanto a formación, contenidos y métodos basadosen las nuevas tecnologías en las disciplinas Humanísticas . Brígida Carvajal Blanco

Docente - UMSACarrera de Informática

[email protected]

PALABRAS CLAVE:. Humanidades Digitales. Nuevas Tecnologías. Fuentes de Información.MetodologíasKEYWORDS: Digital Humanities. New Technologies. Resources of Information. Metodologies.

Digital Humanities, o como se traduce en otros idiomas: Humanidades e informática,Humanidades Digitales, Humanistisk Informatik o también Humanities Computing, se refiere auna disciplina surgida en los países angloamericanos. El 1999 en el debate organizado por laACM (Association for Computing Machinery) se la definió como una disciplina académicaindependiente con sus organizaciones profesionales, conferencias regulares, revistas y suscentros y departamentos concediendo gran importancia a que no es el simple hecho de usar lacomputadora en Humanidades como herramienta sino también son importantes las cuestionesteóricas, sobre el ‘cómo’ y el ‘qué’ en el uso de la computadora, manifestando una actitudfilosófica hacia este medio.

Citando a Renear, el destaca el interés en nuestro tiempo, por la cultura digital en general ytodo lo que abarca este concepto:

“… Humanities Computing tiene un interés analítico general en la cultura digital, conduciendoanálisis multi-disciplinarios con sistemas multimedia, tecnologías educativas, uso de la tecnologíaen el arte así como su uso en publicaciones y en la comunicación … “[4].

En sí, el enfoque de esta disciplina se caracteriza, por su interdisciplinariedad ya que para hacerun uso efectivo de la informática en humanidades se necesitan aplicar conocimientos

Page 26: Re Vista 2008

relacionados con otros campos del saber, especialmente de la ciencia de la computación,información y comunicación. Este es el momento de integrar tanto los conocimientos de lasmaterias de humanidades y muchas facetas de la informática y las nuevas tecnologías,generando así nuevas disciplinas como por ejemplo, la historiografía digital.

Las actividades de Humanities Computing pertenecen ante todo al área de Humanidades y noasí a la Informática, de ahí que no se centra en la pura aplicación del know-how tecnológico,sino en el conocimiento de metodologías comunes en el campo de la investigación. Por lo tantola computadora en Humanidades adquiere un estatus bastante diferente en contraste, quizás,con la todavía muy extendida disposición entre los tradicionales investigadores humanistas consentimientos de rechazo, miedo o incluso menosprecio.

La disciplina como tal contribuye a las metodologías y a la transmisión de pensamiento a travésdel uso de la informática ya que son las cuestiones filosóficas y el desarrollo del pensamientocrítico a los que está enfocado Humanities Computing y no al uso puramente de la herramientacomo tal. No obstante, se debe reconocer el rol de las nuevas tecnologías ya que han llevado atransformar los métodos de investigación en Humanidades. Desarrollando el uso de técnicas yequipos sofisticados de digitalización, dispositivos de almacenamiento de alta capacidad,procesadores poderosos, técnicas de procesamiento de imágenes, dispositivos de desplieguevisual de alta calidad y muchos otros productos de avances tecnológicos que recientemente seencuentran disponibles en el mercado.

En si, las tecnologías ayudan como herramienta de trabajo a estudiar e investigar lostradicionales campos humanísticos de forma más eficiente, por otra parte, encontramos nuevosmétodos y objetos de estudio que se están incorporando en Humanidades donde es necesarioel desarrollo de métodos adecuados. Como el uso de la simulación, de los mismos juegos decomputadoras, o las nuevas formas de arte que van surgiendo.

Claro que, los métodos del pasado no se han quedado obsoletos, pero el empuje hacia estudioscomputacionales es cada vez más evidente. Por este motivo, el contenido de la enseñanza enHumanidades debería también adaptarse a las nuevas exigencias del desarrollo tecnológico ydel mercado laboral. Se debe preparar a los estudiantes en la integración de métodos deinformática, como por ejemplo, ingenieros lingüísticos, expertos de ediciones multimedia y enbases de datos tanto para bibliotecas, archivos históricos, centros de documentación, museos oempresas publicitarias, por lo tanto se necesitan cambios en la curricula. Tomando aspectoscomo la búsqueda de información, tecnologías multimedia y digitalización así comocodificación de textos. Aunque la idea no es reemplazar a las actividades presenciales y formasconvencionales de investigación. Pero si, revolucionar el acceso a las fuentes de información,llevando a nuevas formas de investigación y publicación, posibilitando nuevas comunidadesglobales de investigadores.

Se ha mencionado como la disciplina va contribuyendo en dar nuevos enfoques a lainvestigación en humanidades, partiendo de métodos propios a esta pero en relación con lainformática. Es así, que a continuación se hace una revisión de estos métodos, técnicas yherramientas, usadas en Humanidades cuya perspectiva cambia desde la nueva disciplina.

Fuentes de Información

Las investigaciones en el área de humanidades están relacionadas con el estudio de fuentestextuales, pero estas representan tan solo una pequeña parte de las fuentes de información quepueden usar los investigadores ya que otras fuentes son las esculturas, pinturas, restosarqueológicas y toda clase de objetos que son producidos por la sociedad a través de lahistoria. Todas estas fuentes necesitan ser representadas en forma digital antes de que lastécnicas computacionales puedan ser aplicadas a estas y puedes ser transformadas en formatodigital de la siguientes formas. Como por ejemplo:

El Texto: la mayoría de las fuentes textuales ya nacen en formato digital pero las haytambién las que se encuentran en lenguajes antiguos o provienen de una variedad demedios utilizados a través de las distintas décadas.

Page 27: Re Vista 2008

Datos Numéricos: es común en muchas disciplinas que se basen en fuentes de análisisestadístico y numérico tales como censos, o datos que derivan de técnicas de análisistextual.

Imágenes: Muchas de las disciplinas de humanidades tales como la historia del arte, sonaltamente visuales.

Video: Los recursos fílmicos son importantes para las artes visuales, y son también utilizadospara el registro y propósitos educativos.

Datos Espaciales: Muchas de estas disciplinas trabajan con mapas o datos que tienencomponentes espaciales. El uso del término espacial no es utilizado en el sentidogeográfico convencional sino se refiere a la distribución espacial de los elementoscomposicionales por ejemplo en una pintura, a la posición de actores en el escenario o aotras fuentes que involucren localización de datos.

Sonido: Registros de sonido son de interés inmediato para el desarrollo de investigacionesartísticas y para disciplinas donde el estudio del lenguaje es uno de sus componentes.

Herramientas para la investigación

Una de las principales tareas de Humanities Computing es ofrecer herramientas que permitan alos académicos aplicar estas actividades sobre datos digitales y fuentes disponibles a través deredes de computadores, así como asegurar la viabilidad del uso de estos recursos en el futuro.

Luego de digitalizar las fuentes de datos y organizarlas de manera que el contenido sea visiblepara técnicas computacionales, se requieren herramientas que permitan realizarinvestigaciones sobre estas fuentes.

John Unsworth[2], sugiere que a pesar de que tanto el conocimiento y los resultados obtenidosde las investigaciones son diversos, es posible identificar ciertos métodos comunes, los cualespueden ser expresados en base a un conjunto de siete actividades combinadas

DescubrimientoEl descubrimiento se refiere a la actividad que es realizada en archivos, centros dedocumentación, o bibliotecas. Pero que ahora se la puede realizar con el uso de recursosdigitales en la web, como el uso de motores de búsqueda. Por otra parte el métodotradicional de comunicación se realiza hoy en día, a través de la comunicación con otrospero vía internet, por ejemplo a través de grupos de discusión en línea o comunidadesvirtuales de investigadores que trabajan en conjunto y en forma interdisciplinaria utilizandomedios electrónicos y convencionales. El uso de estos sitios web colaborativos, wiki’s yblog’s, ha revolucionado las formas de comunicación.

FichajeEl fichaje ha sido siempre una de las técnicas mas importantes para las investigaciones enhumanidades, pero como puede esta habilidad aplicarse a textos electrónicos, imágeneso otras fuentes digitales tales como registro de sonidos o video? Pues con el uso deherramientas dirigidas a esta actividades aunque la clave no es como facilitar el registro,sino como compartirlo entre investigadores pero controlando los posibles daños quepuedan ocurrir asi como el uso y abuso de las fuentes.

ComparaciónCompara dos o mas objetos de análisis, es una actividad ante todo visual pero con elapoyo de herramientas sofisticadas para la comparación automática se pueden obtenermejores resultados. Esta actividad involucra análisis estadístico y numérico de datos, comodatos de censos pasados, o técnicas de comparación de imágenes, sonido y video.

Referencia:Se refiere a la información a la cual se hace referencia en un proyecto de investigación,relacionado con la creación de enlaces en la red.

Ejemplificación

Page 28: Re Vista 2008

Ejemplificación es el resultado de la selección de acuerdo a la especificación de criterios,que puede ser un término de búsqueda o sobre una muestra poblacional.

IlustraciónLa ilustración es el proceso de elucidar o poner algo en claro. Esto puede hacersesimplificando los resultados complejos obtenidos con diagramas o representacionesgraficas.

RepresentaciónLa representación se refiere a las formas de publicación, ya sea de manera electrónica oconvencional. Los resultados de las investigaciones son ahora publicadas como fuentesdigitales ya sea en libros o artículos de revistas.

Cabe hacer notar que todas estas actividades no están limitadas solamente a las disciplinas dehumanidades, pero lo que hace la diferencia es la naturaleza de los datos, la naturaleza de lasconsultas y las herramientas que serán utilizadas para las distintas interacciones. Los datos delas investigaciones tanto en su rol de fuentes primarias y secundarias, son manejadas porinstituciones culturales de toda tipo, como librerías, archivos, galerías, museos, pero tambiénforman parte de nuestro entorno diario, como ser edificios públicos, monumentos, sitiosarqueológicos.

Cuáles son las disciplinas que hacen a Humanities Computing?.

En su artículo, Willard McCarty and Harold Short [3] plantean un mapa preliminar de HumanitiesComputing. Las disciplinas de humanidades están al inicio del mapa organizadas en gruposcomo literatura, lingüística, historia, música, religión, arqueología y antropología. Al pie delmapa se encuentran las áreas de aprendizaje que trabajan en forma interdisciplinaria enHumanities Computing, tales como filosofía, etnografía, historiografía, sociología delconocimiento, estudio de los medios y otros aspectos de la ciencia de la computación como elprocesamiento digital de imágenes , investigaciones en librerías digitales. En el centro del mapase encuentran el común de las metodologías que comparten las técnicas computacionales,con las disciplinas de humanidades ligadas a las ciencias sociales, como ser el diseño de basesde datos, el análisis de textos, análisis numérico, procesamiento de imágenes, la música, larecuperación de la información y las comunicaciones. Contribuyendo cada grupo a estecomún de metodologías

Figura No. 1: Mapa de DisciplinasHumanities Computing, W. McCarty and H. Short.

Page 29: Re Vista 2008

Conclusiones.

Finalmente se ha revisado que se entiende por Humanities Computing y como las fuentes deinformación y las técnicas comunes a las distintas disciplinas de humanidades que conforman elmapa, van adecuándose a la perspectiva computacional.

Es también importante la integración de los métodos computacionales en humanidades, yaque se va abriendo un nuevo campo de investigación así como van surgiendo nuevos métodosy preguntas para entender los alcances de los nuevos medios y su rol en el trabajo colaborativo

interdisciplinario.

Referencias15. The Centre for Computing in the Humanities, King's College London

http://www.kcl.ac.uk/cch.16. Unsworth. John. 2000. Scholarly Primitives: what methods do humanities researchers have in

common, and how might our tools reflect this?.http://jefferson.village.virginia.edu/~jmu2m/Kings.5-00/primitives.html

17. Willard McCarty. Harold Short. 2002. Humanities Computing. King’s College London, London,United Kingdom.

18. ACH Panel: Humanities Computing and the Rise of New Media Centers: Synergy orDisjunction? http://awww.ach.org/abstracts/1999/renear-ach.html.

Page 30: Re Vista 2008

CANALES DE INFORMACIÓN Y MATRICESLic. Edgar Clavijo Cárdenas M. Sc.

Docente – Investigador - [email protected]

http://es.geocities.com/edgarpcc/

RESUMENEs un segundo artículo en el cual se enfatiza la utilización de matrices en la Teoría de la información. Se expone el usode las matrices en temas referidos a Canales de Información: (i) Formulación de relaciones de las probabilidades delcanal, y los alfabetos de entrada y salida, (ii) Expresión de canales en serie y convergencia del canal que relacionaal alfabeto de entrada y salida de forma estadísticamente dependiente hacia otro que los relaciona de formaindependiente, (iii) Formulación de las reducciones suficientes y reducciones suficientes mínimas.

AbstractIt is a second article in which is emphasized the use of matrix in the Theory of the information. The use of the matrix isexposed in topics referred to Channels of Information: (i) Formulation of the relationships of the probabilities of thechannel, the input and output alphabets, (ii) Expression of cascaded channels and convergence of a channels thatrelates to the input and output alphabet in dependent form toward another that relates them in an independent form(iii) Formulation of the sufficient reductions and minimum sufficient reductions.

PALABRAS CLAVE: Canal de Información. Canales en serie. Canales en cascada. Teoría de lainformación.

KEYWORDS: Information Channels. Serial Channels. Cascade Channels. Information Theory.

Introducción.

El estudio de los canales de información es un tema muy importante dentro de la teoría de lainformación. La utilidad teórica y práctica del tema ha sido ampliamente demostrada por elsegundo teorema de Shannon. Las expresiones de las diferentes relaciones entre los canales ylos alfabetos habitualmente se muestran con gran profusión de simbología matemática quesuele ocultar a los estudiantes y estudiosos del tema la posibilidad de expresiones simples queutilicen formulaciones matriciales. El objetivo de este artículo es facilitar estas expresiones paralograr la comprensión de estos temas introduciendo formulación matricial.

Canales de Información.

Un sistema de comunicación o de transmisión de mensajes debe considerar varios elementos:Emisor, Canal de información, Receptor y la acción del entorno producente de ruido como seesquematiza en la Figura No 1. El Canal de Información es el medio físico utilizado como soportede las señales que viajan a través de él. Un emisor de señales -similar a una fuente- utiliza estemedio con el fin de transmitir mensajes al receptor. El entorno que rodea al canal puedeperturbar y modificar las señales ocasionando distorsiones en el mensaje, a ésta acción se leconoce con el nombre de ruido.

Con el propósito de comprender el comportamiento de un canal, se ha desarrollado un modeloformal que pueda describir sus características de manera apropiada.

Emisor ReceptorCanal de información

Ruido

Figura No. 1: Sistema de comunicación

Un canal de información está determinado por un alfabeto de entrada A={ai: i=1, 2, ..., r}, unalfabeto de salida B={bj: j=1, 2, ..., s} y un conjunto de probabilidades condicionales P(bj|ai) quedescribe el comportamiento de la transmisión de las señales a través del canal y se entiendecomo la probabilidad de que se reciba el símbolo de salida bj si se transmite el símbolo deentrada ai. [1]

Page 31: Re Vista 2008

Se tienen además asociados dos conjuntos de probabilidades, llamadas probabilidades a priori,uno para el alfabeto de entrada A y otro para el alfabeto de salida B. Se introduce comonotación -para el cumplimiento del objetivo de éste artículo- la escritura en términos dematrices, de dimensión 1xr y 1xs, a los conjuntos de probabilidades de los alfabetos de entrada ysalida respectivamente. Para simplificar la notación de los elementos de cada matriz se escribela probabilidad de cada símbolo del alfabeto de entrada y del alfabeto de salida como

iiaP a)( yjjbP b)( . A partir de esto, se formula las siguientes identidades:

r321r1 a,,a,a,aA )(,),(),(),( 321 raPaPaPaP (1)

ssbPbPbPbP b,,b,b,bB 321s1 )(,),(),(),( 321(2)

Denotamos también como AB a la matriz de probabilidades condicionales de dimensión r x s,

donde las filas corresponden a las entradas y las columnas a las salidas. El canal propiamente

dicho está representado por la matriz AB . Para simplificar la notación escribimos

ijc)|( ij abP de acuerdo a [2] y la matriz de probabilidades del canal se expresa como:

rsr2r1

2s2221

1s1211

sr

ccc

ccc

ccc

AB

(3)

En esta matriz la suma de cada fila es igual a 1 puesto que corresponde a una distribución deprobabilidades y se entiende como la certeza de recibir algún símbolo a la salida del canalcuando se transmite algún símbolo de entrada.

En la Figura No. 2 se muestran todas las situaciones posibles en cuanto a las relaciones que sepueden establecer entre las probabilidades de los alfabetos de entrada, salida y canal de

información. Las probabilidades hacia adelante son todas las )|( ij abP , las probabilidades

hacia atrás son las )|( ji baP .

Conocidos A y AB se puede determinar la probabilidad a priori de cada símbolo de salida

jb . Cada símbolojb puede recibirse en r casos distintos. Enviado

1a se presentarájb con

probabilidad 1jc , si se envía2a se presentará

jb con probabilidad 2jc , etc. En consecuencia

se escribirá como la suma de los productos de la probabilidad condicional a posteriori de que

salga el símbolojb dado que ingreso el símbolo

ia por la probabilidad a priori de la emisión del

símboloia para toda i de 1 a r, tal como se muestra en la figura 2 (b). Es decir, está

representado por la siguiente fórmula [1]:

)()()|()()|()()|( 2211 jrrjjj bPaPabPaPabPaPabP (4)

O lo que es lo mismo:

j

r

i

r

iiij aPabP bac iij

11

)()|( (5)

Page 32: Re Vista 2008

a1

a2

ar

b1

b2

bs

ai

bj

b1

b2

bs

bj

c1j

c2j

cij

crj

a1

a2

ar

ai

b1

b2

bs

bj

a1

a2

ar

ai

dis

dij

di2

di1

(a)Probabilidadesadelante y atras

(c)Probabilidad deenviar a

i

(b)Probabilidad derecibir b

j

Figura No. 2: Diagramas de correspondencia de probabilidades condicionales del canal AB

En éste acápite se plantea expresar la relación entre las probabilidades de los símbolos de

entrada A , los símbolos de salida B y las probabilidades condicionales del canal AB

utilizando la siguiente multiplicación de matrices:

xsrxsxr 11 BABA (6)

Por otra parte, recurriendo a la ley de Bayes, tenemos la definición de probabilidad del suceso

simultáneo ),( ji ba como:

)()|(),( jjiji bPbaPbaP (7)

o bien,

)()|(),( iijji aPabPbaP (8)

De ésta relación se obtienen las probabilidades hacia atrás con la siguiente ecuación:

)(

)()|()|(

j

iijji

bp

apabpbap (9)

Reemplazando en la ecuación (9) la parte izquierda de la ecuación (5) se tiene:

r

iiij

iij

ji

aPabP

aPabPbaP

1

)()|(

)()|()|( (10)

Con el mismo fin de simplificar, denotamos tambiénjiji dbaP )|( para formular la matriz de

probabilidades condicionales hacia atrás que se expresa así:

srs2s1

2r2221

1r1211

rs

ddd

ddd

ddd

BA

(11)

Con lo que se puede concluir -de manera simétrica- que si se tienen conocidas las

probabilidades de B y las probabilidades condicionales hacia atrás BA , se obtiene las

probabilidades a priori de A mediante:

ABAB (12)

Page 33: Re Vista 2008

En la siguiente figura se muestra un ejemplo de estas relaciones con datos acerca de la entropíade los alfabetos, de los canales, la información mutua y la entropía conjunta:

p(a1) p(a2) p(a3) b1 b2 b3 p(b1) p(b2) p(b3)

0.2000 0.3000 0.5000 a1 0.010 0.020 0.970 0.4810 0.3140 0.2050

a2 0.080 0.900 0.020

H(A) 0.9372 a3 0.910 0.080 0.010 H(B) 0.9472

a1 a2 a3

H(A/B) b1 0.0042 0.0499 0.9459 H(B/A)

0.2724 b2 0.0127 0.8599 0.1274 0.2717

b3 0.9463 0.0293 0.0244

H(A/b) I(A;B) H(B/a)

0.2048 0.6648 0.1400

0.4077 H(A,B) 0.3415

0.2240 1.2197 0.3040 ecc

Figura No. 3: Relación de las probabilidades de un canal en forma matricial

Canales en serie o en cascada.

Actualmente en muchas situaciones prácticas se observa que los canales de información estánconectados uno tras otro y además cada uno de ellos es independiente de los demás. Unesquema de tal situación referida a dos canales se observa en la figura 4:

AB BCA B C

AC

Figura No. 4: Canales en serie o cascada

Considerando un par de canales conectados en serie, tal como se ve en la figura 4, tenemos un

alfabeto de entrada A al canal AB y un alfabeto de salida B que es al mismo tiempo el

alfabeto de entrada del canal BC y de este último su salida es el alfabeto C. Dos canales en

serie o en cascada [2] dispuestos de esta manera se pueden considerar como un solo canal, el

canal AC .

Utilizando la notación del punto anterior, se expresa un nuevo canal AC , como el resultado de

la multiplicación de las matrices AB y BC de la siguiente manera:

trtssr ACBCAB (13)

Así por ejemplo, si tenemos los siguientes canales BSC

2221

1211

2221

1211

dd

ddBC

cc

ccAB (14)

Obtendremos

ACBCAB (15)

Page 34: Re Vista 2008

[AC]dcdcdcdc

dcdcdcdc

dd

dd

cc

cc

2222122121221121

2212121121121111

2221

1211

2221

1211

(16)

Si AB y BC son el mismo BSC con probabilidad de error igual a p obtendremos:

22

22

2

2

pqqp

qppqAC (17)

Otro resultado interesante es relativo al canal de probabilidades a posteriori AB y el canal

resultante BA que se obtiene a partir del primero y de A . Como se ha evidenciado BAdepende de la forma de utilización del canal, es decir de las probabilidades del alfabeto A.

Colocando en serie a los canales AB y BA , y luego de manera permutada, se obtienen los

siguientes otros dos canales de las ecuaciones (18) y (19) respectivamente:

ABABAAB (18)

BABABBA (19)

Con los cuales se logran las siguientes expresiones:

AABAA (20)

BBABB (21)

Como podemos observar en éstas ecuaciones ambos canales ABA y BAB no modifican el

valor de las probabilidades del alfabeto de entrada al canal, obteniéndose como resultado elmismo conjunto de probabilidades en el alfabeto de salida, siendo además, ambos canales,con ruido y sin ser necesariamente una matriz identidad.

En la Figura No. 5 siguiente se observa el comportamiento del canal ABA obtenido del

ejemplo de la figura 3.

p(a1) p(a2) p(a3) b1 b2 b3 p(b1) p(b2) p(b3)

0.2000 0.3000 0.5000 a1 0.9182 0.0461 0.0357 0.2000 0.3000 0.5000

a2 0.0307 0.7785 0.1908

H(A) 0.9372 a3 0.0143 0.1145 0.8712 H(B) 0.9372

a1 a2 a3

H(A/B) b1 0.9182 0.0461 0.0357 H(B/A)

0.4257 b2 0.0307 0.7785 0.1908 0.3913

b3 0.0143 0.1145 0.8712

H(A/b) I(A;B) H(B/a)

0.3086 0.5116 0.3086

0.5626 H(A,B) 0.5626

0.3903 1.3629 0.3903 ecc

Figura No. 5: Relación de las probabilidades de l canal ABA obtenido del ejemplo de la figura 3

Se debe notar que tanto ABA y BAB tienen menor información mutua que AB y BArespectivamente, por la degradación de la información producida al atravesar por dos canalesdispuestos en serie.

Extendiendo este principio se prueba que la disposición de un canal de la forma

BAABABA tiende a convertirse en un canal por el cual los alfabetos de entrada y salida

Page 35: Re Vista 2008

son estadísticamente independientes, llamémosle KABA al mencionado canal. El canal

KABA está representado como una matriz idempotente, en el cual las probabilidades

condicionales de cada una de sus filas son iguales al del alfabeto de entrada del canal, talcomo se aprecia en la figura 6 obtenido del ejemplo citado:

[ABA] [ABA]2 [ABA]4

0.9182 0.0461 0.0357 0.845 0.082 0.073 0.721 0.135 0.144

0.0307 0.7785 0.1908 0.055 0.629 0.316 0.090 0.460 0.450

0.0143 0.1145 0.8712 0.029 0.190 0.781 0.058 0.270 0.673

[ABA]8 [ABA]16 [ABA]32

0.54005 0.19842 0.26153 0.34526 0.25765 0.39709 0.22653 0.29228 0.48118

0.13228 0.34537 0.52235 0.17177 0.30924 0.519 0.19486 0.3015 0.50365

0.10461 0.31341 0.58198 0.15883 0.3114 0.52977 0.19247 0.30219 0.50534

[ABA]64 [ABA]128

0.20089 0.29974 0.49937 0.2 0.3 0.5

0.19983 0.30005 0.50012 0.2 0.3 0.5

0.19975 0.30007 0.50018 0.2 0.3 0.5

Figura No. 6: Convergencia de ABA hacia una matriz idempotente

El canal 128ABA es un canal con ruido, de matriz idempotente y en el cual las relaciones entre

los alfabetos de entrada y salida son estadísticamente independientes. En la figura 7, se observael comportamiento de este canal en el que la información mutua I(A;B) es igual a cero.

p(a1) p(a2) p(a3) b1 b2 b3 p(b1) p(b2) p(b3)

0.2000 0.3000 0.5000 a1 0.2000 0.3000 0.5000 0.2000 0.3000 0.5000

a2 0.2000 0.3000 0.5000

H(A) 0.9372 a3 0.2000 0.3000 0.5000 H(B) 0.9372

a1 a2 a3

H(A/B) b1 0.2000 0.3000 0.5000 H(B/A)

0.9372 b2 0.2000 0.3000 0.5000 0.9372

b3 0.2000 0.3000 0.5000

H(A/b) I(A;B) H(B/a)

0.9372 0.0000 0.9372

0.9372 H(A,B) 0.9372

0.9372 1.8745 0.9372 ecc

Figura No. 7: Comportamiento del canal 128ABA

Es posible constatar con este ejemplo que para cualquier alfabeto de entrada existe al menosun canal con ruido que obtiene a la salida un alfabeto con la misma probabilidad del alfabetode entrada.

Reducciones suficientes

Un canal AB de dimensión sr tiene una reducción suficiente si dos de sus columnas

pueden escribirse una como múltiplo de la otra. En tal caso sumando una columna sobre la otra

y eliminando la columna que no contenga el resultado se encontrará otro canal BA de

dimensión )1( sr con la misma información mutua que el canal AB .

El proceso para obtener una reducción suficiente se puede realizar colocando al canal AB en

serie con un canal determinante de dimensión )1( ss que contenga una columna con 2

unos, que es la elegida como la columna resultante. Si existe más de una reducción suficiente se

Page 36: Re Vista 2008

podrán colocar como una hilera de canales determinantes en serie, hasta lograr la reducciónsuficiente mínima. Es decir aquella que no contenga la posibilidad de hallar más reduccionessuficientes.

Tenemos como ejemplo el siguiente proceso para obtener la reducción suficiente mínima de un

canal. La primera reducción suficiente -en la ecuación (22)- obtiene BA y la segunda

reducción suficiente -en la ecuación (23)- se obtiene ''AB :

BA

8/12/124/13/1

10/35/110/15/2

8/34/18/14/1

4/13/112/13/1

1000

0001

0100

0010

0001

8/1

10/3

8/3

4/1

4/1

10/3

16/3

4/1

2/1

5/1

4/1

3/1

24/1

10/1

8/1

12/1

12/1

10/1

16/1

12/1

(22)

''

2/16/13/1

5/15/25/2

4/12/14/1

3/13/13/1

010

100

010

001

8/12/124/13/1

10/35/110/15/2

8/34/18/14/1

4/13/112/13/1

AB

(23)

Las ecuación (24) y (25) expresan el proceso de reducción con canales determinantes en serie:

''

2/16/13/1

5/15/25/2

4/12/14/1

3/13/13/1

010

100

010

001

1000

0001

0100

0010

0001

8/1

10/3

8/3

4/1

4/1

10/3

16/3

4/1

2/1

5/1

4/1

3/1

24/1

10/1

8/1

12/1

12/1

10/1

16/1

12/1

AB

(24)

''

2/16/13/1

5/15/25/2

4/12/14/1

3/13/13/1

010

001

100

010

001

8/1

10/3

8/3

4/1

4/1

10/3

16/3

4/1

2/1

5/1

4/1

3/1

24/1

10/1

8/1

12/1

12/1

10/1

16/1

12/1

AB

(25)

Con similar enfoque -utilizando canales sin ruido- es posible también hallar una expansión delalfabeto A tal como sugiere la ecuación (26) donde la segunda columna se expande en dos.

Estas dos columnas vienen a ser la segunda y tercera del canal resultante ExAB . En dicho

canal la tercera columna es el doble de la segunda:

ExAB

2/118/218/13/1

5/115/415/25/2

4/16/26/14/1

3/19/29/13/1

1000

03/23/10

0001

2/16/13/1

5/15/25/2

4/12/14/1

3/13/13/1

(26)

Discusión de resultados y conclusiones.

Facilitar la comprensión del objeto de estudio analizado es un objetivo que se persigue cuandose tiene el encargo social de enseñar. La notación matricial en el estudio de los canales deinformación logra alcanzar mejores niveles de comprensión, puesto que se facilita la expresiónde los conceptos reduciendo la simbología que es habitualmente extensa en este contexto.

Page 37: Re Vista 2008

Los temas mostrados pueden encontrarse en la bibliografía referida y a las cuales se les añadeeste aporte que conjeturamos mejore la comprensión de estos temas.

Referencias

19. Abramson N., 1977: Teoría de Información y Codificación. 216 págs. 4ta. edición, ed. Paraninfo, Madrid.20. Togneri R, deSilva J.S.: Fundamentals of Information Theory and Coding Design. 385 pags. 1ra edición. Ed

Chapman & Hall/CRC.21. Jones G. and Jones M. 2002: Information and coding theory. 210 págs. 2da. edición ed. Springer,

Londres

Page 38: Re Vista 2008

SISTEMAS INTELIGENTES EDUCATIVOS

RESUMEN

Este artículo tiene como objetivo dar una visión de actividadesrealizadas con Sistemas Inteligentes Educativos (SIE) que sondesarrollados en el ámbito de la didáctica cuyas capacidadesusan técnicas de Inteligencia Artificial en la Educación.

Plantea como diseñar un SIE, utilizando técnicas para crear elproceso de adaptación de este sistema al usuario, con un aportede los Sistemas Tutoriales Inteligentes (STI) y los Sistemas Hipermedia(SH). Mostrando cuáles son las principales cuestiones que seplantean en su diseño.

Patricia Sonia Trino CamachoLicenciada en Informática

Consultora en Proyectos deInvestigación

E-mail: [email protected]

PALABRAS CLAVE: Sistemas inteligentes educativos. Inteligencia artificial. Sistemas TutorialesInteligentes. Sistemas hipermedia. Aprendizaje colaborativo.

KEY WORD: Intelligent systems of education. Artificial in intelligence. Tutorial Systems Integration.Hypermedia systems. Collaborative learning.

Introducción

La situación actual en nuestro medio respecto al uso de computadores va en crecimiento,debido a la accesibilidad en precios, el fácil acceso a tecnologías de punta en Comunicación eInternet y el uso permanente de herramientas informáticas a todo nivel, lo que hace que losusuarios demanden programas formativos y de autoformación de apoyo a laenseñanza/aprendizaje.

Es así que según el artículo escrito en la revista Iberoamericana de Inteligencia Artificial [1] seespecifica claramente sobre sociedades informatizadas donde instituciones internacionalescomo la UNESCO, a través de Jaques Delors que lideró la comisión internacional para laeducación en el siglo XXI bajo el título “La educación encierra un tesoro”, sustenta laimplementación de este diseño con el uso de nuevas tecnologías aplicadas en la educación.Para lo cual tomamos en cuenta lo siguiente: ”… las sociedades actuales son de uno u otromodo sociedades de información en las que el desarrollo de las tecnologías puede crear unentorno cultural y educativo capaz de diversificar las fuentes del conocimiento y del saber” [2].

La aplicación de la Inteligencia Artificial (IA) en la Educación, constituye actualmente un campode creciente interés donde se trata, fundamentalmente, de aplicar las técnicas de la IA aldesarrollo de sistemas de enseñanza asistidos por computador, con el propósito de construirsistemas de enseñanza inteligentes. Siendo así que esta área de investigación interdisciplinaria esde interés de todo profesional, en especial la Pedagogía, Psicología, Ciencias Cognitivas,Inteligencia Artificial, Multimedia e Informática en general, dónde cada uno aporta su visión aldesarrollo de estos sistemas.

Para poder entender mejor lo propuesto en este artículo respecto al diseño de un sistemainteligente educativo, se describe los conceptos como SIEs (Sistemas Inteligentes Educativos), STIs(Sistemas Tutores Inteligentes) y los SHs (Sistemas Hipermedia). “Entendemos como SIEs, aquellossistemas desarrollados en el ámbito de la didáctica cuyas capacidades hacen uso de técnicasde la Inteligencia Artificial” [3]

Un concepto que se adecua al presente artículo de Inteligencia Artificial de los muchos que sedan es el siguiente: “El estudio de cómo lograr que las computadoras realicen tareas que, por elmomento, los humanos hacen mejor”. [1]. Este concepto es tomado para sistemas hechos por elser humano, para que actúen como humanos.

Por otra parte, el concepto más adecuado al diseño de los SIEs que permite comprender el usode STIs es el que se publicó en el 3er congreso virtual en Internet donde describe a: “Los STIspermiten emular el proceso de aprendizaje y de enseñanza humano, adaptando el tipo y elcontenido de la enseñanza a las necesidades específicas del alumno, decidiendo cuándointroducir nuevos conceptos o repasar los anteriores si éstos no han sido asimilados. Estos sistemastienen en cuenta los conocimientos a enseñar (contenido pedagógico), la forma de enseñarlo

Page 39: Re Vista 2008

(estrategia pedagógica), así como la información relevante sobre el alumno que está siguiendoel tutorial ”[2]

Por último el concepto de Sistemas hipermedia extraido de la revista Informédica [4] “... términocon que se designa al conjunto de métodos o procedimientos para escribir, diseñar, o componercontenidos que tengan u otros medios, y que además tenga la posibilidad de interactuar con losusuarios “

Desarrollo

Para tener una visión general de algunas actividades que realizan los Sistemas InteligentesEducativos (SIE) que son desarrollados en el ámbito de la didáctica cuyas capacidades hacenuso de técnicas de la Inteligencia Artificial (IA) en la Educación, se tiene que diferenciar dosplanteamientos:

El primer planteamiento, trata de realizar una tutorización guiada mediante un proceso detransmisión de conocimiento a través de estrategias de enseñanza establecidas porcomputadora. “seguimiento continuo del profesor hacia el alumno” (Enfoque instructivo) através de Sistemas Tutores Inteligentes (STI).

Y el segundo planteamiento que trata, como brindar al estudiante una presentación de materialdocente, que le permita adquirir conocimientos a través de sus propias estrategias deaprendizaje, donde no se ofrece ninguna estrategia de enseñanza, a través de unacomputadora, según un planteamiento “constructivista”. Esta tutorización es “construcción deentornos de aprendizaje donde sea el estudiante el que guíe su propio proceso de aprendizaje”(Enfoque Constructivo) a través de Sistemas de Tele formación.

Por tanto se desea mostrar los Sistemas Tutores Inteligentes (STI) y los entornos que permiten laconstrucción de estos STI`s, con planteamientos didácticos y pedagógicos conducidos por laidea de una tutorización guiada. De modo que no lejos de estos sistemas también están losSistemas que incluyen Tecnología Hipermedia (STH) cuya propuesta se amolda fácilmente conlos planteamientos constructivistas.

Por otro lado y desde una visión no individualizada de la enseñanza, se ven sistemas que incluyencapacidades para un aprendizaje colaborativo. Y por último, nos centramos en ciertos modelosde formación, necesarios en ámbitos de la formación regular, continua, ocupacional, y lasposibilidades de abordarlas desde una perspectiva tecnológica de la Inteligencia Artificial

En nuestro medio están surgiendo estos Sistemas Tutores Inteligentes en todo ámbito arequerimiento de los usuarios pese a que esta tutorización no es tan nueva según: la revistaInformédica [4] “ Gracias a las técnicas de la IA, la enseñanza asistida por computadora recobraun especial interés cerca de los años 80; pese a que el uso de herramientas informáticas en laenseñanza fue desde los años 50. Es en esa época de los 80 que surgieron los Sistemas TutoresInteligentes, los cuales eran procesos desarrollados de enseñanza, que satisfacían en ciertamedida los requerimientos de estos usuarios o estudiantes”.

El desarrollo de sistemas en nuestro medio social, hacen que estemos en un momento clave einmejorable para abordar la demanda formativa y educativa, en cuanto al desarrollo deSistemas Inteligentes Educativos (SIEs).

Es así que se realizaron algunos sondeos de opinión de las preferencias en dos sectores de lacomunidad estudiantil universitaria que son los del área social y los del área técnica matemática,Figura 1. y Figura 2. donde se puede verificar los dos tipos de tutorización a través de TecnologíaHipermedia:

Page 40: Re Vista 2008

Figura Nº 1 Tutorización en el Area Social Figura Nº 2. Tutorización en el Area Técnica

Para poder abordar con cierto grado de adecuación el reto de diseñar y desarrollar SIEs seránecesario contar con: (1) Técnicas informáticas de (I.A)., multimedia, comunicación decomputadores, etc, (2) planteamientos que faciliten la motivación del alumno frente alcomputador, (3) parámetros pedagógicos o de las ciencias de la educación que refuercen yapoyen los procesos de instrucción/aprendizaje que se lleven acabo mediante nuevastecnologías. El proceso de automatizar las actividades de la compleja tarea deenseñar/aprender obligará, en muchos casos, a fusionar planteamientos de las diversasdisciplinas.

Con los SIEs se pretende ayudar, colaborar y/o favorecer los procesos de aprendizaje comoparte integrada en los modelos de enseñanza más actualizados. Es decir, su creación se enfocamás como una herramienta complementaria de la enseñanza/aprendizaje que permiteaumentar la calidad del aprendizaje, que como una herramienta que sustituye en sí todo unsistema clásico de enseñanza/aprendizaje. La utilización de los SIEs implica por parte del docenteuna nueva y más amplia visión de sus actividades de enseñanza.

Dentro de los objetivos del artículo es dar una visión de algunos contextos docentes en los que laInteligencia Artificial (IA) puede favorecer de algún modo la mejora de los procesos deaprendizaje.

Seguidamente se muestra algunas propuestas en la panorámica actual especialmenteapoyadas en los planteamientos didácticos instructivo y constructivo, como la siguiente:

Propuestas individualizadas frente a las cooperativas.Teleformación“Actividad que trata de ofrecer a las personas nuevas posibilidades para llevar a cabo suproceso de aprendizaje continuo utilizando las tecnologías de la información”.

Sistemas de teleformaciónEn los últimos años, los sistemas de relearning han experimentado un gran avance. Se hanplanteado sistemas desde diferentes puntos de vista pedagógicos y didácticos

Enfoque instructivo: Enfoque constructivo: Aprendizaje individualizado Aprendizaje cooperativo

Enfoque instructivo: “seguimiento continuo del profesor hacia el alumno”Sistema Tutor Inteligente (STI)

Ha proporcionado éxitos en la enseñanza (clases particulares) Puede provocar una actitud demasiado pasiva del estudiante y desmotivarlo.

Enfoque constructivo:“Construcción de entornos de aprendizaje donde sea el estudiante el que guíe su propio

proceso de aprendizaje” Sistemas hipermedia

Aprendizaje individualizado: Proporciona al estudiante libertad para: Acceder a la información que desea Acceder a la información de múltiples modos

¿Prefieres cursos

guiados por unprofesor?

¿Prefieres buscaruna

autoformación?

¿Prefieres cursos

guiados por un

profesor?

¿Prefieres buscaruna

autoformación?

Page 41: Re Vista 2008

El estudiante puede desorientarse de tal manera que pierda el rumbo para alcanzarsus objetivos

Necesidad de herramientas complementarias que permitan reorientar al estudianteen el proceso de aprendizaje

Aprendizaje basado en la cooperación: Descarta el sistema uno a uno (sistema-estudiante) El aprendizaje de calidad requiere cooperación Resolución de problemas de forma conjunta Crítica de propuestas propias y ajenas Justificación y explicación de las soluciones dadas y recibidas

Se justifica el aprendizaje desde diferentes perspectivas sin ignorar un seguimiento continuo ymotivador del docente

El proceso de seguimiento tiene una complejidad creciente que depende del númerode estudiantes del grupo

Necesidad de herramientas de ayuda para: Supervisar todas las actividades realizadas por los estudiantes en un momento

determinado Motivar la realización de ciertas actividades con el objetivo de asegurar una solución

debatida, consensuada y más elaborada. La enseñanza virtual sobre la red está proliferando cada vez más, combinando

enseñanza presencial clásica (minimizada al máximo) y no presencialCada vez es más necesario adaptar los sistemas de tele-formación:

Al tipo de conocimiento que se quiere aprender Al tipo de usuario (edad, formación previa, interés en la materia, etc.) Disponibilidad del tiempo del usuario (para realizar actividades síncronas o asíncronas) Disponibilidad en el espacio (para realizar actividades presenciales o a distancia) Siguiendo la máxima de los ingenieros: “a hacer se aprende haciendo”, se está

trabajando en la construcción de:o Sistemas de simulación de actividadeso Entornos de realidad virtual, etc., que permitan formarse una idea más real del

dominio

CaliopeSe basa en el aprendizaje cooperativo asistido por computador; referencia [6]El sistema consta de: Asistente personal para el alumno (LPA): guía el aprendizaje del alumno. Asistente personal para el profesor (TPA): realiza el seguimiento del curso en sus tres fases

(planificación, actuación, evaluación). Plataforma que de soporte a toda la estructura de agentes (AP). Agentes auxiliares. Herramienta para el diseño de cursos (CDT).

Asistente personal genéricoCapacidad de almacenar, aprender y manipular las preferencias del usuario.Capacidad de aprendizaje y comunicación.Consta de dos agentes:a) Interfaz inteligente.

Convierte los requerimientos del usuario en un lenguaje de comunicación entre agentes(ACL) y viceversa.

Gestiona los perfiles asociados a los usuarios (cuestionarios o aprendizaje.). Adaptar el interfaz al perfil del usuario. Filtrar la información según el perfil.

b) Colaboración el agente Buscador.Como gestor de la agenda del usuario. Realizando tareas que pueden ser repetitivas para elusuario; referencia [5].

Maneja los avisos como: los plazos de entrega de trabajos, etc. Organiza las reuniones con el profesor y entre grupos de trabajo. Anuncia la lista de usuarios conectados. Colabora con James.

Page 42: Re Vista 2008

Asistente del alumnoA parte del núcleo básico de un asistente personal contiene un agente especializado:

Orientador: guía en las tareas de aprendizaje de forma individualizada según lascaracterísticas del propio alumno.

Coordinador: coordina el trabajo con otros miembros del grupo (coediciónargumentativa) y/o con el profesor.

Asesor: observa el comportamiento del estudiante para sugerir información adicional yguiarlo con líneas de actuación que complementen el proceso de aprendizaje.

Colabora con Orientador, Buscador, Consejero.Asistente del profesorPermite al profesor hacer un seguimiento del curso, mostrando la evolución de cada alumno yde los grupos de trabajo.Diseñador (Designer): diseña y gestiona el material del curso.

Configurador: Permite al profesor configurar un curso, basándose en el material que yaexista en el servidor o en Internet.

Adaptador: el agente le permite al profesor adaptar los contenidos del curso a laevolución del mismo, añadiendo o eliminando temas, modificando la duración ocontenido de algún tema.

Consejero (Counselor): Vigilante: Permite realizar un seguimiento del progreso tanto individual como colectivo

de los alumnos inscritos en el curso que imparte dicho profesor. Sintetizador: Una vez concluido el curso, sintetiza toda la información que ha recogido

durante el transcurso del mismo, y genera una serie de informes y estadísticas, paraevaluar el buen funcionamiento del mismo.

Evaluador: El agente establece un diálogo entre el profesor y el alumno / grupo dealumnos, para realizar una evaluación.

Agentes auxiliares. Wrapper: Gestiona el material del curso. Interfaz con las bases de datos propias. Interfaz con software desarrollado por terceros. Colabora con Orientador, Diseñador, Consejero. Buscador : Realiza búsquedas en la red. Atiende las peticiones de búsqueda. Monitorización de los proveedores de información. Gestión de la calidad de los proveedores de información. Colabora con Orientador, Buscador, James.

Figura Nª 3. Protocolo de co-ediciónFuente: Adaptación García Martínez [5]

Es necesario un protocolo para la co-edición de documentos entre varias personas.Uno de los principales problemas es garantizar que la comunicación termine. Para ello hay lasopciones:

Un plazo máximo para evaluar la propuesta. Iniciador puede cancelar la propuesta. Obligar a emitir un juicio sobre la propuesta aceptándola o rechazándola. Propuesta: Se emite una propuesta al grupo. Los participantes pueden emitir un juicio

sobre la propuesta aceptándola, rechazándola o iniciando una discusión con el restodel grupo.

Discusión: Permite explicar la propuesta inicial o emitir una contrapropuesta.

Page 43: Re Vista 2008

Explicación: Un agente puede solicitar una explicación de la propuesta para podertomar una decisión.

Aclaración: Es un intercambio de preguntas / respuestas entre agentes. Comentario: Es una simple opinión que no espera contestación.

1. Los componentes fundamentales de un STI

El siguiente esquema representa los cuatro módulos principales que componen un STI:El módulo "Modelo del alumno" contiene el cuerpo de conocimientos que caracterizarán alusuario y lo representa desde perspectivas diferentes como los aspectos psico-sociológicoscaracterísticos que condicionan el proceso de aprendizaje.

El módulo "Pedagógico" contiene representación de conocimiento experto en los ámbitosrelativos a procesos de evaluación, enseñanza-aprendizaje; aprendizaje humano y metodologíade enseñanza. Será el razonador, dónde se almacenará la base de conocimiento y losmecanismos de resolución de problemas. Este módulo es el responsable de dirigir la ejecucióndel módulo "Modelo Didáctico" teniendo en cuenta los datos ingresados desde el módulo"Modelo del alumno".

El módulo "Modelo Didáctico" cumple la función de tutor o profesor y contiene información paradecidir qué tareas se le presentan al estudiante de acuerdo con los objetivos de aprendizajesque el "Módulo Pedagógico" deja establecidos y los mecanismos para corregir el modelo delalumno. Es el encargado de generar los planes instruccionales de cada sesión. Este módulo esresponsable de la activación del módulo "Interface".

Las tareas de aprendizaje son presentadas por el STI a través de una Interface Multimedia. Estadebe estar dotada de múltiples medios de comunicación, eficazmente integrados ycombinados, para lograr una enseñanza adaptada y eficiente. El módulo "Interface Multimedia"contiene los mecanismos de representación (imágenes animadas, imágenes estáticas, sonido,lenguaje oral, lenguaje escrito, reconocimiento de voz, etc.) de informaciones necesarias parala realización de tareas que el sistema propone al sujeto. “El éxito de un programa educativo, sucalidad y efectividad, dependen en gran parte de la riqueza comunicadora que reúna”referencia [10]. Esta cuestión empezó a interesar al campo de la Psicología Cognitiva, existiendorecientes investigaciones que demuestran que es fundamental tener en cuenta algunosprincipios de diseño multimedia para lograr y potenciar los aprendizajes; referencia {7} y [11].

2. Modelado del alumno

La característica principal de los Sistemas Tutoriales Inteligentes (STI) es su capacidad deadaptarse a cada alumno. Entonces, el problema de obtener toda la información posibleacerca del alumno se convierte en el problema principal a la hora de diseñar un tutorinteligente. En efecto, es necesario que en cada momento el STI disponga de unarepresentación del estado actual del conocimiento del alumno, con objeto de poderseleccionar los contenidos a enseñar en el nivel adecuado de dificultad, proponer el problemaapropiado o seleccionar la estrategia tutorial más efectiva en ese momento.

El modelo del alumno es la representación de los procesos mentales que lleva a cabo pararealizar un aprendizaje en un computador. Estos procesos mentales no son modeloscuantitativos, representables por números, sino que son modelos cualitativos. Los modeloscualitativos describen situaciones en el mundo: objetos y procesos en términos de relacionestemporales, espaciales y causales. “En los sistemas de enseñanza se pueden diferenciar tres tiposde modelos: el modelo del diagnostico, el modelo del alumno, y el modelo de comunicaciónque permite interactuar con el alumno” referencia [11].

Page 44: Re Vista 2008

Interactúa con elperfil

Da objetivosde de aprendizaje

Informa perfil delalumno

Corrige

Evalúa y

Ejecuta

Interactúacon tareas

Figura Nª 4. Modelo Tradicional de un STIFuente: Adaptado Revista Iberoamericana de Educación [1]

El modelo de diagnóstico debe inferir que está pensando el alumno y que creencias tiene.Además, describe un estado cognitivo oculto (el conocimiento del estudiante sobre el tema atratar) desde el comportamiento observado.

Para realizar un diagnostico se necesitan unas entradas que son recogidas mediante lainteracción con el alumno, por preguntas directas u otros medios de información, tales como susfichas personales. La salida del modulo de diagnóstico es una base de datos, el modelo delalumno, que refleja con precisión el estado de conocimiento del alumno.

El modelo del alumno se define como los componentes de un STI que representan el estadoactual de un estudiante, pero es también un modelo de simulación, que describe los procesospor los cuales el estudiante recoge información sobre un problema y realiza aserciones, por loque uno puede predecir que hará el alumno próximamente.

-Modelo de superposición (overlay model).

En este enfoque se considera que el conocimiento del alumno es un subconjunto propio delconocimiento del experto. Este enfoque supone que todas las diferencias entre elcomportamiento del alumno y el del experto se explican como una falta de conocimiento delalumno. El modelo funciona bien cuando el principal objetivo del sistema instructor es transmitirel conocimiento experto al alumno. El mayor problema de dichos modelos es que no consideran

Modelo del AlumnoPerfil

Características del AlumnoHistorial

Cuerpo de conocimiento

Conocimiento PedagógicoConocimiento Experto

Proceso de enseñanza-aprendizajeProceso de evaluación

Metodologías de enseñanza

Modelo DidácticoGuía

Acción PedagógicaEstrategias a utilizar

Interacción con el alumno

Interface MultimediaInteligente

ControlaFormas de representación

Estímulos sensoriales

Page 45: Re Vista 2008

que el alumno puede poseer conocimiento que el experto no posee, y por tanto son incapacesde reaccionar ante esta situación. Esta carencia motivó la aparición de otros modelos.

-Modelo diferencial (differential model). Es una modificación del modelo de superposición.

Este modelo divide el conocimiento del alumno en dos categorías: conocimiento que el alumnodebería poseer y conocimiento que no puede esperarse que el alumno tenga. Así, a diferenciadel modelo de superposición, el modelo diferencial reconoce y trata de representarexplícitamente tanto el conocimiento del alumno como las diferencias alumno/experto. Puedeconsiderarse como un modelo de superposición, pero en lugar de sobre el conocimiento delexperto, sobre un subconjunto de éste.

-Modelo de perturbación (perturbation model).

Mientras que el modelo de superposición representa el conocimiento del alumno en términosdel conocimiento “correcto”, el modelo de perturbación lo combina con una representacióndel conocimiento incorrecto.

De este modo, no se considera al alumno como un “subconjunto” del experto, sino que elconocimiento del alumno puede ser potencialmente diferente en calidad y cantidad al delexperto. La técnica más frecuente para implementar un modelo de perturbación es representarel conocimiento experto y añadirle los errores que más frecuentemente cometen los alumnos.

El modelo del alumno es entonces un modelo de superposición sobre este conjunto deconocimiento aumentado (que incluye conocimientos correctos e incorrectos). En la literaturaaparecen dos tipos de errores: errores de concepto (misconceptions) y fallos o erratas (bugs).

- Modelo basado en restricciones. Este modelo es una modificación del modelo desuperposición propuesto por (Ohlsson, 1994) e implementado con éxito en el tutor de SQL de(Mitrovic, 1998; Mitrovic y Ohlsson, 1999) referencia {9}. El dominio de conocimiento se representamediante una serie de restricciones sobre el estado de los problemas, y el modelo del alumno essimplemente una lista de las restricciones que ha violado en el proceso de resolución delproblema. La principal ventaja de este enfoque es su robustez y flexibilidad. Es robusto ya que nodepende de la estrategia que haya seguido el alumno para resolver el problema, y por tantopuede modelar a alumnos que tengan patrones de comportamiento inconsistentes, es decir,que utilicen estrategias diferentes para problemas diferentes. Además, el modelo essuficientemente flexible para reconocer soluciones innovadoras como correctas. La traza delconocimiento consiste en determinar qué sabe el alumno, incluyendo tanto el conocimientocorrecto sobre el dominio como sus errores. La traza del modelo pretende analizar elprocedimiento de resolución de problemas que utiliza el alumno. La traza del modelo resulta útilen sistemas que intentan dar respuesta a peticiones de ayuda del alumno y ofrecerle pistas einformación cuando no sabe seguir resolviendo el problema.

- Modelo de comunicación: De hecho, para poder ayudar al alumno el sistema necesita sercapaz de analizar y criticar la solución en curso y tener una idea de que línea de razonamientoestá siguiendo, para poder determinar una comunicación directa y con precisión.

Conclusiones

Las aplicaciones de la IA en la Educación necesitan del trabajo multidisciplinar, tanto deprofesionales de la Educación, como de Informática, y Psicología que responden en general, ademandas y problemáticas concretas de trabajo. De esta interconexión, la disciplina ha crecidoincesantemente durante estos últimos años, evolucionando desde la perspectiva de laconcepción de crear sistemas, donde se contemplaba solamente la interacción del alumnocon el computador y no así, el entorno social que afecta al aprendizaje del alumno mediante elcomputador.

Estas iniciativas son importantes desde el punto de vista tecnológico, ya que la tecnologíaevoluciona sin parar y es muy importante estudiar sus posibles aplicaciones al área educativa.

Por el contrario, otras aplicaciones ya son una realidad en los colegios desde hace años atrás, y“Se ha demostrado la eficacia de los STIs eficacia frente a otros medios” referencia Anderson yotros [8], y actualmente, el ámbito donde más aplicaciones podemos encontrar de técnicas

Page 46: Re Vista 2008

consideradas “inteligentes” y entornos de aprendizaje colaborativo es en las universidadesvirtuales.

Para terminar este artículo deseo destacar que todas estas aplicaciones tecnológicas no sonmás que recursos que debe ser incorporados en un entorno más amplio y complejo, como es elsistema educativo. Para que estas aplicaciones sean una realidad en las escuelas del futuro sedebe impulsar la formación tanto de profesores como alumnos en el uso y en las posibilidadesde las herramientas tecnológicas, apoyando el desarrollo de políticas institucionales que dirijanla implementación de estas tecnologías desde la escuela.

Bibliografía

1. Revista Iberoamericana de Inteligencia Artificial. No.12 (2001), pp. 5-12. ISSN: 1137-3601. ©AEPIA, http://www.aepia.dsic.upv.es/.

2. Julio Cabero Almenara y Otros; Las nuevas tecnologías en la actividad universitaria,Revista de Medios y educación, 20, 81-100, 2003.

3. Guardia Robles, B. México, D.F. 1997. Asesores Inteligentes para apoyar el Proceso deEnseñanza de Lenguajes de Programación. Tesis de Maestría. Instituto Tecnológico y deEstudios Superiores de Monterrey. Campus Ciudad de México.

4. INFORMEDICA 2004 information & communication technologies in healthcaredevelopment

5. García Martínez, r. Y Britos, P.[2004]. Ingeniería de Sistemas Expertos. Editorial NuevaLibrería.

6. Inteligencia Artificial: un enfoque moderno, Stuart Russell y Peter Norvig, 1995,57. Soledad González, C. (2004). Sistemas inteligentes en la educación: una revisión de las

líneas de investigación y aplicaciones actuales. RELIEVE: v. 10, n. 1, p. 3-22.http://www.uv.es/RELIEVE/v10n1/RELIEVEv10n1_1.htm

8. Anderson de Rezende Rocha, Elmo Melquíades de Souza Júnior, Júlio César Alves. 2003.9. Guardia Robles, B. México, D.F. 1997. Asesores Inteligentes para apoyar el Proceso de

Enseñanza de Lenguajes de Programación. Tesis de Maestría. Instituto Tecnológico y deEstudios Superiores de Monterrey. Campus Ciudad de México.

Enlaces online

10. COLLIDE. Collaborative Learning in Intelligent Distributed Environments. Universtity Duisburg-Essen. http://www.collide.info.

11. ELM-ART. Episodic Learner Model- Adaptive Remote Tutor. http://www.psychologie.unitrier.de:8000/elmart

Page 47: Re Vista 2008

HOJAS DE ESTILO

RESUMEN

Las hojas de estilo, especifican atributos para los elementos de una página Weby además ofrecen un mayor control sobre el aspecto de nuestros documentos.Con ellas podemos controlar muchos atributos tales como colores, márgenes,alineación de elementos, tipos y tamaños de letras, y muchos más.

También se puede emplear hojas de estilo como patrones o páginas maestrasde forma que múltiples páginas puedan tener el mismo aspecto.

Las hojas de estilo, permiten separar el contenido de la forma de presentaciónde una página web, esto sugiere que algunos preparen el contenido y otrosdefinan la presentación o forma de una página web.

René Casilla GutiérrezDocente Investigador

Carrera de Informática - [email protected]

PALABRAS CLAVE: Hojas de Estilo, CSS, LINK.KEYWORDS: Style Sheet, CSS, LINK.

El concepto de hojas de estilo apareció por primera vez en 1996, cuando W3C (World Wide WebConsortium) publicó una recomendación denominada "Hojas de Estilo en Cascada o CSS”. CSSson las siglas de Cascade Style Sheet que traducido significa Hojas de Estilo en Cascada. Sedenominan "Hojas de Estilo en cascada" porque se pueden definir múltiples hojas y los estilospueden aplicarse a todas las páginas (con un sistema predefinido para resolver conflictos).

El consorcio que regula los estándares para la web recomienda separar el contenido y el diseñode una página web. El contenido se genera con HTML ( HyperText Markup Language, Lenguajepara el Formato de Documentos de Hipertexto) y el diseño se realiza mediante Hojas de Estilo [1].

Ventajas de las Hojas de Estilo

Control preciso sobre la presentación, fuentes, colores, fondos y otros efectos tipográficos,lograr una apariencia uniforme de todo el sitio al activar una sola definición de estilo encada página;

Formatea un gran número de páginas con tan sólo modificar un documento es decirpermite cambiar un aspecto en todo el sitio Web con tan sólo editar unas pocas líneas,hacer que los códigos HTML sean más fáciles de leer ya que los estilos se definen porseparado;

Código mas claro, permite que las páginas se carguen más rápido ya que hay menoscantidad de código HTML en cada página.

Desventajas de las Hojas de Estilo

La principal, es el soporte irregular que tienen las CSS por parte de los navegadores (browser).Ciertas propiedades que funcionan en un browser no funcionan en otros. Esto provoca que:

La página web sea visualizada por el lector con un formato no deseado por nosotros;

Las propiedades de posicionamiento o visibilidad, provocan que una parte del contenidode la página web resulte inaccesible desde ciertos navegadores si no son utilizadascorrectamente.

Definición de Estilos mediante CSS

Por ejemplo, para hacer que el color de los elementos 'H1' sea rojo, basta con decir:

H1 { color: red; }Este ejemplo es una regla CSS sencilla. Una regla consta de dos partes principales:

Un selector ('H1') ;

Page 48: Re Vista 2008

Una declaración ('color: red'). La declaración tiene dos partes: una propiedad ('color') y unvalor ('red').

El separador de una declaración es punto y coma (;).

Aplicando Hojas de Estilo en un documento HTML

Se pueden incorporar estilos a un documento HTML de cuatro formas distintas [2]:

Estilo de Documento: se declara en el encabezado, es decir, dentro de las etiquetas<head> y </head>;

Estilo en Línea, tiene el mismo significado que los atributos de las etiquetas HTML.

Estilo Externo, se declara en un archivo separado con la extensión css;

Estilo Importado, permite importar hojas de estilo desde otras hojas de estilo;

El más utilizado es el Estilo Externo que generalmente tiene las siguientes etapas:

El primer paso es crear un archivo de texto que contenga los estilos, cuya extensión es .css, parael ejemplo tendrá una sola línea y se denomina miestilo.css,

h1 { color:red; font-family:impact; }

A continuación, se debe agregar a cada página web un acceso directo al archivo miestilo.cssde la siguiente forma:

<html><head>

<title>Estilo Externo en CSS</title><link rel=”stylesheet” href="miestilo.css" type="text/css">

</head><body>

<h1>Texto de color Rojo y Fuente de letra Impact </h1></body>

</html>

Es una ventaja poder almacenar definiciones de hojas de estilo fuera del documento ya que porlo tanto es posible, al editar el archivo que contiene los estilos, cambiar la apariencia de todaslas páginas Web que utilizan ese archivo de estilos. Este método, ahorra mucho trabajo, porejemplo si quisieras cambiar el color de fondo de un sitio web compuesto por 1000 páginas, unahoja de estilo puede ahorrarte el tener que cambiar de forma manual los 1000 documentosHTML. Con CSS, el cambio se puede llevar a cabo en unos segundos modificando parte delcódigo de la hoja de estilo principal.

Estilos en Cascada

Con la utilización de los distintos métodos de implementación CSS se pueden definir múltiplesestilos. Por tal razón, activar varias hojas de estilo externas da como resultado lo que sedenomina estilo en cascada, una combinación de estilos para diferentes elementos HTML. Sivarios estilos afectan al mismo elemento, se mantendrá solamente el último (en el ejemplo elestilo2.css).

<link rel=stylesheet type="text/css" href="estilo1.css"><link rel=stylesheet type="text/css" href="estilo2.css">

Además, cuando se activan múltiples estilos dentro de una página al utilizar varios métodos deinclusión posibles y algunos estilos entran en conflicto, se aplica el estilo más próximo alcontenido. La prioridad, en orden descendente, es el siguiente:

Estilo en Línea > Estilo de Documento > Estilo Importado > Estilo Externo.

Page 49: Re Vista 2008

Ejemplo Práctico

Un código de página web sin estilos es el siguiente:

La página web sin estilos, visualizada en un navegador (Figura No. 1) es:

Figura No. 1: Página Web sin estilos

Aplicando Estilos a la página web anterior se tiene el siguiente código:

Page 50: Re Vista 2008

El código de la hoja de estilos, miestilo1.css es:

Page 51: Re Vista 2008

La visualización en un navegador de la página con estilos (Ver Figura No. 2) es:

Figura No. 2: Página Web Con estilos

Se nota fácilmente con el ejemplo propuesto, que es posible la separación de contenido yforma de presentación de las páginas web, ya que el código de la página web sin estilos novaría en casi nada en el código de la página web con estilos.

Conclusiones

El uso adecuado de Hojas de Estilo, permite la separación de Contenido y Forma en la creaciónde páginas web y lograr un mejor mantenimiento de las páginas web.

La información de una página web, debe realizarse con elementos HTML básicos que nocontengan atributos de estilo ni forma, para así concentrarse en la elaboración de contenido.

La forma o estilo de una página web debe realizarse con hojas de estilo, para lograr una mejorpresentación y uniformidad en los diferentes documentos HTML de un sitio web.

Referencias Bibliográficas

22. Perdrix, S, P., 2004: Hojas de Estilo y Usabilidad. 96 pags. Ed. Grupo Griho, España.23. Eguíluz, P, J., 2007: Introducción a CSS. 219 pags. Ed. Creative Commons.

Page 52: Re Vista 2008

PROGRAMACION ORIENTADA A COMPONENTES

Celia Elena Tarquino PeraltaDocente – Carrera de Informática UMSA

[email protected]

Carmen Rosa Huanca QuisbertDocente –Carrera de Informática UMSA

[email protected]

RESUMEN

El Desarrollo de Software Basado en Componentes, surge en respuesta a la necesidad de desarrollar proyectos

complejos. Si bien la Orientación a Objetos introdujo, un cambio radical en el proceso de desarrollo de software,este paradigma abrió, nuevas posibilidades para desarrollar software basado en la reutilización de componentes.

La Orientación a Objetos creó un rumbo diferente en el proceso de reutilización a través de la producción decomponentes genéricos, fáciles de integrar, distribuidos e independientes de las plataformas de desarrollo,denominada Desarrollo de Software basado en Componentes.

PALABRAS CLAVE: Desarrollo de Software Basado en Componentes, Programación Orientada aComponentes, Programación Orientada a Servicios, Paradigmas de la Programación,Programación, Paradigma.

KEYWORDS: Component Based Software Development, Bussines Component Object OrientedProgramming, Paradigm, Programming.

1. Introducción

A pesar de la aparente evolución que ha sufrido la programación a lo largo de los últimos 40años, el desarrollo de una aplicación continúa siendo una actividad costosa en tiempo y dineroy los errores en el producto final son frecuentes.

La reutilización de componentes de software es un problema latente, a pesar de la multitud delibrerías, toolkits y frameworks existentes. Este proceso esta inspirado en la manera en que seproducen y ensamblan componentes en la ingeniería de sistemas físicos. La aplicación de esteconcepto al desarrollo de software no es nueva. Las librerías de subrutinas especializadas,comúnmente utilizadas desde la década de los setenta, representan uno de los primerosintentos por reutilizar software.

El desarrollo de software basado en componentes (DSBC), es una tecnología que ha empezadoa demostrar que ofrece ventajas en tiempo de desarrollo y reducción de costos en el proceso[1]de desarrollo de software.

2. Antecedentes

¿Qué es un paradigma?

Un paradigma es un determinado marco desde el cual miramos el mundo, lo comprendemos, lointerpretamos e intervenimos sobre él. Abarca desde el conjunto de conocimientos científicosque imperan en una época determinada hasta las formas de pensar y de sentir de la gente enun determinado lugar y momento histórico.

Los paradigmas son un patrón o modelo; una serie de reglas los cuales establecen límites,explican como resolver problemas dentro de los mismos límites. Los paradigmas influyen en lamanera de ver el mundo.

A paradigm is a constellation of concepts, values, perceptions and practices shared by acommunity which forms a particular vision of reality that is the basis of the way a communityorganises itself [2].

¿Qué es un paradigma de programación?

Un paradigma de programación es un modelo básico de diseño y desarrollo de programas, es

Page 53: Re Vista 2008

una colección de modelos conceptuales que juntos modelan el proceso de diseño ydeterminan, al final, la estructura de un programa.

Los paradigmas de programación nos indican las diversas formas que, a lo largo de la evoluciónde los lenguajes, han sido aceptadas como estilos para programar y para resolver los problemaspor medio de una computadora.

Clasificación de los Paradigmas de Programación

Floyd describió tres categorías de paradigmas de programación:

a) Los que soportan técnicas de programación de bajo nivel (ej.: copia de ficheros frenteestructuras de datos compartidos)

b) Los que soportan métodos de diseño de algoritmos (ej.: divide y vencerás,programación dinámica, etc.)

c) Los que soportan soluciones de programación de alto nivel, como los descritos en elpunto anterior

Floyd también señala lo diferentes que resultan los lenguajes de programación que soportancada una de estas categorías de paradigmas. Se agrupan en tres categorías de acuerdo con lasolución que aportan para resolver el problema

a) Solución procedimental u operacional. Describe etapa a etapa el modo de construir lasolución. Es decir señala la forma de obtener la solución.

b) Solución demostrativa. Es una variante de la procedimental. Especifica la solucióndescribiendo ejemplos y permitiendo que el sistema generalice la solución de estosejemplos para otros casos. Aunque es fundamentalmente procedimental, el hecho deproducir resultados muy diferentes a ésta, hace que sea tratada como una categoríaseparada.

c) Solución declarativa. Señala las características que debe tener la solución, sin describircómo procesarla. Es decir señala qué se desea obtener pero no cómo obtenerlo.

Autores clasifican los paradigmas de modos similares, destacando el imperativo, el orientado aobjetos, el funcional y el lógico. Algunos mencionan paradigmas heurísticos, concurrentes,procedimentales, declarativos y demostrativos.

3. Paradigma Orientado a Componentes

La Programación Orientada a Componentes (POC) [1] aparece como una variante natural dela programación orientada a objetos (POO) para los sistemas abiertos, donde la POO presentaalgunas limitaciones; por ejemplo, la POO no permite expresar claramente la distinción entre losaspectos computacionales y composicionales de la aplicación, no define una unidad concretade composición independiente de las aplicaciones (los objetos no lo son, claramente), y defineinterfaces de demasiado bajo nivel como para que sirvan de contratos entre las distintas partesque deseen reutilizar objetos.

La POC nace con el objetivo de construir un mercado global de componentes software, cuyosusuarios son los propios desarrolladores de aplicaciones que necesitan reutilizar componentes yahechos y probados para construir sus aplicaciones de forma más rápida y robusta.

Las entidades básicas de la POC son los componentes, cajas negras que encapsulan ciertafuncionalidad y que son diseñadas para formar parte de ese mercado global de componentes,sin saber ni quien los utilizará, ni cómo, ni cuándo. Los usuarios conocen acerca de los serviciosque ofrecen los componentes a través de sus interfaces y requisitos, pero normalmente niquieren ni pueden modificar su implementación.

3.1 Componente

Definición 1 Un componente es una unidad binaria de composición de aplicaciones software,que posee un conjunto de interfaces y un conjunto de requisitos, y que ha de poder serdesarrollado, adquirido, incorporado al sistema y compuesto con otros componentes de formaindependiente, en tiempo y espacio[1].

Page 54: Re Vista 2008

Definición 2 Una implementación que(a) Realiza un conjunto de funciones relacionadas(b) Puede ser independientemente desarrollado, entregado e instalado(c) Tiene un conjunto de interfaces para los seservicios requeridos.(d) Permite tener acceso a los datos y al comportamiento sólo a través de sus interfaces(e) Opcionalmente admite una configuración controlada.

Definición 3 Un componente software es un fragmento de un sistema software que puede serensamblado con otros fragmentos para formar piezas mas grandes o aplicaciones completas

Definición 4: Para Booch, un componente reutilizable de software es un módulocohesivo y con poco acoplamiento que denota una sola abstracción.software reutilizables son elementos autocontenidos, claramente identificables que describeny/o realizan funciones específicas, tienen interfaces claras, docupropósito de rehúso bien definido.

Definición 5: Un componenteespecificadas y dependencias de contexto explícitas. Un componente de software puede serdesarrollado independientemente y utilizado por terceras partes para integrarlo mediantecomposición a sus sistemas. Los componentes son para crear software utilizando composición,por eso es esencial que sean independientes y que se presenten en formato binario, permitiendoasí distintos vendedores e integración robusta

Un componente no es un objetoUn componente puede tomar la forma de un archivo ejecutable o una biblioteca dinámica queusualmente cobra vida a través de objetos.bibliotecas de procedimientos. Sin embargo, los objetos, con sus características deencapsulación y polimorfismo, facilitan la construcción e integración de componentes.

Los componentes de software son unidades ejecutables de producción independiente,adquisición e implementación que pueden formar parte de un sistema funcional. Para permitir lacomposición, un componente de software se adhiere a un modelo de componentes particular yapunta a una plataforma de componentes particular.

Existe un mayor mercado deservidor son desarrollados localmente.

3.2 Objetivo del Desarrollo de Software Basado enComponentes

Construir un mercado global de componentescuyos usuarios son los propios desarrolladores deaplicaciones que necesitan reutilizar componentesya hechos y probados para construir susaplicaciones de forma más rápida y robusta o quequieren añadir funcionalidad dependiente deterceros.

3.3 Características de los componentes

Un componente debe tener las siguientescaracterísticas:

Es una unidad software compiladareutilizable, con una interfaz bien definida.

Se distribuye en un único paqueteinstalable que contiene en sí todo lonecesario para su funcionamiento, conninguna o muy pocas dependencias conotros componentes o librerías

Puede estar implementado en cualquier

Una implementación que [3]:(a) Realiza un conjunto de funciones relacionadas(b) Puede ser independientemente desarrollado, entregado e instalado(c) Tiene un conjunto de interfaces para los servicios proporcionados y otro para los

(d) Permite tener acceso a los datos y al comportamiento sólo a través de sus interfaces(e) Opcionalmente admite una configuración controlada.

Un componente software es un fragmento de un sistema software que puede serensamblado con otros fragmentos para formar piezas mas grandes o aplicaciones completas

: Para Booch, un componente reutilizable de software es un módulocohesivo y con poco acoplamiento que denota una sola abstracción. Los componentes desoftware reutilizables son elementos autocontenidos, claramente identificables que describeny/o realizan funciones específicas, tienen interfaces claras, documentación apropiada y unpropósito de rehúso bien definido.

Un componente es una unidad de composición con interfaces contractualesespecificadas y dependencias de contexto explícitas. Un componente de software puede ser

ndientemente y utilizado por terceras partes para integrarlo mediantecomposición a sus sistemas. Los componentes son para crear software utilizando composición,por eso es esencial que sean independientes y que se presenten en formato binario, permitiendoasí distintos vendedores e integración robusta[5].

Un componente no es un objeto, a diferencia de los objetos, los componentes no tienen estado.Un componente puede tomar la forma de un archivo ejecutable o una biblioteca dinámica que

a a través de objetos. Los primeros componentes conocidos fueron lasbibliotecas de procedimientos. Sin embargo, los objetos, con sus características deencapsulación y polimorfismo, facilitan la construcción e integración de componentes.

e software son unidades ejecutables de producción independiente,adquisición e implementación que pueden formar parte de un sistema funcional. Para permitir lacomposición, un componente de software se adhiere a un modelo de componentes particular y

a una plataforma de componentes particular.

de componentes para el lado cliente, en cambio paraon desarrollados localmente.

del Desarrollo de Software Basado en

Construir un mercado global de componentescuyos usuarios son los propios desarrolladores deaplicaciones que necesitan reutilizar componentesya hechos y probados para construir sus

ás rápida y robusta o quequieren añadir funcionalidad dependiente de

Características de los componentes

Un componente debe tener las siguientes

Es una unidad software compiladareutilizable, con una interfaz bien definida.

distribuye en un único paqueteinstalable que contiene en sí todo lonecesario para su funcionamiento, conninguna o muy pocas dependencias conotros componentes o libreríasPuede estar implementado en cualquier

Figura No. 1: Mercado compartido en ComponentSource

(b) Puede ser independientemente desarrollado, entregado e instaladorvicios proporcionados y otro para los

(d) Permite tener acceso a los datos y al comportamiento sólo a través de sus interfaces

Un componente software es un fragmento de un sistema software que puede serensamblado con otros fragmentos para formar piezas mas grandes o aplicaciones completas[4].

: Para Booch, un componente reutilizable de software es un módulo lógicamenteLos componentes de

software reutilizables son elementos autocontenidos, claramente identificables que describenmentación apropiada y un

una unidad de composición con interfaces contractualesespecificadas y dependencias de contexto explícitas. Un componente de software puede ser

ndientemente y utilizado por terceras partes para integrarlo mediantecomposición a sus sistemas. Los componentes son para crear software utilizando composición,por eso es esencial que sean independientes y que se presenten en formato binario, permitiendo

diferencia de los objetos, los componentes no tienen estado.Un componente puede tomar la forma de un archivo ejecutable o una biblioteca dinámica que

os primeros componentes conocidos fueron lasbibliotecas de procedimientos. Sin embargo, los objetos, con sus características deencapsulación y polimorfismo, facilitan la construcción e integración de componentes.

e software son unidades ejecutables de producción independiente,adquisición e implementación que pueden formar parte de un sistema funcional. Para permitir lacomposición, un componente de software se adhiere a un modelo de componentes particular y

, en cambio para el lado del

: Mercado compartido en ComponentSource

Page 55: Re Vista 2008

lenguaje de programación y ser utilizado también para el desarrollo en cualquierlenguaje de programación.

Normalmente es un producto comercial de calidad, realizado por un fabricanteespecializado. Por supuesto pueden existir componentes gratuitos.

Un componente puede ser implementado mediante cualquier lenguaje deprogramación, aunque los lenguajes orientados a objetos son especialmenteadecuados para este fin.

3.4 Diagramas UML

Los diagramas UML permiten la representación de: Componentes, Interfaces, paquete y nodoscomo se observa en las figuras a), b), c) y d).

a) Componente b) Interfaces c) Paquete d) Nodo

Figura No.2: Diagramas UMLFuente: Espeso Martinez Pedro Javier, 2002

3.5 Arquitectura Software de una aplicación basada en componentes

Una aplicación esta constituida por un número de componentes específicos, que hacen uso deotros muchos componentesprefabricados que se ensamblan entre sípara proporcionar los servicios que senecesitan en la aplicación.En la tecnología de componentes lainterfaz constituye el elemento básico deinterconectividad. Cada componentedebe describir de forma completa lasinterfaces que ofrece, como las interfacesque requiere para su operación. Y debeoperar correctamente conindependencia de los mecanismosinternos que utilice para soportar lafuncionalidad de la interfaz.

3.6 Características de la Programación Orientada a Componentes

Lo más relevante de la tecnología de programación basada en componentes es lamodularidad, la reusabilidad y componibilidad y en todos ellos coincide con la tecnologíaorientada a objetos de la que se puede considerar una evolución.

Principios básicos compartidos con Orientación a Objetos

Integración de datos y funciones: un objeto software consiste en una serie devalores (estado) y las funciones que procesan esos datos.

Encapsulamiento: el cliente de un objeto software no tiene conocimiento decómo son almacenados los valores en el interior del objeto, ni como seimplementan las funciones.

Identidad: cada objeto software tiene una identidad única.

Figura No. 3: Componentes en una AplicaciónFuente: Espeso Martinez Pedro Javier, 2002

Page 56: Re Vista 2008

Polimorfismo: las interfaces se describen por separado de la implementación,de modo que un código que requiera una determinada interfaz puede utilizarcualquier componente (objeto) que implemente dicha interfaz. Esto permiteuna gran flexibilidad en el diseño de aplicaciones.

Distribución: Los componentes residen en diversas máquinas integrantes de unared.

Heterogeneidad: Se ejecutan en diferentes plataformas, sistemas operativos,escritos en diferentes lenguajes, diferentes desarrolladores.

Independencia de la extensibilidad: Modificables y ampliables añadiendonuevas componentes.

Dinamismo: Sujetos a evolución por ampliación, desaparición, sustitución decomponentes o reconfigurando las relaciones entre ellos.

Figura No. 4: Evolución de la POO a la POC

Fuente: Espeso Martinez Pedro Javier, 2002

Los componentes presentan una serie de ventajas frente a las tecnologías orientadas a objetos: Componentes desarrollados con diferentes lenguajes de programación son compatibles

y pueden ejecutarse dentro de una misma aplicación. Los componentes puede tener su propio estado persistente. Las funciones de la interfaz no tiene que estar necesariamente implementadas

utilizando técnicas orientadas a objeto. Los componentes requieren mecanismos de empaquetamiento que deben ser más

robustos que los de los objetos. Normalmente las instancias de componentes se instalan en un contenedor, que les

proporciona contexto local. Mientras el componente aporta la simplemente lafuncionalidad, es el contenedor quien se encarga de mapear las estructuras de datosdesde el espacio lógico hasta el espacio físico de memoria en la máquina sobre la quese está ejecutando.

Los componentes integran servicios completos, lo que minimiza las interconexiones entremódulos.

La tecnología de componentes eshabitual en otras ingenierías, y suéxito se basa en:

Una especificacióncompleta hacia el usuario.Tanto de los servicios queofrece como de losservicios externos querequiere para operarcorrectamente.

Múltiples interfaces en losque se especifican losdiferentes modos de

Page 57: Re Vista 2008

acoplo que admite, así como los mecanismos de acoplo y sus compatibilidades. Un empaquetamiento robusto, de

fácil manipulación y quegarantice un funcionamientofiable e independiente de otros componente que operen junto a él.

Una catalogación estándar que simplifique su localización, permita su sustitución porotros equivalentes y que facilite el desarrollo de múltiples fuentes que garantice elsoporte del producto.

Debe ofrecer mecanismos de validación en el entorno de trabajo del usuario ycapacidad de configuración y sintonización de acuerdo con las necesidades de laaplicación.

La arquitectura interna, las peculiaridades de su implementación y la tecnología que lo soporta,sólo debe interesar al diseñador del componente y a los que sean responsables de sumantenimiento y evolución. Ver Figura 5.

3.7 Modelos de Desarrollo

Un entorno de desarrollo orientado a componentes debe facilitar la instalación de componentesy su configuración e integración en una aplicación.

La metodología de desarrollo basada en componentes, ha adquirido el respaldo de compañíasimportantes como Microsoft y Sun que han propuesto sus propios modelos de desarrollo. Los máspopulares actualmente son COM+/DCOM, CORBA y Java Beans[19].

COM y DCOM. El Component Object Model (COM), es la propuesta de Microsoft en materia decomponentes, [10].COM es esencialmente un esquema de integración, de modo que los componentes que se

construyen para trabajar bajo este modelo, deben describir su comportamiento bajo lasconsideraciones de este esquema, el cual es popularmente conocido como estándar binario.Este estándar permite que las interfaces de los componentes se presenten a los clientes como unconjunto de apuntadores a tablas en memoria, llamadas tablas virtuales de funciones. Elllamado de funciones entre componentes se realiza utilizando estos apuntadores, ocultándoseasí detalles de implementación, lo cual permite que componentes que estén escritos endiferentes lenguajes de programación, como: C++, Small Talk, Ada, VisualBasic, Delphi o PowerBuilder, puedan comunicarse.Distributed COM, DCOM, es una extensión de COM que se implementa como una respuesta a lanecesidad de aplicaciones distribuidas, proporcionando capacidades para el trabajo concomponentes que residen en diferentes computadoras. DCOM utiliza como mecanismo decomunicación los llamados a procedimientos remotos (RPC), los cuales son transparentes para elcliente.Tanto COM como DCOM son modelos que inicialmente fueron implementados para trabajarbajo ambientes Windows y Windows NT, sin embargo actualmente existen versiones para operarcon MacOS y UNIX.

CORBA, Common Object Request Broker Architecture, es una infraestructura abierta para elmanejo de objetos distribuidos que esta siendo estandarizada por el Object ManagementGroup (OMG), [11]. En CORBA, un objeto se considera como una instancia de una clase queencapsula operaciones, atributos y excepciones.CORBA permite que los objetos puedan comunicarse con otros sin necesidad de preocuparsepor donde están localizados o por quien han sido diseñados. Para esto, se han consideradoalgunos elementos importantes como: un lenguaje de definición de interface (IDL) y una API queprovee al programador la interacción cliente-servidor entre componentes con laimplementación especifica de un Object Request Broker (ORB).Un componente expone un conjunto de interfaces, implementadas utilizando un lenguaje dedefinición llamado OMG Interface Definition Language (OMG IDL), mismas que definen lasoperaciones de los objetos. Actualmente existen estándares para el mapeo de un IDL alenguajes de programación como C, C++, Java, Smalltalk, o Ada.

JavaBeans. Actualmente uno de los modelos de desarrollo de software basado encomponentes con mayor aceptación, es el propuesto por Sun Microsystems [12].Java Beans es una API implementada para la construcción y uso de componentes escritos enJava, los cuales son comúnmente llamados Beans. Esta API es proporcionada por SUN como una

Figura No. 5: Arquitectura interna de un componenteFuente: Espeso Martinez Pedro Javier, 2002

Page 58: Re Vista 2008

herramienta visual que permite la carga, utilización, modificación, así como tambiéninterconexión de Beans, con el propósito de construir nuevos Beans, applets o bien aplicacionescompletas.Un Bean es un elemento de software sobre el cual solo se conoce su función, es preciso contarcon algún mecanismo que permita la comunicación con él. En este modelo, ese mecanismo decomunicación consiste en una interfaz, a partir de la cual, se puede acceder a los elementosprincipales de un Bean: sus métodos, propiedades y eventos. Los eventos son utilizados por elBean como un medio de comunicación con otros Beans.La característica más importante de un Bean es que el componente este escrito en Java,además de soportar las siguientes capacidades:

a) Introspección, mecanismo mediante el cual se pueden descubrir las propiedades,métodos y eventos que un Bean contiene.

b) Soporte a propiedades, la posibilidad de conocer las características de los atributos y lacapacidad de poder ser modificados a tiempo de diseño.

c) Soporte a eventos, actividades como generación, escucha o respuesta a eventos conel propósito de comunicarse con otros Beans.

d) Persistencia, capacidad para salvar y recuperar las especializaciones realizadas a unBean.

3.8 Metodología de desarrollo de aplicaciones basado en componentes

El con junto de actividades queintervienen en el proceso semuestra en la siguiente Figura:

Requerimientos: Obteneruna idea clara y concretade los requerimientos queexige la aplicación.

Especificación:Identificación, interacción yespecificación decomponentes.

Aprovisionamiento: A partirde las especificaciones seimplementa lafuncionalidad de loscomponentes.

Ensamblado: se conectan los componentes unos con otros a través de sus interfaces paralograr la funcionalidad requerida.

Test: se comprueba el correcto funcionamiento de las aplicaciones. Despliegue: se instalan las aplicaciones probadas en el entorno de trabajo donde van a

llevar a cabo su funcionamiento.

3.9 Especificación y Diseño Funcional de Componentes

En la figura se presenta las fases para la construcción de un componente

Interface define losdiferentes aspectos delcomportamiento de uncomponente relativos a unmismo dominio que se ofrecencomo una unidad o servicioque puede ser ofrecido deforma intercambiable pordiferentes componentes.

Especificación de uncomponente es un descriptordel comportamiento de unconjunto de objetoscomponentes y define una

unidad de implementación.

Figura No. 6: Fases de la metodologíaFuente: Espeso Martinez Pedro Javier, 2002

Page 59: Re Vista 2008

Figura No.7: Fases de la construcción de un componenteFuente: Espeso Martinez Pedro Javier, 2002

Implementación de un componente es una realización de una especificación decomponente que puede ser utilizado en el desarrollo de una aplicación.

Componente instalado o desplegado es una copia de una implementación de uncomponente que está registrado en algún entorno de ejecución. Esto capacita alentorno de ejecución para identificarlo y usarlo cuando se genere una instancia delcomponente o se invoque alguna de sus operaciones.

Componente objeto es una instancia ejecutable de un componente instalado. Es unconcepto de ejecución. Es un objeto con una única identidad y con su propia instanciade datos y estado.

4. Discusión de resultados

El desarrollo de la aplicación de prueba esta en JavaBeans, como la tecnología decomponentes de Java, los componentes de JavaBeans se conocen simplemente como beansque es una clase de objetos, con ciertas características especiales:

Es una clase pública que implementa la interfaz Serializable Expone una serie de propiedades que pueden ser leídas y modificadas desde el entorno

de desarrollo. Expone una serie de eventos que pueden ser capturados y asociados a una serie de

acciones.

Diagrama de paquete de la aplicación. Muestra los niveles de la aplicación de prueba

Figura No. 8: Diagrama de Paquetes

Diagrama de Componentes

El componente de la aplicación considera a los datos y las acciones asociadas a un objeto delcomponente con el Mouse.

Titulo: texto que se despliega en el objetoColor: Asocia un color al objetoMargin x,y: Posición del objeto en la interfazVector: Acciones o eventos asociados alobjeto

Acción Ingresar al objetoAcción Salir del objetoAcción ClickAcción Presionar

Aunque los beans han sido pensados para ser utilizadosdesde el entorno de desarrollo, también pueden serutilizados directamente.

La apariencia y comportamiento de un bean sondeterminados por sus propiedades. Una propiedadqueda identificada por operaciones con lasiguiente forma: public <TipoProp> <NombreProp>() { ... } (Ver Figura ).

Este bean es utilizable como cualquier otra clase de Java. En principio no tiene ningunacualidad extraordinaria. Los valores de las propiedades pueden se modificados mediante lasoperaciones set correspondientes

Interfaz de laAplicación

ComponenteMiBoton

Java

MiBotonInterfaz

Figura No. 9: Diagrama de los componentes de laaplicación

Page 60: Re Vista 2008

Figura No. 11: Código Java Componente y la aplicación

La forma habitual de distribución de un bean es en un fichero jarMiBoton.class y se puede instalar el bean en el netBeans (o cualquier otro entorno deJava):

Figura No. 11: Código Java Componente y la aplicación

La forma habitual de distribución de un bean es en un fichero jar, MiBoton.jar manifest.tmpinstalar el bean en el netBeans (o cualquier otro entorno de

.jar manifest.tmpinstalar el bean en el netBeans (o cualquier otro entorno de desarrollo

Page 61: Re Vista 2008

5. Conclusiones

El Desarrollo de Software Basado en Componentes (DSBC) es importante a momento de crearaplicaciones complejas y útiles para establecer componentes acorde a necesidades de unentorno.El DSBC esta evolucionando en el mundo del desarrollo de software, y los proveedores detecnologías que utilizan y proporcionan soporte al DSBC son pocas y no están difundidas en elmercado.Con base en todo lo expuesto surge la necesidad no sólo de encontrar un lenguaje común deespecificación referente al tema de DSBC entre desarrolladores y los usuario finales, sino tambiénla necesidad de buscar métodos que permitan el acercamiento y faciliten la utilización de losComponentes de Software a cualquier tipo de usuario que desee integrarlos a los desarrollos desoftware.

6. Agradecimientos

Al Instituto de Investigaciones en Informática y nuestra casa superior de estudios UniversidadMayor de San Andrés (UMSA). Además a estudiantes que apoyan de manera activa a lainvestigación, a Univ. William Ricardo Yujra Huanca y Univ. Roger Gonzales Aparicio.

7. Referencias

1. Szyperski Clemens, 1998: Component Software Beyond Object – Oriented Programming2. Kuhn Thomas , 1962: Structure of Scientific Revolutions3. IBM-WebSphere, 2001: Componente IBM4. Brown, 1999 : Componente SEI5. European Conference on Object Oriented Programming (ECOOP), 1996.6. Fuentes Lidia, Troya José M., Vallecillo Antonio, 2003: Desarrollo de Software Basado en

Componentes.7. Montevilva Jonás A., Arape Nelson, Colmenares Juan A. 2003: Desarrollo Basado en

Componentes.8. Velasco Elizondo Perla, 2001: Prueba de Componentes de Software Basadas en el Modelo

de JavaBeans, pp. 6-159. Pressman Roger. 1997: Ingeniería de Software un enfoque practico, p 474-481.

10. Component Object Model, 2000: http://www.microsoft.com/com11. CORBA, 2000: http://www.corba.org12. Java Beans.1997: http:///java.sun.com13. Vanhelsuwe , L.1998: Mastering Java Beans, Sybex, Inc.14. Ferrke Peter y Loos Peter 2002: Specification of Business Components . Objects,Components,

Architectures, Services and Aplications for a Networked World15. Richter Jeffrey, 2002: Microsoft .NET Framework Delivers the Platform for an Integrated,Service.16. Espeso Martínez Pedro Javier, Diseño de Componentes de Software de Tiempo Real.17. Fuentes Lidia, Troya Jose M., Vallecillo Antonio, Desarrollo de Software Basado en

Componentes18. Casal Julio, Desarrollo de Software Basado en Componentes.19. Garcia Perez Felipe, 2005: Desarrollo de componentes de software local y distribuido bajo la

plataforma COM – SOAP que encapsule las operaciones matriciales de MatLab.20. Espeso Martinez Pedro Javier, 2002: Diseño de componentes software de tiempo real

Page 62: Re Vista 2008

TEORIA COMPUTACIONAL EN SISTEMA MULTI-AGENTE

RESUMENLa teoría computacional en sistema multi-agente esta entendida aexpresar una formalización de fenómenos que envuelven a lacreencia, comunicación, acciones, mensajes, reglas, y a estaspropiedades se agregan conceptos abstractos de modelos, sistema,módulos que contextualizan a los sistema multi- agente.

La notación formal expresa que los sistema multi-agente involucranestructuras formales de agentes y modelos de ejecución.

Elizabeth L. Garcia EscalanteDocente – UMSA

[email protected]

PALABRAS CLAVE: Sistema Multi-Agente. Agente. Modulo Agente. Modelo de Sistema Multi-Agente. Modelo de Ejecución.

KEYWORDS: Multi-Agent System. Agent. Module Agent. Model of Multi-Agent System. ExecutionModel.

1.- INTRODUCCIÓN

Un sistema multi-agente esta formado por múltiples elementos computacionales queinteractúan, conocidos como agentes. Los agentes son sistemas computacionales queprincipalmente tienen dos capacidades importantes. La primera, es que tienen al menos algunacapacidad de acción autónoma para decidir ellos mismos lo que requieren hacer para cumplirobjetivos. La segunda, es la capacidad de interactuar con otros agentes no simplemente paraintercambiar datos, sino que se tienen analogías de tipo social, actividades que los humanosutilizan a diario, como: cooperación, coordinación, negociación, y otros más.

Gerhard Weiss (1999: 465) expresa que la noción de agentes permite un diseño de módulos queequilibran dos aspectos, el nivel de especialidad que modela una descomposición funcionaldetallada para diseñar agentes con funciones básicas especializados y el nivel de autonomíaque integra a un agente un conjunto significativo de funciones requeridas para la aplicaciónentera pero limitada en el alcance. En efecto, la idea de agentes representa un alto nivel demodularidad que es utilizado en las ciencias de la computación.

La organización del presente articulo, presenta el concepto formal de sistema multi-agentedonde se detalla las funciones de los módulos ambiente y agente. Así también se incluye elenfoque de la teoría computacional donde se focaliza la comprensión de 3 consideracionescomo son la definición de la estructura del agente, estructura del sistema y finalmente tipos demodelos de ejecución.

2.- SISTEMA MULTI-AGENTE

Wooldridge M. y sus colegas (2006: 2), expresan que, un sistema multi-agente está compuestode dos módulos2: (1) un módulo describe a los agentes por lo que se refiere a las acciones queellos ejecutan y (2) describe el ambiente que se puebla por estos agentes, y en particular losefectos a realizar ciertas acciones.

Un módulo de ambiente Env es un conjunto de Sistema de la Transición etiquetado (SLTS) es

una tupla ,P,,Ac,S AcA donde:

1. S es un conjunto de estados.2. Ac es un conjunto finito de acciones.3. Para cada A Ac, A es una relación sobre S.

4. P es un conjunto de variables proposicionales5. π: (S x P)--> {1; 0} es una función de la interpretación que asigna cada estado y cada

variable de la proposición en un valor de verdad.

2 Razonando acerca de Acciones y Cooperación (Reasoning about Action and Cooperation). Disponible enhttp://www.csc.liv.ac.uk/~mjw/.

Page 63: Re Vista 2008

Dado un conjunto de acciones atómicas Ac, el conjunto de expresiones de acción estadefinido por la gramática: ::= a | | donde a Ac. Para interpretar

esta acción, se define una relación entre los subconjuntos de Ac y la expresión de

acción. y es leído como ‘la acción concurrente A es de tipo , ó ' es verdad

de A'.

Dado un conjunto de acciones Ac y un conjunto de las variables proposicionales P , el

lenguaje de la lógica del ambiente está dado como: ::= p | | [ ] , donde p

P, es una expresión del lenguaje de acciones [Wooldridge et al, 2006: 3].

Sea Env = ,P,,Ac,S AcA es un SLTS, y s es un estado en S. Las sentencias del

lenguaje de la lógica de ambiente se definen inductivamente como sigue:

1. Env, s |= e p si y solo si (s,p) = 1

2. Env, s |= e 1 2 si y solo si Env, s |= e 1 y Env, s |= e 2

3.- Env, s |= e si y solo si Env, s |= e

4. Env, s |= e [ ] si y solo si para todo A Ac y s’ S, si A |= p y s A s’

entonces Env, s’ |= e

La lógica ambiente ( |= e ) tiene los siguientes axiomas [Wooldridge et al, 2006: 3]:

1. Todo axioma de la lógica proposicional

2. [ ] ( ) ([ ] [ ] ) para cada (distribución)

3. Todo axioma de la forma [ ] [ ] , si |- en lógica

proposicional

4. ( [ ] [ ] ) [ ] (aditividad)

5. [ ] si es consistente en la lógica proposicional (serialidad)

6. [ ]

La lógica del ambiente es valido y completo con respecto al modelo ambiental |- e si y

solamente si Env |= e para cada modelo de ambiente Env

Esta lógica dinámica servirá como el módulo de ambiente en un sistema multi-agente.

Ahora se procede a definir agentes que poblarán este ambiente mediante el modulo

agente [Wooldridge et al, 2006: 3].

Dado un conjunto de agentes Ag y un conjunto de acciones Ac, un modulo de agente esuna tupla (Ag, Ac, Act), donde act es una función Ag P(Ac) que asigna para cadaagente i un subconjunto act(i) de acciones desde Ac.

Sea la tupla (Ag, Ac, Act) del módulo de los agentes, sea G Ag un conjunto de

agentes. La capacidad para las acciones del agente se define como: (Ag, Ac, Act) |=

G si y solamente si este es un A act(G) tal que para todo B act (Ag \ G) toma

que A U B |= p

La lógica de la coalición para las acciones está dada por los axiomas de la lógicaproposicional, y modus ponens. (Se denota la deribilidad como |- a) [Wooldridge et al, 2006:4]

Page 64: Re Vista 2008

1. G , para todo G Ag

2. G G\Ag

3. G G si |- en la lógica proposicional

4. ( 1G 2G ) 21UGG ( ) para todo G1, G2 Ag tal que

G1 G2 = 0

5. G a V i G }{i a, para todo G Ag y atómico a Ac

6. ( G G ) G ( ) si y no son acciones

comunes atómicas

7. G a G a atómico para a Ac

8. G V { G Λ | es un conjunto de literales tal que Λ }

La lógica de la coalición para las acciones es valida y completa con respecto al modelodel agente.

Formalmente, un sistema del multi-agente es un ambiente junto con un módulo del agente quecomparte su repertorio de acción [Wooldridge et al, 2006: 6].

Un Sistema Multi-agente MaS es una tupla act,Ag,,P,)(,Ac,S AcA donde:

1. ,P,)(,S AcA'A es un módulo ambiente

2. act,Ag,Ac es un módulo agente

Por lo tanto, la habilidad esta dada por: MaS, s |= m G si y solo si es un conjunto de

acciones A act (G, s) tal que para todo B act( Ag \ G) y para todo estado t, si s BA t,

entonces MaS, t |= m

Dado un sistema multi-agente MaS y un estado s de su ambiente: MaS, s |= m G si y

solamente si existe una expresión de acción con MaS, s |= m G y MaS, s |= m [ ] .

La lógica de cooperación con acciones esta dado por:

1.- los axiomas y reglas de la lógica de ambientes2.- los axiomas y regla de la lógica de los agentes

3. ( G [ ] ) G para cada

4. G V { G [ ] | es una conjunción de conjunto de acciones

literales donde están las acciones atómicas a o sus negaciones los literales de la acción del . La lógica de cooperación con acciones es valido y completo con respecto al

modelo de acción: |- m si y solo si MaS |= m para todo modelo MaS

3.- TEORÍA COMPUTACIONAL EN SISTEMA MULTI-AGENTE

Esta teoría contiene dos componentes: (1) es un modelo de sistema multi-agente, (2) es unmodelo de ejecución, cada una de las cuales define un camino de agentes donde actúan einteractúan [Wooldridge M, 1992: 53].

El trabajo doctoral que presenta Wooldridge (1992: 54), expresa notaciones formales respecto ala teoría computacional de sistema multi-agente, definiendo a la creencia como en unlenguaje interno L, y asume un lenguaje lógico. Es decir, Belset = powerset Form(L); reglas de

Page 65: Re Vista 2008

deducción Drule. El símbolo , ( 0, ’, …), denota un sistema de creencias, y el símbolo

utilizado como el sistema de reglas de deducción.

Se modela la comunicación como el intercambio de mensajes que contiene una fórmuladefinido por el lenguaje común de comunicación (lenguaje interno L). En la teoría básica, seasume que los mensajes son enviados punto a punto. Se asigna a cada agente un identificador,

(id del agente). Es decir Agid = un conjunto arbitrario de agentes. La simbología i, j, k, l se utiliza

para identificar a los agente [Wooldridge, 1992: 57].

Un mensaje se define como una tripleta: enviador, receptor, y contenedor. El remitente y elreceptor representados por los id del agente y el contenedor es una formula del lenguaje decomunicación L. Es decir: Mess = Agid x Agid x Form(L). El símbolo ( ’, 1,…) denota

mensajes. Se asume la función sender, que toma el mensaje y retorna el id delenviador; mientras la función recvr toma un mensaje y retorna el id del receptor. Es

decir, Mess . (sender ( ) recvr( ) ). La interpretación del mensaje es una

función que toma la creencia y el mensaje, y retorna una entrada epistémica. Esdecir: Messint = belset x Mess Epin. Finalmente Mess nill asume un mensaje que no hace

nada [Wooldridge, 1992: 57].

El tipo de acción esta dado por: Action = Belset Epin. El símbolo denota acción. Para el

modelo del agente “no hacer nada”, una acción nill se asume. Una regla, es un parcondición/acción: una condición es una formula L, y la condición especial “true”. La condición“true” siempre es satisfecha. Es decir: Cond = Form(L) {true} [Wooldridge, 1992: 57].

Dos tipos de reglas se define: Arule = Cond x Action una regla de acción cognitiva o regla deacción ar; Mrule = Cond x Mess regla de acción al mensaje o regla de mensaje mr. La

aplicabilidad de las reglas esta dado por la creencia ar_applic : Arule x Belset si la condición de creencia es verdadera (B), también definida como ar_applic(

, ) })true{( .

El valor booleano sound : Arule o también sound ( , ) Belset . ar_applic

( , ) )dom( define la regla acción valida, donde el agente posee un rango

de acciones posibles, representado por un conjunto de reglas de acciones AR y un conjunto dereglas de mensaje MR. Una propiedad importante de una regla de agentes respecto aacción/mensaje es la completitud, definida por el siguiente valor booleano: ar_wk_cmplt:

powerset Arule , o también ar_wk_cmplt(AR) Belset. ARar . ar_applic

(ar, ).

La definición de una acción legal, esta dado por la siguiente función booleana:

ac_legal: Action x powerset Arule x Belset , o también a_legal ( , AR, )

', AR – ( ' ) ar_applic ( ', ), esta función asume el conjunto de

reglas de mensajes. Finalmente se encuentra la demanda de honestidad del conjunto de reglasde mensajes, los cuales no permiten envíos de mensajes falsos, esta dado por la función

siguiente: honest: Agid x powerset Maule , o también honest(i, MR) , MR .

(sender ( ) = i ) [Wooldridge, 1992: 58].

3.1 Arquitectura de agentes

En este modelo también se encuentra a los agentes que tienen la estructura siguiente

AR,MR,,,,0 donde 0 Belset un conjunto inicial de creencias; Drule es un

conjunto de reglas de deducción para el lenguaje L; Brf la función que revisa la

creencia; Messint la función de interpretación del mensaje; MR Mrule es un conjunto de

Page 66: Re Vista 2008

reglas de mensajes tal que mr_wk_cmplt(MR); AR Arule el conjunto de reglas de

acciones tal que ar_wk_cmplt (AR) ar AR . sound(ar). Una operación de un agente

muestra el algoritmo 1 [Wooldridge, 1992: 59].

Algoritmo 1. Operación de agentesFuente: [Wooldridge, 1992: 59].

3.2 Sistema

Un grupo de agentes se denomina un sistema. El tipo de sistemas llamado System, esta dado por

la siguiente estructura: AR,MR,,,,,Ag 0 donde Ag Agid es un contador del

conjunto de identificación de agentes; 0 = Ag m Belset le corresponde cada elemento

de Ag un conjunto inicial de creencias; = Ag m powerset Drule cada elemento de Ag

para un conjunto de reglas de deducción; = Ag m Brf le corresponde cada elemento

de Ag una función de revisión de creencias; = Ag m Messint cada elemento de Ag una

función de interpretación de mensajes; MR = Ag m powerset Mrule corresponde cada

elemento de Ag un conjunto de reglas de mensajes, Ar = Ag m powerset Arule le hace

corresponder cada elemento de Ag un conjunto de reglas de acción, tales que

Agent)i(AR),i(MR),i(),i(),i(),i(.Ag 0 y i Ag. Honest(i, MR(i)).

Esta define una función, la cual toma un identificador de agente y el sistema, donde extrae el iddel agente asociado a partir del sistema [Wooldridge, 1992: 59], es decir:

Agent : Agid x System Agent

Agent (i, sys) let . AR,MR,,,,,Ag 0 = sys in

)i(AR),i(MR),i(),i(),i(),i(0

3.3 Modelos de ejecución

Wooldridge (1992: 60) define dos modelos de ejecución para sistema multi-agente, el primeroasume acciones de agentes sincrónicas: enviar/recibir mensajes y actuar al mismo tiempo. Elsegundo asume que al menos un agente actúa en cualquier momento. Ambos modelos deejecución consideran las nociones de estado del sistema, y cambia el estado inicial por latransición. El estado esta denotado por el símbolo . Un estado cambia, cuando uno o mas

agentes reciben mensajes y ejecutan acciones cognitivos. Una transición esta denotado por elsímbolo . La historia de la ejecución de un sistema considera la secuencia estado - transición

- estado – transiciones…. , y así sucesivamente.

Los agentes son capaces de cambiar de estado por la ejecución de acciones de varios tipos.Una tupla de acciones es denominada move. El movimiento de un agente no siempredetermina su próximo estado. El movimiento de cada agente en un sistema combina unacolección de movimientos, uno para cada agente, esto es llamado transición. La operación de

un sistema se describe como sigue: un sistema esta definido por un estado inicial ( 0 ). Desde

este estado, cada agente pide un movimiento (legal), la cual combina con otros para formar

una transición, 1. Como resultado de esta transición, un nuevo estado se tiene 1 . Mientras

1.- interpretar cualquier mensaje recibido2.- Actualizar la creencia por el procesamiento de la entrada epistémico a partir de:

Acción previaInterpretación del mensaje

Hasta que exista la función de revisión del mensaje3.- Derivar en la deducción del conjunto de creencias4.-Derivar el conjunto de posibles mensajes, escoger uno y enviarlo5.-Derivar el conjunto de posibles acciones, seleccionar y uno y aplicar este6.- Regresar al paso 1

Page 67: Re Vista 2008

procesa los agentes seleccionan movimientos para transiciones y así sucesivamente,denominada ejecución sincrónica, como se observa en la figura 1.

Tiempo 0 1 2 3 …………….

Agent 1 • → • → • → • → ………..

Agent 2 • → • → • → • → ………..

Agent 3 • → • → • → • → ………..

Agent 4 • → • → • → • → ………..

↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

0 1 2 2 3 3 4 4 ………………

Figura 1. Ejecución sincrónicaFuente: [Wooldridge, 1992: 60]3

Un modelo real es el denominado modelo de ejecución inter-etiquetado, que responde a unmodelo estándar de sistemas reactivos, donde al menos un agente esta actuando en cualquiermomento. La figura 2, ilustra una ejecución imaginaria de 4 agentes del sistema multi-agente,donde • indica que el agente ejecuta un ciclo interno de los mensajes recibidos, actualiza sucreencia y actúa, mientras º indica que el agente aun no ha completado el ciclo. Durante lasprimeras 4 ejecuciones del sistema, el agente 1 completa el ciclo de ejecución (tiempo 0,2,4,6)el agente 2 completa (tiempo 1, 5), el agente 3 completa uno (tiempo 3) y el agente 4 aun noha completado [Wooldridge, 1992: 63].

Tiempo 0 1 2 3 …………….

Agent 1 • → º → • → º → ………..

Agent 2 º → • → º → º → ………..

Agent 3 º → º → º → • → ………..

Agent 4 º → º → º → º → ………..

↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

0 1 2 2 3 3 4 4 ………………

Figura 2. Ejecución inter-etiquetadoFuente: [Wooldridge, 1992: 63]

4.- CONCLUSIONES.

En el presente artículo se ha dado una breve descripción de la Teoría Computacional deSistema Multi-agente, donde se presenta elementos teóricos los cuales han sido base para eltrabajo de Tesis de la Maestría en Ciencias de la Computación del Postgrado en informática dela UMSA. La introducción de la teoría computacional de sistema multi-agente, permiteconsiderar que cada agente y sistema multi-agente esta representada por una formalizaciónque no limita un razonamiento lógico respecto a habilidades de relacionar ejecucionescognitivas de creencias, acciones, mensajes y reglas que se tienen entre los agentes.

Otro aspecto relevante sobre la notación formal de la teoría computacional expresa aSistema Multi-Agente como sistemas complejos. El enfoque involucra la conceptualizacionpensada para modelos de sistema multi-agente y modelos de ejecución. Esta surge comoproducto de la evolución de la inteligencia artificial en el camino de dotar a los sistemascomputacionales de características complejas.

3• indica que un agente completo un movimiento y cambio de estado, º indica un movimiento no

completado

Page 68: Re Vista 2008

Finalmente, la Teoría computacional de Sistema Multi-agente es una rama de las Ciencias de laComputación con menos de veinte años de vida, y que recientemente goza de un augeimpresionante, dadas las características de autonomía e inteligencia otorgadas a estos entesprogramáticos.

5.- REFERENCIAS

[Bigus, 2001] Bigus Joseph P., Bigus Jennifer. “Constructing Intelligent Agents Using Java”. ProfessionalDeveloper´s Guide Series. Second Edition.. Wiley Computer Publishing. Editorial John Wiley& Son, Inc. 2001.

[Russell &Norvig, 1996] Russell Stuart and Norvig Peter. “Inteligencia Artificial: Un enfoque Moderno“.Colección de Inteligencia Artificial de Prentice Hall. Hispanoamericana, S.A. Mexico. 1995.

[Weiss, 1999] Weiss Gerhard. “Multiagent Systems. A Modern Approach to Distributes Artificial Intelligence”.The MIT Press. Cambridge, Massachusetts. London, England. 1999.

[Nilsson,2001] Nilsson J. Nils. “Inteligencia Artificial. Una nueva síntesis”. Editorial Mc Graw-Hill/Interamericanade España, S.A.U. Madrid. 2001.

[Wooldridge, 2004] Wooldridge Michael. “An Introduction to MultiAgent Systems”. Department of ComputerScience, University of Liverpool, UK. Editorial John Wiley & Sons, Ltd. 2004.

[Iglesias, 1998] Iglesias, C.:”Definición de una metodología para el desarrollo de Sistemas Multi- Agente”. Tesisdoctoral. Departamento de ingeniería de Sistemas Telemáticos, Universidad Politécnica deMadrid. 1998. Información disponible enhttp://www.inf.udec.cl/revista/ediciones/edicion9/psalcedo.pdf [Ultima visita 10 febrero de2007].

[Jennings et al, 1998 ]Jennings, N.R., Sycara, K. and Wooldridge, M. A Roadmap of Agent Research andDevelopment. In: “Autonomous Agents and Multi-Agent Systems Journal”, N.R. Jennings, K.Sycara and M. Georgeff (Eds.), Kluwer Academic Publishers, Boston, 1998, Volume 1, Issue 1,pages 7-38. Información disponible en www.acm.org/crossroads/xrds5-4/multiagent.html.[ultima visita 1 de febrero de 2007].

[Ferguson & Wooldridge.1997] Ferguson Innes A. & Michael J. Wooldridge. “Paying Their Way: Comercialdigital Libraries for the 21st Century”. D-Lib Magazine. Disponible enhttp://www.dlib.org/dlib/june87/zuno/06ferguson.html. 1997. [ultima visita 4 febrero 2008]

[Kinny et al, 1997] Kinny, D., Georgeff, M., and Rao, A.: “A Methodology and Modelling Technique for Systemsof BDI Agents”. Informe. 1997. información disponible enhttp://eprints.agentlink.org/view/people/Kinny,_D..html [Última visita 20 enero 2008].

[Vicente et al,2000] Vicente J. Julian, Vicente J. Botti. “Estudio de Métodos de desarrollo de sistemas multi-agentes”, Departamento de Sistemas Informáticos y computación. Universidad Politecnicade Valencia. Información disponible enhttp://tornado.dia.fi.upm.es/caepia/numeros/18/julian.pdf [Ultima visita: 10-enero-2008].

[Wooldridge et al, 1998] Wooldridge Michael, Jennings Nicholas R., Zambonelli Franco. “DevelopingMultiagent Systems: The Gaia Methodology”. University of Liverpool. Informacióndisponible en http://www.csc.liv.ac.uk/˜mjw/pubs/imas [Ultima visita 14 de enero de2008].

[Woordridge et al, 2000] Wooldridge Michael , MarcPhilippe Michael Fisher, Parsons Huget Simon. “ ModelChecking MultiAgent Systems with MABLE”. Department of Computer Science, University ofLiverpool . Información disponible en http://www.csc.liv.ac.uk/˜mjw/pubs/imas [ultimavisita 7 de enero de 2008].

[Woordridge et al, 2006] Wooldridge Michael, Wiebe van der Hoek, Gerbrandy Jelle y Luigi Sauro. “ReasoningAbout Action and Cooperation”. Departament of computer Sciencie. University ofLiverpool, United Kingdom. Información disponible en http://www.csc.liv.ac.uk/~mjw/.[Ultima visita 1 de mayo de 2008]

[Wooldridge, 2004] Pagina del Profesor Michael Wooldridge. Información disponible enhttp://www.csc.liv.ac.uk/~mjw/. [Ultima visita 17-julio de 2008]

[Giret B. Adriana S., 2005] Giret B. Adriana S. Tesis Doctoral. “ANEMONA: Una Metodologia Multi-agente paraSistemas Holonicos de Fabricacion”. Tesis presentada a la Universidad Politécnica deValencia. Junio 2005. Disponible en http://www.dsic.upv.es/-agerit/investigacion.htm.[Ultima visita 22 abril 2006]

[Gómez, 2002] Gómez S. Jorge J. Tesis Doctoral. “Modelado de sistemas Multi-agentes”. Presentado alDepartamento de sistemas Informáticos y programación. Facultad de Informática.Universidad Complutense de Madrid. Junio 2002. Disponiblehttp://www.fdi.ucm.es/profesor/jpavon/doctorado/practicas/index.html

[Wooldridge M, 1992] Wooldridge Michael. Tesis Doctoral. “The Logical Modelling Of Computacional Multi-Agent Systems”. Tesis presentada a la Universidad de Manchester. Facultad de TecnologíaDepartamento de Computación. Augusto 1992. Disponible enhttp://www.csc.liv.ac.uk/˜mjw/pubs/imas. [Ultima visita 22 abril 2006]


Top Related