QuestLab Plataforma Inteligente de Questões
Banco público de questões

Questões para Concursos

Pesquise questões reais por disciplina, assunto, tópico, banca, órgão, cargo, ano e modalidade.

Questões por banca

29 bancas disponíveis. Clique para visualizar todas.

Encontre as questões que procura
Limpar filtros
11 questões encontradas

No contexto do desenvolvimento de um sistema orientado a objetos em Java, um Analista de Sistemas está projetando um módulo para gerenciamento de operações em uma agência de fomento. Durante a implementação, cada entidade do sistema, como beneficiários e operações financeiras, é criada a partir de uma estrutura que define atributos e métodos, passando a possuir valores próprios e comportamentos específicos que podem ser executados ao longo do sistema. Considerando os conceitos fundamentais da orientação a objetos, assinale a alternativa que representa CORRETAMENTE essas instâncias criadas a partir de classes.

A Classes.
B Objetos.
C Métodos.
D Atributos.
E Interfaces.

A modelagem orientada a objetos utilizando a Unified Modeling Language (UML) é uma ferramenta essencial na fase de análise e projeto de Software. O Diagrama de Classes, em particular, estabelece a estrutura estática do sistema por meio de classes, seus atributos, operações e os relacionamentos entre os objetos. Sobre as características, o nível de detalhamento e a semântica dos relacionamentos nesse diagrama, analise as assertivas abaixo e assinale V, se verdadeiras, ou F, se falsas.

( ) Para evitar os conflitos de interpretação entre os requisitos do cliente e o código que será efetivamente implementado pelos desenvolvedores, o nível de detalhamento do diagrama de classes (incluindo visibilidade de atributos, tipos de dados rigorosos e assinaturas completas de métodos) deve ser mantido invariavelmente alto desde as fases iniciais da modelagem conceitual.

( ) Na UML, o relacionamento de agregação estabelece um vínculo semântico restrito no qual ocorre uma coincidência de tempo de vida entre os objetos modelados. Nesse tipo de associação, se o objeto contêiner (o “todo”) for destruído da memória, as instâncias exclusivas que formam as suas “partes” também deverão obrigatoriamente ser destruídas, visto que não podem existir de forma independente no sistema.

( ) A relação de generalização permite a modelagem de herança estrutural e comportamental. Na construção do diagrama de classes UML, é totalmente válido modelar uma classe filha com herança múltipla (recebendo características de múltiplas superclasses), ainda que a equipe de desenvolvimento vá implementar o sistema em uma linguagem que não suporta herança múltipla de classes nativamente, como a linguagem Java. A ordem correta de preenchimento dos parênteses, de cima para baixo, é:

A V – V – F.
B F – F – V.
C F – V – V.
D V – F – F.
E F – V – F.

A modelagem de sistemas orientados a objetos permite visualizar a arquitetura do software sob diferentes perspectivas, facilitando a comunicação e a documentação técnica. Com base nas categorias clássicas de modelos de sistemas (interação, estrutural e comportamental) e no uso dos diagramas da UML, analise as assertivas abaixo:

I. Modelos de interação representam a comunicação entre o sistema e seu ambiente operacional ou entre os componentes internos do próprio sistema. O Diagrama de Sequência pertence a essa categoria, tendo como objetivo modelar a ordem cronológica das trocas de mensagens entre os objetos instanciados para a execução de um cenário específico.

II. Modelos estruturais descrevem a organização estática do software e a estrutura dos dados que serão processados pela aplicação. O Diagrama de Classes pertence a essa categoria, sendo o seu objetivo primordial representar graficamente as relações entre os dados, os desvios condicionais e o paralelismo das operações lógicas executadas pelos módulos do sistema.

III. Modelos comportamentais ilustram o comportamento dinâmico do sistema durante a sua execução. O Diagrama de Atividades enquadra-se nessa classificação, possuindo como objetivo detalhar o fluxo de controle de um processo de negócio ou computacional, evidenciando a sequência de ações, os desvios condicionais e o paralelismo das operações. Quais estão corretas?

A Apenas II.
B Apenas I e II.
C Apenas I e III.
D Apenas II e III.
E I, II e III.

A analista Ana está implementando um sistema seguindo os princípios SOLID. No módulo A do sistema, Ana aplicou o princípio SOLID que estabelece o seguinte: se uma propriedade q(x) for demonstrável para todos os objetos x do tipo T, então ela também deve ser demonstrável para todos os objetos y do tipo S, onde S é um subtipo de T. O princípio aplicado por Ana no módulo A está diretamente relacionado à seguinte letra do acrônimo SOLID:

A S;
B O;
C L;
D I;
E D.

Leia a descrição a seguir. Trata-se de um padrão que fornece uma interface para criar famílias de objetos relacionados ou dependentes, sem especificar suas classes concretas, seja porque estas ainda são desconhecidas ou para permitir maior escalabilidade no futuro. O padrão de projeto descrito é o:

A Builder.
B Singleton.
C Abstract Factory.
D Decorator.
E Template Method.

Segundo o princípio da responsabilidade única ( single responsibility principle ), em boas práticas de desenvolvimento orientado a objetos, uma classe deve

A acumular várias responsabilidades para minimizar a quantidade de código escrito.
B possuir métodos genéricos que possam atender a diversas necessidades sem segregação funcional.
C ser capaz de realizar múltiplas funções relacionadas a diferentes aspectos do sistema.
D implementar diversas funcionalidades para reduzir a necessidade de criar novas classes.
E ter apenas uma razão para ser modificada, garantindo que sua responsabilidade seja única e bem definida.

O princípio de inversão de dependência ( dependency inversion principle ) visa tornar o código mais flexível e desacoplado e favorecer sua manutenção e testabilidade. Uma abordagem alinhada a esse princípio consiste em

A evitar o uso de abstrações na comunicação entre módulos para garantir que cada implementação se conecte diretamente com outras classes concretas.
B estabelecer um modelo em que módulos de alto nível interajam de maneira indireta com módulos de baixo nível de forma a garantir que a comunicação entre eles ocorra por meio de abstrações.
C permitir que módulos de alto nível dependam diretamente de módulos de baixo nível para garantir execução eficiente.
D estabelecer dependência direta entre classes concretas para facilitar a implementação e evitar abstrações desnecessárias.
E criar dependências explícitas entre os componentes do sistema para eliminar a necessidade de interfaces.

Durante o desenvolvimento de sistemas que exigem controle sobre a criação de instâncias, o padrão de projeto cuja adoção pode evitar múltiplos objetos redundantes e facilitar o acesso centralizado caracteriza-se por

A controlar a criação de instâncias e fornecer um único ponto de acesso global à classe.
B implementar um mecanismo de destruição automática da instância após cada uso.
C criar múltiplas instâncias da mesma classe para otimizar o desempenho do sistema.
D permitir que diferentes partes do código acessem instâncias distintas da mesma classe.
E utilizar herança para garantir que todas as subclasses tenham múltiplas instâncias.

O padrão de projeto factory method , utilizado para delegar a criação de objetos a subclasses e permitir maior flexibilidade e desacoplamento,

A garante que todas as instâncias criadas sejam idênticas e compartilhadas globalmente.
B impede a criação de novos objetos, limitando a reutilização de instâncias existentes.
C cria objetos diretamente na classe principal, sem necessidade de subclasses.
D estabelece um mecanismo baseado em abstrações para a criação de objetos, o que possibilita que subclasses escolham qual implementação concreta utilizar.
E E utiliza um único método estático para criar todas as instâncias do sistema.

Em determinado projeto de software orientado a objetos, um desenvolvedor deve implementar um sistema que proteja partes do código de variações e mudanças frequentes em outros componentes, mantendo um baixo acoplamento entre as classes. Ao mesmo tempo, deseja-se que módulos de alto nível não dependam diretamente de módulos de baixo nível, mas que ambos dependam de abstrações. Nessa situação, o princípio de SOLID e o princípio de GRASP que atendem adequadamente aos requisitos mencionados são, respectivamente,

A o princípio da substituição de Liskov e o princípio de indireção.
B o princípio aberto-fechado e o princípio de alta coesão.
C o princípio da inversão de dependência e o princípio de variações protegidas.
D o princípio da responsabilidade única e o princípio especialista.
E o princípio da segregação de interfaces e o princípio criador.