1 |
[en] OPTIMIZING THE PALLENE COMPILER / [pt] OTIMIZANDO O COMPILADOR PALLENELEONARDO KRAUSE LIPET SLIPOI KAPLAN 22 June 2021 (has links)
[pt] Linguagens dinâmicas provêm flexibilidade e simplicidade em troca de
menos informação em tempo de compilação, o que resulta em perda de
desempenho. Atacando este problema no contexto de Lua, a linguagem de
programação Pallene surge como uma alternativa. Neste trabalho, examinamos
o atual estado de Pallene, procurando por padrões responsáveis por perdas de
desempenho. Baseado nestes padrões, propusemos e implementamos uma série
de otimizações usando técnicas de análise estática. / [en] Dynamic languages provide flexibility and simplicity in exchange for
less compile-time information, leading to slower run times. Addressing this
problem in the Lua context, the Pallene programming language appears as an
alternative. In this work, we studied the current state of Pallene, searching
for patterns that caused performance losses. Based on these patterns, we
proposed and implemented several optimizations with the use of static analysis
techniques.
|
2 |
[en] EVALUATION OF STATIC ANALYSIS IN DATA TYPE SEMANTIC CONFLICT DETECTION / [pt] AVALIAÇÃO DO USO DE ANÁLISE ESTÁTICA NA DETECÇÃO DE CONFLITOS SEMÂNTICOS EM TIPOS DE DADOSRAFAEL DE PINHO ANDRE 21 August 2014 (has links)
[pt] Em um sistema de informação, falhas podem ocorrer pela diferença de entendimento das partes envolvidas em relação ao significado de um dado. Este é um problema bem conhecido pela engenharia de software, e defeitos deste tipo já foram responsáveis por falhas catastróficas, como a do Mars Climate Orbiter em 1999. O atual cenário de intercâmbio e processamento de dados, com grande volume de informação e heterogeneidade de participantes, cria um estado de suscetibilidade a estes defeitos. Entretanto, as técnicas de garantia de qualidade de software são tipicamente dirigidas à estrutura e às propriedades físicas dos dados, e não são eficientes ao observar questões semânticas. Este trabalho tem como intuito avaliar o uso de análise estática na detecção de conflitos semânticos em tipos de dados, e para validar sua eficácia esta abordagem foi comparada com outras técnicas de garantia de qualidade em um estudo qualitativo. A ferramenta de análise estática VERITAS (VERIficador estTÁtico Semântico) e a notação SemTypes foram desenvolvidas exclusivamente para tratar do problema de conflitos semânticos, adicionando controle de tipo semântico aos tipos reconhecidos por compiladores, e são apresentadas neste trabalho. / [en] Within information system, faults can occur by the difference in understanding of the parties involved regarding the meaning of data. This is a well-known problem for software engineering and defects of this type have been responsible for catastrophic failures, such as the Mars Climate Orbiter in 1999. The current scenario of data processing and exchange, with high information traffic volume and heterogeneous participants, increases system’s vulnerability to these defects. Besides that, techniques of software quality assurance are typically oriented to data structure and physical properties, failing to efficiently address semantics issues. This work has the objective to evaluate the use of static analysis to detect semantic conflicts in data types, investigating its efficacy through an qualitative study comparing different software quality assurance approaches. The static analysis tool VERITAS (VERIficador esTÁtico Semântico) and the SemTypes notation were exclusively developed to address the problem of semantic conflicts - adding a semantic control to the types recognized by compilers – and are presented in this work.
|
3 |
[en] ANALYZING EXCEPTION FLOWS OF ASPECT-ORIENTED PROGRAMS / [pt] ANALISANDO O FLUXO DE EXCEÇÕES EM PROGRAMAS ORIENTADOS A ASPECTOSROBERTA DE SOUZA COELHO 15 January 2009 (has links)
[pt] Os mecanismos de tratamento de exceções têm o objetivo de
aumentar a
robustez e a modularidade do software na medida em que
promovem a separação entre
o código dedicado ao tratamento de erros e código associado
ao fluxo normal de
execução do programa. Estes permitem a detecção de erros e a
associação de respostas
adequadas aos mesmos, através da execução de códigos de
recuperação que são
geralmente encapsulados em tratadores (do inglês: handlers).
A importância dos
mecanismos de tratamento de exceção é atestada pelo fato
destes fazerem parte da
maioria das linguagens de programação mais utilizadas na
atualidade: Java, C++ e C#.
Na última década a programação orientada a aspectos (POA)
vem sendo
amplamente utilizada como forma de modularizar interesses
que se encontram
espalhados nas decomposições primarias de um sistema (e.g.,
funções, classes,
métodos) em uma abstração chamada aspecto. Os aspectos
utilizam construções
especificas para promover modificações externas nos
programas, incluindo
comportamentos adicionais em pontos específicos do código.
POA vem sido utilizado
com o objetivo de aumentar a modularidade do código de
tratamento de exceção e de
interesses transversais igualmente importantes tais como:
persistência, distribuição,
segurança, controle de transações e monitoramento.
De acordo com alguns estudos empíricos, POA tem sido usado
com sucesso com
o objetivo de promover o tratamento de erro modular em
vários cenários de tratamento
de exceções. Porém, é sabido que mecanismos de programação
flexíveis (e.g., herança
e polimorfismo) podem ter um efeito negativo no tratamento
de exceções. Se por
um lado os mecanismos de composição POA baseados na inversão
de controle
podem trazer um novo leque de possibilidades de projeto,
promovendo em
muitas circunstâncias uma maior estabilidade do projeto (do
inglês: design
stability), eles podem perder seu valor se ele torna o
tratamento de exceções
propenso a erros (do inglês: error-prone). Refinamento
aspectuais do
comportamento do código base, podem por um lado promover a
robustez do
sistema em situações onde exceções são lançadas ou
contribuir para os
problemas típicos de tratamento de exceções mal projetados
tais como: (i)
exceções não capturadas (do inglês: uncaught exceptions);
(ii) exceções
capturadas por tratadores genéricos (do inglês: exception
subsumption) (i.e.,
exceções capturadas por um tratador cujo argumento é um
supertipo da exceção
a ser tratada); (iii) e exceções capturadas por tratadores
errados (do inglês:
unintended handler action).
Infelizmente, não existe nenhuma avaliação sistemática dos
efeitos positivos e
negativos da programação orientada a aspectos na robustez do
código de tratamento de
exceções. Os trabalhos de pesquisa descritos na literatura
têm se limitado a analisar os
impactos dos aspectos no fluxo normal de execução do
programa. Além disso, a
maioria dos estudos empíricos não vai além de discussões
sobre os ganhos de
modularidade e as ciladas associadas à utilização de
aspectos - para o tratamento de
exceções e de outros interesses transversais. Por exemplo,
estes estudos não levam em
consideração as conseqüências inerentes as novas exceções e
tratadores que são
adicionadas ao código base junto com a nova funcionalidade
adicionada pelos aspectos.
Esta tese descreve o primeiro estudo sistemático que avalia
quantitativamente o
impacto da composição aspectual no fluxo excepcional de
programas. Este estudo se
baseou na utilização de uma ferramenta de análise do fluxo
de exceções chamada
SAFE (do inglês: Static Analysis for the Flow of Exceptions)
desenvolvida ao longo
deste trabalho e na inspeção manual do código de tratamento
de exceções de um
conjunto de sistemas para os quais a versão Java e AspectJ
estavam disponíveis. A
ferramenta SAFE foi construída com base no framework SOOT
para a análise e
ot / [en] It has been empirically observed that aspect-oriented (AO)
decompositions
promote the modularity and the design stability of software
systems containing
crosscutting concerns. However, most of this existing
empirical research has focused
on the positive and negative impacts of AO programming in
the modularization of
crosscutting concerns in the context of normal control flow
of programs.
Consequently, most of these works do not account for the
exceptions that may flow
from aspects: when an aspect adds a new functionality to
specific points in the code,
this additional behavior may also bring new exceptions. An
aspect also has the ability
to handle exceptions that were previously handled inside the
base code. Moreover, the
exceptions that escape form aspects also flow inside the
program, and may lead to
unexpected error-prone scenarios, such as: unintended
handler actions and uncaught
exceptions. This thesis presents an empirical study to
evaluate the impact of aspects on
the exception flow of programs. To support the reasoning
about the flow of exceptions
on AO programs, a static analysis tool called SAFE (Static
Analysis for the Flow of
Exceptions) was implemented. Based on data empirically
collected during the study we
characterized a catalogue of bug patterns related to the
exception handling code of AO
programs. To help AO developers to check the reliability of
the exception handling
code, this work presents verification approach - supported
by the SAFE tool - which
provides guidelines to counter these bug patterns. Our
findings show that the exception
handling code in aspect-oriented programs tends to be
error-prone, but that a
verification approach based on static analysis can lead to
significant improvements.
|
4 |
[en] EXTENDING THE TOOL SAFE FOR JBOSS AOP / [pt] ESTENDENDO A FERRAMENTA SAFE PARA JBOSS AOPMARCIO DAVID DE MAGALHAES SANTOS 17 February 2011 (has links)
[pt] O paradigma de orientação a aspectos é utilizado em vários frameworks e
aplicações com o objetivo de melhorar a modularidade e a separação de interesses.
Contudo, a combinação do paradigma de orientação a aspectos com mecanismos
de captura de exceção pode elevar o número de cenários sujeitos a falhas. Pois, os
elementos que compõem os aspectos podem levantar exceções, as quais a
aplicação não foi projetada para tratá-las. Nesta dissertação é apresentado (i) um
estudo empírico mostrando como a programação orientada a aspectos afeta o
tratamento de exceção de uma aplicação que utiliza o JBoss AOP como
implementação do paradigma de orientação a aspectos; e (ii) uma ferramenta que
deu suporte ao estudo. O estudo mostra que ocorrem falhas no tratamento de
exceção principalmente porque as exceções são capturadas por subsunção. / [en] Aspect Oriented Paradigm (AOP) is used in many frameworks and
applications in order to improve the modularity and separation of concerns.
However, the combination of AOP and exception handling mechanisms may
increase the number of error-prone scenarios. AOP may raise exceptions which
the application was not designed to handle it. This dissertation presents (i) an
empirical study showing how the AOP affects exception handling in an
application that uses JBoss AOP to implement AOP, and (ii) a support tool for the
study. The study shows that error-prone scenarios occur mainly because exception
handling exceptions are caught by subsumption.
|
5 |
[en] NUMERICAL ANALYSIS OF THE STATIC AND SEISMIC BEHAVIOR OF POMACOCHA DAM - PERU / [pt] MODELAGEM DO COMPORTAMENTO ESTÁTICO E SÍSMICO DA BARRAGEM DE TERRA DE POMACOCHA - PERUSERGIO LEON MONTOYA CASTILLO 22 August 2003 (has links)
[pt] Construção de barragens de terra é uma atividade milenar,
empregada com o objetivo de atender às mais diversas
necessidades humanas como o armazenamento de água,
irrigação, regularização de cursos d água, geração de
enregia elétrica, etc. Ao longo da história, o projeto
destas obras de terra passou de conceito simples,
baseados
em técnicas empíricas e regras intuitivas, para as
análises modernas que consideram o comportamento da
barragem em suas diversas fases de vidas (construção,
enchimento do reservatório, regime de plena operação),
sob carregados estáticos e sísmicos, condições de contorno
complexas e sofisticadas relações constitutivas dos
materiais da estrutura e do maciço de fundação. Nesta
trabalho a construção, primeiro enchimento do
reservatório
e a resposta sísmica da barragem de terra de Pomacocha,
Peru, são analisados pelo método dos elementos finitos,
utilizando o software ABAQUS (versus 6.3). Os campos de
tensão e de deslocamentos para diversos estágios de
aplicação dos carregamentos estático e sísmico são
apresentados, incluindo-se histórias de deformação e de
tensão para determinados pontos do corpo da barragem e do
solo de fundação. / [en] Dam construction is a millenary activity, carried out with
the objective of fulfilling human necessities as water
supply, land irrigation, water flow regularization,
electric power generation, etc. Along the history, the
design of these earthworks evolved from simple concepts,
based on empirical techniques and rules of thumb, to
modern analyses that consider all phases of a dam s life
(construction, first reservoir filling, full operation)
understatic and seismic loads, as well as complex boundary
conditions and sophisticated constitutive relationships
for the structure itself and the foundation mass. In this
work, the construction, first reservoir filling and the
seismic response of the Pomacocha Dam, located in Peru,
are analyzed by the finite element method using the
software ABAQUS (version 6.2). At several loading stages
the corresponding stress and displacement are presented as
well as, for some specific points in the dam body and in
the foundation soil, the characteristic stress and strain
histories during the static and seismic loads.
|
6 |
[pt] MANUTENÇÃO ORIENTADA A PADRÕES: UM MÉTODO PARA PREVENIR EXCEÇÕES LATENTES NÃO TRATADAS EM APLICAÇÕES WEB / [en] PATTERN-DRIVEN MAINTENANCE: A METHOD TO PREVENT UNHANDLED LATENT EXCEPTIONS IN WEB APPLICATIONSDIOGO SILVEIRA MENDONCA 20 September 2019 (has links)
[pt] Contexto: Exceções não tratadas afetam a confiabilidade, usabilidade e segurança em aplicações web. Diversos estudos mediram a confiabilidade de aplicações web em uso em relação a exceções não tratadas, mostrando a recorrência deste problema durante a fase de manutenção. Detectar exceções não tratadas latentes de forma automatizada é uma tarefa difícil e específica de cada aplicação. Assim, abordagens gerais para tratar defeitos em aplicações web não tratam exceções não tratadas latentes apropriadamente. Objetivos: Projetar e avaliar um método que possa suportar encontrar, corrigir e prevenir exceções não tratadas em aplicações web. Método: Nós aplicamos o ciclo de engenharia do design science para projetar o método chamada Manutenção Orientada a Padrões (PDM). PDM consiste em identificar padrões de defeitos se baseando nos logs do servidor de aplicação, produzindo regras de análise estática que podem ser utilizadas para a prevenção de defeitos. Nós aplicamos PDM em duas aplicações web na indústria envolvendo empresas e tecnologias diferentes, medindo a melhoria confiabilidade das aplicações e a precisão das regras de análise estática produzidas. Nós também avaliamos o reuso das regras de análise estática produzidas durante a aplicação do PDM em software da mesma empresa e de outras empresas. Finalmente, nós estudamos a eficácia e aceitação de mantenedores novatos aplicando o método PDM. Resultados: Nos dois casos industriais, nossa abordagem permitiu a identificação de padrões de defeitos e exceções não tratadas latentes para correção no código fonte, permitindo eliminar completamente as falhas relacionadas a exceções não tratadas latentes e melhorando assim a confiabilidade da aplicação. Algumas regras de análise estática produzidas pela aplicação do método PDM foram reutilizadas em software na mesma empresa e em outra empresa. Nós identificamos os conhecimentos e experiências que influenciam em aplicar os passos do método PDM de forma eficaz. A maior parte dos mantenedores novatos acharam o
método PDM útil, mas não fácil de aplicar, dificultando a aceitação do método entre novatos. Conclusões: Os resultados fortalecem nossa confiança que o PDM pode ajudar os mantenedores a melhorar a confiabilidade em relação a exceções não tradadas em aplicações web existentes. Nós disponibilizamos orientações sobre como utilizar o método, reutilizar as regras de análise estática produzidas, e quais conhecimentos e experiências são necessárias para aplicar o PDM com eficácia. / [en] Background: Unhandled exceptions affect the reliability, usability, and security of web applications. Several studies have measured the reliability of web applications in use against unhandled exceptions, showing a recurrence of the problem during the maintenance phase. Detecting automatically unhandled latent exceptions is difficult and application-specific. Hence, general approaches to deal with defects in web applications do not treat unhandled exceptions appropriately. Aims: To design and evaluate a method that can support finding, correcting, and preventing unhandled exceptions in web applications. Method: We applied the design science engineering cycle to design a method called Pattern-Driven Maintenance (PDM). PDM relies on identifying defect patterns based on application server logs and producing static analysis rules that can be used for prevention. We applied PDM to two industrial web applications involving different companies and technologies, measuring the reliability improvement and the precision of the produced static analysis rules. We also evaluated reuse of static analysis rules produced during PDM application on within- and cross-company software. Finally, we studied the effectiveness and acceptance of novice maintainers on applying the PDM method Results: In both industry cases, our approach allowed identifying defect patterns and finding unhandled latent exceptions to be fixed in the source code, enabling to eliminate the pattern-related failures and improving the application reliability completely. Some of the static analysis rules produced by PDM application were reused on within- and cross-company software. We identified knowledge and experiences that influence on effectively applying steps of the PDM method. Most of the novice maintainers find PDM useful, but not easy to apply, thus hindering PDM acceptance among novices. Conclusions: The results strengthen our confidence that PDM can help maintainers to improve the reliability for unhandled exceptions in existing web applications. We provide guidance on how to apply PDM, reuse the produced static analysis rules, and the knowledge and experiences needed to apply the PDM method effectively.
|
7 |
[pt] OTIMIZAÇÃO DIMENSIONAL E DE FORMA DE TRELIÇAS ESPACIAIS MODELADAS COM CURVAS DE BÉZIER / [en] SIZE AND SHAPE OPTIMIZATION OF SPACE TRUSSES MODELED BY BÉZIER CURVESWALDY JAIR TORRES ZUNIGA 18 December 2019 (has links)
[pt] Estruturas treliçadas espaciais são arranjos geométricos de barras amplamente utilizados em coberturas de edificações. Diversos fatores favorecem o seu uso, tais como a capacidade de vencer grandes vãos e a facilidade em assumir diversas formas. A busca pela geometria ótima é um objetivo importante no projeto de estruturas, onde o interesse principal é minimizar o custo da estrutura. O objetivo deste trabalho é apresentar um sistema computacional capaz de minimizar o peso de estruturas treliçadas cuja geometria é definida por curvas de Bézier. Portanto, os pontos de controle das curvas de Bézier são utilizados como variáveis de projeto. As áreas das seções transversais das barras e a altura da treliça também são consideradas como variáveis de projeto e restrições sobre a tensão de escoamento e a tensão crítica de Euler são impostas no problema de otimização. A estrutura é analisada por meio do método dos elementos finitos considerando a hipótese do comportamento linear físico e geométrico. Os algoritmos de otimização usados neste trabalho utilizam o gradiente da função objetivo e das restrições em relação às variáveis de projeto. O sistema computacional desenvolvido neste trabalho foi escrito em linguagem MATLAB e conta com uma integração com o SAP2000 por meio da OAPI (Open Application Programming Interface). Os resultados numéricos obtidos demonstram a eficiência e a aplicabilidade deste sistema. / [en] Spatial truss structures are geometrical arrangements of bars widely used in building roofs. Several factors favor their use, such as the ability to overcome large spans and the capability of assuming a variety of configurations. The search for optimal geometry is an important goal in the design of structures, where the main interest is to minimize the cost of the structure. The objective of this work is to present a computational system capable of minimizing the weight of truss structures whose geometry is defined by Bézier curves. Therefore, the control points of the Bézier curves are used as design variables. The cross-sectional areas of the bars and the truss height are also considered as design variables and constraints on the yield stress and Euler critical stress are imposed on the optimization problem. The structure is analyzed using truss elements considering the physical and geometric linear behavior. The optimization algorithms used in this work require the gradient of the objective function and constraints with respect to the design variables. The computational system developed in this work was written in MATLAB and has an integration with SAP2000 through the OAPI (Open Application Programming Interface). The obtained numerical results demonstrate the efficiency and applicability of the developed system.
|
Page generated in 0.2138 seconds