Uma abordagem orientada a modelos para reutilização de software
A reutilização de software busca aumentar a qualidade e produtividade no desenvolvimento de software, evitando a duplicação do esforço e reaproveitando o máximo possível das experiências de projetos passados. Apesar de simples, esta idéia não é facilmente colocada em prática, principalmente de manei...
Main Author: | |
---|---|
Other Authors: | |
Format: | Others |
Language: | pt |
Published: |
Biblioteca Digitais de Teses e Dissertações da USP
2009
|
Subjects: | |
Online Access: | http://www.teses.usp.br/teses/disponiveis/55/55134/tde-02092009-140533/ |
id |
ndltd-usp.br-oai-teses.usp.br-tde-02092009-140533 |
---|---|
record_format |
oai_dc |
collection |
NDLTD |
language |
pt |
format |
Others
|
sources |
NDLTD |
topic |
Desenvolvimento orientado a modelos Domain engineering Domain-Specific languages Engenharia de Domínio Generative programming Linguagens específicas de domínio Linhas de produtos de software Model-driven development Programação generativa Reutilzação de szoftware Software product lines Software reuse |
spellingShingle |
Desenvolvimento orientado a modelos Domain engineering Domain-Specific languages Engenharia de Domínio Generative programming Linguagens específicas de domínio Linhas de produtos de software Model-driven development Programação generativa Reutilzação de szoftware Software product lines Software reuse Lucredio, Daniel Uma abordagem orientada a modelos para reutilização de software |
description |
A reutilização de software busca aumentar a qualidade e produtividade no desenvolvimento de software, evitando a duplicação do esforço e reaproveitando o máximo possível das experiências de projetos passados. Apesar de simples, esta idéia não é facilmente colocada em prática, principalmente de maneira sistemática e controlada. Técnicas de engenharia de domínio e linhas de produtos de software buscam facilitar esta tarefa, porém ainda existem outros fatores que dificultam a adoção da prática da reutilização. Entre estes, destacam-se os problemas inerentes ao desenvolvimento de software da maneira como é conduzido atualmente, baseado em código-fonte. Estes problemas têm suas origens na crescente demanda por software cada vez mais complexo e afetam negativamente a capacidade de reutilizar software. O desenvolvimento orientado a modelos surge como uma alternativa atraente neste cenário, elevando a importância de modelos dentro do ciclo de vida do software, incorporando-os como parte integrante do produto final por meio de técnicas de modelagem e geração de código. Com isto, parte da complexidade do software fica escondida dentro dos geradores, protegendo os desenvolvedores, reduzindo a incidência de erros, aumentando a produtividade, qualidade, interoperabilidade e manutenibilidade dos artefatos produzidos. Nesta dissertação defende-se a tese de que o desenvolvimento orientado a modelos pode efetivamente aumentar e/ou melhorar a reutilização de software, e que para isso ela deve ser tratada de forma consistente dentro de um processo de engenharia de domínio. Para demonstrar esta tese, é apresentada uma abordagem orientada a modelos para reutilização de software, com atividades que guiam o desenvolvedor durante a análise, projeto e implementação do domínio. São também apresentados os resultados de uma avaliação envolvendo três estudos empíricos, realizados em ambiente acadêmico e industrial, que buscou determinar a viabilidade da abordagem e os benefícios que podem ser alcançados com a combinação de técnicas do desenvolvimento orientado a modelos e da reutilização de software. Os resultados mostram que a abordagem pode trazer diferentes benefícios para organizações de software, incluindo aumento da quantidade e qualidade da reutilização, e reduzindo a complexidade de desenvolvimento e configuração de produtos === Software reuse aims at increasing quality and productivity in software development, avoiding effort duplication and reusing all past experiences possible. Although it is a simple idea, it is not easy to put reuse in practice, especially in a systematic and controlled way. Domain engineering and software product lines techniques try to make this task easier, but there are many other factors that difficult the reuse adoption. Among these factors are the problems that are inherent to software development in the way it is conducted today, based on source code. These problems arise from the growing demand for increasingly complex software, negatively affecting the ability to reuse. Model-driven development is an attractive alternative in this scenario, leveraging the importance of models in the software life cycle, incorporating them as part of the final product through modeling and code generation techniques. As a result, part of the software complexity becomes hidden inside the generators, shielding the developers, reducing errors, increasing the productivity, quality, interoperability and maintainability of the produced assets. In this dissertation is presented the thesis that model-driven development can effectively increase and/or improve software reuse, and that to achieve this goal it must be treated in a consistent way inside a domain engineering process. To demonstrate this thesis, a model-driven software reuse approach is presented, with activities that guide the developer during domain analysis, design and implementation. The results of an evaluation involving three empirical studies are also presented. The studies were performed in both academic and industrial environments, and aimed at determining the viability of the approach and the benefits that can be achieved with the combination of model-driven development and software reuse techniques. The results showed that the approach can bring different benefits to software organizations, such as software reuse quantity and quality improvements, and complexity reduction in product development and configuration tasks |
author2 |
Fortes, Renata Pontin de Mattos |
author_facet |
Fortes, Renata Pontin de Mattos Lucredio, Daniel |
author |
Lucredio, Daniel |
author_sort |
Lucredio, Daniel |
title |
Uma abordagem orientada a modelos para reutilização de software |
title_short |
Uma abordagem orientada a modelos para reutilização de software |
title_full |
Uma abordagem orientada a modelos para reutilização de software |
title_fullStr |
Uma abordagem orientada a modelos para reutilização de software |
title_full_unstemmed |
Uma abordagem orientada a modelos para reutilização de software |
title_sort |
uma abordagem orientada a modelos para reutilização de software |
publisher |
Biblioteca Digitais de Teses e Dissertações da USP |
publishDate |
2009 |
url |
http://www.teses.usp.br/teses/disponiveis/55/55134/tde-02092009-140533/ |
work_keys_str_mv |
AT lucrediodaniel umaabordagemorientadaamodelosparareutilizacaodesoftware AT lucrediodaniel amodeldrivensoftwarereuseapproach |
_version_ |
1719049510595854336 |
spelling |
ndltd-usp.br-oai-teses.usp.br-tde-02092009-1405332019-05-09T17:37:54Z Uma abordagem orientada a modelos para reutilização de software A model-driven software reuse approach Lucredio, Daniel Desenvolvimento orientado a modelos Domain engineering Domain-Specific languages Engenharia de Domínio Generative programming Linguagens específicas de domínio Linhas de produtos de software Model-driven development Programação generativa Reutilzação de szoftware Software product lines Software reuse A reutilização de software busca aumentar a qualidade e produtividade no desenvolvimento de software, evitando a duplicação do esforço e reaproveitando o máximo possível das experiências de projetos passados. Apesar de simples, esta idéia não é facilmente colocada em prática, principalmente de maneira sistemática e controlada. Técnicas de engenharia de domínio e linhas de produtos de software buscam facilitar esta tarefa, porém ainda existem outros fatores que dificultam a adoção da prática da reutilização. Entre estes, destacam-se os problemas inerentes ao desenvolvimento de software da maneira como é conduzido atualmente, baseado em código-fonte. Estes problemas têm suas origens na crescente demanda por software cada vez mais complexo e afetam negativamente a capacidade de reutilizar software. O desenvolvimento orientado a modelos surge como uma alternativa atraente neste cenário, elevando a importância de modelos dentro do ciclo de vida do software, incorporando-os como parte integrante do produto final por meio de técnicas de modelagem e geração de código. Com isto, parte da complexidade do software fica escondida dentro dos geradores, protegendo os desenvolvedores, reduzindo a incidência de erros, aumentando a produtividade, qualidade, interoperabilidade e manutenibilidade dos artefatos produzidos. Nesta dissertação defende-se a tese de que o desenvolvimento orientado a modelos pode efetivamente aumentar e/ou melhorar a reutilização de software, e que para isso ela deve ser tratada de forma consistente dentro de um processo de engenharia de domínio. Para demonstrar esta tese, é apresentada uma abordagem orientada a modelos para reutilização de software, com atividades que guiam o desenvolvedor durante a análise, projeto e implementação do domínio. São também apresentados os resultados de uma avaliação envolvendo três estudos empíricos, realizados em ambiente acadêmico e industrial, que buscou determinar a viabilidade da abordagem e os benefícios que podem ser alcançados com a combinação de técnicas do desenvolvimento orientado a modelos e da reutilização de software. Os resultados mostram que a abordagem pode trazer diferentes benefícios para organizações de software, incluindo aumento da quantidade e qualidade da reutilização, e reduzindo a complexidade de desenvolvimento e configuração de produtos Software reuse aims at increasing quality and productivity in software development, avoiding effort duplication and reusing all past experiences possible. Although it is a simple idea, it is not easy to put reuse in practice, especially in a systematic and controlled way. Domain engineering and software product lines techniques try to make this task easier, but there are many other factors that difficult the reuse adoption. Among these factors are the problems that are inherent to software development in the way it is conducted today, based on source code. These problems arise from the growing demand for increasingly complex software, negatively affecting the ability to reuse. Model-driven development is an attractive alternative in this scenario, leveraging the importance of models in the software life cycle, incorporating them as part of the final product through modeling and code generation techniques. As a result, part of the software complexity becomes hidden inside the generators, shielding the developers, reducing errors, increasing the productivity, quality, interoperability and maintainability of the produced assets. In this dissertation is presented the thesis that model-driven development can effectively increase and/or improve software reuse, and that to achieve this goal it must be treated in a consistent way inside a domain engineering process. To demonstrate this thesis, a model-driven software reuse approach is presented, with activities that guide the developer during domain analysis, design and implementation. The results of an evaluation involving three empirical studies are also presented. The studies were performed in both academic and industrial environments, and aimed at determining the viability of the approach and the benefits that can be achieved with the combination of model-driven development and software reuse techniques. The results showed that the approach can bring different benefits to software organizations, such as software reuse quantity and quality improvements, and complexity reduction in product development and configuration tasks Biblioteca Digitais de Teses e Dissertações da USP Fortes, Renata Pontin de Mattos 2009-07-17 Tese de Doutorado application/pdf http://www.teses.usp.br/teses/disponiveis/55/55134/tde-02092009-140533/ pt Liberar o conteúdo para acesso público. |