Diagrama de Casos de Uso UML: relacionamentos e atores
Gabarito: letra A. No diagrama de casos de uso, a relação entre um ator e um caso de uso é uma associação, que indica que o ator pode iniciar ou participar da funcionalidade. A alternativa A está correta porque afirma que os atores Doutor e Secretária podem acionar o caso de uso "Procurar registro do paciente", o que é representado por linhas de associação entre esses atores e o caso de uso no diagrama.
O diagrama de casos de uso é um dos diagramas comportamentais da UML, utilizado para representar as funcionalidades de um sistema do ponto de vista dos usuários (atores). Ele mostra quem interage com o sistema e quais funcionalidades (casos de uso) estão disponíveis. Os elementos principais são: o ator (representado por um boneco ou retângulo com estereótipo), o caso de uso (representado por uma elipse com o nome da funcionalidade), e a fronteira do sistema (representada por um retângulo que delimita o escopo do sistema).
As relações mais comuns em um diagrama de casos de uso são:
Associação: conecta um ator a um caso de uso, indicando que o ator participa da funcionalidade. É representada por uma linha contínua.
Inclusão (include): indica que um caso de uso (base) sempre inclui a execução de outro caso de uso (inclusão). É representada por uma seta tracejada com o estereótipo <<include>>.
Extensão (extend): indica que um caso de uso (extensão) é executado opcionalmente sob certas condições, estendendo o comportamento do caso de uso base. É representada por uma seta tracejada com o estereótipo <<extend>>.
Generalização: entre atores ou entre casos de uso, indica herança de comportamento.
A distinção entre include e extend é crucial: no include, o caso de uso base sempre executa o caso incluído; no extend, o caso de uso base pode executar o caso de extensão, mas não é obrigatório. Essa diferença é frequentemente explorada em provas, como nesta questão.
No diagrama da questão, os atores Doutor e Secretária estão associados ao caso de uso "Procurar registro do paciente", o que significa que ambos podem acioná-lo. Já o caso de uso "Marcar consulta" está associado apenas ao ator Secretária, e "Cancelar consulta" está associado apenas ao ator Doutor. O caso de uso "Adiar pagamento" está associado ao ator Balconista, e "Pagar conta" está associado ao ator Balconista, com uma relação de extensão para "Extension points - Mais tratamento".
A pegadinha da questão está em interpretar corretamente as relações de include e extend. A alternativa B afirma que "Procurar registro do paciente" aciona obrigatoriamente "Marcar consulta", o que seria uma relação de include, mas no diagrama não há essa relação entre esses casos de uso. A alternativa C afirma que é necessário acionar "Marcar consulta" antes de "Cancelar consulta", mas não há relação de dependência entre eles. A alternativa D afirma que "Adiar pagamento" permitirá acionar opcionalmente "Pagar conta", mas a relação de extensão é entre "Pagar conta" e "Extension points - Mais tratamento", não entre "Adiar pagamento" e "Pagar conta". A alternativa E afirma que "Adiar pagamento" é inacessível ao ator Balconista, mas o diagrama mostra que o Balconista está associado a esse caso de uso.
Alternativa A — ✅ Correta ⟵ GABARITO
A alternativa A está correta porque, no diagrama, os atores Doutor e Secretária estão ambos associados ao caso de uso "Procurar registro do paciente". A associação entre um ator e um caso de uso indica que o ator pode iniciar ou participar da funcionalidade. Portanto, tanto o Doutor quanto a Secretária podem acionar esse caso de uso.
Alternativa B — ❌ Incorreta
A alternativa B afirma que "Procurar registro do paciente" aciona obrigatoriamente "Marcar consulta". Isso caracterizaria uma relação de include, onde o caso de uso base sempre executa o caso incluído. No entanto, no diagrama, não há relação de include entre esses dois casos de uso. "Procurar registro do paciente" e "Marcar consulta" são casos de uso independentes, sem vínculo obrigatório.
Alternativa C — ❌ Incorreta
A alternativa C afirma que é necessário acionar "Marcar consulta" antes de "Cancelar consulta". No diagrama, não há relação de dependência ou sequenciamento entre esses casos de uso. Eles são independentes e podem ser acionados em qualquer ordem, desde que o ator correspondente esteja associado. A ordem de execução não é definida no diagrama de casos de uso.
Alternativa D — ❌ Incorreta
A alternativa D afirma que "Adiar pagamento" permitirá ao seu ator acionar opcionalmente "Pagar conta". No diagrama, a relação de extensão (<<extend>>) está entre "Pagar conta" e "Extension points - Mais tratamento", não entre "Adiar pagamento" e "Pagar conta". A extensão indica que "Pagar conta" pode, opcionalmente, estender seu comportamento para "Extension points - Mais tratamento", mas não há relação entre "Adiar pagamento" e "Pagar conta".
Alternativa E — ❌ Incorreta
A alternativa E afirma que "Adiar pagamento" é inacessível ao ator Balconista. No diagrama, o ator Balconista está associado ao caso de uso "Adiar pagamento", o que indica que ele pode acioná-lo. Portanto, a afirmação é falsa, pois o Balconista tem acesso a esse caso de uso.
Gabarito: letra A