• Nenhum resultado encontrado

A Reengenharia de software com o propósito de criar uma Linha de Produto de Software

N/A
N/A
Protected

Academic year: 2021

Share "A Reengenharia de software com o propósito de criar uma Linha de Produto de Software"

Copied!
5
0
0

Texto

(1)

A Reengenharia de software com o prop´osito de criar uma

Linha de Produto de Software

Matheus Catarino de Aguilar1, Jandira Guenka Palma1

1Departamento de Computac¸˜ao – Universidade Estadual de Londrina (UEL)

Caixa Postal 10.011 – CEP 86057-970 – Londrina – PR – Brasil

[email protected], [email protected]

Abstract. Develop products fast and with quality are characteristics essential to follow software market competitiveness. This work suggest a way to achieve these properties, using the methodology ”Software Product Line”as strategy in reuse of software, approaching how she can be built, been planned from the first system or for migrate legacy systems. Using three phases: detection, analysis and transformation. For migrating, will be used methods of detection of code similarity. With this approach, it is believed be capable of instruct to readers how it works and ways to apply.

Resumo. Desenvolver produtos com rapidez e qualidade s˜ao caracter´ısticas es-senciais para acompanhar a competitividade no mercado de softwares. Esse trabalho prop˜oe uma maneira de se alcanc¸ar essas propriedades, utilizando a metodologia ”Software Product Line” como estrat´egia para a reutilizac¸˜ao de software, abordando como ela pode ser constru´ıda, sendo planejada dˆes do pri-meiro sistema ou migrando sistemas j´a existentes. Dividindo-a em trˆes fases; detecc¸˜ao, an´alise e transformac¸˜ao. Para a migrac¸˜ao, ser˜ao utilizados m´etodos de detecc¸˜ao de c´odigos similares. Com essa abordagem, acredita-se ser capaz de instruir aos leitores como funciona a metodologia e maneiras de aplic´a-la.

1. Introduc¸˜ao

Na ind´ustria de softwares, as empresas buscam reduzir os custos, tempo de produc¸˜ao, melhorar a qualidade, facilidade de manutenc¸˜ao, etc. Uma das estrat´egias uti-lizadas pelas empresas para atingir esses objetivos ´e a reutilizac¸˜ao de software, utilizando artefatos existentes para a produc¸˜ao de novos, por´em a maneira que a maioria das empre-sas emprega a reutilizac¸˜ao ´e atrav´es da metodologia Clone-And-Own.

Essa metodologia apresenta como principal desvantagem a manutenc¸˜ao, pois s˜ao artefatos copiados e alterados para atenderem as novas caracter´ısticas pedidas pelo cliente. Com o passar do tempo, caso seja encontrado algum defeito ou tenha alguma otimizac¸˜ao, a manutenc¸˜ao tem que ser realizada em todas as c´opias, tornando-se algo trabalhoso.

Com isso, temos outra metodologia, a Software Product Line, que visa atingir os objetivos, sem o problema da manutenc¸˜ao, pois ´e uma estrat´egia de reutilizac¸˜ao de soft-ware que utiliza uma infraestrutura comum, criada sobre um dom´ınio espec´ıfico.

O foco deste trabalho ´e abordar como desenvolver uma SPL e como realizar migrac¸˜ao de sistemas j´a produzidos, utilizando m´etodos de detecc¸˜ao de c´odigo simila-res. Tendo em vista que a maioria das empresas s´o percebe a possibilidade de realizar uma abordagem com SPL ap´os terem desenvolvidos v´arios produtos, a reengenharia para

(2)

a migrac¸˜ao ´e de suma importˆancia.

O documento esta organizado da seguinte forma: A sec¸˜ao 2 apresenta os conceitos fundamentais para o entendimento do trabalho e a base das afirmac¸˜oes aqui realizadas. A sec¸˜ao 3 descreve quais os objetivos que se busca alcanc¸ar com o trabalho proposto. A sec¸˜ao 4 s˜ao descritos como os objetivos ser˜ao alcanc¸ados. A sec¸˜ao 5 apresenta o crono-grama de execuc¸˜ao, detalhando cada atividade e seu per´ıodo. Por fim, a sec¸˜ao 6 identifica como o trabalho realizado pode contribuir para avanc¸ar ou consolidar o conhecimento dos leitores.

2. Fundamentac¸˜ao Te´orico-Metodol´ogica e Estado da Arte

Nesta sec¸˜ao, ser˜ao apresentados os conceitos para que se tenha entendimento do trabalho.

2.1. Reengenharia de Software ´

E comum que os neg´ocios sejam impulsionados com softwares e com o passar do tempo, as regras de neg´ocio das empresas sofrem alterac¸˜oes. Os softwares buscam acompanhar essas mudanc¸as, sendo adicionadas novas funcionalidades ou alterando as j´a existentes. Alguns est˜ao sendo desenvolvidos a muitos anos, e devido a essas alterac¸˜oes, podem se tornar muito complicados. O surgimento de novas tecnologias tamb´em contri-bui para que seja pensado em fazer uma reengenharia desse software, ou seja, pegar um software existente e transforma-lo, para que ele se torne mais eficiente e atenda as novas regras de neg´ocio de uma maneira adequada. [1, 3]

2.2. Clone And Own

Trata-se de uma metodologia de reutilizac¸˜ao de software, baseada na c´opia e adaptac¸˜ao de artefatos existentes para atender as novas caracter´ısticas de um produto. Por mais que seja desencorajada na literatura, ´e uma das abordagens de reuso mais uti-lizada, devido a simplicidade, disponibilidade e indepedencia entre os desenvolvedores. Tem como a principal desvantagem a manutenc¸˜ao, por gerar produtos independentes, cada correc¸˜ao de erro ou otimizac¸˜ao realizada em um artefato que foi copiado e adaptado em v´arios produtos, deve ser realizada em todos. [1, 2]

2.3. Software Product Line

Consiste em uma forma disciplinada do reuso de software. Utilizada visando criar uma fam´ılia de produtos que compartilham caracter´ısticas em comum. A principal van-tagem dessa metodologia ´e o compartilhamento de uma infraestrutura em comum para todos os produtos de um dom´ınio espec´ıfico, tendo cada produto a sua variac¸˜ao. Por ter uma infraestrutura em comum, auxilia na criac¸˜ao de tarefas caras, complexas e garante uma facilidade de manutenc¸˜ao. [1, 3]

2.4. Reengenharia para a criac¸˜ao de uma SPL

Com base em estudos realizados no trabalho ”Reengineering legacy applicati-ons into software product lines: a systematic mapping” [1], envolvendo 119 artigos acadˆemicos, extra´ıdos de bases de dados distintas e renomadas. A reengenharia para a criac¸˜ao de uma SPL pode ser classificada em trˆes fases: Detecc¸˜ao, sendo o inicio do pro-cesso, baseada na detecc¸˜ao de caracter´ısticas comuns e vari´aveis dos artefatos; An´alise ´e

(3)

a organizac¸˜ao das caracter´ısticas, voltada para a criac¸˜ao de um modelo de variabilidade; Transformac¸˜ao, onde os artefatos s˜ao utilizados para a criac¸˜ao da SPL.

A figura 1 representa o processo de reengenharia baseado nessas trˆes fases. Par-tindo da esquerda, em System Variants temos variac¸˜oes de um sistema, desenvolvidos utilizando a metodologia Clone-And-Own. Seguindo o fluxo, temos a fase de detecc¸˜ao onde s˜ao identificadas as caracter´ısticas comuns e vari´aveis. Logo ap´os, a an´alise, onde ´e montado um modelo que atenda as variac¸˜oes de todos os sistemas, representado por uma ´arvore, usada para estabelecer relac¸˜oes entre caracter´ısticas. Finalmente, a transformac¸˜ao, realizando modificac¸˜oes nos artefatos para criar a SPL.

Figura 1. Processo de reengenharia de software

2.5. M´etodos de detecc¸˜ao de c´odigos similares

Para que seja poss´ıvel realizar a reengenharia, ´e necess´ario identificar as carac-ter´ısticas comuns e vari´aveis dos sistemas, e o c´odigo que as implementa. Uma maneira de facilitar essa identificac¸˜ao ´e a utilizac¸˜ao de t´ecnicas que examinam arquivos de c´odigo, comparando-os em busca de c´opias e similaridade. [4, 5]

3. Objetivos

O trabalho tem como objetivo, propor como uma SPL pode ser constru´ıda, ex-plorando cada etapa no processo de reengenharia, tanto de conceitos te´oricos quanto na utilizac¸˜ao de t´ecnicas para uma aplicac¸˜ao pr´atica.

4. Procedimentos metodol´ogicos/M´etodos e t´ecnicas

Para se alcanc¸ar os objetivos propostos, inicialmente ser´a realizado um levanta-mento bibliogr´afico em busca de livros e artigos, visando estudar os conceitos da me-todologia SPL e maneiras de aplicar a reengenharia, explorando cada etapa e buscando t´ecnicas que auxiliam na evoluc¸˜ao de cada uma.

Ap´os o levantamento e o estudo, ser˜ao definidas as t´ecnicas que ser˜ao aplicadas em cada uma das etapas. T´ecnicas para a identificac¸˜ao de caracter´ısticas comuns e vari´aveis, que utilizem m´etodos de detecc¸˜ao de c´odigos similares, t´ecnicas de construc¸˜ao de mode-los que se adequam as caracter´ısticas, arquiteturas de software, design patterns e maneiras

(4)

de realizar as transformac¸˜oes.

Por fim, ser´a criado um estudo de caso para que sejam validadas as t´ecnicas es-colhidas, partindo de um problema te´orico at´e sua aplicac¸˜ao pr´atica, focando apenas na parte da codificac¸˜ao, n˜ao envolvendo artefatos como documentac¸˜oes.

5. Cronograma de Execuc¸˜ao

Atividades:

1. Levantamento bibliogr´afico; 2. Estudo de conceitos e t´ecnicas;

3. Selec¸˜ao de t´ecnicas para cada etapa do processo; 4. Elaborar estudo de caso;

5. Aplicar conceitos;

Tabela 1. Cronograma de Execuc¸ ˜ao

abr mai jun jul ago set out nov Atividade 1 x x

Atividade 2 x x

Atividade 3 x x

Atividade 4 x

Atividade 5 x x x

6. Contribuic¸˜oes e/ou Resultados esperados

Com esse trabalho, espera-se que o leitor obtenha conhecimento da metodologia SPL, suas etapas e t´ecnicas que podem ser utilizadas para aplic´a-la.

7. Espac¸o para assinaturas

Londrina, 04 de Maio de 2018.

—————————————— ——————————————

(5)

Referˆencias

[1] Roberto E. Assunc¸˜ao, Wesley K. G. Lopez-Herrejon, Lukas Linsbauer, Silvia R. Vergilio, and Alexander Egyed. Reengineering legacy applications into software product lines: a systematic mapping. Empirical Software Engineering, 2017.

[2] Y. Dubinsky, J. Rubin, T. Berger, S. Duszynski, M. Becker, and K. Czarnecki. An explora-tory study of cloning in industrial software product lines. 17th European Conference on Software Maintenance and Reengineering, 2013.

[3] Waraporn Jirapanthong. Experience on re-engineering applying with software product line. ARXIV, 2012.

[4] T. Kamiya, S. Kusumoto, and K. Inoue. Ccfinder: a multilinguistic token-based code clone detection system for large scale source code. IEEE Transactions on Software Engineering, 2002.

[5] Y. Xue, Z. Xing, and S. Jarzabek. Feature location in a collection of product variants. In 2012 19th Working Conference on Reverse Engineering, pages 145–154, Oct 2012.

Referências

Documentos relacionados

1. Etnografia Concorrente: São realizados estudos curtos e interativos antes do inicio do desenvolvimento, para que sejam colhidos os requisitos iniciais e a geração dos

A tabela 25 apresenta os resultados brutos desta avaliação em relação à característica busca e a tabela 26 exibe o resultado ponderado para esta característica.. A tabela 27

 Descreve a arquitetura de processos de ciclo de vida de software mas não especifica os detalhes de como implementar ou realizar as atividades e tarefas incluídas nos processo..

Segundo Lewis (2004), "O plano de garantia da qualidade de software é um resumo ou esboço das medidas de qualidade para garantir níveis de. qualidade dentro do esforço

No Quadro 14, está a representação da incompatibilidade número 10 onde na modelagem BIM, conforme o projeto estrutural, a passagem da eletrocalha foi projetada a 2,97m

Neste sentido, o nosso trabalho foi realizado em dois momentos: o Campo de Observação com 20 horas semanais e Campo de Docência com 20 horas semanais, encontros significativos

A forma em que as empresas do arranjo do segmento cama-mesa-banho estão inseridas no mercado externo pode ser enquadrada em relações de redes de empresas, nas

Já o Ministério do Turismo (2010), divulga não apenas as atribuições gerais que o guia deve cumprir, mas também as atribuições específicas de acordo com a