Prévia do material em texto
<p>1- O diagrama de caso de uso da UML é uma ferramenta essencial na engenharia de software, utilizada para capturar e representar os requisitos funcionais de um sistema. Ele inclui elementos fundamentais como atores, casos de uso e associações. Este diagrama visualiza as interações entre os usuários e o sistema, destacando as funcionalidades e como são utilizadas. Seu propósito principal é fornecer uma representação clara e concisa dos requisitos do sistema, facilitando a comunicação entre os stakeholders e garantindo a compreensão e documentação precisas das funcionalidades desejadas. Fonte: GUEDES, Gilleanes T. A. UML 2: Uma Abordagem Prática. São Paulo: Novatec Editora, 2018.</p><p>Com base no texto fornecido, identifique a principal função dos atores em um diagrama de casos de uso na UML:</p><p>A ) Definir as associações entre os casos de uso e os elementos do sistema.</p><p>B ) Especificar as condições que acionam a execução de um caso de uso.</p><p>C ) Documentar as etapas necessárias para a execução de um caso de uso.</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 interagem com o sistema.</p><p>2- Nas boas práticas de uso da orientação a objetos descritas por Carvalho (2016), enfatiza-se a importância de cuidar dos métodos em uma classe, destacando a redução do tamanho, a eliminação da repetição de código e a gestão adequada dos parâmetros. De acordo com as orientações de Carvalho (2016), métodos menores e mais concisos são preferíveis, facilitando a compreensão e a manutenção do código. Evitar a passagem de muitos parâmetros de forma isolada também é recomendado, pois pode aumentar o acoplamento e dificultar futuras alterações. A organização adequada dos métodos é crucial para desenvolver sistemas mais claros e sustentáveis. 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.</p><p>Com base nas boas práticas de orientação a objetos descritas por Carvalho (2016), analise as afirmativas a seguir:</p><p>I. Reduzir o tamanho dos métodos pode contribuir para uma melhor compreensão do código 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 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 os métodos é uma abordagem apropriada no contexto orientado 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>3- A programação estruturada, que se baseia em sequência, decisão e iteração, foi o paradigma dominante antes da orientação a objetos. Embora seja capaz de lidar com problemas simples, pode se tornar complexa em situações mais elaboradas, como sistemas de controle de bibliotecas, devido à sua limitação na representação de relações complexas entre os dados. Por outro lado, a orientação a objetos organiza a complexidade ao modelar entidades do mundo real como objetos com comportamentos e propriedades definidas, facilitando a manutenção e compreensão do código.</p><p>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.</p><p>Identifique uma das principais limitações da programação estruturada que é superada com 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 ) Limitações na representação de relações complexas entre os dados.</p><p>D ) Propensão a erros devido à redundância de código.</p><p>E ) Complexidade na manutenção de um código organizado.</p><p>4- Descrito por Carvalho (2016), o uso indiscriminado de strings para definir atributos em classes é um problema comum que pode levar a situações adversas. Embora strings sejam amplamente utilizadas devido à sua versatilidade, é importante tomar cuidado para evitar problemas futuros.</p><p>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.</p><p>Considerando as boas práticas destacadas por Carvalho (2016) sobre o uso parcimonioso de strings na definição de atributos em classes, avalie a seguinte situação:</p><p>Você está desenvolvendo uma classe Pessoa em um sistema de gerenciamento de clientes. A classe possui os seguintes atributos: nome, rua, numeroEndereco, dataNascimento e CPF.</p><p>Identifique a prática recomendada por Carvalho (2016) para a definição dos atributos da classe Pessoa.</p><p>A ) Definir o nome, rua, cpf e numeroEndereco como string, dataNascimento como date.</p><p>B ) Definir o nome, rua, cpf como string, dataNascimento como date e numeroEndereco como inteiro.</p><p>C ) Definir nome, rua como string, dataNascimento como date e CPF e numeroEndereco como inteiro.</p><p>D ) Definir o nome, rua, cpf e numeroEndereco como string, dataNascimento como inteiro.</p><p>E ) Definir todos os atributos nome, rua, numeroEndereco, dataNascimento e CPF como string.</p><p>5- A UML (Linguagem de Modelagem Unificada) é uma ferramenta essencial para representar sistemas de software de forma visual e compreensível. Na versão 2.5, a UML oferece 14 tipos de diagramas, divididos em estruturais e comportamentais. Os diagramas estruturais incluem Classes, Objetos, Componentes, Implantação, Pacotes, Perfil e Estrutura Composta. Por outro lado, os diagramas comportamentais abrangem Casos de Uso, Estado, Atividades, Máquina de Estados Compostos e Interação, que inclui Sequência, Comunicação, Visão Geral da Interação e Tempo. Esses diagramas proporcionam uma visão abrangente dos sistemas, facilitando o 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 Editora, 2018.</p><p>De acordo com o texto fornecido, identifique o diagrama da Linguagem de Modelagem Unificada (UML) que representa visualmente as interações entre um sistema de software e seus usuários ou outros sistemas (atores), descrevendo as funcionalidades do sistema em termos de ações que os usuários podem realizar e as respostas do sistema a essas ações:</p><p>A ) Diagrama de Estrutura Composta.</p><p>B ) Diagrama de Comunicação.</p><p>C ) Diagrama de Caso de Uso.</p><p>D ) Diagrama de Atividade.</p><p>E ) Diagrama de Tempo.</p><p>6- 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.</p><p>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.</p><p>Identifique qual das alternativas a seguir descreve o conceito de herança na orientação a objetos:</p><p>A ) A interação entre objetos para realizar uma tarefa específica.</p><p>B ) O mecanismo que permite a criação de novas classes com base em classes existentes, herdando seus atributos e métodos.</p><p>C ) A capacidade de uma classe criar múltiplas instâncias de outras classes.</p><p>D ) A organização dos dados em formato de tabela para facilitar o acesso e a modificação.</p><p>E ) A definição de comportamentos dinâmicos que são executados em tempo de execução.</p><p>7- Os padrões de projetos tornam mais fácil reutilizar soluções e arquiteturas bem-sucedidas para construir softwares orientados a objetos de forma flexível e fácil de manter. O uso de padrões de projeto pode reduzir a complexidade do processo de projetar software.</p><p>Fonte: "Conheça os padrões de projeto". Disponível em: https://www.devmedia.com.br/conheca-os-padroes-de-projeto/957. Acesso em: 11 abr. 2024.</p><p>Um padrão descreve</p><p>o problema, uma possível solução, quando pode ser aplicável e quais as consequências de seu uso. Analisando o texto, assinale a alternativa correta sobre as características dos padrões de projeto:</p><p>A ) Fornecem diretrizes específicas para a interação do usuário com interfaces gráficas, permitindo uma experiência de usuário uniforme e previsível em diferentes plataformas de software.</p><p>B ) Descrevem relações entre conceitos, estruturas e mecanismos existentes nos hardwares da empresa, assim como documentam todos os tipos de hardware e software da empresa.</p><p>C ) Descrevem e justificam soluções para problemas concretos e bem definidos, assim como documentam a experiência existente e comprovada.</p><p>D ) Descrevem relações entre conceitos, estruturas e mecanismos existentes nos hardware e software, assim, como podem ser utilizados em conjunto com outros padrões.</p><p>E ) Promovem práticas padrão para a gestão de dados em redes sociais, garantindo que as informações dos usuários sejam armazenadas de forma segura e acessível.</p><p>8- Os diagramas de classes representam a estrutura estática de um sistema de software, mostrando suas classes, atributos, métodos e os relacionamentos entre essas classes. Estes diagramas são fundamentais na UML (Unified Modeling Language) para a comunicação e entendimento do design de sistemas complexos.</p><p>Fonte: Alonza. Diagramas de classe (UML): Visualizando estrutura [2024]. Disponível em: 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 sistema orientado a objetos:</p><p>A ) Modelar o comportamento dinâmico dos objetos em tempo de execução.</p><p>B ) Definir as políticas de segurança e autorização do sistema.</p><p>C ) Facilitar a compreensão e a comunicação do design do sistema.</p><p>D ) Documentar os requisitos funcionais do sistema.</p><p>E ) Descrever os fluxos de trabalho e processos do sistema.</p><p>9- A reutilização de software, um campo essencial na engenharia de software, envolve a aplicação de métodos organizados, técnicas específicas e ferramentas dedicadas para produzir software de alta qualidade de forma econômica. Esse processo não só melhora a eficiência, mas também reduz significativamente os custos de desenvolvimento ao aproveitar componentes existentes.</p><p>Fonte: "Reutilização de software: revista Engenharia de Software Magazine 39". Disponível em: https://www.devmedia.com.br/reutilizacao-de-software-revista-engenharia-de-software-magazine-39/21956. Acesso em: 11 abr. 2024.</p><p>Considerando a leitura do texto sobre reutilização, assinale a alternativa que apresenta uma vantagem da reutilização:</p><p>A ) Aumento da complexidade do sistema, devido à necessidade de integrar componentes de diferentes origens.</p><p>B ) A elevação do risco de falhas, decorrente da adaptação de componentes antigos a novos contextos.</p><p>C ) A redução dos custos globais de desenvolvimento, pois temos menos itens que precisam ser concebidos, especificados, implementados e validados.</p><p>D ) Redução da capacidade de um item de software ser sempre reúso repetidamente, sem modificação.</p><p>E ) Podem ser reutilizadas soluções novas somente, pois reduz as incertezas quanto aos erros de desenvolvimento.</p><p>10- O diagrama de sequência foca na sequência temporal das mensagens trocadas entre os objetos participantes, incluindo as condições que precisam ser atendidas e os métodos a serem chamados. As mensagens são ilustradas por setas horizontais que mostram a 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: https://www.devmedia.com.br/analise-e-projeto-orientado-a-objetos/23349. Acesso em: 16 jul. 2024.</p><p>Identifique o elemento representado por setas horizontais em um diagrama de sequência:</p><p>A ) Estados dos objetos.</p><p>B ) Transições de estados.</p><p>C ) Mensagens entre objetos.</p><p>D ) Linhas de vida dos objetos.</p><p>E ) Eventos internos.</p>