50 Pertanyaan dan Jawaban Wawancara Rekayasa Perangkat Lunak Teratas

Anonim

Unduh PDF

1) Apa kategori penting dari perangkat lunak?

  • Perangkat lunak sistem
  • Aplikasi perangkat lunak
  • Perangkat lunak tertanam
  • Aplikasi Web
  • Perangkat lunak Artificial Intelligence
  • Perangkat lunak ilmiah.

2) Apa perbedaan utama antara program komputer dan perangkat lunak komputer?

Program komputer adalah bagian dari kode pemrograman. Itu melakukan tugas yang ditentukan dengan baik. Di sisi lain, perangkat lunak tersebut mencakup kode pemrograman, dokumentasi, dan panduan pengguna.

3) Apa itu rekayasa ulang perangkat lunak?

Ini adalah proses pengembangan perangkat lunak yang dilakukan untuk meningkatkan pemeliharaan sistem perangkat lunak.

4) Jelaskan proses pengembangan perangkat lunak secara singkat:

Pengembangan perangkat lunak adalah siklus hidup yang terdiri dari tahapan sebagai berikut:

  • Analisis kebutuhan
  • Spesifikasi
  • Arsitektur perangkat lunak
  • Penerapan
  • Menguji
  • Dokumentasi
  • Pelatihan dan dukungan
  • Pemeliharaan

5) Apa model SDLC yang tersedia?

Model Air Terjun, Model Spiral, Model Tas Besar, Model Iteratif, dan Model V adalah beberapa model SDLC yang terkenal.

6) Apa itu verifikasi dan validasi?

Verifikasi:

Verifikasi adalah istilah yang mengacu pada serangkaian aktivitas yang memastikan bahwa perangkat lunak mengimplementasikan fungsi tertentu.

Validasi:

Ini mengacu pada sekumpulan aktivitas yang memastikan bahwa perangkat lunak yang dibangun sesuai dengan kebutuhan klien.

7) Dalam proses pengembangan perangkat lunak apa yang dimaksud dengan debugging?

Debugging adalah proses yang menghasilkan penghapusan kesalahan. Ini adalah bagian yang sangat penting dari pengujian yang berhasil.

8) Bagaimana Anda bisa memastikan bahwa kode Anda aman dan cepat?

Dalam perangkat lunak, keamanan pengembangan selalu menjadi yang pertama. Jadi jika eksekusi program lambat, saya akan mencoba mengidentifikasi alasan cara untuk kompleksitas waktunya.

9) Sebutkan dua alat yang digunakan untuk melacak kebutuhan perangkat lunak?

Ada banyak cara untuk melacak persyaratan.

Dua yang biasa digunakan adalah:

  • Buat dokumen spesifikasi persyaratan untuk mencantumkan semua persyaratan.
  • Buat lembar excel, daftar persyaratan, jenis, ketergantungan, prioritas, dll.

10) Apa perbedaan utama antara rintisan, tiruan?

Stub adalah implementasi minimal dari antarmuka yang umumnya mengembalikan data hardcode sementara tiruan biasanya memverifikasi keluaran sesuai ekspektasi. Harapan tersebut ditetapkan dalam ujian.

11) Bahasa apa yang Anda suka untuk menulis algoritma pemrograman?

Setiap pengembang memiliki pandangan mereka sendiri dalam hal pilihan bahasa pemrograman. Padahal, seseorang harus memilih bahasa tingkat tinggi karena mereka dinamis. Seperti bahasa C dan C ++.

12) Apa itu perangkat lunak komputer?

Perangkat lunak komputer adalah sebuah paket yang berisi program perangkat lunak, dokumentasinya, dan panduan pengguna tentang cara menggunakan perangkat lunak.

13) Menurut Anda model SDLC mana yang terbaik?

Tidak ada peringkat seperti itu, karena Model SDLC diadopsi sesuai kebutuhan untuk proses pengembangan. Mungkin perangkat lunak-ke-perangkat lunak berbeda.

14) Siapa manajer proyek perangkat lunak? Apa perannya?

Manajer proyek perangkat lunak adalah orang yang bertanggung jawab untuk mengelola proyek pengembangan perangkat lunak.

Manajer proyek sedang melakukan perencanaan proyek, memantau kemajuan, komunikasi. Dia juga mengelola risiko dan sumber daya untuk menyelesaikan proyek dalam batasan waktu, biaya, dan kualitas.

15) Apa yang dimaksud dengan ruang lingkup perangkat lunak?

Cakupan perangkat lunak adalah batas yang ditentukan dengan baik. Ini mencakup semua jenis aktivitas yang dilakukan untuk mengembangkan dan mengirimkan produk perangkat lunak.

Cakupan perangkat lunak menentukan semua fungsi dan artefak yang akan dikirimkan sebagai bagian dari perangkat lunak. Ruang lingkup juga mengidentifikasi apa yang akan dilakukan produk? Apa yang bukan bagian dari proyek? Apa estimasi proyek?

Proses ini berguna untuk memperkirakan berbagai aspek produk perangkat lunak. Estimasi ini dapat diputuskan oleh ahli konsultasi atau dengan menggunakan rumus yang telah ditentukan sebelumnya.

16) Bagaimana cara mengetahui ukuran produk perangkat lunak?

Ukuran produk perangkat lunak dapat dihitung dengan menggunakan dua metode berikut

  • Menghitung baris kode yang dikirim
  • Menghitung poin fungsi yang dikirimkan

17) Apa poin fungsi?

Titik fungsi adalah fitur yang disediakan oleh produk perangkat lunak. Ini dianggap sebagai ukuran paling penting untuk ukuran perangkat lunak.

18) Apa teknik estimasi proyek perangkat lunak yang tersedia?

Teknik estimasi yang paling banyak digunakan adalah:

  • Teknik dekomposisi
  • Teknik empiris

19) Apa itu manajemen konfigurasi perangkat lunak?

Manajemen konfigurasi perangkat lunak adalah proses melacak dan mengendalikan perubahan yang terjadi pada perangkat lunak.

Kontrol perubahan adalah fungsi yang memastikan bahwa semua perubahan yang dibuat ke dalam sistem perangkat lunak konsisten dan dibuat menggunakan aturan dan regulasi organisasi.

20) Bagaimana Anda mengukur pelaksanaan proyek?

Kami dapat mengukur pelaksanaan proyek menggunakan Pemantauan Aktivitas, Laporan Status, dan Daftar Periksa Milestone.

21) Ceritakan tentang beberapa alat manajemen proyek.

Ada banyak jenis alat manajemen yang digunakan sesuai kebutuhan proyek perangkat lunak. Beberapa di antaranya adalah Pert Chart, Gantt Chart, Resource Histogram, Status Reports, dll.

22) Apa persyaratan perangkat lunak?

Persyaratan perangkat lunak adalah deskripsi fungsional dari sistem perangkat lunak yang diusulkan. Ini diasumsikan sebagai deskripsi sistem target, fungsionalitas, dan fiturnya.

23) Apa studi kelayakan?

Ini adalah ukuran untuk mengetahui seberapa praktis dan bermanfaat pengembangan proyek perangkat lunak akan terbukti bagi organisasi. Penganalisis perangkat lunak melakukan studi untuk mengetahui kelayakan ekonomi, teknis dan operasional proyek.

  1. Ekonomi: Ini mencakup biaya pelatihan, biaya tambahan dan peralatan serta perkiraan keseluruhan biaya dan manfaat proyek.

  2. Teknis: Mengevaluasi aspek teknis. Apakah mungkin untuk mengembangkan sistem ini? Menilai kesesuaian mesin dan OS tempat perangkat lunak akan dijalankan, pengetahuan tentang pengembangan perangkat lunak dan alat yang tersedia untuk proyek ini.

  3. Operasional: Di sini analis perlu menilai bahwa organisasi akan dapat menyesuaikan dengan lancar perubahan yang dilakukan sesuai permintaan proyek. Apakah masalah tersebut layak dipecahkan dengan perkiraan biayanya?

Setelah mempelajari semua ini laporan kelayakan akhir dibuat.

24) Apa persyaratan fungsional dan non-fungsional?

Persyaratan fungsional adalah fitur fungsional yang diharapkan oleh pengguna dari produk perangkat lunak yang diusulkan.

Persyaratan non-fungsional terkait dengan keamanan, kinerja, tampilan, dan nuansa antarmuka pengguna.

25) Apa itu metrik perangkat lunak?

Metrik Perangkat Lunak menawarkan ukuran untuk berbagai aspek proses perangkat lunak yang dibagi menjadi:

  1. Metrik persyaratan: Persyaratan panjang, kelengkapan
  2. Metrik produk: Jumlah Garis pengkodean, metrik berorientasi objek, metrik desain dan pengujian.

26) Apa itu modularisasi?

Modularisasi adalah teknik yang digunakan untuk membagi sistem perangkat lunak menjadi berbagai modul rahasia. Yaitu diharapkan dapat melaksanakan tugas secara mandiri.

27) Apa itu kohesi?

Kohesi adalah ukuran yang mendefinisikan intra-ketergantungan di antara elemen-elemen modul.

28) Sebutkan beberapa alat analisis & desain perangkat lunak?

Beberapa alat analisis dan perancangan perangkat lunak yang paling penting adalah:

  • Diagram Alir Data
  • Bagan Terstruktur
  • Bahasa Inggris Terstruktur
  • Kamus data
  • Proses Input Hierarki Output diagram
  • Diagram Hubungan Entitas dan tabel Keputusan

29) Apa yang dimaksud dengan diagram alir data level-0?

Level abstraksi tertinggi disebut Level 0 dari DFD. Ini juga disebut DFD tingkat konteks. Ini menggambarkan seluruh sistem informasi sebagai satu diagram.

30) Apa perbedaan utama antara Bahasa Inggris terstruktur dan Kode Pseudo?

Bahasa Inggris terstruktur adalah bahasa Inggris asli. Ini digunakan untuk menulis struktur modul program. Ini menggunakan kata kunci bahasa pemrograman. Di sisi lain, Pseudo Code lebih mirip dengan bahasa pemrograman tanpa sintaks bahasa tertentu.

31) Apa itu desain terstruktur?

Desain terstruktur adalah konseptualisasi masalah. Ini juga disebut desain solusi dan yang didasarkan pada strategi 'bagi dan taklukkan'.

32) Apa itu pemrograman fungsional?

Ini adalah metode pemrograman, yang menggunakan konsep fungsi matematika. Ini menyediakan alat komputasi sebagai fungsi matematika, yang juga menghasilkan hasil terlepas dari status program.

33) Apa itu Quality Assurance vs. Quality Control?

Quality Assurance memeriksa apakah proses yang tepat diikuti saat mengembangkan perangkat lunak sementara Kontrol Kualitas berkaitan dengan menjaga kualitas produk perangkat lunak.

34) Apa itu alat CASE?

CASE berarti Rekayasa Perangkat Lunak Berbantuan Komputer. Mereka adalah sekumpulan program aplikasi perangkat lunak otomatis, yang digunakan untuk mendukung, meningkatkan dan memperkuat kegiatan SDLC.

35) Model proses mana yang menghilangkan cacat sebelum perangkat lunak mendapat masalah?

Metode rekayasa perangkat lunak kamar bersih menghilangkan cacat sebelum perangkat lunak mendapat masalah.

36) Pecahkan masalah ini

Ada dua puluh kaus kaki berbeda dari dua jenis di laci di satu ruangan gelap. Berapa jumlah kaus kaki minimum yang perlu Anda bawa untuk memastikan Anda memiliki kaus kaki yang cocok? "

Jika Anda mengambil tiga kaus kaki, mungkin jenisnya sama meskipun kemungkinannya 50%. Kemungkinan tidak pernah menjadi kenyataan yang sama. Oleh karena itu, satu-satunya cara untuk 'memastikan Anda memiliki pasangan yang cocok' adalah dengan mengambil setidaknya 11 guncangan.

37) Bagaimana Anda dapat memastikan bahwa kode tertulis Anda yang dapat menangani berbagai macam situasi kesalahan?

Saya dapat menulis tes yang menentukan situasi kesalahan yang diharapkan.

38) Jelaskan perbedaan antara Thread dan Proses?

Suatu proses adalah contoh dari program komputer. Dalam satu program dimungkinkan untuk memiliki satu atau lebih utas.

39) Ceritakan perbedaan antara EXE dan DLL?

Exe adalah program yang dapat dieksekusi sedangkan DLL adalah file yang dapat dimuat dan dijalankan oleh program secara dinamis. Ini adalah repositori kode eksternal untuk program. Karena keduanya adalah program yang berbeda, gunakan kembali DLL yang sama alih-alih memiliki kode itu di file mereka. Ini juga mengurangi ruang penyimpanan yang dibutuhkan.

40) Apa itu pengetikan kuat dan pengetikan lemah? Mana yang lebih disukai? Mengapa?

Pengetikan yang kuat memeriksa jenis variabel pada waktu kompilasi. Di sisi lain, pengetikan lemah memeriksa jenis sistem pada saat berjalan. Diantaranya, pengetikan yang kuat selalu disukai karena meminimalkan bug.

41) Jelaskan perbedaan antara pemrograman Berorientasi Antarmuka, Berorientasi Objek, dan Berorientasi Aspek.

  • Pemrograman antarmuka berbasis kontrak.
  • Berorientasi objek adalah cara untuk menulis objek granular yang memiliki satu tujuan.
  • Pemrograman Berorientasi Aspek adalah memisahkan kode sedemikian rupa sehingga berbagai objek menjalankan tugas utama, dan tugas tambahan dilakukan oleh objek independen.

42) Mengapa menggunakan tangkapan (pengecualian) selalu merupakan ide yang buruk?

Itu ide yang buruk karena:

  • Karena tidak ada variabel yang ditentukan, tidak mungkin membaca pengecualian
  • Sebaiknya gunakan pengecualian saat Anda mengetahui jenis pengecualian.

43) Jenis data apa yang dikirimkan melalui HTTP Headers?

Skrip dan metadata diteruskan melalui header HTTP.

44) Bagaimana Anda memprioritaskan persyaratan?

Pertama, Anda perlu merancang sistem dengan mengevaluasi struktur data. Kemudian Anda harus beralih ke struktur kode yang diperlukan untuk mendukungnya.

45) Beri saya perbedaan antara desain berorientasi objek dan berbasis komponen?

Desain berorientasi objek dapat dengan mudah dikemas sampai tingkat tertentu dalam desain berbasis komponen.

46) Kapan Anda menggunakan polimorfisme?

Polimorfisme digunakan ketika ada kebutuhan untuk mengganti fungsionalitas saat mewarisi kelas. Ini tentang kelas bersama dan kontrak bersama.

47) Apa perbedaan antara stack dan queue?

  • Antrian selalu First In, First Out
  • Stack selalu Last In, First Out

48) Apa yang penting untuk menguji kualitas kode?

Menurut saya, kerangka pengujian unit sangat penting untuk menguji kualitas kode.

49) Menurut Anda apakah pemeliharaan perangkat lunak itu mahal?

Menurut saya, perawatan software tidak akan pernah mahal jika kita menggunakan proses pengembangan yang tepat.

50) Beri saya perbedaan antara tag dan cabang?

Tag adalah untuk membuat versi rilis yang merupakan tempat penyimpanan sementara untuk melakukan hal seperti itu. Namun, cabang dihapus saat perubahan tersebut digabungkan ke dalam batang.

51) Di manakah variabel tingkat kelas yang dilindungi tersedia?

Variabel tingkat kelas yang dilindungi tersedia untuk setiap sub-kelas yang diturunkan dari kelas dasar.

52) Apakah mungkin untuk mengeksekusi beberapa blok tangkapan untuk satu pernyataan percobaan?

Iya. Beberapa blok tangkapan dapat dieksekusi untuk satu pernyataan percobaan.

53) Kapan Anda perlu mendeklarasikan kelas sebagai abstrak?

Kita harus mendeklarasikan kelas sebagai abstrak dalam situasi berikut:

  1. Saat kelas diwarisi dari kelas abstrak, tetapi tidak semua metode abstrak telah diganti.
  2. Dalam kasus ketika minimal salah satu metode di kelas dideklarasikan sebagai abstrak.

54) Kembangkan algoritma yang menampilkan lokasi Anda saat ini dan daftar lokasi ATM di area itu. Dapatkan ATM K terdekat dengan lokasi Anda.

Buat metode getDistance (a, b) yang menghitung jarak antara a dan b.

Kode:

import java.util.HashMap;import java.util.Map;import java.util.PriorityQueue;public class PrioRQueueExample {public static void main(String[] args){PriorityQueue pq = new PriorityQueue((x,y)-> {Double z = y-x;return z.intValue(); });PrioRQueueExample pqe = new PrioRQueueExample();//Number of ATMs to return i.e. Kint num_ATMs = 3;double curr_loc = 0.00;Map nallATMLocs = new HashMap();//Map of ATM names and their distance co-ordinatesnallATMLocs.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;}}