Prévia do material em texto
Prova Impressa GABARITO | Avaliação Final (Objetiva) - Individual (Cod.:1523258) Peso da Avaliação 4,00 Prova 106191153 Qtd. de Questões 10 Acertos/Erros 5/5 Nota 5,00 O uso de diagramas UML na engenharia de software enfrenta diversos desafios, como a complexidade na modelagem e a necessidade de manter consistência e clareza na documentação. A evolução contínua da tecnologia exige uma adaptação constante dessas práticas para garantir sua eficácia no desenvolvimento de sistemas. Fonte: ANÁLISE DE REQUISITOS. O que são diagramas UML. Disponível em: https://analisederequisitos.com.br/o-que-sao-diagramas-uml/. Acesso em: 24 jul. 2024. Sobre os desafios e considerações finais no uso de diagramas UML, analise as afirmativas a seguir: I. Manter a consistência entre diferentes diagramas UML. II. Garantir que os diagramas UML sejam claros e precisos. III. Usar diagramas UML para modelar sistemas complexos. IV. Diagramas UML são eficazes para capturar requisitos não funcionais. É correto o que se afirma em: A I, II e III, apenas. B II e III, apenas. C II, III e IV, apenas. D I e III, apenas. E III e IV, apenas. VOLTAR A+ Alterar modo de visualização 1 Revisar Conteúdo do Livro 30/09/2025, 19:35 Avaliação Final (Objetiva) - Individual about:blank 1/8 Os diagramas de sequência são uma ferramenta crucial para modelar a interação entre objetos em um sistema, destacando a ordem temporal das mensagens trocadas. Cada diagrama de sequência representa objetos envolvidos, linhas de vida e mensagens que indicam a interação e o fluxo do processo. A notação usada inclui setas horizontais para mensagens e linhas verticais para linhas de vida dos objetos. Fonte: Visual Paradigm. “Tudo O Que Você Precisa Saber Sobre Diagramas De Sequência” . Disponível em: https://blog.visual-paradigm.com/pt/everything-you-need-to-know-about-sequence- diagrams/ Acesso em: 18 jul. 2024. Sobre o diagrama de sequência, analise as afirmativas a seguir: I. Mensagens assíncronas são representadas por setas preenchidas. II. Mensagens síncronas são representadas por setas com uma ponta aberta. III. Uma linha de vida representa a existência de um objeto ao longo do tempo. IV. Os diagramas de sequência focam na ordem temporal das interações entre objetos. É correto o que se afirma em: A I e IV, apenas. B I, II e III, apenas. C II e III, apenas. D II, III e IV, apenas. E III e IV, apenas. A herança é um conceito fundamental na orientação a objetos que permite a criação de novas classes com base em classes existentes. As subclasses herdam atributos e métodos da superclasse, podendo também adicionar novos atributos e métodos ou modificar o comportamento herdado. Esse mecanismo promove a reutilização de código e a criação de hierarquias de classes que refletem relacionamentos do mundo real. Fonte: DevMedia. Herança: Programação Orientada a Objetos. Disponível em: https://www.devmedia.com.br/conceitos-e-exemplos-heranca-programacao-orientada-a-objetos-parte- 1/18579. Acesso em: 20 jul. 2024. Identifique qual das alternativas a seguir descreve o conceito de herança na orientação a objetos: 2 3 30/09/2025, 19:35 Avaliação Final (Objetiva) - Individual about:blank 2/8 A A capacidade de uma classe criar múltiplas instâncias de outras classes. B A definição de comportamentos dinâmicos que são executados em tempo de execução. C A organização dos dados em formato de tabela para facilitar o acesso e a modificação. D A interação entre objetos para realizar uma tarefa específica. E O mecanismo que permite a criação de novas classes com base em classes existentes, herdando seus atributos e métodos. A Programação Orientada a Objetos (POO) é uma abordagem de desenvolvimento de software que modela objetos do mundo real. Ela utiliza conceitos como abstração, que simplifica a complexidade por meio de modelos essenciais; encapsulamento, que oculta detalhes internos; e herança, que permite criar novas classes com base em classes existentes. Além disso, a associação une objetos com interesses comuns. Fonte: adaptado de: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda seus conceitos e suas aplicabilidades de forma efetiva. 1. ed. São Paulo: Casa do Código, 2016. Suponha que na estrutura de uma empresa foram definidas três classes: Gerente, Funcionário e Vendedor. Dentro dessa hierarquia, os Gerentes têm a responsabilidade de coordenar os Vendedores e ambos são considerados Funcionários da empresa. Com base no exposto, analise as opções a seguir: I. Gerente é abstração de Vendedor. II. Gerente e Vendedor são associações. III. Gerente e Vendedor herdam de Funcionário. IV. Gerente e Vendedor especializam Funcionário. É correto o que se afirma em: A II, III e IV, apenas. B I, II e III, apenas. C III e IV, apenas. Revisar Conteúdo do Livro 4 30/09/2025, 19:35 Avaliação Final (Objetiva) - Individual about:blank 3/8 D II e III, apenas. E I e IV, apenas. A notação Unified Modeling Language (UML) é essencial para a criação de diagramas de classes, que representam a estrutura estática de um sistema. A UML oferece várias notações para definir a visibilidade dos atributos e métodos das classes, como público (+), privado (-), protegido (#), e de pacote (~). Além disso, define as multiplicidades das associações entre classes, que podem ser representadas por valores como 1 (exatamente um), 0..* (zero ou mais), e 1..* (um ou mais). Fonte: Escola Virtual. Notações e desenvolvimento de uma UML. Disponível em: https://lms.ev.org.br/mpls/Custom/Cds/COURSES/3242-UMLv2/curso/modulo-3.html. Acesso em: 20 jul. 2024. Identifique a notação UML correta para representar que um atributo é visível apenas dentro da própria classe: A * (multiplicidade). B # (protegido). C + (público). D - (privado). E ~ (pacote). A programação orientada a objetos, muitos iniciantes acreditam que a herança é a principal forma de reutilizar código, mas isso nem sempre é verdadeiro. A herança é mais apropriada para criar subtipos, não para reúso direto de código. Em vez disso, a associação pode ser mais adequada em situações onde não há uma relação de "é um", mas sim de "usa um" ou "precisa de um". Por exemplo, ao implementar um carrinho de compras, é mais apropriado associá-lo a uma lista de produtos do que herdar diretamente de uma lista. Isso evita problemas como quebras de semântica, quebras de Revisar Conteúdo do Livro 5 Revisar Conteúdo do Livro 6 30/09/2025, 19:35 Avaliação Final (Objetiva) - Individual about:blank 4/8 encapsulamento e forte acoplamento. Assim, a associação pode tornar o código mais orientado a objetos, flexível e menos acoplado. Fonte: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda Seus Conceitos e Suas Aplicabilidades de Forma Efetiva. 1. ed. São Paulo: Casa do Código, 2016. Identifique a abordagem recomendada, conforme descrito no texto fornecido, para situações onde o reúso de código é necessário, mas não há uma relação de "é um": I. A herança é a principal maneira de alcançar o reúso de código na programação orientada a objetos. II. A associação é recomendada sempre que houver uma relação de "é um" entre as classes envolvidas. III. A associação é uma alternativa viável quando o reúso é necessário, mas não há uma relação de "é um", e sim de "usa um" ou "precisa de um". IV. Um dos problemas da herança é que uma classe que herda outra tem acesso ao estado da superclasse, o que compromete a coesão e a modularidade do código. É correto o que se afirma em: A III e IV, apenas. B II e IV, apenas. C I, II e III, apenas. D I, II, III e IV. E I, apenas. No desenvolvimento de software, coesão e acoplamento são dois princípios fundamentais de design que influenciam a qualidade e a manutenibilidade do software. A coesão refere-se ao grau em que os elementos dentro de um módulo estão relacionados e trabalham juntos para realizar uma única tarefa ou responsabilidade. Por outro lado, o acoplamento mede a dependência entre os módulos ou componentes de um sistema. Umacoplamento baixo é desejável, pois indica que os módulos são independentes e podem ser modificados com pouco impacto nos outros componentes do sistema. Fonte: Adaptado de: LEITE, T.; CARVALHO, T. Orientação a Objetos: Aprenda seus conceitos e suas aplicabilidades de forma efetiva. 1. ed. São Paulo: Casa do Código, 2016. Considerando o texto-base sobre coesão e acoplamento, analise as afirmativas a seguir: I. A coesão e o acoplamento são princípios fundamentais de design que influenciam a qualidade e a manutenibilidade do software. II. A coesão se refere ao grau em que os elementos dentro de um módulo estão relacionados e trabalham juntos para realizar uma única tarefa ou responsabilidade. Revisar Conteúdo do Livro 7 30/09/2025, 19:35 Avaliação Final (Objetiva) - Individual about:blank 5/8 III. Um acoplamento baixo é desejável, pois indica que os módulos são independentes e podem ser modificados com pouco impacto nos outros componentes do sistema. IV. Um alto grau de coesão é desejável em sistemas de software, pois facilita a manutenção e evolução do sistema, mantendo as responsabilidades dos módulos bem definidas e agrupadas. É correto o que se afirma em: A I, II e III, apenas. B I, apenas. C II e IV, apenas. D III e IV, apenas. E I, II, III e IV. O diagrama de implantação mapeia a arquitetura lógica de classes em nós de processamento e suas dependências. Cada nó representa um recurso computacional com memória e capacidade de processamento, como um disco rígido, um computador ou uma impressora. Este diagrama é útil para identificar quais computadores e outros hardwares estão conectados, bem como para visualizar a distribuição das classes e determinar se a atualização de um arquivo resulta na recompilação de outros. Referente ao objetivo principal do diagrama de implantação, assinale a alternativa CORRETA: A Identificar os nós entre os métodos de uma classe. B Determinar a estrutura interna de um classificador. C Mapear a arquitetura física de classes. D Identificar as dependências entre os métodos de uma classe. E Visualizar a distribuição das classes em diferentes nós de processamento. 8 30/09/2025, 19:35 Avaliação Final (Objetiva) - Individual about:blank 6/8 Quando um objeto passa por seu ciclo de vida, ele transita por vários estados diferentes. Qualquer coisa que altere o estado atual de um objeto, desencadeando uma transição de estados, é chamada de evento. Os eventos são geralmente classificados em eventos externos e eventos internos. Um evento externo é um acontecimento que ocorre fora do sistema e afeta o sistema, sendo causado pelos atores associados a ele. Já os eventos internos são causados e recebidos por objetos que estão cumprindo seus ciclos de vida dentro do sistema. Uma solicitação de execução de uma operação de um objeto por outro em uma colaboração é um exemplo de evento interno. Fonte: DEVMEDIA. Diagramas de Transição de Estados - Engenharia de Software 30. Disponível em: https://www.devmedia.com.br/diagramas-de-transicao-de-estados-engenharia-de-software- 30/18444. Acesso em: 4 abr. 2024. Com base no texto fornecido, qual a interpretação para evento interno? A Um evento interno é a solicitação de execução de uma operação de um objeto por outro em uma colaboração. B Um evento interno é causado e recebido por objetos que cumprem seus ciclos de vida dentro do sistema. C Um evento interno é um evento classificado como ordinariamente externo, causado pelos atores associados ao sistema. D Um evento interno é qualquer coisa que altere o estado atual de um objeto, desencadeando uma transição de estados. E Um evento interno é um acontecimento que ocorre fora do sistema e afeta o mesmo. O diagrama de caso de uso da UML é uma representação gráfica usada para modelar os requisitos funcionais de um sistema de software. Ele inclui elementos como atores, casos de uso e associações, bem como mecanismos adicionais como generalização/especialização, inclusão e extensão, que ajudam a definir e organizar o comportamento do sistema. Fonte: GUEDES, Gilleanes T. A. UML 2: Uma Abordagem Prática. São Paulo: Novatec Editora, 2018. Considerando os diferentes elementos e mecanismos disponíveis no diagrama de caso de uso da UML, analise as afirmativas a seguir: I. As associações são utilizadas para representar os relacionamentos entre atores, entre atores e casos de uso, ou entre casos de uso. II. A inclusão é um mecanismo que permite que um caso de uso inclua outro caso de uso, quando ambos compartilham uma parte comum de seu comportamento. 9 10 30/09/2025, 19:35 Avaliação Final (Objetiva) - Individual about:blank 7/8 III. A extensão é um mecanismo que permite estender o comportamento de um caso de uso base, adicionando ou modificando seu comportamento em pontos específicos. IV. A generalização/especialização é um mecanismo que permite organizar os atores ou casos de uso em hierarquias, representando relações de generalização (herança) e especialização. É correto o que se afirma em: A I, II e III, apenas. B I, II, III e IV. C I, apenas. D II e IV, apenas. E III e IV, apenas. Imprimir 30/09/2025, 19:35 Avaliação Final (Objetiva) - Individual about:blank 8/8