Aa1 – Analise
Orientada a
Objetos
O que aprenderemos ?
Ferramentas | Dicas de aula | Tutorias
O que
usaremos e
como
usaremos?
Os slides terão
módulos
Ferramentas
online
Podem trazer
seus PC’s
O Colaborar é
Essencial
Classroom Trello Tldraw
Plataforma de ensino
online onde professores
podem criar e gerenciar
tarefas, materiais e
acompanhar o
desempenho dos alunos.
Ferramenta de gestão de
projetos que organiza
tarefas em quadros,
listas e cartões, ajudando
equipes a se manterem
organizadas e
colaborativas.
Aplicativo para criar
diagramas e desenhos
simples, ideal para
planejar ideias
visualmente de forma
rápida e intuitiva.
Para que
usaremos?
Melhor
organização
Exibição gráfica
das atividades
Compartilhamento
de informações
Trabalho em conjunto na
sala de aula
Estas são as principais
ferramentas deste
semestre!
Mas antes, vamos
nos conhecer!
Quais são seus objetivos acadêmicos para esse
semestre?
Você já tem experiência em alguma área relacion
ao seu curso?
Como você gosta de estudar: sozinho(a)
ou em grupo?
Se apresente! Qual seu nome?
Qual seu hobby favorito? Caso não tenha, o que
você amaria fazer?
Qual seu sonho / objetivo?
Mas para que, professor?
“Lembre-se sempre, o seu foco
determina a sua realidade.”
Yoda
Regras e
dicas
Horários: 19h00
à 21h30
Intervalo: 19h45 à
20h00 (15 min)
Sem atrasos! Se não
é FALTA
Qualquer outra informação,
vá para atendimento
Vamos Começar?
Introdução a
Analise Orientada a
Objetos
A Análise Orientada a Objetos (OOA) é um
processo de desenvolvimento de software
que usa objetos para modelar sistemas. O
objetivo é identificar os objetos, atributos e
operações que atuam sobre eles.
O que é Analise
Orientada a Objetos?
A análise orientada a objetos (OOA) é uma metodologia
importante no desenvolvimento de software
porque permite modelar sistemas de forma mais natural e
intuitiva. Isso resulta em um código mais organizado,
facilitando a manutenção e a adição de novos recursos.
A OOA utiliza o conceito de objetos que interagem entre si
e, através dessa interação, realizam tarefas
computacionais. O ponto de partida para a OOA é criar um
modelo descritivo contendo informações do projeto.
Mas e as etapas?
É um processo de planejamento que identifica e
modela os objetos do mundo real no sistema de
software
Busca simplificar o design e a implementação de
sistemas complexos
Torna os sistemas mais modulares, escaláveis e
fáceis de manter
Utiliza diagramas de casos de uso da UML para
descrever os requisitos funcionais
Utiliza diagramas de classes de sistema para
identificar atributos e operações
A OOA tem a capacidade de atender perfeitamente às diretrizes de
reutilização recomendadas pela reengenharia de sistemas
Algumas
ideias
sobre
a
AOO
Diferença
entre
abordagem
estruturada e
orientada a
objetos
A Análise Estruturada foca em
processos e fluxo de dados
Análise Orientada a Objetos
enfatiza a modelagem de
entidades e suas interações.
Introdução a Princípios
da Orientação a
Objetos
Conceitos
Fundamentais
Polimorfismo
Herança
Encapsulamento
Classe
Objeto
Abstração
Objeto – Representação de uma
entidade do mundo real dentro do
sistema, contendo atributos (dados)
e métodos (comportamentos).
Um
Objeto
CPF
Email
Data de Nascimento
Logradouro Individuo
Classe – Modelo ou molde para
criar objetos, definindo seus
atributos e métodos.
Uma
Classe
Vários
indivíduos
Uma classe é um
modelo ou estrutura
que define um
conjunto de atributos
(dados) e métodos
(ações) que os objetos
criados a partir dela
terão.
Ainda em Classes
Ela funciona como
um molde para criar
múltiplos objetos
com características
semelhantes.
public class Pessoas {
// Atributos (Características da Pessoa)
String nome;
String cpf;
int datanascimento;
// Método (Ação de busca)
void exibirDetalhes() {
System.out.println(“Nome: " + nome);
System.out.println(“CPF: " + cpf);
System.out.println("Ano: " + datanascimento);
}
}
Encapsulamento – Proteção dos
dados do objeto, restringindo o
acesso direto e permitindo
interações apenas por meio de
métodos específicos.
Um dos princípios
fundamentais da
POO e se refere à
proteção dos dados
dentro de um
objeto
Mais...
Ainda em Encapsulamento
Principais Benefícios do Encapsulamento:
✅ Proteção dos dados – Evita que valores inválidos
sejam atribuídos diretamente.
✅ Facilidade de manutenção – Permite alterar a
implementação interna sem impactar o código
externo.
✅ Modularidade – Cada classe gerencia seus
próprios dados, tornando o código mais
Herança – Permite que uma
classe herde atributos e
métodos de outra, promovendo
reutilização de código e
hierarquia entre classes.
Polimorfismo – Capacidade de
um método ter diferentes
comportamentos dependendo
do contexto ou da classe que o
implementa.
✅ Polimorfismo de Sobrecarga Mesma
→
função, diferentes parâmetros.
✅ Polimorfismo de Substituição →
Método redefinido em uma classe filha.
✅ Vantagens: Código mais reutilizável,
flexível e modular.
Ainda em Polimorfismo
Abstração – Simplificação da
realidade, destacando apenas
os aspectos essenciais de um
objeto e ocultando detalhes
desnecessários.
Introdução a
Modelagem de
Sistemas com UML
Diagrama de Casos de
Uso
Diagrama de Classes
Diagrama de Sequência
Diagrama de Atividades
Tipos de
diagrama
O Diagrama de Casos de Uso é
um dos diagramas mais
importantes na Análise
Orientada a Objetos (AOO) e no
desenvolvimento de software.
Diagrama de
Casos de Uso
Ele é utilizado para representar
as funcionalidades de um
sistema do ponto de vista
do usuário, ou seja, descreve o
que o sistema faz, sem se
preocupar com como isso é
implementado.
Como funciona este
modelo?
O diagrama de Casos de Uso auxilia no levantamento
dos requisitos funcionais do sistema, descrevendo um
conjunto de funcionalidades do sistema e suas
interações com elementos externos e entre si.
quando falamos de casos de uso, temos
que ter em mente o conceito de cenários,
que seriam instâncias de casos de uso.
Um cenário pode ser compreendido
como uma sequência de passos que
descreve uma interação entre um
usuário e o sistema.
E... Quais as vantagens?
Sua principal vantagem é a capacidade de representar as
funcionalidades do sistema de forma clara e centrada no
usuário, o que facilita a comunicação entre todos os
envolvidos no projeto, desde desenvolvedores até
stakeholders, como clientes e usuários finais. Vamos
explorar em detalhes as vantagens dessa abordagem.
Uma das maiores vantagens do
Diagrama de Casos de Uso é a
sua simplicidade e facilidade de
entendimento.
Outra vantagem significativa é o foco no usuário final. O
Diagrama de Casos de Uso é centrado nas necessidades
e expectativas dos usuários, o que o torna uma
ferramenta ideal para capturar requisitos funcionais.
Existe desvantagens?
Uma das principais limitações do Diagrama de Casos de
Uso é a sua falta de detalhes técnicos. Ele foca no "o que"
o sistema faz, ou seja, nas funcionalidades que o sistema
oferece, mas não entra em detalhes sobre o "como" essas
funcionalidades são implementadas.
Outra desvantagem é a dificuldade em
representar comportamentos complexos.
Embora o diagrama de casos de uso seja eficaz
para descrever funcionalidades simples, ele
pode não ser suficiente para sistemas com
interações dinâmicas ou comportamentos
complexos.
Além disso, o Diagrama de Casos de
Uso tem dificuldade em representar
fluxos alternativos e exceções.
auxiliam na comunicação entre o cliente e os
analistas.
apresentam as principais funcionalidades do sistema
com foco no cliente.
descrevem cenários de interação entre as partes
internas/externas de um sistema, com foco no
usuário
é muito utilizado na fase de levantamento de
requisitos.
diagramas
de
Casos
de
Uso
Em resumo:
✅ Atores boneco com rótulo que
→
representa um humano ou um sistema
computacional.
✅ Relacionamentos auxiliam na
→
descrição dos casos de uso, podendo
ser: entre um ator e um caso de uso,
entre atores e entre casos de uso.
Os principais elementos -
diagrama de casos de uso
Importante!!
Falando um pouco sobre:
Caso de Uso
elipse com rótulo que representa uma
funcionalidade do sistema, sendo que esta
pode estar estruturada em outra(s).
Um caso de uso pode ser concreto, quando é
iniciado diretamente por um ator, ou abstrato,
quando é uma extensão de um outro caso de
uso.
Além disso há casos de uso
primários e secundários.
O primeiro representa os objetivos dos
atores, já o segundo são funcionalidades do
sistema que precisam existir para que este
funcione corretamente.
✅ Relacionamento de Comunicação ou Associação →
representa a interação entre um ator e um caso de uso por
meio de mensagens. É representado por uma linha sólida.
Tipos de relacionamento
✅ Relacionamento de Inclusão: utilizado quando um
comportamento se repete em mais de um caso de uso. Por
exemplo, num internet banking, um cliente que vai realizar
um pagamento precisa se logar, assim como um cliente
que vai visualizar o saldo também precisa se logar.
Tipos de relacionamento
Logar é essencial para pagar fatura e para ver
saldo. Ou Logar é parte de pagar fatura e
também é parte de ver saldo.
✅ Relacionamento de Extensão: utilizado quando se deseja
modelar um relacionamento alternativo. Por exemplo, ao
"cadastrar usuário" num sistema de fórum, podemos
"cadastrar um administrador" ou "cadastrar um
moderador".
Tipos de relacionamento
Cadastrar administrador e Cadastrar
moderador são extensões de cadastrar
usuário. Eles não são essenciais, só contém
eventos adicionais sob certas condições.
✅ Relacionamento de Herança: é um relacionamento entre
atores, utilizado quando queremos representar uma
especialização/generalização. Na figura a seguir, vendedor
é especialização de pessoa (ou pessoa é generalização de
vendedor), é representado por um alinha com um
triângulo.
Tipos de relacionamento
Os casos de uso de pessoa são também casos
de uso de vendedor. Vendedor tem seus
próprios casos de uso.
Aspecto <<Include>> <<Extend>>
Obrigatoriedade O caso de uso incluído é obrigatório para o caso de uso principal. O caso de uso estendido é opcional e só
ocorre sob condições específicas.
Fluxo Principal Faz parte do fluxo principal do caso de uso. Não faz parte do fluxo principal, mas pode
ser acionado em situações especiais.
Reutilização Usado para evitar duplicação de funcionalidades comuns. Usado para adicionar comportamentos extras
ou alternativos.
Representação Seta tracejada com <<include>> apontando para o caso de uso
incluído.
Seta tracejada com <<extend>> apontando
para o caso de uso principal.
No contexto do Diagrama de Casos de Uso, os
termos extend e include são tipos de relacionamentos que
ajudam a descrever como os casos de uso interagem entre si.
Esses relacionamentos são usados para organizar e detalhar as
funcionalidades do sistema, tornando o diagrama mais claro e
preciso. Vamos explorar cada um deles em detalhes:
O relacionamento de inclusão (include) é usado para indicar
que um caso de uso precisa de outro caso de uso para ser
executado. Em outras palavras, um caso de uso "inclui" outro
caso de uso como parte do seu fluxo principal.
Relacionamento de Inclusão (include)
Características:
•Obrigatoriedade: O caso de uso incluído é obrigatório para a execução do caso de uso
principal.
•Reutilização: É útil para evitar a duplicação de funcionalidades comuns em vários casos
de uso.
•Representação: No diagrama, é representado por uma seta tracejada com a
palavra <<include>> apontando do caso de uso principal para o caso de uso incluído.
Imagine um sistema de e-commerce com os seguintes casos
de uso:
Exemplo:
Efetuar Compra (caso de uso principal).
Realizar Login (caso de uso incluído).
Aqui, o caso de uso Efetuar Compra inclui o caso de
uso Realizar Login, pois o usuário precisa estar logado para
efetuar uma compra. O relacionamento seria representado
assim:
Efetuar Compra --(include)--> Realizar Login
Relacionamento de Extensão (extend)
O relacionamento de extensão (extend) é usado para indicar
que um caso de uso pode ser estendido por outro caso de uso
em condições específicas. Diferente do include, o caso de uso
estendido não é obrigatório, mas pode ser acionado em
situações especiais.
Características:
• Condicionalidade: O caso de uso estendido só é executado sob certas condições.
• Opcionalidade: O caso de uso principal pode ser executado sem o caso de uso estendido
• Representação: No diagrama, é representado por uma seta tracejada com a
palavra <<extend>> apontando do caso de uso estendido para o caso de uso principal.
Aqui, o caso de uso Aplicar Cupom de Desconto estende o
caso de uso Efetuar Compra, pois o usuário pode optar por
aplicar um cupom de desconto durante a compra, mas isso
não é obrigatório. O relacionamento seria representado
assim:
Exemplo:
No mesmo sistema de e-commerce, considere os seguintes
casos de uso:
Efetuar Compra (caso de uso principal).
Aplicar Cupom de Desconto (caso de uso estendido).
Aplicar Cupom de Desconto --(extend)--> Efetuar Compra
Use include quando:
Uma funcionalidade é compartilhada por vários casos
de uso.
Um caso de uso depende de outro para ser executado.
Você quer evitar a duplicação de funcionalidades.
Use extend quando:
Uma funcionalidade é opcional e só ocorre em
situações específicas.
Você quer adicionar comportamentos extras a
um caso de uso principal.
2) Faça um caso de uso para a seguinte situação:
Uma rede de hotel deseja um sistema para operacionalizar o seu controle de
diárias. Neste caso, o hóspede pode realizar uma reserva de quarto. Porém, para
que esta reserva seja efetuada, o hóspede deve ter um cadastro com o hotel
(verificar se o hóspede já possui cadastrado). Esse cadastro deve ser realizado pelo
funcionário do hotel.
O hóspede pode solicitar alguns serviços pelo hotel, sendo que estes serviços
devem ser solicitados pelo funcionário.
O hotel possui uma política que o hóspede deve quitar sua estadia semanalmente.
Portanto, a cada sete dias o hóspede deverá procurar o funcionário e quitar suas
despesas pendentes no hotel (estas despesas podem incluir serviços utilizados e
consumo). Por último, o hóspede deve solicitar ao funcionário o encerramento da
sua estadia e quitar as suas pendências.

Aa1 - Analise de projeto orientado a objetos (Alunos).pptx

  • 1.
  • 2.
    O que aprenderemos? Ferramentas | Dicas de aula | Tutorias
  • 3.
    O que usaremos e como usaremos? Osslides terão módulos Ferramentas online Podem trazer seus PC’s O Colaborar é Essencial
  • 4.
    Classroom Trello Tldraw Plataformade ensino online onde professores podem criar e gerenciar tarefas, materiais e acompanhar o desempenho dos alunos. Ferramenta de gestão de projetos que organiza tarefas em quadros, listas e cartões, ajudando equipes a se manterem organizadas e colaborativas. Aplicativo para criar diagramas e desenhos simples, ideal para planejar ideias visualmente de forma rápida e intuitiva.
  • 5.
    Para que usaremos? Melhor organização Exibição gráfica dasatividades Compartilhamento de informações Trabalho em conjunto na sala de aula
  • 6.
    Estas são asprincipais ferramentas deste semestre!
  • 7.
  • 8.
    Quais são seusobjetivos acadêmicos para esse semestre? Você já tem experiência em alguma área relacion ao seu curso? Como você gosta de estudar: sozinho(a) ou em grupo? Se apresente! Qual seu nome? Qual seu hobby favorito? Caso não tenha, o que você amaria fazer? Qual seu sonho / objetivo?
  • 9.
    Mas para que,professor? “Lembre-se sempre, o seu foco determina a sua realidade.” Yoda
  • 10.
    Regras e dicas Horários: 19h00 à21h30 Intervalo: 19h45 à 20h00 (15 min) Sem atrasos! Se não é FALTA Qualquer outra informação, vá para atendimento
  • 11.
  • 12.
  • 13.
    A Análise Orientadaa Objetos (OOA) é um processo de desenvolvimento de software que usa objetos para modelar sistemas. O objetivo é identificar os objetos, atributos e operações que atuam sobre eles. O que é Analise Orientada a Objetos?
  • 14.
    A análise orientadaa objetos (OOA) é uma metodologia importante no desenvolvimento de software porque permite modelar sistemas de forma mais natural e intuitiva. Isso resulta em um código mais organizado, facilitando a manutenção e a adição de novos recursos. A OOA utiliza o conceito de objetos que interagem entre si e, através dessa interação, realizam tarefas computacionais. O ponto de partida para a OOA é criar um modelo descritivo contendo informações do projeto. Mas e as etapas?
  • 15.
    É um processode planejamento que identifica e modela os objetos do mundo real no sistema de software Busca simplificar o design e a implementação de sistemas complexos Torna os sistemas mais modulares, escaláveis e fáceis de manter Utiliza diagramas de casos de uso da UML para descrever os requisitos funcionais Utiliza diagramas de classes de sistema para identificar atributos e operações A OOA tem a capacidade de atender perfeitamente às diretrizes de reutilização recomendadas pela reengenharia de sistemas Algumas ideias sobre a AOO
  • 16.
    Diferença entre abordagem estruturada e orientada a objetos AAnálise Estruturada foca em processos e fluxo de dados Análise Orientada a Objetos enfatiza a modelagem de entidades e suas interações.
  • 17.
    Introdução a Princípios daOrientação a Objetos
  • 18.
  • 19.
    Objeto – Representaçãode uma entidade do mundo real dentro do sistema, contendo atributos (dados) e métodos (comportamentos). Um Objeto CPF Email Data de Nascimento Logradouro Individuo
  • 20.
    Classe – Modeloou molde para criar objetos, definindo seus atributos e métodos. Uma Classe Vários indivíduos Uma classe é um modelo ou estrutura que define um conjunto de atributos (dados) e métodos (ações) que os objetos criados a partir dela terão.
  • 21.
    Ainda em Classes Elafunciona como um molde para criar múltiplos objetos com características semelhantes. public class Pessoas { // Atributos (Características da Pessoa) String nome; String cpf; int datanascimento; // Método (Ação de busca) void exibirDetalhes() { System.out.println(“Nome: " + nome); System.out.println(“CPF: " + cpf); System.out.println("Ano: " + datanascimento); } }
  • 22.
    Encapsulamento – Proteçãodos dados do objeto, restringindo o acesso direto e permitindo interações apenas por meio de métodos específicos. Um dos princípios fundamentais da POO e se refere à proteção dos dados dentro de um objeto Mais...
  • 23.
    Ainda em Encapsulamento PrincipaisBenefícios do Encapsulamento: ✅ Proteção dos dados – Evita que valores inválidos sejam atribuídos diretamente. ✅ Facilidade de manutenção – Permite alterar a implementação interna sem impactar o código externo. ✅ Modularidade – Cada classe gerencia seus próprios dados, tornando o código mais
  • 24.
    Herança – Permiteque uma classe herde atributos e métodos de outra, promovendo reutilização de código e hierarquia entre classes.
  • 25.
    Polimorfismo – Capacidadede um método ter diferentes comportamentos dependendo do contexto ou da classe que o implementa.
  • 26.
    ✅ Polimorfismo deSobrecarga Mesma → função, diferentes parâmetros. ✅ Polimorfismo de Substituição → Método redefinido em uma classe filha. ✅ Vantagens: Código mais reutilizável, flexível e modular. Ainda em Polimorfismo
  • 27.
    Abstração – Simplificaçãoda realidade, destacando apenas os aspectos essenciais de um objeto e ocultando detalhes desnecessários.
  • 28.
  • 29.
    Diagrama de Casosde Uso Diagrama de Classes Diagrama de Sequência Diagrama de Atividades Tipos de diagrama
  • 30.
    O Diagrama deCasos de Uso é um dos diagramas mais importantes na Análise Orientada a Objetos (AOO) e no desenvolvimento de software. Diagrama de Casos de Uso Ele é utilizado para representar as funcionalidades de um sistema do ponto de vista do usuário, ou seja, descreve o que o sistema faz, sem se preocupar com como isso é implementado.
  • 31.
    Como funciona este modelo? Odiagrama de Casos de Uso auxilia no levantamento dos requisitos funcionais do sistema, descrevendo um conjunto de funcionalidades do sistema e suas interações com elementos externos e entre si. quando falamos de casos de uso, temos que ter em mente o conceito de cenários, que seriam instâncias de casos de uso. Um cenário pode ser compreendido como uma sequência de passos que descreve uma interação entre um usuário e o sistema.
  • 32.
    E... Quais asvantagens? Sua principal vantagem é a capacidade de representar as funcionalidades do sistema de forma clara e centrada no usuário, o que facilita a comunicação entre todos os envolvidos no projeto, desde desenvolvedores até stakeholders, como clientes e usuários finais. Vamos explorar em detalhes as vantagens dessa abordagem. Uma das maiores vantagens do Diagrama de Casos de Uso é a sua simplicidade e facilidade de entendimento. Outra vantagem significativa é o foco no usuário final. O Diagrama de Casos de Uso é centrado nas necessidades e expectativas dos usuários, o que o torna uma ferramenta ideal para capturar requisitos funcionais.
  • 33.
    Existe desvantagens? Uma dasprincipais limitações do Diagrama de Casos de Uso é a sua falta de detalhes técnicos. Ele foca no "o que" o sistema faz, ou seja, nas funcionalidades que o sistema oferece, mas não entra em detalhes sobre o "como" essas funcionalidades são implementadas. Outra desvantagem é a dificuldade em representar comportamentos complexos. Embora o diagrama de casos de uso seja eficaz para descrever funcionalidades simples, ele pode não ser suficiente para sistemas com interações dinâmicas ou comportamentos complexos. Além disso, o Diagrama de Casos de Uso tem dificuldade em representar fluxos alternativos e exceções.
  • 34.
    auxiliam na comunicaçãoentre o cliente e os analistas. apresentam as principais funcionalidades do sistema com foco no cliente. descrevem cenários de interação entre as partes internas/externas de um sistema, com foco no usuário é muito utilizado na fase de levantamento de requisitos. diagramas de Casos de Uso Em resumo:
  • 35.
    ✅ Atores bonecocom rótulo que → representa um humano ou um sistema computacional. ✅ Relacionamentos auxiliam na → descrição dos casos de uso, podendo ser: entre um ator e um caso de uso, entre atores e entre casos de uso. Os principais elementos - diagrama de casos de uso
  • 36.
  • 37.
    elipse com rótuloque representa uma funcionalidade do sistema, sendo que esta pode estar estruturada em outra(s). Um caso de uso pode ser concreto, quando é iniciado diretamente por um ator, ou abstrato, quando é uma extensão de um outro caso de uso. Além disso há casos de uso primários e secundários. O primeiro representa os objetivos dos atores, já o segundo são funcionalidades do sistema que precisam existir para que este funcione corretamente.
  • 38.
    ✅ Relacionamento deComunicação ou Associação → representa a interação entre um ator e um caso de uso por meio de mensagens. É representado por uma linha sólida. Tipos de relacionamento
  • 39.
    ✅ Relacionamento deInclusão: utilizado quando um comportamento se repete em mais de um caso de uso. Por exemplo, num internet banking, um cliente que vai realizar um pagamento precisa se logar, assim como um cliente que vai visualizar o saldo também precisa se logar. Tipos de relacionamento Logar é essencial para pagar fatura e para ver saldo. Ou Logar é parte de pagar fatura e também é parte de ver saldo.
  • 40.
    ✅ Relacionamento deExtensão: utilizado quando se deseja modelar um relacionamento alternativo. Por exemplo, ao "cadastrar usuário" num sistema de fórum, podemos "cadastrar um administrador" ou "cadastrar um moderador". Tipos de relacionamento Cadastrar administrador e Cadastrar moderador são extensões de cadastrar usuário. Eles não são essenciais, só contém eventos adicionais sob certas condições.
  • 41.
    ✅ Relacionamento deHerança: é um relacionamento entre atores, utilizado quando queremos representar uma especialização/generalização. Na figura a seguir, vendedor é especialização de pessoa (ou pessoa é generalização de vendedor), é representado por um alinha com um triângulo. Tipos de relacionamento Os casos de uso de pessoa são também casos de uso de vendedor. Vendedor tem seus próprios casos de uso.
  • 42.
    Aspecto <<Include>> <<Extend>> ObrigatoriedadeO caso de uso incluído é obrigatório para o caso de uso principal. O caso de uso estendido é opcional e só ocorre sob condições específicas. Fluxo Principal Faz parte do fluxo principal do caso de uso. Não faz parte do fluxo principal, mas pode ser acionado em situações especiais. Reutilização Usado para evitar duplicação de funcionalidades comuns. Usado para adicionar comportamentos extras ou alternativos. Representação Seta tracejada com <<include>> apontando para o caso de uso incluído. Seta tracejada com <<extend>> apontando para o caso de uso principal. No contexto do Diagrama de Casos de Uso, os termos extend e include são tipos de relacionamentos que ajudam a descrever como os casos de uso interagem entre si. Esses relacionamentos são usados para organizar e detalhar as funcionalidades do sistema, tornando o diagrama mais claro e preciso. Vamos explorar cada um deles em detalhes:
  • 43.
    O relacionamento deinclusão (include) é usado para indicar que um caso de uso precisa de outro caso de uso para ser executado. Em outras palavras, um caso de uso "inclui" outro caso de uso como parte do seu fluxo principal. Relacionamento de Inclusão (include) Características: •Obrigatoriedade: O caso de uso incluído é obrigatório para a execução do caso de uso principal. •Reutilização: É útil para evitar a duplicação de funcionalidades comuns em vários casos de uso. •Representação: No diagrama, é representado por uma seta tracejada com a palavra <<include>> apontando do caso de uso principal para o caso de uso incluído.
  • 44.
    Imagine um sistemade e-commerce com os seguintes casos de uso: Exemplo: Efetuar Compra (caso de uso principal). Realizar Login (caso de uso incluído). Aqui, o caso de uso Efetuar Compra inclui o caso de uso Realizar Login, pois o usuário precisa estar logado para efetuar uma compra. O relacionamento seria representado assim: Efetuar Compra --(include)--> Realizar Login
  • 45.
    Relacionamento de Extensão(extend) O relacionamento de extensão (extend) é usado para indicar que um caso de uso pode ser estendido por outro caso de uso em condições específicas. Diferente do include, o caso de uso estendido não é obrigatório, mas pode ser acionado em situações especiais. Características: • Condicionalidade: O caso de uso estendido só é executado sob certas condições. • Opcionalidade: O caso de uso principal pode ser executado sem o caso de uso estendido • Representação: No diagrama, é representado por uma seta tracejada com a palavra <<extend>> apontando do caso de uso estendido para o caso de uso principal.
  • 46.
    Aqui, o casode uso Aplicar Cupom de Desconto estende o caso de uso Efetuar Compra, pois o usuário pode optar por aplicar um cupom de desconto durante a compra, mas isso não é obrigatório. O relacionamento seria representado assim: Exemplo: No mesmo sistema de e-commerce, considere os seguintes casos de uso: Efetuar Compra (caso de uso principal). Aplicar Cupom de Desconto (caso de uso estendido). Aplicar Cupom de Desconto --(extend)--> Efetuar Compra
  • 47.
    Use include quando: Umafuncionalidade é compartilhada por vários casos de uso. Um caso de uso depende de outro para ser executado. Você quer evitar a duplicação de funcionalidades.
  • 48.
    Use extend quando: Umafuncionalidade é opcional e só ocorre em situações específicas. Você quer adicionar comportamentos extras a um caso de uso principal.
  • 49.
    2) Faça umcaso de uso para a seguinte situação: Uma rede de hotel deseja um sistema para operacionalizar o seu controle de diárias. Neste caso, o hóspede pode realizar uma reserva de quarto. Porém, para que esta reserva seja efetuada, o hóspede deve ter um cadastro com o hotel (verificar se o hóspede já possui cadastrado). Esse cadastro deve ser realizado pelo funcionário do hotel. O hóspede pode solicitar alguns serviços pelo hotel, sendo que estes serviços devem ser solicitados pelo funcionário. O hotel possui uma política que o hóspede deve quitar sua estadia semanalmente. Portanto, a cada sete dias o hóspede deverá procurar o funcionário e quitar suas despesas pendentes no hotel (estas despesas podem incluir serviços utilizados e consumo). Por último, o hóspede deve solicitar ao funcionário o encerramento da sua estadia e quitar as suas pendências.