Revisão 1º bimestre - Casos de Usos e Classes
description
Transcript of Revisão 1º bimestre - Casos de Usos e Classes
ANÁLISE PROJETO E
PROGRAMAÇÃO PARA WEB
Profª. Maria Alice Jovinski
Prova dia 29/04/2013 às 20h50
REVISÃO PROVA
DIAGRAMA DE CASO DE USO
Os casos de uso descrevem a funcionalidade do
sistema percebida por atores externos;
Um ator interage com o sistema podendo ser um
usuário, dispositivo ou outro sistema;
DIAGRAMA DE CASO DE USO
Notação UML:
RELACIONAMENTOS
Entre um ator e um caso de uso
Associação: define uma funcionalidade do sistema do
ponto de vista do usuário;
RELACIONAMENTOS
Entre casos de uso
Associação
Include
Extend
Generalização ou Especialização
RELACIONAMENTOS
Include
Um relacionamento include de um caso de uso A para
um caso de uso B indica que B é essencial para o
comportamento de A. Pode ser dito também que
B is_part_of A;
RELACIONAMENTOS
Extend
Um relacionamento extend de um caso de uso B para
um caso de uso A indica que o caso de uso B pode ser
acrescentado para descrever o comportamento de A
(não é essencial);
RELACIONAMENTOS
Generalização ou Especialização (é_um)
Um relacionamento entre um caso de uso genérico para
um mais específico, que herda todas as características
de seu pai;
FASES DO DIAGRAMA DE CASOS DE USO
Roteiro de levantamento do modelo de casos de
uso:
Levantamento dos atores;
Levantamento dos casos de uso principais;
Definição dos relacionamentos:
Entre atores;
Entre atores e casos de uso;
Detalhamento dos casos de uso:
Relacionamentos entre casos de uso;
CLASSE
Abstração: se preocupa com a visão superficial de
um objeto, por isso serve para separar o
comportamento de um objeto de sua
implementação;
Classe: representam um modelo conceitual
primário para elementos que têm
responsabilidades e comportamento no sistema;
Objeto: objeto é simplesmente alguma coisa que
faz sentido no contexto da aplicação e não deve ter
nomes vagos;
DIAGRAMA DE CLASSES
É um esquema, padrão, ou molde, para descrever,
várias possíveis instâncias de dados ou seja
descreve as classes;
Notação UML:
ATRIBUTOS
Um atributo é uma propriedade de um objeto Ex.: Nome, idade (atributos de pessoa);
Cada atributo tem um valor para cada instância A idade de João é 26;
Devem ser valores de dados puros, e não objetos;
Um atributo pode ter um valor default;
ATRIBUTOS
o Visibilidade:
o + {público}: o elemento pode ser utilizado pelo objeto no qual ele pertence e por qualquer objeto cliente.
o # {protegido}: o elemento pode ser utilizado somente pelo próprio objeto no qual ele pertence, ou se existirem, pelas suas subclasses.
o - {privado}: o elemento pode ser utilizado somente pelo objeto ao qual ele pertence.
o ~{package}: visível a classes do mesmo package.
OPERAÇÕES
Uma operação é uma função, ou transformação, que pode ser aplicada para ou por objetos em uma classe
Ex: Contratar, PagarSalários são operações da Classe Empresa;
Operações podem ser polimórficas
Ex: Imprimir arquivos binários, textos, figuras;
Operações podem receber parâmetros
Ex: Mover um polígono 10 pixels;
Todas as instâncias de uma classe compartilham as mesmas operações;
RELACIONAMENTOS
Associação
Agregação
Composição
Generalização
Especialização
ASSOCIAÇÕES
É uma relação que descreve um conjunto de
vínculos entre elementos de modelo
Podem ser reflexivas, binárias, ternárias, etc.
ASSOCIAÇÕES
Diagrama de Classes
Diagrama de Objetos
País
Nome
Cidade
Nome
Tem-capital
:País
Brasil
:CidadeTem-capital
Brasília
ASSOCIAÇÕES BINÁRIAS
Quando há duas classes envolvidas na associação
de forma direta de uma para a outra (mutualismo)
Empregado EmpresaTrabalha-para
MULTIPLICIDADE DE ASSOCIAÇÃO
Especifica quantas instâncias de uma
classe pode se relacionar com cada
instância de outra classe.
Limita o número na relação entre os
objetos.
Geralmente é “um” ou “muitos”, mas pode
ser um conjunto finito.
Carrose-move-sobre
Roda
4
MULTIPLICIDADE DE ASSOCIAÇÃO
Mais exemplos....
Trabalha-paraEmpresaEmpregado
0..*
console
JanelaWorkstation 0..1
MULTIPLICIDADE - UML
Exatamente 1
Muitos (zero ou mais)
Opcional (zero ou um)
Um ou mais
Numericamente Especificado (exatamente 4)
Numericamente Especificado (2,4,5,6 ou 7)
0..*
0..1
1..*
4
2,4..7
PAPÉIS DA ASSOCIAÇÃO
É o nome que identifica um lado da Associação.
Também chamado de Papel Executado (ou Nomes de
Papel, Role Names);
EmpresaPessoa
Trabalha-para
(associação)
Empregado Empregador
ASSOCIAÇÃO
Diagrama de Classes
Diagrama de Instâncias (Objetos)
EmpresaTrabalha-paraEmpregado
Nome
Cargo 1..*
:EmpresaTrabalha-para:Empregado
Lucas
Analista 1..*IBM
Nome
AGREGAÇÃO
É a relação “parte-todo” ou “uma-parte-de”.
É uma forma especial de associação.
É uma relação do tipo “todo/parte” ou “possui um”
na qual uma classe representa uma coisa grande
que é composta de coisas menores.
AGREGAÇÃO
Ex: Diagrama de Classes
Placa-Mãe Processador RAM
Microcomputador
Tipo
Velocidade CapacidadeMarca
AGREGAÇÃO
Ex: Diagrama de Instâncias (Objetos)
:Placa-Mãe :CPU :RAM
:Micro
P-IV
ASUS 1.4 Ghz 128 MB
AGREGAÇÃO
Departamento
Instituto
GENERALIZAÇÃO
Generalização é o relacionamento que organiza
Classes baseado em suas similaridades e diferenças.
É a capacidade de se criar supertipos que encapsulam
a estrutura e o comportamento comum a vários
subtipos. Os procedimentos para se obter
generalização são:
Identificar similaridades de estrutura/comportamento entre
várias classes.
Criar o supertipo para encapsular a estrutura e o
comportamento comum a mais de uma classe.
Os objetos originais passam a ser subtipos do novo supertipo
criado.
ESPECIALIZAÇÃO
É a capacidade de se criar subtipos que
representam refinamentos nos quais a
estrutura e/ou comportamento do supertipo
são adicionados ou modificados.
Os procedimentos são:
Perceber que algumas classes apresentam
estrutura e/ou comportamento especializado.
Criar subtipos de acordo com a especialização.
GENERALIZAÇÃO/ESPECIALIZAÇÃO
Ex.:
Funcionário
promover()
Pessoamatrícula
nome
idade
mudarNome()
obterIdade()
Professor
contratar()
ATENÇÃO
Pode confundir em virtude da notação
Generalização = é-um
Agregação = tem-um, é-parte-de
G A
FASES DO DIAGRAMA DE CLASSE
Classes Associações Atributos Generalização e Especialização
Refinamento do modelo
Classes candidatas e rejeitadas
É representada como o símbolo de classe anexado por
uma linha tracejada;
Classe BClasse A
Nome da classe de associação
atributos
operacao
CLASSE DE ASSOCIAÇÃO
DEPENDÊNCIA
Indica a ocorrência de um relacionamento
semântico entre dois ou mais elementos do modelo
onde uma classe cliente é dependente de algum
serviço da classe fornecedora;
Não possui dependência estrutural;
Mudanças na classe fornecedora podem afetar as
classes clientes;
Classe
Cliente
Classe
Fornecedora
Dependência
NORMALIZAÇÃO
Dependente da modelagem de banco de dados;
Um estrutura de atributos não normalizada está na
zeríssima forma normal;
1ª FORMA NORMAL
Remoção de grupos repetidos;
É verifica quando em determinadas estruturas de
atributos existem dados repetidos;
Exemplo:Pedido
numero_pedido
codigo_pedido
nome_cliente
data_pedido
codigo_produto[15]
quantidade_produto[15]
descricao_produto[15]
1ª FORMA NORMAL
Aplicando a 1ª forma normal gera a classe Pedido
Item que herdará os valores repetidos da classe
Pedido;
A relação é de agregação de pedido item com
pedido;
Pedido
numero_pedido
codigo_pedido
nome_cliente
data_pedido
Pedido Item
codigo_produto[15]
quantidade_produto[15]
descricao_produto[15]
1 1..*
1ª FORMA NORMAL
Como obter a 1ª forma normal:
Verificar se há atributos repetidos na classe;
Destacar os atributos repetidos e suas respectivas
operações, criando uma nova classe com esses itens;
Estabelecer a associação de agregação regular e
multiplicidade entre as classes;