Você está na página 1de 47

Unidade IV

PROJETO DE SISTEMAS ORIENTADO A OBJETOS

Prof. André Luiz


Aspectos dinâmicos de projeto

Realizando casos de uso


1. Identifique o caso de uso a realizar.
2. Identifique os cenários significativos do caso
de uso (fluxo principal e fluxos alternativos);
3. Para cada caso de uso selecionado construa:
 um diagrama de classes de implementação;
 um diagrama de sequência para o fluxo principal e para
cada fluxo alternativo da especificação de caso de uso.
Aspectos dinâmicos de projeto

4. Elabore o diagrama das classes de implementação:


 identifique as classes de negócio envolvidas no cenário;
 inclua as classes view e controle para MVC;
 identifique as classes de implementação necessárias à
realização do caso de uso como componentes, bibliotecas,
interfaces, patterns e outros definidos na arquitetura.
 Ex.: Log, Controle, Acesso a dados, DAOs etc.
Aspectos dinâmicos de projeto

5. Construa um diagrama de sequência para cada cenário


do caso de uso com todas as classes envolvidas (classes
de negócio e de implementação):
 observe as regras para elaborar diagrama sequência;
 observe que algumas classes podem não ser acionadas
pela classe de controle.
Realização de casos de uso

 Realizar casos de uso com diagramas de sequência


ajuda a manter o design simples e coeso.
Cada cenário de caso de uso incentiva o design a:
 permitir que cada funcionalidade seja testada
por meio de um caso de teste associado;
 facilitar a rastreabilidade dos requisitos e das mudanças;
 mostrar as dependências de classes
que permitem melhor controle;
 melhorar a qualidade da construção.
Exemplo realização de casos de uso

Fonte: própria
Exemplo

Realização do caso de uso “Manter cliente”.

Fonte: própria
Exemplo

Cenário: consultar cliente com sucesso.

: ClienteView : ClienteCtrl : Cliente : ClienteDAO : Log


: Usuario
Dados Consultar

consultar( )
consultar( )

consultar( )

incluir( )

Dados cliente

dados cliente

Fonte: própria
Interatividade

A visão dinâmica de arquitetura é representada pelos diagramas


de classes e de sequência de implementação. A abordagem
de design por caso de uso é vantajosa, pois:
a) permite que cada funcionalidade seja testada
por meio de um caso de teste associado.
b) facilita a rastreabilidade dos requisitos e das mudanças.
c) mostra as dependências de classes
que permitem melhor controle.
d) melhora a qualidade da construção.
e) todas as alternativas estão corretas.
Diagrama de estados

 Modela o tempo de vida de um objeto.


 Complementa a descrição de uma classe.
 Construído somente para classes que possuam estados
bem-definidos e que sejam relevantes para o negócio.
 Identifica os eventos que alteram os estados dos objetos.
Diagrama de estados – exemplo

 O carro (objeto) está disponível (estado).


 O carro (objeto) está em manutenção (estado).
 Pedido (objeto) pendente (estado).
 Pedido (objeto) fechado (estado).
Diagrama de estados – identificando estados

Identificação de estados por atributos


 Estados podem ser distinguidos pelos
valores assumidos por certos atributos.
 Exemplo: o número máximo de
estudantes para um curso é igual a 10.

Nr alunos <= 10 Nr alunos = 10

Curso Aberto Curso Encerrado

Fonte: própria
Diagrama de estados – identificando estados

Identificação de estados por relacionamento


Exemplo – a instância da classe professor pode ter dois estados:
 atuando – quando o professor está ministrando um curso;
 licenciado – quando não esta ministrando nenhum curso.

1 0..*
Professor Curso

Atuando Licenciado

Fonte: própria
Diagrama de estados – estado inicial

 É o estado atribuído a um objeto quando ele é criado.


 É obrigatório.
 Somente um estado inicial é permitido.

Atuando

Fonte: própria
Diagrama de estados – estado final

 É o estado que indica o fim do ciclo de vida de um objeto.


 É opcional.
 Podem existir mais de um estado final.

Licenciado

Fonte: própria
Diagrama de estados – transição

 É a mudança do estado atual para o estado


subsequente como resultado de algum estímulo.
 Uma transição pode ocorrer em resposta a um evento.
 Um evento é uma ocorrência que acontece em algum
ponto no tempo e que pode modificar o estado de um
objeto, podendo gerar uma resposta.

Registro fechado
Curso Aberto Curso Fechado

Adicionar
Aluno
Fonte: própria
Diagrama de estados – condição de guarda

 A condição de guarda é uma expressão booleana que


permite que a transição ocorra somente se a condição
assumida pela expressão for verdadeira.

Registro fechado
[número alunos >= 5]
Curso Aberto Curso Fechado

Adicionar
Aluno

Fonte: própria
Diagrama de estados – ação

 É uma operação que está associada a uma


transição, ocorrendo instantaneamente e que
não pode ser interrompida.
 O nome de uma ação é mostrado na seta indicativa
da transição, precedida por um barra inclinada (/).

Matrícula aberta /
Atribuição inicialize alunos = zero
Curso Aberto
de Curso

Fonte: própria
Diagrama de estados – construção

1. Defina o contexto e restrinja seu foco


a um comportamento único do sistema.
2. Estabeleça os estados iniciais e finais
e identifique as pré e pós-condições.
3. Defina os eventos que o objeto poderá responder.
4. Distribua os estados de nível superior, identificando
os eventos de transição e as ações.
Diagrama de estados – construção

5. Identifique ações de entrada e saída dos estados.


6. Faça o acompanhamento da máquina de estados
manualmente ou por ferramenta para verificar a
sequência de eventos.
7. Verifique mais uma vez.
Diagrama de estados – exemplo

Incrementa Incrementa
hora minuto

Botão Botão
Display modo Ajuste Hora modo Ajuste Minuto

Mostra hora atual Mostra horas Mostra Minuto

Botão
modo

Fonte: própria
Interatividade

Qual o principal objetivo do diagrama de estados?


a) Representa a arquitetura física do sistema.
b) Descreve a lógica de implementação de um método.
c) Modela os objetos envolvidos no sistema.
d) Modela o tempo de vida de um objeto.
e) Modela a interação entre os objetos.
Diagrama de pacotes e comunicação

Diagrama de comunicação:
 mostra como os objetos se relacionam
e trocam mensagens entre si.
Diagrama de pacotes:
 mostra como as classe são divididas em módulos.
Diagrama de comunicação

 A característica marcante do diagrama de comunicação


é a forte semelhança com o diagrama de sequência.
 As informações modeladas em ambos são, no geral,
as mesmas. Todavia, a representação em cada um
dos modelos possui ênfases diferentes.
 O diagrama de comunicação representa as interações de dois
objetos e suas partes, utilizando para isso uma sequência de
mensagens representadas de forma livre de formatação.
Diagrama de comunicação

 Enquanto o diagrama de sequência dá ênfase à troca


de mensagens em uma linha de tempo, o diagrama de
comunicação dá ênfase a como os objetos estão interligados
e quais mensagens são trocadas entre eles para realizar
uma determinada tarefa.
 As mensagens possuem uma numeração – é como se
elas fossem etiquetadas com uma numeração em ordem
crescente, que é a sequência em que as mensagens são
trocadas entre os objetos.
 O diagrama de sequência obedece
a uma ordem natural de leitura.
Diagrama de comunicação – exemplo

Fonte: livro-texto
Diagrama de sequência – comparativo

Fonte: livro-texto
Diagrama de pacotes

 Organiza os elementos da modelagem em conjuntos


maiores que possam ser manipulados como grupos.
 Agrupa elementos que estão próximos semanticamente
e que tendem a se modificar em conjunto.
 Permite definir a visibilidade dos elementos do pacote.
Diagrama de pacotes

Elementos que pode conter:


 classes, interfaces, componentes, nós e outros pacotes.
Relacionamentos permitidos:
 dependências e generalização.
Diagrama de pacotes

 Pode ser utilizado para mostrar


agrupamentos lógicos de alto nível.
 Visibilidade:
 público;
 privado;
 protegido.

Pagamento
Pedido
+ CartaoDebito
+ Pedido
+ CartaoCredito
-ItemPedido
+ Boleto

Fonte: própria
Diagrama de pacotes – generalização

Pagamento

CartaoDebito CartaoCredito

Fonte: própria
Diagrama de pacotes – vários elementos

Pacote 1

Cliente : Cliente
Componente1

CartaoCredito
Pagamento

Exemplo

Fonte: própria
Interatividade

O diagrama de pacotes tem como finalidade principal:


a) definir classes.
b) agrupar arquivos do tipo XML.
c) listar os objetos do sistema.
d) agrupar os objetos logicamente relacionados.
e) nenhuma das anteriores.
Diagrama de componentes e implantação

Diagrama de componentes:
 mostra os módulos físicos que serão utilizados.
Diagrama de implantação:
 mostra as plataformas físicas e conexões
de rede que serão utilizadas.
Diagrama de componentes

 Modela os aspectos físicos de um sistema.


 Pode ser um conjunto de classes.
 Evidencia as dependências entre os componentes.
Os componentes podem ser:
 executáveis;
 bibliotecas;
 tabelas;
 classes;
 arquivos;
 documentos.
Diagrama de componentes

Tipos de componentes
 Componentes de implantação
 Forma o sistema executável.
 Ex.: bibliotecas (.dll, EJB, .class) e os executáveis (.exe).
 Componentes do produto de trabalho
 Não participam do sistema executável.
 Ex.: código-fonte, arquivos de dados.
 Componentes de execução
 Criados como consequência da execução do sistema.
 Ex.: objeto COM+, instanciado de uma DLL.
Diagrama de componentes – estereótipos

Fonte: livro-texto
Diagrama de componentes – exemplo

Fonte: livro-texto
Diagrama de componentes – exemplo

Cliente Pedido Pagamento

Produto

Fonte: própria
Diagrama de componentes – exemplo

Pagamento.jsp Pagamento.class

CartaoDebito

Pagamento CartaoCredito

Boleto

V
I
S
A
.
D
Cartao.exe L
L
Fonte: própria
Diagrama de distribuição

 Mostra a arquitetura física de hardware e software do sistema.


 A representação dos elementos é feita por meio de nós.
 Representa um servidor ou uma máquina
qualquer, em que exista processamento.
O diagrama de implantação exibe:
 computadores e dispositivos (nós);
 conexões;
 tipos de conexões;
 dependências entre os componentes;
 quais softwares são executados em cada nó.
Diagrama de distribuição

 Representa a arquitetura de processadores, dispositivos


e os componentes de software que rodam nessa arquitetura.
 Descreve a topologia final do sistema, descrevendo
as unidades de hardware e o software que é executado
em cada unidade.
 Permite focar em um nó específico e detalhar quais
os componentes lógicos são executados nesse nó.
Diagrama de distribuição – exemplo

Mainframe
Auto-
Atendimento SNA

SNA

Banco de Dados
Application
Servidor WEB Server
TCP/IP
TCP/IP

Fonte: própria
Diagrama de distribuição – exemplo

Mainframe
Auto-
Atendimento SNA
- Xenon 3.0 Ghz
- 1 GB RAM

Auto.exe

SNA

Banco de Dados
Application - W2K3
Servidor WEB Server
- Xenon 2.4 Ghz TCP/IP
TCP/IP - Unix
- Linux - Sun Solaris
- TomCat - WebSphere

Fonte: própria
Diagrama de distribuição – exemplo

Pedido
Pagamento

Application
Servidor WEB Server
- Xenon 2.4 Ghz TCP/IP
TCP/IP - Unix Banco de Dados
- Linux - Sun Solaris - W2K3
- TomCat - WebSphere

Fonte: própria
Interatividade

Qual é o principal objetivo de um diagrama de distribuição?


a) Descreve todos os componentes do sistema.
b) Representa a arquitetura de processadores,
dispositivos e os componentes de software.
c) Mostra a estrutura de construção do sistema.
d) Mostra cada componente utilizado.
e) Nenhuma das alternativas anteriores.
ATÉ A PRÓXIMA!