Questões de Concurso
Comentadas sobre orientação a objetos em engenharia de software
Foram encontradas 1.069 questões
Considerando as linguagens de programação e a análise orientada a objetos (AOO), julgue o item a seguir.
O diagrama de estados, na AOO, é utilizado para modelar a estrutura estática de um sistema, mostrando classes, atributos, métodos e relacionamentos entre as classes.
(__) O Controller é responsável por mediar a interação entre a interface do usuário e o modelo de domínio, centralizando a lógica de entrada em um único ponto.
(__) A implementação do padrão Controller em sistemas grandes pode levar a um aumento do acoplamento, comprometendo a modularidade do design.
(__) O padrão Controller é útil para evitar que a lógica de entrada fique espalhada pela interface de usuário, contribuindo para um design mais coeso.
(__) A aplicação incorreta do padrão Controller pode resultar em classes excessivamente carregadas, comprometendo a manutenibilidade do sistema.
A sequência está correta em:
I. Uma classe que implementa o Princípio da Responsabilidade Única pode conter múltiplas funcionalidades relacionadas, desde que estejam dentro do mesmo domínio e compartilhem a mesma lógica.
II. A aplicação do Princípio da Responsabilidade Única contribui para a redução do acoplamento entre classes, tornando o código mais modular e flexível a alterações.
III. O Princípio da Responsabilidade Única é particularmente importante em sistemas de grande escala, pois separa responsabilidades de forma a evitar impactos significativos em mudanças futuras.
Está correto o que se afirma em:
I - Por meio do recurso de herança, uma classe pode ser especializada.
II - É possível criar novas classes (filhas) a partir de uma classe já existente (mãe), reaproveitando seus atributos e operações.
III - Na relação de classes do tipo mãe-filha, chamamos a classe mãe de superclasse e as classes filhas de subclasses.
Julgue o item que se segue, a respeito de desenvolvimento de projetos digitais.
A letra O do acrônimo SOLID corresponde ao princípio da responsabilidade única.
A engenharia de software foi criada para substituir a “arte de programação”, dando, assim, maior segurança de sucesso e terminalidade ao desenvolvimento de sistemas. Com base nessa informação, julgue o item a seguir.
A análise orientada a objetos (OOA) tem como objetivo identificar e definir os objetos principais do sistema, suas responsabilidades e suas interações, utilizando conceitos como encapsulamento, herança e polimorfismo para modelar o sistema de forma modular e reutilizável.
I. Existe uma associação entre Aluno e Disciplina, pois um aluno pode estar matriculado em várias disciplinas.
II. Não há um relacionamento de composição nesse cenário, pois a destruição de uma classe (por exemplo, a exclusão de um aluno) não implica necessariamente a destruição de outra classe (por exemplo, a disciplina).
III. O relacionamento de agregação poderia ser aplicado ao cenário entre Disciplina e Professor, indicando que um Professor é parte de uma disciplina, mas a existência independente de ambos é permitida.
IV. Neste cenário, as classes Aluno, Professor e Disciplina são entidades independentes e não estão relacionadas por uma relação de herança.
Com base nos dados apresentados, assinale a opção que reflete a aplicação correta dos princípios da modelagem OO no contexto do sistema de gerenciamento da biblioteca, considerando a relação entre as abordagens didático-pedagógicas e os conhecimentos teórico-práticos da área.
I – O padrão de projeto Chain of Responsiblity tem a intenção de evitar o acoplamento do remetente de uma solicitação ao seu receptor, ao dar a mais de um objeto a oportunidade de tratar a solicitação, e encadear os objetos receptores, passando a solicitação ao longo da cadeia até que um objeto a trate.
II – O padrão de projeto Strategy tem a intenção de, sem violar o encapsulamento, capturar e externalizar um estado interno de um objeto, de maneira que o objeto possa ser restaurado para esse estado mais tarde.
III – O padrão de projeto Interpreter tem a intenção de fornecer um meio de acessar sequencialmente os elementos de um objeto agregado, sem expor a sua representação subjacente.
GAMMA, E.; HELM, R.; JOHNSON, R.; VLISSIDES, J. Padrões de Projetos – Soluções Reutilizáveis, Editora Bookman, 2000.
Assinale a alternativa correta, conforme Gamma et al. (2000):
I – O padrão de projeto Abstract Factory tem a intenção de definir uma interface para criar um objeto, mas deixar as subclasses decidirem que classe instanciar. Este padrão permite adiar a instanciação para subclasses.
II – O padrão de projeto Singleton tem como intenção garantir que uma classe tenha somente uma instância e fornecer um ponto global de acesso para a mesma.
III – O padrão de projeto Factory Method tem a intenção de fornecer uma interface para criação de famílias de objetos relacionados ou dependentes sem especificar suas classes concretas.
GAMMA, E.; HELM, R.; JOHNSON, R.; VLISSIDES, J. Padrões de Projetos – Soluções Reutilizáveis, Editora Bookman, 2000.
Assinale a alternativa CORRETA, conforme Gamma et al. (2000):
Diante dessa incumbência, qual padrão de projeto estrutural você deve usar para agir como um substituto ou representante dos objetos reais, garantindo o controle de acesso?
Analise as sentenças abaixo, baseadas na obra de Sommerville a respeito de herança:
(SOMMERVILLE, Ian. Engenharia de Software. 9 ed. São Paulo: Pearson Prentice Hall, 2011, p. 148, 250 a 251)
I - O problema com a herança na programação orientada a objetos é que o código associado com um objeto não está concentrado em um só lugar, dificultando a compreensão do comportamento do objeto e possibilitando que se ignorem erros de programação.
II - A herança, quando combinada com ligações dinâmicas, pode causar problemas de timing em tempo de execução. Diferentes instâncias de um método podem ser vinculadas a uma chamada, dependendo dos tipos de parâmetros e, por consequência, diferentes quantidades de tempo serão despendidas na busca pela instância do método correto.
III - Herança faz testes de classes de objeto mais complicados, já que a operação que é herdada pode fazer suposições sobre outras operações e atributos. Essas operações podem não ser válidas em algumas subclasses que herdam a operação. Portanto, é necessário testar a operação herdada em todos os contextos de uso.
Estão CORRETAS a(s) afirmação(ões):
O _______ permite atribuir responsabilidades adicionais a um objeto dinamicamente, facilitando o tratamento de objetos de diferentes classes de forma uniforme. Já o ______ fornece um objeto representante ou um marcador de outro objeto para controlar o acesso ao mesmo.
class Legislacao { public void aplicar() { System.out.println("Legislação aplicada"); } } class LeiComplementar extends Legislacao { @Override public void aplicar() { System.out.println("Lei Complementar aplicada"); } } class LeiOrdinaria extends Legislacao { @Override public void aplicar() { System.out.println("Lei Ordinária aplicada"); } } public class Teste { public static void main(String[] args) { Legislacao minhaLei = new LeiComplementar(); Legislacao outraLei = new LeiOrdinaria(); minhaLei = outraLei; minhaLei.aplicar(); } }
Assinale a alternativa que mostra a saída da execução desse código: