1 |
[en] AN APPROACH FOR GROUPWARE DEVELOPMENT BASED ON SOFTWARE PRODUCT LINES AND THE 3C COLLABORATION MODEL / [pt] UMA ABORDAGEM DE DESENVOLVIMENTO DE GROUPWARE BASEADA EM LINHA DE PRODUTO DE SOFTWARE E MODELO 3C DE COLABORAÇÃOBRUNO FREITAS GADELHA 15 June 2012 (has links)
[pt] Nesta tese investigou-se o desenvolvimento de software no contexto de
groupware, especificamente para apoiar a aprendizagem colaborativa. O
desenvolvimento de groupware, entretanto, não é trivial. Como todo software, há
aspectos tecnológicos e sociais envolvidos no desenvolvimento. Quanto aos
aspectos tecnológicos, o desenvolvimento de artefatos de infraestrutura ocupam
grande parte do esforço destinado à implementação dessas aplicações,
sobrando pouco tempo para a implementação de soluções inovadoras para as
questões da colaboração propriamente ditas. Com respeito aos aspectos sociais,
deve-se levar em conta que o trabalho em grupo é dinâmico e a composição dos
grupos, bem como suas características, se alteram com o passar do tempo.
Assim, desenvolveu-se uma linha de produtos de software para groupware
baseado no Modelo 3C de Colaboração, onde os groupware são derivados a
partir da formalização de técnicas de aprendizagem colaborativa em scripts de
colaboração. Foi desenvolvido um protótipo, o GroupwareBuilder para interpretar
o script de colaboração e derivar o groupware para suporte específico das suas
atividades. Uma avaliação funcional e um estudo de caso foram realizados. Na
avaliação funcional, buscou-se obter uma prova de conceito do
GroupwareBuilder, na qual dois groupware foram derivados para apoiar os
scripts de colaboração Debate Crítico e Buzz Groups. O estudo de caso foi
realizado para observar como se daria a derivação de groupware para técnicas
de aprendizagem colaborativa modeladas por diferentes professores. A principal
contribuição deste trabalho é uma abordagem que possibilita a derivação e
adaptação de groupware a partir de scripts de colaboração elaborados pelos
usuários e não a partir de uma lista de requisitos funcionais, como em LPS’s
tradicionais. / [en] In this thesis we explore software development on the context of
groupware, specifically on supporting collaborative learning. Groupware
development is not a trivial task given that technological and social issues are
involved. Considering the technological issues, a huge amount of time is wasted
on implementing infrastructure aspects leaving little time for implementation of
innovative solutions on collaboration. Considering the social issues, we should
take into account that group work is dynamic and that group composition
changes over time. So, we developed a software product line for groupware
based on the 3C Collaboration Model. The groupware derivation process starts
with the formalization of the collaborative learning techniques in collaboration
scripts. In order to support this collaboration process we developed the
GroupwareBuilder, that reads the collaboration script and derives groupware
tailored to the tasks described on the script. We made a functional evaluation and
a case study. On the functional evaluation, we aimed on getting a proof of
concept for GroupwareBuilder by deriving groupware for supporting the Critical
Debate and Buzz Groups collaboration scripts. In order to analyze how
GroupwareBuilder derives groupware from other collaborative learning
techniques described by different teachers we made a case study. The main
contribution of this thesis is an approach that enables the derivation of groupware
and the customization of groupware in runtime from collaboration scripts written
by the users, and not from a list of software requirements as used in other SPLs
approaches.
|
2 |
[en] GENARCH: A MODEL-BASED PRODUCT DERIVATION TOOL / [pt] GENARCH: UMA FERRAMENTA BASEADA EM MODELOS PARA DERIVAÇÃO DE PRODUTOS DE SOFTWAREELDER JOSE REIOLI CIRILO 29 October 2008 (has links)
[pt] Este trabalho apresenta uma ferramenta baseada em modelos
para
derivação de produtos de LPSs, denominada GenArch. O
objetivo principal da
ferramenta é permitir que a comunidade de desenvolvimento
de software
tradicional, utilize conceitos e fundamentos de abordagens
de LPSs na produção
de seus sistemas ou partes de seus sistemas sem a
necessidade do
entendimento de modelos e conceitos complexos. A abordagem
implementada
pela ferramenta foi elaborada com base em fundamentos do
desenvolvimento
dirigido por modelos. Centrada na definição de três modelos
(características,
implementação e configuração), a ferramenta permite a
derivação automática de
produtos ou frameworks existentes. O trabalho também define
um conjunto
específico de anotações Java que possibilitam a geração
automática dos
modelos de derivação a partir dos elementos de
implementação da arquitetura
de uma LPS. A plataforma Eclipse e as tecnologia EMF e
openArchitectureWare
foram utilizadas como base para a implementação da
ferramenta. Uma extensão
da ferramenta que atende especificamente aos modelos de
componente Spring
e OSGi, também é proposta nessa dissertação. Tal extensão
permite a
instanciação automática da LPS e aplicações através de
diferentes tipos de
customizações, variando da configuração fina de
propriedades de componentes
até a seleção automática de quais componentes irão compor o
produto final.
Como parte de validação da abordagem, a ferramenta foi
utilizada na derivação
automática de três diferentes estudos de caso: (i) o
framework JUnit; (ii) uma
LPS de jogos J2ME; e (iii) uma aplicação web baseada em
serviços. Diversas
lições aprendidas e resultados do uso da ferramenta nestes
três diferentes
cenários são também apresentadas. / [en] This work presents a model-based tool for product
derivation, called
GenArch, which aims to enable the mainstream software
developer community to
use the concepts and foundations of the SPL approach,
without the need to
understand complex concepts or models. The tool approach is
build on top of
model-driven development techniques. It is centered on the
definition of three
models (feature, implementation and configuration models),
which enable the
automatic instantiation of software product lines (SPLs) or
frameworks. A set of
specific Java annotations are also defined to allow
generating automatically many
of the models, based on existing implementations elements
of SPL architectures.
The Eclipse platform, and EMF and openArchitectureWare
technologies are used
as the base for the implementation of the tool. The
dissertation also presents a
GenArch extension that addresses the new abstractions
provided by the Spring
and OSGi component models. Different kinds of
customizations are provided by
this extension varying from fine-grained configuration of
component properties to
the automatic selection of components that will compose the
final product. As
part of the approach validation, the tool was used in the
derivation of three case
studies: (i) JUnit framework; (ii) a J2ME games SPL; (iii)
a service oriented Web
application. Several lessons learned and discussions
resulting from the use of the
tool also are described.
|
3 |
[en] COLLABORATIVE CONFIGURATION OF SOFTWARE PRODUCT LINE / [pt] CONFIGURAÇÃO COLABORATIVA DE LINHA DE PRODUTOS DE SOFTWARECARLOS ROBERTO MARQUES JUNIOR 28 September 2011 (has links)
[pt] A configuração de produto é uma atividade chave para permitir a customização
em massa. Ela corresponde a produção de um sistema computacional
a partir de uma linha de produtos de software, respeitando as necessidades
individuais dos clientes. Na prática, a atividade de configuração
do produto pode se tornar uma tarefa complexa, principalmente porque envolve
várias partes interessadas com diferentes competências para tomar decisões.
Vários trabalhos proprõem decompor a atividade de configuração em
estágios pré-estabelecidos, atravrés dos quais os interessados podem tomar
suas decisões de forma separada e coerente. No entanto, quando há uma
descentralização geográfica do conhecimento necessário em cada etapa e/ou
quando os requisitos do cliente forem imprecisos e mudarem com frequência,
essas soluções propostas não se aplicam. Para resolver essas questões, este
trabalho proprõe uma abordagem de configuração dinâmica e colaborativa
de produtos com base na metáfora de assistência pessoal. Os assistentes pessoais
num ambiente cooperativo coordenam as decisões dos stakeholders e
pró-ativamente executam tarefas, tais como o raciocínio sobre as implicaçõoes
das decisões, integrando as decisões distribuídas e resolvendo os requisitos
divergentes. Uma ferramenta protótipo, chamada Libertas, e dois cenários
ilustrativos que avaliam a aplicabilidade da nossa abordagem também são
apresentados. O primeiro cenário analisa o processo de configuração para
configurar um sistema operacional para suportar os requisitos de negócio de
uma empresa. O segundo aborda um cen´ario com uma linha de produtos de
software para portais web. / [en] Product configuration is a key activity for enabling mass customization.
It corresponds to tailoring a software application from a software product
line, respecting individual customer requirements. In practice, the product
configuration activity is challenging, mainly because it involves numerous
stakeholders with different expertise making decisions. Several works claim
to decompose the configuration activity into pre-arranged stages, whereby
stakeholders can make their decisions in a separated way and coherent fashion.
However, due to the decentralization in geography of the knowledge required
in each stage and that customer requirements could be imprecise and
change frequently, the proposed solutions do not apply. To address these issues,
this work proposes a dynamic and collaborative product configuration
approach based on the personal assistant metaphor. Personal assistants in a
cooperative way coordinate stakeholders´ decisions and proactively perform
tasks, such as reasoning about the ramifications of decisions, integrating distributed
decisions and resolving divergent requirements. A tool prototype,
called Libertas, and two case studies that evaluate the applicability of our
approach are also presented. The first case study analyzes the configuration
process to configure an operational system to support the business requirements
of an enterprise. The second one addresses a scenario of a software
product line for web portals.
|
4 |
[en] SUPPORTING HETEROGENEOUS CONFIGURATION KNOWLEDGE OF SOFTWARE PRODUCT LINES / [pt] SUPORTANDO CONHECIMENTO DE CONFIGURAÇÃO HETEROGÊNEO DE LINHAS DE PRODUTOS DE SOFTWAREELDER JOSE REIOLI CIRILO 24 January 2017 (has links)
[pt] Softwares personalizados para as necessidades de um cliente proveem vantagem competitiva quando comparados aos softwares de proposito geral. Linhas de produtos de softwares tem como objetivo a produção de produtos personalizados a partir de um conjunto de features reutilizáveis. É conhecido que o reuso sistemático de features potencialmente leva a ganhos significativos como rápida produção de software a um baixo custo e com maior qualidade. Na prática, a construção de linhas de produtos de softwares empresariais pode se tornar uma tarefa arriscada e sujeita a erros quando se leva em consideração o uso das técnicas atuais de implementação de features. O desenvolvimento de linhas de produtos de software empresariais de fato requer a convergência coordenada de várias visões (ex., especialistas de domínio, projetistas de interface, e desenvolvedores). Neste caso, cada participante do processo de desenvolvimento tem uma linguagem particular para resolver o problema específico a sua especialidade. Os desafios para integração de diferentes linguagens, evitando uma potencial cacofonia, é o problema do conhecimento de configuração heterogêneo. Nesta tese, nos examinamos as dificuldades atuais na especificação do conhecimento de configuração heterogêneo e como solução nos propomos a noção de Linguagens de Modelagem do Conhecimento do Domínio (LMCD). O propósito das LMCDs é evidenciar os conceitos do domínio e suas interfaces de programação, o que ajuda reduzir o ofuscamento do código fonte e aumentar a compreensão. Além disso, evidenciando os conceitos específicos de domínio, somos aptos a prevenir inconsistências em produtos pela detecção de erros em toda a linha de produto de software. Outro resultado deste trabalho de pesquisa é GenArchPlus, uma ferramenta extensível que suporta de forma flexível a incorporação de LMCDs na engenharia de linhas de produtos de softwares tradicional. Nos enfatizamos os benefícios da ferramenta, incluindo simplicidade, expressividade, e a capacidade de ser independente de qualquer tecnologia de implementação do domínio. Finalmente, nos ilustramos e avaliamos o uso de LMCDs em três diferentes linhas de produtos de software. / [en] Customer-specific software can provide a competitive advantage compared to general-purpose software. A software product line (SPL) aims at tailoring customer-specific products from a set of reusable features. It is well known that systematic reuse of features potentially leads to significant gains such as faster production with low costs and high quality. In practice, building enterprise software product lines might become a laborious and error-prone task when we take into account the use of current implementation techniques. Successful development of modern enterprise software product lines requires the convergence of multiple views (e.g., domain experts, interface designers, and developers), which are usually managed via domain-specific concepts. In this case, each participant of the development process has a particular working language to solve specific problems to its expertise. The challenge of integrating these differences into the engineering process, avoiding the potential cacophony of multiple different languages, is the heterogeneous configuration knowledge problem. In this thesis, we examine the current shortcomings on the specification of heterogeneous configuration knowledge and as a solution we propose the notion of Domain Knowledge Modeling Languages (DKMLs). The purpose of DKMLs is to put in evidence the domain concepts and their programming interfaces, which help to reduce source code obfuscation and increase feature comprehension. Moreover, evidencing the domain-specific concepts, we are also able to prevent inconsistencies on products by detecting errors in the entire software product line. Another result of this research is the GenArchPlus, an extensible tool that supports the flexible incorporation of DKMLs in traditional software product line engineering. We emphasize the benefits of GenArchPlus, including simplicity, expressiveness, and being framework independent. Finally, we illustrate and evaluate the use of DKMLs in three different product lines.
|
5 |
[en] MODULARITY AND STABILITY ASSESSMENT OF IMPLEMENTATION TECHNIQUES FOR MULTI-AGENT SYSTEMS PRODUCT LINES / [pt] AVALIAÇÃO DA MODULARIDADE E ESTABILIDADE DE TÉCNICAS DE IMPLEMENTAÇÃO PARA LINHAS DE PRODUTOS DE SISTEMAS MULTI-AGENTESCAMILA PATRICIA BAZILIO NUNES 15 September 2017 (has links)
[pt] Uma Linha de Produtos de Sistemas Multi-agentes (LP-SMA) define uma arquitetura de linha de produto de software (LPS) cujo projeto e implementação são realizados usando agentes de software para compreender features comuns e variáveis. O desenvolvimento de LP-SMA pode ser feito através de plataformas específicas de SMA e técnicas de implementação. Exemplos de tais técnicas são: frameworks orientados a objetos, compilação condicional, arquivos de configuração e programação orientada a aspectos (POA). Todavia, os estudos empíricos existentes não focam na abordagem de LP-SMA, considerando diferentes técnicas de implementação e plataformas específicas de desenvolvimento de SMA. Nesse contexto, este trabalho apresenta uma comparação sistemática de diferentes técnicas de implementação de variabilidades de features de agentes no domínio de LP-SMA. Esta comparação sistemática envolveu o uso de duas plataformas de desenvolvimento de SMA (JADE e Jadex) e das técnicas de implementação: compilação condicional, arquivos de configuração e POA. Neste estudo, um conjunto de métricas de software foram utilizadas para avaliar atributos de qualidade, tais como modularidade e estabilidade. Para a realização deste estudo, duas LP-SMAs foram desenvolvidas. A primeira foi a LP-SMA do Expert Committee, uma linha de produto de sistemas de gerenciamento de conferências. A segunda foi a LP-SMA OLIS, que provê diversos serviços pessoais para os usuários. Os dados coletados durante a realização dos estudos empíricos permitiram o relato de um conjunto de lições aprendidas. / [en] A Multi-agent System Product Line (MAS-PL) defines a Software Product Line (SPL) architecture whose design and implementation are accomplished using software agents to address its common and variable features. The MAS-PL development can be performed through MAS specific platforms and implementation techniques. Examples of such techniques are: object-oriented frameworks, conditional compilation, configuration files and aspect-oriented programming (AOP). However, the existing empirical studies do not focus on MAS-PL approach, considering different implementation techniques and MAS specific platforms. In this context, this work presents a systematic comparison of different variability implementation techniques of agent features in the MAS-PL domain. This systematic comparison involved the use of two platforms of MAS development (JADE and Jadex) and implementation techniques conditional compilation, configuration files and AOP. In this study, a suite of software metries were used to evaluate quality attributes, such as modularity and stability. In order to perform this study, two MAS-PLs were developed. The first one was the Expert Commitee MAS-PL, a product line of conference management systems. The second one as the OLIS MAS-PL, which provides several personal services to the users. The collected data during the accomplished empirical studies allowed to report a set of lessons learned.
|
Page generated in 0.0618 seconds