ソフトウェア エンジニアリングの面接に関する 50 の質問と回答

ここでは、新人だけでなく経験豊富な候補者も夢の仕事に就くための、ソフトウェア エンジニアリングの面接の質問と回答を紹介します。

 

ソフトウェア開発者面接の新入生向けの質問と回答

1) ソフトウェアの重要なカテゴリは何ですか?

  • システムソフトウェア
  • アプリケーションソフトウェア
  • 組み込みソフトウェア
  • Webアプリケーション
  • 人工知能ソフトウェア
  • 科学ソフトウェア。

👉 無料 PDF ダウンロード: ソフトウェア エンジニアリングの面接の質問と回答


2) コンピュータ プログラムとコンピュータ ソフトウェアの主な違いは何ですか?

コンピューター プログラムはプログラミング コードの一部です。 明確に定義されたタスクを実行します。 一方、ソフトウェアにはプログラミング コード、ドキュメント、ユーザー ガイドが含まれています。


3) ソフトウェアリエンジニアリングとは何ですか?

ソフトウェア システムの保守性を向上させるために行われるソフトウェア開発のプロセスです。

ソフトウェア工学に関する質問


4) ソフトウェア開発プロセスを簡単に説明します。

ソフトウェア開発のライフサイクルは、次の段階から構成されます。

  • 要件分析
  • 製品仕様
  • ソフトウェアアーキテクチャ
  • 製品の導入
  • テスト
  • ドキュメント
  • トレーニングとサポート
  • メンテナンス

5) 利用可能な SDLC モデルは何ですか?

ウォーターフォール モデル、スパイラル モデル、ビッグバッグ モデル、反復モデル、V モデルなどが有名です。 SDLCモデル.


6) 検証と検証とは何ですか?

検証:

検証とは、ソフトウェアが特定の機能を実装していることを確認する一連のアクティビティを指す用語です。

検証:

これは、クライアントのニーズに従ってソフトウェアが構築されたことを保証する一連のアクティビティを指します。


7) ソフトウェア開発プロセスにおけるデバッグの意味は何ですか?

デバッグは、エラーを除去するプロセスです。 これはテストを成功させるために非常に重要な部分です。


8) コードが安全で高速であることを確認するにはどうすればよいですか?

ソフトウェア開発では、セキュリティが常に最優先です。そのため、プログラムの実行が遅い場合は、時間の複雑さの原因を特定しようとします。


9) ソフトウェア要件を追跡するために使用されるツールを XNUMX つ挙げてください。

要件を追跡する方法はたくさんあります。

一般的に使用されるのは次の XNUMX つです。

  • すべての要件をリストした要件仕様書を作成します。
  • 要件、タイプ、依存関係、優先度などのリストの下にある Excel シートを作成します。

10) スタブとモックの主な違いは何ですか?

スタブはインターフェイスの最小限の実装であり、通常はハードコードされたデータを返しますが、モックは通常、期待に反して出力を検証します。 そうした期待はテストで設定されます。


11) プログラミングアルゴリズムを書くときにどの言語を使いますか?

プログラミング言語の選択に関しては、開発者それぞれに意見があります。しかし、動的な言語であるため、高水準言語を好む人は多いでしょう。Cや C++ 言語


12) コンピュータソフトウェアとは何ですか?

コンピュータ ソフトウェアは、ソフトウェア プログラム、そのドキュメント、およびソフトウェアの使用方法に関するユーザー ガイドが含まれるパッケージです。


13) あなたによると、どの SDLC モデルが最良ですか?

SDLC モデルは開発プロセスのニーズに応じて採用されるため、そのような順位はありません。 ソフトウェアごとに異なる場合があります。


14) ソフトウェアプロジェクトマネージャーとは誰ですか? 彼の役割は何ですか?

ソフトウェア プロジェクト マネージャーは、ソフトウェア開発プロジェクトの管理を担当する人です。

プロジェクトマネージャーは、プロジェクトの計画、進捗状況の監視、コミュニケーションを行います。 また、時間、コスト、品質の制約内でプロジェクトを遂行するために、リスクとリソースも管理します。


15) ソフトウェアの範囲とは何を意味しますか?

ソフトウェアのスコープは明確に定義された境界です。 これには、ソフトウェア製品の開発と提供のために行われるあらゆる種類のアクティビティが含まれます。

ソフトウェア スコープは、ソフトウェアの一部として提供されるすべての機能とアーティファクトを定義します。 スコープは、製品が何を行うのかも特定します。 プロジェクトに含まれない部分は何ですか? プロジェクト見積もりとは何ですか?

このプロセスは、ソフトウェア製品のさまざまな側面を見積もるのに役立ちます。 この推定は、専門家に相談するか、事前定義された式を使用して決定できます。


16) ソフトウェア製品のサイズを確認するにはどうすればよいですか?

ソフトウェア製品のサイズは、次の2つの方法で計算できます。

  • 配信されたコードの行数を数える
  • 配信された機能ポイントのカウント

17) ファンクションポイントとは何ですか?

ファンクション ポイントは、ソフトウェア製品によって提供される機能です。 これは、ソフトウェアのサイズを測る最も重要な測定値と考えられています。


18) ソフトウェア プロジェクトの見積もり手法にはどのようなものがありますか?

最も広く使用されている推定手法は次のとおりです。

  • 分解技術
  • 経験的手法

19) ソフトウェア構成管理とは何ですか?

ソフトウェア構成管理は、ソフトウェア内で発生する変更を追跡および制御するプロセスです。

変更管理は、ソフトウェア システムに加えられたすべての変更の一貫性を確保し、組織のルールや規制を使用して作成されることを保証する機能です。


20) プロジェクトの実行をどのように測定できますか?

アクティビティモニタリング、ステータスレポート、マイルストーンチェックリストを使用して、プロジェクトの実行を測定できます。


21) プロジェクト管理ツールについて教えてください。

ソフトウェア プロジェクトのニーズに応じて、さまざまな種類の管理ツールが使用されます。 その中には、Pert チャート、ガント チャート、リソース ヒストグラム、ステータス レポートなどがあります。


22) ソフトウェア要件とは何ですか?

ソフトウェア要件は、提案されたソフトウェア システムの機能の説明です。 これは、ターゲット システム、その機能、特徴の説明であると想定されます。


23) 実現可能性調査とは何ですか?

これは、ソフトウェア プロジェクト開発が組織にとってどの程度実用的で有益であるかを調べるための手段です。ソフトウェア アナライザーは、プロジェクトの経済的、技術的、運用上の実現可能性を知るための調査を実施します。

  1. 経済: これには、トレーニングのコスト、追加のツールのコスト、プロジェクトのコストと利点の全体的な見積もりが含まれます。
  2. 技術: 技術的な側面を評価します。 このシステムの開発は可能でしょうか? ソフトウェアが実行されるマシンと OS の適合性、ソフトウェア開発に関する知識、このプロジェクトで利用できるツールを評価します。
  3. Opera地域: ここでアナリストは、組織がプロジェクトの要求に従って行われた変更にスムーズに適応できるかどうかを評価する必要があります。 その問題は見積もられたコストで解決する価値があるか?

これらすべてを検討した後、最終的な実現可能性レポートが作成されます。


24) 機能要件と非機能要件とは何ですか?

機能要件とは、提案されたソフトウェア製品に対してユーザーが期待する機能の特徴です。

非機能要件は、ユーザー インターフェイスのセキュリティ、パフォーマンス、外観、操作感に関連します。


25) ソフトウェアメトリクスとは何ですか?

ソフトウェア メトリクスは、ソフトウェア プロセスのさまざまな側面を次のように分類して測定します。

  1. 要件メトリクス: 長さ要件、完全性
  2. 製品の指標: コーディング行数、オブジェクト指向の指標、設計およびテストの指標。

26) モジュール化とは何ですか?

モジュール化は、ソフトウェア システムをさまざまな個別のモジュールに分割するために使用される技術です。 それはタスクを独立して実行することが期待されます。


27) 結束力とは何ですか?

凝集性は、モジュールの要素間の相互依存性を定義する尺度です。


28) ソフトウェア分析および設計ツールについて言及していますか?

最も重要なソフトウェア分析および設計ツールには次のようなものがあります。

  • データフロー図
  • 構造化チャート
  • 構造化された英語
  • データディクショナリ
  • 階層型入力プロセス出力図
  • エンティティ関係図とデシジョンテーブル

29) レベル 0 データ フロー図とは何を意味しますか?

最も高い抽象化レベルは、DFD のレベル 0 と呼ばれます。 コンテキスト レベル DFD とも呼ばれます。 情報システム全体を XNUMX つの図として表現します。


30) 構造化英語と疑似コードの主な違いは何ですか?

構造化された英語は英語のネイティブ言語です。 プログラムモジュールの構造を記述するために使用されます。 プログラミング言語のキーワードを使用します。 一方、擬似コードは、特定の言語の構文を持たないプログラミング言語に似ています。


ソフトウェア エンジニアリング viva 経験者向けの Q&A

31) 構造化デザインとは何ですか?

構造化設計は問題を概念化したものです。 これはソリューション設計とも呼ばれ、「分割統治」戦略に基づいています。


32) 関数型プログラミングとは何ですか?

これは、数学関数の概念を使用するプログラミング方法です。数学関数として計算手段を提供し、プログラムの状態に関係なく結果を生成します。


33) 品質保証と品質管理とは何ですか?

品質保証はソフトウェアの開発中に適切なプロセスに従っているかをチェックし、品質管理はソフトウェア製品の品質を維持します。


34) CASEツールとは何ですか?

CASEとはコンピュータ支援を意味します ソフトウエアエンジニアリング。 これらは、SDLC 活動をサポート、強化、強化するために使用される自動化されたソフトウェア アプリケーション プログラムのセットです。


35) ソフトウェアに問題が発生する前に欠陥を取り除くプロセス モデルはどれですか?

クリーン ルーム ソフトウェア エンジニアリング手法により、ソフトウェアに問題が発生する前に欠陥が除去されます。


36) この問題を解決してください

暗い部屋の引き出しの中に、XNUMX種類XNUMX足の靴下が入っています。 同じ靴下を確実に揃えるために、最低何枚の靴下を履く必要がありますか?」

靴下を 50 枚拾った場合、確率が 11% であっても、同じ種類の靴下である可能性があります。 オッズは決して平等な現実ではありません。 したがって、「一致するペアを確実に入手する」唯一の方法は、少なくとも XNUMX 個のショックを選択することです。


37) 作成したコードがさまざまな種類のエラー状況を処理できることを確認するにはどうすればよいですか?

予想されるエラー状況を定義するテストを作成できます。


38) スレッドとプロセスの違いを説明しますか?

プロセスはコンピュータ プログラムのインスタンスです。単一のプログラム内に XNUMX つ以上のスレッドを含めることができます。


39) EXE と DLL の違いを教えてください。

exe は実行可能プログラムであり、DLL はプログラムによって動的にロードして実行できるファイルです。 これはプログラムの外部コード リポジトリです。 どちらも異なるプログラムであるため、ファイルにコードを含めるのではなく、同じ DLL を再利用します。 必要な保管スペースも削減されます。


40) 強い型付けと弱い型付けとは何ですか? どちらが推奨されますか? 理由は何ですか?

強い型付けは、コンパイル時に変数の型をチェックします。一方、弱い型付けは、実行時にシステムの型をチェックします。その中でも、強い型付けはバグを最小限に抑えるため、常に好まれます。


41) インターフェイス指向、オブジェクト指向、アスペクト指向のプログラミングの違いを説明します。

  • インターフェイスのプログラミングは契約に基づいています。
  • オブジェクト指向は、単一の目的を持つ粒度の高いオブジェクトを作成する方法です。
  • アスペクト指向プログラミングは、さまざまなオブジェクトが主要なタスクを実行し、補助的なタスクが独立したオブジェクトによって実行されるようにコードを分離することです。

42) catch (例外) を使用することが常に悪い考えであるのはなぜですか?

それは悪い考えです。次の理由からです。

  • 変数が定義されていないため、例外を読み取ることができません
  • 例外の種類がわかっている場合は、例外を使用することをお勧めします。

43) HTTP ヘッダーを介して渡されるデータの種類は何ですか?

HTTP ヘッダー経由で渡されるスクリプトとメタデータ。


44) 要件にどのように優先順位を付けますか?

まず、データ構造を評価してシステムを設計する必要があります。 次に、それをサポートするために必要なコード構造に進む必要があります。


45) オブジェクト指向設計とコンポーネントベース設計の違いを教えてください。

オブジェクト指向設計は、コンポーネントベースの設計である程度まで簡単にカプセル化できます。


46) ポリモーフィズムはいつ使用しますか?

ポリモーフィズムは、クラスを継承するときにオーバーライド機能が必要な場合に使用されます。 それは共有クラスと共有コントラクトに関するものです。


47) スタックとキューの違いは何ですか?

  • キューは常に先入れ先出しです
  • スタックは常に後入れ先出しです

48) コードの品質をテストするために不可欠なものは何ですか?

私によると、コードの品質をテストするには単体テスト フレームワークが不可欠です。


49) ソフトウェアのメンテナンスには費用がかかると思いますか?

私の意見では、適切な開発プロセスを使用していれば、ソフトウェアのメンテナンスに費用がかかることは決してありません。


50) タグとブランチの違いを教えてください。

タグはリリースのバージョン管理用であり、そのようなことを行うための一時的な保持場所です。 ただし、それらの変更がトランクにマージされると、ブランチは削除されます。


51) 保護されたクラスレベル変数はどこで利用できますか?

保護されたクラスレベル変数は、基本クラスから派生したすべてのサブクラスで使用できます。


52) XNUMX つの try ステートメントに対して複数の catch ブロックを実行することは可能ですか?

はい。 XNUMX つの try ステートメントに対して複数の catch ブロックを実行できます。


53) クラスを抽象として宣言する必要があるのはどのような場合ですか?

次のような状況では、クラスを抽象クラスとして宣言する必要があります。

  1. クラスが抽象クラスから継承されているが、すべての抽象メソッドがオーバーライドされていない場合。
  2. クラス内のメソッドの少なくとも XNUMX つが抽象として宣言されている場合。

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;

}

}

これらの面接の質問は、あなたの活力(口頭)にも役立ちます