923 resultados para Scansione 3D, Additive Manufacturing, reverse engineering
Resumo:
When developing interactive applications, considering the correctness of graphical user interfaces (GUIs) code is essential. GUIs are critical components of today's software, and contemporary software tools do not provide enough support for ensuring GUIs' code quality. GUIsurfer, a GUI reverse engineering tool, enables evaluation of behavioral properties of user interfaces. It performs static analysis of GUI code, generating state machines that can help in the evaluation of interactive applications. This paper describes the design, software architecture, and the use of GUIsurfer through an example. The tool is easily re-targetable, and support is available to Java/Swing, and WxHaskell. The paper sets the ground for a generalization effort to consider rich internet applications. It explores the GWT web applications' user interface programming toolkit.
Resumo:
Graphical user interfaces (GUIs) make software easy to use by providing the user with visual controls. Therefore, correctness of GUI's code is essential to the correct execution of the overall software. Models can help in the evaluation of interactive applications by allowing designers to concentrate on its more important aspects. This paper presents a generic model for language-independent reverse engineering of graphical user interface based applications, and we explore the integration of model-based testing techniques in our approach, thus allowing us to perform fault detection. A prototype tool has been constructed, which is already capable of deriving and testing a user interface behavioral model of applications written in Java/Swing.
Resumo:
Program slicing is a well known family of techniques used to identify code fragments which depend on or are depended upon specific program entities. They are particularly useful in the areas of reverse engineering, program understanding, testing and software maintenance. Most slicing methods, usually oriented towards the imperative or object paradigms, are based on some sort of graph structure representing program dependencies. Slicing techniques amount, therefore, to (sophisticated) graph transversal algorithms. This paper proposes a completely different approach to the slicing problem for functional programs. Instead of extracting program information to build an underlying dependencies’ structure, we resort to standard program calculation strategies, based on the so-called Bird-Meertens formalism. The slicing criterion is specified either as a projection or a hiding function which, once composed with the original program, leads to the identification of the intended slice. Going through a number of examples, the paper suggests this approach may be an interesting, even if not completely general, alternative to slicing functional programs
Resumo:
Program slicing is a well known family of techniques intended to identify and isolate code fragments which depend on, or are depended upon, specific program entities. This is particularly useful in the areas of reverse engineering, program understanding, testing and software maintenance. Most slicing methods, and corresponding tools, target either the imperative or the object oriented paradigms, where program slices are computed with respect to a variable or a program statement. Taking a complementary point of view, this paper focuses on the slicing of higher-order functional programs under a lazy evaluation strategy. A prototype of a Haskell slicer, built as proof-of-concept for these ideas, is also introduced
Resumo:
More and more current software systems rely on non trivial coordination logic for combining autonomous services typically running on different platforms and often owned by different organizations. Often, however, coordination data is deeply entangled in the code and, therefore, difficult to isolate and analyse separately. COORDINSPECTOR is a software tool which combines slicing and program analysis techniques to isolate all coordination elements from the source code of an existing application. Such a reverse engineering process provides a clear view of the actually invoked services as well as of the orchestration patterns which bind them together. The tool analyses Common Intermediate Language (CIL) code, the native language of Microsoft .Net Framework. Therefore, the scope of application of COORDINSPECTOR is quite large: potentially any piece of code developed in any of the programming languages which compiles to the .Net Framework. The tool generates graphical representations of the coordination layer together and identifies the underlying business process orchestrations, rendering them as Orc specifications
Resumo:
COORDINSPECTOR is a Software Tool aiming at extracting the coordination layer of a software system. Such a reverse engineering process provides a clear view of the actually invoked services as well as the logic behind such invocations. The analysis process is based on program slicing techniques and the generation of, System Dependence Graphs and Coordination Dependence Graphs. The tool analyzes Common Intermediate Language (CIL), the native language of the Microsoft .Net Framework, thus making suitable for processing systems developed in any .Net Framework compilable language. COORDINSPECTOR generates graphical representations of the coordination layer together with business process orchestrations specified in WSBPEL 2.0
Resumo:
Program slicing is a well known family of techniques used to identify code fragments which depend on or are depended upon specific program entities. They are particularly useful in the areas of reverse engineering, program understanding, testing and software maintenance. Most slicing methods, usually targeting either the imperative or the object oriented paradigms, are based on some sort of graph structure representing program dependencies. Slicing techniques amount, therefore, to (sophisticated) graph transversal algorithms. This paper proposes a completely different approach to the slicing problem for functional programs. Instead of extracting program information to build an underlying dependencies’ structure, we resort to standard program calculation strategies, based on the so-called Bird- Meertens formalism. The slicing criterion is specified either as a projection or a hiding function which, once composed with the original program, leads to the identification of the intended slice. Going through a number of examples, the paper suggests this approach may be an interesting, even if not completely general alternative to slicing functional programs
Resumo:
In the context of an e ort to develop methodologies to support the evaluation of interactive system, this paper investigates an approach to detect graphical user interface bad smells. Our approach consists in detecting user interface bad smells through model-based reverse engineering from source code. Models are used to de ne which widgets are present in the interface, when can particular graphical user interface (GUI) events occur, under which conditions, which system actions are executed, and which GUI state is generated next.
Resumo:
Dissertação apresentada na Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa para obtenção do grau de Mestre em Engenharia Informática
Resumo:
O presente trabalho descreve a análise feita a um veículo de todo o terreno. O kartcross/buggy em estudo é usado em provas do tipo Baja, sendo estas provas longas e com traçados sinuosos. O veículo, já construído, foi testado através de softwares, a nível estrutural e ciclístico, pretendendo-se assim efetuar engenharia inversa sobre o mesmo. No decorrer da sua utilização normal o kartcross/buggy sofre vários tipos de solicitações, como sejam aceleração, travagem e força centrípta em curva. Portanto, o veículo deve ser capaz de suportar estes esforços e ter uma boa habilidade. Além dos testes em uso corrente foi analisada também a rigidez torsional do quadro do veículo e do veículo completo, podendo-se assim melhorar estes valores. A nível ciclístico foram analisados os parâmetros das suspensões como o camber, convergência/divergência, caster, entre outros. Da análise destes parâmetros e possível fazerem-se melhorias de forma a que o veículo tenha um melhor desempenho. Para validar os testes computacionais efetuados foi reproduzido experimentalmente o teste da rigidez torsional. No final, compararam-se os valores numéricos com os experimentais e aferir se o modelo se encontra bem representado.
Resumo:
Dissertação apresentada na Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa para a obtenção do grau de Mestre em Engenharia Electrotécnica e de Computadores
Resumo:
Dissertação para obtenção do Grau de Mestre em Engenharia Civil, Ramo de Estruturas
Resumo:
Dissertação para obtenção do Grau de Mestre em Engenharia Civil - Ramo de Estruturas e Geotecnia
Resumo:
Este trabalho foi realizado com o apoio, e em colaboração da empresa Flexcrane, que constrói e comercializa soluções flexíveis de pontes rolantes para cargas ligeiras. Com cargas máximas de 2 toneladas estas pontes e seus caminhos de rolamento são construídas essencialmente enformados a frio. O objetivo deste trabalho é a verificação numérica e experimental das cargas que este tipo de estrutura suporta, nas suas diferentes configurações. Numa aproximação por engenharia inversa, com a realização deste trabalho, foi possível determinar a carga admissível das vigas compostas utilizadas, assim como o seu comportamento quando em carga. Para obtenção destes resultados foram realizadas simulações computacionais recorrendo ao método de elementos finitos, utilizando para isso o software Ansys Workbench e ainda ensaios experimentais que permitiram validar os resultados obtidos numericamente e consolidar o conhecimento sobre o comportamento desta solução comercial. Por ser de construção modular, são possíveis diferentes combinações para o produto final, por esta razão foram estudados numericamente diferentes configurações possíveis, com e sem reforços. Foi realizada a validação experimental para a configuração mais usual, fazendo recurso a um dispositivo para ensaio de estruturas e componentes, pertencente ao Isep. Foi ainda utilizada a técnica extensométrica para avaliar as tensões em pontos selecionados e compara-los com os obtidos numericamente. Concluiu-se pelo ótimo desempenho dos produtos Flexcrane.
Resumo:
Abstract Dataflow programs are widely used. Each program is a directed graph where nodes are computations and edges indicate the flow of data. In prior work, we reverse-engineered legacy dataflow programs by deriving their optimized implementations from a simple specification graph using graph transformations called refinements and optimizations. In MDE-speak, our derivations were PIM-to-PSM mappings. In this paper, we show how extensions complement refinements, optimizations, and PIM-to-PSM derivations to make the process of reverse engineering complex legacy dataflow programs tractable. We explain how optional functionality in transformations can be encoded, thereby enabling us to encode product lines of transformations as well as product lines of dataflow programs. We describe the implementation of extensions in the ReFlO tool and present two non-trivial case studies as evidence of our work’s generality