Você está na página 1de 104

Estudo de Caso

Sistema de Caixa Automtico


Curso de Especializao DEINF - UFMA
Desenvolvimento Orientado a Objetos
Prof. Geraldo Braz Junior

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

Ciclo de Vida PU

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

Obteno de Requisitos
Passos:

1. Listar potenciais requisitos


2. Entender o contexto do sistema
3. Capturar requisitos funcionais
4. Capturar requisitos no funcionais

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:
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.
1.

Requisitos e Descrio (ii)


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.
5.

Requisitos e Descrio (iii)


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.
9.

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
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)

13

Modelo de Casos de Uso

14

Caso de Uso: Consultar Saldo


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

15

Caso de Uso: Efetuar Saque


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
16

Caso de Uso: Efetuar Depsito


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.

17

Caso de Uso: Efetuar Login


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.

18

Ao final dos requisitos


Realizar uma proposta
Estimativa de custos
Definir Prioridades aos Requisitos levantados
Anlisar os Riscos Esperados

19

Concepo -> Anlise

20

Anlise
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


21

Elaborao

22

Elaborao - Requisitos

23

Requisitos
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

24

Caso de Uso: Consultar Saldo


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.

25

Caso de Uso: Consultar Saldo


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.

26

Consultar Saldo - Sequencia

27

Consultar Saldo - Atividades

28

Caso de Uso: Efetuar Saque


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.

29

Caso de Uso: Efetuar Saque


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.

30

Caso de Uso: Efetuar Saque


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.
31

Efetuar Saque - Sequencia

32

Efetuar Saque - Atividades

33

Requisitos - Elaborao
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>>)

34

Modelo de Casos de Uso

35

Requisitos - Elaborao

36

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

Concepo -> Anlise

37

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
1. MODELO DA
ANLISE

2. CLASSE DE
ANLISE

EXEMPLO
Classe de
fronteira

Classe de
controle

Classe de
entidades

39

Interface de
Saque

Realizar Saque

Cliente

Anlise - Artefatos
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
40

Uma abordagem para anlise OO

41

Modelagem Esttica

42

Identificando Classes de Anlise


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!

43

Caso de Uso Consultar Saldo (objetos)


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.

44

Caso de Uso Consultar Saldo (objetos)


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.

45

Caso de Uso Consultar Saldo (objetos)


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.

46

Caso de Uso: Efetuar Saque


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
47

Caso de Uso: Efetuar Saque


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.

48

Caso de Uso: Efetuar Saque


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.

49

Caso de Uso: Efetuar Saque


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.
50

Entidades Candidatas Identificadas


Caso de Uso Consultar Saldo

Saldo
Terminal
Saldo da conta
Login
Consulta
Quantia de dinheiro disponvel em caixa

51

Entidades Candidatas Identificadas


Caso de Uso Efetuar Saque

Caixa
Dinheiro
Quantia
Valor a debitar
Quantia de dinheiro disponvel em caixa
Valor a ser sacado
Quantia solicitada
Quantia desejada
Transao

52

Entidades Candidatas Identificadas


Caso de uso Efetuar Login

Caixa eletrnico
Cliente
Nmero da conta
Senha
Acesso
Sistema
Cadastro de Contas do
Banco

53

Opo
Menu Principal
Conta
Banco
Estado da conta
Criptografia
Operao
Estado do Caixa
eletrnico

Entidades Candidatas Identificadas


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

54

Refinar a Lista de Classes


Classes Redundantes: quando duas palavras significam a

55

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


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.

56

Classes Candidatas Eliminadas (ii)


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.

57

Classes Candidatas Eliminadas (iii)


Classes Vagas:
Acesso
Menu Principal
Criptografia
Login

Consulta
Valor a debitar
Valor a depositar

58

Lista revisada de classes


CaixaEletrnico
Cliente (diferente do ATOR dados do cliente)
Sistema
Cadastro de Contas do Banco (ATOR)
Conta

Banco
Terminal
Transao
Atualizar dicionrio de dados!
59

Identificar/Refinar Relacionamentos
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
60

Agregaes Encontradas
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

61

Agregaes Encontradas

62

Identificar Atributos

63

Identificar/Refinar Classes (MVC)


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)

64

Classes do Sistema
CaixaEletronico << entity >>
Conta << entity >>
Banco << entity >>
Terminal << boundary >>
DadosCliente << entity >>

Transacao << entity>>


FronteiraCadastroContas << boundary >>
ControladorCaixa << control >>
Atualizar Dicionrio de Dados
65

Identificar/Refinar relacionamentos
Adicionar as associaes com as novas classes do modelo

MVC, obedecendo a relao:

66

Diagrama de Classes de Anlise (sem


operaes)

67

Modelagem Dinmica

68

Modelagem Dinmica
Identifica e modela os aspectos do sistema de software que

69

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
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.

70

Atividades Modelagem Dinmica

71

Identificar Eventos do Sistema


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.

72

Caso de uso Efetuar Login (i)


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.
73

Caso de uso Efetuar Login (ii)


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.

74

Eventos Identificados
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.

75

Eventos Identificados
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.

76

Construir Diagramas de Sequncia


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

77

Diagrama de Classes de Anlise

78

Sequncia Consultar Saldo

79

Sequencia Efetuar Saque

80

Diagrama de Comunicao
Centraliza a representao dos eventos dos diagramas de

sequncia
Explicita as associaes entre as classes e facilita a
identificao das operaes

81

Comunicao Saque/Consulta

82

Identificao das Operaes


Cada evento recebido pode ser
Uma operao que a classe deve oferecer
O retorno de uma operao executada

83

Diagrama de Classes final de Anlise

84

Estados da Classe Conta

85

Elaborao ->Projeto

86

Projeto
Adquirir uma compreenso de aspectos de requisitos no

87

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

Projeto
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
88

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

Elaborao -> Implementao

97

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

Elaborao -> Teste

101

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

Você também pode gostar