Engenharia de Software Flashcards

1
Q

O que é DevOps?

A

É a união de pessoas, processos e tecnologias para entrega rápida de serviços de TI, integrando desenvolvimento (Dev) e operações (Ops).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

O DevOps é compatível com métodos ágeis?

A

Sim, o DevOps é compatível com métodos ágeis como o Scrum e com o uso de ferramentas que visualizam fluxos do processo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

O que é Infraestrutura como Código (IaC)?

A

É o gerenciamento de infraestrutura com arquivos de configuração e scripts, em vez de acesso manual às máquinas ou ferramentas tradicionais.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Cite uma ferramenta de orquestração no DevOps.

A

Kubernetes, uma plataforma de código aberto para gestão de workloads e serviços baseados em containers.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

O que é CI/CD no contexto DevOps?

A

É um método para entregar aplicações com frequência, utilizando automação nas etapas de desenvolvimento e integrando entrega e implantação contínuas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Qual o papel do controle de versão no DevOps?

A

Permite armazenar, versionar e fornecer códigos para ferramentas de automação e gestão da arquitetura.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Qual é o objetivo principal da ferramenta Jenkins no DevOps?

A

Automatizar tarefas relacionadas à construção, teste, entrega e implantação de software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Quais são os benefícios das ferramentas de gerenciamento de configuração no DevOps?

A

Reduzem a necessidade de intervenção humana, agilizam provisionamento e deploy, e mantêm a infraestrutura no estado desejado.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Por que o monitoramento é importante no DevOps?

A

Ajuda a identificar problemas e executar ações preventivas para evitar indisponibilidade das aplicações.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Qual é a função da ferramenta Prometheus no DevOps?

A

Monitoramento de eventos com um modelo de dados multidimensional e coleta de dados via HTTP.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Qual a importância das ferramentas de controle de logs no DevOps?

A

Facilitam a localização de registros, controlam acessos e ajudam a encontrar a causa raiz de problemas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Quais são as práticas principais do DevOps?

A

Orquestração, controle de versão, gerenciamento de configuração, integração contínua, monitoramento e controle de logs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Qual é a funcionalidade básica do Git no DevOps?

A

Controle de versão distribuído com suporte a branches, commits e merges, permitindo a gestão eficiente de códigos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Qual é a principal vantagem do uso de CI/CD no DevOps?

A

Automação das etapas de desenvolvimento, teste, entrega e implantação, garantindo maior frequência e qualidade nas entregas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

O que significa o conceito de Infraestrutura como Código (IaC) no contexto DevOps?

A

É o processo de gerenciamento e provisionamento de recursos de infraestrutura usando arquivos de configuração e scripts, em vez de acessar máquinas físicas ou realizar operações manuais.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Qual é a principal vantagem do modelo distribuído do Git?

A

Todos os usuários possuem uma cópia completa do repositório, permitindo trabalho offline e maior segurança contra perda de dados.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Cite uma ferramenta de integração contínua amplamente utilizada em ambientes DevOps.

A

Jenkins, uma ferramenta de código aberto para automação de tarefas relacionadas à construção, teste, entrega e implantação de software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Quais são os principais conceitos associados ao método CI/CD?

A

Integração contínua, entrega contínua e implantação contínua.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

O que é Kubernetes e qual sua finalidade principal?

A

É uma plataforma de orquestração de containers de código aberto que facilita a gestão de workloads e serviços baseados em containers com configuração declarativa e automatizada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Qual é o objetivo principal do monitoramento em ambientes DevOps?

A

Identificar problemas e gerar gatilhos para ações preventivas que evitem a indisponibilidade de aplicações.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Qual a relação entre DevOps e métodos ágeis como Scrum?

A

DevOps é compatível com métodos ágeis, compartilhando práticas colaborativas e foco na entrega contínua.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

O que caracteriza o gerenciamento de configuração em DevOps?

A

Automação de infraestrutura para garantir que os ambientes estejam no estado desejado, com menor intervenção humana.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Cite uma ferramenta de gerenciamento de configuração em DevOps que utiliza Ruby para scripts.

A

Chef ou Puppet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Qual é o propósito de ferramentas de controle de logs em DevOps?

A

Fornecer um ponto único para monitoramento de logs, facilitar a busca por registros e auxiliar na identificação de causas raízes de problemas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

O que caracteriza a prática de orquestração no contexto DevOps?

A

Gestão, configuração e coordenação de componentes de TI, como servidores, aplicações e serviços.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Quais são os principais objetivos do DevSecOps?

A

Integrar práticas de segurança ao ciclo de vida do desenvolvimento e operação de software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Como o TeamCity se destaca como ferramenta de CI/CD?

A

Suporte a múltiplas funcionalidades, integração com diversas ferramentas e suporte a servidores de controle de versão e plataformas em nuvem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

O que significa o termo Staging Area no Git?

A

É uma área temporária onde alterações podem ser preparadas antes de serem salvas no repositório.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Qual a vantagem do Nagios como ferramenta de monitoramento?

A

Oferece monitoramento de eventos, gestão de alertas e uma ampla lista de plugins desenvolvidos pela comunidade.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

O que é a especificação de requisitos?

A

A especificação de requisitos consiste em traduzir as informações obtidas na análise em um documento que define um conjunto de requisitos, podendo ser escrito, gráfico, matemático formal ou uma combinação desses.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Qual é o propósito da especificação de requisitos?

A

Serve como um contrato entre as partes envolvidas no projeto, diferentemente da documentação preliminar criada na análise de requisitos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Como os requisitos de usuário devem ser apresentados?

A

Devem ser escritos em linguagem natural, com tabelas simples e diagramas intuitivos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

O que são requisitos funcionais?

A

Declarações sobre o que o sistema deve fornecer em termos de funções, como reagir a entradas específicas e comportar-se em determinadas situações.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Quais são os tipos de requisitos não funcionais?

A

Requisitos de produto, organizacionais, externos e de domínio.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

O que são requisitos de domínio?

A

Requisitos derivados do domínio de aplicação do sistema, refletindo suas características e podendo ser funcionais ou não funcionais.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Como os requisitos quanto à qualidade são classificados?

A

Em requisitos normais, esperados e fascinantes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

O que são requisitos voláteis?

A

Requisitos sujeitos a modificações frequentes, divididos em mutáveis, emergentes, consequentes e compatíveis.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Quais são as fases da Engenharia de Requisitos segundo Pressman?

A

Concepção, levantamento, elaboração, negociação, especificação, validação e gestão.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

O que a fase de levantamento na Engenharia de Requisitos busca realizar?

A

Ajuda o cliente a definir o que é necessário para o sistema.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Qual é o objetivo da validação de requisitos?

A

Verificar os requisitos quanto ao realismo, consistência e completude.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

O que é a matriz de rastreabilidade?

A

Um recurso usado na gestão de requisitos para conectar requisitos aos stakeholders, outros requisitos e módulos de projeto.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

Quais são as fases da elicitação de requisitos?

A

Obtenção, classificação e organização, priorização e negociação, e documentação de requisitos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

Quais são algumas técnicas de elicitação de requisitos?

A

Cenários, entrevistas, prototipação, , etnografia e casos de uso.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Qual o objetivo da priorização e negociação de requisitos?

A

Resolver conflitos entre requisitos e determinar quais são mais importantes para o projeto.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

Qual o objetivo da Engenharia de Software, segundo Sommerville (2007)?

A

Garantir que o desenvolvimento do software resulte em um produto de qualidade, atendendo aos prazos e custos estabelecidos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

Quais são as fases da Engenharia de Requisitos segundo Pressman?

A

Concepção, Levantamento, Elaboração, Negociação, Especificação, Validação, Gestão.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

Quais são as fases da Engenharia de Requisitos segundo Sommerville?

A

Estudo de Viabilidade, Elicitação e Análise de Requisitos, Especificação, Validação, Gestão.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
47
Q

O que é a validação de requisitos?

A

O objetivo é garantir que a necessidade real do usuário esteja descrita corretamente no documento de especificação dos requisitos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
48
Q

Qual a importância da validação de requisitos?

A

Evita custos elevados para correção de requisitos em fases posteriores, como implementação ou testes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
49
Q

Quais problemas a validação de requisitos busca identificar?

A

Inconsistências, omissões, erros e verificar conformidade com padrões estabelecidos para o processo e o projeto.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
50
Q

O que é a revisão de requisitos?

A

A revisão de requisitos envolve a análise sistemática dos requisitos por uma equipe de revisores para identificar inconsistências, omissões e contradições.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
51
Q

Qual a diferença entre revisão formal e informal de requisitos?

A

Na revisão formal, os problemas são apresentados e discutidos entre analista e cliente, enquanto na revisão informal é um debate simples sem a formalização.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
52
Q

O que é a prototipação e qual seu objetivo?

A

A prototipação é um modelo executável do sistema que permite aos usuários finais testar e verificar se o sistema atende às suas necessidades reais.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
53
Q

Quais são as desvantagens da prototipação?

A

O tempo dedicado ao protótipo pode não ser justificado, há risco de viés dos usuários e os programadores podem usar o protótipo como base para o sistema final.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
54
Q

O que é a geração de casos de teste?

A

Técnica que verifica se um requisito é passível de implementação. Se não for, o requisito deve ser reconsiderado.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
55
Q

O que é um checklist de validação?

A

É uma ferramenta para verificar se um requisito pode ser testado e se os testes podem ser especificados.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
56
Q

Qual é a diferença entre validação e verificação de requisitos?

A

A validação assegura que os requisitos atendem às necessidades reais do cliente, enquanto a verificação assegura que o que foi planejado foi realizado corretamente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
57
Q

O que Barry Boehm diz sobre validação e verificação?

A

Validação: “Estamos construindo o produto certo do jeito correto?”
Verificação: “Estamos construindo o produto da maneira certa?”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
58
Q

O que envolve a gestão de requisitos?

A

A gestão de requisitos começa com a identificação e o rastreamento dos requisitos e envolve a avaliação de mudanças durante o ciclo de vida do sistema.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
59
Q

Qual é a maior complexidade considerada na análise de pontos de função?

A

A maior complexidade encontrada na parte de entrada ou saída da consulta será considerada a complexidade da consulta externa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
60
Q

O que deve ser contado em cada processo de recuperação de dados?

A

Cada processo de recuperação de dados deve ser contado com base nos parâmetros de entrada fornecidos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
61
Q

Quais são os fatores que afetam o tamanho funcional de um sistema?

A

Comunicação de dados, funções distribuídas, performance, configuração do equipamento, volume de transações, entre outros.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
62
Q

O que é a contagem de pontos de função ajustados?

A

A contagem de pontos de função ajustados é um processo que corrige distorções da contagem inicial, aplicando o fator de ajuste.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
63
Q

O que determina a complexidade das funções na análise de pontos de função?

A

A complexidade é determinada com base no tipo de função (entrada, saída, etc.) e é classificada como simples, média ou alta/complexa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
64
Q

Qual a importância do cálculo de pontos de função ajustados?

A

Ele é importante para refletir a situação real do sistema, considerando ajustes baseados nas características específicas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
65
Q

O que significa a contagem de pontos de função para os usuários?

A

A contagem de pontos de função ajuda os usuários a determinar os benefícios de um pacote de aplicativos, contando as funcionalidades que atendem aos seus requisitos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
66
Q

Quais são os tipos de funções na análise de pontos de função?

A

Funções de tipo DADOS (ALE, AIE) e funções de tipo TRANSAÇÕES (EE, SE, CE).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
67
Q

O que caracteriza a função “Entrada Externa” (EE)?

A

A função “Entrada Externa” processa dados de fora da fronteira da aplicação e pode manter ou alterar o comportamento do sistema.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
68
Q

Qual a definição de “Arquivo Lógico Externo” (ALE)?

A

Um ALE é um grupo de dados ou informações de controle mantidos dentro da fronteira da aplicação, com o objetivo de armazenar dados mantidos por processos elementares.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
69
Q

O que deve ser calculado separadamente na análise de complexidade funcional de uma consulta externa?

A

A complexidade funcional da parte da entrada e da saída da consulta

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
70
Q

O que deve ser considerado a maior complexidade na avaliação de uma consulta externa?

A

A maior complexidade encontrada na entrada ou saída será considerada a complexidade da consulta externa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
71
Q

Qual processo é contado no cálculo de pontos de função para uma consulta externa?

A

Cada processo de recuperação de dados que seleciona informações com base nos parâmetros de entrada fornecidos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
72
Q

O que deve ser verificado em relação à lógica de processamento de dados nas consultas externas?

A

Verificar se a lógica de processamento da entrada e da saída é diferente da lógica de outras consultas externas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
73
Q

O que é o fator de ajuste na análise de pontos de função?

A

O fator de ajuste é responsável pela correção das distorções da etapa anterior, levando em consideração as características da aplicação.

74
Q

O que a metodologia de pontos de função considera em relação ao tamanho funcional de um sistema?

A

A metodologia de pontos de função considera que fatores como características da aplicação afetam o tamanho funcional do sistema.

75
Q

Quais são algumas das 14 características do sistema que afetam o fator de ajuste?

A

Comunicação de dados, funções distribuídas, performance, volume de transações, interface com o usuário, entre outras.

76
Q

O que caracteriza um Arquivo Lógico Interno (ALI)?

A

É um grupo de dados ou informações de controle, mantido dentro da fronteira da aplicação e usado para armazenar dados mantidos por processos da aplicação.

77
Q

O que caracteriza um Arquivo de Interface Externa (AIE)?

A

É um grupo de dados ou informações de controle, mantido fora da fronteira da aplicação e usado para armazenar dados referenciados por processos da aplicação.

78
Q

Qual a principal diferença entre uma Consulta Externa (CE) e uma Saída Externa (SE)?

A

A Consulta Externa não envolve fórmulas ou derivações e não altera o comportamento do sistema, enquanto a Saída Externa envolve fórmulas ou derivações e pode alterar o comportamento do sistema.

79
Q

O que são atributos em uma classe no contexto da Orientação a Objetos?

A

Atributos são propriedades que caracterizam um objeto. São as características que definem um objeto dentro de uma classe, como número e saldo em uma classe ContaBancaria.

80
Q

Qual é a diferença entre atributos e operações em uma classe?

A

Atributos representam as características do objeto, enquanto operações (ou métodos) são ações que o objeto pode executar ou comportamentos que ele pode realizar.

81
Q

O que é uma classe na programação orientada a objetos?

A

Uma classe é uma abstração que descreve as propriedades e comportamentos importantes de um conjunto de objetos semelhantes, sendo a estrutura fundamental na orientação a objetos.

82
Q

O que é um modelo na engenharia de software?

A

Um modelo é uma representação abstrata de algo real, criado para facilitar o estudo do sistema, permitindo inspeções, verificações e alterações antes da implementação final.

83
Q

Qual o objetivo da análise estruturada?

A

A análise estruturada busca construir um modelo lógico de um sistema, utilizando gráficos para representar processos e fluxos de dados, focando no “O QUE” o sistema deve fazer.

84
Q

O que é a modelagem funcional na análise estruturada?

A

A modelagem funcional visa representar o comportamento de um sistema em termos dos processos e fluxos de dados, sem focar na implementação detalhada do sistema.

85
Q

O que é o Diagrama de Fluxo de Dados (DFD)?

A

O DFD é uma representação gráfica dos processos e fluxos de dados em um sistema, mostrando “o que” o sistema faz, mas sem se preocupar com a implementação.

86
Q

O que é o Dicionário de Dados (DD)?

A

O Dicionário de Dados é um repositório que fornece informações detalhadas sobre os elementos de dados de um sistema, incluindo sua definição, estrutura e uso.

87
Q

O que representa o Diagrama de Transição de Estados (DTE)?

A

O DTE descreve o comportamento de um sistema, representando seus estados e os eventos que causam a transição de um estado para outro.

88
Q

O que significa a expressão “orientado a objetos”?

A

Significa que o software é estruturado como uma coleção de objetos, onde cada objeto combina atributos (dados) e métodos (comportamento).

89
Q

O que é o polimorfismo em Orientação a Objetos?

A

Polimorfismo permite que a mesma operação tenha comportamentos diferentes em classes diferentes, oferecendo flexibilidade na implementação de métodos.

90
Q

O que é encapsulamento em Orientação a Objetos?

A

Encapsulamento é o processo de ocultar os detalhes internos de um objeto, permitindo que sua interface externa seja acessada de maneira controlada, garantindo maior segurança e flexibilidade.

91
Q

Qual é a vantagem do compartilhamento de código na Orientação a Objetos?

A

O compartilhamento de código, por meio de herança, permite que subclasses reutilizem a estrutura e comportamento de uma classe pai, evitando redundâncias e facilitando a manutenção do sistema.

92
Q

O que representa uma classe em um sistema orientado a objetos?

A

Uma classe representa um modelo ou tipo de objeto, que define os atributos e operações que os objetos dessa classe terão.

93
Q

O que são atributos em uma classe?

A

Atributos são as propriedades que caracterizam os objetos de uma classe, representando suas características ou estado.

94
Q

Como as operações se diferenciam dos atributos em uma classe?

A

As operações são ações ou comportamentos que os objetos de uma classe podem executar, enquanto os atributos definem seu estado.

95
Q

O que significa que as operações de uma classe geralmente são públicas?

A

Significa que as operações podem ser acessadas por outras classes ou objetos, permitindo que interajam com a classe.

96
Q

Qual é o objetivo de um modelo no contexto do desenvolvimento de sistemas?

A

O objetivo de um modelo é representar abstrações da realidade para estudar o comportamento do sistema e facilitar a análise antes de sua implementação.

97
Q

O que é a Análise Estruturada?

A

A Análise Estruturada é uma metodologia de desenvolvimento de sistemas que busca representar o sistema de forma lógica, usando gráficos para entender como suas partes se encaixam.

98
Q

Quais são as principais ferramentas usadas na Análise Estruturada?

A

As principais ferramentas são o Diagrama de Fluxo de Dados (DFD), o Dicionário de Dados (DD) e o Diagrama de Transição de Estados (DTE).

99
Q

Qual é a função do Dicionário de Dados?

A

O Dicionário de Dados armazena informações sobre os dados utilizados no sistema, descrevendo sua definição, estrutura e uso.

100
Q

O que é uma instância de uma classe?

A

Uma instância de uma classe é um objeto criado a partir dessa classe, que possui seus próprios valores para os atributos definidos nela.

101
Q

O que é herança na orientação a objetos?

A

Herança é um mecanismo que permite que uma classe herde atributos e métodos de outra, promovendo reutilização de código.

102
Q

O que é a sobrecarga de métodos?

A

Sobrecarga de métodos é a capacidade de uma classe ter métodos com o mesmo nome, mas com diferentes parâmetros, permitindo múltiplas implementações do mesmo método.

103
Q

O que é um construtor em uma classe?

A

O construtor é um método especial que é chamado automaticamente quando um objeto de uma classe é criado, geralmente utilizado para inicializar os atributos do objeto.

104
Q

O que é uma interface em programação orientada a objetos?

A

Uma interface define um contrato de métodos que uma classe deve implementar, sem fornecer a implementação dos mesmos.

105
Q

O que é uma associação entre classes?

A

A associação entre classes é o relacionamento entre duas ou mais classes, onde uma classe usa ou se refere a outra, sem implicar herança.

106
Q

O que é agregação em um relacionamento de classes?

A

Agregação é um tipo de associação onde uma classe contém outra, mas as classes associadas podem existir independentemente, ou seja, não há dependência forte.

107
Q

O que é composição em um relacionamento de classes?

A

Composição é uma forma mais forte de agregação, onde a classe composta depende da classe contida, e se a classe composta for destruída, suas partes também serão destruídas.

108
Q

O que é um “getter” e “setter” em programação orientada a objetos?

A

Getters e setters são métodos utilizados para acessar (getter) e modificar (setter) os valores dos atributos privados de uma classe.

109
Q

O que é o princípio de “Encapsulamento” em Orientação a Objetos?

A

O encapsulamento é a prática de ocultar os detalhes internos de um objeto e expor apenas o necessário para interação, promovendo segurança e flexibilidade.

110
Q

Qual é a diferença entre classe abstrata e interface?

A

Uma classe abstrata pode fornecer implementação parcial dos métodos, enquanto uma interface define apenas a assinatura dos métodos, sem implementação.

111
Q

O que é um diagrama de classes?

A

Um diagrama de classes é uma representação visual das classes de um sistema e seus relacionamentos, como herança, associação, e dependência.

112
Q

O que é o conceito de “Estado” de um objeto?

A

O estado de um objeto é definido pelos valores atuais de seus atributos, que determinam seu comportamento em determinado momento.

113
Q

Qual é o objetivo do teste de integração?

A

Verificar problemas na construção dos componentes dentro do software, focando nas interfaces entre os módulos.

114
Q

O que caracteriza o teste de integração Big-Bang?

A

Integração não incremental, onde todos os componentes são combinados de uma vez e o programa é testado como um todo.

115
Q

Como funciona o teste de integração incremental?

A

O programa é integrado e testado em pequenos incrementos, com módulos sendo adicionados gradualmente.

116
Q

Quais são as duas abordagens principais do teste incremental?

A

Descendente (top-down) e ascendente (bottom-up)

117
Q

No teste de integração ascendente (bottom-up), onde começa a construção e o teste?

A

Começa com módulos atômicos e vai subindo na hierarquia.

118
Q

O que é o teste de regressão?

A

Uma estratégia de testes que verifica se versões ou ciclos anteriores do sistema estão funcionando após alterações no software.

119
Q

Qual o objetivo do teste fumaça?

A

Identificar erros “bloqueadores” que impedem o funcionamento correto do software, testando construções diariamente.

120
Q

O que é o teste alfa?

A

Teste realizado por usuários no ambiente de desenvolvimento, com foco em avaliar funções e recursos conhecidos.

121
Q

Quais são as vantagens do teste alfa?

A

Progresso mensurável, conhecimento das funções e recursos a serem testados, e identificação de defeitos subjetivos.

122
Q

Quais são as desvantagens do teste alfa?

A

Falta de controle sobre os casos de teste, possibilidade de os usuários não encontrarem defeitos e limitações de recursos.

123
Q

O que caracteriza o teste beta?

A

Realizado por usuários em ambiente real, com os testadores escolhendo seus próprios dados e critérios para o teste

124
Q

Quais são as desvantagens do teste beta?

A

Possibilidade de não testar todas as funções, dificuldade em medir o progresso e falta de controle sobre os recursos do teste.

125
Q

O que é o teste de aceitação do cliente?

A

Uma variação do teste beta em que o cliente executa testes específicos para verificar erros antes de aceitar o software.

126
Q

Como o teste de sistema é realizado?

A

O software é testado como se fosse um usuário final, utilizando os mesmos dados e condições que um usuário usaria no dia a dia.

127
Q

O que é a técnica de caixa-branca?

A

Foca no teste dos caminhos lógicos internos do software, verificando sua estrutura e funcionamento interno.

128
Q

O que é o teste de unidade?

A

O teste de unidade verifica a funcionalidade de uma parte isolada do software, geralmente uma função ou método, para garantir que ele funcione como esperado.

129
Q

O que é o teste de aceitação do cliente?

A

O teste de aceitação do cliente valida se o sistema atende aos requisitos e expectativas do cliente antes de ser entregue para produção.

130
Q

Quais são as principais diferenças entre o teste Alfa e o teste Beta?

A

O teste Alfa é realizado pela equipe de desenvolvimento em um ambiente controlado, enquanto o teste Beta é feito por usuários reais fora do controle da equipe, em um ambiente real.

131
Q

O que é o teste de desempenho?

A

O teste de desempenho verifica se o sistema atende aos requisitos de desempenho, como tempo de resposta, capacidade de processamento e comportamento sob carga.

132
Q

Quais são as etapas típicas de um processo de teste de software?

A

As etapas típicas incluem: planejamento, design de testes, execução dos testes, rastreamento de defeitos e relatório de resultados.

133
Q

O que é o teste de segurança e por que ele é importante?

A

O teste de segurança identifica vulnerabilidades no sistema, garantindo que o software esteja protegido contra ataques e ameaças externas.

134
Q

O que é o teste de compatibilidade?

A

O teste de compatibilidade verifica se o software funciona corretamente em diferentes ambientes, sistemas operacionais, versões de navegador e dispositivos.

135
Q

O que é o teste de usabilidade?

A

O teste de usabilidade avalia a experiência do usuário, garantindo que a interface do sistema seja intuitiva, fácil de usar e eficiente.

136
Q

Qual a principal diferença entre o teste de caixa-preta e o teste de caixa-branca?

A

O teste de caixa-preta foca nos requisitos e resultados do software sem considerar o código interno, enquanto o teste de caixa-branca examina a estrutura interna do software e seu código.

137
Q

O que é um backlog no contexto de desenvolvimento de software?

A

Um backlog é uma lista dinâmica de tarefas que orienta a equipe de desenvolvimento, contendo históricos de clientes, alterações, correções de bugs e novas funcionalidades.

138
Q

Qual a responsabilidade do Product Owner no gerenciamento do Product Backlog?

A

O Product Owner é responsável por gerenciar o Product Backlog, priorizando e organizando os itens de acordo com as necessidades e objetivos do produto.

139
Q

O que é o Sprint Backlog?

A

O Sprint Backlog é uma lista derivada do Product Backlog, contendo os itens selecionados para serem desenvolvidos na Sprint atual, com um plano para entregar o incremento de produto.

140
Q

O que é o MVP (Produto Mínimo Viável)?

A

O MVP é uma versão simplificada do produto que contém as funcionalidades essenciais para testar hipóteses de mercado e obter feedback rápido dos usuários.

141
Q

Qual é o principal objetivo do MVP?

A

O principal objetivo do MVP é testar hipóteses e obter feedback dos usuários rapidamente, promovendo um ciclo ágil de construção, medição e aprendizado.

142
Q

O que o MVP busca evitar?

A

O MVP busca evitar o desperdício de tempo e recursos em funcionalidades desnecessárias antes de validar as hipóteses de mercado.

143
Q

O que é dívida técnica em software?

A

A dívida técnica é o custo adicional de refatoração ou correção de problemas no código que foram deixados para trás para acelerar o desenvolvimento inicial.

144
Q

Como a dívida técnica impacta o desenvolvimento de software?

A

A dívida técnica pode aumentar o custo de manutenção, gerar retrabalho e dificultar a implementação de novas funcionalidades no futuro.

145
Q

O que são os pontos de função em estimativas de software?

A

Pontos de função medem a funcionalidade do software do ponto de vista do usuário, considerando as necessidades e interações do sistema.

146
Q

O que são Story Points em estimativas de software?

A

Story Points são unidades de medida que avaliam a complexidade e o esforço necessário para realizar uma tarefa no desenvolvimento de software.

147
Q

O que é desenvolvimento Low-code?

A

O desenvolvimento Low-code permite a criação de aplicações com pouco código, sendo ideal para desenvolvedores com algum conhecimento técnico.

148
Q

O que é o desenvolvimento No-code?

A

O desenvolvimento No-code permite a criação de aplicações sem a necessidade de codificação, sendo acessível a usuários sem experiência em programação.

149
Q

Quais são as vantagens do desenvolvimento Low-code e No-code?

A

Essas abordagens aceleram o desenvolvimento de protótipos e MVPs, aumentando a produtividade e reduzindo o tempo de lançamento no mercado

150
Q

Quem pode utilizar as plataformas Low-code e No-code?

A

O Low-code é destinado a desenvolvedores com algum conhecimento técnico, enquanto o No-code é acessível a qualquer usuário, mesmo sem experiência em programação.

151
Q

O que é qualidade de software?

A

A qualidade de software refere-se à capacidade do software de atender às expectativas explícitas e implícitas dos usuários, englobando características como funcionalidade, confiabilidade, usabilidade, eficiência, manutenibilidade e portabilidade.

152
Q

Quais são os dois tipos de atributos usados para avaliar a qualidade do software?

A

A qualidade do software é avaliada por atributos internos (métricas de código, conformidade com padrões) e atributos externos (satisfação do usuário, desempenho em operação).

153
Q

Quais características são descritas pela ISO 9126 como parte da qualidade de software?

A

A ISO 9126 descreve funcionalidades, confiabilidade, usabilidade, eficiência, manutenibilidade e portabilidade como as características principais da qualidade de software.

154
Q

O que é análise estática de código?

A

A análise estática de código é uma técnica que examina o código-fonte sem executá-lo para identificar erros, vulnerabilidades e padrões inadequados.

155
Q

Quais técnicas são usadas na análise estática de código?

A

A análise estática utiliza técnicas como análise de fluxo de dados, complexidade ciclomática, detecção de duplicidade de código e verificação de conformidade com padrões de codificação.

156
Q

Como ferramentas como o SonarQube ajudam na análise estática de código?

A

Ferramentas como o SonarQube automatizam a análise, fornecendo métricas detalhadas e identificando áreas problemáticas no código.

157
Q

O que são mocks em testes de software?

A

Mocks são objetos simulados usados para verificar interações específicas no código durante os testes, substituindo componentes reais.

158
Q

Qual a função dos stubs em testes de software?

A

Stubs são objetos simulados que fornecem respostas predefinidas para permitir que os testes avancem de maneira controlada, sem a necessidade de componentes reais.

159
Q

Qual a diferença principal entre mocks e stubs?

A

Mocks são usados para verificar interações específicas, enquanto stubs fornecem respostas predefinidas para testar o comportamento do código.

160
Q

O que é um teste unitário?

A

O teste unitário é uma técnica de teste que foca em testar unidades individuais de código, como funções ou métodos, de forma isolada.

161
Q

O que é um teste de integração?

A

O teste de integração verifica a interação entre diferentes módulos ou componentes de um sistema para garantir que funcionem corretamente quando combinados.

162
Q

Quais são os tipos de abordagem para testes de integração?

A

O teste de integração pode ser realizado de forma incremental (top-down ou bottom-up) ou como um teste completo (big bang).

163
Q

Qual o objetivo dos testes de integração?

A

O objetivo é identificar problemas de interação entre os módulos integrados, garantindo o correto funcionamento do sistema como um todo.

164
Q

O que são testes de RNF?

A

Testes de RNF avaliam requisitos não funcionais como desempenho, segurança, usabilidade e escalabilidade do software.

165
Q

Quais são os tipos de testes de RNF?

A

Os principais tipos de testes de RNF incluem testes de desempenho, carga e estresse, que avaliam o comportamento do sistema sob diferentes condições de uso.

166
Q

Qual a diferença entre testes de carga e testes de estresse?

A

Testes de carga verificam o comportamento do sistema sob diferentes níveis de uso, enquanto testes de estresse avaliam o funcionamento do sistema além dos limites normais de operação.

167
Q

O que é uma revisão de código?

A

A revisão de código é uma prática onde um ou mais desenvolvedores analisam o código escrito por outros para detectar falhas e sugerir melhorias, melhorando a qualidade e a manutenibilidade.

168
Q

O que é programação em pares?

A

Programação em pares envolve dois desenvolvedores trabalhando juntos em uma única estação de trabalho para escrever código, aumentando a eficiência e a qualidade do desenvolvimento.

169
Q

O que é resiliência de aplicações?

A

Resiliência de aplicações refere-se à capacidade de um sistema continuar operando adequadamente mesmo diante de falhas, garantindo alta disponibilidade e desempenho contínuo.

170
Q

Quais técnicas são usadas para melhorar a resiliência de uma aplicação?

A

Técnicas como cache, tolerância a falhas, recuperação rápida, isolamento de falhas e degradação elegante são usadas para melhorar a resiliência.

171
Q

Quais problemas a análise estática de código pode detectar?

A

A análise estática pode detectar erros de codificação, vulnerabilidades de segurança, problemas de desempenho e violações de boas práticas de programação.

172
Q

Em que situações é mais vantajoso usar mocks em vez de stubs?

A

Mocks são vantajosos quando é necessário verificar interações e comportamentos específicos entre os componentes, enquanto stubs são usados para simular respostas predefinidas.

173
Q

Quais são as vantagens de usar mocks e stubs em testes?

A

Mocks e stubs ajudam a isolar componentes e simular comportamentos controlados, tornando os testes mais eficientes e permitindo detectar erros de forma mais precisa.

174
Q

Qual a relação entre testes unitários e refatoração de código?

A

Testes unitários fornecem uma base segura para refatoração, garantindo que mudanças no código não introduzam novos erros.

175
Q

Quais ferramentas populares podem ser usadas para automatizar testes unitários em Java?

A

Ferramentas populares incluem JUnit, TestNG e Mockito para criar e automatizar testes unitários em Java.

176
Q

O que caracteriza um teste de integração “big bang”?

A

Um teste de integração “big bang” envolve a integração de todos os componentes de uma vez, o que pode dificultar a identificação de problemas de interação e gerar mais esforço de depuração.

177
Q

Qual é o objetivo dos testes de desempenho?

A

O objetivo dos testes de desempenho é avaliar a velocidade e a capacidade de resposta do software sob diferentes condições de carga, garantindo que ele atenda aos requisitos de tempo de resposta e capacidade.

178
Q

O que é um teste de carga?

A

O teste de carga avalia o comportamento do sistema sob uma carga esperada de usuários ou transações, verificando se o sistema pode suportar o uso esperado sem falhas.

179
Q

O que um teste de estresse testa em um sistema?

A

O teste de estresse verifica a capacidade do sistema de lidar com condições extremas, como um número muito alto de usuários ou transações, para identificar seu ponto de falha.

180
Q

O que é a técnica “programação em pares”?

A

A técnica de “programação em pares” envolve dois desenvolvedores trabalhando juntos no mesmo código, com um escrevendo o código e o outro revisando e sugerindo melhorias em tempo real.

181
Q

Quais são as vantagens da programação em pares?

A

A programação em pares aumenta a eficiência, melhora a qualidade do código, reduz a quantidade de defeitos e facilita o aprendizado e a troca de conhecimento entre desenvolvedores.

182
Q

Quais são as principais características de uma aplicação resiliente?

A

Uma aplicação resiliente é capaz de continuar funcionando corretamente mesmo em situações de falha, implementando tolerância a falhas, recuperação rápida e isolamento de falhas.

183
Q

O que é a tolerância a falhas em uma aplicação?

A

Tolerância a falhas é a capacidade de uma aplicação de continuar funcionando normalmente, mesmo quando ocorrem falhas em algumas de suas partes.