• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 33
  • 4
  • Tagged with
  • 37
  • 37
  • 37
  • 25
  • 22
  • 13
  • 11
  • 8
  • 8
  • 8
  • 8
  • 8
  • 8
  • 8
  • 8
  • 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.
1

Partially safe evolution of software product lines

SAMPAIO, Gabriela Cunha 27 March 2017 (has links)
Submitted by Pedro Barros (pedro.silvabarros@ufpe.br) on 2018-06-21T22:55:48Z No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Gabriela Cunha Sampaio.pdf: 1837542 bytes, checksum: ed41241bb8c57deeb0b4a9a626f13a1a (MD5) / Made available in DSpace on 2018-06-21T22:55:48Z (GMT). No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Gabriela Cunha Sampaio.pdf: 1837542 bytes, checksum: ed41241bb8c57deeb0b4a9a626f13a1a (MD5) Previous issue date: 2017-03-27 / CAPES / Software product lines (SPLs) are sets of related systems that are built based on reusable artifacts. They have three elements: a variability model, that has feature declarations and dependencies among them; implementation artifacts and a configuration knowledge, that maps features to their implementation. SPLs provide several advantages, like software quality and reuse improvements, productivity gains and the capacity to customize a system depending on customers needs. There are several challenges in the SPL development context. To build customizable software and meet all customer needs, SPLs tend to increase over time. The larger a SPL becomes, the higher is the complexity to evolve it. Therefore, it is not trivial to predict which products are affected by a change, specially in large SPLs. One might need to check if products had their behaviour preserved to avoid inadvertently affecting existing users in an evolution scenario. In refactoring and conservative extension scenarios, we can avoid this problem by checking for behavior preservation, either by testing the generated products or by using formal theories. Product line refinement theories support that by requiring behavior preservation for all existing products. This happens in a number of situations, such as code refinements. For instance, in function renaming transformations, all existing products behave exactly as before the change, so we can say that this transformation is safe. Another example of SPL refinement would be changing a feature type from mandatory to optional. In this case, we increase variability, but preserving all products from the original SPL. Although several evolution scenarios are safe (or technically refinement), in many others, such as bug fixes or feature removals, there is a high chance that only some of the products are refined. In these scenarios, the existing theories would give no support, since we can not assume behaviour preservation holds for all products. To support developers in these and o ther non refinement situations, we define partially safe evolution for product lines, that is formalised through a theory of partial refinement that helps to precisely understand which products should not be affected by an evolution scenario. This provides a kind of impact analysis that could, for example, reduce test effort, since products not affected do not need to be tested. Additionally, we formally derive a catalog of partial refinement templates that capture evolution scenarios, and associated preconditions, not covered before. Finally, we evaluate the proposed templates by analyzing commits from two product line systems (Linux and Soletta) and we found evidence that those templates could cover a number of practical evolution scenarios. / Linhas de produto de software (LPSs) são conjuntos de sistemas relacionados desenvolvidos a partir de artefatos reusáveis. Há diversas vantagens de se trabalhar com LPS, como melhorias na qualidade do código e o aumento de reuso, e também ganhos em produtividade e uma maior customização do software, que se torna configurável para atender aos critérios dos clientes. Porém, há também muitos desafios. Os sistemas tendem a crescer com o tempo, o que aumenta a complexidade de evoluir a LPS. Então, a tarefa de descobrir o conjunto de produtos afetados em uma mudança se torna não trivial, principalmente em LPS maiores. Os desenvolvedores eventualmente precisam verificar se os produtos existentes preservaram comportamento para evitar afetar usuários inadvertidamente. Em cenários de refatoração e extensão conservadora, nós podemos evitar esse problema checando se o comportamento dos produtos foi preservado através da realização de testes nos produtos gerados, ou ainda com o uso de teorias formais. De fato, isso acontece em várias situações. Por exemplo, em cenários de refinamentos de código, como renomeações de funções, todos os produtos continuam se comportando exatamente da mesma forma, então nós dizemos que esta evolução é segura. Outro exemplo de refinamento de LPS seria alterar o tipo de uma feature mandatória para opcional. Neste caso, nós estamos aumentando variabilidade, mas preservando todos os produtos da LPS original. Apesar de haver um grande número de cenários de evolução segura (o que tecnicamente, é sinônimo de refinamento), em outros, como correções de defeitos ou remoções de features, existe uma chance razoável de apenas alguns produtos serem refinados. Nestes cenários, as teorias existentes não seriam capazes de dar suporte, já que nem todos os produtos preservam comportamento. Para dar suporte aos desenvolvedores nestes e em outros cenários de não refinamento, nós definimos o conceito de evolução parcialmente segura de linhas de produto de software, que é formalizado através de uma teoria de refinamento parcial, que ajuda a entender precisamente que produtos não devem ser afetados num cenário de evolução. Com isto, nós provemos uma espécie de análise de impacto que poderia, por exemplo, reduzir o esforço envolvido no desenvolvimento de testes, dado que produtos não afetados não precisariam ser testados. Adicionalmente, nós derivamos formalmente um catálogo de templates de refinamento parcial que capturam cenários de evolução, e pré-condições associadas, não cobertos anteriormente. Finalmente, nós avaliamos os templates propostos através de uma análise de commits de duas LPS (Linux e Soletta) e encontramos evidência de que os templates poderiam cobrir uma série de cenários práticos de evolução.
2

Evolução segura de linhas de produtos de software: cenários de extração de features

BENBASSAT, Fernando Chaves 20 February 2017 (has links)
Submitted by Fernanda Rodrigues de Lima (fernanda.rlima@ufpe.br) on 2018-08-17T22:02:46Z No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Fernando Benbassat.pdf: 3406584 bytes, checksum: 1784ed46d77c6f487559c2ceb21b516f (MD5) / Approved for entry into archive by Alice Araujo (alice.caraujo@ufpe.br) on 2018-08-24T21:05:42Z (GMT) No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Fernando Benbassat.pdf: 3406584 bytes, checksum: 1784ed46d77c6f487559c2ceb21b516f (MD5) / Made available in DSpace on 2018-08-24T21:05:42Z (GMT). No. of bitstreams: 2 license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5) DISSERTAÇÃO Fernando Benbassat.pdf: 3406584 bytes, checksum: 1784ed46d77c6f487559c2ceb21b516f (MD5) Previous issue date: 2017-02-20 / Linhas de Produtos de Software (LPS) são conjuntos de produtos de software reutilizáveis que compartilham funcionalidades ou comportamento. Reusar um conjunto específico de produtos pode melhorar a produtividade e qualidade dos produtos oferecidos por uma empresa, no sentido de que novos produtos podem ser criados combinando de forma sistemática os artefatos existentes. Porém manter LPS não é tão simples, uma vez que uma única mudança em um artefato pode afetar vários produtos. Em muitas situações, é desejável proporcionar algum tipo de garantia para alterar uma LPS de forma segura, no sentido de que o comportamento dos produtos existentes é preservado após a alteração. Os desenvolvedores podem contar com noções de evolução segura propostas anteriormente e por meio de templates de transformação para assegurar a evolução segura. No entanto, os templates existentes focam apenas em situações em que LPS é expandida com o desenvolvimento de novas features, e não foram avaliadas no contexto da extração de features a partir do código existente. Por isso, para descobrir mais templates que se adequam à situações não previstas em estudos anteriores de evolução segura de Linhas de Produtos de Software (LPS), foi realizado um estudo utilizando um sistema industrial desenvolvido em Java, com aproximadamente 400 KLOC, com demanda para extração de features e transformação em LPS. Esse estudo revelou a necessidade de novos templates para lidar com cenários de extração de features, bem como melhorar a notação de templates existentes para tratar mapeamentos (Configuration Knowledge) mais expressivos entre expressões de features e artefatos de código. Como resultado deste estudo, nós propomos templates novos e que não podem ser derivados dos existentes, extraímos com sucesso LPS a partir do sistema existente usando os templates propostos, e também encontramos evidência de que os novos templates podem ajudar a prevenir defeitos durante a evolução de uma LPS. / Software Product Lines (LPS) are set of reusable software products that share functionality or behavior. Reusing a specific set of products can improve productivity and product quality offered by a company in the sense that new products can be created by systematically combining existing artifacts. But SPL maintenance is not simple, since a single change on asset can impact several products. In many situations, it is desirable to provide some assurance that we can safely change a SPL in the sense that the behaviour of existing products is preserved after the change. Developers can rely on previously proposed safe evolution notions and by means of transformation templates to ensure safe evolution. However, the existing templates focus only in scenarios where a SPL is expanded with the development of new features, and have not been evaluated in the context of extracting features from existing code. Therefore, to find out more templates that fit situations not foreseen in previous studies of the safe evolution of SPL, we conducted a study using an industrial system developed in Java, with roughly 400 KLOC, with demand for features extraction and transform into an SPL. This study revealed the need for new templates to address feature extraction scenarios, as well as improving the existing templates notation to address more expressive mappings (Configuration Knowledge) between feature expressions and code assets. As a result of this study, we propose new templates that can not be derived from existing ones, we successfully extracted a SPL from this existing system using the proposed templates, and also found evidence that the new templates can help to prevent defects during SPL evolution.
3

Quadrados Latinos Com Aplicações Em Engenharia De Software

Fernando Herrera Sánchez, Iván 31 January 2011 (has links)
Made available in DSpace on 2014-06-12T18:02:47Z (GMT). No. of bitstreams: 2 arquivo614_1.pdf: 4152126 bytes, checksum: ca51977cfd0390aef14ff61d8d9134d3 (MD5) license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5) Previous issue date: 2011 / Coordenação de Aperfeiçoamento de Pessoal de Nível Superior / Engenharia de software visa o desenvolvimento eficiente e a manutenção sistemática de software, de forma a atender satisfatoriamente as necessidades impostas pelo mercado. Nessa área, a montagem de linhas de produto que minimizem variáveis de custo e de tempo para lançamento de uma família de produtos é estratégica para a garantia de competitividade. Quando se tem disponibilidade de mais de uma abordagem para a montagem de tais linhas, faz-se necessário identificar qual delas seria a mais eficiente. Esta dissertação aborda a utilização de técnicas de planejamento estatístico de experimentos para projetar estudos em engenharia de software que permitam avaliar a eficiência de abordagens de desenvolvimento de software. A motivação do trabalho está no projeto de experimentos para comparação das abordagens PLUSS (modelagem de casos de uso em linhas de produtos para sistemas e software) e MSVCM (modelagem de variações em cenários de casos de uso por mecanismos transversais) de montagem e manutenção de linhas de produtos de software. A dissertação tem como foco o estudo da adequação e desempenho de planos experimentais em quadrados latinos aplicados a engenharia de software. Tais planos possuem um apelo prático importante, pois permitem o controle de duas fontes de variação sistemáticas simultâneas durante a experimentação. Nesta dissertação, o desempenho estatístico de planos em quadrados latinos de ordem 2 é investigado através da teoria de aleatorização e de simulações de Monte Carlo
4

Reuso sistematizado de software e linhas de produto de software no setor financeiro: estudos de caso no Brasil. / Sem título

Reinehr, Sheila dos Santos 19 March 2008 (has links)
A engenharia de software tem buscado, nas últimas décadas, assemelhar-se a outras disciplinas de engenharia, introduzindo métodos, técnicas e ferramentas que possibilitem a melhoria da produtividade e qualidade no desenvolvimento de software em ordem de grandeza similar à alcançada pela indústria de manufatura. Uma das abordagens mais bem sucedidas neste sentido tem sido o emprego das práticas de reuso sistematizado de software, como o desenvolvimento baseado em componentes e, em especial, as linhas de produtos de software ou engenharia de família de produtos. No Brasil, um dos segmentos que mais produz e consome software é o setor financeiro, uma vez que todos os seus produtos e serviços são entregues através da tecnologia da informação. Por este motivo, torna-se fundamental a compreensão de como acontecem os processos de reuso de software neste segmento e como estes contribuem para o sucesso dos projetos. Esta pesquisa apresenta o mapeamento do cenário de reuso de software no setor financeiro no Brasil, baseado em estudos de caso conduzidos em cinco, dos dez maiores bancos instalados no país. / During last decades, Software Engineering has been aiming at be more disciplined as other engineering disciplines, by introducing methods, techniques and tools that provide productivity and quality improvement in the same levels reached by manufacturing industries. One of the most successful approaches towards this goal has been the use of systematic software reuse practices, such as component based development and, specially, software product lines or product family engineering. In Brazil, one of the most active sectors in consuming and producing software products is the financial sector, once all of its products and services are delivered through Information Technology. This is the reason why is so important to understand how software reuse processes occurs in this sector and how do they contribute to projects success. This research presents scenario of software reuse in the financial sector in Brazil, based on case research conducted in five of the ten largest banks installed in the country.
5

[en] FEAF: AN INFRASTRUCTURE FOR ANALYZING THE EVOLUTION OF THE FEATURES IN A SOFTWARE PRODUCT LINE / [pt] FEAF: UMA INFRAESTRUTURA PARA ANÁLISE DA EVOLUÇÃO DAS CARACTERÍSTICAS DE UMA LINHA DE PRODUTO DE SOFTWARE

BRUNO FERREIRA FABRI 30 June 2015 (has links)
[pt] Linhas de Produtos de Software (LPS) consistem em um paradigma de desenvolvimento de software, no qual famílias de sistemas compartilham características comuns e tornam explicitas outras características que variam de acordo com o sistema final considerado. Esta abordagem oferece benefícios ao desenvolvimento de software tais como a redução de custos e a qualidade do produto final. Como em qualquer abordagem de desenvolvimento de software, as atividades de evolução do software devem ser vistas como algo inevitável, constante e rotineiro. Dentro do cenário do desenvolvimento de LPSs, as atividades de evolução são impulsionadas pelas alterações das suas características no decorrer das versões. Visto isso, o desenvolvimento de LPSs impõem novos desafios para as atividades de análise e compreensão da evolução de suas características, considerando-se as diversas versões de uma LPS. Trabalhos de pesquisa recentes propõem estratégias visuais com suporte automatizado por ferramentas de visualização. Tais abordagens apresentam limitações visto que algumas não fornecem suporte à comparação das características em diversas versões de uma LPS e outras não dão suporte ao conceito de características presente na LPS. Esta dissertação propõe o FEAF, uma infraestrutura para auxiliar a construção de ferramentas para analisar e compreender a evolução das características nas diferentes versões de uma LPS. Com base na infraestrutura proposta, foi desenvolvida uma ferramenta visual, que auxilia nas atividades de análise e compreensão da evolução das características de uma LPS, denominada FEACP. Ela fornece uma estratégia de visualização que utiliza duas visualizações leves baseadas em representação de grafo. A ferramenta foi avaliada através de um experimento controlado que compara a sua estratégia de visualização com a estratégia de visualização da ferramenta Source Miner Evolution. / [en] Software Products Lines (SPL) is a software engineering approach to developing software system families that share common features and differ in other features according to the requested software systems. The adoption of the SPL approach can promote several benefits such as cost reduction, product quality, productivity and time to market. As with any approach to software development, the activities of software evolution should be seen as something inevitable, constant and routine. Within the scenario of development of SPLs, evolution activities are driven by changes in its features over the releases. As such, the development of SPLs imposes new challenges to the activities of analyzing and comprehension the evolution of their features, considering the various releases of an SPL. Recent research works propose visual strategies with automated support by visualization tools. Such approaches have limitations since some do not provides support for a comparison of features in different releases of an SPL and others do not support the concept of features present in the SPL. This paper proposes the FEAF, an infrastructure to support the construction of tools for analyzing and comprehending the evolution of features in different releases of an SPL. Based on the proposed infrastructure, we developed a visual tool, which assists with the analysis and understanding of the evolution of the features of an SPL, called FEACP. It provides a visualization strategy that uses two light views based on graph representation. The tool was evaluated through a controlled experiment that compares our visualization strategy with the visualization strategy of Source Miner Evolution.
6

Reuso sistematizado de software e linhas de produto de software no setor financeiro: estudos de caso no Brasil. / Sem título

Sheila dos Santos Reinehr 19 March 2008 (has links)
A engenharia de software tem buscado, nas últimas décadas, assemelhar-se a outras disciplinas de engenharia, introduzindo métodos, técnicas e ferramentas que possibilitem a melhoria da produtividade e qualidade no desenvolvimento de software em ordem de grandeza similar à alcançada pela indústria de manufatura. Uma das abordagens mais bem sucedidas neste sentido tem sido o emprego das práticas de reuso sistematizado de software, como o desenvolvimento baseado em componentes e, em especial, as linhas de produtos de software ou engenharia de família de produtos. No Brasil, um dos segmentos que mais produz e consome software é o setor financeiro, uma vez que todos os seus produtos e serviços são entregues através da tecnologia da informação. Por este motivo, torna-se fundamental a compreensão de como acontecem os processos de reuso de software neste segmento e como estes contribuem para o sucesso dos projetos. Esta pesquisa apresenta o mapeamento do cenário de reuso de software no setor financeiro no Brasil, baseado em estudos de caso conduzidos em cinco, dos dez maiores bancos instalados no país. / During last decades, Software Engineering has been aiming at be more disciplined as other engineering disciplines, by introducing methods, techniques and tools that provide productivity and quality improvement in the same levels reached by manufacturing industries. One of the most successful approaches towards this goal has been the use of systematic software reuse practices, such as component based development and, specially, software product lines or product family engineering. In Brazil, one of the most active sectors in consuming and producing software products is the financial sector, once all of its products and services are delivered through Information Technology. This is the reason why is so important to understand how software reuse processes occurs in this sector and how do they contribute to projects success. This research presents scenario of software reuse in the financial sector in Brazil, based on case research conducted in five of the ten largest banks installed in the country.
7

[en] SUPPORTING HETEROGENEOUS CONFIGURATION KNOWLEDGE OF SOFTWARE PRODUCT LINES / [pt] SUPORTANDO CONHECIMENTO DE CONFIGURAÇÃO HETEROGÊNEO DE LINHAS DE PRODUTOS DE SOFTWARE

ELDER 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.
8

Geração de aplicações para linhas de produtos orientadas a aspectos com apoio da ferramenta Captor-AO / Application generation for aspect oriented product lines with Captor-AO tool

Pereira Junior, Carlos Alberto de Freitas 19 November 2008 (has links)
Uma Linha de Produtos de Software (LPS) consiste de um conjunto de sistemas de software que compartilham características comuns e satisfazem às necessidades específicas de um segmento particular. Para tornar o processo de instanciação de produtos mais rápido e menos suscetível a erros, o projeto de uma LPS pode adotar a utilização de geradores de aplicação, que podem gerar os artefatos da LPS utilizando uma especificação das variabilidades de um certo produto. Adicionalmente, notase que determinadas características transversais de uma linha de produtos têm potencial de reúso em diferentes domínios, podendo ser implementadas usando a programação orientada a aspectos (POA). Neste trabalho é proposto um processo para o desenvolvimento de LPS e geração automatizada de produtos levando em consideração os interesses transversais existentes em cada domínio de aplicação. Os interesses transversais são as características comuns espalhadas pelas divisões ou módulos do programa de diferentes domínios. O processo aqui proposto tem a finalidade de aumentar o reúso de características de linhas de produtos por meio da POA, permitindo que as LPSs sejam projetadas de forma mais coesa e, consequentemente, facilitando sua manutenção e evolução. Visando diminuir o esforço necessário para a instanciação dos produtos provenientes dessas linhas de produtos, neste trabalho também é apresentada uma extensão do gerador Captor, denominada Captor-AO. Esse gerador fornece suporte ao processo proposto, permitindo a criação de produtos formados por características de diferentes domínios. Por fim, é apresentado um estudo de caso em que é realizada a configuração de um domínio transversal para o interesse de persistência, a definição de um domínio-base compatível com esse domínio transversal e a geração de produtos formados pelas características de ambos os domínios utilizando o gerador estendido Captor-AO / A Software Product Line (SPL) consists of a set of software systems that share common features and fulfill the specific requirements of a particular domain. In order to make the products instantiation process faster and less prone to errors, the project of a SPL can adopt the utilization of application generators, which can can automatically generate the SPL artifacts based on the specification of the variabilities of a particular product. Additionally, it can be noticed that certain crosscutting features of a product line have potencial to be reused in different domains, so they can be implemented using aspect oriented programming (AOP). In this work, a process is proposed for the development of SPLs and automatic generation of products, considering the crosscutting concerns present in each application domain. The crosscutting concerns are related to the common features that are scattered around program divisions or modules of different domains. The process proposed here has the goal of enhancing the reuse of SPL features using AOP, allowing the design of SPL in a more cohesive way and, thus, easing its maintenance and evolution. Aiming at decreasing the effort needed to instantiate products from these SPL, this work also presents an extension to the Captor application generator, named Captor-AO. This generator supports the proposed process, allowing the creation of products composed by features of different domains. Finally, a case study is presented in which Captor-AO is configured with two domains: a crosscutting domain for the persistence concern and a base domain compatible with this crosscutting domain, such that the generation of products can be done by composing features of both domains
9

[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ÇÃO

BRUNO 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.
10

An Assessment on Variability Implementation Techniques in Software Product Lines: A Replicated Case Study

Alvim, Loreno Freitas Matos 08 1900 (has links)
Submitted by Diogo Barreiros (diogo.barreiros@ufba.br) on 2017-06-02T17:13:36Z No. of bitstreams: 1 Dissertacao Loreno - corrigida.pdf: 2272486 bytes, checksum: eda3496f6b391d89f7d983d21c00111b (MD5) / Approved for entry into archive by Uillis de Assis Santos (uillis.assis@ufba.br) on 2017-06-28T18:39:11Z (GMT) No. of bitstreams: 1 Dissertacao Loreno - corrigida.pdf: 2272486 bytes, checksum: eda3496f6b391d89f7d983d21c00111b (MD5) / Made available in DSpace on 2017-06-28T18:39:11Z (GMT). No. of bitstreams: 1 Dissertacao Loreno - corrigida.pdf: 2272486 bytes, checksum: eda3496f6b391d89f7d983d21c00111b (MD5) / Computação Orientada a Serviços (COS) e Linhas de Produtos de Software (LPS) são abordagens destinadas ao desenvolvimento de sistemas de software que permitem as organizações reutilizarem, de forma sistemática, artefatos de software existentes ao invés de repetidamente desenvolvê-los a cada novo sistema implementado. Devido a essa característica, ambas as abordagens tem recebido uma crescente atenção de pesquisadores, principalmente, a sua combinação conhecida como Linha de Produtos Orientada a Serviços (LPOS). Isto pode ser justificada porque LPOS tem como objetivo alcançar os mesmos benefícios de ambas as abordagens e também resolver os problemas enfrentados por cada uma. No entanto, mesmo com toda esta campanha, muitos desafios precisam ser superados, em particular, a falta de avaliações que considerem as diferentes técnicas de implementação de variabilidade. Este trabalho investiga este problema através de dois diferentes estudos de caso. Assim, buscou-se identificar qual técnica de implementação de variabilidade obteve melhores resultados com relação a complexidade, estabilidade e modularidade de software. Baseados nos resultados, um modelo de decisão inicial foi desenvolvido para auxiliar engenheiros de software a escolherem a mais adequada técnica de implementação de variabilidade com base nesses critérios observados. / Service-Oriented Computing (SOC) and Software Product Lines (SPL) are approaches for developing software systems which enable organizations to reuse, in a systematic way, existing software assets rather than repeatedly developing them for new implemented systems. Due this characteristic, both approaches have received growing attention from researches, mainly, their combination known as Service-Oriented Product Lines (SOPL). It can be justified because SOPL has as objective achieving the same benefits from both approaches and also solving the problems facing by each one. Nevertheless, ever with this hype, many challenges need to be overcome, in particular, the lack of assessments considering different variability implementation techniques. This work investigates this problem through two different case studies. Thus, we aim to identify which variability mechanism achieved better results with respect to complexity, stability and modularity of software. Based on the results, an initial decision model was developed to aid software engineers choose the most suitable variability implementation technique based on a set of parameters.

Page generated in 0.1191 seconds