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 ARQUITETURAMAIRA 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 INTELIGENTESJOSE 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 USOTHIAGO 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ÁRIOJAIR 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ÇÃOCLAUDIO 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 CLOUDRAFAEL 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 MVPSSILVIO 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ÚDEPEDRO 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 SOFTWAREWILLIAN 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 PROJETOSDANIEL 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