Spelling suggestions: "subject:"fatoração"" "subject:"editoração""
51 |
Investigando a refatoração automática de software baseada em algoritmos de otimização multiobjetivosSilva Júnior, Leonardo Bezerra 19 September 2014 (has links)
Refactoring is a process that aims to change the code without changing the visible behavior and is used to correct structural problems in software, arising from unplanned maintenance or an unstructured development process. The mechanisms behind the refactoring process, however, are relatively complex and dangerous if done manually (for each refactoring is necessary to evaluate a number of pre and post-conditions to ensure that the behavior is not changed). Many current development tools facilitate the refactorings usage, but in a semiautomatic way, so that the programmer must detect the need for a specific refactoring. New techniques have emerged in an effort to approximate the software engineering to other engineerings with respect to process automation. In this context, the application of search algorithms arises as a means to provide support to software maintenance by automatically applying refactorings. This work fits in this context, Search-Based Software Refactoring, and investigates in detail the topic, including the proposition of a specific algorithm for the area, entitled MultiObjective Particle Swarm Optimization with Path Relinking (MOPSOPR). An open source framework which enables the search and automatic application of refactoring sequences has also been proposed. This framework allows exploration of the problem of automatic refactoring through various optimization algorithms. In particular, in this msc dissertation, the framework is used to enable comparative analysis of the proposed algorithm with the most used algorithm in the literature of this subject, the Non-Dominated Sorting Genetic Algorithm-II (NSGA-II). Several experiments were conducted, which included real-world softwares. Despite showing some positive results, the overall assessment does not indicate a unanimous superiority of the proposed algorithm compared to the NSGA-II in several experiments. However, the study revealed interesting research frontiers to be explored in future work. / Refatoração é um processo que objetiva a mudança de código sem a mudança de comportamento visível e é utilizada para corrigir problemas estruturais no software, advindos de manutenções sem planejamento ou de um processo de desenvolvimento desestruturado. Os mecanismos por trás do processo de refatoração, entretanto, são relativamente complexos e perigosos se feitos manualmente (para cada refatoração é preciso avaliar uma série de pré e pós-condições para garantir que o comportamento não seja alterado). Muitas ferramentas de desenvolvimento atuais facilitam as refatorações, mas de forma semiautomatizada, de maneira que o programador deve perceber a necessidade de uma refatoração específica. Novas técnicas tem surgido em um esforço para aproximar a engenharia de software das outras engenharias no que diz respeito à automatização de processos. Neste contexto, a aplicação de algoritmos de busca surge como uma proposta para prover suporte à manutenção de software através da aplicação automática de refatorações. Este trabalho se insere neste contexto, o de Refatoração de Software Baseada em Buscas (do inglês Search-Based Software Refactoring), e investiga detalhadamente o tema, propondo inclusive um algoritmo específico para a área, intitulado MultiObjective Particle Swarm Optimization with Path Relinking (MOPSOPR). Um framework open-source que possibilita a busca e aplicação automática de sequências de refatorações foi também proposto. Este framework permite a exploração do problema de refatoração automática através de vários algoritmos de otimização. Em particular, neste trabalho o framework foi utilizado para viabilizar análises comparativas do algoritmo proposto com o algoritmo mais utilizado na literatura deste tema, o Non-Dominated Sorting Genetic Algorithm- II (NSGA-II). Vários experimentos foram conduzidos, inclusive considerando-se softwares reais. Apesar de apresentar alguns resultados positivos, a avaliação geral não indica uma superioridade unânime do algoritmo proposto em relação ao NSGA-II nos diversos experimentos realizados. Entretanto, o estudo realizado revelou interessantes fronteiras de investigação a serem exploradas em trabalhos futuros.
|
52 |
Padrões para introduzir novas ideias na indústria de software / Patterns for introducing new ideas in the software industryCukier, Daniel 11 May 2009 (has links)
A indústria de software é muito dinâmica e novas ideias surgem a todo instante em todas as partes do mundo. Nem sempre é fácil fazer com que essas ideias sejam adotadas, pois, para isso, é preciso fazer as pessoas mudarem sua forma de pensar. Deve-se sempre considerar o fato de que o ser humano, diferente do computador, é inusitado e imprevisível. Apesar disso, podemos encontrar determinados padrões de comportamento, que não resolvem todas as questões, mas ajudam a lidar com situações e continuar caminhando para atingir um determinado objetivo. Trazemos nesta dissertação uma pequena introdução sobre o conceito de padrões e, em seguida, apresentamos 48 Padrões para Introduzir Novas Ideias, propostos por Linda Rising e Mary Lynn Manns. Esses Padrões têm o objetivo de ajudar na difícil tarefa de introduzir uma nova ideia dentro de alguma organização, pois se essa ideia pressupõe mudanças culturais, o trabalho é ainda mais complicado. Propomos também quatro novos padrões, que podem ser incorporados ao catálogo original. Num desses novos padrões, mostramos a importância de se usar atividades artísticas no dia-a-dia de pessoas que trabalham com desenvolvimento de software; mostramos também como a Arte pode nos ajudar a introduzir novas ideias. Pesquisamos algumas práticas como teatro, pintura, poesia, música e meditação. Pudemos encontrar elementos de ligação entre o lado puramente matemático e bem definido do ser humano e o seu lado abstrato, analógico e artístico. Desenvolver software deve ser encarado como uma atividade humana, acima da questão técnica e puramente lógica. Existem pessoas envolvidas no processo: as que usam e as que criam o software. Existe uma barreira que separa os programadores das pessoas que usam o software. Essa barreira pode ser quebrada se pessoas da Computação começarem a desenvolver, além das habilidades lógicas que já lhes são óbvias, habilidades artísticas e de relações humanas. / The software industry is very dynamic and new ideas arise all the time from virtually any part of the world. It is not guaranteed that these ideas will be adopted, mainly because, among other obstacles, the solution may imply in having people change their way of thinking. Different from people, computers receive well defined commands and execute them precisely. We should take into account that human beings are independent and unpredictable. Despite of this unpredictability, we can find some behavioral patterns to help us deal with several situations, allowing us to achieve our objectives. This work brings a small introduction into the pattern concept and a presentation of the 48 Patterns for Introducing New Ideas proposed by Linda Rising and Mary Lynn Manns. These patterns provide some insight into the difficult task of introducing new ideas into any organization. We show that if the idea brings cultural changes of any kind, then the task is even more complicated. We also propose four new patterns that can be added to the original catalog. In one of these new patterns, we show the great importance of combining artistic activities with the day-to-day activities of people who work in software development and how Arts can help us to introduce new ideas. The study of some practices such as theater, painting, poetry, music and meditation allowed us to find some connective elements between the purely mathematical side of the human mind and its creative, artistic one. Software development must be approached as a ``human activity\'\', rather than a solely technical or logical one. Above all, there are two groups of people involved in the process: software creators and users. Although a barrier appears to separate these two groups, in this thesis we will show evidences that this division or gap can be bridged if IT professionals nurture their artistic and interpersonal relationship skills in addition to their obvious technical ones.
|
53 |
Padrões para introduzir novas ideias na indústria de software / Patterns for introducing new ideas in the software industryDaniel Cukier 11 May 2009 (has links)
A indústria de software é muito dinâmica e novas ideias surgem a todo instante em todas as partes do mundo. Nem sempre é fácil fazer com que essas ideias sejam adotadas, pois, para isso, é preciso fazer as pessoas mudarem sua forma de pensar. Deve-se sempre considerar o fato de que o ser humano, diferente do computador, é inusitado e imprevisível. Apesar disso, podemos encontrar determinados padrões de comportamento, que não resolvem todas as questões, mas ajudam a lidar com situações e continuar caminhando para atingir um determinado objetivo. Trazemos nesta dissertação uma pequena introdução sobre o conceito de padrões e, em seguida, apresentamos 48 Padrões para Introduzir Novas Ideias, propostos por Linda Rising e Mary Lynn Manns. Esses Padrões têm o objetivo de ajudar na difícil tarefa de introduzir uma nova ideia dentro de alguma organização, pois se essa ideia pressupõe mudanças culturais, o trabalho é ainda mais complicado. Propomos também quatro novos padrões, que podem ser incorporados ao catálogo original. Num desses novos padrões, mostramos a importância de se usar atividades artísticas no dia-a-dia de pessoas que trabalham com desenvolvimento de software; mostramos também como a Arte pode nos ajudar a introduzir novas ideias. Pesquisamos algumas práticas como teatro, pintura, poesia, música e meditação. Pudemos encontrar elementos de ligação entre o lado puramente matemático e bem definido do ser humano e o seu lado abstrato, analógico e artístico. Desenvolver software deve ser encarado como uma atividade humana, acima da questão técnica e puramente lógica. Existem pessoas envolvidas no processo: as que usam e as que criam o software. Existe uma barreira que separa os programadores das pessoas que usam o software. Essa barreira pode ser quebrada se pessoas da Computação começarem a desenvolver, além das habilidades lógicas que já lhes são óbvias, habilidades artísticas e de relações humanas. / The software industry is very dynamic and new ideas arise all the time from virtually any part of the world. It is not guaranteed that these ideas will be adopted, mainly because, among other obstacles, the solution may imply in having people change their way of thinking. Different from people, computers receive well defined commands and execute them precisely. We should take into account that human beings are independent and unpredictable. Despite of this unpredictability, we can find some behavioral patterns to help us deal with several situations, allowing us to achieve our objectives. This work brings a small introduction into the pattern concept and a presentation of the 48 Patterns for Introducing New Ideas proposed by Linda Rising and Mary Lynn Manns. These patterns provide some insight into the difficult task of introducing new ideas into any organization. We show that if the idea brings cultural changes of any kind, then the task is even more complicated. We also propose four new patterns that can be added to the original catalog. In one of these new patterns, we show the great importance of combining artistic activities with the day-to-day activities of people who work in software development and how Arts can help us to introduce new ideas. The study of some practices such as theater, painting, poetry, music and meditation allowed us to find some connective elements between the purely mathematical side of the human mind and its creative, artistic one. Software development must be approached as a ``human activity\'\', rather than a solely technical or logical one. Above all, there are two groups of people involved in the process: software creators and users. Although a barrier appears to separate these two groups, in this thesis we will show evidences that this division or gap can be bridged if IT professionals nurture their artistic and interpersonal relationship skills in addition to their obvious technical ones.
|
Page generated in 0.0363 seconds