36
Aula Modelagem Orientada a Objeto Andr ´ e Duarte Bueno, Dr. Eng. 12 de abril de 2009

Modelos oo

Embed Size (px)

Citation preview

Page 1: Modelos oo

Aula

Modelagem Orientada a Objeto

Andre Duarte Bueno, Dr. Eng.

12 de abril de 2009

Page 2: Modelos oo

Modelagem Orientada a Objeto 1

Conteudo

ê introducao a modelagem: o que e um modelo, porque usamos, e tipos

ê introducao a modelagem orientada a objeto

ê o que e a UML , suas visoes , e diagramas

ê softwares utilizados para modelagem orientada a objeto

Page 3: Modelos oo

Modelagem Orientada a Objeto 2

O que e um modelo?

ê Um modelo e uma representacao da realidade; e uma ligacao, uma ponte entre

conceitos teoricos e observacoes Aris (1978).

ê O desenvolvimento de um modelo envolve o uso do conceito de abstracao, a visao

do todo e de suas partes.

ê Adaptando Bender (1978), podemos dizer que no desenvolvimento de um modelo

devemos: i) formular as ideias precisamente [com clareza]; ii) ser concisos no uso da

linguagem; e iii) identificar bibliotecas e sistemas disponıveis.

ê Alguns modelos sao focados em aspectos estruturais, como um projeto das funda-

coes e da estrutura de um edifıcio. Outros modelos sao focados na dinamica e no

comportamento do sistema. O uso de diferentes modelos nos permite ver os sistemas

de diferentes formas; cada modelo, fornece-nos visao/detalhamento de uma parte do

sistema, Sonerviile (1993).

Page 4: Modelos oo

Modelagem Orientada a Objeto 3

Tipos e exemplos de modelos

Veja a seguir alguns exemplos de modelos utilizados pelo homem. Colocamos uma

classificacao nao-rigorosa indicando ser um modelo estrutural/dinamico:

ê Modelos estruturais

• Maquetes (maquete de uma casa, de um automovel).

• Mapas (mapa das ruas de uma cidade).

• Projetos (projeto de uma casa).

• Modelos matematicos (equacoes diferenciais, funcoes, exemplo: y = f(x) = a

+ b.x ).

• Modelos multiescala (miniaturas, modelos reduzidos).

Page 5: Modelos oo

Modelagem Orientada a Objeto 4

ê Modelos dinamicos

• Modelos fısicos/quımicos/biologicos (exemplo: a equacao do movimento retilı-

neo uniforme).

• Modelos numericos (exemplo: metodo de integracao por Simpson).

• Algorıtmos/fluxogramas (sao diagramas utilizados para representar a dinamica

de determinado sistema).

Page 6: Modelos oo

Modelagem Orientada a Objeto 5

Por que usamos modelos?

O problema da linguagem, a necessidade de linguagens universais

A engenharia civil utiliza com frequencia modelos simplificados da realidade, como,

por exemplo, plantas de edifıcios e casas. As plantas sao utilizadas por permitirem o

entendimento de como a obra deve ficar depois de pronta; e o modelo utilizado pelo

engenheiro (ou arquiteto) para se comunicar com o proprietario, bem como com o mestre

de obra. Assim, a planta viabiliza a troca de informacoes entre todos os envolvidos no

projeto.

Com relacao ao desenvolvimento de software, o uso de uma linguagem universal, como

a UML e como a C++, facilita a troca de informacoes e codigos entre os desenvolvedores.

Page 7: Modelos oo

Modelagem Orientada a Objeto 6

Figura 1: Modelos da realidade – a planta de uma casa.

Fachada

X

chuveiro

vaso

pia

Planta isometrica do banheiro

(a) Fachada

Quarto Quarto

Banheiro

Sala

Cozinha

Varanda

Planta Baixa

(b) Planta Baixa

Page 8: Modelos oo

Modelagem Orientada a Objeto 7

O problema do custo

Usamos modelos para reduzir custos. Antigamente, um carro novo era desenvolvido

utilizando-se prototipos em tamanho real, a um custo muito elevado e com poucas va-

riacoes e testes. Na pratica, boa parte dos testes era feita pelos proprios proprietarios.

Atualmente, um carro e feito valendo-se de modelos de computador, em um programa

CAD, reduzindo consideravelmente o custo do desenvolvimento de novos modelos. Os

modelos do carro sao testados em simuladores.

Page 9: Modelos oo

Modelagem Orientada a Objeto 8

O problema da escala (conceito de escala)

A maquete de uma casa e um modelo reduzido da casa, em uma outra escala. A

vantagem do uso de modelos em escalas reduzidas e seu baixo custo. Por exemplo: o

teste da performance aerodinamica de um carro, como um formula 1, e normalmente

feito em um tunel de vento com modelos reduzidos.

Com relacao ao desenvolvimento de um software, a questao da escala esta associada

ao crescimento do software. A cada versao novos recursos sao adicionados, e o uso de

modelos permite a previsao antecipada do crescimento do software.

Nota: quando um modelo nao muda ao modificarmos a escala do problema, dizemos que

o mesmo e invariavel com relacao a escala, Aris (1978).

Page 10: Modelos oo

Modelagem Orientada a Objeto 9

Outras vantagens do uso de modelos

ê Maior facilidade para testar uma entidade fısica antes de lhe dar uma forma final.

ê Maior facilidade na comunicacao entre as diversas pessoas envolvidas (pela utilizacao

de notacao uniforme).

ê Reducao da complexidade dos sistemas.

ê Possibilidade de testar o sistema em escalas reduzidas.

Page 11: Modelos oo

Modelagem Orientada a Objeto 10

Introducao a modelagem orientada a objeto

O que e a modelagem orientada a objeto?

Relembre-se da figura da TV; a visao do usuario e diferente da visao do engenheiro.

Para que nossa linguagem de comunicacao seja uniformizada, precisamos utilizar a mesma

base de informacoes, os mesmos conceitos.

Paradigmas de programacao tradicionais, como o paradigma de programacao estru-

turada, ensinam-nos uma nova linguagem (centenas de conceitos novos e seus relaciona-

mentos). Todos os programadores devem entender e utilizar esta nova linguagem.

Contudo, a modelagem orientada a objeto elimina a necessidade de se aprender uma

nova linguagem, pois a mesma e baseada em conceitos que ja conhecemos – os objetos e

seus relacionamentos. Isto ocorre porque, na modelagem orientada a objeto, os modelos

da realidade sao desenvolvidos tendo como fonte de inspiracao os objetos.

Page 12: Modelos oo

Modelagem Orientada a Objeto 11

Quando surgiu a modelagem orientada a objeto?

Segundo Fowler and Scott (2000), os metodos de analise e projeto orientado a objetos

surgiram entre 1988 e 1992, destacando-se:

i) o enfoque em projetos recursivos de Sally Shlaer e Steve Mellor;

ii) os trabalhos de Coad e Yourdan, Coad and Yourdon (1993);

iii) os cartoes CRC de Beck e Cunningham (1989);

iv) as tecnicas de Booch, Booch (1986);

v) o metodo TMO - Tecnica de Modelagem de Objetos, de Rumbaugh et al. (1994);

vi) os casos de uso de Ivar Jacobson.

Em 1997, o grupo de gerenciamento de objetos, conhecido como OMG – Object Ma-

nagement Group, adotou a UML como linguagem-padrao, o que provocou um impulso

na aceitacao da UML. Hoje em dia a UML e utilizada universalmente para modelagem

de software orientado a objeto.

Page 13: Modelos oo

Modelagem Orientada a Objeto 12

Quais as vantagens da modelagem orientada a objeto?

Segundo Pressman (2002), a modelagem orientada a objeto apresenta algumas vanta-

gens inerentes:

ê Reuso de componentes do programa.

ê Desenvolvimento mais rapido e com melhor qualidade.

ê Facilidade de manutencao, adaptacao e ampliacao.

Page 14: Modelos oo

Modelagem Orientada a Objeto 13

O que e a UML?

A UML e o padrao utilizado para o desenvolvimento de modelos de software orientados

a objeto. Segundo Fowler and Scott (2000), o codigo e o meio preciso e detalhado, e a

linguagem natural e muito imprecisa; UML seria entao o meio termo.

ê A UML e uma linguagem visual que usa a ideia ”uma imagem vale mais do que mil

palavras”.

ê A UML e uma linguagem de modelagem independente de processo.

ê A UML e dinamica; inovacoes e ajustes sao acrescentados a cada nova versao.

ê A UML e o padrao da industria para modelagem de software orientado a objeto.

ê A UML e extensıvel, podendo ser adaptada as suas necessidades.

Page 15: Modelos oo

Modelagem Orientada a Objeto 14

As diferentes visoes da UML e os respectivos diagramas

A seguir sao apresentadas as diferentes visoes da UML e os respectivos diagramas:

ê Visao do modelo do usuario – mostra a visao do usuario do sistema, sendo

descrita principalmente pelos casos de uso.

• Diagrama de caso de uso.

Page 16: Modelos oo

Modelagem Orientada a Objeto 15

ê Visao do modelo estrutural – mostra a estrutura do sistema

(equivale ao modelo de objetos do metodo TMO).

• Diagrama de pacotes.

• Diagrama de classes, atributos, metodos, associacoes, agregacoes, herancas, e

dependencias.

• Diagrama de objetos.

• Diagrama de estrutura composta.

Page 17: Modelos oo

Modelagem Orientada a Objeto 16

ê Visao do modelo dinamico – mostra a dinamica e o comportamento do sistema,

sua interacao com o usuario e com sistemas externos

(equivale ao modelo dinamico e funcional do metodo TMO).

• Diagrama de sequencia (eventos e mensagens).

• Diagrama de comunicacao/colaboracao.

• Diagrama de maquina de estado (estados do objeto).

• Diagrama de atividades (detalha as funcoes/metodos).

• Diagrama de tempo.

Page 18: Modelos oo

Modelagem Orientada a Objeto 17

ê Visao de implementacao – mostra aspectos estruturais do sistema relacionados

as necessidades de implementacao

(equivale em parte ao projeto do sistema do metodo TMO).

• Diagrama de componentes.

ê Visao do modelo de ambiente – mostra o ambiente-alvo e as necessidades para

se colocar o sistema em funcionamento.

• Diagrama de implantacao.

Page 19: Modelos oo

Modelagem Orientada a Objeto 18

<<estrutura>>

Diagrama de classes

<<estrutura>>

Diagrama de componentes

<<estrutura>>

Diagrama de pacotes

<<estrutura>>

Diagrama de estrutura composta

funcao: TFuncao

integral: IntTrapezio

Simulação

Bibliotecamatemática

Bibliotecaestatística

BibliotecaSimulação

Simulador

SimReservatorio SimPoco

<<bibliotecas>>

<<Executáveis>>

<<Banco de dados>>

Figura 2: Relacionamento dos diagramas estruturais da UML.

Page 20: Modelos oo

Modelagem Orientada a Objeto 19

<<dinâmica>>

Diagrama de máquina de estado

<<dinâmica>>

Diagrama de comunicação

<<dinâmica>>

Diagrama de casos de uso

<<dinâmica>>

Diagrama de atividades

Ator

Calcular área função

Ator

função

integralsimulador

recebendo função

calculandointegral(área)

recebendodados

faz x=xmin,Area=f(x).dx/2

x=x+dxy=f(x)

Area=Area+y.dx

Area=Area+f(x).dx/2

enquantox<xmax

x>xmax

Figura 3: Relacionamento dos diagramas dinamicos da UML.

Page 21: Modelos oo

Modelagem Orientada a Objeto 20

Os elementos da UML

Componentes UML do programa dia

Classe

realização

implementação

Ator

mensagem

estado

note

estereótipo

objeto

pacote

agregação

notaClasse

dependência

início fim

generalização

{restrição}

caso deuso

Componente

tempo

vida

pequeno

pacote

associação

receptáculo

observação

atividade

bifurcação

dissipador

de evento

ramo

Fonte

de evento

Figura 4: Elementos da UML.

Page 22: Modelos oo

Modelagem Orientada a Objeto 21

Figura 5: Outros elementos da UML.

controle limite entidade

Ícone de classe.

um ramo

<<estereótipo>>

dependência

<<estereótipo>>

generalização

associação

papel de A

na

papel de B

nb

agregação

papel de A

napapel de B

nb

Notação UML para associações, agregação, composição, generalização,

implementação, observação e receptáculo, fonte e dissipador de eventos, restrição, dependência, interface.

{restrição}

interface

<<estereótipo>>

implementaçãorecursiva

<<create>>

<<destroy>>

chamada

simples

enviar/send

Tipos de mensagens

retorno

composição

papel de A

napapel de B

nb Observação

Receptáculo

Fonte de

EventoDissipador

de Evento

Page 23: Modelos oo

Modelagem Orientada a Objeto 22

Programas para modelagem orientada a objeto

Existem diversos programas para desenho dos diagramas da UML:

ê Rational Rose – e um pacote profissional que, alem da montagem dos diagra-

mas, permite simultaneamente a implementacao dos codigos. E um pacote pago,

disponıvel para diversas plataformas no endereco http://www.rational.com.

ê With Class – e um pacote profissiona, disponıvel para diversas plataformas no

endereco http://www.microgold.com/index.html.

ê Dia – o modelador dia e muito simples de usar, e software livre. Pode ser obtido

em http://www.gnome.org/gnome-office/dia.shtml.

ê Umbrello – o modelador umbrello tambem e muito simples de usar, e software

livre. Pode ser obtido em http://uml.sourceforge.net/index.php.

ê Visual Paradigm – pacote profissional, com versao livre.

Page 24: Modelos oo

Modelagem Orientada a Objeto 23

O programa Dia

Parte dos diagramas UML apresentados neste livro foram criados utilizando-se o pro-

grama dia, um software livre utilizado para a criacao dos mais diversos tipos de diagra-

mas.

ê AADL, Cibernetica, Circuitos, equipamentos cisco, engenharia civil, engenharia ele-

trica, engenharia quımica, EML, ER, fluxograma, cronograma, estrutura funcional,

Gane e Sarson, GRAFCET, Lader, logica, mapa isometrico, Miscelaneas, MSE,

pneumatico/hidraulico, rede, rede Jackson, rede KAOS, SADT/IDEF0, SDL, Sy-

base e, por fim, UML.

Nao e nosso objetivo abordar a utilizacao desse programa, e um pequeno manual dele po-

dera ser obtido em http://www.lysator.liu.se/~alla/dia/ e http://www.togaware.

com/linuxbook/dia.html.

Page 25: Modelos oo

Modelagem Orientada a Objeto 24

Figura 6: O programa dia manipulando uma estrutura UML com representacoes de classes.

Page 26: Modelos oo

Modelagem Orientada a Objeto 25

O programa umbrello

O programa umbrello e um modelador UML distribuıdo juntamente com o KDE nas

diversas distribuicoes GNU/Linux. E um programa facil de usar e que tem a vantagem

de gerar o codigo dos programas a partir do diagrama de classes. O codigo pode ser

exportado e importado para as seguintes linguagens:

ê C++, Actionscript, Ada, IDL, Java, JavaScript, Pascal, Perl, PHP, Python, Ruby,

SQL, TCL, XMLschema.

No site http://uml.sourceforge.net/index.php, voce pode baixar o umbrello, cujo

manual ja esta disponıvel em portugues.

Page 27: Modelos oo

Modelagem Orientada a Objeto 26

Figura 7: A tela do programa Umbrello: Um diagrama de componentes.

Page 28: Modelos oo

Modelagem Orientada a Objeto 27

Figura 8: A tela do programa umbrello – um diagrama de classes.

Page 29: Modelos oo

Modelagem Orientada a Objeto 28

O programa Visual-Paradigm

O Visual-Paradigm e uma interface de modelagem UML proprietaria. Pode estar

integrado a alguns sistemas de desenvolvimento como o Eclipse/IBM , JBuilder , NetBe-

ans/Sun, entre outros.

O Visual-Paradigm tem uma versao aberta para uso individual e nao profissional (ver-

sao com recursos limitados). Tambem tem uma versao standard aberta para comunidade

academica, com licenca valida por um ano. Para obter uma copia do Visual-Paradigm

acesse o site http://www.visual-paradigm.com/.

Page 30: Modelos oo

Modelagem Orientada a Objeto 29

Figura 9: A tela do programa Visual-Paradigm – um diagrama de caso de uso.

Page 31: Modelos oo

Modelagem Orientada a Objeto 30

Resumo do capıtulo

Neste capıtulo aprendemos que um modelo e uma descricao simplificada e reduzida

da realidade cuja vantagem esta associada ao seu baixo custo e ao uso de uma linguagem

universal. Vimos que os modelos (estruturais ou dinamicos) podem ser utilizados para

nos ajudar a solucionar os mais variados problemas da engenharia.

Aprendemos que a ideia da modelagem orientada a objeto e desenvolver modelos tendo

como foco o conceito de objeto. A modelagem orientada a objeto surgiu ao longo dos

anos de 1980 e ficou madura nos anos de 1990 com o surgimento da UML, um sistema

de modelagem que unificou as antigas notacoes. No final do capıtulo vimos o que sao e

como obter programas modeladores como o dia e o umbrello.

No Capıtulo ?? – Engenharia de software, veremos os conceitos basicos de engenharia

de software e uma descricao de modelos e processos utilizados para o desenvolvimento

de sistemas de softwares.

Page 32: Modelos oo

Modelagem Orientada a Objeto 31

Nota: conceitos basicos de modelagem sao encontrados nas referencias Aris (1978); Ben-

der (1978); da Silva Neto and Neto (2005).

Page 33: Modelos oo

Modelagem Orientada a Objeto 32

Exercıcios

1. Descreva, com suas palavras, o que e e para que servem os modelos.

2. Descreva, com suas palavras, o que e um paradigma.

3. Cite exemplos de modelos (estruturais e dinamicos).

4. Qual a diferenca entre a visao estrutural e a visao dinamica?

5. Instale em seu computador uma ferramenta de modelagem (exemplo: umbrello) e

leia o manual do software instalado.

6. Monte alguns exemplos de diagramas utilizando a ferramenta de modelagem esco-

lhida.

7. A Figura 3 mostra um diagrama de atividades para calculo da area de uma funcao.

O diagrama usa uma variavel x que e comparada com xmax. Troque o uso de x pelo

uso de um contador i.

Page 34: Modelos oo

Modelagem Orientada a Objeto 33

8. Comente a definicao de modelo matematico de Bender (1978), ”Um modelo matema-

tico e uma abstracao, simplificada, uma construcao matematica relacionada a parte

de uma realidade, sendo criada com um proposito particular”. Como reescreve-la

considerando aspectos computacionais?

Page 35: Modelos oo

Referencias Bibliograficas

Aris, R. (1978). Mathematical Modelling Techniques. dover.

Bender, E. A. (1978). An Introduction to Mathematical Modeling. dover.

Booch, G., editor (1986). Object-oriented development, volume 12 of IEEE Transactions on Software

Engineering.

Coad, P. and Yourdon, E. (1993). Analise Orientada a Objeto. Campus, Sao Paulo.

da Silva Neto, A. J. and Neto, F. D. M. (2005). Problemas Inversos - Conceitos Fundamentais e Aplicacoes.

Editora UERJ.

Fowler, M. and Scott, K. (2000). UML Essencial. Bookman, Sao Paulo.

34

Page 36: Modelos oo

Modelagem Orientada a Objeto 35

Pressman, R. S. (2002). Engenharia de Software. MCGraw Hill, Rio de Janeiro, 5 edition.

Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F., and Lorensen, W. (1994). Modelagem e Projetos

Baseados em Objetos. Edit. Campus, Rio de Janeiro.

Sonerviile (1993). Engenharia de Software. MacGraw-Hill, Sao Paulo.