You are on page 1of 13

Roteiro

Análise Orientada a
ƒ Características da linguagem UML
ƒ Modelo de Casos de Uso

Objetos
ƒ Modelo de Classes
ƒ Diagrama de Seqüência
ƒ Diagrama de Estado
Rosângela Penteado ƒ Roteiro para elaboração do sistema em
DC – UFSCar desenvolvimento
rosangel@dc.ufscar.br ƒ Informações das próximas atividades

Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
1 2

Fase de Análise Fase de Projeto


ƒ O resultado da análise é o enunciado do problema e
o projeto será a sua resolução. ƒ A fase de projeto enfatiza a proposta de uma
solução que atenda aos requisitos da análise.
ƒ Problemas mal enunciados podem até ser
resolvidos, mas a solução não corresponderá às ƒ Análise Æ é uma investigação para tentar
expectativas. descobrir o que o cliente quer.
ƒ A qualidade do processo de análise é importante Æ ƒ Projeto consiste em propor uma solução com base
um erro de concepção resolvido na fase de análise no conhecimento adquirido na análise.
tem um custo; na fase de projeto tem um custo
maior; na fase de implementação maior ainda, e na
fase de implantação do sistema tem um custo
relativamente astronômico.
Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
3 4
Orientação a Objetos
Fase de Implementação

ƒ A utilização de técnicas sistemáticas nas fases de ƒ Não é só teoria, mas uma tecnologia de
análise e projeto faz com que o processo de eficiência e qualidade comprovadas usada em
geração de código possa ser automatizado.
inúmeros projetos e para construção de
ƒ Cabe ao programador dominar as características
diferentes tipo de sistemas.
específicas das linguagens, ferramentas,
frameworks e estruturas de dados para adaptar os ƒ Sistemas orientados a objetos são flexíveis a
requisitos indicados código ao ser gerado.
mudanças, possuem estruturas bem conhecidas
e provêm a oportunidade de criar e implementar
componentes totalmente reutilizáveis.
Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
5 6

Modelagem Orientada a Objetos Conceitos

ƒ A engenharia de software orientada a objetos é


ƒ Classe – usada para definir e criar instâncias
muito mais que utilizar mecanismos de sua linguagem específicas ou objetos
de programação, é saber utilizar da melhor forma ƒ Todo objeto está associado a uma classe
possível todas as técnicas da modelagem orientada a ƒ Exemplo: Paciente (atributos + métodos)
objetos.
ƒ Objeto – instanciação de uma classe.
ƒ A orientação a objetos requer um método que ƒ Tem comportamento que especifica o que o objeto
integre o processo de desenvolvimento e a pode fazer
linguagem de modelagem com a construção de ƒ Exemplo: paciente João, Maria,...
técnicas e ferramentas adequadas.
Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
7 8
Conceitos Conceitos

ƒ Método – implementa o comportamento de um ƒ Encapsulamento: combinação de processos e dados


objeto. É uma ação que um objeto pode executar. em uma única entidade
ƒ Mensagem – informção enviada para objetos pelo ƒ Ocultação de Informação – começou com
disparo do método. É uma função ou procedimento desenvolvimento de sistemas estruturados –
chamada a partir de um objeto para outro. somente a informação necessária deve ser usada em
um módulo
Paciente
ƒ Herança – identificação classes de objetos mais
Insira uma nova nome
instância endereco gerais.
datanasc
Inserir ()
mensagem
Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
9 10

UML – linguagem de modelagem UML

ƒ É uma linguagem de modelagem para:


BOOCH UML OMT
ƒ Visualização, especificação, construção,
ƒ
ƒVisão, cada uma ƒVoltado para teste de documentação e comunicação.
representada um por modelos baseados na ƒ Diagramas
especificação.
modelo. ƒ Casos de Uso ƒ Estados
ƒ Diagrama de Estados
ƒ Diagrama de Estados ƒ Diagrama de Atividade ƒ Classes ƒ Atividades
ƒ Diagrama de Colaboração
ƒ Casos de Uso ƒ Objetos
ƒ Diagrama de Processo
ƒ Subsistemas (Package)
ƒ Componentes
(Desenvolvimento) ƒ Seqüência
ƒ Diagrama de Interações
ƒ Diagrama de Módulos OOSE ƒ Mini-Especificação ƒ Colaboração
ƒ Implantação
(Componentes)

Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
11 12
Casos de Uso Casos de Uso (cont.)

ƒ Importantes na organização e modelagem dos com- ƒ A coleção de casos de uso deve especificar todas
portamentos de um sistema as formas existentes de uso do sistema
ƒ É a especificação de seqüências de ações que um ƒ A descrição do sistema é feita por meio de vários
sistema, subsistema ou classe pode realizar inter- casos de uso que são executados por atores (um ou
agindo com um dos agentes. mais)
ƒ Documentam os requisitos dos sistemas ƒ Atores = entidades externas ao sistema, que de
ƒ Delimitam o sistema alguma forma participam da estória do caso de uso.
ƒ Definem a funcionalidade do sistema Podem ser pessoas, coisas ou outros subsistemas
que interagem com o sistema em desenvolvimento .
ƒ Podem incluir seqüências alternativas

Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
13 14

Sistema Atual x Sistema Futuro


x Descrição Essencial Diagrama de Caso de Uso

ƒ Atual: “o funcionário procura a ficha do cliente no


fichário”
ƒ Futuro: “o funcionário clica no botão “procurar”
digitando o código do cliente no campo X3”
ƒ Essencial: “o funcionário localiza as informações
sobre o cliente”.

Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
15 16
Caso de Uso (Alto Nível) – Exemplo – Caso de Uso – EfetuarLocação

1. Um cliente solicita a locação de algumas mídias. Curso Normal


2. Após identificar-se e identificar as mídias, ele ƒ 1. O cliente infoma sua identificação.
pode levá-las para casa, ciente do prazo de ƒ 2. Cliente cadastrado.
devolução e do valor a ser pago. ƒ 3. O cliente informa as mídias que deseja locar.
ƒ 4. Enquanto existirem mídias
ƒ 4.1.Efetue a locação.
ƒ 5. Cliente é informado da data de devolução e o
valor total da locação.
ƒ 6. Encerrar caso de uso.

Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
17 18

Cursos Alternativos em
Casos de Uso Caso de Uso EfetuarLocacao (cont.)

ƒ Depois de descrever o fluxo principal do caso de Cursos Alternativos


uso, deve-se imaginar o que poderia dar errado em 2a. O cliente não possui cadastro.
cada um dos passos descritos. 2a.1 O cliente informa seus dados para cadastro.
2a.2 Cadastrar Cliente.
ƒ Uma exceção é um evento que se não for
2a.3 Encerrar caso de uso (ou Retorna ao passo 3.)
devidamente tratado impede o prosseguimento do
caso de uso.
Outra forma de realizar o caso de uso
ƒ A exceção em um processo não é necessariamente
2a. O cliente não possui cadastro.
algo que impede que o processo seja iniciado, mas
2a.1 Chamar caso de uso Cadstrar Cliente.
normalmente algo que impede que ele seja
2a.2 Encerrar caso de uso. (ou Retornar ao passo 3.)
concluído.

Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
19 20
Formas para Finalizar os Cursos
Caso de Uso: EfetuarLocacao (cont.) Alternativos de Casos de Uso
Cursos Alternativos (cont.)
ƒ Voltar para o passo seguinte ao da exceção
3a. Uma mídia está reservada para outro cliente.
3a.1 Retirar a mídia reservada da lista de locação.
(Encerrar caso de uso)
3a.2 Encerrar caso de uso. ƒ Ir para algum passo posterior (Vá para o passo n)
3b. Uma mídia está danificada. ƒ Voltar ao início do caso de uso
3b.1 O funcionário registra que a mídia está danificada.
3b.2 Existe outra mídia disponível de mesmo título.
ƒ Abandonar o caso de uso e não fazer algo mais
3b.3 Encerrar caso de uso. (Abandonar caso de uso)
Curso Alternativo 3b.2 Não existe outra mídia disponível.
3b.2.1 Retirar a mídia danificada da lista de locação.
3b.2.2 Encerrar caso de uso.

Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
21 22

Como representar que uma ação


Erros comum de caso de uso não deve ser realizada?
1. Representar como casos de uso passos individuais, ƒ Quando não for possível ou desejável realizar um
operações ou transações (passos internos ao sistema).
Exemplos com erros:
passo, o caso de uso é abortado (abandonado).
ƒ Imprimir recibo – não é um caso de uso e sim uma ƒ Não é necessário indicar isso como exceção, pois
operação (método) de impressão, um passo mais amplo idealmente pode ocorrer a qualquer momento e
no processo de Comprar Itens, por exemplo.
em qualquer passo.
ƒ o sistema registra o nome do cliente no banco de dados
2. Se o cliente possui cadastro então o funcionário registra... ƒ Cusro Normal
3. Evite: 1. Cliente informa sua identificação
ƒ verificar se o usuário está cadastrado” 2. Dados do cliente são recuperados
Prefira: ƒ Curso alternativo
ƒ Cliente cadastrado. 2. Cliente não está cadastrado
2.1. Abandonar Caso de Uso
Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
23 24
Variantes: não são exceções,mas subconjuntos de
cenários distintos dentro de um caso de uso Variantes – DevolverLocacao
5.1: Dinheiro:
Considere o Caso de uso DevolverLocacao :
5.1.1. O cliente entrega a quantia em dinheiro.
ƒ Curso Normal 5.1.2. Não há troco.
1. O cliente informa sua identificação. 5.1.3. Encerrar caso de uso.
2. Cliente entrega as mídias que deseja devolver.
5.2: Cheque:
3. Enquanto houver mídias para devolver.
5.2.1. O cliente entrega o cheque.
3.1. Realizar Devolução.
5.2.2. O gerente dá o visto no cheque.
4. Informar valor total a ser pago.
5.2.3. Encerrar caso de uso.
5. O cliente realiza o pagamento:
- Dinheiro: Ver variante 5.1. 5.3: Cartão:
- Cheque: Ver variante 5.2. 5.3.1. O cliente entrega o cartão de crédito.
5.3.2. Enviar informação sobre o cartão ao serviço de autorização,
- Cartão: Ver variante 5.3.
bem como o valor da compra e a identificação da loja.
6. Encerrar caso de uso. 5.3.3. Autorização realizada (com a assinatura do cliente)
5.3.4. Encerrar caso de uso
Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
25 26

Fluxos Alternativos de Outros


Casos de Uso Quando se usa Variantes

Caso de Uso: Comprar Mídias ƒ Quando uma mesma seqüência de passos é


1. O cliente fornece sua identificação. repetida em diferentes casos de uso.
2. O cliente entrega as mídias que deseja comprar.
ƒ Quando um caso de uso é demasiadamente
3. Enquanto houver mídias a serem compradas
3.1. Efetuar compra. complexo, e a divisão dele em variantes ajuda
4. Informar valor total da compra ao cliente. na sua compreensão.
5. O cliente realiza o pagamento:
- Dinheiro: Ver Caso de Uso “DevolverLocacao” variante 5.1
- Cheque: Ver Caso de Uso “DevolverLocacao” variante 5.2
- Cartão: Ver Caso de Uso “DevolverLocacao” variante 5.3
4. Encerrar caso de uso.

Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
27 28
Como identificar um caso de uso? Classificação de casos de uso
ƒ 1º método:
ƒ Primários
ƒ Identificar os atores relacionados a um sistema
ou organização. ƒ Processos comuns, principais. (ex: comprar
ƒ Para cada ator, identificar os processos que itens)
eles iniciam ou dos quais eles participam. ƒ Secundários
ƒ 2º método: ƒ Processos menos importantes ou raros (ex:
ƒ Identificar os eventos externos aos quais um solicitar estocagem de novo produto)
sistema deve responder ƒ Opcionais
ƒ Relacionar os eventos a atores e a casos de uso.
ƒ Processos que podem não ser considerados.

Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
29 30

Diagrama de Caso de Uso Informações que podem estar


com estereótipos Include e Extend contidas em Casos de Uso
ƒ Atores
ƒ Interessados
ƒ Pré-Condições
ƒ Pós-Condições de Sucesso
ƒ Requisitos Correlacionados
ƒ Variações Tecnológicas
ƒ Questões em Aberto

Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
31 32
Exemplo (cont.)
Exemplo Efetuar Locação
Nome do Caso de Uso: EfetuarLocacao
Atores: Cliente Requisitos Correlacionados: RF1 e RF2.
Interessados: Gerente financeiro, Setor de compras Variações tecnológicas: a identificação do cliente poderá
ser feita através de um código simples ou um cartão com
Breve Descrição: Descreve como é realizada a locação de
código de barras. A identificação das fitas também
uma mídia por um cliente.
poderá ser feita por um código ou por leitor de código de
Disparo: Cliente chega à locadora e deseja locar uma barras. Outra opção seria um leitor magnético, mas esta
mídia. opção não está sendo considerada, no momento, devido
Pré-condições: As mídias para locação estão devidamente ao custo.
cadastradas Questões em aberto:
Pós-condições: O cliente ficou de posse das mídias. O 1. Os prazos de locação variam de fita para fita?
registro da locação das mídias para o cliente foi feito.
2. Existem promoções do tipo leve 4 e pague 3?
O cliente foi informado do prazo de devolução e do
valor da locação.

Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
33 34

Gerenralização/Especialização com casos


Caso de uso: Efetuar Locação
de uso

Curso Normal:
1. O cliente fornece sua identificação.
2. Cliente cadastrado
2. O cliente informa as mídias que deseja locar.
3. Enquanto houver mídias a locar
3.1. Efetuar a locação.
5. Informar ao cliente a data de devolução e total a pagar.
6. Encerrar casos de uso.
Cursos Alternativos:
2a. O cliente não está cadastrado.
2a.1 Chamar caso de uso IncluirCliente.
2a.2 Encerrar caso de uso.

Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
35 36
Gerenralização/Especialização com Guia para Escrever Descrições de Casos
atores de Uso

1. Escreva cada conjunto na forma Sujeito-Verbo- Objeto


Direto (Preposição -Objeto Indireto)
2. Deixe bem claro quem inicia o passo.
3. Escreva passos independente da perspectiva do
observador.
4. Escreva cada passo no mesmo nível de abstração.
5. Garanta que o caso de uso tem um conjunto de passos a
ser seguido
6. Aplique o princípio da simplicidade

Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
37 38

Classes Classe – representação gráfica


ƒ Classe é uma descrição de um conjunto de objetos Nome (obrigatório)
com os mesmos atributos, relacionamentos, Forma
operações e semântica.
ƒ Classes = abstrações do domínio do problema: origem Operações (opcional)
Atributos
“Cliente”, “Banco”, “Conta” (opcionais)
ƒ Toda classe deve ter um nome que a distinga das
outras classes, que pode ser simples ou precedido mover()
pelo nome do pacote em que a classe está contida. redimensionar()
exibir()

Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
39 40
Relacionamentos entre Classes
Associação Papéis na associação

ƒ Nomes de papéis são necessários para associação entre dois


Fornecedor 1 fornece 1..n Produto objetos de mesma classe.

ƒ Relacionamento que necessita ser preservado Companhia 1 1 .. *


Empregado
+ Chefia

por algum tempo tem 0 .. *

1
ƒMultiplicidade de uma associação
ƒ0..* (0 ou mais) 1 (exatamente 1)
ƒ1..n (de 1 a n) 1..* (1 ou mais)
Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
41 42

Classe de Associação
Classe de associação

Carro
CarPlaca : String
Cliente CarDescricao : String
CliCPF : String CarSituacao : Integer = 0
CliNome : String Aluga Aluguel Alugado por CarAno : Integer
CliEndereco : String CarKm : Float
CliTelefone : String 0..1 0..* CarPrecoKm : Float
CliDivida : Float CarTaxa : Float
CarBmp : TImage
CarObservacao : TMemo

Aluguel
AluDataInicio : Date = GetDate

Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
43 44
Relacionamentos entre Classes Composição e Associação
Agregação e Composição

ƒ é parte de.
Polígono
ƒ todo-parte
agregação composição

Ponto Contorno

Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
45 46

Relacionamentos entre Classes


Herança Exemplo: agregação/herança

ƒ relacionamento entre um elemento mais geral


(superclasse ou pai) e um mais específico (subclasse
ou filho

Pessoa

Pessoa Física Pessoa Jurídica

Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB
47 48
Relacionamentos entre Classes
Dependência

ƒ Relacionamento de uso, no qual uma mudança na


especificação de um elemento (que a seta aponta)
pode alterar a especificação do elemento
dependente. (mais usado em projeto que análise).

Curso Catálogo Curso

Pós-Graduação em Computação “Lato-Sensu” - Desenvolvimento de Software para WEB


49

You might also like