1 |
[en] A QUANTITATIVE APPROACH TO ASPECT ORIENTED SOFTWARE DEVELOPMENT / [pt] UMA ABORDAGEM QUANTITATIVA PARA DESENVOLVIMENTO DE SOFTWARE ORIENTADO A ASPECTOSEDUARDO MAGNO LAGES FIGUEIREDO 05 July 2006 (has links)
[pt] O desenvolvimento de software orientado a aspectos é um
paradigma
recente que introduz novas abstrações e mecanismos com o
objetivo de melhorar a
modularidade de interesses que se espalham pelo sistema.
Entretanto, a satisfação
de atributos de qualidade em sistemas orientados a
aspectos não é tarefa simples e
a utilização equivocada destas novas abstrações pode
resultar em efeitos colaterais
relacionados a princípios importantes da Engenharia de
Software, tais como
elevado acoplamento, baixa coesão dos módulos e incompleta
modularidade dos
interesses em aspectos. Problemas como estes não são
facilmente verificáveis em
sistemas de médio e grande porte sem um método adequado e,
geralmente,
consomem muito tempo e recursos. Portanto, torna-se
necessário um método de
avaliação que auxilie engenheiros de software na análise
de sistemas orientados a
aspectos. Este trabalho de mestrado propõe uma abordagem
que provê suporte à
avaliação quantitativa de implementações orientadas a
aspectos. A abordagem
incluiu: (i) um método de avaliação organizado em etapas,
e (ii) uma ferramenta
de medição e avaliação, chamada AJATO, que dá suporte ao
método proposto. O
método é composto por um conjunto de métricas e regras
heurísticas. As métricas
fornecem informações quantitativas e as heurísticas
contribuem com algum
raciocínio semântico dos números. A ferramenta AJATO é
composta por quatro
módulos que efetuam o parser do código, mapeamento de
estruturas sintáticas em
interesses, medição e avaliação heurística. Um conjunto de
cinco estudos de caso
envolvendo domínios de aplicação distintos foi realizado
para avaliar a utilidade e
usabilidade da abordagem proposta. / [en] Aspect-oriented software development is an emerging
paradigm that
provides new abstractions and mechanisms to support the
modularization of
crosscutting concerns through the software development
lifecycle. However, the
achievement of high-quality aspect-oriented software is
not trivial. The
inappropriate use of aspect-oriented abstractions and
mechanisms potentially
leads to the violation of important design principles,
such as low coupling, high
cohesion, incomplete modularization of crosscutting
concerns into aspects, and so
forth. These problems are not easily detectable and an ad
hoc analysis of large
designs and implementations is often expensive and time-
consuming. Hence there
is a need for an assessment method that assists software
engineers in the analysis
of their aspect-oriented implementations. This work
proposes the development of
a systematic approach to support the quantitative
assessment of aspect-oriented
software. The approach is organized in a stepwise fashion
and is founded on a
metrics suite and a comprehensive set of complementary
rules. Our proposal is
supported by a measurement and assessment tool. A set of
five case studies from
different application domains have been carried out in
order to evaluate the
usability and usefulness of our proposed approach.
|
2 |
[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.
|
3 |
[en] AN ARTIFICIAL INTELLIGENCE MIDDLEWARE FOR DIGITAL GAMES / [pt] UM MIDDLEWARE DE INTELIGÊNCIA ARTIFICIAL PARA JOGOS DIGITAISBORJE FELIPE FERNANDES KARLSSON 07 March 2006 (has links)
[pt] A aplicação de inteligência artificial (IA) em jogos
digitais atualmente se encontra sob uma constante
necessidade de melhorias, na tentaiva de atender as
crescentes demandas dos jogadores por realismo e
credibilidade no comportamento dos personagens do universo
do jogo. De modo a facilitar o atendimento destas
demandas, técnicas e metodologias de engenharia de
software vêm sendo utilizadas no desenvolvimento de jogos.
No entanto, o uso destas técnicas e a construção de
middlewares na área de IA ainda está longe de gerar
ferramentas genéricas e flexíveis o suficiente para o uso
nesse tipo de aplicação. Outro fator importante é a falta
de literatura disponível tratando de propostas
relacionadas a esse campo de estudo. Esta dissertação
discute o esforço de pesquisa no desenvolvimento de uma
arquitetura flexível aplicável a diferentes estilos de
jogos, que dê suporte a várias funcionalidades de IA em
jogos e sirva com base a introdução de novas técnicas que
possam melhorar a jogabilidade. Neste trabalho são
apresentadas: questões de projeto de tal sistema e de sua
integração com jogos; um estudo sobre a arquitetura de
middlewares de IA; uma análise dos poucos exemplos desse
tipo de software disponíveis; e um levantamento da
literatura disponível. Com base nessa pesquisa, foi
realizado o projeto e a implementação da arquitetura de um
middleware de IA; também descritos nesse trabalho. Além da
implementação propriamente dita, é apresentado um estudo
sobre a aplicação de padrões de projeto no contexto do
desenvolvimento e evolução de um framework de IA para
jogos. / [en] The usage of artificial intelligence (AI) techniques in
digital games is
currently facing a steady need of improvements, so it can
cater to players
higher and higher expectations that require realism and
believability
in the game environment and in its characters' behaviours.
In order to
ease the fulfillment of these goals, software engineering
techniques and
methodologies have started to be used during game
development. However,
the use of such techniques and the creation of AI
middleware are still far
from being a generic and flexible enough tool for
developing this kind of
application. Another important factor to be mentioned in
this discussion is
the lack of available literature related to studies in
this field.
This dissertation discusses the research effort in
developing a flexible
architecture that can be applied to diferent game styles,
provides support
for several game AI functionalities and serves as basis
for the introduction
of more powerful techniques that can improve gameplay and
user experience.
This work presents: design issues of such system and its
integration with
games; a study on AI middleware architecture for games; an
analysis
of the state-of-the-art in the field; and a survey of the
available
relevant literature. Taking this research as starting
point, the design and
implementation of the proposed AI middleware architecture
was conducted
and is also described here. Besides the implementation
itself, a study on the
use of design patterns in the context of the development
and evolution of
an AI framework for digital games is also presented.
|
Page generated in 0.051 seconds