Vous êtes sur la page 1sur 8

30/10/2014

O que a Reutilizao ?
o processo de implementar ou alterar software usando e adaptando
componentes j existentes noutros sistemas.

Reutilizao
Engenheiros Mecnicos no especificam um
desenho onde todos os componentes tm de ser
especialmente manufacturados...

E ns informticos, reutilizamos?
Dra Otilia Fernandes da Graa

E porque e O qu devemos Reutilizar ?

O que um Componente?

Porque

Dra Otilia Fernandes da Graa

Uma unidade de composio exibindo apenas interfaces

Aumento significativo tanto na qualidade como


na confiabilidade.
Tempo de desenvolvimento de software mais
reduzido.
A longo prazo, diminui os custos do
desenvolvimento e da manuteno

e dependncias contextuais explcitas.

Pode ser distribudo independentemente e ser


usado fora do contexto de definio.
No possui estado persistente.

O qu

Exemplos

Reutilizar uma aplicao do sistema


Reutilizar uma simples funo
Reutilizar COMPONENTES de uma aplicao

Mdulo
Classe
procedimento / funo

Dra Otilia Fernandes da Graa

Dra Otilia Fernandes da Graa

30/10/2014

Programao por Componentes

Exemplo de um Componente

Repositrio de Componentes
Requires
interface

Provides
interface

PrintService
GetPDFile

Print

PrinterInt

GetQueue

Seleco de componentes

Remove

...

Dra Otilia Fernandes da Graa

Distribuio da nova
aplicao / componente
5

Dra Otilia Fernandes da Graa

Desenvolvimento de Software com


Reutilizao

Desenvolvimento de Software com


Reutilizao

Precisamos de garantir 3 condies para podermos


desenvolver software com reutilizao:

uma aproximao ao desenvolvimento


que tenta maximizar a reutilizao de
software j existente.

1. Deve ser possvel encontrar o componente reutilizvel adequado.


O custo de encontrar um componente adequado num catlogo,
tem de ser muito baixo.
2. A reutilizao de um componente deve garantir que este se ir
comportar como o especificado, e de maneira segura.
3. Todos os componentes devem ter uma documentao associada,
de modo a ser fcil adapt-los a uma nova aplicao.

Dra Otilia Fernandes da Graa

Dra Otilia Fernandes da Graa

30/10/2014

Desenvolvimento de Software
com Reutilizao

Desenvolvimento de Software com


Reutilizao

A Reutilizao pode ser incorporada no


processo de desenvolvimento de um sistema.

Os requisitos do sistema so modificados de acordo com


os resultados obtidos na pesquisa de componentes
reutilizveis.
Desenho do sistema baseado nos componentes que esto
disponveis:

Desenho do Sistema com posterior procura de


componentes reutilizveis...
Desenho da
Arquitectura do
Sistema

Especificar
componentes
necessrios

Procura de
componentes
reutilizveis

Especificar os
requisitos do
sistema

Procura de
componentes
Reutilizveis

Desenho da
Arquitectura do
Sistema

Procura de
componentes
Reutilizveis

Modificar
requisitos de
acordo com o
resultados obtidos

Incorporar
componentes
descobertos

Dra Otilia Fernandes da Graa

Especificar
componentes
baseados nos
resultados

Dra Otilia Fernandes da Graa

Desenvolvimento de Software com


Reutilizao

Desenvolvimento de Software com


Reutilizao

Vantagens:

Desvantagens:

Aumenta a segurana do sistema

Aumento nos custos de manuteno

Ferramentas CASE no suportam a reutilizao

Not-invented-here syndrome

componentes j testados noutros sistemas e em diversos ambientes

Diminui o processo de risco


se o componente j existe, h uma menor incerteza nos custos de
reutilizao ao contrrio dos custos de desenvolvimento

Trabalho efectuado por especialistas

especialistas conseguem desenvolver componentes reutilizveis


baseados no seu conhecimento

11

Alguns programadores preferem reescrever o cdigo... (mais


desafiante).

Normalmente as tcnicas de classificao, catlogo e obteno de


componentes no so adequadas e no esto bem desenvolvidas.

Encontrar e adaptar componentes reutilizveis

a reutilizao de um componente acelera a produo porque reduz o


tempo de desenvolvimento e de validao

Cdigo no disponvel...

Manuteno de uma biblioteca de componentes

O tempo de desenvolvimento pode ser reduzido

Dra Otilia Fernandes da Graa

10

A procura e descoberta do componentes reutilizveis tem por vezes


um custo superior ao da nova implementao.
Dra Otilia Fernandes da Graa

12

30/10/2014

Desenvolvimento para Posterior


Reutilizao

Desenvolvimento para Posterior


Reutilizao

Reutilizao baseada em Componentes


Componentes::

Reutilizao baseada em Componentes


Componentes::

Adaptar um componente de modo a torn-lo reutilizvel envolve vrios tipos


de operaes:

Adaptar um componente de modo a torn-lo reutilizvel envolve vrios tipos


de operaes:

Componente

Generalizar o
nome

Componente

Generalizar
as operaes

Generalizar o
nome

13

Dra Otilia Fernandes da Graa

Desenvolvimento para Posterior


Reutilizao

Reutilizao e Heranas:
Quando uma linguagem de programao orientada por objectos usada para
desenvolver uma aplicao, o mecanismo da herana pode ser usado para
adaptar componentes reutilizao

Adaptar um componente de modo a torn-lo reutilizvel envolve vrios tipos


de operaes:
Componente
Reutilizvel

Perifrico

Armazenar

Generalizar o
nome

Generalizar
as operaes

Generalizar
as excepes

Certificar o
componente

Tape

Consiste em adicionar ou remover operaes que so especficas a


um certo tipo de aplicaes.
Dra Otilia Fernandes da Graa

14

Desenvolvimento para Posterior


Reutilizao

Reutilizao baseada em Componentes


Componentes::

Componente

Generalizar
as excepes

Consiste em verificar em cada componente quais as excepes que


se podem generalizar e inclu-las na interface do componente

Testar o componente de modo a ficar com a qualidade standard

Dra Otilia Fernandes da Graa

Generalizar
as operaes

Disco

Laser

Por exemplo:

Output

Input

Printer

Film

Screen

O componente Laser representa a


impressora Laser. Contudo, como
estas impressoras podem incorporar
um disco, tambm herdam os
atributos e operaes do Disco

Ink-Jet

Esquema de classes
15

Dra Otilia Fernandes da Graa

16

30/10/2014

Desenvolvimento para Posterior


Reutilizao

Desenvolvimento para Posterior


Reutilizao
As principais causas so:

Reutilizar atravs da herana, bastante comum nas linguagens orientadas


por objectos.

1. Com heranas, comum o cdigo dos componentes estar espalhado por vrias
classes e no todo conjunto.
2. Reutilizar atravs das heranas leva por vezes criao de componentes com
funcionalidades extras desnecessrias, tornado-o vasto e ineficiente.

Perifrico

Armazenar

Tape

Disco

Laser

Output

Input

Printer

Film

Contudo, salvo raras excepes, a


reutilizao das classes tm provado
no ser eficiente.

3. medida que vo sendo adicionadas novas classes, as funcionalidades


tendem a aumentar, sendo necessrio efectuar-se reorganizaes perodicas.

Screen

A hierarquia no uma resposta simples reutilizao, embora


facilite a a implementao de alguns tipos de componentes

Ink-Jet

Dra Otilia Fernandes da Graa

17

Desenvolvimento para Posterior


Reutilizao

18

Reutilizao Baseada em Geradores

Razes para o Desenvolvimento para posterior


Reutilizao falhar:

Como fazer ?
A reutilizao de cdigo feita atravs de um programa gerador que se pode
programar consoante o que se pretende.

Sndroma Not-Invented-Here
falta de conhecimento sobre o porqu de desenvolver para
Reutilizao

Os Geradores de programas mais usados so os compiladores de linguagens de


alto-nvel, onde os componentes reutilizados so fragmentos de cdigo
correspondentes s prprias instrues da linguagem.

Acreditar que a Reutilizao contra-criativa


Falta de compromisso a longo termo da parte da chefia
Resistncia mudana - no querer mudar a maneira actual de
trabalhar

While
....
....
end;

Reutilizao vista como uma tecnologia de alto risco


Cultura da empresa e sistema de recompensas desencorajador de
Reutilizao
Dra Otilia Fernandes da Graa

Dra Otilia Fernandes da Graa

19

Gerador

Cdigo

Dra Otilia Fernandes da Graa

20

30/10/2014

Reutilizao Baseada em Geradores

Portabilidade de Sistemas
O que a portabilidade de sistemas?

Se o domnio da aplicao for ainda mais amplo, pode-se ainda utilizar


geradores automticos de aplicaes:

Consiste na implementao de uma soluo realizada num vasto


grupo de diferentes computadores e/ou sistemas operativos.

As ferramentas CASE

Qual o seu principal incoveniente?


Criao de aplicaes, usando geradores para certos domnios. Por
exemplo o Forms Builder da ORACLE
ORACLE, para construir um form sobre
uma base de dados

Dra Otilia Fernandes da Graa

A dificuldade de desenvolvimento de um sistema suportvel


nas vrias plataformas.

21

Dra Otilia Fernandes da Graa

22

Portabilidade de Sistemas

Portabilidade de Sistemas

Principais aspectos da portabilidade de programas


Tcnicas utilizadas para realizar a portabilidade entre sistemas

Transporte
Movimentao do cdigo do programa e respectivos dados de um

Criao de um emulador noutro sistema para correr a aplicao

ambiente para outro

Uso de pr-processadores para converter cdigo entre


vrias linguagens e arquitecturas

Adaptao
Alteraes efectuadas sobre o programa, tornando-o funcional no novo

Gerao de cdigo para uma mquina abstracta e implementao


dessa mquina nas diferentes arquitecturas (ex: Java)

Dra Otilia Fernandes da Graa

ambiente

23

Dra Otilia Fernandes da Graa

24

30/10/2014

Portabilidade de Sistemas

Portabilidade de Sistemas

Comunicao de interfaces no ambiente

Como medir a portabilidade de uma aplicao?

Bibliotecas

A medida de portabilidade de uma aplicao propocional


quantidade de trabalho necessria para fazer a aplicao funcionar noutra

Run-Time

Aplicao

Sistema
Operativo

mquina
Memria e
CPU

Quando podemos considerar uma aplicao portvel?

As partes dependentes da aplicao devem ser identificadas e podem vir a sofrer


alteraes para se melhor adaptarem ao novo ambiente

Uma aplicao torna-se portvel se o trabalho necessrio para a

A comunicao com o sistema operativo, com as bibliotecas e com o run-time


feita normalmente, atravs de funes e chamadas ao sistema

mudar de ambiente for menor do que refaz-la nesse ambiente por inteiro

As comunicaes com a memria e o CPU envolvem acessos de mais baixo nvel a


informao cuja representao difere nas diversas arquitecturas
Dra Otilia Fernandes da Graa

25

Portabilidade de Sistemas

Dra Otilia Fernandes da Graa

26

Portabilidade de Sistemas

Principais problemas da portabilidade de sistemas


Arquitectura

Vantagem da utilizao de modelos standard

Por vezes nos programas so feitas suposies sobre a arquitectura da


mquina onde esto a funcionar que podem no corresponder mquina
onde sero reutilizadas

Sistema Operativo

O software ser totalmente suportado noutros ambientes sem ter

Os programas usam facilidades dos sistemas operativos que no esto


disponveis em todas as plataformas

que se efectuar nenhuma alterao

Run
Run--time
Os programas fazem uso das facildiades do run-time, que no so
universais

Bibliotecas
Os programas usam bibliotecas que no esto disponveis em todas as
mquinas
Dra Otilia Fernandes da Graa

27

Dra Otilia Fernandes da Graa

28

30/10/2014

Portabilidade de Sistemas

Pontos Chaves

Exemplos de alguns modelos standard


1. A Reutilizao de software envolve a reutilizao de componentes j

Linguagens de programao standard

existentes, em vez de os desenvolver propositadamente para uma

Os programas que seguem as normas das linguagens Ada, COBOL,


Pascal, C e C++ so prontamente portveis para outras arquitecturas
desde que haja um compilador para a norma nessa arquitectura
Sistemas operativos standard

determinada aplicao
2. Desenvolver software com a reutilizao necessita de uma biblioteca
de todos os componentes reutilizveis que possa ser compreendida

Microsoft Windows tornou-se no modelo standard de sistema operativo


para computadores pessoais e o unix, por outro lado, considerado o
standard dos sistemas operativos das workstations
Standards para redes

pelo reutilizador
3. A reutilizao no advem do desenvolvimento natural das aplicaes. Tem
de se planear a generalizao dos seus componentes de modo a poderem

Existe um grande esforo internacional para adoptar um modelo standard


para os protocolos de rede. Normalmente baseiam-se no modelo OSI.

ser reutilizveis

Ambiente de trabalho standard


O sistema X-windows tornou-se num standard de interface grfica para
aplicaes em estaes de trabalho. O Microsoft Windows o standard para
computadores pessoais
Dra Otilia Fernandes da Graa

4. Objectos e tipos de dados abstractos encapsulam eficientemente


componentes reutilizveis
29

Dra Otilia Fernandes da Graa

30

Pontos Chaves
5. Reutilizao baseada em geradores depende da identificao
abstracta do domnio em que aplicado o gerador
6. A portabilidade de sistema um caso especfico de reutilizao onde
todo o sistema adaptado para funcionar noutra arquitectura
7. A portabilidade de sistema um caso especfico de reutilizao onde
todo o sistema adaptado para funcionar noutra arquitectura
8. Desenvolver sistemas de acordo com os standards das linguagens
de programao, sistemas operativos, redes e interfaces grficas,
reduzem os custos de implementao de um sistema em vrias
arquitecturas
Dra Otilia Fernandes da Graa

31

Vous aimerez peut-être aussi