191 |
Um método para engenharia reversa orientada a objetos. / A method for object-oriented reverse engineering.Rosangela Aparecida Dellosso Penteado 19 January 1996 (has links)
Um método composto de quatro passos para conduzir engenharia reversa orientada a objetos de sistemas desenvolvidos sem usar a tecnologia de orientação a objetos e apresentado. Este método abrangente e detalhado mostrando como fazer engenharia reversa constitui um avanço para o estado da arte, pois não há métodos publicados nesse nível de detalhe ate o momento. A documentação produzida pela engenharia reversa baseada no Método Fusion para desenvolvimento de sistemas orientados a objetos e composta de um Modelo de Objetos, um Modelo de Operação e um Modelo de Ciclo de Vida. Um conjunto de modelos intermediário extraído diretamente do código e dos documentos de interação processo/dados e também incluído com o nome de Modelo de Análise do Sistema Atual. A engenharia reversa de um ambiente de software para projetar sistemas reativos e mostrada em detalhes. Esse software tem 30.000 linhas de código C, divididas em 495 procedimentos agrupados em 36 módulos. Um documento semelhante a um dicionário de dados foi preparado com base na documentação contida em diversas dissertações, artigos e principalmente em seu código fonte. O ambiente de desenvolvimento de sistemas reativos e descrito, bem como sua evolução através de diversas versões e sua aplicação e ilustrada pelo projeto do statechart correspondente a um relógio despertador. Facilidades para especificar atividades associadas aos statecharts foram incorporadas ao ambiente StatSim como parte dos trabalhos desenvolvidos nesta tese e são também discutidas e aplicadas a um exemplo. A simulação de statecharts de controle sujeitos a diferentes eventos possíveis e incluída através de diagramas e \"logs\". Esse exemplo é também usado para ilustrar um procedimento relacionado ao acoplamento de statercharts e diagramas de atividades na especificação de sistemas reativos e para mostrar o uso do ambiente de software para verificar essa especificação. O Método Fusion e comparado a outros métodos de desenvolvimento de sistemas orientados a objetos. O ambiente de desenvolvimento de sistemas reativos baseado em statecharts e posicionado entre outras ferramentas para o desenvolvimento de tais sistemas. / A method composed of four steps to conduct object oriented reverse engineering in systems developed using non object oriented technology is presented. This comprehensive, detailed method showing how to do reverse engineering is an advance to the state of the art as there are no published methods hitherto at this level of detail. The documentation produced by the reverse engineering based on the Fusion Method for object oriented systems development is composed by an Object Model, an Operation Model and a Life Cycle Model. An intermediary set of models directly extracted from the code and from a process/data interaction document is also included with the name of Current Systems Analysis Model. The reverse engineering of a software environment for designing reactive systems is shown in detail. This software comprises 30.000 lines of code in C, spread for 495 procedures grouped in 36 modules. This data dictionary-like document was prepared based on documentation contained in several dissertations and papers and mainly on the code itself. The reactive systems software development environment is described as well as its evolution through several versions, and its application is illustrated by designing the statecharts corresponding to an alarm clock. Facilities to specify activities triggered by the statecharts incorporated to the StatSim environment as part of this thesis\' are also discussed and applied to the example. The simulation of the controlling statecharts subjected to different possible events is included through diagrams and logs. This example is also used to illustrate a procedure devised for coupling statecharts and activity diagrams in the specification of reactive systems and for using the software environment to verify this specification. The Fusion Method is compared to other methods for object oriented systems development. The reactive systems development environment based on statecharts is situated among other tools for the development of such systems.
|
192 |
Integração metrologia, CAD e CAM: uma contribuição ao estudo de engenharia reversa. / Metrology, CAD and CAM integration: a contribution to reverse engineering study.Amauri Bravo Ferneda 19 February 1999 (has links)
Engenharia reversa é o conceito de se produzir uma peça tomando como base um original ou modelo físico existentes, sem o uso de desenhos de engenharia. Empresas se voltam para a tecnologia da Engenharia Reversa como um complemento valioso para toda a gama de ferramentas CAD/CAM que elas possuem, devido às dificuldades encontradas quando se necessita trabalhar com superfícies de forma livre. Desta forma, faz-se necessária uma ferramenta que proporcione a inserção das formas deste modelo em um sistema CAD, de forma que se possa usufruir de todas as possibilidades, oferecidas por ele. Neste trabalho, é apresentada uma revisão bibliográfica que aborda a engenharia reversa desde sua origem até as técnicas avançadas existentes atualmente, ou seja, apresentando equipamentos e sistemas específicos usados atualmente para a prática de engenharia reversa. Mostra-se um sistema de engenharia reversa, que foi projetado e implementado realizando a integração desde uma máquina de medir 3 coordenadas até um centro de usinagem CNC com o auxílio de um software CAD comercial, o qual possui módulo de CAM integrado. São apresentados também 3 estudos de casos. / Reverse engineering is the concept of making a part based on an original or existing physical model, without engineering drawings. Companies are using reverse engineering technology as a valuable complement to many of their CAD/CAM tools, due to their difficulties of working with free-form surfaces. It is necessary a tool which provides the insertion of the model forms in the CAD system, therefore enabling to take advantages of all possibilities offered by the system. The Reverse Engineering has developed beyond the traditional copy milling. It is presented a review of the reverse engineering since its origin until recent advanced techniques, where the equipments and specific systems used for reverse engineering practice nowadays are showed. In this work a reverse engineering system has been designed and implemented, which is accomplished by the integration from the coordinate measuring machine until a CNC machining center, by using a commercial CAD software with integrated CAM module. In order to validate the system developed, three case studies are also presented.
|
193 |
Evaluation of code-based information to architectural module identification / Avaliação da relevância de informações do código fonte para identificar módulos da arquitetura de softwareZapalowski, Vanius January 2014 (has links)
Arquitetura de software desempenha um importante papel no desenvolvimento de software, quando explicitamente documentada, ela melhora o entendimento sobre o sistema implementado e torna possível entender a forma com que requisitos não funcionais são tratados. Apesar da relevância da arquitetura de software, muitos sistemas não possuem uma arquitetura documentada, e nos casos em que a arquitetura existe, ela pode estar desatualizada por causa da evolução descontrolada do software. O processo de recuperação de arquitetura de um sistema depende principalmente do conhecimento que as pessoas envolvidas com o software tem. Isso acontece porque a recuperação de arquitetura é uma tarefa que demanda muita investigação manual do código fonte. Pesquisas sobre recuperação de arquitetura objetivam auxiliar esse processo. A maioria dos métodos de recuperação existentes são baseados em dependência entre elementos da arquitetura, padrões arquiteturais ou similaridade semântica do código fonte. Embora as abordagem atuais ajudem na identi cação de módulos arquiteturais, os resultados devem ser melhorados de forma signi cativa para serem considerados con áveis. Então, nesta dissertação, objetivamos melhorar o suporte a recuperação de arquitetura explorando diferentes fontes de informação e técnicas de aprendizado de máquina. Nosso trabalho consiste de uma análise, considerando cinco estudo de casos, da utilidade de usar um conjunto de características de código (features, no contexto de aprendizado de máquina) para agrupar elementos em módulos da arquitetura. Atualmente não são conhecidas as características que afetam a identificação de papéis na arquitetura de software. Por isso, nós avaliamos a relação entre diferentes conjuntos de características e a acurácia obtida por um algoritmo não supervisionado na identificação de módulos da arquitetura. Consequentemente, nós entendemos quais dessas características revelam informação sobre a organização de papéis do código fonte. Nossa abordagem usando características de elementos de software atingiu uma acurácia média significativa. Indicando a relevância das informações selecionadas para recuperar a arquitetura. Além disso, nós desenvolvemos uma ferramenta para auxílio ao processo de recuperação de arquitetura de software. Nossa ferramenta tem como principais funções a avaliação da recuperação de arquitetura e apresentação de diferentes visualizações arquiteturais. Para isso, apresentamos comparações entre a arquitetura concreta e a arquitetura sugerida. / Software architecture plays an important role in the software development, and when explicitly documented, it allows understanding an implemented system and reasoning about how non-functional requirements are addressed. In spite of that, many developed systems lack proper architecture documentation, and if it exists, it may be outdated due to software evolution. The process of recovering the architecture of a system depends mainly on developers' knowledge requiring a manual inspection of the source code. Research on architecture recovery provides support to this process. Most of the existing approaches are based on architectural elements dependency, architectural patterns or source code semantics, but even though they help identifying architectural modules, the obtained results must be signi cantly improved to be considered reliable. We thus aim to support this task by the exploitation of di erent code-oriented information and machine learning techniques. Our work consists of an analysis, involving ve case studies, of the usefulness of adopting a set of code-level characteristics (or features, in the machine learning terminology) to group elements into architectural modules. The characteristics mainly source code metrics that a ect the identi cation of what role software elements play in software architecture are unknown. Then, we evaluate the relationship between di erent sets of characteristics and the accuracy achieved by an unsupervised algorithm the Expectation Maximization in identifying architectural modules. Consequently, we are able to understand which of those characteristics reveal information about the source code structure. By the use of code-oriented information, our approach achieves a signi cant average accuracy, which indicates the importance of the selected information to recover software architecture. Additionally, we provide a tool to support research on architecture recovery providing software architecture measurements and visualizations. It presents comparisons between predicted architectures and concrete architectures.
|
194 |
Modelamento médico: uma integração entre CAD, CAE, engenharia reversa e prototipagem rápida / Medical modeling: an integration among CAD, CAE, reverse engineering and rapid prototypingMarco Antonio Oliveira Coelho 29 April 2003 (has links)
Modelamento médico é uma técnica utilizada por cirurgiões no auxílio da diagnose, comunicação com o paciente, estudos pré-operatórios, definição e simulação de procedimentos cirúrgicos, visando diminuir o tempo cirúrgico e de convalescença do paciente. Em aplicações mais recentes, esta técnica tem sido utilizada no desenvolvimento de próteses personalizadas, possibilitando que reconstituições de grande complexidade sejam feitas de maneira rápida e segura. Resumidamente, a técnica consiste em produzir um protótipo em terceira dimensão do tecido ou deformidade em estudo. Utiliza-se hoje de modernas tecnologias como tomografia computadorizada e prototipagem rápida entre outras, representando um exemplo significativo de integração entre diferentes áreas do conhecimento. Este trabalho apresenta e discute o modelamento médico no que se refere às suas aplicações, enfocando a integração entre as tecnologias de prototipagem rápida, engenharia reversa (RE) e projeto e engenharia assistidos por computador (CAD/CAE). É feita uma descrição dos procedimentos de geração dos modelos médicos usando técnicas de prototipagem rápida a partir de dados obtidos de tomografia computadorizada, e um estudo de sua precisão dimensional e geométrica. São explorados os recursos possibilitados pela integração com sistemas CAD/CAE, e apresentadas aplicações reais das técnicas na área de cirurgias craniofaciais, evidenciando as vantagens de sua utilização e validando os procedimentos propostos. / Medical modeling is a technique used by surgeons in the diagnosis, communication with the patient, preoperative studies, definition and simulation of surgical procedures. It helps to reduce the operative and convalescence time. It consists of producing a prototype in third dimension of the tissue or deformity in study. In some more recent applications, this technique has been used to develop customized prosthesis, enabling that quite complex reconstructions can be made in a safe and fast way. Nowadays, it uses modern technologies as the computer tomography and rapid prototyping, and it represents significant example of integration among different areas of the knowledge. This work presents the medical modeling and discusses its applications, with emphasis in the integration of the technologies of rapid prototyping, reverse engineering (RE) and computer aided design and engineering (CAD/CAE). It is made a description of the procedures to generate the medical models using rapid prototyping techniques starting from computer tomography data, and a study regarding the dimensional and geometric precision of the medical models generated by rapid prototyping. The advantages of the integration with CAD/CAE technologies are shown and a case study is developed aiming to validate the proposed procedures.
|
195 |
Quality Driven Re-engineering FrameworkLiang, Ge, Yu, Liang January 2013 (has links)
Context. Software re-engineering has been identified as a business critical activity to improve legacy systems in industries. It is the process of understanding existing software and improving it, for modified or improved functionality, better maintainability, configurability, reusability, or other quality goals. However, there is little knowledge to integrate software quality attributes into the re-engineering process. It is essential to resolve quality problems through applying software re-engineering processes. Objectives. In this study we perform an in-depth investigation to identify and resolve quality problems by applying software re-engineering processes. At the end, we created a quality driven re-engineering framework. Methods. At first, we conducted a literature review to get knowledge for building the quality driven re-engineering framework. After that, we performed a case study in Ericsson Company to validate the processes of the framework. At last, we carried out an experiment to prove that the identified quality problems has been resolved. Results. We compared three existing re-engineering frameworks and identified their weaknesses. In order to fix the weaknesses, we created a quality driven re-engineering framework. This framework is used to improve software quality through identifying and resolving root cause problems in legacy systems. Moreover, we validated the framework for one type of legacy system by successfully applying the framework in a real case in Ericsson Company. And also, we proved that the efficiency of a legacy system is improved after executing an experiment in Ericsson Company. Conclusions. We conclude that the quality driven re-engineering framework is applicable, and it can improve efficiency of a legacy system. Moreover, we conclude that there is a need for further empirical validation of the framework in full scale industrial trials.
|
196 |
Designing an object-oriented decompiler : Decompilation support for Interactive Disassembler Pro / Design av en objekt-orienterad dekompilator : Dekompilatorstöd för Interactive Disassembler ProEriksson, David January 2002 (has links)
Decompilation, or reverse compilation, takes a computer program and produces high-level code that works like the original source code. This makes it easier to understand a computer program when source code is not available. However, there are very few tools for decompilation available today. This report describes the design and implementation of Desquirr, a decompilation plug-in for Interactive Disassembler Pro. Desquirr has an object-oriented design and performs basic decompilation of programs running on Intel x86 processors. The low-level analysis uses knowledge about specialized compiler constructs, called idioms, to perform a more accurate decompilation. Desquirr implements data flow analysis, meaning the conversion from primitive machine code instructions into code in a high-level language. The major part of the data flow analysis is the Register Copy Propagation which builds high-level expressions from primitive instructions. Control flow analysis, meaning to restore high-level language constructs such as if/else and for loops, is not implemented. A high level representation of a piece of machine code contains the same information as an assembly language representation of the same machine code, but in a format that is easier to comprehend. Symbols such as ?*? and ?+? are used in high-level language expressions, compared to instructions such as ?mul? and ?add? in assembly language. Two small test cases which compares decompiled code with assembly language shows promising results in reducing the amount of information needed to comprehend a program. / Dekompilering, eller omvänd kompilering, tar ett datorprogram och omvandlar det till högnivåspråk som fungerar som den ursprungliga källkoden. Detta gör det lättare att förstå ett datorprogram när källkod inte finns tillgänglig. Det finns väldigt få verktyg för dekompilering tillgängliga idag. Den här rapporten beskriver design och implementation av Desquirr, en dekomplator-plugin för Interactive Disassembler Pro. Desquirr har en objekt-orienterad design och utför grundläggande dekompilering av program som kör på Intel x86-processorer.
|
197 |
Kodgenerering i CASE-verktyg : En undersökning hur CASE-verktyg uppfyller experters kodgenereringskravAndersson, Martin January 2001 (has links)
Denna rapport undersöker krav, tagna från ett ramverk för evaluering av CASE-verktyg i ett kontextuellt sammanhang, i två representativa CASE-verktyg. Ramverket utnyttjar en modell som föreslagits av Lundell och Lings för att extrahera både krav och förväntningar som en organisation (www.it.volvo.com) hade på vad ett CASE-verktyg är och kan utföra. Ramverket extraherar krav i ett organisationell kontext, dvs. utvärderingen utfördes innan verktyget som evaluerades användes i organisationen. Detta indikerar på att kraven inte är knutna till ett specifikt verktyg, samt att CASE-verktyg inte säkert stödjer dessa krav. Resultatet för denna rapport är att viss semantisk förlust uppstod vid transformering av kod och modeller.
|
198 |
Forensic Analysis of G Suite Collaborative ProtocolsMcCulley, Shane 09 August 2017 (has links)
Widespread adoption of cloud services is fundamentally changing the way IT services are delivered and how data is stored. Current forensic tools and techniques have been slow to adapt to new challenges and demands of collecting and analyzing cloud artifacts. Traditional methods focusing only on client data collection are incomplete, as the client may have only a (partial) snapshot and misses cloud-native artifacts that may contain valuable historical information.
In this work, we demonstrate the importance of recovering and analyzing cloud-native artifacts using G Suite as a case study. We develop a tool that extracts and processes the history of Google Documents and Google Slides by reverse engineering the web applications private protocol. Combined with previous work that has focused on API-based acquisition of cloud drives, this presents a more complete solution to cloud forensics, and is generalizable to any cloud service that maintains a detailed log of revisions.
|
199 |
Automatic Web widgets prediction for Web 2.0 access technologiesChen, Alex Qiang January 2013 (has links)
The World Wide Web (Web) has evolved from a collection of static pages that need reloading every time the content changes, into dynamic pages where parts of the page updates independently, without reloading it. As such, users are required to work with dynamic pages with components that react to events either from human interaction or machine automation. Often elderly and visually impaired users are the most disadvantaged when dealing with this form of interaction. Operating widgets require the user to have the conceptual design knowledge of the widget to complete the task. Users must have prior experience with the widget or have to learn to operate it independently, because often no user documentation is available. An automated Widget Prediction Framework (WPF) is proposed to address the issues discussed. It is a pre-emptive approach that predicts different types of widget and their locations in the page. Widgets with similar characteristics and functionalities are categorised based on a definition provided by widget design pattern libraries. Some design patterns are more loosely defined than others, and this causes confusion and ambiguity when identifying them. A formal method to model widgets based on a Widget Ontology was developed. The paradigm of the ontology provides a framework for developers to communicate their ideas, while reducing ambiguity between different types of widget. A Widget Prediction System (WPS) was developed using the concepts of the WPF. To select the types of widget for WPS evaluation, a widget popularity investigation was conducted. Seven of the most popular widgets from the investigation, done across fifty Websites, were selected. To demonstrate how WPF can be applied to predict widgets, fifty websites were used to evaluate the feasibility of the approach using WPS. On average, WPS achieved 61.98% prediction accuracy with two of the widgets > 84% accuracy. These results demonstrated the feasibility of the framework as the backend for tools that support elderly or visually impaired users.
|
200 |
Reverse Engineering Object-Oriented Systems into Umple: An Incremental and Rule-Based ApproachGarzón, Miguel Alejandro January 2015 (has links)
This thesis investigates a novel approach to reverse engineering, in which modeling information such as UML associations, state machines and attributes is incrementally added to code written in Java or C++, while maintaining the system in a textual format. Umple is a textual representation that blends modeling in UML with programming language code. The approach, called umplification, produces a program with behavior identical to the original one, but written in Umple and enhanced with model-level abstractions. As the resulting program is Umple code, our approach eliminates the distinction between code and model. We implemented automated umplification in a tool called the Umplificator. The tool is rule-driven: code, including Umple code, is parsed and processed into an internal representation, which is then operated on by rules; transformed textual code and model, in Umple, is then generated. The rules used to transform code to model have been iteratively refined by using the tool on a variety of open-source software systems.
The thesis consists of three main parts. The first part (Chapters 1 and 2) present the research questions and research methodology, as well as introducing Umple and the background necessary to understand the rest of the thesis. The umplification method is presented at increasing levels of detail through Chapters 3 and 4. Chapters 5 and 6 present the tool and evaluation of our approach, respectively. An analysis of related work, and comparison to our own, appears in Chapter 7. Finally, conclusions and future work directions are presented in Chapter 8.
|
Page generated in 0.1132 seconds