Scielo RSS <![CDATA[Revista Cubana de Ciencias Informáticas]]> http://scielo.sld.cu/rss.php?pid=2227-189920150005&lang=en vol. 9 num. lang. en <![CDATA[SciELO Logo]]> http://scielo.sld.cu/img/en/fbpelogp.gif http://scielo.sld.cu <![CDATA[<strong>Extensible architecture for the automated software protection</strong>: <strong>A study case</strong>]]> http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S2227-18992015000500001&lng=en&nrm=iso&tlng=en En la actualidad el software comercial es susceptible a la modificación y la observación de su código interno mediante ataques de ingeniería inversa. Estos ataques permiten la piratería del software, siendo billonarias las pérdidas ocasionadas a la industria de software por este concepto. Este trabajo se centra en el desarrollo de una arquitectura extensible para insertar de forma automatizada durante el proceso de compilación, mecanismos de protección en un software dado. La protección se realiza de forma transparente al desarrollador y además, permite diseñar e implementar de forma flexible y modular las diferentes técnicas de protección identificadas. Se implementó la técnica de ofuscación como caso de estudio para validar la arquitectura propuesta. Esta técnica fue probada sobre distintos algoritmos de pruebas, mostrándose los resultados obtenidos.<hr/>Nowadays the commercial software is susceptible to the modification and observation of its machine code, by means of reverse engineering attacks. These attacks allow the software piracy, being billionaire the losses caused to the software industry due to this concept. This work focuses on the development of an extensible architecture, that it allows inserting in automated way in the course of compilation, protective mechanisms in given software. Protection carries out of obvious way the developer itself and besides, allows designing and implementing of flexible and modular way the different techniques of protection identified. In order to validate the proposed architecture, the technique of obfuscation as a case study was implemented. This technique was tested on different algorithms and its show the obtained results. <![CDATA[<strong>Infrastructure and administration of parallel computing and application development</strong>]]> http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S2227-18992015000500002&lng=en&nrm=iso&tlng=en La infraestructura de computación paralela híbrida entre procesadores y tarjetas gráficas es un entorno que permite la ejecución de soluciones paralelas que demandan elevados requisitos de cómputo o que realizan el procesamiento de grandes flujos de datos en tiempo real. En este entorno se han configurado y administrado infraestructuras paralelas para la solución de disímiles problemas que aprovechan las potencialidades que ofrece un clúster de alto rendimiento, construido empleando componentes de hardware estándar. Este entorno posibilita reutilizar la misma infraestructura de hardware para resolver problemas heterogéneos de diferentes campos de aplicación. La presente investigación es el resultado de emplear un entorno paralelo que integra herramientas, métodos, técnicas, estándares, paradigmas, diseño de algoritmos y desarrollo de aplicaciones, con el objetivo de maximizar el aprovechamiento de los procesadores multinúcleos y las tarjetas de procesamiento gráfico empleando modelos de programación híbridos. El estudio finaliza con la obtención de una plataforma que ha sido desarrollada empleando un enfoque horizontal, lo que posibilita la modelación de nuevos problemas computacionalmente complejos, logrando minimizar sus tiempos de respuestas.<hr/>Hybrid parallel computing infrastructure between processors and graphics cards is a work environment that has permitted the development of solutions to problems that demands elevate computing resources or problems that should process big data streams in real time. In this environment, infrastructures were configured and administrated to solve diverse problems that exploit the potentialities of a high performance cluster, built using standard hardware components. This environment allows reusing the same hardware infrastructure to solve heterogeneous problems on different applications fields. The present investigation is the result of employ an parallel focus that integrate tools, methods, techniques, standards, paradigms, algorithm design and applications development, aiming to maximize the use of multicore processors and graphics processing units by using hybrids programming models. The study ends with a platform that has been developed employing a horizontal focus that grants the modeling of new and complex computational problems, minimizing their response times. <![CDATA[<strong>Evaluation of roles in the process of formation of Computer Engineer</strong>]]> http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S2227-18992015000500003&lng=en&nrm=iso&tlng=en En la actualidad el Plan de estudios que se aplica en la carrera de Ingeniería Informática en Cuba, es el denominado Plan D. Su creación y puesta en ejecución busca resolver deficiencias detectadas en los planes de estudios precedentes, en temas como: la creación de habilidades y hábitos de trabajo en equipo y el trabajo por roles del futuro ingeniero, entre otros aspectos. Así, desarrollar un proceso de formación de roles efectivo es un objetivo importante de la carrera. Para el logro de este empeño, resulta imprescindible evaluar sistemáticamente el desempeño de roles por parte de los estudiantes. En el presente trabajo se describe una propuesta para la evaluación del desempeño de roles en la carrera. Por otra parte, para apoyar la toma de decisiones estratégicas vinculadas al proceso de enseñanza, es necesario analizar en profundidad los resultados del proceso de formación de roles, con el propósito de: valorar la calidad de dicho proceso, identificar las fortalezas y debilidades, predecir comportamientos futuros, así como, descubrir relaciones ocultas entre los datos y nuevo conocimiento. Es por esto que se propone la aplicación de la minería de datos.<hr/>At present the curriculum applied in the Software Engineering career in Cuba, is called Plan D. The creation and implementation seeks to address deficiencies identified in previous studies plans on topics such as: building skills and habits of teamwork and work for the future engineer roles, among others. Thus, developing an effective Roles training process is an important goal. To achieve this commitment, it is essential to systematically assess the performance of roles by students. A proposal for performance evaluation of roles is described in this paper. Moreover, to support strategic decision making related to the educational process, it is necessary to analyze in depth the results of the Training Roles, in order to: assess the quality of the process, identify strengths and weaknesses, predict future behaviors, and discover hidden relationships between data and new knowledge. This is why the application of data mining is proposed. <![CDATA[<strong>MfuzzyPred</strong>: <strong>Multi-objective algorithm for extracting fuzzy predicates</strong>]]> http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S2227-18992015000500004&lng=en&nrm=iso&tlng=en En el Instituto Superior Politécnico “José Antonio Echeverría” (CUJAE) se propuso un método para el descubrimiento de predicados difusos en forma normal en bases de datos, utilizando metaheurísticas. Este método responde a un problema de optimización combinatorio, que hoy solo maximiza un único objetivo: el valor de verdad del predicado. Esta medida de calidad tiene algunas limitaciones de cara a la posterior toma de decisiones y es por ello que recientemente se han propuesto otras medidas para evaluar la calidad de los predicados. Este trabajo toma como antecedente este método, pero lo convierte en un problema de optimización multiobjetivo (optimizar varias funciones objetivos a la vez) que contribuye a una mejora en los resultados. Los experimentos efectuados y el análisis de los mismos, así lo confirman.<hr/>In the Higher Technical Institute "José AntonioEcheverría"(CUJAE) was proposed a method for discover fuzzy predicates in normal form in databases, using metaheuristic. This method answers to a combinatorial problem of optimization, that today it only maximizes a unique objective: the truth value of the predicate. This quality measure has some limitations, to take some decision later and for that reason other measures have recently proposed to evaluate the quality of the predicates. This paper takes this method like antecedent, but turns it into a multi-objective problem of optimization (optimizing several objective functions at the same time) that contributes to an improvement in the results. The executed experiments and the analysis of the them, confirm it <![CDATA[<strong>Modeling with UML the evaluation process of software products using GQM</strong>]]> http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S2227-18992015000500005&lng=en&nrm=iso&tlng=en El enfoque GQM (Meta-Pregunta-Métrica, por sus siglas en inglés) ha sido utilizado en el proceso de evaluación de calidad de productos de software, como instancia de un paradigma de medida. Sin embargo, este enfoque no tiene asociado diagramas o elementos visuales que permitan una mejor comunicación entre los encargados de la evaluación y los desarrolladores, por lo que se hace una propuesta para usar UML (Unified Modeling Language) como lenguaje de especificación para describir su estructura y a partir de esto, usar el perfil de pruebas de UML (UTP, UML Testing Profile) para la especificación del proceso, mediante la descripción de la arquitectura, el comportamiento, los datos y la gestión de las pruebas.<hr/>GQM (Goal-Questions-Metrics) has been used in evaluation of quality process of software products as instance of metric paradigm. But, it has not diagrams or visual elements for communication between evaluators and developers. For this reason there are a proposal to use UML (Unified Modeling Language) as specification language in order to describe their structural aspects and to use UML Testing Profile to describe the process through architectural description, test behavior, test data and test management. <![CDATA[<strong>A business inteligence solution for project managemente metrics</strong>]]> http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S2227-18992015000500006&lng=en&nrm=iso&tlng=en Para lograr el éxito de un proyecto este debe, no solo satisfacer los requisitos funcionales exigidos por los clientes y proveedores, sino también los requisitos de tiempo, costo y calidad. De ahí la importancia de una correcta gestión de proyectos. Para lograr este objetivo los directivos necesitan soluciones que permitan incrementar la eficiencia de la gestión de proyectos. Resulta entonces, especialmente útil contar con técnicas y herramientas que apoyen este proceso. Una de las formas es utilizando métricas, reportes e indicadores que ayuden a planificar, controlar y tomar buenas decisiones, respecto a los proyectos que enfrentan las organizaciones. Como parte de la solución se implementó un sistema de inteligencia de negocio que permite guardar los registros históricos de métricas, reportes e indicadores de gestión de proyecto. A partir de una propuesta de métricas, se implementó una solución de análisis, compuesta por un almacén de datos, procesos de integración y recopilación de datos y herramientas de visualización, permitiendo a los directivos de la empresa contar con métricas e indicadores que los apoyaran en la gestión de proyectos.<hr/>To ensure the success of any project, this should not only meet the functional requirements of customers and suppliers, but also the time, cost, quality and scope requirements. Therefore is important to have a proper project management. To achieve this goal, managers need a solution that enables them to increase efficiency in project management. In this regard, it is particularly useful to have tools and techniques to perform these actions. One way is through metrics, reports and indicators that help to plan, control and make good decisions respect to project management. As part of this solution it was developed a business intelligence system that allows to save historical records of project management metrics and indicators. Based in a metrics proposal, it was implemented an analysis solution, that is compose by a data warehouse, integration and compilation of data and visualization tools, this all allows managers count with metrics and indicators that will support then in project management. <![CDATA[<strong>Deceptive Dynamic Optimization Problems, experimentation with Metaheuristics</strong>]]> http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S2227-18992015000500007&lng=en&nrm=iso&tlng=en Dentro del campo de la optimización existen una serie de problemas llamados NP, que son aquellos que pueden ser resueltos por un algoritmo no determinístico en un tiempo polinomial de resolución. Debido a que el mundo real no es estático, sino dinámico, se crea la necesidad de acercar dichos problemas de prueba a la realidad, de ahí que surgieran los problemas de optimización dinámicos (PODs). Uno de los problemas clásicos de optimización que existen, son los problemas decepcionantes o engañosos, que son problemas de prueba de generación binaria a partir de XOR. Son llamados engañosos porque a los algoritmos les cuesta mucho obtener mejoras, ya que cuando se mejora la solución con una heurística se empeora la evaluación en la función objetivo. En los últimos años ha habido un creciente interés por la modelación de los problemas dinámicos de optimización y su solución con los algoritmos metaheurísticos. Por ello, el objetivo de esta investigación es analizar el comportamiento de las metaheurísticas clásicas frente a los problemas decepcionantes dinámicos, específicamente con cinco funciones decepcionantes y evaluando el rendimiento de los algoritmos aplicando test estadísticos no paramétricos. Además se realiza una comparación de los resultados del mejor algoritmo con dos algoritmos del estado de arte para resolver problemas de optimización dinámicos: Adaptive Hill Climbing Memetic Algorithm y Self Organized Random Immigrants Genetic Algorithm.<hr/>In the optimization field there are a number of problems called NP, which are those that can be solved by a nondeterministic polynomial time algorithm for a resolution. Because the real world is not static, but dynamic, the need to bring these problems to test reality is created, hence arise dynamic optimization problems (PODs). One of the classic optimization problems that exist, are disappointing or deceptive problems, which are problems of test generation from binary XOR. They are called deceptive because the algorithms have a hard time getting improvements, because when solution is improved heuristic evaluation worsens the objective function. In recent years there has been an increasing interest in the modeling of dynamic optimization problems and their solution with metaheuristic algorithms. Therefore, the objective of this research is to analyze the behavior of the classical metaheuristics disappointing compared to dynamic problems, specifically with five disappointing functions and evaluating the performance of algorithms using non-parametric statistical test. Furthermore a comparison of the results of the best algorithm with two the state of art algorithms are usually done to solve dynamic optimization: Adaptive Hill Climbing Memetic Algorithm y Self Organized Random Immigrants Genetic Algorithm. <![CDATA[<strong>Techniques for handling constraints on the problem of software project team conformation</strong>]]> http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S2227-18992015000500008&lng=en&nrm=iso&tlng=en El reto de conformar equipos de proyectos de software apropiados, resulta de gran importancia para las empresas de desarrollo de software, dado que el equipo juega un papel importante en el éxito o fracaso de un proyecto. Este trabajo hace referencia a un modelo formal para la conformación de equipos de proyectos de software. El modelo responde a un problema de optimización combinatorio multiobjetivo planteando cuatro funciones objetivos y doce tipo de restricciones. Para dar solución al problema se implementaron algoritmos metaheurísticos y para tratar las restricciones que incluye el modelo se implementó la estrategia de rechazo. Esta estrategia en el problema planteado presenta inconvenientes, ya que un porciento considerable de las soluciones generadas es no factible. Existen diferentes técnicas para el manejo de las restricciones, en este trabajo se presenta un análisis de las diferentes técnicas que pueden ser aplicadas al problema de conformación de equipos de proyectos de software.<hr/>The challenge of forming appropriate teams of software projects is of great importance for software development companies, as the team plays an important role in the success or failure of a project. This paper refers to a formal model for forming software project teams. The model responds to a multiobjective combinatorial optimization problem putting four goals and twelve functions restrictions. To solve the problem metaheuristic algorithms were implemented and to address the constraints that includes model rejection strategy was implemented. This strategy has the problem posed problems because a significant percentage of the generated solutions are not feasible. There are different techniques for handling constraints, this paper analyzes different techniques that can be applied to the problem of forming teams of software projects is presented. <![CDATA[<strong>Solution to the problem of forming teams software projects using BICIAM library</strong>]]> http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S2227-18992015000500009&lng=en&nrm=iso&tlng=en El reto de conformar equipos de proyectos de software apropiados, resulta de gran importancia para las empresas de desarrollo de software, dado que el equipo juega un papel importante en el éxito o fracaso de un proyecto. Este trabajo hace referencia a un modelo formal para la conformación de equipos de proyectos de software. El modelo responde a un problema de optimización combinatorio multiobjetivo planteando cuatro funciones objetivos y doce tipo de restricciones. Para dar solución al problema se implementaron algoritmos metaheurísticos y para tratar las restricciones que incluye el modelo se implementó la estrategia de rechazo. Esta estrategia en el problema planteado presenta inconvenientes, ya que un porciento considerable de las soluciones generadas es no factible. Existen diferentes técnicas para el manejo de las restricciones, en este trabajo se presenta un análisis de las diferentes técnicas que pueden ser aplicadas al problema de conformación de equipos de proyectos de software.<hr/>The challenge of forming appropriate teams of software projects is of great importance for software development companies, as the team plays an important role in the success or failure of a project. This paper refers to a formal model for forming software project teams. The model responds to a multiobjective combinatorial optimization problem putting four goals and twelve functions restrictions. To solve the problem metaheuristic algorithms were implemented and to address the constraints that includes model rejection strategy was implemented. This strategy has the problem posed problems because a significant percentage of the generated solutions are not feasible. There are different techniques for handling constraints, this paper analyzes different techniques that can be applied to the problem of forming teams of software projects is presented.