La predicción de defectos es un tema importante en la Ingeniería de Software. Puede utilizarse para evaluar la calidad del producto final, estimando si se cumplen los estándares de calidad contractuales o los impuestos para la aceptación del producto por parte del cliente. También puede facilitar la previsión de los recursos para pruebas o verificación formal.
El presente trabajo selecciona un conjunto de métricas estáticas (o de producto) y de cambio (o de proceso) con el objetivo de predecir los defectos de versiones sucesivas. Como método de estimación se utiliza la regresión logística. Se presenta un caso de estudio sobre el proyecto de código abierto MediaWiki, que soporta a Wikipedia. Este producto cuenta con 1000 clases y 365 KLOC.
Se han obtenido las métricas estáticas y de cambio durante el período de un año con distintos cortes temporales. Se construyeron herramientas ad hoc para calcular las métricas definidas por autores como Chidamber & Kemerer, Robiolo y Moser. Se busca estudiar la viabilidad de aplicar estas métricas en un lenguaje de programación orientado a objetos diferente, ya que las investigaciones de referencia han trabajado históricamente con lenguajes de tipado estático (principalmente C++ y Java) mientras que MediaWiki se encuentra desarrollado en PHP, que es un lenguaje orientado a objetos dinámicamente tipado, muy utilizado en el desarrollo web de pequeña y mediana escala. A estos efectos, también se proponen métricas nuevas, que buscan medir estos aspectos de tipado del lenguaje y sus efectos en el producto y la calidad del mismo.
Para recolectar las métricas de cambio del código fuente se han clasificado manualmente alrededor de 2800 commits de 230 desarrolladores, realizados al repositorio de versiones del proyecto durante el año 2014. Esta clasificación tiene por objeto identificar qué modificaciones al código fuente se pueden imputar a correcciones de defectos (Fault Repairing) y cuáles a introducción de nueva funcionalidad (Feature Introduction), siguiendo el trabajo de Hassan. Esta clasificación permite definir métricas con las cuales construir modelos de predicción de defectos.
Se comprueba que la cantidad y tamaño de los cambios de tipo “Feature Introduction” realizados a una clase son los mejores predictores de los defectos futuros de la misma. Además, se comprueba que utilizando métricas de cambio es posible obtener mejores resultados en la predicción que con métricas estáticas, pero las primeras representan un mayor esfuerzo de medición que las segundas.
Tesis de Magistratura en Ing. de Software en la cual se presenta una revisión del estado del arte en el área de los Servicios Web, en particular distintas arquitecturas de servicios web y modelos de madurez para evaluar su calidad incluyendo un detallado inventario de 86 patrones de diseño. La originalidad del trabajo se enfoca en identificar la Calidad del Servicio (QoS) que cada patrón aporta, mediante una fórmula que involucra rendimiento, confiabilidad, seguridad e interoperabilidad. Finalmente, se hace una evaluación de la posibilidad de aplicar patrones de servicios para mejorar la QoS.
La Accesibilidad es un factor muy importante en las aplicaciones web. Una web accesible ofrece acceso equitativo e igualdad de oportunidades a las personas con discapacidad. Es necesario garantizar el derecho a expresión, opinión, y no discriminación en el acceso a los contenidos de páginas web a todas las personas con capacidades reducidas.
Esta propuesta facilita el reconocimiento automático de problemas de accesibilidad Web y ofrece soluciones a ellos, aplicando una extensión metodológica de Self Refactoring (Grigera, 2017). De esta manera y reutilizando la herramienta Kobold, se implementan procesos de detección de obstáculos en la accesibilidad para usuarios con dificultades visuales que utilizan el screen reader NVDA. Esto es posible definiendo, a partir de las interacciones de los usuarios, accessibility smell (problemas) y accessibility refactorings (soluciones) como transportaciones a las presentaciones web aplicables a esos problemas, cuya implementación tecnológica es una extensión de Kobold que ofrece Accesibilidad como servicio (SaaS – Software as a Service).
Gracias a esto no se requiere tener conocimientos específicos sobre accesibilidad, sino que la herramienta se instala fácilmente en los sitios web y a medida que estos son utilizados se reportan automáticamente los problemas detectados.
Pero al utilizar NVDA algunas interacciones se producen sobre representaciones de los documentos web en estructuras internas que facilitan la navegación de los elementos mediante acciones de acceso directo. Para estos casos, fue necesario desarrollar un complemento para NVDA que detecta interacciones virtuales de los usuarios y las reporta para su análisis a un componente de servidor a fin de detectar dificultades que puedan estar presentes en el buffer virtual.
Con el fin de mejorar la precisión en las definiciones de los eventos que dan cuenta de los problemas de los usuarios se desarrolló un sistema y un complemento para NVDA que se utiliza en la estimación de los valores representativos de las acciones de los usuarios, con los cuales llevar adelante experimentos que permitan obtener mejores valores para los parámetros definidos en los algoritmos de detección de Accessibilty Event.
Los problemas de accesibilidad, Accessibility Smell, reconocidos en estudios de casos son catalogados junto con la evaluación de los problemas de accesibilidad presente y cuya detección es posible automáticamente. Así también para las soluciones a esas dificultades denominadas Accessibility Refactorings que se definen como modificaciones a las presentaciones web, alguna de las cuales pueden aplicarse con algún grado de automatización.
En los últimos años la agricultura de precisión a tomado mucha relevancia en la búsqueda de optimizar recursos y obtener mejores resultados, dia a dia se trabaja sobre nuevas tecnologías que permitan llegar al productor para obtener dichas mejoras. En los cultivos que requieren una alta demanda de agua, como es el de arroz, se aplican diferentes técnicas de riego para lograr bajar la demanda hídrica y seguir obteniendo altos rindes. No obstante, se siguen presentando dificultades para realizar un monitoreo óptimo y en tiempo real. El presente trabajo se desarrolla en el IDTILAB de la Facultad de Ciencia y Tecnología de UADER (Concepción del Uruguay, Entre Ríos), en conjunto con la seccional de INTA (Instituto Nacional de Tecnología Agropecuaria, Concepción del Uruguay), y presenta un modelo de comportamiento y prototipo innovador para monitorear cultivos de precisión en tiempo real. Fundado en lo más reciente de la minería de datos temporal, emplea una extensión de los conocidos Sistemas Armónicos (HS por sus siglas en inglés) (Lopez de Luise D. 2013) denominada Sistemas Armónicos difusos (Fuzzy Harmonic System, FHS) (Lopez de Luise D. 2013a , 2013b) (Bel W. 2018) que constituye un heurístico simple y liviano capaz de detectar y predecir los eventos críticos de estrés hídrico en los lotes de los cultivos de arroz. Se presenta el prototipo funcional de KRONOS.AgroData y KRONOS.AgroMonitor que implementa el modelo FHS adaptado para la predicción del nivel de riesgo de sequía en los lotes de riego en cultivos de arroz de la zona de San Salvador ubicada en (Entre Ríos) y en la zona de INTA, Concepción del Uruguay (Entre Ríos). Este prototipo está realizado con tecnología Arduino para la adquisición de datos y tecnologías web como React®, NextJS®, NodeJS® y MQTT®. El diseño permite evaluar el rendimiento y eficiencia del modelo propuesto en un entorno real de prueba de campo donde intervienen variables de diverso tipo (climatológicas, variaciones de humedad en suelo, nivel hídrico en suelo, PH, entre otras). De los estudio de campo y los análisis estadísticos que se muestran en este trabajo, se puede afirmar que el modelo derivado permite determinar intervalos de muestreo y riego mucho más adecuados que los tradicionales, y evaluar satisfactoriamente los rindes y condiciones de cultivo.
El concepto proceso de negocio está estrechamente vinculado a la forma en la que una organización gestiona sus operaciones. Conocer y comprender las operaciones de una organización es un punto clave que se debe tener presente dentro del proceso de desarrollo de software. A su vez, el enfoque de desarrollo dirigido por modelos denominado MockupDD captura requerimientos usando prototipos de interfaz de usuario denominados Mockups. Los usuarios finales pueden comprender fácilmente dichos prototipos y realizar anotaciones sobre los mismos. Este enfoque se basa en ésta característica principal y a partir de la misma genera valiosos modelos conceptuales que luego pueden ser aprovechados por todos los integrantes de un equipo de desarrollo de software. Utilizar el lenguaje natural para realizar anotaciones sobre los Mockups es un aspecto clave que puede ser aprovechado. En éste último aspecto una rama de la inteligencia artificial denominada “Natural Language Processing – Procesamiento del Lenguaje Natural” (NLP) viene realizando importantes aportes vinculados al uso y al aprovechamiento del lenguaje natural de las personas. El presente trabajo de tesis propone una nueva técnica denominada “End User Grammar Extended for Business Processes – Gramática de Usuario Final Extendida para Procesos de Negocios” (EUGEBP). La misma está compuesta por un conjunto de reglas de redacción diseñada para ser aplicada sobre Mockups, y por una serie de pasos que permiten procesar dichas anotaciones con el propósito derivar procesos de negocios desde las mismas. Esto se logra a través de la identificación de los elementos que componen los procesos de negocios y de las relaciones que existen entre ellos. En esencia el presente trabajo propone utilizar las anotaciones de usuario final realizadas sobre los Mockups en lenguaje natural y a partir de las mismas derivar procesos de negocio. Las anotaciones del usuario final tienen como objetivo ayudar a describir las interfaces de usuario, pero también pueden ayudarnos a identificar los procesos de negocio que el sistema debe soportar. Mientras en analista recopila información para el desarrollo de una aplicación, implícitamente también está describiendo los procesos de negocio de la organización.