Análise e projeto de sistemas orientados a objetos
description
Transcript of Análise e projeto de sistemas orientados a objetos
Professor : José Luiz Rodrigues JuniorE-mail: [email protected]
1
UML-Unified Modeling Language
DesenvolvimentoRational softwareMicrosoftHewlett-PackardOracleSterlingUnisys IBMMCI
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-2
UML-Unified Modeling LanguageInfluenciada por vários métodos de análise e projeto orientados a
objetosDeriva particularmente de 3 notações:
OOD (Projeto orientado a objetos) – Grady BoochOMT (Técnica de modelagem de objetos) - James RumbaughOOSE(Engenharia de software orientada a objetos) - Ivar Jacobson
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-3
Orientação a objetosSignifica organizar o mundo real como uma coleção de
objetos
AlavancasEvolução TecnológicaDistribuição de ProcessamentoTecnologia Cliente-Servidor Internet JavaAplicações WEB
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-4
Objetos - DefiniçãoObjeto é uma entidade concreta, apesar da concepção ser
abstrataAgrupamento de características e ações de uma entidadeCaracterísticas são representadas por atributosAções são representadas por métodosUm conjunto de atributos e métodos, forma um objeto
José Luiz Rodrigues JrAná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 JrAná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 JrAnálise o projetos de sistemas orientados a objetos AOO-7
Objetos - ExemplosCoisas tangíveis O Livro “Modelagem de Objetos”,
uma cadeira, uma pessoa, etc.
Incidente A copa do mundo de futebol (evento/ocorrência)
Interação O débito de R$ 100,00 na conta x(transação/contrato) 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 JrAnálise o projetos de sistemas orientados a objetos AOO-8
Objetos - CaracterísticasUm objeto possui três características básicas:
Estado
Comportamento
Identidade
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-9
Finalidade da OO
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-10
Objetos - estadoEntende-se como o seguinte conjunto: Os valores dos atributos
e o status das operações que o objeto executouObviamente, um método executado ou a mudança de valor de
algum atributo automaticamente muda seu estado anterior
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-11
Objetos - estado
Objetos têm consciência do seu passadoReté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 JrAnálise o projetos de sistemas orientados a objetos AOO-12
Objetos - estadoExemplo:
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-13
CONTA
João da Silva12345-6R$1500,00
Depositou R$ 800,00
CONTA
Maria AParecida98765-4R$2800,00
Sacou R$ 70,00
CONTA
Ana Maria Santos91872-7R$6000,00
Sacou R$ 365,60
CONTA
Objetos - comportamentoNenhum objeto existe isoladoEle 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 JrAnálise o projetos de sistemas orientados a objetos AOO-14
Objetos – estado e comportamento
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-15
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
Objetos - comportamentoMensagem
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 JrAnálise o projetos de sistemas orientados a objetos AOO-16
Objetos - MensagemPara 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 alvo2. O nome do método do objeto alvo que deseja executar3. Quaisquer informações suplementares (argumentos) que o
objeto alvo necessitará na execução de seu método
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-17
Objetos - operaçõesUma operação denota um serviço que uma classe oferece a seus
clientes Pode-se executar quatro tipos de operações sobre um objeto :
ModificadoraSeletoraConstrutoraDestruidora
José Luiz Rodrigues JrAná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 JrAnálise o projetos de sistemas orientados a objetos AOO-19
Objetos - IdentidadeUm identificador é anexado ao objeto no momento da criação
do objetoO mesmo identificador permanece com o objeto por toda sua
existência Dois objetos não podem ter o mesmo identificador
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-20
Modelo de objetosDiferentes metodologias, diferentes maneiras de resolver o
problemaEm orientação a objetos existe o conceito de “Modelo de objetos”Compõe-se de 4 elementos principais:
AbstraçãoEncapsulamentoModularidadeHierarquia
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-21
AbstraçãoElemento 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 JrAnálise o projetos de sistemas orientados a objetos AOO-22
Abstração
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-23
AbstraçãoDescreve as características visíveis do objetoTem seu foco no comportamento observável do objetoNão descreve, entretanto:
A sua implementaçãoO seu funcionamento
José Luiz Rodrigues JrAná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 JrAná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 produzmovimento e precisa de gasolina para funcionar.Não é necessário saber como ele funciona
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-26
Encapsulamento
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-27
Encapsulamento
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-28
#
Todo o acesso aos dados do objeto é feito através da chamada a uma operação da sua interface.
A interface de um objeto declara todas as operações permitidas
EncapsulamentoBenefí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 JrAnálise o projetos de sistemas orientados a objetos AOO-29
ModularidadeDivisão do sistema em componentes individuaisPermite maior clareza e compreensãoIdentifica os limites do sistemaO 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 JrAná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 JrAnálise o projetos de sistemas orientados a objetos AOO-31
Modularidade
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-32
HierarquiaUm 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 JrAnálise o projetos de sistemas orientados a objetos AOO-33
Hierarquia
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-34
Abstrações formam uma hierarquia
Hierarquia-exemploUm 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 JrAná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 JrAnálise o projetos de sistemas orientados a objetos AOO-36
ClassesEstrutura geral de onde os objetos podem derivarCada objeto é uma linha de vida à parte e cada um possui um
estado específicoUm 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 JrAná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 JrAnálise o projetos de sistemas orientados a objetos AOO-38
Classes
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-39
A classe representa um grupo de objetos com estrutura e comportamentos comuns
ClassesTodos os objetos são instâncias de uma classe.Possibilita a reutilização de códigoUma classe é representada conforme abaixo:
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-40
CONTA
TitularNúmeroSaldo
CONTA
Titular Número Saldo
Depósito( )Saque( )Transferância( )
Classe
Atributos
Métodos
Classes e Objetos
Classe é o que se projeta e programa
Objeto é o que se cria durante o processamento
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-41
Classes - VisõesA 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 JrAnálise o projetos de sistemas orientados a objetos AOO-42
Classes - VisõesA 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 JrAnálise o projetos de sistemas orientados a objetos AOO-43
Classes – Classificação e instanciaçãoClassificaçã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 JrAnálise o projetos de sistemas orientados a objetos AOO-44
Classes – Classificação e instanciação
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-45
Classes – Generalização / Especialização
GeneralizaçãoAto de definir-se uma Classe (supertipo) que irá conter as características e o comportamento que outras Classes possuem em comum
EspecializaçãoAto 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 JrAnálise o projetos de sistemas orientados a objetos AOO-46
Classes – Generalização / Especialização
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-47
Genera
lizaç
ão
Es p
ec ia
li zaçã
o
Classes – Generalização / especialização Observa características comuns para determinar uma classe mais
abrangente
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-48
gatogatogatogato
leãoleãoleãoleão
tigretigretigretigreFelinosFelinosFelinosFelinos
atletaatletaatletaatleta
professoprofessorr
professoprofessorr
médicomédicomédicomédicoPessoasPessoasPessoasPessoas
MamíferosMamíferosMamíferosMamíferos
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étodosestender 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 JrAnálise o projetos de sistemas orientados a objetos AOO-49
Classes - HerançaHeranç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ísticasPermite a reutilização de especificações comuns
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-50
Classes - HerançaVamos 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 JrAnálise o projetos de sistemas orientados a objetos AOO-51
Classes - Herança
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-52
Pode-se criar uma nova classe com características das originais
Classes - Herança
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.
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-53
Veículo terrestrepassageiros
eixos
partida()
parada()
Automóvel
partida()
Caminhãocargabagagem
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 JrAná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.
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-55
Pedido
Produto Cliente
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.
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-56
Lâmpada
Base FilamentoBulbo
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
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-57
Aluno
Graduação Pós-Graduação
Classe Abstrata
Classes Concretas
Classes abstratasUma Classe Abstrata é uma classe que:
provê organizaçãonão possui instânciaspossui uma ou mais operações abstrataspossui 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 JrAnálise o projetos de sistemas orientados a objetos AOO-58
Classes - RelacionamentosUm relacionamento modela uma conexão física ou conceitual entre objetosRelacionamentos são bidirecionaisRestringe o número de objetos que podem ser associados com outros objetos
numa relaçãoÉ denotada por um verbo
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-59
Cliente Pedidofaz1 *
Objetos da classe Cliente estão associados a Objetos da classe Pedido
Classes - Relacionamentos
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-60
Gerente Projetoparticip
a1 1
Exatamente 1
Empregado Projetoparticip
a1 0..1
Opcional 0 ou 1
Departam. Empregadoaloca1 1..*
Opcional 1 ou muitos
Cliente Pedidofaz1 *
Maior ou igual a 0
Aluno Livroempresta1 0..5
Numericamente especificado
PolimorfismoNo contexto OO, Polimorfismo significa que diferentes tipos de Objetos
podem responder a uma mesma mensagem de maneiras diferentes
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-61
Aplicação Financeira
calcularSaldo()
Renda Fixa
calcularSaldo()
Poupança
calcularSaldo()
redefinição da operação de calcularSaldo (overriding)
mesmo nome (calcularSaldo) para 3 funções (overloading)
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 JrAnálise o projetos de sistemas orientados a objetos AOO-62
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á-losModificadoras – alteração do valor dos atributos ou estado de
um ObjetoDestrutoras – eliminação de um objeto existente
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-63
Operações
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árioLógica do programa
Permite manipular os valores de atributos do objetoMétodos têm nome, representados por um verbo, que denotam o resultado
esperado; podem ter parâmetros; cada parâmetro tem nome e tipoEx.: alterarNome (cpf,nome) //normalmente primeira letra minúscula
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-64
Diagramas UML1. 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 JrAná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 JrAná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 JrAná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 JrAnálise o projetos de sistemas orientados a objetos AOO-68
Casos de uso - simbologia
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-69
nome
rótulo
rótulo
<<include>>
<<extend>>
Caso de uso Ator
Comunicação
Interação bidirecional
Unidirecional
Relações
Uses – Passos comuns
Extends – Passos adicionaisGeneralização/Especialização
Casos de uso - simbologia
Símbolo de atorNome do atorPropriedades
Iniciador Tipo
Usuário Sistema
Descrição
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-70
nome
Um ator pode representar1. Um papel que indica o que inicia o caso de uso, ou que recebe a informação2. Outro sistema que fornece a informação requisitada, ou que recebe mensagens
Interações em casos de usoComunicaçã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 JrAnálise o projetos de sistemas orientados a objetos AOO-71
Interações em casos de uso
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-72
RequisitarCatálogo
Venda
Pedir Produto
Cliente
<<extende>>
<<inclui>>
Venda c/ cartão
Generalização
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 JrAnálise o projetos de sistemas orientados a objetos AOO-73
Casos de uso –<<include>>
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-74
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.
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 JrAnálise o projetos de sistemas orientados a objetos AOO-75
Casos de uso - <<Extend>>
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-76
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.
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 JrAnálise o projetos de sistemas orientados a objetos AOO-77
Diagrama de sequência-Exemplo
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-78
umfuncionário
umtelefone
um cliente
retira fone do gancho
tom de discagem
disca o número
chamada sendo roteada
chamandochamando
atende chamadavoz do cliente
{ b – a < 1 segundo }
a
{ c – b < 10 segundos }
{ d – d’ < 5 segundos }
b
c
d
d’
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 JrAnálise o projetos de sistemas orientados a objetos AOO-79
Diagrama de colaboração(Interação)
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-80
janela de entradade pedido
um pedidoum item do
pedido
um item doestoque
um item deentrega
vendedor: pessoa 2: preparar()
3: preparar()
4: remover [verificação == verdadeiro] ()
5: atualizarPedido()
1: evento
Diagrama de classesDemonstra 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 JrAnálise o projetos de sistemas orientados a objetos AOO-81
Diagrama de classes - Exemplo
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-82
Prédio Apartamento
possui1 *
Classes
Relacionamento
Cardinalidade
Diagrama de classes - Cardinalidade
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-83
N0...1N...M
*1...*
Exatamente N0 ou 1Entre N e M (Incluindo os extremos)
Zero ou Muitos1 ou muitos
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 JrAná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 JrAnálise o projetos de sistemas orientados a objetos AOO-85
Diagrama de estados - Exemplo
Registrando Pedido Alterando Pedido
Cancelando Pedido
Analisando Pedido
Aprovando Pedido
Colocando pedido em pendência Atendendo pedidopedido atendido
pedido cancelado
pedido requisitado para análise
pedido requisitado para análise
pedido enviado alteração de pedido solicitada
cancelamento de pedido solicitado
pedido será atendido
pedido já pode ser atendido
pedido para aprovação
pedido será cancelado
pedido não pode ser atendido no momento
José Luiz Rodrigues JrAná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 JrAnálise o projetos de sistemas orientados a objetos AOO-87
Diagrama de atividade – Exemplo
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-88
Selecionar local
contratar arquiteto
desenvolver plano
orçar plano
fazer trabalho no local fazer trabalho em outros setores
Construir edificação
[rejeitado ]
[senão]
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 JrAnálise o projetos de sistemas orientados a objetos AOO-89
Diagrama de componentes - Exemplo
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-90
Bibliografia MODELAGEM DE OBJETOS ATRAVÉS DA UML
Furlan, José DaviMakron Books
UML ESSENCIAL Um Breve Guia para a linguagem-padrão de modelagem de objetosFowler, Martin e Scott, KendallBookman
APPLYING UML AND PATTERNSAn Introduction to Object-Oriented Analysis and DesignLarman, Craig
UML TOOLKITEriksson, Hans-Erik and Penker, Magnus
FUNDAMENTOS DO DESENHO ORIENTADO A OBJETOS COM UMLPage-Jones, MeilirMakron books
José Luiz Rodrigues JrAnálise o projetos de sistemas orientados a objetos AOO-91