modelos oo
TRANSCRIPT
Aula
Modelagem Orientada a Objeto
Andre Duarte Bueno, Dr. Eng.
12 de abril de 2009
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
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).
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).
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).
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.
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
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
Modelagem Orientada a Objeto 24
Figura 6: O programa dia manipulando uma estrutura UML com representacoes de classes.
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.
Modelagem Orientada a Objeto 26
Figura 7: A tela do programa Umbrello: Um diagrama de componentes.
Modelagem Orientada a Objeto 27
Figura 8: A tela do programa umbrello – um diagrama de classes.
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/.
Modelagem Orientada a Objeto 29
Figura 9: A tela do programa Visual-Paradigm – um diagrama de caso de uso.
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.
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).
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.
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?
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
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.