Reúso de Software: Do Oportunista ao Sistemático

  • Wesley Assunção UTFPR
  • Willian Mendonça UTFPR
  • Silvia Vergilio UFPR

Resumo


O reúso oportunista, também chamado de copia-e-cola, é uma prática comum na indústria. Apesar de esta estratégia apresentar benefícios a curto prazo, quando a quantidade de produtos clonados aumenta, problemas técnicos de gerenciamento, manutenção e evolução surgem. Linha de Produtos de Software (LPS) é uma abordagem de reúso sistemático que se apresenta como alternativa promissora para estes problemas. Em uma LPS, um núcleo de artefatos similares é compartilhado entre os produtos, evitando duplicidades e desenvolvimento independente de partes comuns. Na indústria, observa-se a origem de sistemas desenvolvidos de forma oportunista, que são utilizados como base para o desenvolvimento da LPS, utilizando um processo de reengenharia. Este trabalho apresenta um processo genérico de reengenharia, além disso, discute benefícios e dificuldades para aplicar o reúso sistemático. Deseja-se motivar que indústrias considerem a adoção do reúso sistemático e desenvolvam produtos mais fáceis de manter, evoluir, e com melhor qualidade.

Referências

Apel, S., Batory, D., K¨astner, C., and Saake, G. (2013). Feature-Oriented Software Product Lines. Springer.

Assunção, W. K. G., Lopez-Herrejon, R. E., Linsbauer, L., Vergilio, S. R., and Egyed, A.(2017). Reengineering legacy applications into software product lines: A systematic mapping. Empirical Software Engineering, pages 1–45.

Clements, P. and Northrop, L. (2001). Software Product Lines: Practices and Patterns. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.

Faust, D. and Verhoef, C. (2003). Software product line migration and deployment. Software: Practice and Experience, 33(10):933–955.

Galimberti, M. and Wazlawick, R. (2015). Active internationalization of small and medium-sized software enterprises - cases of french software companies. Journal of Technology Management & Innovation, 10(4):99–108.

Holmes, R. and Walker, R. J. (2013). Systematizing pragmatic software reuse. ACM Transactions on Software Engineering and Methodology, 21(4):20:1–20:44.

Jansen, S., Brinkkemper, S., Hunink, I., and Demir, C. (2008). Pragmatic and opportunistic reuse in innovative start-up companies. IEEE Software, 25(6):42–49.

Kang, K. C., Cohen, S. G., Hess, J. A., Novak,W. E., and Peterson, A. S. (1990). Feature-oriented domain analysis (FODA) feasibility study. Technical report, Carnegie-Mellon University Software Engineering Institute.

Krueger, C. W. (1992). Software reuse. ACM Computing Surveys, 24(2):131–183.

Kulkarni, N. and Varma, V. (2017). Perils of opportunistically reusing software module.Software: Practice and Experience, 47(7):971–984.

Laguna, M. A. and Crespo, Y. (2013). A systematic mapping study on software product line evolution: From legacy system reengineering to product line refactoring. Science of Computer Programming, 78(8):1010–1034. Special section on software evolution, adaptability, and maintenance & Special section on the Brazilian Symposium on Programming Languages.

Linden, F. J. v. d., Schmid, K., and Rommes, E. (2007). Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering. Springer-Verlag New York, Inc., Secaucus, NJ, USA.

Pohl, K., Böckle, G., and Linden, F. J. v. d. (2005). Software Product Line Engineering: Foundations, Principles and Techniques. Springer-Verlag New York, Inc., Secaucus, NJ, USA.

van Ommering, R. (2005). Software reuse in product populations. IEEE Transactions on Software Engineering, 31(7):537–550.
Publicado
22/10/2018
ASSUNÇÃO, Wesley; MENDONÇA, Willian; VERGILIO, Silvia. Reúso de Software: Do Oportunista ao Sistemático. In: ESCOLA REGIONAL DE ENGENHARIA DE SOFTWARE (ERES), 2. , 2018, Dois Vizinhos/PR. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2018 . p. 157-162.