Reúso de Software - eduardocunha11.github.io 8... · ©Ian Sommerville 2006 Engenharia de...
Transcript of Reúso de Software - eduardocunha11.github.io 8... · ©Ian Sommerville 2006 Engenharia de...
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 1
Reúso de Software
● Adaptado de
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 2
Reúso de Software
● Na maioria das disciplinas de engenharia, os sistemas são projetados por meio de composição de componentes existentes
● Em engenharia de software, a situação ainda é diferente • Normalmente, grande parte de um novo sistema é
construída do zero • Essa situação vem mudando, porém...
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 3
Modalidades de Reúso ● Reúso de sistemas
• Um sistema inteiro pode ser reusado • COTS – produto de prateleira – commercial-off-the-shelf – funcionalidades
adquiridas de terceiros
• Uma arquitetura + partes do sistema (famílias de aplicações)
● Reúso de componentes • Os componentes de uma aplicação, desde subsistemas até
objetos simples, podem ser reusados • Componentes podem ser construídos com reúso em mente
desde o início
● Reúso de bibliotecas • Mais popular e fácil
● Reúso de conhecimento • Por exemplo, padrões de projeto
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 4
Benefícios do Reúso
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 5
Desvantagens com Reúso
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 6
O Panorama de Reúso
● Existem muitas abordagens diferentes para reúso
● O reúso é possível em uma variedade de níveis, desde funções simples até sistemas completos de aplicação
● Reúso sempre deve ser feito com disciplina! • Reúso Acidental vs. Reúso Sistemático
● Desenvolvimento com Reúso vs. Desenvolvimento para Reúso
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 7
Técnicas de Reúso
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 8 Sistemas de ERP
Sistemas de grande porte que sintetizam a funcionalidade e as regras de negócio genéricos são configurados para uma organização
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 9
Fatores de planejamento de reúso ● O cronograma de desenvolvimento para o
software ● O ciclo de vida previsto do software ● O conhecimento, habilidades e experiência da
equipe de desenvolvimento ● A importância do software e seus requisitos de
qualidade ● O domínio da aplicação ● A plataforma de execução para o software
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 10
Frameworks
● Um framework é um projeto de sistema ou subsistema feito de uma coleção de classes concretas e abstratas e as interfaces entre elas
● O framework é instanciado através da implementação de classes concretas que estendem certas partes abstratas do framework • Classes abstratas e interfaces
● Frameworks são entidades moderadamente complexas • Esforço para compreendê-los
• Podem promover grande economia de esforço
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 11
Classes de framework
● Frameworks de infra-estrutura de sistema • Apóiam o desenvolvimento de partes fundamentais
de um sistema, tais como comunicações, interfaces de usuário e compiladores.
● Frameworks de integração/middleware • Padrões e classes que apóiam a comunicação e a
troca de informações de componentes.Ex: .NET, EJB
● Frameworks de aplicações corporativas • Apóiam o desenvolvimento de tipos específicos de
aplicações, tais como sistemas médicos, de telecomunicações e financeiros
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 12
Exemplo: Modelo-Visão-Controlador
● Framework de infra-estrutura de sistema para projeto de GUI
● Permite múltiplas apresentações de um objeto e interações separadas com essas apresentações
● Model: dados, regras ● View: saídas ● Controller: medição
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 13
Reúso de Sistemas
● Reúso de aplicações inteiras • Pela configuração de um sistema para um
ambiente
• Pela integração de dois ou mais sistemas para criar uma nova aplicação
● Exemplos: • Integração de componentes COTS
• Linhas de produtos de software
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 14
Reúso de Componentes COTS
● COTS - Commercial Off-The-Shelf systems • São sistemas de aplicação completos que oferecem
uma API ou permitem o compartilhamento do seu banco de dados
● É uma estratégia viável de desenvolvimento para alguns tipos de sistemas tais como os de e-commerce
● O benefício-chave é o desenvolvimento mais rápido da aplicação • Geralmente com um custo menor
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 15
Algumas Perguntas Importantes
● Quais produtos COTS oferecem a funcionalidade mais apropriada? • Pode haver diversos produtos similares que podem ser
usados
● Como os dados serão trocados? • Produtos individuais usam estruturas únicas de dados e
formatos
● Quais características do produto serão realmente usadas? • A maioria dos produtos têm mais funcionalidade do que é
necessário
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 16
Exemplos de Componentes COTS
● No cliente, programas de email e de Web browsing padrão são usados.
● No lado do servidor:
• Servidores Web
• Sistemas gerenciadores de banco de dados
● Sistemas específicos de domínio
• Sistemas de folha de pagamentos
• Sistemas para a emissão de faturas
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 17
Problemas de integração de sistemas COTS
● Falta de controle sobre funcionalidades e características de qualidade • Sistemas COTS podem ser menos eficientes do que
parecem ● Problemas com a interoperabilidade
• Sistemas COTS diferentes podem fazer suposições diferentes
● Nenhum controle sobre a evolução do sistema • Vendedores de COTS, e não usuários de sistema, controlam
a evolução ● Suporte dos vendedores de COTS
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 18
Pontos importantes
● Atualmente, a maioria dos novos sistemas de software de negócios é desenvolvida com reúso de conhecimento e códigos de sistemas já implementados
● Existem muitas maneiras de se reusar um software, desde o reúso de classes e métodos em bibliotecas até o o reúso de sistemas completos
● Vantagens: redução de custos, desenvolvimento mais rápido, diminuição de riscos, aumento da confiança
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 19
Pontos importantes
● Frameworks permitem reúso e geralmente incorporam boas práticas de projeto por meio de padrões
● Reúso de programas de prateleira (COTS): fornecem grande funcionalidade e reduzem radicalmente os custos/tempo
● Sistemas ERP são exemplos de uso de COTS em grande escala. São configurados a partir de um sistema genérico com regras e processos do cliente
© 2007 by Pearson Education
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 20
Pontos importantes
● Possíveis problemas com reúso baseado em COTS incluem:
• a falta de controle sobre a funcionalidade e o desempenho
• falta de controle sobre a evolução
• necessidade de suporte dos fornecedores
• dificuldade de interoperabilidade