14 research outputs found
Exadat: Análisis de Variabilidad en Persistencia de Productos de Software
Existe una tendencia mundial hacia el desarrollo y evolución de familias de productos en lugar de la creación de un producto de software para un cliente específico. Sin embargo, es común la construcción de tal familia a partir de varios sistemas a medida. Además, estas implementaciones usualmente carecen de la documentación de la arquitectura implementada. A partir de esta problemática se plantea en este trabajo la identificación de familia de productos de software desde una perspectiva de persistencia. El enfoque propuesto utiliza mecanismos de ingeniería reversa para reconstruir la arquitectura del producto implementado. A partir de la arquitectura se identifican posibles puntos de variación y variantes implicadas en la persistencia de datos.Sociedad Argentina de Informática e Investigación Operativ
Reverse Engineering Heterogeneous Applications
Nowadays a large majority of software systems are built using various technologies that in turn rely on different languages (e.g. Java, XML, SQL etc.). We call such systems heterogeneous applications (HAs). By contrast, we call software systems that are written in one language homogeneous applications. In HAs the information regarding the structure and the behaviour of the system is spread across various components and languages and the interactions between different application elements could be hidden. In this context applying existing reverse engineering and quality assurance techniques developed for homogeneous applications is not enough. These techniques have been created to measure quality or provide information about one aspect of the system and they cannot grasp the complexity of HAs. In this dissertation we present our approach to support the analysis and evolution of HAs based on: (1) a unified first-class description of HAs and, (2) a meta-model that reifies the concept of horizontal and vertical dependencies between application elements at different levels of abstraction. We implemented our approach in two tools, MooseEE and Carrack. The first is an extension of the Moose platform for software and data analysis and contains our unified meta-model for HAs. The latter is an engine to infer derived dependencies that can support the analysis of associations among the heterogeneous elements composing HA. We validate our approach and tools by case studies on industrial and open-source JEAs which demonstrate how we can handle the complexity of such applications and how we can solve problems deriving from their heterogeneous nature
Signal Processing and Machine Learning Techniques Towards Various Real-World Applications
abstract: Machine learning (ML) has played an important role in several modern technological innovations and has become an important tool for researchers in various fields of interest. Besides engineering, ML techniques have started to spread across various departments of study, like health-care, medicine, diagnostics, social science, finance, economics etc. These techniques require data to train the algorithms and model a complex system and make predictions based on that model. Due to development of sophisticated sensors it has become easier to collect large volumes of data which is used to make necessary hypotheses using ML. The promising results obtained using ML have opened up new opportunities of research across various departments and this dissertation is a manifestation of it. Here, some unique studies have been presented, from which valuable inference have been drawn for a real-world complex system. Each study has its own unique sets of motivation and relevance to the real world. An ensemble of signal processing (SP) and ML techniques have been explored in each study. This dissertation provides the detailed systematic approach and discusses the results achieved in each study. Valuable inferences drawn from each study play a vital role in areas of science and technology, and it is worth further investigation. This dissertation also provides a set of useful SP and ML tools for researchers in various fields of interest.Dissertation/ThesisDoctoral Dissertation Electrical Engineering 201
Proposta de modelo ?nico para prioriza??o de d?vida t?cnica
Over the years, software has become more and more present in the people?s and compani?es
daily life. The software development companies aiming to understand customer needs,
often investing in optimization, improving the product quality. However, software development
companies have been dealing with limited amounts of time and resources, which have to be
applied to generate in a short term financial gains and in addition they also have to develop
features that satisfy the customers. Therefore, managers and developers focus other aspects
than quality to establish a balance between the objectives, features and functionalities of the
product, development can be taken shortcuts because of the short time to prioritize this over
the quality. In 1992, the term technical debt was cited by Ward Cunningham to reflect the
scenario in which to accelerate the development of software would require the writing of an
immature code, thereby generating a debt. This metaphor gradually extended to other parts of
the software, generally reflecting the immature, inadequate, or incomplete artifacts present in
the development life cycle. Due to limited resources, identified technical debt items should be
prioritized, seeking to classify and rank debts from technical factors or needs. Although there
are some studies on technical debt prioritization, there are still many gaps on how to prioritize a
technical debt item. So, it is important to elaborate new models to help developers to prioritize
technical debt items, seeking to assist in decision making and aiming to clarify to entrepreneurs
the real benefits linked to technical improvements. The objective of this study is to identify
and categorize the technical debt prioritization approaches in the literature and, finally, a unique
model of prioritization was proposed based on the characteristics derived from these studies.
The approach developed is intended to prioritize classes affected by code smells, which are
design problems at the source code level of a system and can indicate technical debt points.
The model has six phases of classification, each phase representing specific ranking metrics. At
the end of the prioritization process, the classes smelly with the highest priority of correction
are obtained in relation to the considered criteria. The proposed model was validated with
specialists in the area in order to verify its contribution and relevance.Com o passar dos anos, os softwares tornaram-se cada vez mais presentes no cotidiano
de pessoas e empresas. As ind?strias desenvolvedoras, visando atender as necessidades dos seus
clientes investem frequentemente em otimiza??o, buscando melhorias na qualidade do produto
final. Por?m, as ind?strias de desenvolvimento de software lidam com valores limitados de
tempo e recursos, fazendo com que essas tenham que aplic?-los de forma a gerar um retorno
financeiro a curto prazo e ao mesmo tempo, desenvolvendo funcionalidades que possam satisfazer
os clientes. Com isso, aspectos internos de qualidade s?o alvos de indecis?o por parte dos
gerentes e desenvolvedores, retratando o contexto da d?vida t?cnica, em que para se estabelecer
um equil?brio entre os objetivos, recursos e funcionalidades do produto, atalhos de desenvolvimento
podem ser tomados a curto prazo. Em 1992, o termo d?vida t?cnica foi citado por
Ward Cunningham para refletir o cen?rio em que para acelerar o desenvolvimento de software
seria necess?rio a escrita de um c?digo imaturo, gerando-se assim uma d?vida. Essa met?fora
estendeu-se gradualmente a outras partes do software, refletindo de maneira geral aos artefatos
imaturos, inadequados ou incompletos presentes no ciclo de vida de desenvolvimento. Devido
aos recursos limitados, os itens de d?vida t?cnica identificados devem ser priorizados, buscando
classificar e ranquear as d?vidas a partir de fatores ou necessidades t?cnicas. Embora j? existam
alguns estudos sobre prioriza??o, ainda existem muitos desafios em como definir a prioridade
de um item de d?vida t?cnica. Por isso, ? necess?ria a elabora??o de novos modelos para priorizar
os itens com sucesso, buscando auxiliar na tomada de decis?o e visando esclarecer aos
empres?rios os reais benef?cios vinculados ?s melhorias t?cnicas. O objetivo deste trabalho ?
identificar e categorizar as abordagens de prioriza??o de d?vida t?cnica existentes na literatura
e por fim, prop?s-se um modelo ?nico de prioriza??o baseado nas caracter?sticas oriundas desses
estudos. A abordagem desenvolvida tem como objetivo priorizar classes afetadas por code
smells, que s?o problemas de design ao n?vel do c?digo-fonte de um sistema e podem indicar
pontos de d?vida t?cnica. O modelo possui seis fases de classifica??o, sendo que cada fase representa
m?tricas espec?ficas de ranqueamento. No final do processo de prioriza??o, obt?m-se
as classes smelly com maior prioridade de corre??o em rela??o aos crit?rios considerados. O
modelo proposto foi validado com especialistas na ?rea a fim de verificar sua contribui??o e
relev?ncia