Sie sind auf Seite 1von 104

Curso de Especializao DEINF - UFMA

Desenvolvimento Orientado a Objetos


Prof. Geraldo Braz Junior
Estudo de Caso
Sistema de Caixa Automtico
Referncias:
Notas de Aula Ulrich Schiel
Notas de Aula Ariadne
Receita de bolo
Utilizar os conceitos de Processo Unificado
Objetivo:
Modelar um sofware de teste (caixa automtivo)
Descobrir como aplicar UML como linguagem de modelagem
Descobrir como aplica PU junto com UML
2
Ciclo de Vida PU
3
Concepo
Concepo -> Requisitos
Obteno de Requisitos
Artefatos (produtos a serem gerados)
Requisitos
Modelo de Contexto
Modelo de Casos de Uso
Atores
Quem vai utilizar de alguma maneira o sistema
Casos de Usos
Funcionalidades Percebidas do Sistema
6
Obteno de Requisitos
Passos:
1. Listar potenciais requisitos
2. Entender o contexto do sistema
3. Capturar requisitos funcionais
4. Capturar requisitos no funcionais
7
Requisitos e Descrio (i)
O sistema de caixa automtico permite que clientes realizem
saques e verifiquem seus saldos, de acordo com as seguintes
regras de negcios:
1. Quando uma conta criada no banco, o seu saldo maior que
zero.
2. Um cliente pode possuir vrias contas no banco.
3. O cliente acessa uma conta atravs do terminal de um caixa
eletrnico do seu banco.
4. Antes de executar qualquer operao da conta, o cliente deve
fornecer o nmero da sua conta e a senha referente a mesma.
8
Requisitos e Descrio (ii)
5. Para a realizao do saque, o cliente utiliza um terminal para
solicitar um valor numrico de dinheiro.
6. O cliente pode sacar qualquer quantia do caixa, desde que a
mesma seja igual ou inferior ao saldo disponvel.
7. Vale a poltica do banco de que uma conta no aceita uma
operao de saque quando a conta est com o saldo zerado. O
dinheiro liberado no dispensador de notas do caixa e
debitado do saldo da conta.
8. Alm de possuir o dinheiro disponvel na conta, em uma
operao de saque, a quantidade de dinheiro disponvel no
caixa eletrnico deve ser maior ou igual quantia solicitada
pelo cliente.
9
Requisitos e Descrio (iii)
9. Se o saldo de uma conta zerado durante uma operao de
saque, a conta deve se tornar inativa.
10. Os clientes que vo operar o caixa eletrnico devem estar
devidamente cadastrados no banco e suas contas devem estar
ativas.
11. Cada conta tem associado um nmero e uma senha.
12. Alm disso, cada conta associada a um cliente do banco, que
possui informaes como nome, RG, CPF, etc.
10
Requisitos e Descrio (iv)
13. As informaes adicionais sobre as contas e seus clientes esto
armazenadas em um Cadastro de Contas do Banco que
interage com o Sistema de Caixa Automtico.
14. Qualquer cliente cadastrado no banco pode efetuar depsitos
em uma conta, quer a conta esteja ativa, quer ela esteja
inativa.
15. Caso a conta esteja inativa e aps o depsito seu saldo fique
maior que zero, a conte deve ser reativada.
11
Modelo de Contexto (caso de uso nivel
0)
12
Descrio
13
A1) encontrar os atores e use-cases
encontrar os atores
encontrar e descrever cada use-case
descrever o Modelo Use-Case como um todo
A2) Priorizar Use-Cases (viso arquitetural)
Modelo de Casos de Uso
14
Caso de Uso: Consultar Saldo
15
Breve Descrio: O cliente, j autenticado, escolhe a opo
Consultar Saldo e o sistema apresenta o seu saldo.
Atores: Cliente, Cadastro de Contas do Banco.
Pr-condio: A conta deve estar ativa e o cliente j deve ter
sido autenticado junto ao sistema, atravs do caso de uso
Efetuar Login.
Ps-condio: Estado da conta inalterado.
Requisitos Especiais: nenhum.
Fluxo
Caso de Uso: Efetuar Saque
16
Breve Descrio: O cliente, j autenticado, escolhe a opo
Efetuar Saque, informa a quantia desejada e, caso o saldo da
conta seja suficiente e o caixa tenha o dinheiro necessrio, a
quantia liberada.
Atores: Cliente, Cadastro de Contas do Banco
Pr-condio: O cliente deve estar logado no sistema, atravs do
caso de uso Efetuar Login. Alm disso, a conta deve estar ativa e o
valor a debitar deve ser maior que zero e no pode ser superior ao
saldo da conta nem a quantidade de dinheiro disponvel no caixa.
Ps-condio: O valor a ser sacado subtrado do saldo da conta e
do total disponvel no caixa eletrnico e a quantia solicitada
fornecida ao cliente.
Requisitos Especiais: nenhum.
Fluxo
Caso de Uso: Efetuar Depsito
17
Breve Descrio: O cliente, j autenticado, escolhe a opo
Efetuar Depsito, informa a quantia desejada e, a conta que
deseja enviar o dinheiro
Atores: Cliente, Cadastro de Contas do Banco
Pr-condio: O cliente deve estar logado no sistema, atravs
do caso de uso Efetuar Login.
Ps-condio: O valor a ser depositado adicionado ao saldo
da conta.
Requisitos Especiais: nenhum.
Caso de Uso: Efetuar Login
18
Breve Descrio: O cliente deve fornecer o nmero da conta
e senha, essa informaes devem ser autenticadas pelo
Cadastro de Contas do Banco.
Atores: Cliente, Cadastro de Contas do Banco
Pr-condio: nenhuma
Ps-condio: Aps uma autenticao bem realizada, o
usurio est apto a operar o sistema do caixa eletrnico
Requisitos Especiais: nenhum.
Ao final dos requisitos
19
Realizar uma proposta
Estimativa de custos
Definir Prioridades aos Requisitos levantados
Anlisar os Riscos Esperados
20
Concepo -> Anlise
Anlise
21
Durante a etapa de Concepo, a anlise se resume a
definio de uma:
Descrio Bsica da arquitetura de objetos
Identifica-se:
objetos de negcio (pedidos, contas, contratos,..)
objetos do mundo real (veculos, mquinas, trajetos,..)
eventos bsicos (chegada de um pedido, partida de um
transporte, ..)
Esse trabalho deve ser realizado em paralelo a definio de
casos de uso para melhor entender o dominio da aplicao
22
Elaborao
23
Elaborao - Requisitos
Requisitos
24
A3) Detalhar cada Use-Case
estruturar a descrio do use-case
formalizar a descrio do use-case (usar diagramas de atividade
ou diagramas de interao)
descrever o Modelo Use-Case como um todo
A4) Prototipar as interfaces com o usurio
projeto lgico da interface do usurio
projeto fsico da interface do usurio e prottipo
Caso de Uso: Consultar Saldo
25
Caso de Uso: Consultar Saldo
Fluxo Bsico :
1. O cliente escolhe no menu principal do terminal a opo
Consultar Saldo.
2. O sistema verifica se o login foi efetuado
3. O sistema verifica se a conta est ativa, atravs do Cadastro
de Contas do Banco.
4. O sistema obtm o saldo da conta do cliente e o imprime.
Caso de Uso: Consultar Saldo
26
Fluxo Alternativo 1:
No passo 2 do Fluxo Bsico, se o login no foi efetuado, o
sistema informa isso ao cliente.
Fluxo Alternativo 2:
No passo 3 do Fluxo Bsico, se a conta no estiver ativa, o
sistema informa isso ao cliente e avisa que a consulta no
pde ser realizada.
Consultar Saldo - Sequencia
27
Consultar Saldo - Atividades
28
Caso de Uso: Efetuar Saque
29
Caso de Uso: Efetuar Saque
Fluxo Bsico:
1. O cliente escolhe no menu principal do terminal a opo Efetuar Saque.
2. O sistema verifica se o login foi efetuado.
3. O sistema verifica se a conta est ativa, atravs do Cadastro de Contas do Banco.
4. O sistema solicita que o cliente informe a quantia desejada.
5. O cliente informa a quantia desejada.
6. O sistema verifica se o saldo da conta suficiente para realizar a transao e, em
caso afirmativo, se h dinheiro em quantidade suficiente no caixa.
7. O sistema subtrai o valor solicitado do saldo da conta do cliente e do valor
disponvel no caixa e libera a quantia solicitada, atravs do dispensador de
notas.
Caso de Uso: Efetuar Saque
30
Fluxo Alternativo 1:
No passo 2 do Fluxo Bsico, se o login no tiver sido efetuado,
o sistema informa isso ao cliente.
Fluxo Alternativo 2:
No passo 3 do Fluxo Bsico, se a conta no estiver ativa, o
sistema avisa isso ao cliente e informa que o saque no pde
ser realizado.
Caso de Uso: Efetuar Saque
31
Fluxo Alternativo 3 :
No passo 6 do Fluxo Bsico, se o valor solicitado for menor que
zero ou superior ao saldo da conta ou a quantidade de
dinheiro disponvel no caixa, o sistema informa que no
possvel realizar o saque e o porqu. Em seguida, volta ao
passo 4 do Fluxo Bsico.
Fluxo Alternativo 4 :
Aps o passo 7 do Fluxo Bsico, se o saldo da conta for menor
ou igual a zero, a conta deve ser desativada.
Fluxo Alternativo 5 :
No passo 5 do Fluxo Bsico, o cliente pode cancelar a operao.
Efetuar Saque - Sequencia
32
Efetuar Saque - Atividades
33
Requisitos - Elaborao
34
A5) Estruturar o modelo Casos de Uso
identificar funcionalidades comuns (generalizaes)
identificar funcionalidades adicionais ou opcionais
(<<extends>>)
identificar outros relacionamentos entre use-cases
(<<include>>, inverso de <<extend>>)
Modelo de Casos de Uso
35
Requisitos - Elaborao
Capturar requisitos no-funcionais
Usabilidade
requisitos de interfaces metfora, frequncia de uso, ..
documentao
Confiabilidade
tolerncia a falhas.
Performance
tempos de resposta
volumes de transaes
Requisitos fsicos
equipamentos, material, espaos, configuraes de rede,
software
36
37
Concepo -> Anlise
Anlise
Os requisitos externos so transformados em um
modelo interno preciso e completo para desenvolver
o projeto do sistema
38
MODELO USE-CASE MODELO DA ANLISE
linguagem do usurio Linguagem do desenvolvedor
Viso externa do sistema Viso interna do sistema
Estruturado por use-cases Estruturado por classes
Captura a funcionalidade do
sistema
Descreve como realizar a
funcionalidade
Usado para o contrato com o
cliente
Usado para o desenvolvedor
entender o sistema
Pode conter redundncias,
inconsistncias, etc.
Deve ser preciso e inambguo
Anlise - Artefatos
39
2. CLASSE DE
ANLISE
Classe de
fronteira
Classe de
controle
Classe de
entidades
EXEMPLO
Interface de
Saque
Realizar Saque
Cliente
1. MODELO DA
ANLISE
Anlise - Artefatos
40
3. CONCRETIZAR A REALIZAO DE UM USE-CASE
fluxo de eventos
Descrio textual do diagrama de colaborao
requisitos especiais
Descrio textual de requisitos no-funcionais
4. PACOTES DE ANLISE
Devem ter coeso e fraco acoplamento
Candidatos a subsistemas do projeto
PACOTE DE SERVIOS: um conjunto de aes coerentes,
indivisveis para uso em vrios use-cases
5. DESCRIO DA ARQUITETURA
Uma abordagem para anlise OO
41
Modelagem Esttica
42
Identificando Classes de Anlise
43
As especificaes dos casos de uso fornecem as informaes
necessrias.
Primeiro identifica-se os conceitos, dentro do domnio do
problema, que so relevantes para o sistema que se pretende
construir.
Esses conceitos se tranformam posteriormente em classes de anlise.
Em seguida pode-se fazer uma anlise textual da descrio do
problema e das especificaes dos casos de uso para complementar as
classes relevantes para o sistema
Importante: o diagrama de classes de anlise uma descrio de
coisas no domnio do problema do mundo real, no no do projeto
de software!
Caso de Uso Consultar Saldo (objetos)
44
Breve Descrio: O cliente, j autenticado, escolhe a opo
Consultar Saldo e o sistema apresenta o seu saldo.
Atores: Cliente, Cadastro de Contas do Banco.
Pr-condio: A conta deve estar ativa e o cliente j deve ter
sido autenticado junto ao sistema, atravs do caso de uso
Efetuar Login.
Ps-condio: Estado da conta inalterado.
Requisitos Especiais: nenhum.
Caso de Uso Consultar Saldo (objetos)
45
Fluxo Bsico :
1. O cliente escolhe no menu principal do terminal a opo
Consultar Saldo.
2. O sistema verifica se o login foi efetuado
3. O sistema verifica se a conta est ativa, atravs do Cadastro
de Contas do Banco.
4. O sistema obtm o saldo da conta do cliente e o imprime.
Caso de Uso Consultar Saldo (objetos)
46
Fluxo Alternativo 1:
No passo 2 do Fluxo Bsico, se o login no foi efetuado, o
sistema informa isso ao cliente.
Fluxo Alternativo 2:
No passo 3 do Fluxo Bsico, se a conta no estiver ativa, o
sistema informa isso ao cliente e avisa que a consulta no
pde ser realizada.
Caso de Uso: Efetuar Saque
47
Breve Descrio: O cliente, j autenticado, escolhe a opo
Efetuar Saque, informa a quantia desejada e, caso o saldo da
conta seja suficiente e o caixa tenha o dinheiro necessrio, a
quantia liberada.
Atores: Cliente, Cadastro de Contas do Banco
Pr-condio: O cliente deve estar logado no sistema, atravs do
caso de uso Efetuar Login. Alm disso, a conta deve estar ativa e o
valor a debitar deve ser maior que zero e no pode ser superior ao
saldo da conta nem a quantidade de dinheiro disponvel no caixa.
Ps-condio: O valor a ser sacado subtrado do saldo da conta e
do total disponvel no caixa eletrnico e a quantia solicitada
fornecida ao cliente.
Requisitos Especiais: nenhum.
Fluxo
Caso de Uso: Efetuar Saque
48
Caso de Uso: Efetuar Saque
Fluxo Bsico:
1. O cliente escolhe no menu principal do terminal a opo Efetuar Saque.
2. O sistema verifica se o login foi efetuado.
3. O sistema verifica se a conta est ativa, atravs do Cadastro de Contas do Banco.
4. O sistema solicita que o cliente informe a quantia desejada.
5. O cliente informa a quantia desejada.
6. O sistema verifica se o saldo da conta suficiente para realizar a transao e, em
caso afirmativo, se h dinheiro em quantidade suficiente no caixa.
7. O sistema subtrai o valor solicitado do saldo da conta do cliente e do valor
disponvel no caixa e libera a quantia solicitada, atravs do dispensador de
notas.
Caso de Uso: Efetuar Saque
49
Fluxo Alternativo 1:
No passo 2 do Fluxo Bsico, se o login no tiver sido efetuado,
o sistema informa isso ao cliente.
Fluxo Alternativo 2:
No passo 3 do Fluxo Bsico, se a conta no estiver ativa, o
sistema avisa isso ao cliente e informa que o saque no pde
ser realizado.
Caso de Uso: Efetuar Saque
50
Fluxo Alternativo 3 :
No passo 6 do Fluxo Bsico, se o valor solicitado for menor que
zero ou superior ao saldo da conta ou a quantidade de
dinheiro disponvel no caixa, o sistema informa que no
possvel realizar o saque e o porqu. Em seguida, volta ao
passo 4 do Fluxo Bsico.
Fluxo Alternativo 4 :
Aps o passo 7 do Fluxo Bsico, se o saldo da conta for menor
ou igual a zero, a conta deve ser desativada.
Fluxo Alternativo 5 :
No passo 5 do Fluxo Bsico, o cliente pode cancelar a operao.
Entidades Candidatas Identificadas
51
Caso de Uso Consultar Saldo
Saldo
Terminal
Saldo da conta
Login
Consulta
Quantia de dinheiro disponvel emcaixa
Entidades Candidatas Identificadas
52
Caso de Uso Efetuar Saque
Caixa
Dinheiro
Quantia
Valor a debitar
Quantia de dinheiro disponvel emcaixa
Valor a ser sacado
Quantia solicitada
Quantia desejada
Transao
Entidades Candidatas Identificadas
53
Caso de uso Efetuar Login
Caixa eletrnico
Cliente
Nmero da conta
Senha
Acesso
Sistema
Cadastro de Contas do
Banco
Opo
Menu Principal
Conta
Banco
Estado da conta
Criptografia
Operao
Estado do Caixa
eletrnico
Entidades Candidatas Identificadas
54
Caso de uso Efetuar Depsito
Valor a depositar
Valor a ser depositado
Valor depositado
Estado da conta
Quantia informada pelo cliente
Conta destino do depsito
Refinar a Lista de Classes
55
Classes Redundantes: quando duas palavras significam a
mesma coisa, escolha a palavra mais significativa.
Classes Irrelevantes: aquelas classes que no esto
diretamente relacionadas com o problema.
Atributos: alguns atributos podem ser descritos por
substantivos.
Operaes: alguns substantivos podem ser operaes.
Papis: nomes de papis so de fato nomes de processos
dinmicos ao invs de classes propriamente ditas.
Construes de Implementaes: qualquer coisa que
faa referncia a estruturas de dados, etc.
Classes Candidatas Eliminadas
56
Classes redundantes:
Valor a ser depositado, Valor depositado e Quantia informada
pelo cliente: equivalentes a Valor a depositar.
Caixa: idntica a classe Caixa eletrnico.
Valor a ser sacado, Quantia desejada, Quantia solicitada,
Quantia: equivalentes a Valor a debitar.
Saldo da conta, Saldo da conta do cliente: equivalentes a Saldo.
Operao e Opo: equivalente a Transao.
Conta destino do depsito: equivalente a Nmero da conta.
Classes Candidatas Eliminadas (ii)
57
Classes Irrelevantes:
Nmero da conta: atributo da classe Conta.
Senha: atributo da classe Conta.
Estado do caixa: termo genrico para os atributos da classe
Caixa eletrnico.
Quantidade de dinheiro disponvel no caixa: atributo da classe
Caixa eletrnico.
Estado da conta: termo genrico para os atributos da classe
Conta.
Saldo: atributo da classe Conta.
Classes Candidatas Eliminadas (iii)
58
Classes Vagas:
Acesso
Menu Principal
Criptografia
Login
Consulta
Valor a debitar
Valor a depositar
Lista revisada de classes
59
CaixaEletrnico
Cliente (diferente do ATOR dados do cliente)
Sistema
Cadastro de Contas do Banco (ATOR)
Conta
Banco
Terminal
Transao
Atualizar dicionrio de dados!
Identificar/Refinar Relacionamentos
60
As classes identificadas at o momento devem ser analisadas
com o intuito de identificar as associaes e os
relacionamentos de agregao/decomposio e de
generalizao/especializao entre elas
A classe Sistema representa o sistema como um todo e, desta
forma, todas as outras classes podem ser consideradas partes
dela
Para simplificar a representao do modelo, a classe Sistema
pode ser substituda por um pacote que contenha todas as
classes que compem o sistema
Agregaes Encontradas
61
Um Banco possui uma ou mais Contas
Um Banco contm vrios clientes (DadosCliente)
Um Banco possui vrios Caixas Eletrnico
Um Caixa Eletrnico possui um Terminal
Um cliente (DadosCliente) pode possuir vrias Contas
Em um terminal podem ser realizadas vrias transaes
Agregaes Encontradas
62
Identificar Atributos
63
Identificar/Refinar Classes (MVC)
64
Classificar as classes em (Fronteira, Controle e Entidade)
Identificar novas classes (Fronteira e Controle)
Novas Classes:
FronteiraCadastroContas (interagir com o ator Cadastro de
contas)
ControladorCaixa (controla a lgica interna do caixa
eletrnico)
Classes do Sistema
65
CaixaEletronico << entity >>
Conta << entity >>
Banco << entity >>
Terminal << boundary >>
DadosCliente << entity >>
Transacao << entity>>
FronteiraCadastroContas << boundary >>
ControladorCaixa << control >>
Atualizar Dicionrio de Dados
Identificar/Refinar relacionamentos
66
Adicionar as associaes com as novas classes do modelo
MVC, obedecendo a relao:
Diagrama de Classes de Anlise (sem
operaes)
67
Modelagem Dinmica
68
Modelagem Dinmica
69
Identifica e modela os aspectos do sistema de software que
podem mudar durante a sua execuo, devido a ocorrncia
de eventos.
Foco no comportamento que o sistema deve apresentar.
Usa os diagramas dinmicos da UML (sequncia,
colaborao, estados).
Especifica uma verso inicial das interfaces pblicas das
classes de anlise.
Sub-etapa de Anlise OO - Foco no domnio do problema!
Eventos
70
Ocorrncias dignas de nota relativas ao sistema e envolvendo
algum tipo de troca de informao.
O evento no a informao trocada e sim o fato de alguma
informao ter sido trocada.
O tipo de evento mais comum encontrado durante a anlise
a interao entre um ator e o sistema.
Outros tipos tambm so possveis.
Modelamos o comportamento do sistema atravs de eventos
e das aes executadas em resposta a eles.
Atividades Modelagem Dinmica
71
Identificar Eventos do Sistema
72
Deve ser realizada uma nova anlise textual nas especificaes
dos casos de uso, prestando-se ateno aos pontos nos quais
trocas de informao ocorrem.
Normalmente, esses pontos esto associados a verbos.
Informaes relevantes: verbos e os contextos nos quais
aparecem.
Caso de uso Efetuar Login (i)
73
Caso de Uso: Efetuar Login
Fluxo Bsico:
1. O cliente solicita a opo de Efetuar Login no sistema.
2. O sistema pede que o cliente informe o nmero da conta.
3. O cliente fornece o nmero da conta.
4. O sistema pede que o cliente informe a sua senha.
5. O cliente fornece a senha.
6. O sistema verifica se a conta vlida e se a senha est correta,
atravs do Cadastro de Contas do Banco. Em caso positivo, o
sistema atualiza o estado do caixa eletrnico com as informaes
de login.
7. O sistema exibe no terminal o menu de opes que o cliente pode
acessar.
Caso de uso Efetuar Login (ii)
74
Fluxo Alternativo 1:
No passo 6 do Fluxo Bsico, se a conta fornecida no existir ou
se a senha estiver errada, o sistema informa que alguma das
informaes fornecidas est incorreta e que no possvel
autenticar o cliente. Em seguida, volta ao passo 2 do Fluxo
Bsico.
Fluxo Alternativo 2:
Nos passos 3 e 5 do Fluxo Bsico, o cliente pode cancelar a
operao.
Eventos Identificados
75
De responsabilidade do Sistema
Verificar se a conta vlida.
Verificar se a senha est correta.
Atualizar o estado do caixa eletrnico com as informaes de
login
Verificar se o login foi efetuado.
Verificar se a conta est ativa.
Obter o saldo da conta.
Verificar se o cliente tem saldo suficiente para realizar a
transao.
Eventos Identificados
76
De responsabilidade do Sistema
Verificar se h dinheiro em quantidade suficiente no caixa.
Subtrair o valor solicitado do saldo da conta do cliente.
Desativar a conta.
Adicionar o valor depositado ao saldo da conta.
Verificar se a conta deve ser reativada.
Reativar a conta.
Construir Diagramas de Sequncia
77
Baseado nos eventos encontrados. Cada evento pode
corresponder a um ou mais fluxos no diagrama de sequncia.
Deve-se ter em mente as classes descobertas na anlise
esttica, pois a partir da interao dos seus objetos que as
funcionalidades so implementadas
Diagrama de Classes de Anlise
78
Sequncia Consultar Saldo
79
Sequencia Efetuar Saque
80
Diagrama de Comunicao
81
Centraliza a representao dos eventos dos diagramas de
sequncia
Explicita as associaes entre as classes e facilita a
identificao das operaes
Comunicao Saque/Consulta
82
Identificao das Operaes
83
Cada evento recebido pode ser
Uma operao que a classe deve oferecer
O retorno de uma operao executada
Diagrama de Classes final de Anlise
84
Estados da Classe Conta
85
Elaborao ->Projeto
86
Projeto
Adquirir uma compreenso de aspectos de requisitos no
funcionais e restries sobre linguagens de programao,
sistemas operacionais, SGBDs, aspectos de distribuio, etc.
Criar informaes suficientes para a implementao,
descrevendo subsistemas, interfaces e classes.
Estar apto a dividir a tarefa de implementao em
equipes
Determinar mais cedo as interfaces entre os subsistemas
Criar um modelo que possibilite uma implementao
que preencha as estruturas definidas sem altera-las
87
Projeto
88
MODELO DE ANLISE MODELO DE PROJETO
conceitual fsico
Genrico (c.r. projeto) especfico
3 tipos de classes Depende da implementao
Menos formal Mais formal
Mais rpido (1/5 do projeto Mais demorado (5 x anlise)
Poucos nveis Muitos nveis
Menos dinamica Mais dinmica, foco na
sequencia
No se mantm no ciclo Se mantm em todo ciclo

Projeto - Artefatos
1. Modelo de Projeto
hierarquia de subsistemas contendo classe de projeto,
projetos de use-cases e interfaces
2. Classes de Projeto
na linguagem de programao da implementao
visibilidade dos atributos (ex. publico, protegido, privado)
generalizaes e herana;
associaes e agregaes e atributos
mtodos em pseudo-cdigo
89
Projeto - Artefatos
3. Realizao dos Casos de Uso
Diagrama de classes
Diagrama de interaes (diagramas de sequncia)
Fluxo de eventos (textual)
Requisitos de implementao
90
Projeto - Artefatos
4. Subsistema de Projeto
(pacotes de anlise, componentes, produtos de software, sistemas
existentes) - SUBSISTEMAS DE SERVIO
5. Interface (separa funcionalidade de implementao)
6. Arquitetura (VISO DO PROJETO)
(1. Subsistemas, interfaces e dependncias
2. Classes chave, classes ativas
3. Realizao de use-cases centrais ao sistema
7. Modelo de Distribuio
(Diagrama de componentes)
8. Arquitetura (VISO DO MODELO DE DISTRIBUIO)
(Diagrama de Implantao)
91
Projeto - Arquitetura
A1) Identificar ns e suas configuraes
determinar os ns envolvidos e suas caracterstica
determinar os tipos de conexes entre os ns
verificar necessidades de processamentos redundantes, backups, etc.
A2) Identificar subsistemas e suas interfaces
subsistemas da aplicao
identificar middleware (SO, SGBD, software de comunicao,
pacotes GUI, distribuio, etc.)
definir dependncias entre os subsistemas
identificar as interfaces entre os subsistemas
92
Projeto - Arquitetura
A3) Identificar classes de projeto significativas
a partir das classes de anlise
classes ativas (requisitos de concorrncia, performance,
inicializao, distribuio, preveno de deadlocks)
A4) outros requisitos de projeto
(persistncia, transparncia de distribuio, segurana, recuperao
de erros, gerncia de transaes)
93
Projeto - Classe
A1) Definir uma classe de projeto
a partir de classes de fronteira : depende da linguagem
classes de entidades persistentes podem produzir tabelas relacionais
classes de controle podem gerar vrias classes de projeto (distribuio) ou
serem encapsuladas em classes de entidades
A2) Definir operaes
realizar as responsabilidades da classe
requisitos especiais (e.g. acesso ao banco de dados)
atender s necessidades das interfaces da classe
A3) Definir atributos
considerar os atributos da anlise
os tipos dos atributos so determinados pela linguagem de programao
valores de atributos usados por vrios objetos devem ser transformados em
objetos
94
Projeto - Classe
A4) Identificar associaes e agregaes
dependendo da linguagem, transform-los em relacionamentos
tentar transformar cardinalidades, papis, etc. em atributos ou em
novas classes para realizar a associao
analise a navegabilidade pelas associaes
A5) Identificar generalizaes
A6) Descrever mtodos
realizao de operaes por pseudo-cdigo, diagramas de
atividades, linguagem natural,..
A7) Descrever estados
diagrama de estados
95
Projeto - Subsistema
1. Rever as dependncias entre subsistemas
2. Rever as interfaces
3. Rever o contedo
96
97
Elaborao -> Implementao
Implementao
1. MODELO DA IMPLEMENTAO
2. COMPONENTE
3. SUBSISTEMA DE IMPLEMENTAO
4. INTERFACE
5. ARQUITETURA (viso da implementao)
6. PLANO DE INTEGRAO
98
Implementao
MODELO DA IMPLEMENTAO
uma hierarquia de subsistemas de implementao contendo
componentes e interfaces
COMPONENTE
UM PACOTE CONTENDO ELEMENTOS DO PROJETO
Diagrama de Componentes
<<executable>> (programa executvel)
<<file>> (arquivo contendo cdigo fonte ou dados)
<<library>> (biblioteca esttica ou dinmica)
<<table>> (tabela do banco de dados)
<<document>> (um documento)
99
Implementao
SUBSISTEMAS DE IMPLEMENTAO
um package em Java
um project em Visual Basic
um diretrio de C++
INTERFACES
Implementam as interfaces do projeto
ARQUITETURA (viso da implementao)
Decomposio em subsistemas, compostos de interfaces e componentes e
Componentes chave
PLANO DE INTEGRAO
Primeira verso executvel: testes localizados de integrao para
facilitar a deteco de erros:=>verso final
100
101
Elaborao -> Teste
Teste
Planejar os testes em cada iterao, tanto os testes de
integrao quanto os testes de sistema
preparar casos de teste, criar procedimentos de teste e
procedimentos executveis
Realizar os testes e analisar os resultados
102
Teste - Artefatos
Modelo de Teste
Casos de Teste
103
Ciclo de Vida PU
104