50 perguntas e respostas da entrevista de engenharia de software

Aqui estão as perguntas e respostas da entrevista de Engenharia de Software para candidatos mais novos e experientes para conseguir o emprego dos sonhos.

 

Perguntas e respostas da entrevista com desenvolvedores de software para calouros

1) Quais são as categorias importantes de software?

  • Software de sistema
  • Software de aplicação
  • Software embutido
  • Aplicativos da web
  • Software de inteligência artificial
  • Software científico.

👉 Download gratuito de PDF: Perguntas e respostas da entrevista de engenharia de software


2) Qual é a principal diferença entre um programa de computador e um software de computador?

Um programa de computador é um pedaço de código de programação. Ele executa uma tarefa bem definida. Por outro lado, o software inclui código de programação, documentação e guia do usuário.


3) O que é reengenharia de software?

É um processo de desenvolvimento de software feito para melhorar a capacidade de manutenção de um sistema de software.

Perguntas de engenharia de software


4) Descreva resumidamente o processo de desenvolvimento de software:

O desenvolvimento de software é um ciclo de vida composto pelos seguinteswing estágios:

  • Análise de requisitos
  • Especificação
  • Software archiarquitetura
  • Implementação
  • ensaio
  • Documentação
  • Treinamento e suporte
  • Manutenção

5) Quais são os modelos SDLC disponíveis?

Modelo Cachoeira, Modelo Espiral, Modelo Big-bag, Modelo Iterativo e Modelo V são alguns dos famosos Modelos SDLC.


6) O que é verificação e validação?

Verificação:

Verificação é um termo que se refere ao conjunto de atividades que garantem que o software implemente uma função específica.

Validação:

Refere-se ao conjunto de atividades que garantem que o software seja construído de acordo com a necessidade dos clientes.


7) No processo de desenvolvimento de software qual o significado de depuração?

A depuração é o processo que resulta na remoção do erro. É uma parte muito importante do teste bem-sucedido.


8) Como você pode ter certeza de que seu código é seguro e rápido?

No software, a segurança do desenvolvimento está sempre em primeiro lugar. Então se a execução do programa estiver lenta então, tentarei identificar o motivo dos caminhos para o seu tempo complexity.


9) Cite duas ferramentas usadas para monitorar os requisitos de software.

Existem muitas maneiras de acompanhar os requisitos.

Dois comumente usados ​​são:

  • Faça um documento de especificações de requisitos para listar todos os requisitos.
  • Crie uma planilha Excel com a lista de requisitos, tipo, dependência, prioridade, etc.

10) Qual a principal diferença entre um stubs e um mock?

Um stub é uma implementação mínima de uma interface que geralmente retorna dados codificados, enquanto o mock geralmente verifica as saídas em relação às expectativas. Essas expectativas são definidas no teste.


11) Em que linguagem você gosta de escrever algoritmos de programação?

Cada desenvolvedor tem sua opinião quando se trata de escolhas de linguagem de programação. Porém, deve-se preferir linguagens de alto nível porque são dinâmicas. Como as linguagens C e C++.


12) O que é software de computador?

Software de computador é um pacote que inclui um programa de software, sua documentação e um guia do usuário sobre como usar o software.


13) Na sua opinião qual modelo SDLC é o melhor?

Não existe tal classificação, pois os Modelos SDLC são adotados conforme a necessidade do processo de desenvolvimento. Pode diferir de software para software.


14) Quem é o gerente de projetos de software? Qual é o seu papel?

Um gerente de projeto de software é a pessoa responsável por gerenciar o projeto de desenvolvimento de software.

O gerente do projeto está fazendo o planejamento do projeto, monitorando o andamento e a comunicação. Ele ou ela também gerencia riscos e recursos para entregar o projeto dentro das restrições de tempo, custo e qualidade.


15) O que significa escopo de software?

O escopo do software é um limite bem definido. Inclui todos os tipos de atividades realizadas para desenvolver e entregar o produto de software.

O escopo do software define todas as funcionalidades e artefatos a serem entregues como parte do software. O escopo também identifica o que o produto fará? O que não faz parte do projeto? O que é estimativa de projeto?

Este processo é útil para estimar vários aspectos do produto de software. Esta estimativa pode ser decidida consultando especialistas ou utilizando fórmulas pré-definidas.


16) Como saber o tamanho de um produto de software?

O tamanho do produto de software pode ser calculado usando o seguintewing dois métodos

  • Contando as linhas do código entregue
  • Contando pontos de função entregues

17) O que são pontos de função?

Os pontos de função são os recursos fornecidos pelo produto de software. É considerada a medida mais importante para o tamanho do software.


18) Quais são as técnicas de estimativa de projetos de software disponíveis?

As técnicas de estimativa mais utilizadas são:

  • Técnica de decomposição
  • Técnica empírica

19) O que é gerenciamento de configuração de software?

O gerenciamento de configuração de software é um processo de rastreamento e controle de alterações que acontecem no software.

O controle de mudanças é uma função que garante que todas as mudanças feitas no sistema de software sejam consistentes e criadas usando regras e regulamentos organizacionais.


20) Como você pode medir a execução do projeto?

Podemos medir a execução do projeto usando monitoramento de atividades, relatórios de status e listas de verificação de marcos.


21) Conte-me sobre algumas ferramentas de gerenciamento de projetos.

Existem muitos tipos de ferramentas de gerenciamento usadas de acordo com a necessidade de um projeto de software. Alguns deles são Gráfico Pert, Gráfico Gantt, Histograma de Recursos, Relatórios de Status, etc.


22) Quais são os requisitos de software?

Os requisitos de software são uma descrição funcional de um sistema de software proposto. Presume-se que seja a descrição do sistema alvo, suas funcionalidades e recursos.


23) O que é estudo de viabilidade?

É uma medida para descobrir o quão prático e benéfico o desenvolvimento do projeto de software será para a organização. O analisador de software realiza um estudo para conhecer a viabilidade econômica, técnica e operacional do projeto.

  1. Econômico: Inclui o custo de treinamento, custo de ferramentas adicionais e estimativa geral de custos e benefícios do projeto.
  2. técnica: Avalia o aspecto técnico. É possível desenvolver este sistema? Avaliar a adequação da(s) máquina(s) e sistema operacional em que o software será executado, conhecimento do desenvolvimento de software e ferramentas disponíveis para este projeto.
  3. Operacional: Aqui o analista precisa avaliar se a organização será capaz de se ajustar sem problemas às mudanças feitas de acordo com a demanda do projeto. Vale a pena resolver o problema pelo custo estimado?

Depois de estudar tudo isso é criado o relatório final de viabilidade.


24) O que são requisitos funcionais e não funcionais?

Requisitos funcionais são recursos funcionais esperados pelos usuários do produto de software proposto.

Os requisitos não funcionais estão relacionados à segurança, desempenho, aparência e comportamento da interface do usuário.


25) O que é métrica de software?

Métricas de Software oferece medidas para vários aspectos do processo de software que são divididos em:

  1. Métricas de requisitos: requisitos de comprimento, integridade
  2. Métricas do produto: Número de linhas de codificação, métricas orientadas a objetos, métricas de design e teste.

26) O que é modularização?

Modularização é uma técnica usada para dividir um sistema de software em vários módulos discretos. Espera-se que execute as tarefas de forma independente.


27) O que é coesão?

A coesão é uma medida que define a intra-dependência entre os elementos do módulo.


28) Menciona algumas ferramentas de análise e design de software?

Algumas das ferramentas mais importantes de análise e design de software são:

  • Diagramas de fluxo de dados
  • Gráficos Estruturados
  • Inglês estruturado
  • Dicionário de dados
  • aquiarchiDiagramas de saída do processo de entrada cal
  • Diagramas de relacionamento de entidades e tabelas de decisão

29) O que significa diagrama de fluxo de dados de nível 0?

O nível de abstração mais alto é chamado de Nível 0 do DFD. Também é chamado de DFD de nível de contexto. Ele retrata todo o sistema de informação como um diagrama.


30) Qual a principal diferença entre o inglês estruturado e o pseudocódigo?

Inglês estruturado é o idioma nativo do inglês. É usado para escrever a estrutura de um módulo de programa. Ele usa palavras-chave de linguagem de programação. Por outro lado, o Pseudo Código se assemelha mais à linguagem de programação sem sintaxe de nenhuma linguagem específica.


Perguntas e respostas vivas de engenharia de software para experientes

31) O que é design estruturado?

O design estruturado é uma conceituação do problema. É também chamado de design de soluções e que se baseia na estratégia de “dividir para conquistar”.


32) O que é programação funcional?

É um método de programação que utiliza os conceitos de uma função matemática. Ele fornece meios de computação como funções matemáticas, que também produzem resultados independentemente do estado do programa.


33) O que é Garantia de Qualidade vs. Controle de Qualidade?

A Garantia de Qualidade verifica se o processo adequado é seguido durante o desenvolvimento do software, enquanto o Controle de Qualidade trata da manutenção da qualidade do produto de software.


34) O que são ferramentas CASE?

CASE significa Auxiliado por Computador Engenharia de Software. Eles são um conjunto de programas aplicativos de software automatizados, que são usados ​​para apoiar, aprimorar e fortalecer as atividades do SDLC.


35) Qual modelo de processo remove defeitos antes que o software tenha problemas?

O método de engenharia de software em sala limpa remove defeitos antes que o software tenha problemas.


36) Resolva este problema

Há vinte meias diferentes de dois tipos numa gaveta de um quarto escuro. Qual é o número mínimo de meias que você precisa levar para garantir que terá um par que combine?”

Se você pegar três meias, elas poderão ser do mesmo tipo, mesmo que as chances sejam de 50%. As probabilidades nunca são uma realidade igual. Portanto, a única maneira de 'garantir que você tenha um par correspondente' é pegar pelo menos 11 choques.


37) Como você pode ter certeza de que seu código escrito pode lidar com vários tipos de situações de erro?

Posso escrever testes que definam as situações de erro esperadas.


38) Explique as diferenças entre um Thread e um Processo?

Um processo é uma instância do programa de computador. Em um único programa é possível ter um ou mais threads.


39) Diga-me a diferença entre um EXE e uma DLL?

Um exe é um programa executável, enquanto uma DLL é um arquivo que pode ser carregado e executado por programas dinamicamente. É um repositório de código externo para programas. Como ambos são programas diferentes, reutilize a mesma DLL em vez de ter esse código em seu arquivo. Também reduz o espaço de armazenamento necessário.


40) O que é tipagem forte e tipagem fraca? Qual é o preferido? Por que?

A digitação forte verifica os tipos de variáveis ​​em tempo de compilação. Por outro lado, a digitação fraca verifica os tipos do sistema em tempo de execução. Entre eles, a digitação forte é sempre preferida porque minimiza os bugs.


41) Descreva a diferença entre programação orientada a interface, orientada a objetos e orientada a aspectos.

  • A programação da interface é baseada em contrato.
  • Orientado a objetos é uma forma de escrever objetos granulares que têm um único propósito.
  • A Programação Orientada a Aspectos consiste em segregar o código de tal maneira que vários objetos executam as tarefas principais e as tarefas subsidiárias são realizadas por objetos independentes.

42) Por que usar catch (exceção) é sempre uma má ideia?

É uma má ideia porque:

  • Como não há variável definida, não é possível ler a exceção
  • É bom usar uma exceção quando você conhece tipos de exceção.

43) Que tipo de dados são passados ​​via cabeçalhos HTTP?

Script e metadados transmitidos por cabeçalhos HTTP.


44) Como você prioriza os requisitos?

Primeiro, você precisa projetar um sistema avaliando a estrutura de dados. Então você deve passar para a estrutura de código necessária para suportá-lo.


45) Dê-me as diferenças entre design orientado a objetos e baseado em componentes?

O design orientado a objetos pode ser facilmente encapsulado até certo ponto no design baseado em componentes.


46) Quando você usa polimorfismo?

O polimorfismo é usado quando há necessidade de funcionalidade de substituição ao herdar a classe. Trata-se de aulas compartilhadas e contratos compartilhados.


47) Qual é a diferença entre pilha e fila?

  • A fila é sempre o primeiro a entrar, primeiro a sair
  • A pilha é sempre a última a entrar, a primeira a sair

48) O que é essencial para testar a qualidade do código?

Na minha opinião, o framework de testes unitários é essencial para testar a qualidade do código.


49) Você acha que a manutenção de software é cara?

Na minha opinião, a manutenção de software nunca será cara se usarmos um processo de desenvolvimento adequado.


50) Dê-me diferenças entre tags e ramificações?

Tags são para lançamentos de versão que são locais temporários para fazer tal coisa. No entanto, as ramificações são excluídas quando essas alterações são mescladas no tronco.


51) Onde está disponível uma variável protegida em nível de classe?

Variáveis ​​protegidas em nível de classe estão disponíveis para qualquer subclasse derivada da classe base.


52) É possível executar vários blocos catch para uma única instrução try?

Sim. Vários blocos catch podem ser executados para uma única instrução try.


53) Quando você precisa declarar uma classe como abstrata?

Devemos declarar uma classe como abstrata a seguirwing situações:

  1. Quando a classe é herdada de uma classe abstrata, mas nem todos os métodos abstratos foram substituídos.
  2. No caso em que pelo menos um dos métodos da classe é declarado como abstrato.

54) Desenvolva um algoritmo que produza sua localização atual e uma lista de locais de caixas eletrônicos nessa área. Obtenha os caixas eletrônicos K mais próximos de sua localização.

Crie um método getDistance(a, b) que calcule a distância entre a e b.

Código:

import java.util.HashMap;

import java.util.Map;

import java.util.PriorityQueue;

public class PrioRQueueExample {

public static void main(String[] args){

PriorityQueue<Double> pq = new PriorityQueue<Double>((x,y)-> {Double z = y-x;return z.intValue(); });

PrioRQueueExample pqe = new PrioRQueueExample();

//Number of ATMs to return i.e. K

int num_ATMs = 3;

double curr_loc = 0.00;

Map<String,Double> nallATMLocs = new HashMap<String,Double>();

//Map of ATM names and their distance co-ordinates

nallATMLocs.put("atm1",45.0);

nallATMLocs.put("atm2",78.0);

nallATMLocs.put("atm3",54.0);

nallATMLocs.put("atm4",64.0);

nallATMLocs.put("atm5",35.0);

nallATMLocs.put("atm6",42.0);

nallATMLocs.put("atm7",57.0);

nallATMLocs.put("atm7",1.00);

nallATMLocs.forEach((atm,dist) ->{if(pq.size() < num_ATMs){

pq.add(pqe.getLocation(curr_loc,dist));}

else{

if(        pq.peek() > pqe.getLocation(curr_loc,dist)){

pq.poll();

pq.add(pqe.getLocation(curr_loc,dist));

}

}

});

pq.forEach(atmLoc -> System.out.println(atmLoc));

}

private double getLocation(double curr,double atm){

return atm - curr;

}

}

Essas perguntas da entrevista também ajudarão em sua viva (oral)