Você está na página 1de 45

ANÁLISE E PROJETO DE SOFTWARE

A IMPORTÂNCIA DA MODELAGEM

Uma organização que consiga desenvolver esse software capaz de atender às


necessidades dos clientes de forma previsível e em determinado período de tempo, dentro
do custo estimado, com utilização eficiente e eficaz de recursos, é uma organização com
um negócio viável. Portanto, a modelagem é uma parte vital das atividades que levam à
implantação e o uso de um software.

O PRODUTO DA MODELAGEM: MODELO

-Um modelo é o principal produto da atividade de modelagem.


-Um modelo é a simplificação de um contexto real.
-Modelos ajudam a compreender o sistema em desenvolvimento.
Os modelos ajudam a visualizar o sistema como ele é e/ou como deseja que seja.
Os modelos permitem especificar a estrutura ou o comportamento de um sistema.
-Modelos podem ser
Estruturais (ênfase na organização do Sistema),
Comportamentais (ênfase na dinâmica do Sistema:: funcionalidades).
-Os modelos proporcionam um guia para a construção do Sistema(reprodutível).
-Os modelos documentam as decisões tomadas.
-Construímos modelos de sistemas complexos pois é difícil compreender esses
sistemas em sua totalidade.

MODELAGEM ORIENTADA A OBJETO

O principal bloco de construção de todos os sistemas de software é o objeto ou a


classe.

*Um objeto é algo, geralmente, estruturado a partir do vocabulário do espaço do


problema ou da solução(contexto).
*Uma classe descreve um conjunto de objetos comuns.
ex: classe: carro objeto: hb20

->Todo objeto possui uma identidade/característica(==atributo): podem receber nomes ou


ser diferenciado dos demais objetos de alguma forma.
->Todo objeto possui comportamento(==método): pode ser feito algo com o objeto ou ele
poderá fazer algo com outros objetos.
->Todo objeto possui um estado: costuma haver dados a eles associados.
Ex: Carro: Atributo: Portas,pneus,...
Método: Ligar, marcar quilometragem, andar,...
Estado: Novo, desligado,quantos km rodados,...
COMPARAÇÃO DAS LINGUAGENS TRADICIONAIS COM AS LINGUAGENS
ORIENTADAS A OBJETOS (OO)

Análise Estruturada
-Diagramas de Fluxos de Dados (DFD);
-Diagramas de Entidade-Relacionamento(DER).
-Problema: processos e dados são vistos de forma independente.

Análise Orientada a Objetos


-Uniformização dos modelos (os diagramas são usados em todas as fases, mudando-se
apenas sua visão;
-Unificação da perspectiva funcional e de dados.

A OO proporciona aos desenvolvedores:


Aumento de produtividade.
Maior portabilidade.
Reutilização de código.
Facilidade de documentação.
Compreensão do Código.
Melhora na manutenção.
CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS

-É um paradigma para o desenvolvimento de aplicações. É uma estratégia que organiza o


software como uma coleção de objetos que contém tanto a estrutura dos dados quanto o
comportamento das classes.
-No desenvolvimento de um sistema OO, dados e processos são organizados e
manipulados por objetos e não por programas, portanto, não ficam engessados dentro de
programas. Com isso, os objetos construídos podem ser utilizados por diferentes sistemas.
-Para o paradigma da OO um sistema de software é uma coleção de agentes
interconectados chamados objetos.
-Cada objeto é responsável por realizar tarefas específicas.
-É por meio da interação entre objetos que uma tarefa computacional é realizada.

A OO baseia-se em conceitos da realidade – objetos, estados e estímulos – para


modelagem e construção de sistemas de software.
OBJETO
►Pode ser qualquer coisa na natureza que possua características e
comportamentos;
►Algo do mundo real com um limite bem definido e identidade que
encapsula atributos e operações, sendo uma instância de uma classe.

=valor

►Uma classe é a definição de propriedades, um objeto incorpora tais


propriedades para compor uma aplicação.
►Os objetos, instâncias de uma classe, são criados em tempo de
execução.
►A criação de um objeto é efetuada por meio da chamada ao construtor, um
método especial que toda classe instanciável possui. Esse processo é conhecido
como instanciação de classe.

Instância: quando temos uma classe e quero “transformar” ela em um objeto; gero um
objeto a partir de uma classe.
Ex: tenho a base de uma caneta, então posso gerar três canetas uma azul, uma
preta e outra vermelha.

CLASE
►Representa a abstração de um conjunto de OBJETOS do mundo
real que possuem os mesmos tipos de características e comportamento.
►É um conjunto de objetos que compartilham os mesmos atributos,
operações e relacionamentos.
Ex: CANETA
+Que coisa eu tenho?==ATRIBUTOS
Modelo; cor; ponta; carga; tampada
+Que coisa eu faço?==MÉTODOS
Escrevo; pintar; tampar; destampar
+Como estou agora?==ESTADO
50% da carga; escrevendo; destampada

INSTÂNCIA OU OBJETO

-Um objeto tem identidade, estado e comportamento.


-A estrutura e comportamento dos objetos são definidos na sua classe.
-Cada objeto de uma dada classe é chamado de instância da classe.
-Podemos ter múltiplas instâncias de uma única classe.
-Os procedimentos internos (ou rotinas) dos objetos são as operações dos mesmos.
-As operações podem manipular os atributos internos de um objeto.
-Representa cada ocorrência de um OBJETO formado a partir de uma CLASSE.
-Um objeto é a instância de uma classe.
-As operações podem ser ativadas por estímulos externos (usuário ou outro objeto) ou
internos (operações do próprio objeto).
-Operações definem o comportamento dos objetos.
-Representação de objetos (de acordo com a UML) →

ATRIBUTO
►É uma característica particular possuída por todos os OBJETOS de uma
CLASSE e assume valores específicos para cada OBJETO.
VALOR: nome = João, endereço = rua …, data de nasc. = 05/07/71, telefone = 999-9999

OPERAÇÃO
►É a implementação de um serviço que pode ser solicitado por algum objeto
da classe para modificar o comportamento.
►É o que os objetos de uma classe sabem realizar.
►Operações são processos ou serviços realizados por uma classe e
disponibilizadas para uso de outras classes em um sistema
►Uma operação é disparada a partir de um evento gerado para o sistema.
As operações, com os atributos de uma classe, executam as responsabilidades
atribuídas a uma classe.

MENSAGEM
►Representa o mecanismo de invocação de uma OPERAÇÃO;
►É utilizado para solicitar uma OPERAÇÃO.
►É a forma de conseguir executar uma OPERAÇÃO.
EVENTO
►Um evento é uma especificação de uma ocorrência significativa que tem
uma localização no tempo e no espaço.

PARÂMETRO
►Representa um ou mais ATRIBUTOS carregados dentro de uma
MENSAGEM.
ESTADO
►Um estado é uma condição ou situação na vida de um objeto durante a
qual ele satisfaz a alguma condição, realiza alguma atividade ou aguarda algum
evento.

==>QUATRO PILARES DO POO

>>ABSTRAÇÃO
►tem tudo pra ser uma caneta pode ser chamada de superclasse caneta apenas se
uma caneta clase “filha” for criada a partir dela
EEEEEEEEEEEE
o que eh importante?
ex: eu sou cliente de uma empresa
o que eh importante essa para essa empresa saber de mim?
peso? altura? idade?

>>ENCAPSULAMENTO
►Capacidade de esconder detalhes da implementação do objeto.
►Representa o ato de reunir em uma estrutura chamada CLASSE, as
características e o comportamento dos OBJETOS de uma CLASSE.
►O encapsulamento cuida para que certas características não possam ser vistas ou
modificadas externamente.
►O encapsulamento “protege” os dados que estão “dentro” dos objetos, evitando
assim que os mesmos sejam alterados erroneamente.
►Os dados só podem ser alterados pelas "funções"(também chamadas de
operações ou métodos) dos próprios objetos.

>>HERANÇA
►capacidade de um objeto ser idealizado baseado em outro objeto
Ex: eu tenho um objecto principal PAI que contêm atributos(que são as
propriedades) e métodos(que sao as funcoes)=>podem ser estendidos para um novo objeto
FILHO
Ex2: tenho uma caneta azul que sua função é escrever seu atributo é a
tampa azul=> com isso cuidado posso ter outras canetas geradas pela caneta “pai” porém
posso ter atributos diferentes(caneta preta, vermelhas,..) e funções diferentes

>>POLIMORFISMO
►Capacidade de um objeto que sejam, compatíveis se passar por outro em
determinada circunstância
►O conceito de polimorfismo está associado à Herança. O polimorfismo trabalha
com a redeclaração de métodos previamente herdados por uma classe.
►Esses métodos, embora semelhantes, diferem de alguma forma da
implementação utilizada na superclasse, sendo necessário, portanto, reimplementá-los na
subclasse.

►A classe Conta Comum possui o atributo Saldo e o


método Saque, que, simplesmente diminui o valor a ser
debitado do saldo da conta e, se este não possuir o
valor suficiente, a operação deverá ser recusada.
►A classe Conta Especial possui, além dos atributos
herdados, um atributo próprio – Limite. Esse atributo
define o valor extra que pode ser sacado além do valor
contido no saldo da conta.
►Por esse motivo, a classe Conta Especial possui uma
redefinição do método Saque, porque o algoritmo do
método Saque da classe Conta Especial não é idêntico ao
do método Saque declarado na classe Conta Comum, já
que é necessário incluir o limite da conta no teste para
determinar se o cliente pode ou não retirar o valor
solicitado.
►Note que o nome do método continua sendo o mesmo,
apenas no momento de executar o método o sistema
deverá verificar se a instância que chamou o
método pertence à classe Conta Comum ou à classe Conta Especial, executando o
método definido na classe em questão.

---------------------------------------------------------------------------------------------------------------------------
Diagrama de Classes
O que é um projeto O.O.?
Estratégia de desenvolvimento de software em que os projetistas de do sistema baseiam-se
em coisas (objetos) ao invés de operações ou funções

E por que isso?


Para melhorar ou aumentar: o nível de abstração de um problema; a produtividade; a
manutenibilidade; os testes

Vantagens de um projeto O.O.?

1. Fácil manutenção. Os objetos são independentes e aplicam o modelo stand-alone


(literalmente "ficam em pé por si só")
2. Simplicidade de modificação ou adição de serviços que não afeta outros objetos do
sistema
3.Nitidez do mapeamento com as entidades do mundo real, facilitando a compreensão
(abstração)

A UML

A UML (Unified Modeling Language) é uma linguagem padrão para modelagem orientada a
objetos.
1. A linguagem de modelagem não proprietária de terceira geração, não é um método de
desenvolvimento
2. Têm como papel auxiliar a visualizar o desenho e a comunicação entre objetos
3. Permite que desenvolvedores visualizem os produtos de seu trabalho em diagramas
padronizados
4. Usada para criar modelos de sistemas de software

O que é um diagrama de classes?


É um diagrama que apresenta como as classes interagem entre si e qual a
responsabilidade de cada classe na realização das operações solicitadas pelos atores.

Atributos- Uma parte significativa de dados que contém valores que descrevem cada
instância dessa classe
Métodos- Especificam as características comportamentais de uma classe

---------------------------------------------------------------------------------------------------------------------------
Business Model Canvas(BMC)

O que é um Modelo de Negócio?


É a forma como uma organização cria, entrega e captura valor, seja ele econômico, social ou
outro.

● O Modelo de negócios Canvas é dividido em 9 blocos que juntos descrevem as principais


partes de um negócio.

Por que utilizar o Business Model Canvas?


Porque é uma forma fácil e rápida de testar diversos modelos de negócios para uma nova
empresa ou um novo projeto.

Segmento de Cliente

Segmentos de clientes são divisões dos clientes de acordo com suas necessidades,
costumes ou outro atributo em comum, de forma que possam melhor entender, alcançar e servir
esses clientes.
Exemplo

Pessoas das classes C, D e E que precisam de crédito para comprar ou pessoas


buscando preços baixos e facilidade de pagamento.

Homens ricos e apaixonadas por carros esportivos


Proposta de Valor

A proposta de valor é como a empresa cria valor para um determinado segmento de


cliente e se diferencia da concorrência.
Exemplo

Produtos inovadores com qualidade e design diferenciado e simples de serem


usados

Lanches rápidos, saudáveis e personalizados

Canais

São a forma c o m o uma empresa comunica e entrega a sua proposta de valor para
cada segmento de cliente. Basicamente, envolve o s canais de marketing e logístico das
empresas.
Exemplo

Correios e operadores logísticos privados

Site, SEO, link patrocinado e publicidade online


Relacionamento com o Cliente

O relacionamento com o cliente é a forma como a empresa interage com um


segmento de cliente.
Motivações: Captura de clientes; Retenção de clientes; Incremento de vendas;
Fortalecimento da marca
Exemplo

Agências, agências Van Gogh, atendimento por telefone, SAC, ouvidoria,


redes sociais e internet banking

Fontes de Receita

Descreve a forma como uma empresa gera receita através de cada segmento de
cliente.
Exemplo

Venda de passagens aéreas, transporte de carga e reserva de carros e hotéis

Venda de revistas, licenciamento de produtos e venda de animações


Recursos-Chave

São o s principais recursos necessários para que uma empresa faça seu modelo de
negócios funcionar.
Exemplo

Base de usuários, equipe, servidores e plataforma

Minas, equipamentos e know- how técnico

Atividades-Chave

São as atividades essenciais para o que o modelo de negócios da empresa funcione


corretamente.
Exemplo

Elaborar programas, produzir programas, vender propaganda e buscar novos


talentos

Desenvolver novos chocolates, produzir chocolates, gestão das franquias,


distribuição e venda
Parceiros-Chave

São empresas, instituições e/ou pessoas que são importantes para o funcionamento
do modelo de negócios.
Exemplo

Fornecedores e franqueados

Facebook, appstores, comunidade dos jogos e lojas que vendem cartão


pré-pago Zynga

Estrutura de Custos

A estrutura de custos envolve os principais custos decorrentes da operação do


modelo de negócios.
Exemplo

Infraestrutura da rede, lojas, funcionários, marketing e call center

Aviões, manutenção dos aviões, combustível, marketing, funcionários, call


center e sistemas de T I
Exemplo de um BMC Completo
GROUPON

---------------------------------------------------------------------------------------------------------------------------
Elementos do Diagrama de Classes
Relacionamentos

Associação: É um relacionamento simples e estrutural entre instâncias e especificam que


objetos de uma de uma classe usam ou utilizam os serviços dos objetos de outra classe e
vice-versa. Em geral, a associação possui uma via de mão dupla.

- crio um atributo do tipo da classe

Dependência: São parecidos com a associação, mas são unilaterais. Uma classe
dependente de outra classe – métodos e atributos. A classe dependente é conhecida como
cliente. A classe que fornece métodos e atributos para a classe cliente é conhecida como
fornecedora. São relacionamentos de utilização no qual uma mudança no objeto da classe
fornecedora implica em mudanças na classe cliente.

- to passando a classe como parâmetro do método para a outra classe


Herança: Relacionamento entre um elemento mais geral e um mais específico. O elemento
mais específico herda as propriedades e métodos do elemento mais geral. A relação de
herança é também conhecida como generalização. Um objeto particular não é um caso
geral de um outro objeto.
Agregação:Tipo especial de associação que especifica um todo e suas partes, sendo que a
parte pode existir fora do todo. O objeto parte é um atributo do todo; os objetos partes
somente são criados se o todo ao qual estão agregados seja criado.

Composição: Ocorre quando um objeto secundário não consegue existir sem seu objeto
primário. Assim, há um relacionamento entre um elemento (o todo) e outros elementos (as
partes), sendo que as partes só podem pertencer ao todo e são criadas e destruídas com
ele.
Recordando... Associação

É o tipo de relacionamento mais comum e mais importante em um sistema orientado a


objetos:
• É um relacionamento ou ligação entre duas classes permitindo que objetos destas classes
possam se comunicar
• Objetivo essencial da associação é possibilitar a comunicação entre objetos de duas
classes
• A comunicação pode ser uni ou bidirecional

Complementando... Associação

Segmento de reta ligando as duas classes


• Associação unidirecional(dependência): inclui-se uma seta na extremidade de destino
• Pode-se incluir um nome na associação
• Indica a natureza ou finalidade da comunicação

Dicas(boas práticas ao criar diagramas de classes)


● O nome da classe deve ser significativo, descrevendo um aspecto real do sistema
● Os relacionamentos entre os elementos devem ser identificados antes de criar o
diagrama
● Devem ser especificados os atributos e operações de cada classe
● Sempre que necessário, acrescente anotações para ajudar a definir aspectos das
classes ou seus relacionamentos

---------------------------------------------------------------------------------------------------------------------------
Visibilidade

● Defines a acessibilidade para um atributo ou método


● a visibilidade define se atributos e operações de classes especificadas podem ser
vistos e utilizados por outras classes

Privado
- São atributos e métodos que podem ser vistos e utilizados somente pela classe que os
contém
- É dada pelo símbolo (-)

Público
- São atributos e métodos em uma classe que podem ser vistos e utilizados po outras
classes
- É dada pelo símbolo (+)
Protegida
- São atributos e métodos em uma classe que podem ser vistos e utilizados por suas classes e
subclasses(herança)
- É dada pelo símbolo (#)

Pacote
- São atributos e métodos em uma classe que podem ser vistos e utilizados pelas
classes que fazem parte do pacote
- É dada pelo símbolo(~)

---------------------------------------------------------------------------------------------------------------------------
Elementos do Diagrama de Classes
Multiplicidade

Multiplicidade: A quantidade de objetos que podem ser conectados pela associação. A


multiplicidade em uma das extremidades da associação específica para cada objeto da
classe encontrada na extremidade oposta deve haver a determinada quantidade de objetos
na extremidade próxima

Multiplicidade da Associação
Multiplicidade: especifica o número de objetos de cada classe envolvidos com a associação
Quando não há especificação, entende-se que a multiplicidade é 1

Leitura da Multiplicidade
A leitura da multiplicidade exige atenção!
• Deve-se fazer a leitura de forma distinta para os dois sentidos da associação.

Para cada um dos sentidos:


• Deve-se esquecer a multiplicidade no extremo de início
• Deve-se considerar que existe a associação de um objeto da classe de início com
vários objetos da classe de destino

Exemplo de Leitura da Multiplicidade

- Um objeto da classe Professor se associa com 1 ou mais objetos da classe


Disciplina e

- Um objeto da classe Disciplina se associa com um único objeto da classe Professor


Multiplicidade da Agregação
Apresenta a quantidade de objetos envolvidos na relação
• Um objeto pode incluir vários outros mas e pode estar contido em mais de um objeto
• Pode ser limitado por uma constante numérica

Multiplicidade da Composição

Apresenta a quantidade de objetos envolvidos na relação


• Um objeto pode incluir vários outros mas não pode estar contido em mais de um objeto
• Ou seja, a multiplicidade no lado da classe dos objetos que agregam é sempre 1

Uma NF contém um ou mais itens (e pelo menos um item)

Os itens da nota estão contidos em uma (e somente uma) NF

---------------------------------------------------------------------------------------------------------------------------
Associações Reflexivas e Associativas

● Associação Reflexiva:
- Associações reflexiva ocorre quando os objetos de uma classe se relacionam
com objetos da mesma classe

Exemplo 1

Exemplo 2

● Associação com Classe Associativa:


- Quando uma associação possui atributos próprios pode ser transformada em
classe chamada de associativa
- Normalmente surge em relações de multiplicidade muitos para muitos
- A associação não é nomeada, nomeia-se somente a classe associativa
- Classes associativas podem relacionar-se com outras classes

Exemplo 1
Imagine que um ator atue em zero ou mais filmes e um filme possui zero ou mais
atores

Agora você precisa saber qual é o papel do ator em um exato filme


Exemplo 2
Manter um boletim dos estudantes para uma disciplina

---------------------------------------------------------------------------------------------------------------------------
Navegabilidade

- Identifica o sentido em que as informações são transmitidas entre os objetos das


classes envolvidas
- É representada por uma seta em uma das extremidades
---------------------------------------------------------------------------------------------------------------------------------------
Diagrama de Pacotes

Pacotes:
● É uma construção de agrupamento que permite a você pegar qualquer construção
na UML e agrupar seus elementos em unidades de nível alto.
● Representa um grupo de classes (ou outros elementos) que se relaciona com outros
pacotes através de uma relação de dependência.
● Podem ser membros de outros pacotes, construindo uma estrutura hierárquica.
● Cada pacote representa um espaço de nomes
● Significa que toda classe deve ter um nome exclusivo dentro do pacote a que
pertence.
● Se você quiser criar uma classe Date e já existir uma classe Date dentro do pacote
System, você pode ter sua classe Date, desde que a coloque em um outro pacote.

Diagrama de Pacotes

No diagrama, pode-se:
Pacotes e Dependências:
Se você tem pacotes de apresentação e de negócio, então tem uma dependência do
pacote de apresentação para o pacote de negócio
Caso qualquer classe do pacote de apresentação dependa de qualquer classe do
pacote de negócio
Assim, as dependências entre pacotes resumem as
dependências entre seus conteúdos
Aspectos dos Pacotes:

Implementando Pacotes:
Você identificará um caso em que um pacote define uma interface que pode ser
implementada por vários outros pacotes

Quando fazer uso do Diagramas de Pacotes?


É útil em sistemas de grande porte, para ter uma visão de dependência entre os
principais elementos de um sistema

---------------------------------------------------------------------------------------------------------------------------
Diagrama de Sequência

● Faltam informações aos modelos de Classes de Análise:


- De que forma os objetos colaboram para que um determinado caso de uso
seja realizado?
- Em que ordem as mensagens são enviadas durante esta realização?
- Que informações precisam ser enviadas em uma mensagem de um objeto a
outro?

● Para responder às questões anteriores, o modelo de interações deve ser criado.


● Esse modelo representa mensagens trocadas entre objetos para a execução de
cenários dos casos de uso do sistema.
● Obter informações adicionais para completar e aprimorar outros modelos
(principalmente o modelo de classes)
- Quais os métodos de uma classe?
- Quais os objetos participantes da realização de um caso de uso?
- Para cada método, qual a sua assinatura?
- Uma classe precisa de mais atributos?
● Fornecer uma visão detalhada dos objetos e mensagens envolvidos na realização
dos casos de uso.
● Qual o objetivo da construção dos diagramas de interação?
- Identificar mensagens

O que significa uma mensagem?

● Implica na existência de uma operação no objeto receptor.


● A resposta do objeto receptor ao recebimento de uma mensagem é a execução da
operação correspondente.

Exemplos de mensagens

• Mensagem simples, sem cláusula alguma.


– 1: adicionarItem(item)
• Mensagem com cláusula de condição.
– 3 [a > b]: trocar(a, b)
• Mensagem com cláusula de iteração e com limites indefinidos.
– 2 *: desenhar( )
• Mensagem com cláusula de iteração e com limites definidos.
– 2 *[i := 1..10]: figuras[i].desenhar( )
• Mensagem aninhada com retorno armazenado na variável x.
– 1.2.1: x := selecionar(e)

● Há três tipos de diagrama de interação na UML 2.0 : diagrama de sequência,


diagrama de comunicação e diagrama de visão geral da interação.
● Os diagramas de sequência e de comunicação são equivalentes
- Diagrama de sequência: foco nas mensagens enviadas no decorrer do
tempo.
- Diagrama de comunicação: foco nas mensagens enviadas entre objetos que
estão relacionados.
● Os objetos participantes da interação são organizados na horizontal.
● Abaixo de cada objeto existe uma linha (linha de vida)
● Cada linha de vida possui o seu foco de controle.
● O foco de controle indica que o objeto está fazendo algo.
● As mensagens entre objetos são representadas com linhas horizontais rotuladas
partindo da linha de vida do objeto remetente e chegando a linha de vida do objeto
receptor.
● Elementos básicos
- Atores
- Objetos e classes
- Mensagens
- Linhas de vida e focos de controle
- Criação e destruição de objetos
- Iterações
Mensagens Reflexivas
Em uma mensagem reflexiva (ou auto-mensagem) o remetente é também o
receptor.
- Corresponde a uma mensagem para this (self).

Quadros de interação

• Elemento gráfico, que serve para modularizar a construção de diagramas de sequência


(ou de comunicação).
● Na primeira coluna deve ser colocado o ator que inicia o caso de uso.
● Na segunda coluna deve ser colocado um objeto de fronteira (boundary), usado pelo
ator para iniciar o caso de uso.
● Na terceira coluna deve ser colocado o objeto de controle (control) responsável pelo
caso de uso.
Note que:
● Objetos de entidade são acessíveis tanto por objetos de fronteira (raro) como por
objetos de controle.
● Objetos de entidade nunca acessam objetos de fronteira ou de controle.
● Objetos de entidade normalmente são compartilhados por outros diagramas de
sequência
● Nesta prática desenvolva os diagramas de sequência para para o caso de uso
abaixo:

● Use os estereótipos entity, control e boundary nos diagramas.

---------------------------------------------------------------------------------------------------------------------------
Diagrama de Comunicação

- também chamado de diagrama de colaboração


● Estruturalmente, é bastante semelhante a um diagrama de objetos.
- A diferença é que são adicionados setas e rótulos de mensagens nas
ligações entre esses objetos.

● As ligações (linhas) entre objetos correspondem a relacionamentos existentes entre


os objetos.
● Os objetos estão distribuídos em duas dimensões
- Vantagem: normalmente permite construir modelos mais legíveis
comparativamente aos diagramas de sequência.
- Desvantagem: não há como saber a ordem de envio das mensagens a não
ser pelas expressões de sequência.

● Direção de envio de mensagem é indicada por uma seta próxima ao rótulo


da mensagem.
● Durante a execução de um cenário de caso de uso, objetos podem ser criados e
outros objetos podem ser destruídos.
● A UML define etiquetas (tags) para criação e destruição de objetos no diagrama de
comunicação.
- {new}: objetos ou ligações criados durante a interação.
- {destroyed}: objetos ou ligações destruídos durante a interação.
- {transient}: objetos ou ligações destruídos e criados durante a interação.

● Verifique a consistência dos diagramas de interação em relação aos Casos de Uso e


ao modelo de classes.
- Cada cenário relevante para cada caso de uso foi considerado na
modelagem de interações.
- Durante a construção do diagrama de interação, pode-se identificar novas
classes.
- Atributos, associações e operações também surgem como subproduto da
construção dos diagramas de interação.
● O objeto de controle realiza apenas a coordenação da realização do caso de uso.
- Todas as ações do ator resultam em alguma atividade realizada por esse
objeto de controle.
- Isso pode levar ao alto acoplamento; no pior caso, o controlador tem
conhecimento de todas as classes participantes do caso de uso.
- Sempre que for adequado, segundo os princípios de coesão e de
acoplamento, as classes de domínio devem enviar mensagens entre si,
aliviando o objeto de controle.
● São construídos para os casos de uso.
● Há controvérsias sobre o momento de início da utilização desse modelo (análise vs.
projeto).
● Inicialmente (+análise), pode exibir apenas os objetos participantes e mensagens
exibindo somente o nome da operação.
● Posteriormente (+projeto), pode ser refinado.
- Criação e destruição de objetos, tipo e assinatura completa de cada
mensagem.
● A construção do Modelo de Interação fornece informações úteis para transformar o
modelo de classes de análise no modelo de classes de projeto.
● Em particular, Modelo de Interação fornece os seguintes itens para refinar o modelo
de classes de análise:
- Detalhamento de métodos
- Detalhamento de associações
- Novos métodos
- Novos atributos
- Novas classes

---------------------------------------------------------------------------------------------------------------------------

Você também pode gostar