• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 36
  • 11
  • Tagged with
  • 47
  • 47
  • 47
  • 45
  • 13
  • 13
  • 12
  • 10
  • 10
  • 9
  • 7
  • 7
  • 7
  • 6
  • 6
  • 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.
31

[en] ENGINEERING SELF-ORGANIZING EMERGENT MULTI-AGENT SYSTEMS: A DESIGN METHOD AND ARCHITECTURE / [pt] ENGENHARIA DE SISTEMAS MULTI-AGENTES AUTO- ORGANIZÁVEIS: UM MÉTODO DE PROJETO E ARQUITETURA

MAIRA ATHANAZIO CERQUEIRA GATTI 24 September 2010 (has links)
[pt] Arquitetos de software utilizam cada vez mais mecanismos de auto- organização para projetar sistemas distribuídos em um ambiente dinâmico, com ruído e imprevisível. Neste cenário, além de não existir uma entidade centralizadora que possua o conhecimento completo do estado do ambi- ente como um todo, mecanismos de auto-organização são principalmente inspirados pela natureza e permitem o comportamento com controle de- scentralizado. Existem duas linhas de pesquisa que direcionam esta tese: a primeira, como é o caso de qualquer paradigma de engenharia de soft- ware, o sucesso e abrangência de uso de sistemas auto-organizáveis requerem notações que exploram o uso de abstrações relacionadas a auto-organização e promovam a rastreabilidade a partir de modelos de projeto à código, e re- querem métodos de engenharia para prover know-how e guiar um engenheiro durante o projeto da aplicação. A segunda linha de pesquisa foca no incen- tivo do reuso de software em sistemas auto-organizáveis. Os objetivos desta tese são: prover um método de engenharia baseado em simulação para apoiar o projeto, desenvolvimento, simulação, validação e refinamento de sistemas multi-agentes auto-organizáveis; e prover uma arquitetura baseada em sim- ulação. Um projeto arquitetural ajuda no desenvolvimento de uma estrutura de programa modular e na representação dos relacionamentos de controle entre módulos e encoraja o engenheiro de software a se concentrar no pro- jeto arquitetural antes de se preocupar com otimizações e código. Esta tese apresenta: um ciclo de vida de desenvolvimento iterativo baseado no Pro- cesso Unificado, SSOA - uma arquitetura de auto-organização baseada em simulação, e o framework que implementa a arquitetura. O método de pro- jeto e a arquitetura foram avaliados através de três domínios de aplicação diferentes: veículos guiados automatizados, contratos que governam sistemas multi-agentes emergentes, e modelagem computacional do comportamento de células-tronco. / [en] Software architects are increasingly relying on self-organizing mechanisms to design distributed systems within a dynamic, noisy and unpredictable envi- ronment. At any point in time, no centralized entity has complete knowledge of the state of the environment as a whole and self-organizing mechanisms are mainly naturally-inspired which enables the decentralized control. There are two tracks that drive the research in this thesis: first, as it is the case with any new software engineering paradigm, the successful and widespread deployment of self-organizing systems require notations that explore the use of self-organizing related abstractions and promote the traceability from the design models to code, and engineering methods that provides know-how and guides an engineer during an application design. The second research track is to promote software reuse of self-organizing systems. This thesis’s goals are: to provide a simulation-based engineering method to support the design, development, simulation, validation and refinement of self-organizing multi-agent systems; and to provide a simulation-based architecture. An ar- chitectural design helps on the development of a modular program structure and on the representation of the control relationships between modules and encourages the software engineer to concentrate on architectural design be- fore worrying about optimizations or code. We present: an iterative develop- ment life-cycle based on a customization of the Unified Process, the SSOA – Simulation-based Self-Organizing Architecture –, and the framework that implements the architecture. We have evaluated the design method and ar- chitecture using three different application domains: the automated guided vehicles, the contracts that govern emergent multi-agent systems, and the stem cell behavior computational modeling.
32

[en] MAS-SCHOOL E ASYNC: A METHOD AND A FRAMEWORK FOR BUILDING INTELLIGENT AGENTS / [pt] MAS-SCHOOL E ASYNC: UM MÉTODO E UM FRAMEWORK PARA CONSTRUÇÃO DE AGENTES INTELIGENTES

JOSE ALBERTO RODRIGUES PEREIRA SARDINHA 08 July 2005 (has links)
[pt] Agentes de Software é uma tecnologia que permite criar simuladores e sistemas inteligentes que tomam decisões automaticamente. A primeira contribuição dessa tese é o MAS-School, um método para modelar e implementar agentes de software inteligentes desde as primeiras fases de desenvolvimento. Esse método também apresenta várias orientações de como incluir aprendizado na fase de design e implementação. O método apresenta no final uma estratégia incremental de desenvolvimento para permitir a avaliação do desempenho das técnicas de machine learning. A segunda contribuição dessa tese é o framework ASYNC. O ASYNC é composto por um conjunto de ferramentas de engenharia de software para auxiliar a construção de sistemas baseados em agentes assíncronos, cooperativos e inteligentes. Esta tese apresenta quatro estudos de casos complexos desenvolvidos com agentes inteligentes para exemplificar o uso do método e framework. A primeira aplicação apresenta um sistema baseado em agentes para criar promoções em um mercado varejista utilizando o conceito de agregação de produtos. A segunda aplicação apresenta um mercado virtual para compra e venda de bens. A terceira aplicação é um sistema multi-agente distribuído para um complexo cenário de procurement em leilões simultâneos e interdependentes. Essa aplicação participou do Trading Agent Competition em 2004 e obteve a terceira colocação. A quarta aplicação é um sistema multi-agente para um Supply Chain Management. / [en] The agent technology is used to develop systems that perform several complex tasks. This thesis presents the MAS-School method for modeling and implementing intelligent agent-based systems. The method presents a systematic approach to support a disciplined introduction of machine learning techniques in multi-agent systems from an early stage of design. The proposed approach encompasses guidelines to both the design and implementation phases of an agent-based system. It is based on an incremental development strategy that largely relies on simulation and testing techniques. This thesis also presents the ASYNC framework that is composed of software engineering tools for building agent based system for asynchronous, cooperative and intelligent agents. This thesis presents four complex applications that used the proposed method and framework in the design and implementation phase. The first case study presents an application that discovers the most appealing offerings for consumers in a retail market. The second case study presents a virtual marketplace for buying and selling goods with automatic negotiation. The third case study is a multi-agent system for a complex procurement scenario with interdependent and simultaneous auctions. This system achieved the third place in the 2004 TAC Classic competition. The fourth case study is a multi-agent system for a PC manufacturer scenario based on sourcing of components, manufacturing of PC's and sales to customers.
33

[en] A TOOL FOR THE AUTOMATIC GENERATION AND EXECUTION OF FUNCTIONAL TESTS BASED ON THE TEXTUAL USE CASE DESCRIPTION / [pt] UMA FERRAMENTA PARA GERAÇÃO E EXECUÇÃO AUTOMÁTICA DE TESTES FUNCIONAIS BASEADOS NA DESCRIÇÃO TEXTUAL DE CASOS DE USO

THIAGO DELGADO PINTO 16 July 2015 (has links)
[pt] Esta dissertação apresenta uma solução para a geração e execução automática de testes funcionais a partir da descrição textual de casos de uso, visando verificar se determinada aplicação atende aos requisitos funcionais definidos por esta documentação. A ferramenta construída é capaz de gerar casos de teste semânticos valorados, transformá-los em código-fonte (para Java Swing e os frameworks de teste TestNG e FEST, na versão atual), executá-los, coletar os resultados e analisar se os casos de uso da aplicação atendem ou não a estes requisitos. Dentre os principais diferenciais da solução construída estão a cobertura de cenários de teste que envolvem múltiplos casos de uso, a cobertura de cenários envolvendo recursão, a possibilidade da definição de regras de negócio sobre dados existentes em bancos de dados de teste, a geração automática dos valores fornecidos nos testes e a geração de testes funcionais semânticos, num formato independente de linguagem de programação e frameworks de teste. / [en] This master s dissertation presents a solution for the automatic generation and execution of functional tests based on the textual use case description and aims to verify whether certain application matches its functional requirements defined by this documentation. The constructed tool is capable of generating valued semantic test cases, of transforming them into source code (for Java Swing and the TestNG and FEST frameworks, in the current version), of executing them, of collecting the results and of analyzing whether the application s use cases matches (or not) its requirements. The solution main differentials includes the coverage of test scenarios that involves more than one use case, the coverage of scenarios containing recursive flows, the possibility of defining business rules using data existing in test databases, as well as the automatic generation of test values, and the generation of semantic functional tests in a format independent of programming languages and frameworks.
34

[en] MODELS AND FORMALISMS FOR THE SEMIOTIC ENGINEERING OF USER INTERFACES / [es] MODELOS Y FORMALISMOS PARA LA INGENIERÍA SEIÓTICA DE INTERFACES DE USUARIO / [pt] MODELOS E FORMALISMOS PARA A ENGENHARIA SEMIÓTICA DE INTERFACES DE USUÁRIO

JAIR CAVALCANTI LEITE 10 August 2001 (has links)
[pt] Um dos requisitos para a usabilidade de um sistema interativo é que os usuários adquiram o conhecimento, denominado de modelo de usabilidade, sobre como aplicar as soluções-em-potencial concebidas pelo designer às tarefas do seu domínio. A abordagem da Engenharia Semiótica apresenta uma perspectiva na qual um sistema interativo é um artefato de metacomunicação através do qual o designer envia uma mensagem que comunica o modelo de usabilidade para o usuário. Partindo desta perspectiva e baseado nos conceitos de semiótica das teorias de Charles S. Peirce e de Umberto Eco desenvolvemos modelos teóricos que descrevem o modelo de usabilidade como sendo o conteúdo da mensagem do designer, a interface de usuário como a sua expressão e o design como sendo uma atividade de produção de signos apoiada por um sistema semiótico, composto por uma linguagem de especificação e por regras que correlacionam as mensagens especificadas aos widgets dos principais padrões e ferramentas de interfaces de usuário. / [en] Interactive systems usability could be enhanced if users learn all the knowledge - the usabilty model - that capability them in applying designer`s potential solutions to domain tasks. The Semiotic Engineering approach perceives interactive systems as metacommunication artifacts that send a message from designer to users whose expression is the lower-level messages exchanged between user and system and whose content is the usability model. Starting from this perspective and based on semiotic theory concepts from Charles S. Peirce and Umberto Eco we present conceptual models to the interface as the expression and to the usability model as the content of designer`s message. We also develop a semiotic system to support user interface design. The system is composed by a specification language and rules that maps specified messagens to user interface widgets. Our emphasis here is not in aesthetics aspects of user interfaces, but in the interactive and performing nature of the interface message as it is carried throughout the computational medium. / [es] Uno de los requisitos para el uso de un sistema interactivo es que los usuarios adquieran conocimiento (denominado de modelo de usabilidad) sobre como aplicar las soluciones-en-potencial concebidas por el diseñador a las tareas de su dominio. El abordaje de la Ingeniería Semiótica presenta define un sistema interactivo como un artefacto de metacomunicación a través del cual el diseñador envía un mensaje que comunica el modelo de usabilidad para el usuario. Partiendo de esta perspectiva y considerando los conceptos de semiótica de las teorías de Charles S. Peirce y de Umberto Eco, desarrollamos modelos teóricos que describen el modelo de usabilidad como el contenido del mensaje del diseñador; la interfaz de usuario como su expresión y el diseño como una actividad de producción de signos apoyada por un sistema semiótico, compuesto por un lenguaje de especificación y por reglas que correlacionan los mensajes especificados a los widgets de los principales padrones y herramientas de interfaces de usuario.
35

[en] MAINTAINABILITY AND REUSABILITY OF ASPECT-ORIENTED SOFTWARE: AN ASSESSMENT FRAMEWORK / [pt] MANUTENIBILIDADE E REUSABILIDADE DE SOFTWARE ORIENTADO A ASPECTOS: UM FRAMEWORK DE AVALIAÇÃO

CLAUDIO NOGUEIRA SANTANNA 13 September 2004 (has links)
[pt] O desenvolvimento de software orientado a aspectos (DSOA) vem obtendo maior atenção tanto da academia quanto da indústria. Sistemas orientados a aspectos compreendem novas abstrações de engenharia de software e tratam de diferentes dimensões de complexidade. Conseqüentemente, o DSOA traz novos problemas para a engenharia de software experimental. Novos mecanismos de avaliação são necessários para medir os graus de manutenibilidade e reusabilidade de sistemas orientados a aspectos. Esta dissertação apresenta um framework de avaliação para o DSOA composto por dois elementos: um conjunto de métricas e um modelo de qualidade. No intuito de evitar a reinvenção de soluções já testadas, esses elementos são baseados em princípios bem conhecidos da engenharia de software e métricas já existentes. O framework proposto foi avaliado no contexto de dois estudos empíricos de domínios distintos, com características, níveis de controle e níveis de complexidade diferentes. O primeiro estudo empírico comparou uma abordagem orientada a objetos com uma abordagem orientada a aspectos para o projeto e implementação de um sistema multi- agentes. O segundo estudo envolveu a aplicação do framework proposto para avaliar as implementações em Java e AspectJ dos padrões de projeto da GoF. / [en] Aspect-oriented software development (AOSD) is gaining wide attention both in research environments and in industry. Aspect- oriented systems encompass new software engineering abstractions and different complexity dimensions. As a consequence, AOSD poses new problems to empirical software engineering. It requires new assessment mechanisms to measure the maintainability and reusability degrees of aspect-oriented systems. This dissertation presents an assessment framework for AOSD, which is composed of two components: a suite of metrics and a quality model. These components are based on well-known principles and existing metrics in order to avoid the reinvention of well-tested solutions. The proposed framework has been evaluated in the context of two different empirical studies with different characteristics, diverse domains, varying control levels and different complexity degrees. The first study compared an object-oriented approach and an aspect-oriented approach to the design and implementation of a multi-agent system. The second study involved the application of the proposed framework to evaluate Java and AspectJ implementations of the GoF design patterns.
36

[en] MCCLOUD SERVICE FRAMEWORK: DEVELOPMENT SERVICES OF MONTE CARLO SIMULATION IN THE CLOUD / [pt] MCCLOUD SERVICE FRAMEWORK: ARCABOUÇO PARA DESENVOLVIMENTO DE SERVIÇOS BASEADOS NA SIMULAÇÃO DE MONTE CARLO NA CLOUD

RAFAEL BARBOSA NASSER 13 June 2012 (has links)
[pt] O investimento em infraestrutura computacional para suportar picos de processamento de curta duração ou sazonais pode gerar desperdícios financeiros, em razão de, na maior parte do tempo, estes recursos ficarem ociosos. Além disso, em muitas soluções, o tempo de resposta é crítico para atendimento dos requisitos do negócio, tornando, muitas vezes, a solução economicamente inviável. Neste cenário é fundamental a alocação inteligente de recursos computacionais em função da demanda por processamento, custo desta alocação e requisitos do negócio. A Simulação de Monte Carlo é um método estatístico utilizado para resolver uma ampla gama de problemas científicos e de engenharia. Quando aplicado a problemas reais, muitas vezes apresenta os desafios mencionados. Computação na nuvem surge como uma alternativa para disponibilizar recursos computacionais sob demanda, gerando economia de escala sem precedentes e escalabilidade quase infinita. Ao alinhar uma moderna arquitetura à nuvem é possível encapsular funcionalidades e oferecer um leque de serviços que antes seriam restritos a domínios específicos. Neste trabalho propomos um arcabouço genérico, que permite a disponibilização de um leque de serviços baseados na Simulação de Monte Carlo, fazendo uso racional da elasticidade provida pela nuvem, a fim de alcançar melhores patamares de eficiência e reuso. / [en] The investment in computing infrastructure to attend seasonal demand or processing peak can generate financial waste, because the most of the time these resources are idle. In addition, in many solutions the response time are critical to attend business requirements, which often, turn the solution economically unviable. In this scenario it is essential intelligent allocation of computing resources according to the demand for processing, allocation and cost of business requirements. The Monte Carlo Simulation is a statistical method widely used to solve a wide range of scientific and engineering problems. When applied to real problems usually have the challenges mentioned. Cloud Computing is an alternative to providing on-demand computing resources, generating economies of scale unprecedented and almost infinite scalability. Aligning a modern architecture to the cloud is possible to encapsulate functionality and offer a range of services that would previously have been restricted to specific areas. In this paper we are interested in building a generic framework, that may provide a range of services based on Monte Carlo, make rational use of the elasticity provided by the cloud in order to achieve better levels of efficiency and reuse.
37

[en] A SYSTEMATIC MAPPING STUDY AND PRACTITIONER INSIGHTS ON THE USE OF SOFTWARE ENGINEERING PRACTICES TO DEVELOP MVPS / [pt] UM MAPEAMENTO SISTEMÁTICO E PERCEPÇÕES DE PRATICANTES SOBRE O USO DE PRÁTICAS DE ENGENHARIA DE SOFTWARE PARA DESENVOLVER MVPS

SILVIO ALONSO MARQUES 24 May 2022 (has links)
[pt] Muitas startups e até mesmo empresas de software tradicionais adotaram o uso de MVPs (sigla em inglês para Produto Mínimo Viável) para permitir experimentar rapidamente possibilidades de solução. O conceito de MVP tem influenciado a forma como as equipes de desenvolvimento aplicam as práticas de Engenharia de Software (ES). Entretanto, o entendimento geral desta influência dos MVPs sobre as práticas de ES ainda é pobre. Nosso objetivo é caracterizar o panorama de publicações sobre práticas que têm sido utilizadas no contexto dos MVPs de software e reunir insights dos profissionais sobre as práticas identificadas. Conduzimos um estudo de mapeamento sistemático usando uma estratégia de busca híbrida que consiste em uma busca em banco de dados e um snowballing das referências, para frente e para trás, de forma paralela. Posteriormente, discutimos os resultados do mapeamento em duas sessões de grupos de foco envolvendo doze profissionais da indústria que utilizam amplamente os MVPs em seus projetos para capturar suas percepções sobre os resultados do mapeamento. Identificamos 33 artigos publicados entre 2013 e 2020. Observamos algumas tendências relacionadas às práticas de ideação e avaliação de MVPs. Por exemplo, com relação à ideação, encontramos seis abordagens diferentes (e.g., Design Thinking, Lean Inception) e principalmente práticas informais de envolvimento do usuário final (e.g., workshops, entrevistas). Com relação à avaliação, há uma ênfase nas validações do usuário final baseadas em práticas como testes de usabilidade, testes A/B, e análise dos dados de uso. Entretanto, ainda há pesquisas limitadas relacionadas à avaliação de viabilidade técnica do MVP e estimativa de esforço. Os praticantes das sessões do grupo de foco reforçaram a confiança em nossos resultados no que diz respeito às práticas de ideação e avaliação, estando cientes da maioria das práticas identificadas. Eles também relataram como lidam com as avaliações de viabilidade técnica (envolvendo desenvolvedores durante a ideação e conduzindo experimentos informais) e estimativa de esforço na prática (com base na opinião de especialistas e usando práticas comuns a metodologias ágeis, como o Planning Poker). Nossa análise sugere que há oportunidades para propostas de soluções e estudos de avaliação para tratar de lacunas na literatura relativas à avaliação de viabilidade técnica e estimativa de esforço. Em geral, é necessário investir mais esforço na avaliação empírica das práticas existentes relacionadas ao MVP. / [en] Many startup environments and even traditional software companies have embraced the use of MVPs (Minimum Viable Products) to allow quickly experimenting solution options. The MVP concept has influenced the way in which development teams apply Software Engineering (SE) practices. However, the overall understanding of this influence of MVPs on SE practices is still poor. Our goal is to characterize the publication landscape on practices that have been used in the context of software MVPs and to gather practitioner insights on the identified practices. We conducted a systematic mapping study using a hybrid search strategy that consists of a database search and parallel forward and backward snowballing. Thereafter, we discussed the mapping study results in two focus groups sessions involving twelve industry practitioners that extensively use MVPs in their projects to capture their perceptions on the findings of the mapping study. We identified 33 papers published between 2013 and 2020. We observed some trends related to MVP ideation and evaluation practices. For instance, regarding ideation, we found six different approaches (e.g., Design Thinking, Lean Inception) and mainly informal end-user involvement practices (e.g., workshops, interviews). Regarding evaluation, there is an emphasis on enduser validations based on practices such as usability tests, A/B testing, and usage data analysis. However, there is still limited research related to MVP technical feasibility assessment and effort estimation. Practitioners of the focus group sessions reinforced the confidence in our results regarding ideation and evaluation practices, being aware of most of the identified practices. They also reported how they deal with the technical feasibility assessments (involving developers during the ideation and conducting informal experiments) and effort estimation in practice (based on expert opinion and using practices common to agile methodologies, such as Planning Poker). Our analysis suggests that there are opportunities for solution proposals and evaluation studies to address literature gaps concerning technical feasibility assessment and effort estimation. Overall, more effort needs to be invested into empirically evaluating the existing MVP-related practices.
38

[en] ON THE USE OF BLOCKCHAIN STRUCTURES IN A MULTIAGENT BASED SOFTWARE ENGINEERING METHOD: A HEALTHCARE EXAMPLE / [pt] UM MÉTODO DE ENGENHARIA DE SOFTWARE PARA O USO DE ESTRUTURAS BLOCKCHAIN EM SISTEMAS MULTIAGENTES: UM EXEMPLO NO DOMÍNO DA SAÚDE

PEDRO AUGUSTO DA SILVA E SOUZA MIRANDA 13 December 2021 (has links)
[pt] Este trabalho apresenta uma proposta de implementação de uma blockchain privada gerenciada por agentes de software para armazenar dados de sáude. A tecnologia blockchain está mudando a maneira com que dados privados são armazenados. Agora é possível compartilhar informações sem revelar quem é o dono da informação. Este trabalho apresenta um sistema que permite que usuários armazenagem dados de saúde em uma blockchain gerenciada por agentes de software. Pesquisas revelaram que dados de saúde devem ser armazenado em blockchains privadas, pois são privadas e não devem ser acessíveis para qualquer pessoa como em blockchains públicas. Técnicas de engenharia de software foram utilizadas para desenvolver a arquitetura proposta. O resultado é uma blockchain privada capaz de manipular dados no padrão HL7 e armazena-los de forma anônima e privada. Agentes de software foram utilizados para realizar todo o processo de recebimento, validação e inserção de dados no blockchain. / [en] This paper presents an implementation approach for a private blockchain that is managed by software agents for healthcare data storage. Blockchain technology is changing the way we store private information. Now, it is possible to share private information while not revealing its owner s identity. This paper presents a solution, which enables users to store medical data by using blockchains along with software agents. Further research work has shown that healthcare data, as sensitive information, should be stored in private blockchains through the use of appropriate methods. Software engineering techniques have been used to achieve the proposed solution. The result is a private blockchain that is suitable for manipulating HL7 data, ensuring anonymity and privacy. This can be achieved through software agents that act as regulatory controls for the private blockchains.
39

[en] IDENTIFICATION AND REFACTORING OF DESIGN PROBLEMS IN SOFTWARE SYSTEMS / [pt] IDENTIFICAÇÃO E REFATORAÇÃO DE PROBLEMAS DE PROJETO EM SISTEMAS DE SOFTWARE

WILLIAN NALEPA OIZUMI 27 October 2022 (has links)
[pt] Sistemas impactados por Problemas de Projeto (PPs) podem se tornar difíceis de manter e evoluir. A identificação de PPs pode ocorrer por meio de múltiplos sintomas, tais como code smells. Após tal identificação, pode-se remover os PPs por meio de refatorações. No entanto, decidir onde e como refatorar é uma tarefa desafiadora. Assim, técnicas de recomendação de refatoração têm sido propostas. Apesar disso, ainda há pouco consenso sobre quais requisitos devem ser atendidos por elas. Nesta tese, estamos propondo quatro requisitos empiricamente identificados que tais técnicas devem seguir. Primeiro, cada PP geralmente está relacionado a vários tipos de sintomas no código-fonte e eles devem ser considerados juntos para gerar recomendações. Além disso, uma técnica de recomendação deve permitir a seleção de contextos específicos para refatoração. Quarto, também deve-se considerar as funcionalidades modificadas para criar recomendações úteis. Finalmente, os desenvolvedores nem sempre conduzem as refatorações mais eficazes na prática, muitas vezes inconscientemente, resultando na remoção incompleta de PPs. Assim, eles precisam de assistência para remover os PPs. Existem apenas técnicas que atendem parcialmente aos requisitos mencionados. Sendo assim, nós propomos a técnica OrganicRef. OrganicRef destina-se a ajudar os desenvolvedores na remoção de PPs em seus contextos de interesse. OrganicRef encontra as funcionalidades dos elementos de código usando um algoritmo de modelagem de tópicos. Em seguida, ele coleta múltiplos tipos de sintomas que afetam os elementos do código. Para recomendar refatorações, OrganicRef combina heurísticas baseadas em regras e baseadas em funcionalidades. OrganicRef também aplica otimização baseada em busca para derivar várias recomendações possíveis. Para avaliar o OrganicRef, realizamos um estudo experimental com seis projetos de software. Os resultados mostraram que as recomendações do OrganicRef melhoram significativamente a qualidade dos elementos refatorados. / [en] Software projects impacted by Design Problems (DPs) may become difficult to maintain and evolve. The identification of DPs may occur through symptoms such as code smells. After such identification, developers can remove the DPs through refactorings. However, deciding where and how to refactor is a challenging task. Thus, several refactoring recommendation techniques have been proposed. Nevertheless, there is still little consensus on which requirements must be satisfied by them. In this thesis, we are proposing four empirically identified requirements that any DP removal technique should follow. First, each single DP is usually related with multiple types of symptoms in the source code and they should be considered altogether for generating recommendations. Second, a recommendation technique should allow the selection of possible candidate contexts for refactoring. Fourth, the technique should consider the features of undergoing changes to create useful recommendations. Finally, developers do not always conduct the most effective refactorings in practice, quite often unconsciously, resulting in the incomplete removal of DPs. Thus, they need assistance to remove DPs. There are techniques partially fulfilling the aforementioned requirements, though none satisfactorily meets them all. Thus, we propose the OrganicRef technique. OrganicRef is intended to help developers in removing DPs in their contexts of interest. OrganicRef finds the contexts by capturing the features affecting relevant code elements using a topic modeling algorithm. Then, it collects multiple symptom types affecting the code elements. To recommend effective refactorings, OrganicRef combines rulebased and feature-driven heuristics. It also uses search-based optimization to derive multiple possible recommendations. To evaluate OrganicRef, we conducted an empirical study with six open source projects. Results showed that OrganicRef recommendations significantly improves the design of refactored elements.
40

[en] A CONTROLLABLE SOFTWARE DEVELOPMENT PROCESS WITH EMPHASIS ON QUALITY ASSURANCE IN SMALL PROJECTS / [pt] UM PROCESSO CONTROLÁVEL DE DESENVOLVIMENTO DE SOFTWARE FOCADO NA GESTÃO DA QUALIDADE EM PEQUENOS PROJETOS

DANIEL CATUNDA MARRECO 16 October 2006 (has links)
[pt] O trabalho a seguir apresenta uma proposta de metodologia de gerência de projetos de software aderente a pequenos projetos e fortemente inspirada em metodologias já consagradas como Unified Process e eXtreme Programming. O objetivo é prover um processo ágil, adaptável porém prescritivo. Chegaremos a um processo de fácil implantação e controle e menos dependente da qualidade técnica da equipe de desenvolvimento. A seguir, será apresentado um estudo de caso conduzido em ambiente real, por uma equipe de um pequeno empreendimento que consiste no relato do processo de amadurecimento e implantação do processo proposto, com uma análise do trabalho de implantação de processos de desenvolvimento em empreendimentos emergentes na área de TI. / [en] The following work presents a proposal of software project management methodology applicable to small projects and strongly inspired by already well established methodologies such as the Unified Process and eXtreme Programming. The objective of this proposal is to provide an agile process that is adaptable yet prescriptive. Through this one plans to arrive at a process of easy implementation and control, and less dependent on the technical quality of the development team. Subsequently, a case study will be presented that was conducted in a real environment, on a small enterprise development team. It consists of a report on the maturing and implementation of the proposed process and an analysis of the work of implementing development procedures in emerging enterprises in the IT area.

Page generated in 0.7602 seconds