Ádamo Santana
[email protected]

Conceito: Classe
◦ Definição de um conjunto de objetos que
compartilham estrutura e comportamento comuns
◦ Objetos são criados a partir das classes

Conceito: Objeto
◦ Um objeto é um elemento da classe
◦ Objeto deve pertencer a somente uma classe
◦ É o elemento que efetivamente armazena as
informações de um programa
◦ Objetos trocam mensagens entre si
Classe
Objetos
Operação mental
para observar um
domínio e capturar
sua estrutura ABSTRAÇÃO
Entidade
Observada
Refere-se às
convenções de
representação
REPRESENTAÇÃO
Entidade
Representada
Notação gráfica,
linguagem de programação
Avião
Classificação - Instanciação
CATEGORIA
Estudante
de
Graduação
CLASSIFICAÇÃO
José
Maria
INDIVÍDUO
(Objeto)
Classificação - Instanciação
CATEGORIA
Estudante
de
Graduação
INSTANCIAÇÃO
José
Maria
INDIVÍDUO
(Objeto)

Generalização (Especialização)
 a partir de duas categorias abstrai-se
uma categoria mais genérica
 sub-categorias satisfazem todas as
propriedades das categorias das quais
elas constituem especializações
 deve existir pelo menos uma
propriedade que distingue duas
categorias especializadas
Generalização - Especialização
CATEGORIA
Estudante
GENERALIZAÇÃO
Estudante
de
Graduação
Estudante
de PósGraduação
CATEGORIA
ESPECIALIZAÇÃO
(herança)
Generalização - Especialização
CATEGORIA
Atributos
•sangue quente
•vertebrado
•vivíparo
Atributos
•Habitat: mar
•Tempo médio de
vida: 200 anos
CATEGORIA
Mamífero
GENERALIZAÇÃO
Baleia
ESPECIALIZAÇÃO
(herança)

Agregação (Decomposição)
 Associação entre 2 classes representa
um relacionamento todo-parte entre o
agregado (todo) e um componente
(parte)

A idéia é representar o relacionamento
“tem um...”;
Agregação - Decomposição
CATEGORIA
Empresa
1
*
Departamento
INDIVÍDUO
(Objeto)
AGREGAÇÃO
DECOMPOSIÇÃO
Agregação - Decomposição
AGREGAÇÃO
DECOMPOSIÇÃO



Explicar por que o conhecimento da UML é
importante para as organizações
Apresentar os conceitos básicos da UML
Apresentar diagramas
componentes
utilizados
e
seus



Diversos métodos e técnicas OO, com
muitos aspectos em comum, porém
utilizando notações distintas
Inconvenientes para a aprendizagem,
aplicação, construção e uso de ferramentas,
etc
Luta entre distintos enfoques



Diferentes notações para o mesmo conceito
Ex: SHLAER & MELLOR (1989 e 1991); COAD
& YOURDON (1991); COAD & NICOLA (1993);
COAD et al. (1995); WIRFS-BROCK et al.
(1990); BOOCH (1994 e 1995); RUMBAUGH et
al. (1991 e 1996); MARTIN & ODELL (1994 e
1995); JACOBSON (1994 e 1995)
Necessidade de uma padronização


Padrão de projeto para especificar,
documentar aspectos de um sistema sob o
paradigma OO
Surgiu como união dos modelos:
◦ Object-modeling technique - OMT (James
Rumbaugh)
◦ Métodos de Booch (Grady Booch)
◦ Object-oriented software engineering - OOSE (Ivar
Jacobson)



Desenvolver o modelo de uma aplicação
antes de construí-la, é tão essencial quanto
ter uma planta para a construção de uma
casa
Bons modelos são essenciais para a
comunicação entre os times de projetos e
para assegurar a beleza arquitetural
Dificuldade com o aumento da complexidade
dos sistemas

UML é apenas uma parte de um método
para desenvolvimento de software
◦
◦
◦
◦
◦
Análise de requisitos
Análise
Projeto
Implementação
Teste




Modelagem de forma padronizada
Documentação e visualização gráfica
Composta por diversos diagramas de
modelagem
Destina-se a projetar sistemas complexos de
software, como por exemplo:
◦ Sistemas que manipulam as grandes bases: INPE
sobre desmatamento, Adepará sobre pecuária,
Sagri sobre agricultura
◦ Transportes
◦ Defesa/ espaço aéreo
◦ ...
A UML define três tipos básicos de construção:



Elementos: abstrações de um modelo
Relacionamentos: definem como os itens se
relacionam
Diagramas: agrupam coleções de itens




De
De
De
De
estrutura (estático)
comportamento (dinâmico)
agrupamento (organização)
anotação (explicativo)





Classes
Interface
Componentes
Nós
Classes Ativas

Classe

Interface
◦ Descreve o comportamento visível externamente da
classe
◦ A interface sempre é atachada a classe ou ao
componente que realiza a interface

Componentes
◦ Partes físicas de um sistema, cujo comportamento é
definido pelas suas interfaces
◦ O trabalho interno dos componentes deve ser
invisível e seu uso ser independente de plataforma.

Nós
◦ Peça física de equipamento (hardware), representa
um recurso computacional do sistema
<nome>

Classes ativas
◦ Classes cujos objetos possuem seus próprios fluxos
de controle (“threads”)
◦ Elementos cujo comportamento (tempo de
execução) é concorrente com o de outros
elementos




De
De
De
De
estrutura
comportamento
agrupamento
anotação

Modelar o aspecto dinâmico do modelo
◦
◦
◦
◦
Caso de uso
Ator
Interação
Máquina de Estado

Caso de Uso
◦ Ação realizada pelo sistema em relação a um certo
ator
Processar
venda

Ator
◦ Agente que vai interagir com o sistema

Interação
◦ Troca de mensagens entre objetos
◦ Modela o comportamento de um conjunto de objetos
◦ Ordem temporal e sequência das operações
<nome_da_operação>

Máquinas de estado
◦ Especifica o ciclo de execução de um objeto ou
interação durante seu tempo de vida em resposta aos
eventos, juntamente com suas respostas a estes
eventos
◦ Estado
◦ Transição
<nome>




De
De
De
De
estrutura
comportamento
agrupamento
anotação

Pacotes
◦ São as partes organizacionais dos modelos UML
◦ Organização do elementos em grupos
◦ Puramente conceitual
<nome>
<elementos>




De
De
De
De
estrutura
comportamento
agrupamento
anotação

Notas
◦ Comentários do modelo UML
◦ Observações sobre elementos do modelo
<comentário>

A UML define três tipos básicos de
construção:
◦ Elementos
◦ Relacionamentos
◦ Diagramas
Características de relação e dependência entre
os modelos UML



Associação
Herança
Dependência

Associação
◦ A associação representa uma ligação entre dois
elementos
◦ Expressas como uma linha sólida, de um elemento
ao outro, e com um verbo (ou substantivo) que
qualifique a associação
◦ Podem expressar a cardinalidade e o sentido da
associação

Especificam quantas instâncias de uma
classe podem participar da associação
Cardinalidade
Significado
0..1
Zero ou um
1
Somente 1
0..*
Maior ou igual a zero
*
Maior ou igual a zero
1..*
Maior ou igual a um
1..20(m..n)
De 1 até 20 (m a n), inclusive


Exemplo:
Uma classe financeira esta associada a 0 ou
mais vendas da classe venda através da
associação financiamento. E a classe venda
está associada a no máximo um elemento da
classe vendedor através da associação venda.
Financeira
codigo
nome
0..1
0..n
financiamento
Venda
data
hora
Vendedor
venda
0..n
1
número
Senha
nivel
autorizacao

Agregação

Composição
Características de relação e dependência entre
os modelos UML



Associação
Herança
Dependência

Generalização (Herança)
◦ Os elementos mais específicos possuem todas as
características do seu elemento mais geral
Características de relação e dependência entre
os modelos UML



Associação
Herança
Dependência

Dependência
◦ Conexão semântica entre dois elementos, um
independente e outro dependente
◦ Qualquer alteração no elemento independente pode
afetar o elemento dependente

A UML define três tipos básicos de
construção:
◦ Elementos
◦ Relacionamentos
◦ Diagramas


Uma representação gráfica de uma coleção de
elementos de um modelo
Um mesmo item pode aparecer em todos os
diagramas ou em apenas alguns






Diagrama de Casos de
Uso;
Diagrama de Classes;
Diagrama de Objetos;
Diagrama de Estrutura
Composta;
Diagrama de
Sequência;
Diagrama de
Comunicação;








Diagrama de Transição
de Estados;
Diagrama de Atividades;
Diagrama de
Componentes;
Diagrama de
Desenvolvimento;
Diagrama de Pacotes;
Diagrama de Interface
Geral;
Diagrama de Tempo;
...









Diagrama
Diagrama
Diagrama
Diagrama
Diagrama
Diagrama
Diagrama
Diagrama
Diagrama
de
de
de
de
de
de
de
de
de
classes
objetos
caso de uso (use case)
sequência
colaboração ou comunicação
transição de estados
atividades
componentes
desenvolvimento


Oferece uma visão estática da estrutura do sistema
Exibe as classes do sistema e o grau do
relacionamentos entre elas

Um diagrama de classes pode oferecer três
perspectivas, cada uma para um tipo de
observador diferente
◦ Conceitual
◦ Especificação
◦ Implementação



Conceitual (exemplo)
◦ Representa os conceitos do domínio em estudo
◦ Perspectiva destinada ao cliente
Especificação (exemplo)
◦ Tem foco nas principais interfaces da arquitetura, nos
principais métodos, e não como eles irão ser implementados
◦ Perspectiva destinada as pessoas que não precisam saber
detalhes de desenvolvimento, tais como gerentes de projeto
Implementação - a mais utilizada de todas (exemplo)
◦ Aborda vários detalhes de implementação, tais
navegabilidade, tipo dos atributos, etc
◦ Perspectiva destinada ao time de desenvolvimento
como


Muito similar ao Diagrama de Classes e utiliza quase
a mesma notação. “Retrato” do diagrama de classes
Este diagrama mostra uma “fotografia” dos objetos
existentes na execução do sistema


Serve para visualizar os relacionamentos e interações
entre os atores e os casos de uso do sistema
Especificam e documentam o comportamento de um
elemento para se entender como este é utilizado
Exemplo:

Exemplo 2:


Mostra a interação entre os objetos da
aplicação arranjados numa linha do tempo
Útil para se levantar quais são os envolvidos
no fluxo e definir a interface de alguns
objetos

Mostrar como as mensagens entre os objetos
são trocadas no decorrer do tempo para a
realização de uma operação


Semelhante ao diagrama de sequência
Pode-se visualizar os relacionamentos entre
os objetos

Apresenta os estados possíveis de uma classe
do modelo, e que eventos do sistema causam
essas mudanças de estado (ciclo de vida)

Mostra o fluxo das atividades do sistema

Explora o lado funcional, expondo a relação
entre seus componentes e suas dependências
Usado para modelar a visão de
implementação estática de um sistema
através da captura de dependências entre os
diferentes tipos de componentes

Usos comuns:

◦ Modelagem do código fonte
◦ Modelagem de executáveis
◦ Modelagem de bancos de dados físicos


Mostra o lado funcional, exibindo a
arquitetura física do hardware e do software
do sistema
Um nó representa um recurso de
processamento, tal como um computador.
Nós podem conter instâncias de
componentes, as quais podem conter objetos
70
Linguagem de Modelagem Unificada (UML)



Padrão de projeto para especificar e
documentar aspectos da modelagem de um
sistema
Criado pela necessidade de uma
padronização
Utilizam para sua construção: elementos,
relacionamentos e diagramas

Elementos
Caracterizam a forma que os objetos serão
representados
◦ De estrutura: Classes, Interface, Componentes, Nós
◦ De comportamento: Caso de uso, Interação,
Máquina de Estado
◦ De agrupamento: Pacotes
◦ De anotação: Notas

Relacionamentos
Características de relação e dependência entre os
modelos UML
◦ Associação
◦ Herança
◦ Dependência

Diagramas
Uma representação gráfica de uma coleção de elementos
de um modelo
◦ Diagrama de classes
◦ Diagrama de objetos
◦ Diagrama de caso de uso
◦ Diagrama de sequência
◦ Diagrama de colaboração
◦ Diagrama de transição de estados
◦ Diagrama de atividades
◦ Diagrama de componentes
◦ Diagrama de desenvolvimento




Linguagem de modelagem de sistemas mais
difundida no mercado para desenvolvimento de
software
Compatibilidade com orientação à objetos
Extremamente importante ter uma representação
visual de seu sistema antes que ele entre na etapa
de implementação
UML pode não só facilitar e agilizar a modelagem
de seu sistema de informação, como também cria
uma facilidade de comunicação entre os gestores e
os analistas de sistemas
Download

UML