• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 73
  • 16
  • 15
  • 6
  • 4
  • 3
  • 2
  • 2
  • 1
  • 1
  • 1
  • 1
  • 1
  • Tagged with
  • 141
  • 141
  • 58
  • 46
  • 43
  • 37
  • 33
  • 19
  • 19
  • 16
  • 14
  • 13
  • 12
  • 11
  • 11
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
91

Standardy a kódování zdrojového kódu PHP / PHP Coding Standards

Pospíšilík, Oldřich January 2008 (has links)
This master's thesis deals with the methodology of writing the source code and their impact on the effectiveness of programming. Furthermore, the possibility of error detection patterns in the source code of PHP. Specifically, it addressed the possibility of integration tools for static analysis of the working group. The working group was elected by supervisor Ing. Michael Jurosz, which is in charge of the development and expansion of the Internet Information System Technical University of Brno. The works are given the best tools for static analysis of the PHP language. After evaluation and subsequent selection of tools and the procedure is further analysis and informal specifications tools. The following is a detailed proposal, a description of the implementation and integration .. In conclusion, we find an assessment of the whole of this work, added value for working team and the continuation of development tool.
92

[en] SYNTHESIS OF CODE ANOMALIES: REVEALING DESIGN PROBLEMS IN THE SOURCE CODE / [pt] SÍNTESE DE ANOMALIAS DE CÓDIGO: REVELANDO PROBLEMAS DE PROJETO NO CÓDIGO FONTE

WILLIAN NALEPA OIZUMI 03 February 2016 (has links)
[pt] Problemas de projeto afetam quase todo sistema de software, fazendo com que a sua manutenção seja cara e impeditiva. Como documentos de projeto raramente estão disponíveis, desenvolvedores frequentemente precisam identificar problemas de projeto a partir do código fonte. Entretanto, a identificação de problemas de projeto não é uma tarefa trivial por diversas razões. Por exemplo, a materialização de problemas de projeto tende a ser espalhada por diversos elementos de código anômalos na implementação. Infelizmente, trabalhos prévios assumiram erroneamente que cada anomalia de código individual – popularmente conhecida como code smell – pode ser usada como um indicador preciso de problema de projeto. Porém, evidências empíricas recentes mostram que diversos tipos de problemas de projeto são frequentemente relacionados a um conjunto de anomalias de código inter-relacionadas, conhecidas como aglomerações de anomalias de código. Neste contexto, esta dissertação propõe uma nova técnica para a síntese de aglomerações de anomalias de código. A técnica tem como objetivo: (i) buscar formas variadas de aglomeração em um programa, e (ii) sumarizar diferentes tipos de informação sobre cada aglomeração. A avaliação da técnica de síntese baseou-se na análise de diversos projetos de software da indústria e em um experimento controlado com desenvolvedores profissionais. Ambos estudos sugerem que o uso da técnica de síntese ajudou desenvolvedores a identificar problemas de projeto mais relevantes do que o uso de técnicas convencionais. / [en] Design problems affect almost all software projects and make their maintenance expensive and impeditive. As design documents are rarely available, programmers often need to identify design problems from the source code. However, the identification of design problems is not a trivial task for several reasons. For instance, the reification of a design problem tends to be scattered through several anomalous code elements in the implementation. Unfortunately, previous work has wrongly assumed that each single code anomaly - popularly known as code smell - can be used as an accurate indicator of a design problem. There is growing empirical evidence showing that several types of design problems are often related to a set of inter-related code anomalies, the so-called code-anomaly agglomerations, rather than individual anomalies only. In this context, this dissertation proposes a new technique for the synthesis of code-anomaly agglomerations. The technique is intended to: (i) search for varied forms of agglomeration in a program, and (ii) summarize different types of information about each agglomeration. The evaluation of the synthesis technique was based on the analysis of several industry-strength software projects and a controlled experiment with professional programmers. Both studies suggest the use of the synthesis technique helped programmers to identify more relevant design problems than the use of conventional techniques.
93

Learning to Edit Code : Towards Building General Purpose Models for Source Code Editing

Chakraborty, Saikat January 2022 (has links)
The way software developers edit code day-to-day tends to be repetitive, often using existing code elements. Many researchers have tried to automate the repetitive code editing process by mining specific change templates. However, such templates are often manually implemented for automated applications. Consequently, such template-based automated code editing is very tedious to implement. In addition, template-based code editing is often narrowly-scoped and low noise tolerant. Machine Learning, specially deep learning-based techniques, could help us solve these problems because of their generalization and noise tolerance capacities. The advancement of deep neural networks and the availability of vast open-source evolutionary data opens up the possibility of automatically learning those templates from the wild and applying those in the appropriate context. However, deep neural network-based modeling for code changes, and code, in general, introduces some specific problems that need specific attention from the research community. For instance, source code exhibit strictly defined syntax and semantics inherited from the properties of Programming Language (PL). In addition, source code vocabulary (possible number of tokens) can be arbitrarily large. This dissertation formulates the problem of automated code editing as a multi-modal translation problem, where, given a piece of code, the context, and some guidance, the objective is to generate edited code. In particular, we divide the problem into two sub-problems — source code understanding and generation. We empirically show that the deep neural networks (models in general) for these problems should be aware of the PL-properties (i.e., syntax, semantics). This dissertation investigates two primary directions of endowing the models with knowledge about PL-properties — (i) explicit encoding: where we design models catering to a specific property, and (ii) implicit encoding: where we train a very-large model to learn these properties from very large corpus of source code in unsupervised ways. With implicit encoding, we custom design the model to cater to the need for that property. As an example of such models, we developed CODIT — a tree-based neural model for syntactic correctness. We design CODIT based on the Context Free Grammar of the programming language. Instead of generating source code, CODIT first generates the tree structure by sampling the production rule from the CFG. Such a mechanism prohibits infeasible production rule selection. In the later stage, CODIT generates the edited code conditioned on the tree generated earlier. Suchconditioning makes the edited code syntactically correct. CODIT showed promise in learning code edit patterns in the wild and effectiveness in automatic program repair. In another empirical study, we showed that a graph-based model is better suitable for source code understanding tasks such as vulnerability detection. On the other hand, with implicit encoding, we use a very large (with several hundred million parameters) yet generic model. However, we pre-train these models on a super-large (usually hundreds of gigabytes) collection of source code and code metadata. We empirically show that if sufficiently pre-trained, such models are capable enough to learn PL properties such as syntax and semantics. In this dissertation, we developed two such pre-trained models, with two different learning objectives. First, we developed PLBART— the first-ever pre-trained encoder-decoder-based model for source code and show that such pre-train enables the model to generate syntactically and semantically correct code. Further, we show an in-depth empirical study on using PLBART in automated code editing. Finally, we develop another pre-trained model — NatGen to encode the natural coding convention followed by developers into the model. To design NatGen, we first deliberately modify the code from the developers’ written version preserving the original semantics. We call such transformations ‘de-naturalizing’ transformations. Following the previous studies on induced unnaturalness in code, we defined several such ‘de-naturalizing’ transformations and applied those to developer-written code. We pre-train NatGen to reverse the effect of these transformations. That way, NatGen learns to generate code similar to the developers’ written by undoing any unnaturalness induced by our forceful ‘de-naturalizing‘ transformations. NatGen has performed well in code editing and other source code generation tasks. The models and empirical studies we performed while writing this dissertation go beyond the scope of automated code editing and are applicable to other software engineering automation problems such as Code translation, Code summarization, Code generation, Vulnerability detection,Clone detection, etc. Thus, we believe this dissertation will influence and contribute to the advancement of AI4SE and PLP.
94

Deep Learning Approaches for Clustering Source Code by Functionality / Djupinlärningsmetoder för gruppering av källkod efter funktionalitet

Hägglund, Marcus January 2021 (has links)
With the rise of artificial intelligence, applications for machine learning can be found in nearly everyaspect of modern life, from healthcare and transportation to software services like recommendationsystems. Consequently, there are now more developers engaged in the field than ever - with the numberof implementations rapidly increasing by the day. In order to meet the new demands, it would be usefulto provide services that allow for an easy orchestration of a large number of repositories. Enabling usersto easily share, access and search for source code would be beneficial for both research and industryalike. A first step towards this is to find methods for clustering source code by functionality. The problem of clustering source code has previously been studied in the literature. However, theproposed methods have so far not leveraged the capabilities of deep neural networks (DNN). In thiswork, we investigate the possibility of using DNNs to learn embeddings of source code for the purpose ofclustering by functionality. In particular, we evaluate embeddings from Code2Vec and cuBERT modelsfor this specific purpose. From the results of our work we conclude that both Code2Vec and cuBERT are capable of learningsuch embeddings. Among the different frameworks that we used to fine-tune cuBERT, we found thebest performance for this task when fine-tuning the model under the triplet loss criterion. With thisframework, the model was capable of learning embeddings that yielded the most compact and well-separated clusters. We found that a majority of the cluster assignments were semantically coherent withrespect to the functionalities implemented by the methods. With these results, we have found evidenceindicating that it is possible to learn embeddings of source code that encode the functional similaritiesamong the methods. Future research could therefore aim to further investigate the possible applicationsof the embeddings learned by the different frameworks. / Med den avsevärda ökningen av användandet av artificiell intelligens går det att finna tillämpningar förmaskininlärningsalgoritmer i nästan alla aspekter av det moderna livet, från sjukvård och transport tillmjukvarutjänster som rekommendationssystem. Till följd av detta så är det fler utvecklare än någonsinengagerade inom området, där antalet nya implementationer ökar för var dag. För att möta de nyakraven skulle det vara användbart att kunna tillhandahålla tjänster som möjliggör en enkel hantering avett stort antal kodförråd. Att göra det möjligt för användare att enkelt dela, komma åt och söka efterkällkod skulle vara till nytta inom både forskning och industri. Ett första steg mot detta är att hittametoder som gör det möjligt att klustra källkod med avseende på funktionalitet. Problemet med klustring av källkod är något som har tidigare studerats. De föreslagna metoderna hardock hittils inte utnyttjat kapaciteten hos djupa neurala nätverk (DNN). I detta arbete undersöker vimöjligheten att använda DNN för inlärning av inbäddningar av källkod i syfte att klustra med avseendepå funktionalitet. I synnerhet så utvärderar vi inbäddningar från Code2Vec- och cuBERT-modeller fördetta specifika ändamål. Från resultatet av vårt arbete drar vi slutsatsen att både Code2Vec och cuBERT har kapacitet för attlära sig sådana inbäddningar. Bland de olika ramverken som vi undersökte för att finjustera cuBERT,fann vi att modellen som finjusterades under triplet-förlustkriteriet var bäst lämpad för denna uppgift.Med detta ramverk kunde modellen lära sig inbäddningar som resulterade i de mest kompakta och välseparerade klusterna, där en majoritet av klustertilldelningarna var semantiskt sammanhängande medavseende på funktionaliteten som metoderna implementerade. Med dessa resultat har vi funnit beläggsom tyder på att det är möjligt att lära sig inbäddning av källkod som bevarar och åtger funktionellalikheter mellan metoder. Framtida forskning kan därför syfta till att ytterligare undersöka de olikamöjliga användningsområdena för de inbäddningar som lärts in inom de olika ramverken.
95

Mining Software Repositories to Support Software Evolution

Kagdi, Huzefa H. 15 July 2008 (has links)
No description available.
96

An Empirical Study Investigating Source Code Summarization Using Multiple Sources of Information

Sama, Sanjana 30 May 2018 (has links)
No description available.
97

Un formalisme pour la traçabilité des transformations

Lemoine, Mathieu 12 1900 (has links)
Dans le développement logiciel en industrie, les documents de spécification jouent un rôle important pour la communication entre les analystes et les développeurs. Cependant, avec le temps, les changements de personel et les échéances toujours plus courtes, ces documents sont souvent obsolètes ou incohérents avec l'état effectif du système, i.e., son code source. Pourtant, il est nécessaire que les composants du système logiciel soient conservés à jour et cohérents avec leurs documents de spécifications pour faciliter leur développement et maintenance et, ainsi, pour en réduire les coûts. Maintenir la cohérence entre spécification et code source nécessite de pouvoir représenter les changements sur les uns et les autres et de pouvoir appliquer ces changements de manière cohérente et automatique. Nous proposons une solution permettant de décrire une représentation d'un logiciel ainsi qu'un formalisme mathématique permettant de décrire et de manipuler l'évolution des composants de ces représentations. Le formalisme est basé sur les triplets de Hoare pour représenter les transformations et sur la théorie des groupes et des homomorphismes de groupes pour manipuler ces transformations et permettrent leur application sur les différentes représentations du système. Nous illustrons notre formalisme sur deux représentations d'un système logiciel : PADL, une représentation architecturale de haut niveau (semblable à UML), et JCT, un arbre de syntaxe abstrait basé sur Java. Nous définissons également des transformations représentant l'évolution de ces représentations et la transposition permettant de reporter les transformations d'une représentation sur l'autre. Enfin, nous avons développé et décrivons brièvement une implémentation de notre illustration, un plugiciel pour l'IDE Eclipse détectant les transformations effectuées sur le code par les développeurs et un générateur de code pour l'intégration de nouvelles représentations dans l'implémentation. / When developing software system in industry, system specifications are heavily used in communication among analysts and developers. However, system evolution, employee turn-over and shorter deadlines lead those documents either not to be up-to-date or not to be consistent with the actual system source code. Yet, having up-to-date documents would greatly help analysts and developers and reduce development and maintenance costs. Therefore, we need to keep those documents up-to-date and consistent. We propose a novel mathematical formalism to describe and manipulate the evolution of these documents. The mathematical formalism is based on Hoare triple to represent the transformations and group theory and groups homomorphisms to manipulate these transformations and apply them on different representations. We illustrate our formalism using two representation of a same system: PADL, that is an abstract design specification (similar to UML), and JCT, that is an Abstract Syntax Tree for Java. We also define transformations describing their evolutions, and transformations transposition from one representation to another. Finally, we provide an implementation of our illustration, a plugin for the Eclipse IDE detecting source code transformations made by a developer and a source code generator for integrating new representations in the implementation.
98

Génération automatique de configurations et de scénarios d'utilisation d'outils de visualisation à partir de spécifications de tâches d'analyse de logiciels

Sfayhi, Ahmed 04 1900 (has links)
Nous proposons une approche qui génère des scénarios de visualisation à partir des descriptions de tâches d'analyse de code. La dérivation de scénario est considérée comme un processus d'optimisation. Dans ce contexte, nous évaluons différentes possibilités d'utilisation d'un outil de visualisation donnée pour effectuer la tâche d'analyse, et sélectionnons le scénario qui nécessite le moins d'effort d'analyste. Notre approche a été appliquée avec succès à diverses tâches d'analyse telles que la détection des défauts de conception. / We propose an approach that derives interactive visualization scenarios from descriptions of code analysis tasks. The scenario derivation is treated as an optimization process. In this context, we evaluate different possibilities of using a given visualization tool to perform the analysis task, and select the scenario that requires the least effort from the analyst. Our approach was applied successfully to various analysis tasks such as design defect detection and feature location.
99

Metodologia para projeto de biorreatores industriais via otimização multiobjetivo com base em parâmetros de desempenho calculados por técnicas de CFD / Methodology for industrial bioreactor design via multiobjective optimization based on performance parameters calculated by CFD techniques

Ansoni, Jonas Laerte 21 May 2015 (has links)
A crescente demanda por biocombustíveis e a concorrência dos combustíveis fósseis torna necessária a otimização dos meios já existentes e o desenvolvimento de novas tecnologias para produção de biocombustíveis, principalmente em projetos envolvendo biorreatores e fotobiorreatores (FBR) industriais. A dinâmica dos fluidos computacional (CFD) vem sendo utilizada em vários trabalhos para o estudo de parâmetros fluidodinâmicos que podem influenciar no rendimento dos processos químicos envolvidos, como tensão de cisalhamento, perfis de velocidade, tempo de residência e a influência da geometria sobre esses parâmetros. Contudo, não existe ainda um número abrangente de trabalhos que utilize técnicas de otimização acopladas com a resolução numérica do problema fluidodinâmico. Em alguns estudos, algoritmos de otimização são utilizados para determinar os melhores coeficientes das reações químicas. No entanto, não há estudos, até o momento, que reportem a otimização multiobjetivo simultânea dos parâmetros geométricos e do escoamento aplicados a equipamentos da indústria sucro-energética. Neste contexto, o presente trabalho de pesquisa tem como objetivo contribuir para o avanço científico e tecnológico através da implementação de um software aberto (PyCFD-O) que permita o acoplamento CFD-otimização e o desenvolvimento das bases de uma metodologia de projeto otimizado bem como de operação de biorreatores e FBRs de escala industrial. O PyCFD-O foi testado em dois estudos de caso que podem ser estendidos a um fermentador contínuo e um FBR. Os parâmetros geométricos de ambos os reatores foram otimizados de forma a minimizar simultaneamente a tensão de cisalhamento e a variância da distribuição do tempo de residência. O software PyCFD-O mostrou-se robusto, revelando que o processo global de otimização realiza de fato a busca pela fronteira de Pareto. Além da obtenção das geometrias otimizadas, também foram discutidos a influência dos parâmetros geométricos na hidrodinâmica do escoamento em ambos os casos. / The growing demand for biofuels and its competition with fossil fuels create the need to optimize the existing resources and development of new technologies for production of biofuels, particularly in projects involving industrial bioreactors and photobioreactors (PBR). Computational fluid dynamics (CFD) has been used in several studies for the study of fluid dynamics parameters that can influence the performance of the chemical process involved, such as shear stress, velocity profiles, residence time and the influence of these parameters on the reactor geometry. However, there are lacks of studies that utilize optimization techniques coupled with the numerical resolution of the fluid dynamic problem. The use of optimization algorithms has been reported in some cases, but there have not been reports on studies combining the optimization of flow parameters and multiobjective algorithms to choose ideal geometric parameters applied to the equipment of the sugar-energy industry. In this context, this research project aims to contribute to the advancement of scientific and technological knowledge trhough the implementation of open source software (PyCFD-O) for the CFD-optimization coupling and the development of the bases of a methodology for optimal design and operation of industrial scale bioreactors and PBR. The PyCFD-O software was tested in two case studies with characteristics that can be extended to a continuos fermenter and PBR. The geometric parameters of both reactors were simultaneously optimized in order to minimize the shear stress and the variance of residence time distribuition. The PyCFD-O software showed robustness, revealing that overall optimization process actually performs the search of Pareto frontier. In addition to the geometry optimization, the influence of the geometrical parameters of the hydrodynamic of the flow was discussed in both case studies.
100

Uma abordagem unificada para especificar e checar restrições em múltiplas linguagens de programação por meio de um analisador estático no contexto de um juiz on-line

Santos, Kleber Tarcísio Oliveira 28 February 2018 (has links)
The teaching and learning process of computer programming is a complex task which requires a lot of practice and creativity. Usually, there are numerous solutions to the same problem. Therefore, the student needs that his solutions are evaluated quickly for a faster and effective learning. To face these challenges, teachers and students can rely on resources from the evolution of Information and Communication Technology. Virtual learning environments and online judge systems are attractive alternatives used in this context. This work presents a unified approach to specify and check source code restrictions supported by a static analyzer. Although current tools are able to indicate if the program produced the expected output from a given input, not all are able to determine if the student used (or not) a given programming language construct, such as creating a function and using it in the program. Among those that are capable, there are problems that were solved in the approach proposed in this work, such as: ease of use, unified approach and degree of flexibility. In addition, this work presents an analysis of the database of The Huxley with the purpose of discovering the main restrictions of source code used by the teachers and attended by the students. This analysis was done based on data obtained from the use of the developed static analyzer and in conjunction with a survey applied to the teachers of introduction to programming with the purpose of knowing the main restrictions that would be used by them if they had a tool to specify and check restrictions. / O processo de ensino e aprendizagem da programação de computadores é uma tarefa complexa que requer bastante prática e criatividade. Geralmente há inúmeras soluções para um mesmo problema. Por isso, o aluno precisa que suas soluções sejam avaliadas rapidamente visando um aprendizado mais ágil e eficaz. Para enfrentar esses desafios, os professores e alunos podem contar com recursos provenientes da evolução da Tecnologia da Informação e Comunicação. Os ambientes de aprendizagem virtual e os sistemas de juiz on-line são alternativas atrativas utilizadas nesse contexto. Este trabalho apresenta uma abordagem unificada de especificação e checagem de restrições de código-fonte apoiada por um analisador estático. Apesar das ferramentas atuais serem capazes de indicar se o programa produziu a saída esperada a partir de uma entrada fornecida, nem todas são capazes de determinar se o aluno utilizou (ou não) determinada construção de linguagem de programação, como por exemplo criar uma função e utilizá-la no programa. Entre as que são capazes, existem problemas que foram sanados na abordagem proposta neste trabalho, como: facilidade de uso, abordagem unificada e grau de flexibilidade. Além disto, este trabalho conta com uma análise da base de dados do The Huxley com o objetivo de descobrir quais são as principais restrições de código-fonte utilizadas pelos professores e atendidas pelos alunos. Esta análise foi feita com os dados obtidos da aplicação do analisador estático de código-fonte desenvolvido e em conjunto com um survey aplicado aos professores de introdução à programação com o propósito de conhecer as principais restrições que seriam utilizadas por eles se possuíssem uma ferramenta de especificação e checagem de restrições. / São Cristóvão, SE

Page generated in 0.3683 seconds