Perguntas da entrevista de engenharia de software

Caros leitores, estes Software Engineering Interview Questions foram elaborados especialmente para que você se familiarize com a natureza das perguntas que você pode encontrar durante a entrevista sobre o assunto Software Engineering. De acordo com minha experiência, bons entrevistadores dificilmente planejaram fazer qualquer pergunta em particular durante sua entrevista, normalmente as perguntas começam com algum conceito básico do assunto e depois continuam com base em uma discussão posterior e nas respostas:

Q.What is computer software?

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

Q.Can you differentiate computer software and computer program?

A. Um programa de computador é um pedaço de código de programação que executa uma tarefa bem definida, enquanto o software inclui o código de programação, sua documentação e guia do usuário.

Q.What is software engineering?

A. A engenharia de software é um ramo da engenharia associado ao desenvolvimento de sistemas de software.

Q.When you know programming, what is the need to learn software engineering concepts?

A.Uma pessoa que sabe como construir uma parede pode não ser boa para construir uma casa inteira. Da mesma forma, uma pessoa que pode escrever programas pode não ter conhecimento de outros conceitos de Engenharia de Software. Os conceitos de engenharia de software orientam os programadores sobre como avaliar os requisitos do usuário final, projetar os algoritmos antes do início da codificação real, criar programas codificando, testando o código e sua documentação.

Q.What is software process or Software Development Life Cycle (SDLC)?

A.O Ciclo de Vida de Desenvolvimento de Software, ou processo de software, é o desenvolvimento sistemático de software seguindo todas as fases do processo de desenvolvimento, nomeadamente, Recolha de Requisitos, Análise do Sistema, Design, Codificação, Teste, Manutenção e Documentação, nessa ordem.

Q.What are SDLC models available?

A. Existem vários modelos SDLC disponíveis, como modelo em cascata, modelo iterativo, modelo espiral, modelo em V e modelo big-bang, etc.

Q.What are various phases of SDLC?

A.As fases genéricas do SDLC são: coleta de requisitos, análise e projeto do sistema, codificação, teste e implementação. As fases dependem do modelo que escolhemos para desenvolver software.

Q.Which SDLC model is the best?

A.Modelos SDLC são adotados de acordo com os requisitos do processo de desenvolvimento. Pode ser muito difícil garantir que modelo é adequado.

Podemos selecionar o melhor modelo SDLC se as seguintes respostas forem satisfeitas -

  • O SDLC é adequado para a tecnologia selecionada para implementar o software?
  • O SDLC é apropriado para os requisitos e prioridades do cliente?
  • O modelo SDLC é adequado para o tamanho e complexidade do software?
  • O modelo SDLC é adequado para o tipo de projetos e engenharia que fazemos?
  • O SDLC é apropriado para desenvolvedores geograficamente co-localizados ou dispersos?

Q.What is software project management?

A. Gerenciamento de projetos de software é o processo de gerenciamento de todas as atividades, como tempo, custo e gerenciamento de qualidade envolvidas no desenvolvimento de software.

Q.Who is software project manager?

A. Um gerente de projeto de software é uma pessoa que assume a responsabilidade de realizar o projeto de software.

Q.What does software project manager do?

A. O gerente de projeto de software está envolvido com atividades de gerenciamento de software. Ele é responsável pelo planejamento do projeto, monitoramento do andamento, comunicação entre as partes interessadas, gerenciamento de riscos e recursos, execução harmoniosa do desenvolvimento e entrega do projeto dentro do prazo, custo e restrições de qualidade.

Q.What is software scope?

A. O escopo do software é uma fronteira bem definida, que engloba todas as atividades realizadas para desenvolver e entregar o produto de software.

O escopo do software define claramente todas as funcionalidades e artefatos a serem entregues como parte do software. O escopo identifica o que o produto fará e o que não fará, o que o produto final conterá e o que não conterá.

Q.What is project estimation?

A.É um processo de estimar vários aspectos do produto de software para calcular o custo de desenvolvimento em termos de esforços, tempo e recursos. Esta estimativa pode ser derivada de experiências anteriores, por meio de consultoria a especialistas ou usando fórmulas predefinidas.

Q.How can we derive the size of software product?

A. O tamanho do produto de software pode ser calculado usando um de dois métodos -

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

Q.What are function points?

A.Os pontos de função são os vários recursos fornecidos pelo produto de software. É considerada uma unidade de medida para o tamanho do software.

Q.What are software project estimation techniques available?

A. Existem muitas técnicas de estimativa disponíveis. As mais amplamente utilizadas são -

  • Técnica de decomposição (linhas de código de contagem e pontos de função)
  • Técnica empírica (Putnam e COCOMO).

Q.What is baseline?

A.A linha de base é uma medida que define a integridade de uma fase. Depois que todas as atividades associadas a uma determinada fase são realizadas, a fase é concluída e funciona como uma linha de base para a próxima fase.

Q.What is Software configuration management?

A. O gerenciamento de configuração de software é um processo de rastreamento e controle das mudanças no software em termos de requisitos, design, funções e desenvolvimento do produto.

Q.What is change control?

A. O controle de alterações é função do gerenciamento de configuração, que garante que todas as alterações feitas no sistema de software sejam consistentes e feitas de acordo com as regras e regulamentos organizacionais.

Q.How can you measure project execution?

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

Q.Mention some project management tools.

A.Existem várias ferramentas de gerenciamento de projeto usadas de acordo com os requisitos de projeto de software e políticas da organização. Eles incluem gráfico de Gantt, gráfico PERT, histograma de recursos, análise de caminho crítico, relatórios de status, listas de verificação de marcos etc.

Q.What are software requirements?

A.Os requisitos de software são a descrição funcional do sistema de software proposto. Requisitos são considerados como a descrição do sistema de destino, suas funcionalidades e recursos. Os requisitos transmitem as expectativas dos usuários do sistema.

Q.What is feasibility study?

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

  • Economic - Transporte de recursos, custo de treinamento, custo de utilitários e ferramentas adicionais e estimativa geral de custos e benefícios do projeto.

  • Technical - É possível desenvolver este sistema? Avaliação da adequação da (s) máquina (s) e do (s) sistema (s) operacional (is) nos quais o software será executado, o conhecimento e as habilidades dos desenvolvedores existentes, treinamento, utilitários ou ferramentas para o projeto.

  • Operational - A organização pode se ajustar sem problemas às mudanças feitas conforme a demanda do projeto? Vale a pena resolver o problema?

Q.How can you gather requirements?

A. Os requisitos podem ser coletados dos usuários por meio de entrevistas, pesquisas, análise de tarefas, brainstorming, análise de domínio, prototipagem, estudo da versão utilizável existente do software e por observação.

Q.What is SRS?

A.SRS ou Especificação de Requisito de Software é um documento produzido no momento do processo de coleta de requisitos. Também pode ser visto como um processo de refinar requisitos e documentá-los.

Q.What are functional requirements?

A. Requisitos funcionais são características e especificações funcionais esperadas pelos usuários do produto de software proposto.

Q.What are non-functional requirements?

A. Requisitos não funcionais são implícitos e relacionados à segurança, desempenho, aparência e comportamento da interface do usuário, interoperabilidade, custo, etc.

Q.What is software measure?

A. Medidas de software podem ser entendidas como um processo de quantificar e simbolizar vários atributos e aspectos do software.

Q.What is software metric?

A.Software Metrics fornece medidas para vários aspectos do processo de software e do produto de software. Eles são divididos em -

  • Métricas de requisitos: requisitos de comprimento, integridade
  • Métricas do produto: linhas de código, métricas orientadas a objetos, métricas de design e teste
  • Métricas de processo: avaliar e monitorar orçamento, cronograma, recursos humanos.

Q.What is modularization?

A. Modularização é uma técnica para dividir um sistema de software em vários módulos discretos, que devem realizar a (s) tarefa (s) de forma independente.

Q.What is concurrency and how it is achieved in software?

A.Simultaneidade é a tendência de eventos ou ações acontecerem simultaneamente. No software, quando dois ou mais processos são executados simultaneamente, eles são chamados de processos simultâneos.

Exemplo

Enquanto você inicia o comando de impressão e a impressão é iniciada, você pode abrir um novo aplicativo.

A simultaneidade é implementada dividindo o software em várias unidades independentes de execução, ou seja, processos e threads, e executando-os em paralelo.

Q.What is cohesion?

A. A coesão é uma medida que define o grau de intra-confiança entre os elementos do módulo.

Q.What is coupling?

A. O acoplamento é uma medida que define o nível de inter-confiança entre os módulos de um programa.

Q.Mentions some software analysis & design tools?

A. Podem ser: DFDs (Diagramas de Fluxo de Dados), Gráficos Estruturados, Inglês Estruturado, Dicionário de Dados, diagramas HIPO (Saída de Processo de Entrada Hierárquica), Diagramas ER (Relacionamento de Entidade) e tabelas de Decisão.

Q.What is level-0 DFD?

A. O DFD de nível de abstração mais alto é conhecido como Nível 0 DFD, também chamado de DFD de nível de contexto, que representa todo o sistema de informações como um diagrama que esconde todos os detalhes subjacentes.

Q.What is the difference between structured English and Pseudo Code?

A. O inglês estruturado é o idioma nativo do inglês usado para escrever a estrutura de um módulo do programa usando palavras-chave da linguagem de programação, enquanto o Pseudo Código é mais próximo da linguagem de programação e usa palavras ou frases do idioma inglês nativo para escrever partes do código.

Q.What is data dictionary?

A.O dicionário de dados é conhecido como metadados. Ou seja, é um repositório de dados sobre dados. O dicionário de dados é usado para organizar os nomes e suas referências usadas no sistema, como objetos e arquivos, juntamente com suas convenções de nomenclatura.

Q.What is structured design?

A.O projeto estruturado é uma conceituação do problema em vários elementos bem organizados de solução. É a preocupação com o desenho da solução e baseada na estratégia de 'dividir para conquistar'.

Q.What is the difference between function oriented and object oriented design?

A.O projeto orientado a função é composto de muitos subsistemas menores conhecidos como funções. Cada função é capaz de realizar tarefas significativas no sistema. O design orientado a objetos funciona em torno dos objetos do mundo real (entidades), suas classes (categorias) e métodos que operam em objetos (funções).

Q.Briefly define top-down and bottom-up design model.

A. O modelo de cima para baixo começa com uma visão generalizada do sistema e o decompõe em outros mais específicos, enquanto o modelo de baixo para cima começa com os componentes mais específicos e básicos primeiro e continua compondo os componentes para obter um nível mais alto de abstração.

Q.What is the basis of Halstead’s complexity measure?

A. A medida de complexidade do Halstead depende da implementação real do programa e considera os tokens usados ​​no programa como base da medida.

Q.Mention the formula to calculate Cyclomatic complexity of a program?

A. A complexidade ciclomática usa a fórmula da teoria dos grafos: V (G) = e - n + 2

Q.What is functional programming?

A.A programação funcional é um estilo de linguagem de programação, que usa os conceitos de função matemática. Ele fornece meios de computação como funções matemáticas, que produzem resultados independentemente do estado do programa.

Q.Differentiate validation and verification?

A. A validação verifica se o produto é feito de acordo com os requisitos do usuário, enquanto a verificação verifica se as etapas adequadas são seguidas para desenvolver o produto.

A validação confirma o produto certo e a verificação confirma se o produto foi construído da maneira certa.

Q.What is black-box and white-box testing?

A.O teste de caixa preta verifica se as saídas desejadas são produzidas quando os valores de entrada válidos são fornecidos. Não verifica a implementação real do programa.

O teste de caixa branca não só verifica a saída desejada e válida quando uma entrada válida é fornecida, mas também verifica se o código está implementado corretamente.

Critério Teste de caixa preta Teste de caixa branca
Conhecimento do programa de software, design e estrutura essenciais Não sim
Conhecimento de implementação de software essencial Não sim
Quem conduz este teste no software Funcionário de teste de software Desenvolvedor de software
referência de linha de base para testador Especificações de requisitos Detalhes de design e estrutura

Q.Quality assurance vs. Quality Control?

A. O Controle de Qualidade monitora para verificar se o processo adequado é seguido durante o desenvolvimento do software.

O Controle de Qualidade trata da manutenção da qualidade do produto de software.

Q.What are various types of software maintenance?

A. Os tipos de manutenção são: corretiva, adaptativa, perfectiva e preventiva.

  • Corrective

    Remoção de erros detectados pelos usuários

  • Adaptive

    lidar com as mudanças no ambiente de hardware e software onde o software funciona

  • Perfective maintenance

    implementação de mudanças nos requisitos existentes ou novos do usuário

  • Preventive maintenance

    tomando medidas apropriadas para evitar problemas futuros

Q.What is software re-engineering?

A.A reengenharia de software é o processo de atualização da tecnologia na qual o software é construído sem alterar a funcionalidade do software. Isso é feito para manter o software atualizado com a tecnologia mais recente.

Q.What are CASE tools?

A.CASE significa Engenharia de Software Assistida por Computador. As ferramentas CASE são um conjunto de programas de aplicativos de software automatizados, usados ​​para apoiar, acelerar e suavizar as atividades do SDLC.

O que vem a seguir?

Além disso, você pode passar por suas atribuições anteriores que fez com o assunto e certificar-se de que consegue falar sobre elas com segurança. Se você está mais descansado, o entrevistador não espera que você responda a perguntas muito complexas; em vez disso, você precisa tornar seus conceitos básicos muito fortes.

Em segundo lugar, realmente não importa muito se você não pudesse responder a algumas perguntas, mas é importante que tudo o que você respondeu, você deve ter respondido com confiança. Portanto, sinta-se confiante durante a entrevista. Nós da tutorialspoint desejamos a você boa sorte em ter um bom entrevistador e tudo de melhor para seu futuro empreendimento. Felicidades :-)