ScholarGate
Asisten

Konstruksi dan Kualitas Perangkat Lunak

Konstruksi dan kualitas perangkat lunak berkaitan dengan penciptaan kode kerja yang disiplin serta teknik-teknik — pengujian, verifikasi, tinjauan, dan pengukuran — yang menetapkan dan memastikan bahwa perangkat lunak memenuhi persyaratan dan tujuan kualitasnya.

Temukan Topik dengan PaperMindSegeraFind papers & topics
Tools & resources
Unduh salindia
Learn & explore
VideoSegera

Definition

Konstruksi perangkat lunak adalah penciptaan detail perangkat lunak yang berfungsi melalui pengkodean, verifikasi, pengujian unit, dan debugging, dan kualitas perangkat lunak adalah tingkat sejauh mana perangkat lunak memenuhi persyaratan yang dinyatakan dan tersirat, yang dijamin oleh aktivitas verifikasi, validasi, dan manajemen kualitas.

Scope

Area ini mencakup praktik konstruksi perangkat lunak termasuk standar pengkodean, pemrograman defensif, dan pengujian unit; tingkat dan teknik pengujian perangkat lunak; verifikasi dan validasi; analisis statis dan dinamis; tinjauan dan refactoring kode; atribut dan metrik kualitas perangkat lunak; serta metode formal untuk membuktikan kebenaran. Ini menyatukan aktivitas-aktivitas yang menghasilkan dan menjamin perangkat lunak yang andal.

Sub-topics

Core questions

  • Praktik apa yang menghasilkan kode yang benar, mudah dibaca, dan mudah dipelihara?
  • Bagaimana cacat dideteksi melalui pengujian, tinjauan, dan analisis?
  • Bagaimana kualitas perangkat lunak didefinisikan, diukur, dan dijamin?
  • Kapan kebenaran dapat ditetapkan melalui bukti formal daripada hanya pengujian?

Key theories

Pengujian mengungkapkan keberadaan, bukan ketiadaan, cacat
Pengujian dapat menunjukkan bahwa cacat ada tetapi tidak dapat membuktikan ketiadaannya; oleh karena itu, pengujian yang efektif bertujuan untuk memaksimalkan probabilitas menemukan kesalahan melalui pemilihan kasus sistematis daripada eksekusi yang menyeluruh.
Verifikasi dan validasi
Verifikasi memeriksa bahwa perangkat lunak dibangun dengan benar sesuai dengan spesifikasinya, sementara validasi memeriksa bahwa perangkat lunak yang tepat dibangun untuk memenuhi kebutuhan pengguna; bersama-sama keduanya mencakup tinjauan, analisis, dan pengujian di seluruh siklus hidup.
Kualitas dibangun, bukan diuji
Kualitas dihasilkan dari praktik konstruksi, desain, dan disiplin proses daripada dari inspeksi di akhir; pencegahan cacat dan deteksi dini jauh lebih murah daripada koreksi yang terlambat.

Clinical relevance

Aktivitas konstruksi dan kualitas menentukan keandalan, keamanan, dan pemeliharaan suatu sistem serta mendominasi biaya cacat; verifikasi dini dan sistematis mengurangi kegagalan di lapangan dan pengerjaan ulang, yang merupakan inti dari penyampaian perangkat lunak yang andal.

Evidence & guidelines

ISO/IEC 25010 mendefinisikan model kualitas produk perangkat lunak, dan area pengetahuan SWEBOK tentang Konstruksi Perangkat Lunak, Pengujian, dan Kualitas memberikan panduan referensi konsensus.

History

Pengujian sistematis diartikulasikan oleh Myers pada tahun 1970-an, pemrograman terstruktur dan verifikasi oleh Dijkstra dan Hoare pada era yang sama, dan keahlian konstruksi oleh McConnell pada tahun 1990-an; model dan standar kualitas seperti ISO/IEC 25010 mengonsolidasikan atribut dan pengukuran kualitas.

Debates

Pengujian versus verifikasi formal
Apakah kepercayaan pada kebenaran harus didasarkan pada pengujian ekstensif atau pada bukti formal masih diperdebatkan; pengujian dapat diskalakan ke sistem besar tetapi tidak dapat menjamin kebenaran, sementara metode formal memberikan jaminan yang kuat dengan biaya lebih tinggi dan dicadangkan untuk komponen-komponen kritis.

Key figures

  • Glenford Myers
  • Steve McConnell
  • C. A. R. Hoare
  • Edsger Dijkstra

Related topics

Seminal works

  • myers2011
  • mcconnell2004
  • swebok2014

Frequently asked questions

Bisakah pengujian membuktikan bahwa suatu program benar?
Tidak. Pengujian menggunakan sejumlah masukan terbatas dan dapat mengungkapkan cacat tetapi tidak dapat menunjukkan ketiadaannya; membuktikan kebenaran untuk semua masukan memerlukan verifikasi formal, yang hanya layak untuk bagian-bagian sistem yang terbatas atau kritis.
Apakah kualitas sama dengan ketiadaan bug?
Tidak. Kualitas perangkat lunak bersifat multidimensional, mencakup kebenaran fungsional ditambah atribut seperti keandalan, kinerja, keamanan, kegunaan, dan pemeliharaan; program dengan sedikit bug mungkin masih berkualitas buruk jika tidak dapat dipelihara atau tidak aman.

Methods for this concept

Related concepts