Prévia do material em texto
<p>1 A UML (Linguagem de Modelagem Unificada) é uma ferramenta essencial para</p><p>representar sistemas de software de forma visual e compreensível. Na versão 2.5, a</p><p>UML oferece 14 tipos de diagramas, divididos em estruturais e comportamentais. Os</p><p>diagramas estruturais incluem Classes, Objetos, Componentes, Implantação,</p><p>Pacotes, Perfil e Estrutura Composta. Por outro lado, os diagramas comportamentais</p><p>abrangem Casos de Uso, Estado, Atividades, Máquina de Estados Compostos e</p><p>Interação, que inclui Sequência, Comunicação, Visão Geral da Interação e Tempo.</p><p>Esses diagramas proporcionam uma visão abrangente dos sistemas, facilitando o</p><p>entendimento e o desenvolvimento dos projetos de software.</p><p>Fonte: GUEDES, Gilleanes T. A. UML 2: Uma Abordagem Prática. São Paulo: Novatec</p><p>Editora, 2018.</p><p>De acordo com o texto fornecido, identifique o diagrama da Linguagem de</p><p>Modelagem Unificada (UML) que representa visualmente as interações entre um</p><p>sistema de software e seus usuários ou outros sistemas (atores), descrevendo as</p><p>funcionalidades do sistema em termos de ações que os usuários podem realizar e as</p><p>respostas do sistema a essas ações:</p><p>A</p><p>Diagrama de Tempo.</p><p>B</p><p>Diagrama de Caso de Uso.</p><p>C</p><p>Diagrama de Comunicação.</p><p>D</p><p>Diagrama de Atividade.</p><p>E</p><p>Diagrama de Estrutura Composta.</p><p>2</p><p>Dentro dos diagramas da UML, os diagramas comportamentais são essenciais para</p><p>descrever o funcionamento dinâmico de um sistema ao longo do tempo. Eles</p><p>representam como o sistema responde a estímulos externos e como os objetos</p><p>interagem entre si para alcançar os objetivos desejados. Os principais diagramas</p><p>comportamentais incluem o Diagrama de Atividades, que modela fluxos de controle e</p><p>processos de negócios, o Diagrama de Máquina de Estados, que descreve o</p><p>comportamento de objetos em diferentes estados e transições, o Diagrama de</p><p>Sequência, que visualiza a interação temporal entre objetos por meio de mensagens</p><p>trocadas, e o Diagrama de Comunicação, que destaca as relações estruturais e a</p><p>troca de mensagens entre objetos. Esses diagramas são fundamentais para entender</p><p>a dinâmica do sistema e capturar as interações entre seus componentes de forma</p><p>clara e concisa.</p><p>Fonte: GUEDES, Gilleanes T. A. UML 2: Uma Abordagem Prática. São Paulo: Novatec</p><p>Editora, 2018.</p><p>Considere um sistema de controle de pedidos de uma loja on-line. O sistema permite</p><p>que os clientes realizem pedidos de produtos disponíveis no catálogo. Ao receber um</p><p>pedido, o sistema verifica a disponibilidade dos produtos em estoque. Se os produtos</p><p>estiverem disponíveis, o pedido é confirmado e os itens são reservados. Caso</p><p>contrário, o pedido é marcado como pendente até que os produtos estejam</p><p>novamente em estoque. Uma vez que os produtos são reservados, o sistema gera</p><p>uma fatura e notifica o cliente sobre o status do pedido.</p><p>Com base nesse cenário, identifique a melhor opção que representaria a modelagem</p><p>do sistema de controle de pedidos da loja on-line:</p><p>I. Diagrama de Classes: Representa as classes do sistema e a troca de mensagens</p><p>entre seus componentes, destacando os objetos envolvidos no processo de pedidos</p><p>e suas interações.</p><p>II. Diagrama de Objetos: Este diagrama modela o processo de realização de um</p><p>pedido, destacando os objetos envolvidos, como "verificar disponibilidade", "gerar</p><p>fatura" e "notificar cliente".</p><p>III. Diagrama de Sequência: Este diagrama representa a interação entre o cliente e o</p><p>sistema ao longo do tempo, mostrando a troca de mensagens para realizar um pedido</p><p>e receber notificações de status.</p><p>IV. Diagrama de Máquina de Estados: Descreve o comportamento do pedido desde o</p><p>momento em que é recebido até que seja entregue ao cliente, mostrando os</p><p>diferentes estados pelos quais o pedido passa, como "pendente", "confirmado" e</p><p>"entregue".</p><p>É correto o que se afirma em:</p><p>A</p><p>I, II e III, apenas.</p><p>B</p><p>I, II, III e IV.</p><p>C</p><p>II e IV, apenas.</p><p>D</p><p>III e IV, apenas.</p><p>E</p><p>I, apenas.</p><p>3</p><p>O diagrama de caso de uso da UML é uma ferramenta crucial na engenharia de</p><p>software, empregada para capturar e representar os requisitos funcionais de um</p><p>sistema. Ele abrange diversos elementos essenciais: atores, que representam os</p><p>diferentes papéis dos usuários ou sistemas externos; casos de uso, que descrevem</p><p>as funcionalidades do sistema; a documentação detalhada de cada caso de uso,</p><p>facilitando a compreensão de suas operações; associações, que representam os</p><p>relacionamentos entre atores e casos de uso; generalização/especialização, para</p><p>organizar hierarquicamente atores ou casos de uso; inclusão, que permite a</p><p>integração de funcionalidades compartilhadas entre casos de uso; e extensão, para</p><p>modificar o comportamento de casos de uso em pontos específicos. Esses elementos</p><p>oferecem uma visão clara das interações entre os usuários e o sistema, ao mesmo</p><p>tempo em que contribuem para a organização e definição do comportamento do</p><p>sistema.</p><p>Fonte: GUEDES, Gilleanes T. A. UML 2: Uma Abordagem Prática. São Paulo: Novatec</p><p>Editora, 2018.</p><p>O diagrama de caso de uso a seguir representa um sistema de comércio eletrônico.</p><p>Com base nesse diagrama, analise as afirmativas a seguir:</p><p>I. O caso de uso "Realizar Compra" inclui o caso de uso "Incluir Produto no</p><p>Carrinho", permitindo que a ação de incluir produtos no carrinho seja parte integrante</p><p>do processo de realizar uma compra.</p><p>II. O caso de uso "Visualizar Produto" existe uma associação entre os atores Cliente e</p><p>Funcionário, o que implica que ambos os tipos de usuários têm a capacidade de</p><p>visualizar os produtos disponíveis no sistema.</p><p>III. Os atores Cliente e Funcionário herdam as funcionalidades do ator Usuário,</p><p>significando que ambos os atores possuem as características e capacidades</p><p>atribuídas ao usuário, mas também podem ter funcionalidades específicas adicionais.</p><p>IV. O caso de uso "Aplicar Desconto" é uma extensão do caso de uso "Realizar</p><p>Compra", indicando que a aplicação de desconto é uma funcionalidade obrigatória</p><p>que ocorre durante o processo de realizar uma compra, mas não é essencial para sua</p><p>execução.</p><p>É correto o que se afirma em:</p><p>A</p><p>III e IV, apenas.</p><p>B</p><p>II, III e IV, apenas.</p><p>C</p><p>II e III, apenas.</p><p>D</p><p>I, II e III, apenas.</p><p>E</p><p>I e IV, apenas.</p><p>4</p><p>Os diagramas de comunicação, também conhecidos como diagramas de</p><p>colaboração, são usados para ilustrar as interações entre objetos em um sistema,</p><p>focando na organização estrutural das mensagens trocadas. Eles representam a</p><p>comunicação entre objetos através de links que conectam os objetos, destacando a</p><p>rede de interações que suportam um determinado comportamento.</p><p>Fonte: Guru 99. “Diagramas de interação, colaboração e sequência com exemplos”.</p><p>Disponível em:</p><p>https://www.guru99.com/pt/interaction-collaboration-sequence-diagrams-examples.ht</p><p>ml. Acesso em: 17 jul. 2024.</p><p>Sobre diagramas de comunicação, analise as afirmativas a seguir:</p><p>I. Mensagens em diagramas de comunicação são sempre assíncronas.</p><p>II. Diagramas de comunicação enfatizam a estrutura das interações entre objetos.</p><p>III. Diagramas de comunicação são também conhecidos como diagramas de</p><p>colaboração.</p><p>IV. Links em diagramas de comunicação representam a conexão e o caminho das</p><p>mensagens entre objetos.</p><p>É correto o que se afirma em:</p><p>A</p><p>II e III, apenas.</p><p>B</p><p>II, III e IV, apenas.</p><p>C</p><p>I e III, apenas.</p><p>D</p><p>I, II e III, apenas.</p><p>E</p><p>III e IV, apenas.</p><p>5</p><p>Os diagramas estruturais na UML são usados para representar a estrutura estática de</p><p>um sistema de software. Eles mostram as entidades envolvidas no sistema, como</p><p>classes, objetos, componentes e pacotes, juntamente com as relações entre elas.</p><p>Esses diagramas fornecem uma visão da organização e da arquitetura do sistema,</p><p>destacando suas partes constituintes e suas interconexões. Os principais diagramas</p><p>estruturais incluem o Diagrama de Classes, o Diagrama de Objetos, o Diagrama de</p><p>Componentes, o Diagrama de Pacotes e outros, cada um focado em aspectos</p><p>específicos da estrutura do sistema. Esses diagramas são fundamentais para</p><p>entender a composição e a organização do sistema durante as fases de análise e</p><p>design do desenvolvimento de software.</p><p>Fonte: GUEDES, Gilleanes T. A. UML 2: Uma Abordagem Prática.</p><p>es/37224. Acesso em: 5 abr. 2024.</p><p>Com base no texto, assinale a alternativa correta:</p><p>A O nome da classe em um diagrama de classes é representado na parte inferior do</p><p>retângulo.</p><p>B Um diagrama de classes representa a estrutura de um banco de dados.</p><p>C Um diagrama de classes é uma representação da parte estrutural do sistema.(Correta)</p><p>D Os atributos de uma classe em um diagrama de classes são representados por um</p><p>losango.</p><p>E Na UML, uma classe é representada por um círculo com três divisões.</p><p>São Paulo: Novatec</p><p>Editora, 2018.</p><p>Considere um sistema de gerenciamento de uma loja on-line que vende produtos</p><p>eletrônicos. O sistema deve permitir o cadastro de clientes, produtos e pedidos. Cada</p><p>produto possui um nome, preço e quantidade em estoque. Cada cliente possui um</p><p>nome, endereço e histórico de pedidos. Um pedido é feito por um cliente e contém</p><p>um ou mais produtos, juntamente com a quantidade de cada produto solicitado.</p><p>Com base no enunciado, identifique qual das seguintes opções melhor representa a</p><p>estrutura de classes do sistema:</p><p>A</p><p>Classe: Produto - Atributos: nome, preço, quantidade; Classe: Usuário - Atributos:</p><p>nome, endereço, históricoPedidos; Classe: Pedido - Atributos: cliente, listaProdutos.</p><p>B</p><p>Classe: ItemPedido - Atributos: produto, quantidade; Classe: Cliente - Atributos:</p><p>nome, endereço, históricoPedidos; Classe: Pedido - Atributos: cliente,</p><p>listaItensPedido.</p><p>C</p><p>Classe: Produto - Atributos: nome, preço, quantidade; Classe: Cliente - Atributos:</p><p>nome, endereço; Classe: Pedido - Atributos: cliente, listaItensPedido.</p><p>D</p><p>Classe: Produto - Atributos: nome, preço, quantidadeEmEstoque; Classe: Cliente -</p><p>Atributos: nome, endereço, históricoPedidos; Classe: Pedido - Atributos: cliente,</p><p>listaProdutos.</p><p>E</p><p>Classe: Produto - Atributos: nome, preço; Classe: Cliente - Atributos: nome,</p><p>endereço; Classe: PedidoUsuario - Atributos: cliente, listaProdutos.</p><p>6</p><p>Os diagramas de sequência são uma ferramenta crucial para modelar a interação</p><p>entre objetos em um sistema, destacando a ordem temporal das mensagens</p><p>trocadas. Cada diagrama de sequência representa objetos envolvidos, linhas de vida</p><p>e mensagens que indicam a interação e o fluxo do processo. A notação usada inclui</p><p>setas horizontais para mensagens e linhas verticais para linhas de vida dos objetos.</p><p>Fonte: Visual Paradigm. “Tudo O Que Você Precisa Saber Sobre Diagramas De</p><p>Sequência” . Disponível em:</p><p>https://blog.visual-paradigm.com/pt/everything-you-need-to-know-about-sequence-dia</p><p>grams/ Acesso em: 18 jul. 2024.</p><p>Sobre o diagrama de sequência, analise as afirmativas a seguir:</p><p>I. Mensagens assíncronas são representadas por setas preenchidas.</p><p>II. Mensagens síncronas são representadas por setas com uma ponta aberta.</p><p>III. Uma linha de vida representa a existência de um objeto ao longo do tempo.</p><p>IV. Os diagramas de sequência focam na ordem temporal das interações entre</p><p>objetos.</p><p>É correto o que se afirma em:</p><p>A</p><p>I, II e III, apenas.</p><p>B</p><p>II e III, apenas.</p><p>C</p><p>III e IV, apenas.</p><p>D</p><p>II, III e IV, apenas.</p><p>E</p><p>I e IV, apenas.</p><p>7</p><p>Guedes (2018) destaca a importância da utilização de uma variedade de diagramas na</p><p>UML para oferecer múltiplas perspectivas do sistema a ser modelado. Cada diagrama</p><p>comportamental fornece uma visão única, permitindo uma análise detalhada e</p><p>abrangente. Ao complementarem-se, esses diagramas possibilitam alcançar a</p><p>completude da modelagem, identificando falhas e reduzindo erros futuros. Dentre os</p><p>diagramas comportamentais da UML mencionados estão os diagramas de Caso de</p><p>Uso, Atividades, Máquina de Estados e Interação, que inclui Sequência,</p><p>Comunicação, Visão Geral de Interação e Temporização. Esses diagramas oferecem</p><p>diferentes perspectivas dinâmicas do sistema, ajudando a compreender como os</p><p>elementos interagem e se comportam em diferentes cenários.</p><p>Fonte: GUEDES, Gilleanes T. A. UML 2: Uma Abordagem Prática. São Paulo: Novatec</p><p>Editora, 2018.</p><p>Considerando a relevância da modelagem de sistemas por meio de diagramas na</p><p>UML, destaca-se o Diagrama de Atividades como uma ferramenta crucial para</p><p>representar o fluxo de controle de processos. No contexto da reserva de passagens</p><p>aéreas, analise as afirmativas a seguir:</p><p>I. O diagrama de atividades ilustra a arquitetura física de um sistema de reserva de</p><p>passagens aéreas, mostrando os componentes do sistema e suas interações.</p><p>II. O diagrama de atividades descreve as classes e seus relacionamentos em um</p><p>sistema de reserva de passagens aéreas, fornecendo uma visão estática da estrutura</p><p>do software.</p><p>III. O diagrama de atividades representa o fluxo de controle de um processo de</p><p>reserva de passagens aéreas, detalhando as etapas desde a solicitação da reserva</p><p>até a confirmação do pagamento e emissão do bilhete.</p><p>IV. O diagrama de atividades é utilizado para modelar a lógica de comportamento de</p><p>sistemas, capturar requisitos de negócios, projetar fluxos de trabalho e comunicar a</p><p>estrutura e o comportamento do sistema de maneira visual.</p><p>É correto o que se afirma em:</p><p>A</p><p>II, III e IV, apenas.</p><p>B</p><p>I e IV, apenas.</p><p>C</p><p>II e III, apenas.</p><p>D</p><p>III e IV, apenas.</p><p>E</p><p>I, II e III, apenas.</p><p>8</p><p>O Diagrama de Caso de Uso na UML é uma ferramenta essencial para modelar os</p><p>requisitos de um sistema de software, destacando as interações entre os usuários e o</p><p>sistema. Ele consiste em atores, casos de uso e relacionamentos, proporcionando</p><p>uma representação visual das funcionalidades do sistema. Esse diagrama é útil para</p><p>elicitar requisitos, comunicar as necessidades do sistema e validar as especificações</p><p>com os stakeholders.</p><p>Fonte: GUEDES, Gilleanes T. A. UML 2: Uma Abordagem Prática. São Paulo: Novatec</p><p>Editora, 2018.</p><p>Considere um sistema de gerenciamento de uma biblioteca. Os atores principais do</p><p>sistema são o Bibliotecário e o Usuário. O sistema permite que o Usuário realize as</p><p>seguintes ações: buscar livros pelo título, verificar a disponibilidade de um livro,</p><p>solicitar empréstimo de um livro e devolver um livro. O Bibliotecário tem a</p><p>responsabilidade de adicionar novos livros ao sistema e remover livros danificados.</p><p>Selecione qual o caso de usos que melhor representaria esse enunciado:</p><p>A</p><p>Buscar Livros, Realizar Empréstimo, Devolver Livro, Adicionar Livro, Remover Livro.</p><p>B</p><p>Buscar Livros, Verificar Disponibilidade, Solicitar Empréstimo, Devolver Livro,</p><p>Adicionar Livro, Remover Livro.</p><p>C</p><p>Buscar Livros, Devolver Livro, Adicionar Livro, Remover Livro.</p><p>D</p><p>Adicionar Livro, Remover Livro.</p><p>E</p><p>Buscar Livros, Solicitar Empréstimo, Devolver Livro, Adicionar Livro, Remover Livro.</p><p>9</p><p>Quando um objeto passa por seu ciclo de vida, ele transita por vários estados</p><p>diferentes. Qualquer coisa que altere o estado atual de um objeto, desencadeando</p><p>uma transição de estados, é chamada de evento. Os eventos são geralmente</p><p>classificados em eventos externos e eventos internos. Um evento externo é um</p><p>acontecimento que ocorre fora do sistema e afeta o sistema, sendo causado pelos</p><p>atores associados a ele. Já os eventos internos são causados e recebidos por</p><p>objetos que estão cumprindo seus ciclos de vida dentro do sistema. Uma solicitação</p><p>de execução de uma operação de um objeto por outro em uma colaboração é um</p><p>exemplo de evento interno.</p><p>Fonte: DEVMEDIA. Diagramas de Transição de Estados - Engenharia de Software 30.</p><p>Disponível em:</p><p>https://www.devmedia.com.br/diagramas-de-transicao-de-estados-engenharia-de-soft</p><p>ware-30/18444. Acesso em: 4 abr. 2024.</p><p>Com base no texto fornecido, qual a interpretação para evento interno?</p><p>A</p><p>Um evento interno é a solicitação de execução de uma operação de um objeto por</p><p>outro em uma colaboração.</p><p>B</p><p>Um evento interno é um evento classificado como ordinariamente externo, causado</p><p>pelos atores associados ao sistema.</p><p>C</p><p>Um evento interno é qualquer coisa que altere o estado atual de um objeto,</p><p>desencadeando uma transição de estados.</p><p>D</p><p>Um evento interno é causado e recebido por objetos que cumprem seus ciclos de</p><p>vida dentro do sistema.</p><p>E</p><p>Um evento interno é um acontecimento que ocorre fora do sistema e afeta o mesmo.</p><p>10</p><p>O diagrama de sequência concentra-se na ordem temporal em que as mensagens são</p><p>trocadas entre os objetos envolvidos em um determinado processo. Ele especifica as</p><p>condições que devem ser satisfeitas e os métodos que devem ser acionados entre os</p><p>objetos envolvidos, bem como a ordem em que isso deve ocorrer durante o processo.</p><p>Para interpretar esse diagrama é necessário conhecer sua notação.</p><p>Fonte: DEVMEDIA. Artigo SQL Magazine 64 - Utilizando UML. Disponível em:</p><p>https://www.devmedia.com.br/artigo-sql-magazine-64-utilizando-uml/12665. Acesso</p><p>em: 4 abr. 2024.</p><p>Quanto</p><p>à notação utilizada no diagrama de sequência, analise as afirmativas a seguir:</p><p>I. As timelines, ou linhas de vidas, fazem parte da dimensão horizontal do diagrama.</p><p>II. O estado representa a situação ou momento no tempo de vida de um objeto, o qual</p><p>pode passar por vários momentos ao longo de sua vida.</p><p>III. Uma mensagem é representada por uma seta horizontal, do emissor para o</p><p>receptor, com o nome e possíveis argumentos, ligando uma linha de vida a outra.</p><p>É correto o que se afirma em:</p><p>A</p><p>I e II, apenas.</p><p>B</p><p>II e III, apenas.</p><p>C</p><p>I, II e III.</p><p>D</p><p>III, apenas.</p><p>E</p><p>I, apenas.</p><p>1 Na programação orientada a objetos, os conceitos organizacionais de pacotes e</p><p>visibilidades desempenham papéis importantes na estruturação e organização do</p><p>código-fonte.</p><p>Pacotes: são espaços de nomes que agrupam classes relacionadas. Eles ajudam a</p><p>organizar e estruturar o código, facilitando a manutenção e promovendo a</p><p>modularidade.</p><p>Visibilidades: referem-se aos níveis de acesso que podem ser atribuídos aos</p><p>membros de uma classe (atributos e métodos). Existem três tipos de visibilidade em</p><p>Java: pública (public), protegida (protected) e privada (private), que determinam quem</p><p>pode acessar esses membros a partir de outras classes.</p><p>Fonte: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda Seus Conceitos e</p><p>Suas Aplicabilidades de Forma Efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Com base nos conceitos apresentados sobre pacotes e visibilidades na programação</p><p>orientada a objetos, analise as afirmativas a seguir:</p><p>I. Pacotes são usados para agrupar classes relacionadas, facilitando a organização e</p><p>a estruturação do código.</p><p>II. A visibilidade privada (private) permite o acesso aos membros por subclasses e</p><p>classes no mesmo pacote, enquanto restringe o acesso fora da classe e de pacotes</p><p>externos.</p><p>III. A visibilidade protegida (protected) permite o acesso aos membros apenas dentro</p><p>da própria classe, impedindo acesso por outras classes, até mesmo as subclasses,</p><p>garantindo o encapsulamento e a ocultação de detalhes de implementação.</p><p>IV. A visibilidade pública (public) permite que os membros de uma classe sejam</p><p>acessados por qualquer outra classe, sem restrições. Isso facilita a reutilização de</p><p>código e promove a interoperabilidade entre diferentes partes do sistema,</p><p>tornando-os disponíveis em todo o código-fonte.</p><p>É correto o que se afirma em:</p><p>A III e IV, apenas.</p><p>B II, III e IV, apenas.</p><p>C II e III, apenas.</p><p>D I e IV, apenas.</p><p>E I, II e III, apenas.</p><p>2 Na programação orientada a objetos, os conceitos estruturais de abstratos,</p><p>atributo, método e mensagem desempenham papéis fundamentais na modelagem e</p><p>interação entre objetos.</p><p>Abstração: Referem-se a ideias ou conceitos sem uma representação física direta,</p><p>descrevendo características ou comportamentos comuns a um grupo de objetos.</p><p>Atributo: Característica de um objeto que descreve seu estado ou propriedade.</p><p>Método: Ação que um objeto pode realizar.</p><p>Mensagem: Interação entre objetos através de pedidos para que um objeto execute</p><p>um de seus métodos.</p><p>Fonte: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda Seus Conceitos e</p><p>Suas Aplicabilidades de Forma Efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Com base nos conceitos apresentados nos temas de abstratos, atributo, método e</p><p>mensagem na programação orientada a objetos, assinale a alternativa correta que</p><p>corresponde à definição de cada conceito:</p><p>A Abstração: Implementação específica e detalhada de cada função de um objeto.</p><p>B Abstração: Descrição de uma ação que um objeto pode realizar.</p><p>C Método: Representação física direta de um conceito ou ideia.</p><p>D Atributo: Característica de um objeto que descreve seu estado ou propriedade.</p><p>E Mensagem: Pedido para que um objeto execute um outro objeto.</p><p>3 No desenvolvimento de software, coesão e acoplamento são dois princípios</p><p>fundamentais de design que influenciam a qualidade e a manutenibilidade do</p><p>software. A coesão refere-se ao grau em que os elementos dentro de um módulo</p><p>estão relacionados e trabalham juntos para realizar uma única tarefa ou</p><p>responsabilidade. Por outro lado, o acoplamento mede a dependência entre os</p><p>módulos ou componentes de um sistema. Um acoplamento baixo é desejável, pois</p><p>indica que os módulos são independentes e podem ser modificados com pouco</p><p>impacto nos outros componentes do sistema.</p><p>Fonte: Adaptado de: LEITE, T.; CARVALHO, T. Orientação a Objetos: Aprenda seus</p><p>conceitos e suas aplicabilidades de forma efetiva. 1. ed. São Paulo: Casa do Código,</p><p>2016.</p><p>Considerando o texto-base sobre coesão e acoplamento, analise as afirmativas a</p><p>seguir:</p><p>I. A coesão e o acoplamento são princípios fundamentais de design que influenciam a</p><p>qualidade e a manutenibilidade do software.</p><p>II. A coesão se refere ao grau em que os elementos dentro de um módulo estão</p><p>relacionados e trabalham juntos para realizar uma única tarefa ou responsabilidade.</p><p>III. Um acoplamento baixo é desejável, pois indica que os módulos são independentes</p><p>e podem ser modificados com pouco impacto nos outros componentes do sistema.</p><p>IV. Um alto grau de coesão é desejável em sistemas de software, pois facilita a</p><p>manutenção e evolução do sistema, mantendo as responsabilidades dos módulos</p><p>bem definidas e agrupadas.</p><p>É correto o que se afirma em:</p><p>A I, apenas.</p><p>B II e IV, apenas.</p><p>C I, II, III e IV.</p><p>D III e IV, apenas.</p><p>E I, II e III, apenas.</p><p>4 A abstração é um conceito fundamental na Orientação a Objetos (OO). Ela permite</p><p>simplificar a complexidade do mundo real por meio de modelos que representam as</p><p>características essenciais de um objeto, enquanto ignoram detalhes irrelevantes.</p><p>Fonte: adaptado de: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda seus</p><p>conceitos e suas aplicabilidades de forma efetiva. 1. ed. São Paulo: Casa do Código,</p><p>2016.</p><p>Com base nas informações apresentadas, avalie as asserções a seguir e a relação</p><p>proposta entre elas:</p><p>I. Colaborador é a abstração das pessoas que trabalham na empresa.</p><p>PORQUE</p><p>II. Dentro de uma empresa, temos marketing, desenvolvedor, gerente e vendedor,</p><p>todos classificados como colaboradores.</p><p>A respeito dessas asserções, assinale a opção correta:</p><p>A A asserção I é uma proposição falsa e a II é uma proposição verdadeira.</p><p>B As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.</p><p>C As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.</p><p>D A asserção I é uma proposição verdadeira e a II é uma proposição falsa.</p><p>E As asserções I e II são falsas.</p><p>5 Na programação orientada a objetos, a herança é um conceito fundamental. Ela</p><p>permite que uma classe, denominada subclasse, herde atributos e métodos de outra</p><p>classe, chamada superclasse. Isso promove a reutilização de código e a criação de</p><p>hierarquias entre as classes. A herança pode ser simples, quando uma subclasse</p><p>herda de uma única superclasse, ou múltipla, quando uma subclasse herda de várias</p><p>superclasses. A herança possibilita o uso do polimorfismo, que é a capacidade de</p><p>objetos de classes diferentes responderem de forma distinta a uma mesma</p><p>mensagem.</p><p>Fonte: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda Seus Conceitos e</p><p>Suas Aplicabilidades de Forma Efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Considere o exemplo de uma hierarquia de classes relacionadas a veículos. Temos</p><p>quatro classes: "Veiculo", “Carro”, "CarroEletrico", "CarroCombustao" e</p><p>“CarroHibrido”.</p><p>Com base nos conceitos apresentados e considerando o exemplo da hierarquia de</p><p>classes de veículos, analise as afirmativas a seguir:</p><p>I. A herança permite que uma subclasse como "Carro” herde atributos e métodos da</p><p>superclasse "Veiculo", promovendo a reutilização de código.</p><p>II. A herança pode ser simples, como quando "Carro" herda apenas de "Veiculo", ou</p><p>múltipla, como “CarroHibrido” herda característica de “CarroEletrico” e</p><p>“CarroCombustao”.</p><p>III. Na herança múltipla, como o caso de "CarroHibrido", a classe pode herdar</p><p>características de várias superclasses, proporcionando uma maior flexibilidade no</p><p>design do sistema, embora também possa resultar em complexidades adicionais.</p><p>IV. O uso do polimorfismo, possibilitado</p><p>pela herança, permite que objetos de classes</p><p>diferentes respondam de forma distinta a uma mesma mensagem. Por exemplo, um</p><p>método "ligar()" pode ser implementado de maneiras diferentes para um</p><p>"CarroEletrico", que liga um motor elétrico, e um "CarroCombustao", que liga um</p><p>motor a combustão.</p><p>É correto o que se afirma em:</p><p>A I, II e III, apenas.</p><p>B I, apenas.</p><p>C I, II, III e IV.</p><p>D III e IV, apenas.</p><p>E II e IV, apenas.</p><p>6 Em um sistema de gestão de uma escola, temos as classes "Professor" e</p><p>"Disciplina". Cada professor ministra uma ou mais disciplinas, e cada disciplina é</p><p>ministrada por apenas um professor.</p><p>Fonte: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda Seus Conceitos e</p><p>Suas Aplicabilidades de Forma Efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Identifique o tipo de associação existente entre as classes "Professor" e "Disciplina":</p><p>A Agregação.</p><p>B Sobrescrita.</p><p>C Composição.</p><p>D Polimorfismo.</p><p>E Herança.</p><p>7 No contexto de programação orientada a objetos, onde uma classe é um modelo</p><p>para criar objetos que define atributos e comportamentos comuns a esses objetos,</p><p>um atributo são características de uma classe que descrevem seu estado, um método</p><p>são ações que um objeto pode executar, um objeto é uma instância de uma classe, e</p><p>uma mensagem é a forma como objetos interagem entre si.</p><p>Fonte: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda Seus Conceitos e</p><p>Suas Aplicabilidades de Forma Efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Considere o contexto de uma loja de eletrodomésticos e analise as afirmativas a</p><p>seguir:</p><p>I. Liquidificador pode ser definido como uma classe e produto como um objeto.</p><p>II. O Produto pode ser definido como uma classe e o liquidificador como um objeto.</p><p>III. Data_venda pode ser definido como um atributo e calcular_preço como um</p><p>método.</p><p>IV. Nome_produto pode ser definido como um método e calcular_desconto como um</p><p>atributo.</p><p>É correto o que se afirma em:</p><p>A I, II e III, apenas.</p><p>B III e IV, apenas.</p><p>C II e III, apenas.</p><p>D I e IV, apenas.</p><p>E II, III e IV, apenas.</p><p>8 Considere um sistema de gerenciamento de produtos em uma loja. Cada produto é</p><p>representado por uma classe Produto, que possui os atributos nome, preco,</p><p>quantidade_estoque e categoria. Além disso, a classe Produto possui os métodos</p><p>adicionar_estoque() e vender(), que atualizam a quantidade em estoque quando</p><p>novos produtos são adicionados ou vendidos.</p><p>Fonte: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda Seus Conceitos e</p><p>Suas Aplicabilidades de Forma Efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Com base nos conceitos de orientação a objetos fornecidos, analise as afirmativas a</p><p>seguir sobre a classe "Produto":</p><p>I. A classe “Produto” é um exemplo de modelo ou template para criar objetos.</p><p>II. Um objeto da classe Produto pode ter diferentes valores para o atributo “preco”.</p><p>III. O atributo “categoria” da classe “Produto” é uma característica que descreve o</p><p>estado do objeto.</p><p>IV. O método “adicionar_estoque()” da classe Produto é um exemplo de mensagem</p><p>sendo enviada entre objetos.</p><p>É correto o que se afirma em:</p><p>A II e III, apenas.</p><p>B III e IV, apenas.</p><p>C I e IV, apenas.</p><p>D II, III e IV, apenas.</p><p>E I, II e III, apenas.</p><p>9 No contexto da programação, os vetores eram comumente utilizados para</p><p>armazenar objetos, porém, apresentam limitações, como tamanho fixo e dificuldade</p><p>de pesquisa. Para contornar essas limitações, recomenda-se o uso de coleções,</p><p>como listas, mapas e conjuntos, que oferecem flexibilidade e facilitam a manipulação</p><p>de dados. As listas, representadas pela classe ArrayList em Java, não possuem</p><p>tamanho fixo e simplificam a inclusão de itens. Os mapas, como HashMap e</p><p>HashTable em Java, utilizam o princípio de chave/valor, enquanto os conjuntos, como</p><p>HashSet. A escolha entre essas estruturas depende do contexto e das necessidades</p><p>do projeto.</p><p>Fonte: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda Seus Conceitos e</p><p>Suas Aplicabilidades de Forma Efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Com base no texto fornecido, assinale a estrutura de dados preferível para evitar a</p><p>inclusão de elementos repetidos:</p><p>A Conjuntos.</p><p>B Pilhas.</p><p>C Listas.</p><p>D Mapas.</p><p>E Vetores.</p><p>10 A programação orientada a objetos foi impulsionada por dois marcos históricos: a</p><p>linguagem SIMULA, que introduziu conceitos fundamentais como classes e objetos, e</p><p>o Smalltalk, que não só consolidou esses conceitos, mas também inovou com uma</p><p>interface gráfica de usuário e um ambiente de desenvolvimento integrado. Ambos</p><p>desempenharam papéis cruciais na evolução da programação, oferecendo as bases</p><p>teóricas e práticas que moldaram o paradigma da programação orientada a objetos</p><p>como o conhecemos hoje.</p><p>Fonte: Adaptado de: BOOCH, G. Object-Oriented Analysis and Design with</p><p>Applications. Addison-Wesley, 1991.</p><p>No desenvolvimento da programação orientada a objetos, dois marcos históricos</p><p>foram fundamentais: o surgimento da linguagem SIMULA e o desenvolvimento do</p><p>Smalltalk. Sobre esses marcos, analise as afirmativas a seguir:</p><p>I. O Smalltalk, desenvolvido por Alan Kay no Xerox PARC, trouxe inovações</p><p>importantes, incluindo uma GUI e um IDE, que revolucionaram o desenvolvimento de</p><p>software.</p><p>II. A linguagem SIMULA, derivada da simulação de eventos discretos, introduziu</p><p>conceitos-chave da programação orientada a objetos, como classes, objetos, herança</p><p>e encapsulamento.</p><p>III. O SIMULA e o Smalltalk foram baseados em linguagens de programação de alto</p><p>nível, como Fortran e Algol 60, respectivamente, adaptando-as para atender às</p><p>necessidades específicas da programação orientada a objetos.</p><p>É correto o que se afirma em:</p><p>A I, apenas.</p><p>B II e III, apenas.</p><p>C I e II, apenas.</p><p>D I, II e III.</p><p>E III, apenas.</p><p>Questão 1</p><p>Sobre os diagramas estruturais, analise as sentenças a seguir:</p><p>Assinale a alternativa CORRETA:</p><p>I – São utilizados para visualizar.</p><p>II – São utilizados para especificar.</p><p>III – São utilizados para construir os aspectos estáticos de um sistema.</p><p>IV – São os diagramas de caso de uso.</p><p>A As sentenças I, II e III estão corretas. (Correta)</p><p>B As sentenças II e IV estão corretas.</p><p>C As sentenças I, II e IV estão corretas.</p><p>D As sentenças III e IV estão corretas.</p><p>Questão 2</p><p>Sobre os diagrama de Estrutura Composta, analise as sentenças a seguir:</p><p>Assinale a alternativa CORRETA:</p><p>I – Um diagrama de estrutura composta mostra a estrutura interna dos classificadores</p><p>estruturados utilizando peças, portas e conectores.</p><p>II – É utilizado para modelar colaborações. Uma colaboração descreve uma visão de um</p><p>conjunto de entidades cooperativas interpretadas por instâncias que cooperam entre si para</p><p>executar uma função específica.</p><p>III – São os diagramas de caso de uso.</p><p>IV – São utilizados para construir os aspectos somente estáticos de um sistema.</p><p>A As sentenças I e II estão corretas. (Correta)</p><p>B As sentenças III e IV estão corretas.</p><p>C As sentenças I, II e IV estão corretas.</p><p>D As sentenças II e IV estão corretas.</p><p>Questão 3</p><p>Sobre os benefícios do uso da UML, analise as sentenças a seguir:</p><p>Assinale a alternativa CORRETA:</p><p>I – Permite uma compreensão mais rápida, assim como abrangente, de componentes e</p><p>funcionalidades que fazem parte de uma aplicação.</p><p>II – Possibilita a elaboração de diagramas à primeira vista simples, mas que resumem o</p><p>difícil trabalho de descrever como classes e processos estão relacionados entre si.</p><p>III – Desenvolvedores de diferentes plataformas podem compreender com mais facilidade</p><p>as características de um sistema (independentemente da tecnologia na qual este foi</p><p>concebido). Isto se deve ao fato da UML ser uma linguagem independente de plataforma.</p><p>IV – Em muitas situações será necessário sincronizar a documentação do projeto,</p><p>atualizando diagramas elaborados num estágio inicial para que contemplem as últimas</p><p>mudanças efetuadas numa aplicação.</p><p>A As sentenças II e IV estão corretas.</p><p>B As sentenças I, II e IV estão corretas.</p><p>C As sentenças III e IV estão corretas.</p><p>D As sentenças I, II e III estão corretas.(Correta)</p><p>Questão 4</p><p>A programação orientada a objetos foi impulsionada por dois marcos históricos: a linguagem</p><p>SIMULA, que introduziu</p><p>conceitos fundamentais como classes e objetos, e o Smalltalk, que</p><p>não só consolidou esses conceitos, mas também inovou com uma interface gráfica de</p><p>usuário e um ambiente de desenvolvimento integrado. Ambos desempenharam papéis</p><p>cruciais na evolução da programação, oferecendo as bases teóricas e práticas que</p><p>moldaram o paradigma da programação orientada a objetos como o conhecemos hoje.</p><p>Fonte: Adaptado de: BOOCH, G. Object-Oriented Analysis and Design with Applications.</p><p>Addison-Wesley, 1991.</p><p>No desenvolvimento da programação orientada a objetos, dois marcos históricos foram</p><p>fundamentais: o surgimento da linguagem SIMULA e o desenvolvimento do Smalltalk. Sobre</p><p>esses marcos, analise as afirmativas a seguir:</p><p>I. O Smalltalk, desenvolvido por Alan Kay no Xerox PARC, trouxe inovações importantes,</p><p>incluindo uma GUI e um IDE, que revolucionaram o desenvolvimento de software.</p><p>II. A linguagem SIMULA, derivada da simulação de eventos discretos, introduziu</p><p>conceitos-chave da programação orientada a objetos, como classes, objetos, herança e</p><p>encapsulamento.</p><p>III. O SIMULA e o Smalltalk foram baseados em linguagens de programação de alto nível,</p><p>como Fortran e Algol 60, respectivamente, adaptando-as para atender às necessidades</p><p>específicas da programação orientada a objetos.</p><p>É correto o que se afirma em:</p><p>A III, apenas.</p><p>B II e III, apenas.</p><p>C I, apenas.</p><p>D I, II e III.</p><p>E I e II, apenas. (Correta)</p><p>Questão 5</p><p>A programação estruturada, que se baseia em sequência, decisão e iteração, foi o</p><p>paradigma dominante antes da orientação a objetos. Embora seja capaz de lidar com</p><p>problemas simples, pode se tornar complexa em situações mais elaboradas, como sistemas</p><p>de controle de bibliotecas, devido à sua limitação na representação de relações complexas</p><p>entre os dados. Por outro lado, a orientação a objetos organiza a complexidade ao modelar</p><p>entidades do mundo real como objetos com comportamentos e propriedades definidas,</p><p>facilitando a manutenção e compreensão do código.</p><p>Fonte: Adaptado de: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda seus</p><p>conceitos e suas aplicabilidades de forma efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Identifique uma das principais limitações da programação estruturada que é superada com</p><p>a implementação da programação orientada a objetos:</p><p>A Limitações na representação de relações complexas entre os dados. (Correta)</p><p>B Propensão a erros devido à redundância de código.</p><p>C Complexidade na manutenção de um código organizado.</p><p>D Falta de abstrações de dados.</p><p>E Dificuldade em lidar com estruturas básicas de programação.</p><p>Questão 6</p><p>Considere um sistema de software para uma biblioteca, onde há diferentes entidades, como</p><p>livros, usuários e empréstimos, pessoas e funcionários. Cada entidade tem atributos e</p><p>comportamentos específicos. Por exemplo, os livros possuem informações como título,</p><p>autor e número de páginas, os usuários têm informações como nome, idade, número de</p><p>identificação e histórico de empréstimos, funcionários tem tem informações como nome,</p><p>idade e nome e os empréstimos precisam rastrear informações como a data de retirada, a</p><p>data de devolução prevista e o estado do livro (empréstimo ou disponível).</p><p>Fonte: adaptado de: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda seus</p><p>conceitos e suas aplicabilidades de forma efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Pensando na estrutura da biblioteca, analise as afirmativas a seguir:</p><p>I. A entidade livro está associada à entidade empréstimo.</p><p>II. A entidade usuário está associada à entidade empréstimo.</p><p>III. A entidade funcionária e usuário herda da entidade pessoa.</p><p>IV. A entidade livro está associada à entidade pessoa e ao objeto.</p><p>É correto o que se afirma em:</p><p>A II e IV, apenas.</p><p>B I, II e III, apenas. (Correta)</p><p>CI, apenas.</p><p>D III e IV, apenas.</p><p>E I, II, III e IV.</p><p>Questão 7</p><p>Os diagramas estruturais na UML são usados para representar a estrutura estática de um</p><p>sistema de software. Eles mostram as entidades envolvidas no sistema, como classes,</p><p>objetos, componentes e pacotes, juntamente com as relações entre elas. Esses diagramas</p><p>fornecem uma visão da organização e da arquitetura do sistema, destacando suas partes</p><p>constituintes e suas interconexões. Os principais diagramas estruturais incluem o Diagrama</p><p>de Classes, o Diagrama de Objetos, o Diagrama de Componentes, o Diagrama de Pacotes</p><p>e outros, cada um focado em aspectos específicos da estrutura do sistema. Esses</p><p>diagramas são fundamentais para entender a composição e a organização do sistema</p><p>durante as fases de análise e design do desenvolvimento de software.</p><p>Fonte: GUEDES, Gilleanes T. A. UML 2: Uma Abordagem Prática. São Paulo: Novatec</p><p>Editora, 2018.</p><p>Considere um sistema de gerenciamento de uma loja on-line que vende produtos</p><p>eletrônicos. O sistema deve permitir o cadastro de clientes, produtos e pedidos. Cada</p><p>produto possui um nome, preço e quantidade em estoque. Cada cliente possui um nome,</p><p>endereço e histórico de pedidos. Um pedido é feito por um cliente e contém um ou mais</p><p>produtos, juntamente com a quantidade de cada produto solicitado.</p><p>Com base no enunciado, identifique qual das seguintes opções melhor representa a</p><p>estrutura de classes do sistema:</p><p>A Classe: ItemPedido - Atributos: produto, quantidade; Classe: Cliente - Atributos: nome,</p><p>endereço, históricoPedidos; Classe: Pedido - Atributos: cliente, listaItensPedido. (Correta)</p><p>B Classe: Produto - Atributos: nome, preço, quantidade; Classe: Cliente - Atributos: nome,</p><p>endereço; Classe: Pedido - Atributos: cliente, listaItensPedido.</p><p>C Classe: Produto - Atributos: nome, preço, quantidadeEmEstoque; Classe: Cliente -</p><p>Atributos: nome, endereço, históricoPedidos; Classe: Pedido - Atributos: cliente,</p><p>listaProdutos.</p><p>D Classe: Produto - Atributos: nome, preço; Classe: Cliente - Atributos: nome, endereço;</p><p>Classe: PedidoUsuario - Atributos: cliente, listaProdutos.</p><p>E Classe: Produto - Atributos: nome, preço, quantidade; Classe: Usuário - Atributos: nome,</p><p>endereço, históricoPedidos; Classe: Pedido - Atributos: cliente, listaProdutos.</p><p>Questão 8</p><p>A UML (Linguagem de Modelagem Unificada) é uma ferramenta essencial para representar</p><p>sistemas de software de forma visual e compreensível. Na versão 2.5, a UML oferece 14</p><p>tipos de diagramas, divididos em estruturais e comportamentais. Os diagramas estruturais</p><p>incluem Classes, Objetos, Componentes, Implantação, Pacotes, Perfil e Estrutura</p><p>Composta. Por outro lado, os diagramas comportamentais abrangem Casos de Uso,</p><p>Estado, Atividades, Máquina de Estados Compostos e Interação, que inclui Sequência,</p><p>Comunicação, Visão Geral da Interação e Tempo. Esses diagramas proporcionam uma</p><p>visão abrangente dos sistemas, facilitando o entendimento e o desenvolvimento dos</p><p>projetos de software.</p><p>Fonte: GUEDES, Gilleanes T. A. UML 2: Uma Abordagem Prática. São Paulo: Novatec</p><p>Editora, 2018.</p><p>De acordo com o texto fornecido, identifique o diagrama da Linguagem de Modelagem</p><p>Unificada (UML) que representa visualmente as interações entre um sistema de software e</p><p>seus usuários ou outros sistemas (atores), descrevendo as funcionalidades do sistema em</p><p>termos de ações que os usuários podem realizar e as respostas do sistema a essas ações:</p><p>A Diagrama de Comunicação.</p><p>B Diagrama de Estrutura Composta.</p><p>C Diagrama de Caso de Uso. (Correta)</p><p>D Diagrama de Atividade.</p><p>E Diagrama de Tempo.</p><p>Questão 9</p><p>A modelagem de software é crucial no desenvolvimento de sistemas, oferecendo uma</p><p>representação visual e estruturada que facilita a compreensão e comunicação. No entanto,</p><p>desafios como o levantamento e análise de requisitos, prototipação, gerenciamento de</p><p>prazos e custos, documentação e manutenção são enfrentados. Estes aspectos são</p><p>fundamentais para garantir a qualidade e eficácia contínua dos sistemas desenvolvidos.</p><p>Fonte: GUEDES, Gilleanes T. A. UML 2: Uma Abordagem Prática. São Paulo: Novatec</p><p>Editora, 2018.</p><p>De acordo com o texto fornecido, identifique a etapa essencial no processo de modelagem</p><p>de software que envolve a identificação e documentação das necessidades dos usuários e</p><p>stakeholders, incluindo a coleta e análise</p><p>das funcionalidades e qualidades que o sistema</p><p>deve ter para atender às expectativas e objetivos do negócio:</p><p>A Gerenciamento de prazos e custos.</p><p>B Levantamento e análise de requisitos. (Correta)</p><p>C Prototipação.</p><p>D Manutenção.</p><p>E Documentação.</p><p>Questão 10</p><p>Os diagramas de classes representam a estrutura estática de um sistema de software,</p><p>mostrando suas classes, atributos, métodos e os relacionamentos entre essas classes.</p><p>Estes diagramas são fundamentais na UML (Unified Modeling Language) para a</p><p>comunicação e entendimento do design de sistemas complexos.</p><p>Fonte: Alonza. Diagramas de classe (UML): Visualizando estrutura [2024]. Disponível em:</p><p>https://alonza.com.br/diagramas-de-classe-uml/. Acesso em: 20 jul. 2024.</p><p>A partir do texto-base, identifique a função do diagrama de classes em um projeto de</p><p>sistema orientado a objetos:</p><p>A Modelar o comportamento dinâmico dos objetos em tempo de execução.</p><p>B Documentar os requisitos funcionais do sistema.</p><p>C Descrever os fluxos de trabalho e processos do sistema.</p><p>D Facilitar a compreensão e a comunicação do design do sistema. (Correta)</p><p>E Definir as políticas de segurança e autorização do sistema.</p><p>Questão 11</p><p>Sobre os diagramas de implantação, analise as sentenças a seguir:</p><p>Assinale a alternativa CORRETA:</p><p>I – Diagramas de Implantação são mais utilizados por equipes de desenvolvimento,</p><p>integração e testes.</p><p>II – Também são usados para mapear os programas que são executados em cada</p><p>computador.</p><p>III – Este tipo de diagrama não modela a visão estática.</p><p>IV – Estes diagramas não podem ser compostos por nós e associações.</p><p>A As sentenças III e IV estão corretas.</p><p>B As sentenças I, II e IV estão corretas.</p><p>C As sentenças II e IV estão corretas.</p><p>D As sentenças I e II estão corretas. (Correta)</p><p>Questão 12</p><p>Sobre os diagrama de Estrutura Composta, analise as sentenças a seguir:</p><p>Assinale a alternativa CORRETA:</p><p>I – Nos diagramas UML, uma colaboração é um tipo de classificador estruturado no qual as</p><p>funções e atributos cooperam para definir a estrutura interna de um classificador.</p><p>II – Você utiliza uma colaboração quando deseja definir apenas as funções e conexões que</p><p>são requeridas para executar um objetivo específico da colaboração.</p><p>III – São os diagramas de caso de uso.</p><p>IV – São utilizados para construir os aspectos somente estáticos de um sistema.</p><p>A As sentenças I e II estão corretas. (Correta)</p><p>B As sentenças III e IV estão corretas.</p><p>C As sentenças I, II e IV estão corretas.</p><p>D As sentenças II e IV estão corretas.</p><p>Questão 13</p><p>A programação estruturada, que se baseia em sequência, decisão e iteração, foi o</p><p>paradigma dominante antes da orientação a objetos. Embora seja capaz de lidar com</p><p>problemas simples, pode se tornar complexa em situações mais elaboradas, como sistemas</p><p>de controle de bibliotecas, devido à sua limitação na representação de relações complexas</p><p>entre os dados. Por outro lado, a orientação a objetos organiza a complexidade ao modelar</p><p>entidades do mundo real como objetos com comportamentos e propriedades definidas,</p><p>facilitando a manutenção e compreensão do código.</p><p>Fonte: Adaptado de: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda seus</p><p>conceitos e suas aplicabilidades de forma efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Identifique uma das principais limitações da programação estruturada que é superada com</p><p>a implementação da programação orientada a objetos:</p><p>A Complexidade na manutenção de um código organizado.</p><p>B Dificuldade em lidar com estruturas básicas de programação.</p><p>C Propensão a erros devido à redundância de código.</p><p>D Falta de abstrações de dados.</p><p>E Limitações na representação de relações complexas entre os dados. (Correta)</p><p>Questão14</p><p>A abstração é um conceito fundamental na Orientação a Objetos (OO). Ela permite</p><p>simplificar a complexidade do mundo real por meio de modelos que representam as</p><p>características essenciais de um objeto, enquanto ignoram detalhes irrelevantes.</p><p>Fonte: adaptado de: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda seus</p><p>conceitos e suas aplicabilidades de forma efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Com base nas informações apresentadas, avalie as asserções a seguir e a relação</p><p>proposta entre elas:</p><p>I. Colaborador é a abstração das pessoas que trabalham na empresa.</p><p>PORQUE</p><p>II. Dentro de uma empresa, temos marketing, desenvolvedor, gerente e vendedor, todos</p><p>classificados como colaboradores.</p><p>A respeito dessas asserções, assinale a opção correta:</p><p>A As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.</p><p>B A asserção I é uma proposição falsa e a II é uma proposição verdadeira.</p><p>C As asserções I e II são verdadeiras, e a II é uma justificativa correta da I. (Correta)</p><p>D As asserções I e II são falsas.</p><p>E A asserção I é uma proposição verdadeira e a II é uma proposição falsa.</p><p>Questão 15</p><p>Nas boas práticas de uso da orientação a objetos descritas por Carvalho (2016), enfatiza-se</p><p>a importância de cuidar dos métodos em uma classe, destacando a redução do tamanho, a</p><p>eliminação da repetição de código e a gestão adequada dos parâmetros. De acordo com as</p><p>orientações de Carvalho (2016), métodos menores e mais concisos são preferíveis,</p><p>facilitando a compreensão e a manutenção do código. Evitar a passagem de muitos</p><p>parâmetros de forma isolada também é recomendado, pois pode aumentar o acoplamento e</p><p>dificultar futuras alterações. A organização adequada dos métodos é crucial para</p><p>desenvolver sistemas mais claros e sustentáveis.</p><p>Fonte: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda Seus Conceitos e Suas</p><p>Aplicabilidades de Forma Efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Com base nas boas práticas de orientação a objetos descritas por Carvalho (2016), analise</p><p>as afirmativas a seguir:</p><p>I. Reduzir o tamanho dos métodos pode contribuir para uma melhor compreensão do código</p><p>e facilitar sua manutenção ao longo do tempo.</p><p>II. Evitar a repetição de código nos métodos é uma prática recomendada, pois reduz a</p><p>redundância e promove uma melhor organização do código.</p><p>III. Passar uma grande quantidade de parâmetros de forma isolada simultaneamente para</p><p>os métodos é uma abordagem apropriada no contexto orientado a objetos.</p><p>É correto o que se afirma em:</p><p>A I e II, apenas. (Correta)</p><p>B III, apenas.</p><p>C II e III, apenas.</p><p>D I, II e III.</p><p>E I, apenas.</p><p>Questão 16</p><p>Os diagramas estruturais na UML são usados para representar a estrutura estática de um</p><p>sistema de software. Eles mostram as entidades envolvidas no sistema, como classes,</p><p>objetos, componentes e pacotes, juntamente com as relações entre elas. Esses diagramas</p><p>fornecem uma visão da organização e da arquitetura do sistema, destacando suas partes</p><p>constituintes e suas interconexões. Os principais diagramas estruturais incluem o Diagrama</p><p>de Classes, o Diagrama de Objetos, o Diagrama de Componentes, o Diagrama de Pacotes</p><p>e outros, cada um focado em aspectos específicos da estrutura do sistema. Esses</p><p>diagramas são fundamentais para entender a composição e a organização do sistema</p><p>durante as fases de análise e design do desenvolvimento de software.</p><p>Fonte: GUEDES, Gilleanes T. A. UML 2: Uma Abordagem Prática. São Paulo: Novatec</p><p>Editora, 2018.</p><p>Considere um sistema de gerenciamento de uma loja on-line que vende produtos</p><p>eletrônicos. O sistema deve permitir o cadastro de clientes, produtos e pedidos. Cada</p><p>produto possui um nome, preço e quantidade em estoque. Cada cliente possui um nome,</p><p>endereço e histórico de pedidos. Um pedido é feito por um cliente e contém um ou mais</p><p>produtos, juntamente com a quantidade de cada produto solicitado.</p><p>Com base no enunciado, identifique qual das seguintes opções melhor representa a</p><p>estrutura de classes do sistema:</p><p>A Classe: Produto - Atributos: nome, preço; Classe: Cliente - Atributos: nome, endereço;</p><p>Classe: PedidoUsuario - Atributos: cliente, listaProdutos.</p><p>B Classe: Produto - Atributos: nome, preço, quantidade; Classe: Cliente - Atributos: nome,</p><p>endereço; Classe: Pedido - Atributos: cliente, listaItensPedido.</p><p>C Classe: Produto - Atributos: nome, preço, quantidadeEmEstoque; Classe: Cliente -</p><p>Atributos:</p><p>nome, endereço, históricoPedidos; Classe: Pedido - Atributos: cliente,</p><p>listaProdutos.</p><p>D Classe: ItemPedido - Atributos: produto, quantidade; Classe: Cliente - Atributos: nome,</p><p>endereço, históricoPedidos; Classe: Pedido - Atributos: cliente, listaItensPedido. (Correta)</p><p>E Classe: Produto - Atributos: nome, preço, quantidade; Classe: Usuário - Atributos: nome,</p><p>endereço, históricoPedidos; Classe: Pedido - Atributos: cliente, listaProdutos.</p><p>Questão 17</p><p>A UML (Linguagem de Modelagem Unificada) é uma ferramenta essencial para representar</p><p>sistemas de software de forma visual e compreensível. Na versão 2.5, a UML oferece 14</p><p>tipos de diagramas, divididos em estruturais e comportamentais. Os diagramas estruturais</p><p>incluem Classes, Objetos, Componentes, Implantação, Pacotes, Perfil e Estrutura</p><p>Composta. Por outro lado, os diagramas comportamentais abrangem Casos de Uso,</p><p>Estado, Atividades, Máquina de Estados Compostos e Interação, que inclui Sequência,</p><p>Comunicação, Visão Geral da Interação e Tempo. Esses diagramas proporcionam uma</p><p>visão abrangente dos sistemas, facilitando o entendimento e o desenvolvimento dos</p><p>projetos de software.</p><p>Fonte: GUEDES, Gilleanes T. A. UML 2: Uma Abordagem Prática. São Paulo: Novatec</p><p>Editora, 2018.</p><p>De acordo com o texto fornecido, identifique o diagrama da Linguagem de Modelagem</p><p>Unificada (UML) que representa visualmente as interações entre um sistema de software e</p><p>seus usuários ou outros sistemas (atores), descrevendo as funcionalidades do sistema em</p><p>termos de ações que os usuários podem realizar e as respostas do sistema a essas ações:</p><p>A Diagrama de Caso de Uso. (Correta)</p><p>B Diagrama de Estrutura Composta.</p><p>C Diagrama de Tempo.</p><p>D Diagrama de Atividade.</p><p>E Diagrama de Comunicação.</p><p>Questão 18</p><p>Na versão 2.5 da UML, são disponibilizados 14 diagramas, divididos em duas categorias:</p><p>estruturais e comportamentais. Os diagramas estruturais têm como objetivo representar a</p><p>organização estática de um sistema, incluindo seus componentes e suas relações. Já, os</p><p>diagramas comportamentais se concentram em descrever a dinâmica do sistema, ou seja,</p><p>como ele se comporta e responde a eventos ao longo do tempo.</p><p>Fonte: PADMANABHAN, Bharath. Unified Modeling Language (UML) Overview.</p><p>Principles of Software Engineering. 2012. Disponível em:</p><p>https://people.eecs.ku.edu/~hossein/810/Readings/UML-diagrams.pdf. Acesso em: 18 abr.</p><p>2024.</p><p>Identifique os tipos de diagramas que compõem os "Diagramas Estruturais" na UML:</p><p>A Caso de Uso, Atividade, Interação, Máquina de Estados e Temporização.</p><p>B Caso de Uso, Atividades, Interação, Máquina de Estados, Temporização, Sequência,</p><p>Comunicação, Visão geral de Interação.</p><p>C Caso de Uso, Atividades, Interação, Máquina de Estados.</p><p>D Composta, Classes, Objetos, Pacotes, Componentes, Implantação e Perfil. (Correta)</p><p>E Caso de Uso, Classes, Objetos, Pacotes, Componentes, Implantação, Perfil.</p><p>Questão 19</p><p>Os diagramas de classes representam a estrutura estática de um sistema de software,</p><p>mostrando suas classes, atributos, métodos e os relacionamentos entre essas classes.</p><p>Estes diagramas são fundamentais na UML (Unified Modeling Language) para a</p><p>comunicação e entendimento do design de sistemas complexos.</p><p>Fonte: Alonza. Diagramas de classe (UML): Visualizando estrutura [2024]. Disponível em:</p><p>https://alonza.com.br/diagramas-de-classe-uml/. Acesso em: 20 jul. 2024.</p><p>A partir do texto-base, identifique a função do diagrama de classes em um projeto de</p><p>sistema orientado a objetos:</p><p>A Definir as políticas de segurança e autorização do sistema.</p><p>B Documentar os requisitos funcionais do sistema.</p><p>C Facilitar a compreensão e a comunicação do design do sistema. (Correta)</p><p>D Modelar o comportamento dinâmico dos objetos em tempo de execução.</p><p>E Descrever os fluxos de trabalho e processos do sistema.</p><p>Questão 20</p><p>Sobre os diagramas de implantação, analise as sentenças a seguir:</p><p>Assinale a alternativa CORRETA:</p><p>I – Mostram a topologia do sistema em tempo de execução.</p><p>II – Representam a configuração e a arquitetura do mesmo em relação aos seus</p><p>componentes.</p><p>III – Este tipo de diagrama não modela a visão estática.</p><p>IV – Estes diagramas não podem ser compostos por nós e associações.</p><p>A As sentenças I, II e IV estão corretas.</p><p>B As sentenças I e II estão corretas.(Correta)</p><p>C As sentenças III e IV estão corretas.</p><p>D As sentenças II e IV estão corretas.</p><p>Questão 2</p><p>Sobre os benefícios do uso da UML, analise as sentenças a seguir:</p><p>Assinale a alternativa CORRETA:</p><p>I – Permite uma compreensão mais rápida, assim como abrangente, de componentes e</p><p>funcionalidades que fazem parte de uma aplicação.</p><p>II – Possibilita a elaboração de diagramas à primeira vista simples, mas que resumem o</p><p>difícil trabalho de descrever como classes e processos estão relacionados entre si.</p><p>III – Desenvolvedores de diferentes plataformas podem compreender com mais facilidade</p><p>as características de um sistema (independentemente da tecnologia na qual este foi</p><p>concebido). Isto se deve ao fato da UML ser uma linguagem independente de plataforma.</p><p>IV – Em muitas situações será necessário sincronizar a documentação do projeto,</p><p>atualizando diagramas elaborados num estágio inicial para que contemplem as últimas</p><p>mudanças efetuadas numa aplicação.</p><p>A As sentenças II e IV estão corretas.</p><p>B As sentenças I, II e III estão corretas. (Correta)</p><p>C As sentenças III e IV estão corretas.</p><p>D As sentenças I, II e IV estão corretas.</p><p>Questão 3</p><p>A programação estruturada, que se baseia em sequência, decisão e iteração, foi o</p><p>paradigma dominante antes da orientação a objetos. Embora seja capaz de lidar com</p><p>problemas simples, pode se tornar complexa em situações mais elaboradas, como sistemas</p><p>de controle de bibliotecas, devido à sua limitação na representação de relações complexas</p><p>entre os dados. Por outro lado, a orientação a objetos organiza a complexidade ao modelar</p><p>entidades do mundo real como objetos com comportamentos e propriedades definidas,</p><p>facilitando a manutenção e compreensão do código.</p><p>Fonte: Adaptado de: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda seus</p><p>conceitos e suas aplicabilidades de forma efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Identifique uma das principais limitações da programação estruturada que é superada com</p><p>a implementação da programação orientada a objetos:</p><p>A Dificuldade em lidar com estruturas básicas de programação.</p><p>B Falta de abstrações de dados.</p><p>C Complexidade na manutenção de um código organizado.</p><p>D Limitações na representação de relações complexas entre os dados.(Correta)</p><p>E Propensão a erros devido à redundância de código.</p><p>Considere um sistema de software para uma biblioteca, onde há diferentes entidades, como</p><p>livros, usuários e empréstimos, pessoas e funcionários. Cada entidade tem atributos e</p><p>comportamentos específicos. Por exemplo, os livros possuem informações como título,</p><p>autor e número de páginas, os usuários têm informações como nome, idade, número de</p><p>identificação e histórico de empréstimos, funcionários tem tem informações como nome,</p><p>idade e nome e os empréstimos precisam rastrear informações como a data de retirada, a</p><p>data de devolução prevista e o estado do livro (empréstimo ou disponível).</p><p>Fonte: adaptado de: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda seus</p><p>conceitos e suas aplicabilidades de forma efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Pensando na estrutura da biblioteca, analise as afirmativas a seguir:</p><p>I. A entidade livro está associada à entidade empréstimo.</p><p>II. A entidade usuário está associada à entidade empréstimo.</p><p>III. A entidade funcionária e usuário herda da entidade pessoa.</p><p>IV. A entidade livro está associada à entidade pessoa e ao objeto.</p><p>É correto o que se afirma em:</p><p>A I, II e III, apenas. (Correta)</p><p>B I, apenas.</p><p>C I, II, III e IV.</p><p>D II e IV, apenas.</p><p>E III e IV, apenas.</p><p>A abstração é um conceito fundamental na Orientação a Objetos (OO). Ela permite</p><p>simplificar a complexidade do mundo real por meio de modelos que representam as</p><p>características essenciais de um objeto, enquanto ignoram detalhes irrelevantes.</p><p>Fonte: adaptado de: CARVALHO, Tiago Leite.</p><p>Orientação a Objetos: Aprenda seus</p><p>conceitos e suas aplicabilidades de forma efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Com base nas informações apresentadas, avalie as asserções a seguir e a relação</p><p>proposta entre elas:</p><p>I. Colaborador é a abstração das pessoas que trabalham na empresa.</p><p>PORQUE</p><p>II. Dentro de uma empresa, temos marketing, desenvolvedor, gerente e vendedor, todos</p><p>classificados como colaboradores.</p><p>A respeito dessas asserções, assinale a opção correta:</p><p>A As asserções I e II são falsas.</p><p>B As asserções I e II são verdadeiras, e a II é uma justificativa correta da I. (Correta)</p><p>C A asserção I é uma proposição verdadeira e a II é uma proposição falsa.</p><p>D As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.</p><p>E A asserção I é uma proposição falsa e a II é uma proposição verdadeira.</p><p>O Diagrama de Caso de Uso na UML é uma ferramenta essencial para modelar os</p><p>requisitos de um sistema de software, destacando as interações entre os usuários e o</p><p>sistema. Ele consiste em atores, casos de uso e relacionamentos, proporcionando uma</p><p>representação visual das funcionalidades do sistema. Esse diagrama é útil para elicitar</p><p>requisitos, comunicar as necessidades do sistema e validar as especificações com os</p><p>stakeholders.</p><p>Fonte: GUEDES, Gilleanes T. A. UML 2: Uma Abordagem Prática. São Paulo: Novatec</p><p>Editora, 2018.</p><p>Considere um sistema de gerenciamento de uma biblioteca. Os atores principais do sistema</p><p>são o Bibliotecário e o Usuário. O sistema permite que o Usuário realize as seguintes</p><p>ações: buscar livros pelo título, verificar a disponibilidade de um livro, solicitar empréstimo</p><p>de um livro e devolver um livro. O Bibliotecário tem a responsabilidade de adicionar novos</p><p>livros ao sistema e remover livros danificados.</p><p>Selecione qual o caso de usos que melhor representaria esse enunciado:</p><p>A Adicionar Livro, Remover Livro.</p><p>B Buscar Livros, Verificar Disponibilidade, Solicitar Empréstimo, Devolver Livro, Adicionar</p><p>Livro, Remover Livro. (Correta)</p><p>C Buscar Livros, Devolver Livro, Adicionar Livro, Remover Livro.</p><p>D Buscar Livros, Realizar Empréstimo, Devolver Livro, Adicionar Livro, Remover Livro.</p><p>E Buscar Livros, Solicitar Empréstimo, Devolver Livro, Adicionar Livro, Remover Livro.</p><p>O diagrama de caso de uso da UML é uma ferramenta essencial na engenharia de</p><p>software, utilizada para capturar e representar os requisitos funcionais de um sistema. Ele</p><p>inclui elementos fundamentais como atores, casos de uso e associações. Este diagrama</p><p>visualiza as interações entre os usuários e o sistema, destacando as funcionalidades e</p><p>como são utilizadas. Seu propósito principal é fornecer uma representação clara e concisa</p><p>dos requisitos do sistema, facilitando a comunicação entre os stakeholders e garantindo a</p><p>compreensão e documentação precisas das funcionalidades desejadas.</p><p>Fonte: GUEDES, Gilleanes T. A. UML 2: Uma Abordagem Prática. São Paulo: Novatec</p><p>Editora, 2018.</p><p>Com base no texto fornecido, identifique a principal função dos atores em um diagrama de</p><p>casos de uso na UML:</p><p>A Documentar as etapas necessárias para a execução de um caso de uso.</p><p>B Especificar as condições que acionam a execução de um caso de uso.</p><p>C Definir as associações entre os casos de uso e os elementos do sistema.</p><p>D Representar as funcionalidades oferecidas pelo sistema aos usuários.</p><p>E Identificar os diferentes papéis desempenhados pelos usuários ou sistemas externos que</p><p>interagem com o sistema.(Correta)</p><p>O diagrama de sequência foca na sequência temporal das mensagens trocadas entre os</p><p>objetos participantes, incluindo as condições que precisam ser atendidas e os métodos a</p><p>serem chamados. As mensagens são ilustradas por setas horizontais que mostram a</p><p>direção, enquanto as linhas de vida dos objetos estão dispostas verticalmente no diagrama.</p><p>Fonte: DevMedia. Análise e Projeto Orientado a Objetos. Disponível em:</p><p>https://www.devmedia.com.br/analise-e-projeto-orientado-a-objetos/23349. Acesso em: 16</p><p>jul. 2024.</p><p>Identifique o elemento representado por setas horizontais em um diagrama de sequência:</p><p>A Mensagens entre objetos.(Correta)</p><p>B Estados dos objetos.</p><p>C Linhas de vida dos objetos.</p><p>D Eventos internos.</p><p>E Transições de estados.</p><p>O Diagrama de Pacotes na UML (Unified Modeling Language) é uma ferramenta essencial</p><p>para organizar sistemas de software em uma estrutura modular. Esses diagramas são</p><p>utilizados para agrupar elementos relacionados, como classes, interfaces, componentes e</p><p>outros diagramas, em unidades chamadas "pacotes". Cada pacote serve como um</p><p>namespace que contém seus próprios elementos e pode interagir com outros pacotes. A</p><p>organização em pacotes facilita o gerenciamento da complexidade do sistema, promove a</p><p>reutilização de software e ajuda na manutenção ao separar diferentes aspectos do sistema</p><p>em módulos lógicos claramente definidos.</p><p>Fonte: GITMIND. Diagrama de pacotes. Disponível em:</p><p>https://gitmind.com/pt/diagrama-de-pacotes.html. Acesso em: 24 jul. 2024.</p><p>Identifique o tipo de diagrama da UML utilizado para a representação de componentes de</p><p>software em módulos lógicos em um projeto de sistema de informação:</p><p>A Diagrama de Implantação.</p><p>B Diagrama de Pacotes.(Correta)</p><p>C Diagrama de Componentes.</p><p>D Diagrama de Colaboração.</p><p>E Diagrama de Estrutura Composta.</p><p>Refatoração de código toma experiência e tempo do desenvolvedor. Tempo para entender o</p><p>código. Tempo para entender quais refatorações devem ser utilizadas e em qual contexto.</p><p>Tempo para aprender a usar as ferramentas de refatoração corretamente. Tempo para</p><p>aprender o quanto a refatoração é suficiente. A refatoração pode surgir em dois momentos:</p><p>para melhorar o código existente ou quando temos que jogar fora e começar do zero.</p><p>Fonte: "Trabalhando com refatoração". Disponível em:</p><p>https://imasters.com.br/desenvolvimento/trabalhando-com-refatoracao. Acesso em: 11 abr.</p><p>2024.</p><p>Considerando o texto sobre refatoração, assinale a alternativa correta sobre as razões para</p><p>refatorar um código:</p><p>A Para acrescentar novas funcionalidades, quando se precisa consertar uma falha e</p><p>enquanto revisa o código.</p><p>B Para alterar funcionalidades no sistema, quando se precisa consertar um defeito na rede</p><p>e enquanto revisa os requisitos.</p><p>C Para acrescentar recursos, quando se precisa consertar defeito de uma nova</p><p>funcionalidade e enquanto revisa os requisitos.</p><p>D Para adaptar o código a novas plataformas, quando se deseja melhorar a eficiência de</p><p>execução e enquanto se verifica a compatibilidade com outras aplicações.</p><p>E Para melhorar o projeto do Software, para tornar o software mais fácil de entender, para</p><p>ajudar a encontrar falhas e para ajudar a programar mais rapidamente.(Correta)</p><p>Sobre os diagramas estruturais, analise as sentenças a seguir:</p><p>Assinale a alternativa CORRETA:</p><p>I – São utilizados para visualizar.</p><p>II – São utilizados para especificar.</p><p>III – São utilizados para construir os aspectos estáticos de um sistema.</p><p>IV – São os diagramas de caso de uso.</p><p>A As sentenças I, II e III estão corretas.(Correta)</p><p>B As sentenças II e IV estão corretas.</p><p>C As sentenças I, II e IV estão corretas.</p><p>D As sentenças III e IV estão corretas.</p><p>Sobre os diagrama de Estrutura Composta, analise as sentenças a seguir:</p><p>Assinale a alternativa CORRETA:</p><p>I – Um diagrama de estrutura composta mostra a estrutura interna dos classificadores</p><p>estruturados utilizando peças, portas e conectores.</p><p>II – É utilizado para modelar colaborações. Uma colaboração descreve uma visão de um</p><p>conjunto de entidades cooperativas interpretadas por instâncias que cooperam entre si para</p><p>executar uma função específica.</p><p>III – São os diagramas de caso de uso.</p><p>IV – São utilizados para construir os aspectos somente estáticos de um sistema.</p><p>A As sentenças I, II e IV estão corretas.</p><p>B As sentenças II e IV estão corretas.</p><p>C As sentenças III e IV estão corretas.</p><p>D As sentenças I e II estão corretas.(Correta)</p><p>s</p><p>Sobre os desvantagem do uso da UML, analise as sentenças a seguir:</p><p>Assinale a alternativa CORRETA:</p><p>I – Em muitas situações será necessário sincronizar a documentação do projeto,</p><p>atualizando diagramas elaborados</p><p>num estágio inicial para que contemplem as últimas</p><p>mudanças efetuadas numa aplicação.</p><p>II – É essencial que a construção de diagramas UML priorize partes mais complexas ou</p><p>críticas de um sistema.</p><p>III – A construção de diagramas muito extensos pode dificultar a compreensão de</p><p>determinados pontos de um sistema. A montagem de representações com um escopo mais</p><p>reduzido pode ser a melhor opção em alguns momentos, visto que permite um melhor</p><p>entendimento de alguns detalhes que passariam despercebidos num diagrama abrangendo</p><p>um contexto bem maior.</p><p>IV – Permite uma compreensão mais rápida, assim como abrangente, de componentes e</p><p>funcionalidades que fazem parte de uma aplicação.</p><p>A As sentenças II e IV estão corretas.</p><p>B As sentenças III e IV estão corretas.</p><p>C As sentenças I, II e IV estão corretas.</p><p>D As sentenças I, II e III estão corretas.(Correta)</p><p>A programação estruturada, que se baseia em sequência, decisão e iteração, foi o</p><p>paradigma dominante antes da orientação a objetos. Embora seja capaz de lidar com</p><p>problemas simples, pode se tornar complexa em situações mais elaboradas, como sistemas</p><p>de controle de bibliotecas, devido à sua limitação na representação de relações complexas</p><p>entre os dados. Por outro lado, a orientação a objetos organiza a complexidade ao modelar</p><p>entidades do mundo real como objetos com comportamentos e propriedades definidas,</p><p>facilitando a manutenção e compreensão do código.</p><p>Fonte: Adaptado de: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda seus</p><p>conceitos e suas aplicabilidades de forma efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Identifique uma das principais limitações da programação estruturada que é superada com</p><p>a implementação da programação orientada a objetos:</p><p>A Falta de abstrações de dados.</p><p>B Propensão a erros devido à redundância de código.</p><p>C Complexidade na manutenção de um código organizado.</p><p>D Limitações na representação de relações complexas entre os dados.(Correta)</p><p>E Dificuldade em lidar com estruturas básicas de programação.</p><p>Considere um sistema de software para uma biblioteca, onde há diferentes entidades, como</p><p>livros, usuários e empréstimos, pessoas e funcionários. Cada entidade tem atributos e</p><p>comportamentos específicos. Por exemplo, os livros possuem informações como título,</p><p>autor e número de páginas, os usuários têm informações como nome, idade, número de</p><p>identificação e histórico de empréstimos, funcionários tem tem informações como nome,</p><p>idade e nome e os empréstimos precisam rastrear informações como a data de retirada, a</p><p>data de devolução prevista e o estado do livro (empréstimo ou disponível).</p><p>Fonte: adaptado de: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda seus</p><p>conceitos e suas aplicabilidades de forma efetiva. 1. ed. São Paulo: Casa do Código, 2016.</p><p>Pensando na estrutura da biblioteca, analise as afirmativas a seguir:</p><p>I. A entidade livro está associada à entidade empréstimo.</p><p>II. A entidade usuário está associada à entidade empréstimo.</p><p>III. A entidade funcionária e usuário herda da entidade pessoa.</p><p>IV. A entidade livro está associada à entidade pessoa e ao objeto.</p><p>É correto o que se afirma em:</p><p>A I, II, III e IV.</p><p>B I, II e III, apenas.(Correta)</p><p>C II e IV, apenas.</p><p>D III e IV, apenas.</p><p>E I, apenas.</p><p>Os conceitos estruturais, relacionais e organizacionais desempenham papéis fundamentais</p><p>na programação orientada a objetos (POO). A estrutura de uma aplicação é moldada pela</p><p>forma como as classes e objetos são definidos, enquanto as relações entre essas classes e</p><p>objetos são determinadas pelos conceitos relacionais. Por fim, os conceitos organizacionais,</p><p>como pacotes e visibilidades, organizam o código e determinam como os elementos podem</p><p>ser acessados e interagem entre si. Esses conceitos são essenciais para criar sistemas de</p><p>software robustos, escaláveis e de fácil manutenção.</p><p>Fonte: adaptado de: CARVALHO, Tiago Leite. Orientação a Objetos: Aprenda Seus</p><p>Conceitos e Suas Aplicabilidades de Forma Efetiva. 1. ed. São Paulo: Casa do Código,</p><p>2016.</p><p>Com base nos conceitos apresentados nos temas de conceitos estruturais, conceitos</p><p>relacionais e conceitos organizacionais, analise as afirmativas a seguir:</p><p>I. Pacotes e visibilidades são exemplos de conceitos organizacionais na programação</p><p>orientada a objetos.</p><p>II. Herança, encapsulamento e polimorfismo são conceitos fundamentais na programação</p><p>orientada a objetos.</p><p>III. Os conceitos de associação, interfaces e visibilidade são exemplos de conceitos</p><p>relacionais na programação orientada a objetos.</p><p>É correto o que se afirma em:</p><p>A III, apenas.</p><p>B II e III, apenas.</p><p>C I, apenas.</p><p>D I e II, apenas.(Correta)</p><p>E I, II e III.</p><p>A UML (Linguagem de Modelagem Unificada) é uma ferramenta essencial para representar</p><p>sistemas de software de forma visual e compreensível. Na versão 2.5, a UML oferece 14</p><p>tipos de diagramas, divididos em estruturais e comportamentais. Os diagramas estruturais</p><p>incluem Classes, Objetos, Componentes, Implantação, Pacotes, Perfil e Estrutura</p><p>Composta. Por outro lado, os diagramas comportamentais abrangem Casos de Uso,</p><p>Estado, Atividades, Máquina de Estados Compostos e Interação, que inclui Sequência,</p><p>Comunicação, Visão Geral da Interação e Tempo. Esses diagramas proporcionam uma</p><p>visão abrangente dos sistemas, facilitando o entendimento e o desenvolvimento dos</p><p>projetos de software.</p><p>Fonte: GUEDES, Gilleanes T. A. UML 2: Uma Abordagem Prática. São Paulo: Novatec</p><p>Editora, 2018.</p><p>De acordo com o texto fornecido, identifique o diagrama da Linguagem de Modelagem</p><p>Unificada (UML) que representa visualmente as interações entre um sistema de software e</p><p>seus usuários ou outros sistemas (atores), descrevendo as funcionalidades do sistema em</p><p>termos de ações que os usuários podem realizar e as respostas do sistema a essas ações:</p><p>A Diagrama de Caso de Uso.(Correta)</p><p>B Diagrama de Atividade.</p><p>C Diagrama de Comunicação.</p><p>D Diagrama de Estrutura Composta.</p><p>E Diagrama de Tempo.</p><p>Quando um objeto passa por seu ciclo de vida, ele transita por vários estados diferentes.</p><p>Qualquer coisa que altere o estado atual de um objeto, desencadeando uma transição de</p><p>estados, é chamada de evento. Os eventos são geralmente classificados em eventos</p><p>externos e eventos internos. Um evento externo é um acontecimento que ocorre fora do</p><p>sistema e afeta o sistema, sendo causado pelos atores associados a ele. Já os eventos</p><p>internos são causados e recebidos por objetos que estão cumprindo seus ciclos de vida</p><p>dentro do sistema. Uma solicitação de execução de uma operação de um objeto por outro</p><p>em uma colaboração é um exemplo de evento interno.</p><p>Fonte: DEVMEDIA. Diagramas de Transição de Estados - Engenharia de Software 30.</p><p>Disponível em:</p><p>https://www.devmedia.com.br/diagramas-de-transicao-de-estados-engenharia-de-software-3</p><p>0/18444. Acesso em: 4 abr. 2024.</p><p>Com base no texto fornecido, qual a interpretação para evento interno?</p><p>A Um evento interno é a solicitação de execução de uma operação de um objeto por outro</p><p>em uma colaboração.</p><p>B Um evento interno é causado e recebido por objetos que cumprem seus ciclos de vida</p><p>dentro do sistema.(Correta)</p><p>C Um evento interno é um evento classificado como ordinariamente externo, causado pelos</p><p>atores associados ao sistema.</p><p>D Um evento interno é um acontecimento que ocorre fora do sistema e afeta o mesmo.</p><p>E Um evento interno é qualquer coisa que altere o estado atual de um objeto,</p><p>desencadeando uma transição de estados.</p><p>Em programação, um diagrama de classes é uma representação da estrutura e relações</p><p>das classes que servem de modelo para objetos. Podemos afirmar de maneira mais simples</p><p>que seria um conjunto de objetos com as mesmas características, assim saberemos</p><p>identificar objetos e agrupá-los, de forma a encontrar suas respectivas classes. Na Unified</p><p>Modeling Language (UML) em diagrama de classe, uma classe é representada por um</p><p>retângulo com três divisões, são elas: nome da classe, seus atributos e, por fim, os</p><p>métodos.</p><p>Fonte: DEVMEDIA. Orientações básicas na elaboração de um diagrama de classes.</p><p>Disponível em:</p><p>https://www.devmedia.com.br/orientacoes-basicas-na-elaboracao-de-um-diagrama-de-class</p>