Professor : José Luiz Rodrigues Junior
E-mail: [email protected]
1
UML-Unified Modeling Language
 Desenvolvimento
 Rational software
 Microsoft
 Hewlett-Packard
 Oracle
 Sterling
 Unisys
 IBM
 MCI
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-2
UML-Unified Modeling Language
 Influenciada por vários métodos de análise e projeto orientados a
objetos
 Deriva particularmente de 3 notações:
 OOD (Projeto orientado a objetos) – Grady Booch
 OMT (Técnica de modelagem de objetos) - James Rumbaugh
 OOSE(Engenharia de software orientada a objetos) - Ivar Jacobson
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-3
Orientação a objetos
 Significa organizar o mundo real como uma coleção de
objetos
 Alavancas






Evolução Tecnológica
Distribuição de Processamento
Tecnologia Cliente-Servidor
Internet
Java
Aplicações WEB
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-4
Objetos - Definição
 Objeto é uma entidade concreta, apesar da concepção ser




abstrata
Agrupamento de características e ações de uma entidade
Características são representadas por atributos
Ações são representadas por métodos
Um conjunto de atributos e métodos, forma um objeto
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-5
Objetos - Definição
 Do ponto de vista da abstração, um objeto tenta não separar o que
até então vinha sendo separado: Dados e funções.
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-6
Objetos - Definição
“um objeto é uma abstração de um conjunto de coisas do mundo
real, sendo que: todas as coisas do mundo real em um conjunto as instâncias - têm as mesmas características. Todas as instâncias
são sujeitas e em conformidade às mesmas regras”
“...um objeto representa uma entidade, item ou unidade
individual, identificável, sendo real ou abstrato, com regras bem
definidas no domínio do problema."
Grady Booch
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-7
Objetos - Exemplos
 Coisas tangíveis
O Livro “Modelagem de Objetos”,
uma cadeira, uma pessoa, etc.
 Incidente
A copa do mundo de futebol
(evento/ocorrência)
 Interação
(transação/contrato)
O débito de R$ 100,00 na conta x
no dia 20/01/2000
Em um Sistema Universitário, João da Silva é um estudante-objeto; ele assiste a
diversos seminários-objeto e está cursando uma graduação-objeto.
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-8
Objetos - Características
 Um objeto possui três características básicas:
 Estado
 Comportamento
 Identidade
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-9
Finalidade da OO
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-10
Objetos - estado
 Entende-se como o seguinte conjunto: Os valores dos atributos
e o status das operações que o objeto executou
 Obviamente, um método executado ou a mudança de valor de
algum atributo automaticamente muda seu estado anterior
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-11
Objetos - estado
 Objetos têm consciência do seu passado
 Retém informações dentro de si mesmo por tempo indefinido,
não “morrendo” quando termina a execução, ou seja, memoriza
suas propriedades e valores associados. Essa característica
chama-se “retenção de estado”
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-12
Objetos - estado
 Exemplo:
CONTA
CONTA
CONTA
João da Silva
12345-6
R$1500,00
Maria AParecida
98765-4
R$2800,00
Ana Maria Santos
91872-7
R$6000,00
Depositou R$ 800,00
Sacou R$ 70,00
Sacou R$ 365,60
CONTA
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-13
Objetos - comportamento
 Nenhum objeto existe isolado
 Ele interage com outros objetos, atuando sobre estes, ou sofrendo
ação dos mesmos.
 O comportamento de um objeto é completamente definido pelas
suas ações
“Comportamento é como um objeto age e reage, nos termos das
suas mudanças de estado e passagem de mensagens “
Grady Booch
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-14
Objetos – estado e comportamento
operações/métodos/interface
(público)
dados/propriedades/atributos
(privado)
A estrutura de dados armazena o estado de um objeto (valores dos
atributos).
As operações definem o comportamento do objeto, que é a forma como
um objeto age e reage em termos de mudanças de estado e respostas às
operações que sabe executar
Análise o projetos de sistemas orientados a objetos
José Luiz Rodrigues
Jr
AOO-15
Objetos - comportamento
 Mensagem
 O comportamento de um objeto é função de seu estado, bem
como das operações realizadas sobre ele, com certas operações
tendo o efeito de alterar o estado do objeto
 Trata-se de uma operação que um objeto executa sobre outro
para obter uma reação
 É o meio de comunicação entre objetos, isto é, é o estímulo para
um determinado comportamento.
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-16
Objetos - Mensagem
 Para que um objeto (chamado de emissor) envie uma
mensagem para outro objeto (chamado alvo), deve-se conhecer
três coisas:
 1. O identificador do objeto alvo
 2. O nome do método do objeto alvo que deseja executar
 3. Quaisquer informações suplementares (argumentos) que o
objeto alvo necessitará na execução de seu método
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-17
Objetos - operações
 Uma operação denota um serviço que uma classe oferece a seus
clientes
 Pode-se executar quatro tipos de operações sobre um objeto :
 Modificadora
 Seletora
 Construtora
 Destruidora
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-18
Objetos - Identidade
“Identidade é aquela propriedade de um objeto que o distingue de
todos os outros objetos”
Khoshafiam e Copeland
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-19
Objetos - Identidade
 Um identificador é anexado ao objeto no momento da criação
do objeto
 O mesmo identificador permanece com o objeto por toda sua
existência
 Dois objetos não podem ter o mesmo identificador
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-20
Modelo de objetos
 Diferentes metodologias, diferentes maneiras de resolver o
problema
 Em orientação a objetos existe o conceito de “Modelo de objetos”
 Compõe-se de 4 elementos principais:
 Abstração
 Encapsulamento
 Modularidade
 Hierarquia
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-21
Abstração
 Elemento fundamental pelo qual se reconhece um objeto, seja
ele um processo ou situação no mundo real
“Uma Abstração denota as características essenciais de um
objeto que o distinguem de todos os outros tipos de objetos e
portanto definem nitidamente os limites conceituais relativos à
perspectiva do observador.”
Grady Booch
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-22
Abstração
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-23
Abstração
 Descreve as características visíveis do objeto
 Tem seu foco no comportamento observável do objeto
 Não descreve, entretanto:
 A sua implementação
 O seu funcionamento
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-24
Encapsulamento
 É o processo de esconder todos os detalhes de um objeto que não
contribuem para suas características essenciais
“Encapsulamento é o processo de identificação dos elementos de
uma abstração que constituem sua estrutura e comportamento.”
Grady Booch
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-25
Encapsulamento
 Técnica de proteger informações
 É a arte de esconder o que não é essencial
Deve-se saber :
O que o objeto produz
 O que o objeto necessita para produzir

Ex.: Para dirigir é preciso saber que o carro produz
movimento e precisa de gasolina para funcionar.
Não é necessário saber como ele funciona
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-26
Encapsulamento
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-27
Encapsulamento

A interface de um objeto declara todas as operações permitidas
#
Todo o acesso aos dados do objeto é feito através da chamada a uma
operação da sua interface.
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-28
Encapsulamento
 Benefícios
 Segurança

Protege os atributos dos objetos de terem seus valores
corrompidos por outros objetos.
 Independência

“Escondendo” seus atributos, um objeto protege outros objetos de
complicações de dependência de sua estrutura interna
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-29
Modularidade
 Divisão do sistema em componentes individuais
 Permite maior clareza e compreensão
 Identifica os limites do sistema
 O agrupamento de classes e objetos em módulos permite a
montagem de uma estrutura lógica que produz a arquitetura do
sistema
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-30
Modularidade
 “Modularidade é a propriedade de um sistema de ser
decomposto em um conjunto de módulos coesivos e
relacionalmente desprendidos.”
Grady Booch
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-31
Modularidade
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-32
Hierarquia
 Um grupo de abstrações frequentemente forma uma hierarquia e
com a identificação dessas hierarquias no projeto, pode-se
simplificar o entendimento do problema.
“Hierarquia é uma graduação ou ordenamento de abstrações “
Grady Booch
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-33
Hierarquia
Abstrações formam uma hierarquia
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-34
Hierarquia-exemplo
 Um computador é feito de CPU, gabinete, teclado e outros
dispositivos. A CPU, por sua vez (e aqui o que fazemos é diminuir o
nível de abstração), é formada de portas lógicas; as portas lógicas,
por sua vez, são formadas de transístores; estes, por sua vez, são
formados de cristais, metais e substâncias químicas; estas por sua
vez, formadas por moléculas, que são formadas por átomos, e assim
em diante
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-35
Benefícios do modelo de objetos
 É adequado para sistemas que pretendem evoluir com o tempo,
pois sua estrutura permite que se mude a implementação interna
de um objeto sem ter que mudar todo o código que se situa acima
deste
 É um modelo maleável, o que permite a inserção de novas
características
 Princípios como “esconder informações” e “modularidade”
permitem facilidade em sistemas que possuem manutenção
constante
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-36
Classes
 Estrutura geral de onde os objetos podem derivar
 Cada objeto é uma linha de vida à parte e cada um possui um
estado específico
 Um objeto é diferente do outro (Em seu conteúdo e estado) mesmo
que a sua interface seja a mesma.
“Uma classe é um grupo de objetos que compartilham uma estrutura
comum e um comportamento comum”
Grady Booch
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-37
Classes
 Existem vários tipos de objetos, portanto existem vários
tipos de classes
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-38
Classes
A classe representa um grupo de objetos com estrutura e comportamentos comuns
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-39
Classes
 Todos os objetos são instâncias de uma classe.
 Possibilita a reutilização de código
 Uma classe é representada conforme abaixo:
CONTA
CONTA
Classe
Titular
Titular
Número
Número
Saldo
Saldo
Atributos
Depósito( )
Saque( )
Transf erância( )
Métodos
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-40
Classes e Objetos
 Classe é o que se projeta e programa
 Objeto é o que se cria durante o processamento
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-41
Classes - Visões
 A interface de uma classe provê a visão externa, e portanto,
enfatiza a abstração enquanto esconde sua estrutura e segredos de
seu comportamento
 A implementação de uma classe é sua visão interna, que engloba os
segredos de seu comportamento
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-42
Classes - Visões
 A interface de uma classe divide-se em:
 Pública (Representada pelo símbolo “+”)
Uma declaração que forma parte da interface de uma classe e é visível para todos
os clientes que são habilitados para isto;
 Protegida (Representada pelo símbolo “#”
Uma declaração que forma parte da interface de uma classe, mas não é visível para
quaisquer outras classes, exceto suas subclasses;
 Privada
(Representada pelo símbolo “-”)
Uma declaração que forma parte da interface de uma classe, mas não é visível para
quaisquer outras classes.
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-43
Classes – Classificação e instanciação
 Classificação
 É a operação que divide em uma ou mais categorias (classes)
indivíduos dentro de um domínio;
 Instanciação
 É a operação que evidencia um indivíduo (Objeto) que pertence a
uma categoria.
São operações opostas. Quando se une vários indivíduos em uma
categoria, é uma classificação, mas quando se pega um único
indivíduo da categoria, é uma instanciação.
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-44
Classes – Classificação e instanciação
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-45
Classes – Generalização / Especialização
 Generalização
Ato de definir-se uma Classe (supertipo) que irá conter as
características e o comportamento que outras Classes possuem em
comum
 Especialização
Ato de definir-se uma Classe que além de herdar as características e
o comportamento do Supertipo ainda possui outras características
que são sua especialidade (somente ela tem) e, portanto, os demais
subtipos não possuem
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-46
Classes – Generalização / Especialização
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-47
Classes – Generalização / especialização
 Observa características comuns para determinar uma classe mais
abrangente
gato
leão
Felinos
tigre
Mamíferos
atleta
professo
r
médico
José Luiz Rodrigues Jr
Pessoas
Análise o projetos de sistemas orientados a
objetos
AOO-48
Classes – Generalização / especialização
 Uma Classe derivada herda a estrutura de dados e métodos de sua
classe “base”, mas pode seletivamente:
 adicionar novos métodos
 estender a estrutura de dados
 redefinir a implementação de métodos já existentes
 Uma Classe “base” propicia a funcionalidade que é comum a todas
as suas classes derivadas, enquanto que uma classe derivada
proporciona a funcionalidade adicional que especializa seu
comportamento.
 A Generalização é uma noção conceitual. Herança é a
implementação de uma generalização.
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-49
Classes - Herança
 Herança é o compartilhamento de atributos e operações entre
classes com base em um relacionamento hierárquico
 Cada subclasse herda todas as propriedades da superclasse e
acrescenta suas próprias e exclusivas características
 Permite a reutilização de especificações comuns
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-50
Classes - Herança
 Vamos supor que a engenharia genética conseguiu produzir o
cruzamento de animais (classes) diferentes, como por exemplo,
leões, girafas e cobras. Cada um deles possui sua características
próprias (o leão possui juba, a girafa pintas, a cobra escamas, etc…)
e algumas em comum (Leões e Girafas são mamíferos com quatro
patas, etc…). Quais as características deste novo ser (ou classe) ?
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-51
Classes - Herança
Pode-se criar uma nova classe com características das originais
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-52
Classes - Herança
Veículo terrestre
passageiros
eixos
partida()
parada()
Automóvel
bagagem
Caminhão
carga
A Classe “Automóvel” herda os
atributos: passageiros e eixos; define
um novo atributo: bagagem e
redefine o método: partida().
A Classe “Caminhão” herda os
atributos: passageiros e eixos e
define um novo: carga.
partida()
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-53
Classes – Herança
“Um objeto tem parte de suas caracteristicas herdadas de classes superiores
(como variáveis globais) ou outras classes (como uma passagem de
parâmetro).”
Grady Booch
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-54
Agregação – Estrutura todo-parte
 Propriedade de uma Classe formar suas instâncias a partir da reunião das
características e do comportamento de outras instâncias da mesma Classe ou de
Classes diferentes, sendo que os componentes têm existência independente em
relação ao composto, ou seja, a eliminação do composto não afeta a existência dos
elementos que o criaram.
 É uma associação entre um objeto e outros objetos que fizerem parte dele.
 Se A agrega B então B é parte de A; mas seus tempos de vida são independentes.
Pedido
Produto
José Luiz Rodrigues Jr
Cliente
Análise o projetos de sistemas orientados a
objetos
AOO-55
Composição – Estrutura todo-parte
 Propriedade de uma Classe formar suas instâncias a partir da reunião das
características e do comportamento de outras instâncias da mesma Classe ou de
Classes diferentes, sendo que os componentes não têm existência indepedente em
relação ao composto, ou seja, a eliminação do composto afeta a existência dos
elementos que o criaram.
 Se A é composto de B então A controla o tempo de vida de B.
Lâmpada
Base
José Luiz Rodrigues Jr
Bulbo
Análise o projetos de sistemas orientados a
objetos
Filamento
AOO-56
Classes abstratas
 São Classes utilizadas apenas para organizar a estrutura, já que ela não será
instanciada.
 Ela define um conjunto mínimo de atributos e métodos virtuais, que deverão ser
implementados pelas SubClasses.
 Uma Classe abstrata sugere uma técnica de “design” e muitas vezes aumenta a clareza
da modelagem
Aluno
Graduação
José Luiz Rodrigues Jr
Classe Abstrata
Classes Concretas
Análise o projetos de sistemas orientados a
objetos
Pós-Graduação
AOO-57
Classes abstratas
 Uma Classe Abstrata é uma classe que:
 provê organização
 não possui instâncias
 possui uma ou mais operações abstratas
 possui subclasses que implementam estas operações
 Uma operação abstrata só determina a existência de um
comportamento não definindo uma implementação
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-58
Classes - Relacionamentos
 Um relacionamento modela uma conexão física ou conceitual entre objetos
 Relacionamentos são bidirecionais
 Restringe o número de objetos que podem ser associados com outros objetos
numa relação
 É denotada por um verbo
Cliente
1
faz
*
Pedido
Objetos da classe Cliente estão associados a Objetos da classe Pedido
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-59
Classes - Relacionamentos
Exatamente 1
Gerente
Opcional 0 ou 1
Empregado
Opcional 1 ou muitos
Departam.
Maior ou igual a 0
Numericamente
especificado
José Luiz Rodrigues Jr
Cliente
Aluno
1
participa
1
1
participa
0..1
1
aloca
1..*
1
faz
1
empresta
Análise o projetos de sistemas orientados a
objetos
*
0..5
Projeto
Projeto
Empregado
Pedido
Livro
AOO-60
Polimorfismo
 No contexto OO, Polimorfismo significa que diferentes tipos de Objetos podem
responder a uma mesma mensagem de maneiras diferentes
Aplicação
Financeira
calcularSaldo()
redefinição da operação de
calcularSaldo (overriding)
mesmo nome (calcularSaldo)
para 3 funções (overloading)
Renda Fixa
calcularSaldo()
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
Poupança
calcularSaldo()
AOO-61
Polimorfismo
 Pode-se declarar funções e procedimentos com os mesmos nomes,
enquanto suas chamadas possam a ser distintas pelos seus
parâmetros de retorno, consistindo do número dos seus
argumentos e dos seus tipos de valores de retorno
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-62
Operações
 Representa um tipo de reação a qual um Objeto está preparado
para ter ao ser estimulado (comportamento). Existem alguns tipos
de reações que uma Operação pode causar em um Objeto:
 Construtoras – geração de um novo Objeto da Classe
(instanciação)
 Seletoras – recuperação do conteúdo dos atributos de um
Objeto, sem alterá-los
 Modificadoras – alteração do valor dos atributos ou estado de
um Objeto
 Destrutoras – eliminação de um objeto existente
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-63
Métodos
 Conjunto de instruções associado com a operação de uma classe, propiciando




comportamento aos objetos da Classe
Procedimento ou função associada com uma Classe
Invocado somente por meio de passagem de mensagens por:
 Objetos de outras Classes
 Interface de usuário
 Lógica do programa
Permite manipular os valores de atributos do objeto
Métodos têm nome, representados por um verbo, que denotam o resultado
esperado; podem ter parâmetros; cada parâmetro tem nome e tipo
Ex.: alterarNome (cpf,nome) //normalmente primeira letra minúscula
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-64
Diagramas UML
1. Diagramas de casos de uso (casos + atores + relações)
2. Diagramas de seqüência (detalhamento - fase projeto)
3. Diagramas de colaboração (troca de mensagens entre objetos)
4. Diagramas de classes (classes + responsabilidades -- atributos, relacionamentos,
métodos, cenários)
5. Diagramas de estados (ciclos de vida, comportamentos)
6. Diagrama de atividades (ordenamento dos casos de uso)
7. Diagrama de componentes (grupo de objetos divididos em nodos físicos)
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-65
Visão de casos de uso
 Descreve a funcionalidade que o sistema deve oferecer, do ponto de
vista do mundo externo.
 O mundo externo é representado por um conjunto de atores ou
atores externos que interagem com o sistema.
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-66
Visão de casos de uso
 Os casos de uso são levantados a partir da idéia de necessidade do
sistema, antes mesmo de se pensar numa arquitetura para o
mesmo.
 Eles são a base do processo uma vez que dirigem o
desenvolvimento das demais visões.
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-67
Visão de casos de uso
 O objetivo final do sistema é oferecer a funcionalidade descrita
pelos casos de uso.
 Sendo assim, a visão dos casos de uso é importante também na
validação do sistema.
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-68
Casos de uso - simbologia
Caso de uso
Ator
nome
Comunicação
rótulo
rótulo
Interação bidirecional
Unidirecional
Relações
<<include>>
<<extend>>
Uses – Passos comuns
Extends – Passos adicionais
Generalização/Especialização
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-69
Casos de uso - simbologia
 Símbolo de ator
 Nome do ator
nome
 Propriedades
Iniciador
Tipo





Usuário
Sistema
Descrição
José Luiz Rodrigues Jr
Um ator pode representar
1. Um papel que indica o
que inicia o caso de uso, ou
que recebe a informação
2. Outro sistema que
fornece a informação
requisitada, ou que recebe
mensagens
Análise o projetos de sistemas orientados a
objetos
AOO-70
Interações em casos de uso
 Comunicação: um Ator comunica-se com o Caso de Uso.
 Extensão: demonstra como o comportamento definido para o
primeiro caso pode ser inserido no comportamento definido
para o segundo. Sugere a existência de casos adicionais e
alternativos
 Generalização: um caso de uso é uma especialização de outro, e
herda características
 Uso ou inclusão: ocorre quando surge a divisão de um caso de
uso mais complexo, que inclui outros mais simples, e a
identificação de passos comuns, que podem ser reutilizados por
outros casos de uso.
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-71
Interações em casos de uso
Venda
Cliente
<<extende>>
<<inclui>>
Pedir Produto
José Luiz Rodrigues Jr
Requisitar
Catálogo
Análise o projetos de sistemas orientados a
objetos
Generalização
Venda c/
cartão
AOO-72
Casos de uso <<include>> (<<uses>>)
 O tipo de generalização <<include>> ou <<uses>> é usado para
descrever o comportamento comum entre dois ou mais use cases
 Utilizados para identificar comportamentos reutilizáveis pelas regras
de negócio
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-73
Casos de uso –<<include>>
A generalização <<uses>>
indica que uma instância
de RealizarPedido utiliza
todos os comportamentos
descritos por
ValidarCliente. O
comportamento descrito
por ValidarCliente é
obrigatório para o use case
RealizarPedido.
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-74
Casos de uso - <<Extend>>
 O tipo de generalização <<extend>> é usado para expressar
comportamento opcional por um use case
 Utilizados para identificar comportamentos que podem ser
reutilizados pelas regras de negócio
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-75
Casos de uso - <<Extend>>
A generalização <<extends>>
indica que o use case
RealizarPedido pode utilizar
o use case CadastrarCliente.
O comportamento descrito
por CadastrarCliente é
opcional para o use case
RealizarPedido.
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-76
Diagrama de sequência (Interação)
 Um diagrama de sequência mostra a colaboração dinâmica entre os
vários objetos de um sistema
 O mais importante aspecto deste diagrama é que a partir dele
percebe-se a sequência de mensagens enviadas entre os objetos
 Mostra a interação entre os objetos, alguma coisa que acontecerá
em um ponto específico da execução do sistema
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-77
Diagrama de sequência-Exemplo
um
funcionário
a
{ b – a < 1 segundo }
b
{ c – b < 10 segundos }
c
d
{ d – d’ < 5 segundos }
d’
José Luiz Rodrigues Jr
um
telefone
um cliente
retira fone do gancho
tom de discagem
disca o número
chamada sendo
roteada
chamando
chamando
voz do cliente
atende chamada
Análise o projetos de sistemas orientados a
objetos
AOO-78
Diagrama de colaboração (Interação)
 Mostra de maneira semelhante ao diagrama de sequência, a
colaboração dinâmica entre os objetos
 Pode-se escolher entre utilizar o diagrama de colaboração ou o
diagrama de sequência
 Se a ênfase do diagrama for o decorrer do tempo, é melhor escolher
o diagrama de sequência
 Se a ênfase for o contexto do sistema, é melhor dar prioridade ao
diagrama de colaboração
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-79
Diagrama de colaboração
(Interação)
1: evento
janela de entrada
de pedido
vendedor:
pessoa
2: preparar()
3: preparar()
um item do
pedido
um pedido
4: remover [verificação == verdadeiro] ()
5: atualizarPedido()
um item do
estoque
José Luiz Rodrigues Jr
um item de
entrega
Análise o projetos de sistemas orientados a
objetos
AOO-80
Diagrama de classes
 Demonstra a estrutura estática das classes de um sistema onde
estas representam as "coisas" que são gerenciadas pela aplicação
modelada
 Classes podem se relacionar com outras através de diversas
maneiras:
 Associação (conectadas entre si)
 Dependência (uma classe depende ou usa outra classe)
 Especialização (uma classe é uma especialização de outra
classe)
 Pacotes (classes agrupadas por características similares).
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-81
Diagrama de classes - Exemplo
Classes
Relacionamento
Pr é dio
1
possui
Apar tam e nto
*
Cardinalidade
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-82
Diagrama de classes - Cardinalidade
N
0...1
N...M
*
1...
José Luiz Rodrigues Jr
*
Exatamente N
0 ou 1
Entre N e M (Incluindo os extremos)
Zero ou M uitos
1 ou muitos
Análise o projetos de sistemas orientados a
objetos
AOO-83
Diagrama de estados
 Um diagrama de estado representa o ciclo de vida de um objeto.
Para isso ele mostra os estados que um objeto pode ter e como os
eventos afetam estes estados.
 Podem ser considerados eventos o recebimento de uma mensagem,
uma condição que se tornou verdadeira ou a passagem de um
período de tempo designado após um determinado evento.
 O objeto emite uma resposta a um estímulo(evento) recebido.
 Podem haver ações associadas às respostas.
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-84
Diagrama de estados - Evento
 Um evento é uma ocorrência que pode disparar uma transição do
estado
 Cada nome de evento pode aparecer no máximo uma vez em um
único estado
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-85
Diagrama de estados - Exemplo
cancelamento de pedido solicitado
Cancelando Pedido
pedido enviado
alteração de pedido solicitada
Alterando Pedido
Registrando Pedido
pedido
cancelado
pedido requisitado
para análise
pedido
requisitado
para análise
pedido será cancelado
Analisando Pedido
pedido para aprovação
pedido já pode ser
atendido
Aprovando Pedido
pedido não pode ser
atendido no momento
Colocando pedido em pendência
José Luiz Rodrigues Jr
pedido será atendido
Atendendo pedido
pedido atendido
Análise o projetos de sistemas orientados a
objetos
AOO-86
Diagrama de atividade
 Captura ações e seus resultados
 Focaliza o trabalho executado na implementação de uma operação
(método), e suas atividades numa instância de um objeto
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-87
Diagrama de atividade – Exemplo
Selecionar local
contratar arquiteto
desenvolver plano
orçar plano
[rejeitado ]
[senão]
fazer trabalho no local
fazer trabalho em outros setores
Construir edificação
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-88
Diagrama de componentes
 Descreve os componentes de software e suas dependências entre
si, representando a estrutura do código gerado
 Componentes são a implementação na arquitetura física dos
conceitos e da funcionalidade definidos na arquitetura lógica
(classes, objetos e seus relacionamentos)
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-89
Diagrama de componentes - Exemplo
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-90
Bibliografia
 MODELAGEM DE OBJETOS ATRAVÉS DA UML
Furlan, José Davi




Makron Books
UML ESSENCIAL Um Breve Guia para a linguagem-padrão de modelagem de objetos
Fowler, Martin e Scott, Kendall
Bookman
APPLYING UML AND PATTERNS
An Introduction to Object-Oriented Analysis and Design
Larman, Craig
UML TOOLKIT
Eriksson, Hans-Erik and Penker, Magnus
FUNDAMENTOS DO DESENHO ORIENTADO A OBJETOS COM UML
Page-Jones, Meilir
Makron books
José Luiz Rodrigues Jr
Análise o projetos de sistemas orientados a
objetos
AOO-91
Download

Análise e projeto de sistemas orientados a objetos