Loading...
42 results
Search Results
Now showing 1 - 10 of 42
- Técnicas y herramientas para regular la seguridad en web services basados en WSDLPublication . Bernardis, Hernán; Bernardis, Edgardo; Berón, Mario; Riesco, Daniel; Pereira, Maria JoãoEl desarrollo de sistemas en la actualidad ha mutado, siguiendo la tendencia mundial de migración hacia la nube. Se logra mayor escalabilidad al construir sistemas con módulos distribuidos en la red, en donde el sistema final es la combinación de un conjunto de módulos distribuidos en la nube. Este concepto ha funcionado a lo largo de la historia por medio de diferentes arquitecturas tecnológicas - RPC, RMI, etc. - pero, desde hace algunos años, los servicios web han sido la arquitectura de mayor popularidad. Su independencia de la arquitectura tecnológica subyacente junto con su aprovechamiento de los protocolos ya definidos de internet son algunos de los motivos impulsores de su popularidad. En el caso particular de esta investigación, el objeto de estudio son los servicios web con descripciones en WSDL. La idea de este trabajo consiste en detectar y - de ser necesario - modificar el nivel de entendimiento que posee la descripción de un servicio web para minimizar las vulnerabilidades que este pueda tener al estar publicado en la nube. Para detectar estas vulnerabilidades, es primordial primero comprender el servicio web y, por ende, su descripción. En este artículo se describe una línea de investigación centrada en facilitar la comprensión de Servicios Web mediante el análisis de sus especificaciones WSDL. Este análisis sirve como base para el cálculo del grado de entendimiento del mismo y, en base a esta medida, determinar qué acciones se deben tomar, en caso de que corresponda, para cambiar su grado de entendimiento ocultando vulnerabilidades.
- Problem domain oriented approach for program comprehensionPublication . Pereira, Maria João; Berón, Mario; Cruz, Daniela; Oliveira, Nuno; Henriques, Pedro RangelThis paper is concerned with an ontology driven approach for Program Comprehension that starts picking up concepts from the problem domain ontology, analyzing source code and, after locating problem concepts in the code, goes up and links them to the programming language ontology. Different location techniques are used to search for concepts embedded in comments, in the code (identifier names and execution traces), and in string-literals associated with I/O statements. The expected result is a mapping between problem domain concepts and code slices. This mapping can be visualized using graph-based approaches like, for instance, navigation facilities through a System Dependency Graph. The paper also describes a PCTool suite, Quixote, that implements the approach proposed.
- Estrategias para facilitar la comprensión de programasPublication . Berón, Mario; Uzal, Roberto; Henriques, Pedro Rangel; Pereira, Maria JoãoLa Comprensión de Programas es una disciplina de la Ingeniería de Software cuyo objetivo es proveer Modelos, Métodos, Técnicas y Herramientas para facilitar el estudio y entendimiento de los sistemas de software. A través de un extenso estudio y experiencia en el desarrollo de productos de comprensión se pudo comprobar que el principal desafío en esta área consiste en: Relacionar el Dominio del Problema con el Dominio del programa. El primero hace referencia a la salida del sistema. El segundo a las componentes de software usadas para producir dicha salida. La construcción de este tipo de relación es muy compleja e implica el estudio de disciplinas tales como: Modelos Cognitivos, Visualización de Software, Estrategias de Interrelación de Dominios y Métodos de Extracción de la Información. En este artículo se presentan líneas de investigación cuyos objetivos son: • Analizar los productos de comprensión existentes. • Construir productos innovadores basados en los conceptos comunes a las grandes áreas mencionadas en el paragrafo anterior.
- Clasificaciones: un mecanismo de herencia múltiple para la construcción de modelos fáciles de comprender y mantenerPublication . Aristiaran, Martín; Berón, Mario; Henriques, Pedro Rangel; Pereira, Maria JoãoLos actuales mecanismos de Múltiple Herencia(MH) han resuelto gran parte de sus problemas históricos como el problema del diamante y la herencia de distintas implementaciones de métodos y atributos con el mismo nombre. Sin embargo, los modelos producidos por estos mecanimos presentan al menos uno de los siguientes problemas: i) No contienen información acerca de como es posible extenderlos asegurando la inexistencia de con ictos, o ii) El modelo creado no puede inferirse a partir de características de los elementos del dominio. La existencia de esos problemas agrega gran complejidad al mantenimiento de esos modelos, lo cual desanima el uso de la MH. En este contexto, este artículo describe una línea de investigación cuyos principales objetivos son crear mecanismos de MH que: i) Brinden una solución a los dos problemas mencionados anteriormente, lo cual facilita el mantenimiento de los modelos, y ii) Produzcan modelos inteligibles y expresivos.
- A system to evaluate and understand routing algorithmsPublication . Berón, Mario; Henriques, Pedro Rangel; Pereira, Maria JoãoIn this communication in the form of poster and demo we intent to present a tool aimed at evaluating and understanding routing algorithms. This application has a powerful environment that allows: to draw graphs and manipulate their components in manual or automatic form; to incorporate routing algorithms; to make experiments, measurement, and performance tests; to understand programs. The tool incorporates mechanisms to make easy the task for building executable files. These characteristics make this tool a versatile and easy evaluation and comprehension system to be used with routing algorithms. Along the paper we will emphasize how we conceived and implemented the system’s interface to satisfy the user’s requirements. Our purpose in the context of Interacçao06 is to demonstrate it!.
- A language processing tool for program comprehensionPublication . Berón, Mario; Henriques, Pedro Rangel; Pereira, Maria João; Uzal, Roberto; Montejano, GermánProgram Comprehension is a Software Engineering discipline which aims to understand computer code written in a high-level programming language. Program Comprehension is useful for reuse, inspection, maintenance, reverse engineering and many other activities in the context of Software Engineering. In this paper we define a set of techniques to extract static and dynamic information from the target program. These techniques are based on the inclusion of inspection functions and control statements in the system’s source code. The first are intended to show the functions actually used. The second are necessary to reduce the number of functions recovered for a better administration. We show a possible implementation of this approach using a language processor generator very useful and easy to use. Our strong motivation was to support the understanding of routing algorithms, available in EAR a routing algorithms evaluation system. To assist the program comprehension task, we generate different views that use the information extracted by our strategy, such as the routing algorithm output (that can be seen as a problem domain view), or the sequence of called functions, and their source and object code (examples of program domain views). Although specific, we intend to generalize this approach.
- Detection of vulnerabilities in smart contracts specifications in ethereum platformsPublication . Argañaraz, Mauro; Berón, Mario; Pereira, Maria João; Henriques, Pedro RangelEthereum is the principal ecosystem based on blockchain that provides a suitable environment for coding and executing smart contracts, which have been receiving great attention due to the commercial apps and among the scientific community. The process of writing secure and well performing contracts in the Ethereum platform is a major challenge for developers. It consists of the application of non-conventional programming paradigms due to the inherent characteristics of the execution of distributed computing programs. Furthermore, the errors in the deployed contracts could have serious consequences because of the immediate linkage between the contract code and the financial transactions. The direct handling of the assets means that the errors can be more relevant for security and have greater economic consequences than a mistake in the conventional apps. In this paper, we propose a tool for the detection of vulnerabilities in high-level languages based on automatized static analysis.
- Comprensión de algoritmos de ruteoPublication . Berón, Mario; Henriques, Pedro Rangel; Pereira, Maria João; Uzal, RobertoLa comprensión de programas es un área de la Ingeniería del Software que se encarga del estudio y construcción de modelos y herramientas con el objetivo de facilitar el mantenimiento, la modificación y el estudio de aplicaciones de informática. En este artículo presentamos los trabajos realizados, en el contexto de la comprensión de programas, destinados a analizar la posibilidad de aplicar las estrategias de comprensión de programas a los algoritmos de Ruteo Geométrico. Las tareas fueron llevadas a cabo siguiendo cuatro líneas de trabajo bien definidas. La primera consistió en el estudio de diferentes herramientas de comprensión de programas con el objeto de establecer un ranking y analizar las estrategias de comprensión utilizadas. La segunda se centro en la construcción de un Evaluador de Algoritmos de Ruteo con propósitos educativos y de investigación. La tercera analiza la posibilidad de adaptar estrategias de comprensión al evaluador de algoritmos para aumentar su capacidad explicativa. Finalmente, la cuarta línea se encarga de generalizar los resultados obtenidos con el evaluador con el objeto de utilizar las nuevas estrategias de comprensión definidas en sistemas en general.
- Comprensión de programas por inspección visual y animaciónPublication . Berón, Mario; Uzal, Roberto; Henriques, Pedro Rangel; Pereira, Maria JoãoPCVIA (Program Comprehension by Visual Inspection and Animation) es un proyecto de investigación que estudia la construcción de métodos, técnicas y herramientas que ayuden al ingeniero del software en el análisis y comprensión de aplicaciones. Estos estudios tienen como objetivo contribuir en distintas actividades de la Ingenieria del Software como por ejemplo mantenimiento, reingenieria, ingenieria reversa, entre otras tantas aplicaciones. Para construir ambientes de comprensión de programas es necesario concebir herramientas que permitan extraer y visualizar información de los sistemas. Para lograr este objetivo es necesario analizar los métodos, técnicas, herramientas, etc. existentes con el objetivo de incrementar la funcionalidad de las mismas, o bien, proponer otras nuevas. En este artículo describimos un abordage para la construcción de herramientas de comprensión que se basa en la instrumentación del código fuente del sistema de estudio. Entre los objetivos de esta aproximación se encuentran la elaboración de estrategias de navegación y relación entre las distintas perspectivas de un sistema desarrollado usando el paradigma imperativo. Por otra parte se planifica analizar la extensibilidad de las mismas a otros paradigmas como por ejemplo el orientado a objeto.
- Visualización de software orientada a comprensión de programasPublication . Miranda, Enrique; Berón, Mario; Montejano, Germán; Peralta, Mario; Pereira, Maria JoãoLa Comprensión de Programas es unadisciplina de la Ingeniería de Software cuyo principal objetivo es facilitar el entendimiento de los sistemas. Un aspecto importante en la Comprensión de Programas es la Visualización de Software (VS). La VS es una disciplina de la Ingeniería del Software que provee una o varias representaciones visuales de la información de los sistemas permitiendo una mejor compresión de los mismos. Dichas representaciones (también conocidas como vistas) no son fáciles de construir porque se deben tener en cuenta muchos factores cognitivos y de implementación. Los primeros son importantes porque sirven como puente cognitivo entre los conocientos que posee el programador y los conceptos usados en el sistema que se pretende comprender. Los segundos adquieren importancia porque la implementación de los puentes cognitivos es compleja y requiere de herramientas adecuadas para su concretización en una herramienta de comprensión. Este artículo presenta una línea de investigación que aborda la Visualización de Software, una componente fundamental para la Comprensión de Programas. Dicha línea estudia: técnicas y estrategias de visualización, herramientas de visualización y creación de vistas. Todas las temáticas mencionadas previamente son basales en Comprensión de Programas y son brevemente descriptas a lo largo de este artículo.