Buscar

Aula 6 - (2012)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 65 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 65 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 65 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

16/03/2012
1
2
16/03/2012
2
3
Estrutural
(dados)
Comportamental
(estados e eventos)
Arquitetural (operações)
[FOWLER96]
Visões para
um problema
(aspectos fundamentais
do software)
4
16/03/2012
3
5
� Projeto Estruturado (de Tom DeMarco):
◦ primeira metodologia a ser amplamente aceita 
pela comunidade de Engenharia de Software
◦ surgiu como evolução natural do sucesso das 
linguagens de programação estruturadas
◦ surgiu a partir da necessidade de notações 
específicas para representar a arquitetura de um 
sistema estruturado
� Cenário anterior: somente fluxogramas
6
� Análise Estruturada
◦ Douglas T. Ross (1978) e Tom DeMarco (1979)
� Criaram a notação básica para facilitar a especificação e 
permitir o diálogo com usuário
◦ Nos anos seguintes, variações surgiram por 
diferentes autores
� Gane e Sarson (1982) e Page-Jones (19980)
◦ Na metade da década de 1980, surgiram 
extensões para tempo real 
16/03/2012
4
7
� Privilegia a observação dos aspectos 
funcionais para a modelagem do software
� Durante muito tempo (auge da Programação 
Estruturada)
◦ Foram as mais conhecidas, utilizadas e criticadas
8
16/03/2012
5
9
Dicionário
de Dados
DiagramaDiagramaDiagramaDiagrama
EntidadeEntidadeEntidadeEntidade----
RelacionamentoRelacionamentoRelacionamentoRelacionamento
Diagrama deDiagrama deDiagrama deDiagrama de
Fluxo deFluxo deFluxo deFluxo de
DadosDadosDadosDados
Diagrama deDiagrama deDiagrama deDiagrama de
Transição deTransição deTransição deTransição de
EstadosEstadosEstadosEstados
Especificação de controleEspecificação de controleEspecificação de controleEspecificação de controle
10
� De maneira simplificada, o processo de 
Análise Estruturada pode ser descrito como 
sendo a aplicação dos modelos abaixo:
◦ Entidade Relacionamento
� Mostra as relações entre os dados
◦ Fluxo de Dados
� Fornece a indicação de como os dados são transformados 
à medida que se movem pelo sistema
� Mostra as funções (e sua decomposição)
◦ Transição de Estados
� Indica como o sistema se comporta em conseqüência de 
eventos externos
16/03/2012
6
11
12
� A definição do escopo pode ser obtida a partir de
◦ Um documento de trabalho que define o sistema
� A definição do escopo deve ser “processada” para 
extrair os: 
◦ domínios de dados
◦ funções 
◦ comportamento esperados
16/03/2012
7
13
� Uma descrição simples do sistema a ser 
construído
◦ Indica quais os dados de entrada e saída e a 
funcionalidade básica esperada
◦ Indica o processamento condicional (em um alto 
nível de abstração)
◦ Indica restrições e limitações do sistema
14
� Análise Gramatical
◦ Definir “objetos” destacando todos os substantivos na 
definição escrita para o escopo do sistema
� Produtores e consumidores de dados
� Locais onde os dados são armazenados
� Itens de dados compostos
◦ Definir “operações” sublinhando todos os verbos ativos
� Processos relevantes para a aplicação
� Transformações de dados
◦ Considere outros “serviços” que podem ser requeridos 
pelos objetos e não estão apresentados explicitamente na 
definição
16/03/2012
8
15
16
� Examina os objetos de dados de maneira 
independente do seu processamento
� Atenção especial ao domínio dos dados
� Indica qual a relação entre objetos de dados
16/03/2012
9
17
18
� Todo sistema baseado em computador é a 
transformação automatizada de informação
SistemaSistema
Baseado emBaseado em
ComputadorComputadorinputinput outputoutput
16/03/2012
10
19
� Yourdon
Entidade Externa
Processo
Fluxo de Dados
Depósito de Dados
20
� Gane-Sarson
Processo
Entidade externa
Fluxo de dados
Depósito de
dados
16/03/2012
11
21
� Produtor ou consumidor de dados
◦ Exemplos: pessoa, sensor
◦ Outro exemplo: sistema de computação existente
� Princípio: Dados surgem em algum lugar e 
devem ser enviados para algum 
processamento
22
� Transformador de dados (de entrada em 
saída)
� Exemplos: 
◦ cálculo de imposto, determinar a área de figura, 
formatar um relatório, exibir um gráfico
� Princípio: Os dados sempre devem ser 
processados de alguma maneira para atender 
uma função do sistema
16/03/2012
12
23
� Os dados fluem pelo sistema, desde a 
entrada até a saída
� Todos os fluxos devem ser descritos, isto é, 
rotulados com a informação transmitida
24
� Dados são armazenados para uso posterior 
(em outro processo)
16/03/2012
13
25
� Todos os ícones devem ser rotulados com significado 
claro
� O DFD deve ser fornecido em múltiplos níveis de 
detalhe
◦ Deve-se começar com o Diagrama de Contexto (nível 0) que 
apresenta o sistema sendo desenvolvido como um único 
processo
◦ Todas as entidades externas devem estar presentes no nível 
zero
◦ O processo deve ser refinado (“explodido”) em novos 
processos que, por sua vez, podem ser refinados novamente
� Sempre inclua rótulos nas setas que indicam fluxo de 
dados
26
� Revise DER para identificar objetos de dados 
que irão atuar como produtores ou 
consumidores de dados
� Identifique a principal “operação” do sistema 
através da Análise Gramatical
� Crie um DFD de nível 0
16/03/2012
14
27
� Escreva uma narrativa que descreva a 
transformação realizada por um processo
� Faça a análise gramatical novamente para 
identificar as sub-funções do sistema
� Faça o “balanceamento” do fluxo de dados para 
garantir 
◦ todas as entradas e saídas presentes no nível superior 
estejam presentes no nível inferior
� Construa um processo de nível 1
� Use aproximadamente a razão 1:5 para a explosão 
de processos
28
mapeamentomapeamento
Modelo de análiseModelo de análise
Modelo de projetoModelo de projeto
16/03/2012
15
29
Processar
pedidos
LIVROS
CLIENTES
Situação
de crédito
CLIENTECLIENTE
Pedidos
Faturas
Distribuidora de livros
(DFD Nível 0)
Livros
Dados dos
livros
30
Verificar
validade do
pedido
CLIENTECLIENTE
PEDIDOS PENDENTES
LIVROS EDITORAS
CLIENTES
Situação
de crédito
Pedidos
Preparar
pedido para
editora
EDITORAEDITORA
Endereço
Pedidos agrupados
Pedidos
válidos
Ordens
de
compra
dados dos
livros
Entregar
livroslivros
fatura
livros
pedidos
Pedidos agrupados
16/03/2012
16
31
32
Mundo
externo
Aplicação
eventos comportamento
16/03/2012
17
33
� Definições
◦ EstadoEstadoEstadoEstado - conjunto de circunstâncias observáveis que
caracterizam o comportamento do sistema em um 
momento específico
◦ Transição Transição Transição Transição de Estadosde Estadosde Estadosde Estados - a movimentação de um estado 
para outro
◦ EventoEventoEventoEvento - ocorrência que faz com que o sistema 
apresente algum comportamento previsível
◦ AçãoAçãoAçãoAção - processo que ocorre como conseqüência do 
disparo de uma transição
34
� Faça uma lista dos diferentes estados de um 
sistema
◦ Responder a pergunta: como o sistema deve se comportar?
� Indique como o sistema realiza uma transição de 
um estado para outro
◦ Pergunta: como ocorre mudanças de estado no sistema?
◦ Indique o evento
◦ Indique a ação (opcional)
� Desenhe um diagrama de transição de estados
16/03/2012
18
35
Estado
Novo
Estado
Evento que causa transição
Ação que ocorre
36
16/03/2012
19
37
� Gramática “quase-formal” para descrição 
dos itens de dados
� É um repositório que também pode conter 
informações sobre “quem-usa” e “como-
usa”
� Pode ser representada manualmente, mas é 
melhor se apoiada por ferramenta CASE
38
Name: 
Aliases: 
Where used: 
How used: 
Description:Format:
the primary name of the data item 
other names for the data item 
data transforms that use the data item 
the role of the data item (input, output, 
temporary storage, etc). 
a notation for representing content (presented 
on next slide) 
specific information about data types, pre-set 
values (if known) 
16/03/2012
20
39
Notation
= 
+ 
[ ] 
{ } 
( ... ) 
* ... text ...* 
n
Meaning
is composed of 
and 
or 
n repetitions of 
optional data 
delimits a comment
40
telephone number
integrated 
office 
phone 
system
Name: 
 
Aliases: 
 
Where/How 
used: 
 
 
Description: 
 
 
 
 
Format:
telephone number 
 
phone number, number 
 
read-phone-number (input) 
display-phone-number (output) 
analyze-long-distance-calls (input) 
 
telephone no. = [ local extension | outside no. | 0 ] 
outside no. = 9 + [ service code | domestic no. ] 
service code = [ 211 | 411 | 611 | 911 ] 
domestic no. = ( ( 0 ) + area code ) + local number 
area code = *three numeral designator*
Build the requirements dictionary:
alphanumeric data
system output
16/03/2012
21
41
� Desenvolvimento de Sistemas Estruturados 
pelos Dados (Warnier/Orr)
� Jackson System Development (Michael 
Jackson)
� Structured Analysis and Design Technique 
(Douglas Ross)
42
[http://www.cs.toronto.edu/~jm/2507S/Notes04/SADT.pdf]
16/03/2012
22
43
� Diversas metodologias e métodos surgiram 
para apoiar OO
◦ Evolução a partir de linguagens C++ e SmallTalk
◦ Anos 80-90: diversidade de autores
◦ Anos 98-2000: unificação em torno de UML
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 44
16/03/2012
23
� Exemplos de Notações
◦ Classes
45
Booch
Schlaer-Mellor
OMTCoad-Yourdon
� A diversidade de notações para representar 
sistemas orientados a objetos nas décadas de 
1980 e 1990 criou o caos para
◦ Desenvolvedores e Empresas de Software
◦ Fabricantes de Ferramentas
◦ Treinamentos
� Cenário ideal para unificação em torno de 
uma única notação
46
16/03/2012
24
� Grady Booch
◦ Um dos pioneiros da OO
◦ 1980: ênfase em técnicas de projeto para Ada
◦ 1992-1994: livros
� Object-Oriented Design with Applications
� projeto de programas em C++ e Ada
47
� 1994: Object-Oriented
Analysis and Design with
Applications
� texto sobre conceitos de OO e 
modelagem de objetos
� projeto de várias aplicações-
exemplo com diferentes 
linguagens da época
� base de UML para o Design
◦ 1998: Fundação da 
Rational
48
16/03/2012
25
� Ivar Jacobson
◦ Modelagem OO baseado em 
Casos de Uso
◦ Objectory
� Processo centrado em casos 
de uso que fornece a base 
teórica usada atualmente no 
Unified Process
49
� James Rumbaugh
◦ Object Modeling Technique (OMT)
◦ Desenvolvida na GE
◦ Metodologia baseada em notações
pré-existentes (ER, DTE, DFD)
◦ Clara distinção entre as três visões do problema
◦ Base da UML para Análise
50
16/03/2012
26
� James Rumbaugh (cont.)
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 51
© Carla A. Lima Reis e Rodrigo Quites Reis 
(LABES-UFPA) / 2009 52
Booch
Rumbaugh
OMT
Jacobson
OOSE
U
M
L
16/03/2012
27
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 53
Metodologia Booch OMT
Unified Method 0.8OOPSLA ´95 Unified Method 0.8OOPSLA ´95
OOSEOutras metodologias
UML 0.9Web - June ´96
OOSEOutras metodologias
UML 0.9Web - June ´96 UML 0.9Web - June ´96 UML 0.9Web - June ´96
Período de
Feedback
público
Período de
Feedback
público
Submissão final ao OMG, Set ‘97
1a submissão ao OMG, Jan ´97
UML 1.1
Aceitação como padrão OMG, Nov 1997
Submissão final ao OMG, Set ‘97
1a submissão ao OMG, Jan ´97
UML 1.1
Aceitação como padrão OMG, Nov 1997
UML 1.4UML 1.4UML 1.4
UML 1.0Parceiros UML UML 1.0UML 1.0Parceiros UML
UML 2.1
OMG: Object Management Group
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 54
Meyer
Before and after 
conditions
Meyer
Before and after 
conditions
Meyer
Before and after 
conditions
Harel
Statecharts
Harel
Statecharts
Harel
Statecharts
Gamma, et al
Frameworks and patterns,
Gamma, et al
Frameworks and patterns,
Gamma, et al
Frameworks and patterns,
HP Fusion
Operation descriptions and 
message numbering
HP Fusion
Operation descriptions and 
message numbering
HP Fusion
Operation descriptions and 
message numbering
Embley
Singleton classes and
high-level view
Embley
Singleton classes and
high-level view
Embley
Singleton classes and
high-level view
Wirfs-Brock
Responsibilities
Wirfs-Brock
Responsibilities
Wirfs-Brock
Responsibilities
Odell
Classification
Odell
Classification
Odell
Classification
Shlaer - Mellor
Object lifecycles
Shlaer - Mellor
Object lifecycles
Shlaer - Mellor
Object lifecycles
Rumbaugh
OMT
Rumbaugh
OMT
Booch
Booch method
Booch
Booch method
Jacobson
OOSE
Jacobson
OOSE
16/03/2012
28
� O que é UML
◦ Linguagem visual para especificação (modelagem) 
de sistemas orientados a objetos
� Fornece representação gráfica para os elementos 
essenciais do paradigma de objetos
� Classes, atributos, objetos, troca de mensagens, ...
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 55
Pessoa Comitê
Membro-de
Presidente-de
{subconjunto}
0..*
0..*
0..*
Telefone Celular
Usuário
Uso
programado
� O que é UML
◦ De propósito geral
� Não está presa a uma etapa do desenvolvimento de 
software
� Análise
� Projeto
� Implementação
� Testes
� Não está presa a um processo
� Ciclo de vida em cascata
� Incremental
� Processo Unificado
� ...
� Não está presa a uma linguagem de programação
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 56
16/03/2012
29
� UML apóia o desenvolvimento incremental
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 57
Usuário Serviço
habilita
data
**
Serviço
habilita
data
**
Serviço
Nome
Preço
Usuário
Nome
CPF
Serviço
habilita
data
**
Serviço
Nome
Preço
Usuário
Nome
CPF
suspende(período)
Modelos podem evoluir com a inclusão
de novos detalhes
Analogia: aula com transparências
sobrepostas
� O que é UML
◦ De propósito geral
� Não está presa a uma linguagem de programação
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 58
Serviço
habilita
data
**
Serviço
Nome
Preço
Usuário
Nome
CPF
suspende(período)
public class Usuario {
private String nome;
private String cpf;
private Vector lnkServico;
}
ProgramadorProgramadorProgramadorProgramador
JavaJavaJavaJava
Possível
implementação
16/03/2012
30
� O que é UML
◦ Padrão OMG
� Em http://www.omg.org estão disponíveis documentos 
eletrônicos que contém
� Sumário da UML
� Semântica
� Guia da Notação
� Extensões da Linguagem
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 59
� O que é UML
◦ Privilegia a descrição de um sistema segundo três 
perspectivas:
� Dados (estrutural)Dados (estrutural)Dados (estrutural)Dados (estrutural)
� Diagrama de Classes
� Operações (funcional)Operações (funcional)Operações (funcional)Operações (funcional)
� Diagrama de Caso de Uso
� Eventos (temporal/dinâmica)Eventos (temporal/dinâmica)Eventos (temporal/dinâmica)Eventos (temporal/dinâmica)
� Diagramas de Seqüência, Atividades, de Transição de 
Estados
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 60
16/03/2012
31
� O Processo de Análise
© Carla A. Lima Reise Rodrigo 
Quites Reis (LABES-UFPA) / 2009 61
Funções
DadosProblema Análise
Eventos
Sistema
(conceitual)
(entrevistas,
leituras especializadas,
brainstorming, etc.)
� O Processo de Projeto
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 62
Funções
Dados Projeto
Eventos
Sistema
(conceitual)
(resultado da análise)
•Mapeamento
•Requisitos Arquiteturais
•Requisitos da plataforma
•Aspectos de deploy
Funções
Dados
Eventos
Outros Aspectos
16/03/2012
32
� Grande variedade de ferramentas com 
diferentes recursos
◦ IBM/Rational
� Rational Rose
� Rational Software Architect / Software Modeler
◦ Gentleware Poseidon
◦ Visual Paradigm
◦ Enterprise Architect
◦ Jude Professional
◦ Software Livre
� Argo UML (Java) - http://argouml.tigris.org
� Fujaba (Java) - http://www.fujaba.de
� JUDE Community - http://jude.change-vision.com
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 63
� Alguns critérios para avaliação
◦ Aspectos comerciais: preço, disponibilidade
◦ Suporte técnico
◦ Performance
◦ Usabilidade
◦ Exigências de Hardware
◦ Suíte (cobre todo o processo) ou Isolada
◦ Plataforma de Execução
◦ Integração com ferramentas de desenvolvimento existentes 
(IDEs, Gerência de Requisitos, etc)
◦ Geração de Código e Esquema de BD (e importação) �
conhecido em inglês como round-trip engineering
◦ ...
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 64
16/03/2012
33
� Observações:
◦ Algumas ferramentas assumem “liberalidades 
artísticas” para representar os diagramas de 
maneira diferente do previsto na linguagem
◦ XMI é o padrão cada vez mais adotado usado para 
intercâmbio de modelos feitos por diferentes 
ferramentas
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 65
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 66
16/03/2012
34
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 67
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 68
16/03/2012
35
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 69
Imifarma S.A. - Programação 
Orientada a Objetos 70
16/03/2012
36
Imifarma S.A. - Programação 
Orientada a Objetos 71
� Ferramenta escolhida para o Curso
� Principais diagramas UML 2.0
◦ Casos de Uso; Classes; Estados; Atividades; 
Sequência; Pacotes; Componentes; e Implantação.
� Exporta HTML
� Geração de Código Java
Imifarma S.A. - Programação 
Orientada a Objetos 72
16/03/2012
37
Imifarma S.A. - Programação 
Orientada a Objetos 73
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 74
16/03/2012
38
� Fáceis de entender (escritos na linguagem 
do problema)
� Ajudam a unificar critérios
� Estimulam o pensamento
� Ajudam no treinamento
� Ajudam no rastreamento
© Carla A. Lima Reis e Rodrigo Quites Reis 
(LABES-UFPA) / 2009 75
Fonte: Karin Breitman, EIN 2004
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 76
16/03/2012
39
� Resumo
◦ Um caso de uso é uma forma específica de uso 
do sistema 
� Composto por uma seqüência de ações que produz um 
resultado de valor resultado de valor resultado de valor resultado de valor para algum agente externo.
◦ Mostram apenas o que o sistema fazo que o sistema fazo que o sistema fazo que o sistema faz, não como.
◦ Capturam o comportamento pretendido para um 
sistema, sem a necessidade de especificar como 
esse comportamento será implementado.
77
� Um caso de uso realiza um aspecto maior 
da funcionalidade do produto:
◦ deve gerar um ou mais benefícios para o cliente 
ou para os usuários
◦ Podem representar:
� roteiros de interação com usuário
� roteiros do manual de usuário
� casos de teste
78
16/03/2012
40
� Casos de Uso (CDU)
◦ Técnica para documentar os requisitos potenciais 
para um novo sistema ou para uma modificação 
em um software;
◦ Cada CDU provê um ou mais cenários que 
descrevem como o sistema deve interagir com 
seus usuários finais ou outros sistemas para 
atingir um objetivo de negócio;
79
� CDUs não descrevem o funcionamento interno de 
um sistema tampouco explicam como o sistema 
deve ser implementado
� Ao invés, mostram os passos que um usuário deve 
seguir para realizar uma tarefa.
� Um CDU define interações entre atores externos e 
o sistema sob consideração para se atingir um 
objetivo de negócio.
� Atores são entidades externas ao sistema. Um ator 
pode ser uma classe de usuários, um papel que 
usuários podem desempenhar, ou outro sistema.
80
16/03/2012
41
� CDUs são efetivos para descrever requisitos funcionais. 
� CDUs focalizam nas interações de um usuário com o 
sistema, ou em interações sistema a sistema.
� Contudo, não são úteis em projetos onde a 
complexidade não está associada com a interatividade, 
e sim com a funcionalidade interna
◦ P.Ex: Processamento batch, Data Wareshousing, cálculos 
complexos
� CDUs também não são adequados para descrever 
requisitos não funcionais. 
� Entretanto, o raciocínio em cima de CDUs pode ser útil 
para identificar requisitos de performance.
81
� Casos de uso servem como guia para:
◦ Criação e validação da arquitetura do 
sistema.
◦ Definição de casos e procedimentos de 
testes.
◦ Planejamento da iterações, elaboração de 
cronograma, organização do time.
◦ Criação da documentação do usuário.
82
16/03/2012
42
� Notação Gráfica
83
Caixa eletrônico
Consultar
saldo
Solicitar
extrato
Realizar
SaqueCliente Funcionário
Abastecer
dinheiro
Recolher
envelopes de
depósitos
[Furlan98]
Realizar
depósito
� Notação gráfica (em ferramenta CASE)
84
Consultar saldo
Emitir extrato
Realizar saque
Cliente
Realizar depósito
Retirar envelopes de depósito
Funcionário
Abastecer com dinheiro
16/03/2012
43
� Oferecem uma maneira intuitiva e 
sistemática para capturar os requisitos 
FUNCIONAIS
� Foco no conceito de “valor adicionado” 
(added value) ao cliente
� Podem ser utilizados para guiar o processo 
de desenvolvimento
85
� Notação - Elementos:
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 86
Ator
Ator. Elemento externo do sistema que sempre
inicia o uso ou recebe um valor do caso de uso
Caso de Uso. Serviço que o sistema fornece aos usuários.
Sistema
Caso de uso 1
Interação. Estímulos recebidos pelo sistema.
Sistema. Contexto aonde o caso de uso é utilizado
16/03/2012
44
� Conceito – CDU
◦ Normalmente associado com uma tela de entrada 
e/ou saída de dados, ou um relatório
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 87
� Conceito – Cenário
◦ Sequência única e completa de eventos
� Ator segue para atingir um objetivo
◦ Exemplo (Realizar Saque):
� Saque com sucesso
� Tentativa de saque senha incorreta
� Tentativa de saque saldo insuficiente
◦ Cada caso de uso encapsula uma coleção de 
cenários, tanto de sucesso como de falha.
88
Cliente
Realizar saque
16/03/2012
45
� Conceito - Ator
◦ Qualquer coisa que possui interface com o sistema 
a ser desenvolvido
◦ Definem um papel particular exercido por uma 
coisa ou pessoa
◦ São sempre externos ao sistema
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 89
Cliente
Exemplo de Ator:
(Sempre com aparência humanóide)
� Conceito – Ator
◦ Uma mesma pessoa pode desempenhar diferentes 
papéis em um sistema
◦ Cada papel é representado por um ator.
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 90
Funcionário Administrador
Pedro
Papéis que
pode exercer
16/03/2012
46
� Conceito – Comunicação Ator e CDU
◦ Representa quais atores estão ligadosa quais casos 
de uso
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 91
Telefone Celular
A comunicação é representada através
de um arco simples
Usuário
Fazer ligação
� Tipos de Interação
◦ Inclusão
� Um caso inclui (precisa de, é composto de) outro 
� Representada através de um arco pontilhado com o rótulo 
<<inclui>> ou <<include>> (UML 1.4+) ou <<uses>> (UML 
1.3-)
� Normalmente um CDU componente é usado em mais de um 
caso de uso
92
Telefone Celular
Usuário
Fazer ligação Identificar destinatário
<<include>>
16/03/2012
47
� Tipos de Interação
◦ Extensão
� Um caso de uso pode opcionalmenteopcionalmenteopcionalmenteopcionalmente utilizar um outro
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 93
Telefone Celular
Usuário
Receber ligação
Receber Ligação Adicional
<<extend>>
Opcional
� Extensão
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 94
Servir entrada Servir sobremesa
Servir refeição
<<extend>>
<<extend>>
16/03/2012
48
� Conceito - Herança
◦ Generalização / Especialização
� Pode ser aplicada para CDU e Ator
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 95
Super tipo
Sub tipos
Pagamento a vista Pagamento com cartão
Usuário Efetua pagamento
� Conceito – Herança
◦ Herança de Atores
96
Atendente
Realiza venda
Gerente
Cancela venda
<<extend>>
Consulta estoque
Funcionário
16/03/2012
49
� Exemplo
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 97
Busca itens
Cliente
Solicita ajuda Sistema de ajuda online
Realiza pedido
Processador de pagamentos
Tempo
Realiza pagamento de impostos
Autoridade de impostos
1o release
2o release
3o release
� Exemplo - Telefone Celular
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 98
Telefone Celular
Usuário
Rede
Celular
Fazer
ligação
Receber
ligação
Fazer uso
programado
Fazer
ligação em
conferência
Receber
ligação
adicional
<<extend>>
<<extend>>
Identificar
destinatário
<<include>>
16/03/2012
50
� Exemplo
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009 99
Cliente
Cliente
Pessoa
Física
Cliente
Pessoa
Jurídica
Sistema de Venda
com Cartão de Crédito
Varejista
Administradora
de
cartão de
crédito
Transação
Venda
Cancelamento
de venda
<<extends>>
Obs: padrão de análise
� Caso de Uso Transação
◦ Abstrato
� É usado como generalização
◦ É usado para representar serviços da organização 
que precisam ter a sua ocorrência registrada
� O registro obrigatoriamente contém
� o momento em que ocorreu a transação (data/hora)
� quem participou (cliente e vendedor)
� o quê esteve envolvido (o produto da venda)
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
10
0
16/03/2012
51
� Exemplo – Máquina de Venda de Bebidas
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
10
1
Vender bebida
Consumidor
Abrir máquina
Fechar máquina
Fornecedor
Repor Bebidas
<<include>>
<<include>>
Dono
Retirar dinheiro
<<include>>
<<include>>
� Granularidade de CDUs
◦ Um CDU deve representar uma unidade de 
funcionalidade menor possível, que uma vez 
implementada, acrescenta valor (do ponto de vista 
dos autores) ao sistema
◦ Exemplo em ATM bancário
� “Introduzir cartão” não é CDU (não tem valor 
isoladamente)
� “Realizar saque” é CDU pois tem valor para o 
correntista
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
10
2
16/03/2012
52
� Quem usa o sistema?
� Quem instala/mantém o sistema?
� Quem inicia/desliga o sistema?
� Que outros sistemas usam o sistema?
� Quem recebe informação do sistema?
� Quem provê informação ao sistema?
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
10
3
� Atores são fundamentais para a descoberta dos 
casos de uso
� Pergunte:
◦ Que funções o ator vai querer do sistema?
◦ O sistema armazena informações? Que informações atores 
irão criar, ler, atualizar ou apagar?
◦ O sistema precisa notificar o ator sobre mudanças no seu 
estado interno?
◦ Existe algum evento externo que o sistema precisa saber? 
Que ator informa o sistema desses eventos?
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
10
4
16/03/2012
53
� É preciso delimitar as fronteiras do 
sistema
◦ Se a fronteira for o círculo interno, então 
Caixa e o Sistema Bancário são atores e não 
precisarão ser implementados.
Cliente
Caixa
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
10
5
Sistema BancárioSistema de 
Caixa Automático
Qual é a 
fronteira
do sistema?
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
10
6
16/03/2012
54
� Quando?
◦ Após fazer levantamento dos principais casos de 
uso do sistema.
� Por que?
◦ Descrever detalhes dos casos de uso
◦ Descrever fluxos de eventos e outras 
propriedades
◦ Uniformizar entendimento entre clientes, 
usuários e equipe de desenvolvimento.
10
7
� Casos de uso não precisam ser 
especificados todos de uma vez
� Casos de uso devem ser 
priorizados por iteração
◦ Prioridade técnica
◦ Prioridade do usuário
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
10
8
16/03/2012
55
� Identificador
� Nome e breve descrição
� Ator(es)
� Prioridade
� Requisitos não funcionais associados
� Pré-condições
� Pós-condições
� Fluxo de eventos principal
� Fluxos secundários: alternativos e de exceção
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
10
9
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
11
0
� Deve ser única
� Não deve mudar nunca, pois 
casos de uso podem ser 
referenciados por seu 
identificador.
16/03/2012
56
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
11
1
� Dar uma idéia do propósito do caso de 
uso, do seu objetivo
� Deve ser feita ao se identificar o caso de 
uso, para evitar mal-entendidos
� 2 ou 3 linhas!
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
11
2
� Essencial para gerenciar requisitos e para 
montar iterações
� Definir prioridade de todos os casos de 
uso
� Exemplo de classificação da prioridade:
◦ Essencial
◦ Importante
◦ Desejável
16/03/2012
57
� O que deve ser verdade antes e depois da 
realização do caso de uso!
◦ Pré-condição: 
� estado em que o sistema deve estar para realizar o 
caso de uso.
◦ Pós-condição: 
� lista de possíveis estados em que o sistema pode 
estar imediatamente após o término da realização 
do caso de uso.
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
11
3
� Caso de uso “Entregar pedido”
◦ Pré-condição: Os itens do pedido devem 
existir em estoque
◦ Pós-condição: Os itens enviados devem ser 
abatidos do estoque.
� Caso de uso “Recadastramento de CPF”
◦ Pré-condição: o usuário deve possuir um CPF
◦ Pós-condição: a situação do contribuinte é 
atualizada.
© Carla A. Lima Reis e Rodrigo Quites Reis 
(LABES-UFPA) / 2009 114
16/03/2012
58
� Funcionalidade básica ou central do caso de 
uso
� Representa o caminho que é seguido na 
maioria das vezes que o caso de uso é 
executado.
� Descreve a situação mais simples do caso 
de uso, na qual o objetivo é atingido.
� Pense nos fluxos secundários depois!
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
11
5
� Caso de uso “Sacar dinheiro”
1.O cliente passa o cartão
2.O sistema solicita senha e valor do saque
3.O cliente digita os valores solicitados
4.O sistema verifica se há saldo suficiente 
5.O sistema debitada conta do cliente o valor 
do saque.
6.O dinheiro é entregue ao cliente.
© Carla A. Lima Reis e Rodrigo Quites Reis 
(LABES-UFPA) / 2009 116
16/03/2012
59
� Caso de uso “Sacar dinheiro”
� MAS...
◦ E se a senha não conferir?
◦ E se não houver saldo?
◦ E se não houver dinheiro suficiente na 
máquina?
Calma, vamos deixar esses detalhes para 
depois!
© Carla A. Lima Reis e Rodrigo Quites Reis 
(LABES-UFPA) / 2009 117
� Pré-condição: usuário não está suspenso
� 1. Usuário solicita um item do acervo
� 2. Funcionário verifica disponibilidade do 
item solicitado
� 3. Sistema informa a localização do item
� 4. Funcionário registra o empréstimo
� 5. O sistema emite um comprovante do 
empréstimo (em duas vias)
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
11
8
16/03/2012
60
� As vezes, o fluxo principal possui várias 
alternativas igualmente prováveis de 
ocorrer
� Nestes casos, pode-se usar o conceito 
de subfluxos
� Cada subfluxo representa um dos 
possíveis caminhos do fluxo principal
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
11
9
� Caso de uso “Cadastrar Produtos”
◦ Fluxo básico
1.O funcionário seleciona a opção de cadastro, 
iniciando o caso de uso.
2.O sistema solicita que o funcionário indique a 
operação que deseja efetuar: inclusão, atualização 
ou remoção de produtos.
3.De acordo com a opção fornecida pelo funcionário, 
um dos subfluxos abaixo é executado.
120
16/03/2012
61
◦ Subfluxo Incluir produto
1. O sistema solicita o nome, descrição e preço do novo produto.
2. O funcionário fornece os dados
3. O sistema gera um identificador único para o produto e o 
armazena as informações fornecidas.
◦ Subfluxo Alterar informações do produto
1. O sistema solicita o nome ou identificador do produto a ser 
alterado.
2. O funcionário fornece o identificador do produto.
3. Os sistema apresenta os dados do produto para alteração (os 
mesmos dados solicitados no subfluxo “Incluir produto”)
4. O funcionário atualiza os dados do produto e o sistema 
armazena os novos dados.
◦ Subfluxo Remover produto
...
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
12
1
� Só devem ser analisados e descritos após a 
descrição dos fluxos básicos.
◦ Para cada CDU, perguntar: “o que pode dar 
errado?”, “o que pode ser diferente?”
� Fluxos alternativos
◦ Situações especiais (desconto para um cliente)
� Fluxos de erro
◦ Situações de erro
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
12
2
16/03/2012
62
� Fluxos secundários, principalmente 
de erros, podem ser referenciados 
por diferentes casos de uso
� Evitar duplicação de informação!
12
3
12
4
� Fluxo normal ou básico (“Happy Path”)
◦ Pode conter subfluxos
� Fluxos alternativos
◦ Variações regulares
◦ Casos incomuns
� Fluxos de exceção
◦ Tratam situações de erro do fluxo básico.
16/03/2012
63
� O modelo de caso de usos está fácil de se 
entender?
� Estudando o modelo de caso de usos, você
pode ter uma idéia clara das funções do 
sistema e como elas estão relacionadas?
� Todos os requisitos foram levantados?
� O modelo de caso de usos contém algum
comportamento supérfluo?
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
12
5
� Cada caso de uso está envolvido com pelo menos
um ator?
� Algum dos caso de usos tem comportamento ou
fluxo de eventos muito similares?
� Os caso de usos têm nomes únicos, intuitivos e 
explicativos de modo que não podem ser 
confundidos em um estágio posterior?
� Os patrocinadores e usuários entendem os nomes
e descrições dos caso de uso?
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
12
6
16/03/2012
64
� Todos os atores foram identificados?
� Cada ator está envolvido com pelo menos um caso de 
uso?
� Cada ator desempenha um papel? Algum deveria ser 
fundido com outro ou ser dividido em dois?
� Existem dois ou mais atores desempenhando o mesmo
papél em relação a um caso de uso?
� Os atores têm nomes intuitivos e descritivos? Tanto os
usuários como os patrocinadores do software têm um 
entendimento comum?
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
12
7
� Está claro quem deseja executar um caso de uso?
� A finalidade de cada caso de uso está clara?
� A descrição breve dá uma idéia clara do significado
do caso de uso?
� Está claro como e quando os fluxos de eventos de 
cada caso de uso começam e terminam?
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
12
8
16/03/2012
65
� A seqüência de comunicação entre um ator e um 
caso de uso está de acordo com as expectativas do 
usuário?
� As interações e trocas de informação entre os
atores e o sistema estão claras?
� Existe algum caso de uso demasiadamente
complexo?
� Os fluxos de eventos (básicos e alternativos) estão
modelados de forma clara?
© Carla A. Lima Reis e Rodrigo 
Quites Reis (LABES-UFPA) / 2009
12
9
� Exercício
◦ Faça o diagrama de casos de uso do sistema 
escolhido
Imifarma S.A. - Programação 
Orientada a Objetos
13
0

Continue navegando