Você está na página 1de 4

6/6/11

Reuso de Software

Reuso de Software

Na maioria das disciplinas de engenharia, os sistemas so projetados por meio de composio de componentes existentes Em engenharia de software, a situao ainda diferente
Normalmente, grande parte de um novo sistema construda do zero Essa situao vem mudando, porm

2007 by Pearson Education

2007 by Pearson Education

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 18

Slide 1

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 18

Slide 2

Modalidades de Reuso

Benefcios do Reuso

Reuso de sistemas
Um sistema inteiro pode ser reusado (reuso de COTS) Uma arquitetura + partes do sistema (famlias de aplicaes) Os componentes de uma aplicao, desde subsistemas at objetos simples, podem ser reusados Componentes podem ser construdos com reuso em mente desde o incio

Reuso de componentes

Reuso de bibliotecas Reuso de conhecimento


Princpios e padres
2007 by Pearson Education 2007 by Pearson Education

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 18

Slide 3

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 18

Slide 4

Problemas com Reuso

O Panorama de Reuso
Existem muitas abordagens diferentes para reuso O reuso possvel em uma variedade de nveis, desde funes simples at sistemas completos de aplicao. Reuso sempre deve ser feito com disciplina!

Reuso Acidental vs. Reuso Sistemtico

Desenvolvimento com Reuso vs. Desenvolvimento para Reuso


2007 by Pearson Education

2007 by Pearson Education

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 18

Slide 5

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 18

Slide 6

6/6/11

O Panorama de Reuso

Tcnicas de Reuso

Existem muitas abordagens diferentes para reuso O reuso possvel em uma variedade de nveis, desde funes simples at sistemas completos de aplicao. Reuso sempre deve ser feito com disciplina!
Reuso Acidental vs. Reuso Sistemtico

Desenvolvimento com Reuso vs. Desenvolvimento para Reuso


2007 by Pearson Education 2007 by Pearson Education

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 18

Slide 7

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 18

Slide 8

Abordagens de reuso

Fatores de planejamento de reuso


O cronograma de desenvolvimento para o software O ciclo de vida previsto do software O conhecimento, habilidades e experincia da equipe de desenvolvimento A importncia do software e seus requisitos de qualidade O domnio da aplicao A plataforma de execuo para o software A abordagem de reuso empregada
2007 by Pearson Education


2007 by Pearson Education

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 18

Slide 9

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 18

Slide 10

Frameworks

Classes de framework

Frameworks so um projeto de sistema ou subsistema feito de uma coleo de classes e as interfaces entre elas O framework instanciado atravs da implementao de classes concretas que estendem certas partes abstratas do framework
Classes abstratas e interfaces => Hotspots

Frameworks de infra-estrutura de sistema


Apiam o desenvolvimento de partes fundamentais de um sistemas, tais como comunicaes, interfaces de usurio e compiladores. Padres e classes que apiam a comunicao e a troca de informaes de componentes. Apiam o desenvolvimento de tipos especficos de aplicaes, tais como sistemas mdicos, de telecomunicaes e financeiros
2007 by Pearson Education

Frameworks de integrao/middleware

Frameworks so entidades moderadamente complexas


Esforo para compreend-los Podem promover grande economia de esforo
2007 by Pearson Education

Frameworks de domnio especfico

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 18

Slide 11

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 18

Slide 12

6/6/11

Exemplo: Modelo-Viso-Controlador

Modelo-Viso-Controlador

Framework de infra-estrutura de sistema para projeto de GUI. Permite mltiplas apresentas de um objeto e interaes separadas com essas apresentaes. Similar ao padro Observer Exemplos de frameworks MVC:
Struts, Eclipse, Smalltalk Browser.
2007 by Pearson Education 2007 by Pearson Education

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 18

Slide 13

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 18

Slide 14

Reuso de Sistemas

Reuso de Componentes COTS

Reuso de aplicaes inteiras


Pela configurao de um sistema para um ambiente Pela integrao de dois ou mais sistemas para criar uma nova aplicao.

COTS - Commercial Off-The-Shelf systems.


Geralmente so sistemas de aplicao completos que oferecem uma API

Exemplos:
Integrao de componentes COTS Linhas de produtos de software
2007 by Pearson Education

uma estratgia vivel de desenvolvimento para alguns tipos de sistemas tais como os de ecommerce. O benefcio-chave o desenvolvimento mais rpido da aplicao
Geralmente com um custo menor

Exige uma etapa de explorao


2007 by Pearson Education

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 18

Slide 15

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 18

Slide 16

Algumas Perguntas Importantes

Exemplos de Componentes COTS

Quais produtos COTS oferecem a funcionalidade mais apropriada?


Pode haver diversos produtos similares que podem ser usados.

No cliente, programas de email e de Web browsing padro so usados. No lado do servidor:


Servidores Web Sistemas gerenciadores de banco de dados

Como os dados sero trocados?


Produtos individuais usam estruturas nicas de dados e formatos.

Quais caractersticas do produto sero realmente usadas?


A maioria dos produtos tm mais funcionalidade do que necessrio
2007 by Pearson Education

Sistemas especficos de domnio


Constraint Solvers Sistemas para a emisso de faturas
2007 by Pearson Education

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 18

Slide 17

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 18

Slide 18

6/6/11

Problemas de integrao de sistemas COTS

Falta de controle sobre funcionalidades e caractersticas de qualidade


Sistemas COTS podem ser menos eficientes do que parecem. Sistemas COTS diferentes podem fazer suposies diferentes Vendedores de COTS, e no usurios de sistema, controlam a evoluo

Problemas com a interoperabilidade

Nenhum controle sobre a evoluo do sistema

Suporte dos vendedores de COTS


2007 by Pearson Education

Ian Sommerville 2006

Engenharia de Software, 8. edio. Captulo 18

Slide 19

Você também pode gostar