953 resultados para Reverse engineering processes
Resumo:
The reverse engineering problem addressed in the present research consists of estimating the thicknesses and the optical constants of two thin films deposited on a transparent substrate using only transmittance data through the whole stack. No functional dispersion relation assumptions are made on the complex refractive index. Instead, minimal physical constraints are employed, as in previous works of some of the authors where only one film was considered in the retrieval algorithm. To our knowledge this is the first report on the retrieval of the optical constants and the thickness of multiple film structures using only transmittance data that does not make use of dispersion relations. The same methodology may be used if the available data correspond to normal reflectance. The software used in this work is freely available through the PUMA Project web page (http://www.ime.usp.br/similar to egbirgin/puma/). (C) 2008 Optical Society of America
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:
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:
Este trabalho foi efectuado com o propósito de interpretar, compreender e explicar algumas ferramentas de simulação de processos, em particular o Aspen Energy Analyzer (AEA), o Aspen Economic Evaluation (AEE) e o seu funcionamento integrado com o Aspen Hysys(AH). O AH é uma ferramenta de modelação de processos para a concepção de projectos de engenharia química, o AEA é uma ferramenta de modelação de redes de integração energética. O AEE integrado no AH é uma ferramenta que permite incorporar estudos económicos numa fase preliminar do desenvolvimento de um projecto de engenharia. A abordagem a este trabalho foi efectuada através do estudo de Casos. O Caso I foi baseado na resolução de um problema no AEA através da construção e optimização de uma rede de permutadores de calor. Os Casos II e III foram baseados na construção de um flowsheet de produção de Benzeno e de Cloreto de Vinil, respectivamente, e cada Caso foi dividido em dois cenários diferentes. Para o efeito foram utilizados os softwares AEA para a integração energética dos processos, o AH para construção do fluxograma do processo e o AEE para os estudos económicos dos diferentes cenários. Finalmente, os Casos IV e V dizem respeito à resolução de um problema de integração energética. O Caso IV foi baseado num problema de optimização da rede de permutadores através do aumento da sua área. Já o Caso V foi baseado na informação inicial das correntes do caso anterior e em dois cenários diferentes, nos quais foi estudada a influência dos preços das utilidades na construção da rede de permutadores. A conclusão foi que as ferramentas de modelação, particularmente o AH, o AEA e o AEE são uma mais-valia extraordinária para ajudar o utilizador na tomada de decisões em fases bastante preliminares da engenharia de processos.
Resumo:
Neste trabalho aborda-se o desenvolvimento da carroçaria do Veículo Eléctrico Ecológico – VEECO recorrendo a tecnologias assistidas por computador. Devido à impossibilidade de abranger toda a temática das tecnologias assistidas por computador, associadas ao desenvolvimento de uma carroçaria automóvel, o foco deste trabalho assenta no processo de obtenção de um modelo digital válido e no estudo do desempenho aerodinâmico da carroçaria. A existência de um modelo digital válido é a base de qualquer processo de desenvolvimento associado a tecnologias assistidas por computador. Neste sentido, numa primeira etapa, foram aplicadas e desenvolvidas técnicas e metodologias que permitem o desenvolvimento de uma carroçaria desde a sua fase de “design” até à obtenção de um modelo digital CAD. Estas abrangem a conversão e importação de dados, a realização de engenharia inversa, a construção/reconstrução CAD em CATIA V5 e a preparação/correcção de modelos CAD para a análise numérica. Numa segunda etapa realizou-se o estudo da aerodinâmica exterior da carroçaria, recorrendo à ferramenta de análise computacional de fluidos (CFD) Flow Simulation da CosmosFloworks integrado no programa SolidWorks 2010. Associado à temática do estudo aerodinâmico e devido à elevada importância da validação dos resultados numéricos por meio de dados experimentais, foi realizado o estudo de análise dimensional que permite a realização de ensaios experimentais à escala, bem como a análise dos resultados experimentais obtidos.
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:
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:
Requirements Engineering has been acknowledged an essential discipline for Software Quality. Poorly-defined processes for eliciting, analyzing, specifying and validating requirements can lead to unclear issues or misunderstandings on business needs and project’s scope. These typically result in customers’ non-satisfaction with either the products’ quality or the increase of the project’s budget and duration. Maturity models allow an organization to measure the quality of its processes and improve them according to an evolutionary path based on levels. The Capability Maturity Model Integration (CMMI) addresses the aforementioned Requirements Engineering issues. CMMI defines a set of best practices for process improvement that are divided into several process areas. Requirements Management and Requirements Development are the process areas concerned with Requirements Engineering maturity. Altran Portugal is a consulting company concerned with the quality of its software. In 2012, the Solution Center department has developed and applied successfully a set of processes aligned with CMMI-DEV v1.3, what granted them a Level 2 maturity certification. For 2015, they defined an organizational goal of addressing CMMI-DEV maturity level 3. This MSc dissertation is part of this organization effort. In particular, it is concerned with the required process areas that address the activities of Requirements Engineering. Our main goal is to contribute for the development of Altran’s internal engineering processes to conform to the guidelines of the Requirements Development process area. Throughout this dissertation, we started with an evaluation method based on CMMI and conducted a compliance assessment of Altran’s current processes. This allowed demonstrating their alignment with the CMMI Requirements Management process area and to highlight the improvements needed to conform to the Requirements Development process area. Based on the study of alternative solutions for the gaps found, we proposed a new Requirements Management and Development process that was later validated using three different approaches. The main contribution of this dissertation is the new process developed for Altran Portugal. However, given that studies on these topics are not abundant in the literature, we also expect to contribute with useful evidences to the existing body of knowledge with a survey on CMMI and requirements engineering trends. Most importantly, we hope that the implementation of the proposed processes’ improvements will minimize the risks of mishandled requirements, increasing Altran’s performance and taking them one step further to the desired maturity level.
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