SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
ENGENHARIA DE SOFTWARE
 AVANÇADA - REÚSO




Diógenes Ricardo   1
                       Reuso - Engenharia de Software - Mestrado em
                                    Eng. da Computação - POLI/UPE
2                                 21/11/2012




Roteiro
 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                                 21/11/2012




Introduçã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                                 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                                 21/11/2012




Classificaçã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                                 21/11/2012




Classificaçã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                                 21/11/2012




Consideraçõ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                                 21/11/2012




Consideraçõ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                                 21/11/2012




Introduçã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                             21/11/2012




O 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                             21/11/2012




O panorama de reuso
na 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                             21/11/2012




Reusamos?




             Reuso - Engenharia de Software - Mestrado
                   em Eng. da Computação - POLI/UPE
13                             21/11/2012




Planejamento
   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                             21/11/2012




Planejamento
   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                             21/11/2012




Framework
 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                             21/11/2012




Tipos 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                             21/11/2012




Tipos 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                             21/11/2012




MVC (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                             21/11/2012




WAF
 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                             21/11/2012




 Reuso - Engenharia de Software - Mestrado
       em Eng. da Computação - POLI/UPE
21                             21/11/2012




Funcionamento
   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                             21/11/2012




Abordagens
 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                             21/11/2012




Frameworks 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                             21/11/2012




Linha de Produtos de Software




                Reuso - Engenharia de Software - Mestrado
                      em Eng. da Computação - POLI/UPE
25                             21/11/2012




Linha de Produtos de Software
o   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                             21/11/2012




Conceitos 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                             21/11/2012




Conceitos 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                             21/11/2012




Linha 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                             21/11/2012




Customização em massa




             Reuso - Engenharia de Software - Mestrado
                   em Eng. da Computação - POLI/UPE
30                             21/11/2012




Funcionamento da SPL




Quanto mais abstrato mais rápido e mais
barato para o cliente.
                        Reuso - Engenharia de Software - Mestrado
                              em Eng. da Computação - POLI/UPE
31                                   21/11/2012




Quando 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                              21/11/2012




Linha 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                             21/11/2012




Linha 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                              21/11/2012




Linha 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                             21/11/2012




 Reuso - Engenharia de Software - Mestrado
       em Eng. da Computação - POLI/UPE
36                                21/11/2012




Sistemas 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                             21/11/2012




Sistemas 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                             21/11/2012




Sistemas 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                             21/11/2012




Sistemas 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                             21/11/2012




Sistemas 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                             21/11/2012




Sistemas 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                             21/11/2012




Sistemas 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                             21/11/2012




Sistemas 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                             21/11/2012




Sistemas de solução COTS




              Reuso - Engenharia de Software - Mestrado
                    em Eng. da Computação - POLI/UPE
45                               21/11/2012




Referê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                             21/11/2012




 Reuso - Engenharia de Software - Mestrado
       em Eng. da Computação - POLI/UPE

Mais conteúdo relacionado

Mais procurados

Introdução a engenharia de software aula 02
Introdução a engenharia de software   aula 02Introdução a engenharia de software   aula 02
Introdução a engenharia de software aula 02Franklin Matos Correia
 
Linhas de Processos de Software - Minicurso - SBQS 2011
Linhas de Processos de Software - Minicurso - SBQS 2011Linhas de Processos de Software - Minicurso - SBQS 2011
Linhas de Processos de Software - Minicurso - SBQS 2011Uirá Kulesza
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9wilsonguns
 
Implantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLImplantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLAnnkatlover
 
Filosofia De Desenvolvimento De Software
Filosofia De Desenvolvimento De SoftwareFilosofia De Desenvolvimento De Software
Filosofia De Desenvolvimento De SoftwareSérgio Luiz Jordão
 
Engenharia de Software - Wikipedia
Engenharia de Software - WikipediaEngenharia de Software - Wikipedia
Engenharia de Software - WikipediaRobson Silva Espig
 
Uma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareUma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareVinicius Garcia
 
Es17 predicao de defeitos em software
Es17   predicao de defeitos em softwareEs17   predicao de defeitos em software
Es17 predicao de defeitos em softwareVictor Hugo
 
Aula 22 --reengenharia_de_software
Aula 22 --reengenharia_de_softwareAula 22 --reengenharia_de_software
Aula 22 --reengenharia_de_softwareHannibalking King
 
TCC - Engenharia de Software Baseada em Componentes
TCC - Engenharia de Software Baseada em ComponentesTCC - Engenharia de Software Baseada em Componentes
TCC - Engenharia de Software Baseada em ComponentesJuliano Tiago Rinaldi
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo de Melo
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareeros.viggiano
 

Mais procurados (20)

Introdução a engenharia de software aula 02
Introdução a engenharia de software   aula 02Introdução a engenharia de software   aula 02
Introdução a engenharia de software aula 02
 
Engenharia de Software - Pontos de função
Engenharia de Software - Pontos de funçãoEngenharia de Software - Pontos de função
Engenharia de Software - Pontos de função
 
Linhas de Processos de Software - Minicurso - SBQS 2011
Linhas de Processos de Software - Minicurso - SBQS 2011Linhas de Processos de Software - Minicurso - SBQS 2011
Linhas de Processos de Software - Minicurso - SBQS 2011
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9
 
Rup e metodos ágies
Rup e metodos ágiesRup e metodos ágies
Rup e metodos ágies
 
Processos de Software
Processos de SoftwareProcessos de Software
Processos de Software
 
O emprego do_rup_na_uml_-_trabalho_poo_2012
O emprego do_rup_na_uml_-_trabalho_poo_2012O emprego do_rup_na_uml_-_trabalho_poo_2012
O emprego do_rup_na_uml_-_trabalho_poo_2012
 
Implantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLImplantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SL
 
Filosofia De Desenvolvimento De Software
Filosofia De Desenvolvimento De SoftwareFilosofia De Desenvolvimento De Software
Filosofia De Desenvolvimento De Software
 
Engenharia de Software - Wikipedia
Engenharia de Software - WikipediaEngenharia de Software - Wikipedia
Engenharia de Software - Wikipedia
 
Uma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareUma Introdução a Engenharia de Software
Uma Introdução a Engenharia de Software
 
Es17 predicao de defeitos em software
Es17   predicao de defeitos em softwareEs17   predicao de defeitos em software
Es17 predicao de defeitos em software
 
Aula 22 --reengenharia_de_software
Aula 22 --reengenharia_de_softwareAula 22 --reengenharia_de_software
Aula 22 --reengenharia_de_software
 
Es 09
Es 09Es 09
Es 09
 
TCC - Engenharia de Software Baseada em Componentes
TCC - Engenharia de Software Baseada em ComponentesTCC - Engenharia de Software Baseada em Componentes
TCC - Engenharia de Software Baseada em Componentes
 
152191 11993
152191 11993152191 11993
152191 11993
 
Academia do programador
Academia do programadorAcademia do programador
Academia do programador
 
Es06 teste de software
Es06   teste de softwareEs06   teste de software
Es06 teste de software
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 

Destaque (12)

Feature-Driven Development - Visão Geral
Feature-Driven Development - Visão GeralFeature-Driven Development - Visão Geral
Feature-Driven Development - Visão Geral
 
Reuso v16 0
Reuso v16 0Reuso v16 0
Reuso v16 0
 
Portabilidade de uma aplicação
Portabilidade de uma aplicaçãoPortabilidade de uma aplicação
Portabilidade de uma aplicação
 
Dru - Desenvolvimento para Reuso
Dru - Desenvolvimento para ReusoDru - Desenvolvimento para Reuso
Dru - Desenvolvimento para Reuso
 
FDD (Feature Driven Development)
FDD (Feature Driven Development)FDD (Feature Driven Development)
FDD (Feature Driven Development)
 
Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)
 
Engenharia de softwares reusabilidade
Engenharia de softwares reusabilidadeEngenharia de softwares reusabilidade
Engenharia de softwares reusabilidade
 
Apresentação dissertação
Apresentação dissertaçãoApresentação dissertação
Apresentação dissertação
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
 
FDD
FDDFDD
FDD
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
 
Ejemplo de fdd
Ejemplo de fddEjemplo de fdd
Ejemplo de fdd
 

Semelhante a Reúso

Monografia eng soft1_halan
Monografia eng soft1_halanMonografia eng soft1_halan
Monografia eng soft1_halanHalan Ridolphi
 
Reutilização
ReutilizaçãoReutilização
Reutilizaçãoemjorge
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento webArlindo Santos
 
Engenharia de Software Baseada em Componentes
Engenharia de Software Baseada em ComponentesEngenharia de Software Baseada em Componentes
Engenharia de Software Baseada em Componenteselliando dias
 
Eng.ª do Software - 5. Desenvolvimento rápido de software
Eng.ª do Software - 5. Desenvolvimento rápido de softwareEng.ª do Software - 5. Desenvolvimento rápido de software
Eng.ª do Software - 5. Desenvolvimento rápido de softwareManuel Menezes de Sequeira
 
Tópicos Emergentes - DevOps
Tópicos Emergentes - DevOpsTópicos Emergentes - DevOps
Tópicos Emergentes - DevOpsSaulo Lopes
 
Geracao Automatica Assistida Iu Marcelo Mrack
Geracao Automatica Assistida Iu Marcelo MrackGeracao Automatica Assistida Iu Marcelo Mrack
Geracao Automatica Assistida Iu Marcelo MrackMarcelo Mrack
 
I Material de Apoio Sistemas Operacionais
I Material de Apoio Sistemas OperacionaisI Material de Apoio Sistemas Operacionais
I Material de Apoio Sistemas Operacionaisrodfernandes
 
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernateAnálise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernateRicardo Rinco
 
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...tdc-globalcode
 
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...tdc-globalcode
 
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...Marcelo Palladino
 
Renan st matsushita-2010
Renan st matsushita-2010Renan st matsushita-2010
Renan st matsushita-2010Janiel Medeiros
 
Palestra EPF (Eclispe Process Framework) Estudo Caso FliSoL Abr 09
Palestra EPF (Eclispe Process Framework) Estudo Caso FliSoL Abr 09Palestra EPF (Eclispe Process Framework) Estudo Caso FliSoL Abr 09
Palestra EPF (Eclispe Process Framework) Estudo Caso FliSoL Abr 09Daniel Moraes
 
Banca: Proposta de Arquitetura de Desenvolvimento Web Baseada em PHP Utilizan...
Banca: Proposta de Arquitetura de Desenvolvimento Web Baseada em PHP Utilizan...Banca: Proposta de Arquitetura de Desenvolvimento Web Baseada em PHP Utilizan...
Banca: Proposta de Arquitetura de Desenvolvimento Web Baseada em PHP Utilizan...Fernando Geraldo Mantoan
 
[PRJ32][Christopher] aula 1 – introdução
[PRJ32][Christopher] aula 1 – introdução[PRJ32][Christopher] aula 1 – introdução
[PRJ32][Christopher] aula 1 – introduçãoChristopher Cerqueira
 

Semelhante a Reúso (20)

Monografia eng soft1_halan
Monografia eng soft1_halanMonografia eng soft1_halan
Monografia eng soft1_halan
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Eng.ª do Software - 1. Introdução
Eng.ª do Software - 1. IntroduçãoEng.ª do Software - 1. Introdução
Eng.ª do Software - 1. Introdução
 
Reutilização
ReutilizaçãoReutilização
Reutilização
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento web
 
Engenharia de Software Baseada em Componentes
Engenharia de Software Baseada em ComponentesEngenharia de Software Baseada em Componentes
Engenharia de Software Baseada em Componentes
 
Eng.ª do Software - 5. Desenvolvimento rápido de software
Eng.ª do Software - 5. Desenvolvimento rápido de softwareEng.ª do Software - 5. Desenvolvimento rápido de software
Eng.ª do Software - 5. Desenvolvimento rápido de software
 
Tópicos Emergentes - DevOps
Tópicos Emergentes - DevOpsTópicos Emergentes - DevOps
Tópicos Emergentes - DevOps
 
Geracao Automatica Assistida Iu Marcelo Mrack
Geracao Automatica Assistida Iu Marcelo MrackGeracao Automatica Assistida Iu Marcelo Mrack
Geracao Automatica Assistida Iu Marcelo Mrack
 
I Material de Apoio Sistemas Operacionais
I Material de Apoio Sistemas OperacionaisI Material de Apoio Sistemas Operacionais
I Material de Apoio Sistemas Operacionais
 
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernateAnálise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
 
Introdução a IHC
Introdução a IHCIntrodução a IHC
Introdução a IHC
 
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
 
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
 
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
 
Renan st matsushita-2010
Renan st matsushita-2010Renan st matsushita-2010
Renan st matsushita-2010
 
Palestra EPF (Eclispe Process Framework) Estudo Caso FliSoL Abr 09
Palestra EPF (Eclispe Process Framework) Estudo Caso FliSoL Abr 09Palestra EPF (Eclispe Process Framework) Estudo Caso FliSoL Abr 09
Palestra EPF (Eclispe Process Framework) Estudo Caso FliSoL Abr 09
 
Banca: Proposta de Arquitetura de Desenvolvimento Web Baseada em PHP Utilizan...
Banca: Proposta de Arquitetura de Desenvolvimento Web Baseada em PHP Utilizan...Banca: Proposta de Arquitetura de Desenvolvimento Web Baseada em PHP Utilizan...
Banca: Proposta de Arquitetura de Desenvolvimento Web Baseada em PHP Utilizan...
 
Eng.ª do Software - 4. Processos de software
Eng.ª do Software - 4. Processos de softwareEng.ª do Software - 4. Processos de software
Eng.ª do Software - 4. Processos de software
 
[PRJ32][Christopher] aula 1 – introdução
[PRJ32][Christopher] aula 1 – introdução[PRJ32][Christopher] aula 1 – introdução
[PRJ32][Christopher] aula 1 – introdução
 

Mais de Diogenes Freitas

Visitando a literatura em redes neurais recorrentes
Visitando a literatura em redes neurais recorrentesVisitando a literatura em redes neurais recorrentes
Visitando a literatura em redes neurais recorrentesDiogenes Freitas
 
Proposta de identificação de impressões digitais empregando redes neurais art...
Proposta de identificação de impressões digitais empregando redes neurais art...Proposta de identificação de impressões digitais empregando redes neurais art...
Proposta de identificação de impressões digitais empregando redes neurais art...Diogenes Freitas
 
Uma Proposta de identificação de Impressões Digitais empregando Redes Neurais...
Uma Proposta de identificação de Impressões Digitais empregando Redes Neurais...Uma Proposta de identificação de Impressões Digitais empregando Redes Neurais...
Uma Proposta de identificação de Impressões Digitais empregando Redes Neurais...Diogenes Freitas
 
Um estudo sobre gerenciamento de variabilidade de requisitos em linha de prod...
Um estudo sobre gerenciamento de variabilidade de requisitos em linha de prod...Um estudo sobre gerenciamento de variabilidade de requisitos em linha de prod...
Um estudo sobre gerenciamento de variabilidade de requisitos em linha de prod...Diogenes Freitas
 
Paradigma Lógico e Funcional
Paradigma Lógico e FuncionalParadigma Lógico e Funcional
Paradigma Lógico e FuncionalDiogenes Freitas
 
Apresentacao banco de dados moveis
Apresentacao   banco de dados moveisApresentacao   banco de dados moveis
Apresentacao banco de dados moveisDiogenes Freitas
 
Um estudo sobre o gerenciamento de variabilidade em LInha de produto de software
Um estudo sobre o gerenciamento de variabilidade em LInha de produto de softwareUm estudo sobre o gerenciamento de variabilidade em LInha de produto de software
Um estudo sobre o gerenciamento de variabilidade em LInha de produto de softwareDiogenes Freitas
 

Mais de Diogenes Freitas (12)

Visitando a literatura em redes neurais recorrentes
Visitando a literatura em redes neurais recorrentesVisitando a literatura em redes neurais recorrentes
Visitando a literatura em redes neurais recorrentes
 
Reconhecimento de digital
Reconhecimento de digitalReconhecimento de digital
Reconhecimento de digital
 
Proposta de identificação de impressões digitais empregando redes neurais art...
Proposta de identificação de impressões digitais empregando redes neurais art...Proposta de identificação de impressões digitais empregando redes neurais art...
Proposta de identificação de impressões digitais empregando redes neurais art...
 
Processadores de rede (2)
Processadores de rede (2)Processadores de rede (2)
Processadores de rede (2)
 
Tokenring
TokenringTokenring
Tokenring
 
Uma Proposta de identificação de Impressões Digitais empregando Redes Neurais...
Uma Proposta de identificação de Impressões Digitais empregando Redes Neurais...Uma Proposta de identificação de Impressões Digitais empregando Redes Neurais...
Uma Proposta de identificação de Impressões Digitais empregando Redes Neurais...
 
Modelo de falhas
Modelo de falhasModelo de falhas
Modelo de falhas
 
Open nebula
Open nebulaOpen nebula
Open nebula
 
Um estudo sobre gerenciamento de variabilidade de requisitos em linha de prod...
Um estudo sobre gerenciamento de variabilidade de requisitos em linha de prod...Um estudo sobre gerenciamento de variabilidade de requisitos em linha de prod...
Um estudo sobre gerenciamento de variabilidade de requisitos em linha de prod...
 
Paradigma Lógico e Funcional
Paradigma Lógico e FuncionalParadigma Lógico e Funcional
Paradigma Lógico e Funcional
 
Apresentacao banco de dados moveis
Apresentacao   banco de dados moveisApresentacao   banco de dados moveis
Apresentacao banco de dados moveis
 
Um estudo sobre o gerenciamento de variabilidade em LInha de produto de software
Um estudo sobre o gerenciamento de variabilidade em LInha de produto de softwareUm estudo sobre o gerenciamento de variabilidade em LInha de produto de software
Um estudo sobre o gerenciamento de variabilidade em LInha de produto de software
 

Reúso

  • 1. ENGENHARIA DE SOFTWARE AVANÇADA - REÚSO Diógenes Ricardo 1 Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  • 2. 2 21/11/2012 Roteiro  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 21/11/2012 Introduçã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 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 21/11/2012 Classificaçã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 21/11/2012 Classificaçã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 21/11/2012 Consideraçõ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 21/11/2012 Consideraçõ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 21/11/2012 Introduçã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 21/11/2012 O 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 21/11/2012 O panorama de reuso na 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 21/11/2012 Reusamos? Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  • 13. 13 21/11/2012 Planejamento  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 21/11/2012 Planejamento  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 21/11/2012 Framework  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 21/11/2012 Tipos 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 21/11/2012 Tipos 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 21/11/2012 MVC (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 21/11/2012 WAF  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 21/11/2012 Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  • 21. 21 21/11/2012 Funcionamento  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 21/11/2012 Abordagens  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 21/11/2012 Frameworks 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 21/11/2012 Linha de Produtos de Software Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  • 25. 25 21/11/2012 Linha de Produtos de Software o 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 21/11/2012 Conceitos 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 21/11/2012 Conceitos 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 21/11/2012 Linha 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 21/11/2012 Customização em massa Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  • 30. 30 21/11/2012 Funcionamento da SPL Quanto mais abstrato mais rápido e mais barato para o cliente. Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  • 31. 31 21/11/2012 Quando 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 21/11/2012 Linha 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 21/11/2012 Linha 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 21/11/2012 Linha 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 21/11/2012 Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  • 36. 36 21/11/2012 Sistemas 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 21/11/2012 Sistemas 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 21/11/2012 Sistemas 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 21/11/2012 Sistemas 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 21/11/2012 Sistemas 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 21/11/2012 Sistemas 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 21/11/2012 Sistemas 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 21/11/2012 Sistemas 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 21/11/2012 Sistemas de solução COTS Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE
  • 45. 45 21/11/2012 Referê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 21/11/2012 Reuso - Engenharia de Software - Mestrado em Eng. da Computação - POLI/UPE