0
ENGENHARIA DE SOFTWARE AVANÇADA - REÚSODiógenes Ricardo   1                       Reuso - Engenharia de Software - Mestrad...
2                                 21/11/2012Roteiro Apresentar o reúso de software Descrever abordagens para  desenvolvi...
3                                 21/11/2012Introdução Não  é tão novo...(McLROY,1968). Em 2000 se torna “norma” para no...
4                                 21/11/2012  Introdução Aumento       do reuso como movimento Open source    Custa?   ...
5                                 21/11/2012Classificação   Reúso de sistemas de aplicação       Totalmente sem alteraçã...
6                                 21/11/2012Classificação Reuso   de objetos e funções    Já fazemos isso ;)    Bibliot...
7                                 21/11/2012Considerações(+) Confiança  aumentada Risco de projeto reduzido Uso eficaz ...
8                                 21/11/2012Considerações(-) Maiores  custos de manutenção Falta de ferramentas de supor...
9                                 21/11/2012IntroduçãoO processo de software precisa estar adaptado ao reuso    Requisit...
10                             21/11/2012O panorama de reuso De funções até aplicações Planejando    Depende do sistema...
11                             21/11/2012O panorama de reusona prática   A sua empresa possui total controle sobre compon...
12                             21/11/2012Reusamos?             Reuso - Engenharia de Software - Mestrado                  ...
13                             21/11/2012Planejamento   Cronograma       Pouco tempo -> COTS   Duração do software    ...
14                             21/11/2012Planejamento   Domínio da aplicação       Já existe software?   A plataforma e...
15                             21/11/2012Framework Objetos são normalmente muito específicos    Entender ou Reimplementa...
16                             21/11/2012Tipos de frameworks Frameworks     de Infraestrutura    Compiladores, interface...
17                             21/11/2012Tipos de frameworks Frameworks   de Aplicações WEB (WAFs).    Normalmente basea...
18                             21/11/2012MVC (Model View Controller) Década de 80 MVC ~= Observer + Strategy + Composite...
19                             21/11/2012WAF Engloba   vários frameworks.    Proteção    Páginas WEB dinâmicas    Supo...
20                             21/11/2012 Reuso - Engenharia de Software - Mestrado       em Eng. da Computação - POLI/UPE
21                             21/11/2012Funcionamento   Normalmente não se altera o código       Adicionamos classes co...
22                             21/11/2012Abordagens Frameworks     X SPL (Software Product Line).    No framework criamo...
23                             21/11/2012Frameworks e SPL   Dependem de            Não são    recursos de OO          ne...
24                             21/11/2012Linha de Produtos de Software                Reuso - Engenharia de Software - Mes...
25                             21/11/2012Linha de Produtos de Softwareo   Já utilizamos?    o   Quando construímos um sist...
26                             21/11/2012Conceitos base   Core assets   Feature   Variabilidade       Variantes      ...
27                             21/11/2012Conceitos base   Tipo de variantes                 Classificação das       Com...
28                             21/11/2012Linha de Produtos de Software   O que é?       É um conjunto de aplicações com ...
29                             21/11/2012Customização em massa             Reuso - Engenharia de Software - Mestrado      ...
30                             21/11/2012Funcionamento da SPLQuanto mais abstrato mais rápido e maisbarato para o cliente....
31                                   21/11/2012Quando usar?     Figura 1: Custo para desenvolver N tipos de sistemas compa...
32                              21/11/2012Linha de Produtos de Software    Figura 2: Principais atividades para SPLE adapt...
33                             21/11/2012Linha de Produtos de Software   Figura 3: Os subprocessos da Engenharia de Domíni...
34                              21/11/2012Linha de Produtos de Software     Figura 4: Principais abordagens de gerenciamen...
35                             21/11/2012 Reuso - Engenharia de Software - Mestrado       em Eng. da Computação - POLI/UPE
36                                21/11/2012Sistemas de solução COTS Sistemas   para um domínio simples até um  ERP Supo...
37                             21/11/2012Sistemas de solução COTSO  número de  módulos oferecem  suporte para  funções di...
38                             21/11/2012Sistemas de solução COTS Uma forma amplamente usada em reuso de software    Lim...
39                             21/11/2012Sistemas de solução COTS   A configuração envolve ainda:       Criação de formu...
40                             21/11/2012Sistemas Integrados COTS   Quando usar?       Unir dois COTS ou integrar um COT...
41                             21/11/2012Sistemas Integrados COTS Decisões:    Qual produto oferece a funcionalidade    ...
42                             21/11/2012Sistemas Integrados COTS Boehm      e Abts(1999)    Falta de controle de funcio...
43                             21/11/2012Sistemas Integrados COTS Boehm    e Abts(1999)    Não   há controle sobre a evo...
44                             21/11/2012Sistemas de solução COTS              Reuso - Engenharia de Software - Mestrado  ...
45                               21/11/2012Referências   CHEN, Lianping; MUHAMMAD, Ali Babar, CAWLEY Ciaran; A Status Rep...
46                             21/11/2012 Reuso - Engenharia de Software - Mestrado       em Eng. da Computação - POLI/UPE
Upcoming SlideShare
Loading in...5
×

Reúso

835

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
835
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
37
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Reúso"

  1. 1. ENGENHARIA DE SOFTWARE AVANÇADA - REÚSODiógenes Ricardo 1 Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  2. 2. 2 21/11/2012Roteiro Apresentar o reúso de software Descrever abordagens para desenvolvimento em larga escala  Linha de produtos de software(SPL). Vantagens e Desvantagens Frameworks Como desenvolver sistemas com COTS Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  3. 3. 3 21/11/2012Introdução Não é tão novo...(McLROY,1968). Em 2000 se torna “norma” para novos sistemas  Por quê?  Menor custo de produção  Manutenção  Velocidade  Qualidade  ROI Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  4. 4. 4 21/11/2012 Introdução Aumento do reuso como movimento Open source  Custa?  Como fazer? Adaptabilidade de sistemas já existentes  Web Services.  CEP, CPF, etc. Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  5. 5. 5 21/11/2012Classificação Reúso de sistemas de aplicação  Totalmente sem alteração.  Configuração para diferentes clientes.  COTS(Commercial Off-The-Shelf) Reúso de componentes  De subsistemas até objetos  Exemplos?  Capítulo 17(Engenharia de software baseada em componentes) e Capítulo 19 (Serviços como componentes reusáveis) Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  6. 6. 6 21/11/2012Classificação Reuso de objetos e funções  Já fazemos isso ;)  Bibliotecas com funções específicas, são muito utilizadas em código recém- desenvolvido Reuso de conceito  Ideias, formas, padrões de projeto. Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  7. 7. 7 21/11/2012Considerações(+) Confiança aumentada Risco de projeto reduzido Uso eficaz de especialistas Conformidade com padrões Desenvolvimento acelerado Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  8. 8. 8 21/11/2012Considerações(-) Maiores custos de manutenção Falta de ferramentas de suporte Síndrome do “Não inventado aqui” Criação, manutenção e uso de uma biblioteca de componentes Encontrar, compreender e adaptar os componentes reusáveis Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  9. 9. 9 21/11/2012IntroduçãoO processo de software precisa estar adaptado ao reuso  Requisitos  Projeto  Implementação Matsumoto(1984) e Cusamano(1989) HP(1995)  Exemplos das impressoras. Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  10. 10. 10 21/11/2012O panorama de reuso De funções até aplicações Planejando  Depende do sistema  Da tecnologia  Disponibilidade dos artefatos  Maturidade da equipe Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  11. 11. 11 21/11/2012O panorama de reusona prática A sua empresa possui total controle sobre componentes e bibliotecas de software utilizados nos sistemas desenvolvidos? É possível identificar a dependência entre os componentes? Você consegue garantir que não existem componentes inseridos nos sistemas que não estão sendo utilizados? Você controla se um componente com licença open source (GPL) foi inserido no software da sua empresa, obrigando legalmente que o código do seu software também seja distribuído com licença open source(GPL)? Sua empresa consegue gerenciar separadamente os componentes open source baixados da internet, dos componentes proprietários desenvolvidos na própria empresa? Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  12. 12. 12 21/11/2012Reusamos? Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  13. 13. 13 21/11/2012Planejamento Cronograma  Pouco tempo -> COTS Duração do software  Software de longa vida -> Manutenção Conhecimento, habilidades e experiência da equipe Importância do software e requisitos não funcionais  Certificações de segurança.  Sistemas Críticos Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  14. 14. 14 21/11/2012Planejamento Domínio da aplicação  Já existe software? A plataforma em que o sistema será executado  Componentes .Net, as library para Linux. Conclusão  Normalmente os gerentes não compreendem os riscos associados ao reuso em relação ao com desenvolvimento original, preferindo estes últimos por serem conhecidos. Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  15. 15. 15 21/11/2012Framework Objetos são normalmente muito específicos  Entender ou Reimplementar? Schimidt et al. (2004).  "...um conjunto integrado de artefatos de software(como classes, objetos e componentes) que colaboram para fornecer uma arquitetura reusável para uma família de aplicações relacionadas". Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  16. 16. 16 21/11/2012Tipos de frameworks Frameworks de Infraestrutura  Compiladores, interface com usuário, comunicação Frameworks de Middleware  Componentes padronizados  .Netda Microsoft.  Enterprise Java Beans(EBJ). Frameworks de Aplicações corporativas  Telecomunicações e Sistemas financeiros Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  17. 17. 17 21/11/2012Tipos de frameworks Frameworks de Aplicações WEB (WAFs).  Normalmente baseado no padrão Composite do MVC Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  18. 18. 18 21/11/2012MVC (Model View Controller) Década de 80 MVC ~= Observer + Strategy + Composite + ... Um framework é um padrão na prática! Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  19. 19. 19 21/11/2012WAF Engloba vários frameworks.  Proteção  Páginas WEB dinâmicas  Suporte a Banco de Dados  Gerenciamento de sessões  Interação de usuário – AJAX  Testes Unitários (Junit) Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  20. 20. 20 21/11/2012 Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  21. 21. 21 21/11/2012Funcionamento Normalmente não se altera o código  Adicionamos classes concretas. Callbacks  Métodos chamados em respostas a eventos do framework  Controladores, ao invés de objetos específicos da aplicação As aplicações pode ser construídas para o reuso futuro(Linha de Produtos de Software) Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  22. 22. 22 21/11/2012Abordagens Frameworks X SPL (Software Product Line).  No framework criamos diferentes tipos de aplicações “únicas”.  Em uma SPL criamos diferentes tipos de aplicações semelhantes.  Curva de aprendizagem  Pode ser caro para introduzir um framework em um processo de desenvolvimento  Qual o melhor?  Difícil debugar. Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  23. 23. 23 21/11/2012Frameworks e SPL Dependem de  Não são recursos de OO necessariamente Normalmente não é dependentes de OO modificado  Os componentes são Apoio técnico alterados, deletados Software ou reescritos  Apoio ao domínio  Software e Hardware Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  24. 24. 24 21/11/2012Linha de Produtos de Software Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  25. 25. 25 21/11/2012Linha de Produtos de Softwareo Já utilizamos? o Quando construímos um sistema e depois aparece um outro projeto parecido...o Normalmente o que acontece... o Novas instancias baseadas em produtos existentes tende a corromper a estrutura(especializa).o O que SPL faz... o Identifica funcionalidade comum e aplica em uma plataforma estruturada para simplificar e o reuso e a configuração Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  26. 26. 26 21/11/2012Conceitos base Core assets Feature Variabilidade  Variantes  Pontos de variação  Variação  Mecanismo de Variabilidade  Dependência de Variantes  Restrições de dependência  Requerida  Exclusiva Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  27. 27. 27 21/11/2012Conceitos base Tipo de variantes  Classificação das  Comum variantes  Variável  Mandatória  Específica do  Opcional produto  Alternativa inclusiva Níveis de variabilidade  Alternativa exclusiva  Da SPL  Alternativa  Do produto mutualmente inclusiva  Dos componentes  Dos subcomponentes  De código Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  28. 28. 28 21/11/2012Linha de Produtos de Software O que é?  É um conjunto de aplicações com uma arquitetura comum e componentes compartilhados, sendo cada aplicação especializada para refletir necessidades diferentes. Uma linha de produtos de software é um conjunto de sistemas com uso intensivo de reúso software que compartilham um conjunto de features comuns e gerenciáveis, que satisfazem às necessidades específicas de um segmento de mercado particular ou missão, e que são desenvolvidos a partir de um conjunto de core assets comuns, de modo planejado. (CLEMENTS E NORTHROP, 2001, p. 05).  O núcleo é projetado para ser configurado e adaptado para atender necessidades de clientes diferentes  Configurar, Implementar, modificar.  Customização em massa. Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  29. 29. 29 21/11/2012Customização em massa Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  30. 30. 30 21/11/2012Funcionamento da SPLQuanto mais abstrato mais rápido e maisbarato para o cliente. Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  31. 31. 31 21/11/2012Quando usar? Figura 1: Custo para desenvolver N tipos de sistemas comparando o SSD com SPLE. Adaptada de Pohl (2005, p.10) Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  32. 32. 32 21/11/2012Linha de Produtos de Software Figura 2: Principais atividades para SPLE adaptada de (NORTHROP e CLEMENTS, 2007) Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  33. 33. 33 21/11/2012Linha de Produtos de Software Figura 3: Os subprocessos da Engenharia de Domínio e Engenharia de Aplicação. Figura adaptada de (POHL et. al., 2005) Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  34. 34. 34 21/11/2012Linha de Produtos de Software Figura 4: Principais abordagens de gerenciamento de variabilidade. (CHEN et. al., 2009) Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  35. 35. 35 21/11/2012 Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  36. 36. 36 21/11/2012Sistemas de solução COTS Sistemas para um domínio simples até um ERP Suposições de forma de trabalho do domínio Dificuldades com situações específicas Sistemas ERP o processo de configuração exige conhecimento detalhado do negócio  Consultores e clientes. Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  37. 37. 37 21/11/2012Sistemas de solução COTSO número de módulos oferecem suporte para funções diferentes Há um conjunto de processos associados a cada módulo Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  38. 38. 38 21/11/2012Sistemas de solução COTS Uma forma amplamente usada em reuso de software  Limitação óbvia.  Restrição a configuraçãoA configuração envolve:  Seleção de funcionalidades  Estabelecimento de um modelo de dados  Definição das regras de negócio serão aplicadas nesses dados Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  39. 39. 39 21/11/2012Sistemas de solução COTS A configuração envolve ainda:  Criação de formulários de entrada e relatórios de saída  Novos processos de negócio estarão em conformidade como modelo de processos suportado pelo sistema?  Configuração de parâmetros que definam como o sistema é implantado internamente Após a configuração o sistema está pronto para o teste.  Problemas? Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  40. 40. 40 21/11/2012Sistemas Integrados COTS Quando usar?  Unir dois COTS ou integrar um COTS ao meu sistema. De que forma?  Por meio de API (application programming interfaces)  Interfaces de Serviços  Conexão entre saída de um e entrada de outro  Atualização dos banco de dados Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  41. 41. 41 21/11/2012Sistemas Integrados COTS Decisões:  Qual produto oferece a funcionalidade mais adequada?  Como os dados serão trocados?  Adaptadores  Quais características serão realmente usadas? Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  42. 42. 42 21/11/2012Sistemas Integrados COTS Boehm e Abts(1999)  Falta de controle de funcionalidade e desempenho  De que lado está a culpa?  Problemas com a interoperabilidade com vários sistemas COTS A falta de normalização das interfaces torna difícil a integração com o aumento do número de sistemas. Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  43. 43. 43 21/11/2012Sistemas Integrados COTS Boehm e Abts(1999)  Não há controle sobre a evolução do sistema  Novas versões podem ser incompatíveis, ou com funcionalidades indesejadas e versões anteriores pode ficar indisponíveis e sem suporte Isto acontece? Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  44. 44. 44 21/11/2012Sistemas de solução COTS Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  45. 45. 45 21/11/2012Referências CHEN, Lianping; MUHAMMAD, Ali Babar, CAWLEY Ciaran; A Status Report on the Evaluation of Variability Management Approaches Lero, the Irish Software Engineering Research Centre, University of Limerick, Ireland, 2009b CLEMENTS P. e NORTHROP L., Software Product Lines: Practices and Patterns, Addison-Wesley, pp. 608, 2001. NORTHROP, L. M. e CLEMENTS, P.C. A Framework for Software Product Line Practice. Version 5.0. Pittsburg. Software Engineering Institute, 2007. Disponível em: < http://www.sei.cmu.edu/productlines/framework.html >. Acesso em: 28 fev. 2010 às 10:24. POHL, K.; BÖCKLE, G.; VAN DER LINDEN, F.: Software Product Line Engineering – Foundations, Principles, and Techniques. Springer, Heidelberg 2005. OLIVEIRA, D. R. F.; Um estudo sobre gerenciamento de variabilidade de requisitos em linha de produtos de software trabalho de conclusão de curso, UPE, 2011. SOMMERVILLE, Ian; Software Engineering, Ninth Edition, Pearson Education Limited, 2011 Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  46. 46. 46 21/11/2012 Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×