Questões de Concurso
Sobre orientação a objetos em engenharia de software
Foram encontradas 1.179 questões
No desenvolvimento de um sistema de gestão acadêmica, o arquiteto de software mapeou duas relações estruturais importantes na UML:
1. Uma Universidade é composta por vários Departamentos. Se a Universidade for extinta, todos os seus Departamentos deixam de existir.
2. Um Professor está lotado em um Departamento. Se o Departamento for extinto, o Professor continua existindo de forma independente no sistema.
Considerando os conceitos de orientação a objetos e a representação correta na UML 2, as relações estruturais 1 e 2 são classificadas, respectivamente, como:
Julgue o item a seguir, relativo a projeto, a arquitetura e a qualidade de sistemas.
Nos princípios SOLID de projetos orientados a objetos, o princípio da inversão de dependência (DIP) estabelece que módulos de alto nível não devem depender de módulos de baixo nível, devendo ambas as camadas se conectar por meio de abstrações.
Turma "1" ———————— "0..*" Estudante
Na associação apresentada, as multiplicidades 1 em Turma e 0..* em Estudante indicam, respectivamente, quantas instâncias de cada classe podem estar associadas a uma instância da classe oposta.
Assinale a alternativa que apresenta a interpretação correta dessa associação.
Considere o seguinte Diagrama de Classes da UML (Unified Modeling Language):

Analise as seguintes afirmativas:
I. Esse diagrama demonstra uma associação de agregação existente entre uma classe Pessoa e uma classe ContaComum.
Il. Ao observarmos as multiplicidades dessa associação, percebemos que, da mesma forma que uma pessoa pode possuir muitas contas, uma conta pode ser possuída por muitas pessoas, como no caso de uma conta conjunta.
Ill. A associação de agregação pode, em alguns casos, ser substituída por uma associação binária simples, dependendo da visão de quem faz a modelagem.
Está correto o que se afirma em:
O cenário descrito apresenta sérios problemas relacionados aos conceitos fundamentais de orientação a objetos e engenharia de software estrutural.
Assinale a opção que identifica o diagnóstico técnico dessa classe e a recomendação de boas práticas de projeto aplicável.
• Relacionamentos entre casos de uso;
• Fragmentos combinados em diagramas de sequência;
• Composição entre objetos; e
• Navegabilidade e acoplamento entre classes.
Em relação à especificação UML e aos conceitos de modelagem orientada a objetos, assinale a afirmativa correta.
(__)O encapsulamento protege os atributos de um objeto, permitindo o acesso a eles apenas através de métodos públicos definidos na classe.
(__)A herança permite que uma classe filha herde comportamentos e atributos de uma classe mãe, promovendo o reaproveitamento de lógica.
(__)O Git é um sistema de controle de versão centralizado que impede que os desenvolvedores possuam uma cópia local do histórico do projeto.
(__)O polimorfismo permite que uma mesma operação seja executada de diferentes formas por objetos de classes distintas que compartilham um ancestral.
Após análise, assinale a alternativa que apresenta a sequência correta dos itens acima, de cima para baixo:
I.Uma classe pode implementar múltiplas interfaces, permitindo que ela assuma diferentes papéis ou comportamentos dentro do software.
II.Interfaces definem contratos de comportamento por meio da declaração de métodos, sem estabelecer a implementação concreta das operações.
III.O uso de interfaces é indicado para garantir o baixo acoplamento entre os componentes, permitindo a substituição de implementações com facilidade.
Está CORRETO o que se afirma em:
I.O padrão Bridge desacopla a abstração de sua implementação por meio de composição, permitindo que ambas evoluam independentemente.
II.O padrão Bridge tem como finalidade principal adaptar interfaces incompatíveis, permitindo a interoperabilidade entre classes distintas.
III.O padrão Bridge exige, obrigatoriamente, que a implementação seja definida como uma classe concreta única, impedindo variações na hierarquia de implementação.
É correto o que se afirma em:
Code Smells são indicadores de código de baixa qualidade, isto é, código difícil de manter, entender, modificar ou testar (Valente, 2020). Avalie o trecho de código a seguir (em linguagem JAVA).

Assinale a alternativa que representa o code smell melhor caracterizado no trecho de código.
Sobre os princípios S.O.L.I.D., selecione a alternativa INCORRETA.