50가지 소프트웨어 엔지니어링 인터뷰 질문 및 답변

꿈의 직업을 얻기 위한 신입 지원자와 경험 많은 지원자를 위한 소프트웨어 엔지니어링 면접 질문과 답변은 다음과 같습니다.

 

신입생을 위한 소프트웨어 개발자 인터뷰 질문 및 답변

1) 소프트웨어의 중요한 범주는 무엇입니까?

  • 시스템 소프트웨어
  • 응용 소프트웨어
  • 임베디드 소프트웨어
  • 웹 어플리케이션
  • 인공지능 소프트웨어
  • 과학적인 소프트웨어.

👉 무료 PDF 다운로드: 소프트웨어 엔지니어링 인터뷰 질문 및 답변


2) 컴퓨터 프로그램과 컴퓨터 소프트웨어의 주요 차이점은 무엇입니까?

컴퓨터 프로그램은 프로그래밍 코드의 일부입니다. 잘 정의된 작업을 수행합니다. 반면, 소프트웨어에는 프로그래밍 코드, 문서 및 사용자 가이드가 포함되어 있습니다.


3) 소프트웨어 리엔지니어링이란 무엇입니까?

소프트웨어 시스템의 유지 관리성을 향상시키기 위해 수행되는 소프트웨어 개발 프로세스입니다.

소프트웨어 엔지니어링 질문


4) 소프트웨어 개발 프로세스를 간략하게 설명하십시오.

소프트웨어 개발은 ​​다음 단계로 구성된 수명 주기입니다.

  • 요구 사항 분석
  • 스펙
  • 소프트웨어 아키텍처
  • 실시
  • 지원
  • 문서
  • 교육 및 지원
  • 유지보수

5) 어떤 SDLC 모델을 사용할 수 있나요?

폭포 모델, 나선형 모델, 빅백 모델, 반복 모델, V-모델 등이 유명합니다. SDLC 모델.


6) 검증과 검증이란 무엇입니까?

확인 :

검증은 소프트웨어가 특정 기능을 구현하는지 확인하는 일련의 활동을 나타내는 용어입니다.

확인:

이는 클라이언트의 요구에 따라 소프트웨어가 구축되었는지 확인하는 일련의 활동을 의미합니다.


7) 소프트웨어 개발 과정에서 디버깅의 의미는 무엇입니까?

디버깅은 오류를 제거하는 프로세스입니다. 성공적인 테스트를 위해서는 매우 중요한 부분입니다.


8) 코드가 안전하고 빠른지 어떻게 확인할 수 있나요?

소프트웨어에서 개발 보안은 항상 첫 번째입니다. 따라서 프로그램 실행이 느리다면 시간 복잡도에 대한 이유를 파악하려고 노력할 것입니다.


9) 소프트웨어 요구사항을 추적하는 데 사용되는 두 가지 도구는 무엇입니까?

요구사항을 추적하는 방법에는 여러 가지가 있습니다.

일반적으로 사용되는 두 가지는 다음과 같습니다.

  • 모든 요구 사항을 나열하는 요구 사항 사양 문서를 만듭니다.
  • 요구 사항, 유형, 종속성, 우선 순위 등의 목록을 Excel 시트로 만듭니다.

10) 스텁과 모의의 주요 차이점은 무엇입니까?

스텁은 일반적으로 하드코딩된 데이터를 반환하는 인터페이스의 최소 구현이며, 모의는 일반적으로 예상에 따라 출력을 확인합니다. 이러한 기대치는 시험에서 설정됩니다.


11) 프로그래밍 알고리즘을 작성하는데 어떤 언어를 좋아하시나요?

프로그래밍 언어 선택에 관해 모든 개발자는 각자의 견해를 가지고 있습니다. 하지만 고급 언어는 동적이기 때문에 선호해야 합니다. C와 마찬가지로 C++ 언어.


12) 컴퓨터 소프트웨어란 무엇입니까?

컴퓨터 소프트웨어는 소프트웨어 프로그램, 설명서, 소프트웨어 사용 방법에 대한 사용자 가이드가 포함된 패키지입니다.


13) 어떤 SDLC 모델이 가장 좋다고 생각하시나요?

SDLC 모델은 개발 프로세스의 필요에 따라 채택되므로 그러한 순위는 없습니다. 소프트웨어마다 다를 수 있습니다.


14) 소프트웨어 프로젝트 관리자는 누구입니까? 그의 역할은 무엇입니까?

소프트웨어 프로젝트 관리자는 소프트웨어 개발 프로젝트를 관리하는 책임을 맡은 사람입니다.

프로젝트 관리자는 프로젝트 계획, 진행 상황 모니터링, 커뮤니케이션을 수행합니다. 또한 그는 시간, 비용, 품질 제약 내에서 프로젝트를 완료하기 위해 위험과 자원을 관리합니다.


15) 소프트웨어 범위란 무엇을 의미합니까?

소프트웨어 범위는 잘 정의된 경계입니다. 여기에는 소프트웨어 제품을 개발하고 제공하기 위해 수행되는 모든 종류의 활동이 포함됩니다.

소프트웨어 범위는 소프트웨어의 일부로 제공될 모든 기능과 아티팩트를 정의합니다. 범위는 또한 제품이 수행할 작업을 식별합니다. 프로젝트의 일부가 아닌 것은 무엇입니까? 프로젝트 견적이란 무엇입니까?

이 프로세스는 소프트웨어 제품의 다양한 측면을 평가하는 데 도움이 됩니다. 이 추정치는 전문가와 상담하거나 미리 정의된 공식을 사용하여 결정할 수 있습니다.


16) 소프트웨어 제품의 크기를 어떻게 알 수 있나요?

소프트웨어 제품의 크기는 다음 두 가지 방법을 사용하여 계산할 수 있습니다.

  • 전달된 코드 줄 계산
  • 제공된 기능 점수 계산

17) 기능 점수란 무엇입니까?

기능 점수는 소프트웨어 제품이 제공하는 기능입니다. 이는 소프트웨어 크기를 측정하는 가장 중요한 측정값으로 간주됩니다.


18) 소프트웨어 프로젝트 추정 기술에는 어떤 것이 있습니까?

가장 널리 사용되는 추정 기술은 다음과 같습니다.

  • 분해 기술
  • 경험적 기법

19) 소프트웨어 구성 관리란 무엇입니까?

소프트웨어 구성 관리는 소프트웨어에서 발생하는 변경 사항을 추적하고 제어하는 ​​프로세스입니다.

변경 제어는 소프트웨어 시스템에 적용된 모든 변경 사항이 일관되고 조직의 규칙 및 규정을 사용하여 생성되도록 보장하는 기능입니다.


20) 프로젝트 실행을 어떻게 측정할 수 있나요?

활동 모니터링, 상태 보고서 및 마일스톤 체크리스트를 사용하여 프로젝트 실행을 측정할 수 있습니다.


21) 몇 가지 프로젝트 관리 도구에 대해 말해 주세요.

소프트웨어 프로젝트의 필요에 따라 사용되는 다양한 유형의 관리 도구가 있습니다. 그 중 일부는 Pert Chart, Gantt Chart, Resource Histogram, Status Reports 등입니다.


22) 소프트웨어 요구사항은 무엇입니까?

소프트웨어 요구사항은 제안된 소프트웨어 시스템의 기능적 설명입니다. 이는 대상 시스템, 해당 기능 및 특징에 대한 설명으로 간주됩니다.


23) 타당성 조사란 무엇입니까?

소프트웨어 프로젝트 개발이 조직에 얼마나 실용적이고 유익한지 알아내는 척도입니다. 소프트웨어 분석기는 프로젝트의 경제적, 기술적, 운영적 타당성을 알아보기 위해 연구를 수행합니다.

  1. 간결한: 여기에는 교육 비용, 추가 비용 및 도구 비용, 프로젝트 비용 및 이점에 대한 전반적인 추정이 포함됩니다.
  2. 기술 : 기술적인 측면을 평가합니다. 이 시스템을 개발하는 것이 가능합니까? 소프트웨어가 실행될 기계 및 OS의 적합성, 소프트웨어 개발에 대한 지식 및 이 프로젝트에 사용할 수 있는 도구를 평가합니다.
  3. Opera설명: 여기서 분석가는 조직이 프로젝트 수요에 따라 수행된 변경 사항에 원활하게 적응할 수 있는지 평가해야 합니다. 예상 비용으로 문제를 해결할 가치가 있나요?

이 모든 것을 연구한 후 최종 타당성 보고서가 작성됩니다.


24) 기능적 요구사항과 비기능적 요구사항은 무엇입니까?

기능적 요구사항은 제안된 소프트웨어 제품에서 사용자가 기대하는 기능적 특징입니다.

비기능적 요구사항은 사용자 인터페이스의 보안, 성능, 모양 및 느낌과 관련됩니다.


25) 소프트웨어 메트릭이란 무엇입니까?

소프트웨어 메트릭은 다음과 같이 분류되는 소프트웨어 프로세스의 다양한 측면에 대한 측정값을 제공합니다.

  1. 요구 사항 지표: 길이 요구 사항, 완전성
  2. 제품 지표: 코딩 라인 수, 객체 지향 지표, 디자인 및 테스트 지표.

26) 모듈화란 무엇인가요?

모듈화는 소프트웨어 시스템을 다양한 개별 모듈로 나누는 데 사용되는 기술입니다. 독립적으로 업무를 수행할 것으로 예상됩니다.


27) 응집력이란 무엇입니까?

응집력은 모듈 요소 간의 상호 의존성을 정의하는 척도입니다.


28) 일부 소프트웨어 분석 및 설계 도구에 대해 언급합니까?

가장 중요한 소프트웨어 분석 및 설계 도구 중 일부는 다음과 같습니다.

  • 데이터 흐름도
  • 구조화된 차트
  • 구조화 된 영어
  • 데이터 사전
  • 계층적 입력 프로세스 출력 다이어그램
  • 엔터티 관계 다이어그램 및 결정 테이블

29) 레벨 0 데이터 흐름도란 무엇을 의미하나요?

가장 높은 추상화 수준을 DFD의 수준 0이라고 합니다. 컨텍스트 레벨 DFD라고도 합니다. 전체 정보 시스템을 하나의 다이어그램으로 표현합니다.


30) 구조화된 영어와 의사코드의 가장 큰 차이점은 무엇인가요?

구조화된 영어는 모국어인 영어입니다. 프로그램 모듈의 구조를 작성하는 데 사용됩니다. 프로그래밍 언어 키워드를 사용합니다. 반면 의사 코드는 특정 언어의 구문이 없는 프로그래밍 언어에 더 가깝습니다.


경험이 풍부한 소프트웨어 엔지니어링 viva 질문 및 답변

31) 구조화된 디자인이란 무엇입니까?

구조화된 디자인은 문제의 개념화이다. 솔루션 디자인이라고도 하며 '분할 정복' 전략을 기반으로 합니다.


32) 함수형 프로그래밍이란 무엇입니까?

수학적 함수의 개념을 사용하는 프로그래밍 방법입니다. 수학적 함수로 계산 수단을 제공하며, 프로그램 상태와 관계없이 결과를 생성합니다.


33) 품질 보증과 품질 관리란 무엇입니까?

품질 보증은 소프트웨어를 개발하는 동안 적절한 프로세스를 준수하는지 확인하고 품질 관리는 소프트웨어 제품의 품질 유지를 담당합니다.


34) CASE 도구란 무엇입니까?

CASE는 컴퓨터 지원을 의미합니다. 소프트웨어 공학. 이는 SDLC 활동을 지원, 강화 및 강화하는 데 사용되는 자동화된 소프트웨어 응용 프로그램 세트입니다.


35) 소프트웨어에 문제가 발생하기 전에 결함을 제거하는 프로세스 모델은 무엇입니까?

클린룸 소프트웨어 엔지니어링 방법은 소프트웨어에 문제가 발생하기 전에 결함을 제거합니다.


36) 이 문제를 해결해 보세요

어두운 방 서랍 안에는 두 종류의 양말 XNUMX개가 들어있습니다. 짝이 맞는지 확인하기 위해 가져가야 할 양말의 최소 개수는 몇 개입니까?”

양말 세 개를 집으면 확률이 50%라도 같은 종류일 수 있습니다. 확률은 결코 평등하지 않습니다. 따라서 '일치하는 쌍이 있는지 확인'하는 유일한 방법은 최소 11번의 충격을 받는 것입니다.


37) 다양한 종류의 오류 상황을 처리할 수 있는 작성된 코드를 어떻게 확인할 수 있습니까?

예상되는 오류 상황을 정의하는 테스트를 작성할 수 있습니다.


38) 스레드와 프로세스의 차이점을 설명해주세요.

프로세스는 컴퓨터 프로그램의 인스턴스입니다. 단일 프로그램에서는 하나 이상의 스레드를 가질 수 있습니다.


39) EXE와 DLL의 차이점을 알려주세요.

exe는 실행 가능한 프로그램이고 DLL은 프로그램에 의해 동적으로 로드되고 실행될 수 있는 파일입니다. 프로그램의 외부 코드 저장소입니다. 둘 다 서로 다른 프로그램이므로 해당 코드를 파일에 두는 대신 동일한 DLL을 재사용하십시오. 또한 필요한 저장 공간도 줄어듭니다.


40) 강한 타이핑과 약한 타이핑은 무엇인가? 어느 것이 더 선호되는가? 왜인가?

강력한 타이핑은 컴파일 타임에 변수의 유형을 확인합니다. 반면, 약한 타이핑은 런타임에 시스템의 유형을 확인합니다. 그 중에서도 강력한 타이핑은 버그를 최소화하기 때문에 항상 선호됩니다.


41) 인터페이스 지향, 객체 지향, 관점 지향 프로그래밍의 차이점을 설명하십시오.

  • 인터페이스 프로그래밍은 계약 기반입니다.
  • 객체 지향은 단일 목적을 가진 세분화된 객체를 작성하는 방법입니다.
  • 관점 지향 프로그래밍은 다양한 객체가 주요 작업을 수행하고, 보조 작업이 독립적인 객체에 의해 수행되는 방식으로 코드를 분리하는 것입니다.

42) 왜 catch(예외)를 사용하는 것이 항상 나쁜 생각입니까?

다음과 같은 이유로 나쁜 생각입니다.

  • 정의된 변수가 없으므로 예외를 읽을 수 없습니다.
  • 알려진 예외 유형이 있는 경우 예외를 사용하는 것이 좋습니다.

43) HTTP 헤더를 통해 전달되는 데이터 유형은 무엇입니까?

HTTP 헤더를 통해 전달되는 스크립트 및 메타데이터입니다.


44) 요구사항의 우선순위를 어떻게 정하나요?

먼저, 데이터 구조를 평가하여 시스템을 설계해야 합니다. 그런 다음 이를 지원하는 데 필요한 코드 구조로 이동해야 합니다.


45) 객체 지향 디자인과 구성 요소 기반 디자인의 차이점을 알려주세요.

객체 지향 디자인은 구성 요소 기반 디자인으로 어느 정도 쉽게 캡슐화될 수 있습니다.


46) 언제 다형성을 사용하나요?

다형성은 클래스 상속 시 재정의 기능이 필요할 때 사용됩니다. 공유 클래스와 공유 계약에 관한 것입니다.


47) 스택과 큐의 차이점은 무엇입니까?

  • 대기열은 항상 선입선출입니다.
  • 스택은 항상 후입선출(Last In First Out)입니다.

48) 코드 품질을 테스트하는데 꼭 필요한 것은 무엇인가요?

나에 따르면 단위 테스트 프레임워크는 코드 품질을 테스트하는 데 필수적입니다.


49) 소프트웨어 유지관리 비용이 많이 든다고 생각하시나요?

나에 따르면, 적절한 개발 프로세스를 사용한다면 소프트웨어 유지 관리 비용은 결코 비싸지 않을 것입니다.


50) 태그와 브랜치의 차이점을 알려주세요.

태그는 이러한 작업을 수행하기 위한 임시 보관 장소인 버전 관리 릴리스용입니다. 그러나 해당 변경 사항이 트렁크에 병합되면 분기가 삭제됩니다.


51) 보호된 클래스 수준 변수는 어디에서 사용할 수 있나요?

보호된 클래스 수준 변수는 기본 클래스에서 파생된 모든 하위 클래스에서 사용할 수 있습니다.


52) 단일 try 문에 대해 여러 catch 블록을 실행할 수 있습니까?

예. 단일 try 문에 대해 여러 catch 블록을 실행할 수 있습니다.


53) 언제 클래스를 추상으로 선언해야 합니까?

다음과 같은 상황에서는 클래스를 추상 클래스로 선언해야 합니다.

  1. 클래스가 추상 클래스에서 상속되었지만 일부 추상 메서드가 재정의되지 않은 경우.
  2. 클래스의 메소드 중 최소 하나가 abstract로 선언된 경우.

54) 현재 위치와 해당 지역의 ATM 위치 목록을 출력하는 알고리즘을 개발하십시오. 현재 위치에서 가장 가까운 K ATM을 찾아보세요.

a와 b 사이의 거리를 계산하는 getDistance(a, b) 메서드를 만듭니다.

암호:

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;

}

}

이 인터뷰 질문은 당신의 비바(구술)에도 도움이 될 것입니다.

이 게시물을 요약하면 다음과 같습니다.