Jurnal Perkuliahan Rekayasa Perangkat Lunak Pertemuan 14


Software Quality

Software Quality mengukur seberapa baik perangkat lunak dirancang (kualitas desain), dan seberapa baik perangkat lunak sesuai dengan desain itu (kualitas kesesuaian).

Software quality assurance adalah kegiatan penting dalam sebuah perangkat lunak yang diterapkan pada setiap langkah dalam proses perangkat lunak. SQA mencakup prosedur untuk penerapan metode dan alat yang efektif, pengawasan kegiatan pengendalian kualitas seperti tinjauan teknis dan pengujian perangkat lunak, prosedur untuk manajemen perubahan, prosedur untuk memastikan kepatuhan terhadap standar, dan mekanisme pengukuran dan pelaporan. Software quality assurance berkaitan dengan memastikan bahwa perangkat lunak memiliki jumlah cacat yang kecil dan mencapai standar yang diperlukan untuk pemeliharaan, keandalan, portabilitas, dan sebagainya.

Elemen-elemen Software Quality Assurance

Software quality assurance mencakup berbagai masalah dan aktivitas yang berfokus pada pengelolaan kualitas perangkat lunak.

  • Standards (Standar)
    Standar perangkat lunak memainkan peran yang sangat penting dalam software quality management. Sebagai bagian dari proses QA ini, alat dan metode untuk mendukung penggunaan standar ini juga dapat dipilih. Tugas SQA adalah untuk memastikan bahwa standar yang telah diimplementasikan diikuti dan bahwa semua produk kerja sesuai dengan mereka.
  • Reviews and audits (Ulasan dan audit)
    Technical reiviews adalah kegiatan kontrol kualitas yang dilakukan oleh software engineers untuk software engineers. Review harus memeriksa konsistensi dan kelengkapan dokumen atau kode yang direview dan memastikan bahwa standar kualitas telah diikuti. Namun, ulasan tidak hanya memeriksa kesesuaian dengan standar, melainkan juga digunakan untuk membantu menemukan masalah dan kelalaian dalam perangkat lunak atau dokumentasi proyek. Audit adalah jenis tinjauan yang dilakukan oleh personel SQA dengan maksud untuk memastikan bahwa pedoman kualitas diikuti untuk pekerjaan rekayasa perangkat lunak.
  • Testing (Pengujian)
    Software testing adalah fungsi kontrol kualitas yang memiliki satu tujuan utama, yaitu untuk menemukan kesalahan. Tugas SQA adalah memastikan bahwa pengujian direncanakan dengan baik dan dilakukan secara efisien sehingga memiliki kemungkinan tertinggi untuk mencapai tujuan utamanya.
  • Error/defect collection and analysis (Pengumpulan dan analisis kesalahan / cacat)
    SQA mengumpulkan dan menganalisis data kesalahan dan cacat untuk lebih memahami bagaimana kesalahan diperkenalkan dan kegiatan rekayasa perangkat lunak apa yang paling cocok untuk menghilangkannya.
  • Change management (Pengubahan manajemen)
    Perubahan adalah salah satu aspek yang paling mengganggu dari setiap proyek perangkat lunak. Jika tidak dikelola dengan baik, perubahan dapat menyebabkan kebingungan, dan kebingungan hampir selalu mengarah pada kualitas yang buruk. SQA memastikan bahwa praktik manajemen perubahan yang memadai telah dibentuk.
  • Education (Edukasi)
    Setiap software organization ingin meningkatkan software engineering practices. Kontributor utama dalam peningkatan adalah pendidikan software engineers, manajer mereka, dan stakeholder lainnya. Organisasi SQA memimpin dalam peningkatan proses perangkat lunak dan merupakan pendukung dan sponsor utama program pendidikan.
  • Vendor management (Manajemen vendor)
    Tugas organisasi SQA adalah untuk memastikan bahwa perangkat lunak yang dihasilkan berkualitas tinggi dengan menyarankan praktik kualitas khusus yang harus diikuti oleh vendor (bila mungkin), dan memasukkan mandat kualitas sebagai bagian dari kontrak apa pun dengan vendor eksternal.
  • Security management (Manajemen keamanan)
    Dengan meningkatnya cybercrime dan peraturan pemerintah baru tentang privasi, setiap organisasi perangkat lunak harus melembagakan kebijakan yang melindungi data di semua tingkatan, membangun perlindungan firewall untuk WebApps, dan memastikan bahwa perangkat lunak belum dirusak secara internal. SQA memastikan bahwa proses dan teknologi yang tepat digunakan untuk mencapai software security yang aman.
  • Safety (Keamanan)
    SQA mungkin bertanggung jawab untuk menilai dampak kegagalan perangkat lunak untuk memulai langkah-langkah yang diperlukan untuk mengurangi risiko.
  • Risk management (Manajemen risiko)
    Meskipun analisis dan mitigasi risiko menjadi perhatian para software engineers, organisasi SQA memastikan bahwa kegiatan manajemen risiko dilakukan dengan benar dan bahwa rencana kontinjensi terkait risiko telah ditetapkan

Software quality metrics

  • Product (mengukur software dari kualitas produk jadinya)
  • Process (mengukur software dari kematangan proses pengembangannya)

Tugas SQA

Mempersiapkan rencana SQA untuk proyek

Berpartisipasi dalam pengembangan deskripsi proses proyek software Tim software memilih proses untuk pekerjaan yang akan dilakukan.

Meninjau aktivitas software engineering untuk memverifikasi kesesuaian dengan proses perangkat lunak yang ditentukan

Audit software produk kerja yang ditunjuk untuk memverifikasi kepatuhan dengan yang ditetapkan sebagai bagian dari proses software

Memastikan bahwa penyimpangan dalam pekerjaan perangkat lunak dan produk kerja didokumentasikan dan ditangani sesuai dengan prosedur yang didokumentasikan

Merekam setiap ketidaksesuaian dan melaporkan kepada manajemen seniorItem yang tidak sesuai dilacak sampai diselesaikan.

Tujuan, Atribut, dan Metrik dari SQA

  • Persyaratan kualitas
    SQA harus memastikan bahwa tim dari software telah meninjau model persyaratan dengan teliti untuk mendapatkan kualitas yang tinggi.
  • Kualitas desain
    Setiap elemen dari model desain harus dinilai oleh tim software untuk memastikan bahwa model tersebut menunjukan kualitas yang tinggi dan bahwa desain itu sendiri memenuhi persyaratan yang ada. SQA mencari atribut desain yang merupakan indicator dari kualitas.
  • Kualitas kode
    Source code dan produk kerja yang berkaitan (misalkan, informasi deskriptif lainnya) harus sesuai dengan standar pengkodean local dan menunjukkan karakteristik yang akan memudahkan pemeliharaan software. SQA harus mengisolasikan atribut-atribut yang memungkinkan analisis kualitas yang wajar dari kode.
  • Efektivitas kontrol kualitas
    SQA menganalisis alokasi sumber daya untuk ulasan dan pengujian untuk menilai apakah sumber daya dialokasikan dengan cara yang paling efektif atau tidak.

Keandalan Software

Keandalan dari suatu program komputer merupakan sebuah elemen yang penting dari kualitas keseluruhannya. Jika sebuah program terus-menerus dan sering gagal dalam menjalankan tugasnya, faktor-faktor kualitas software lainnya tidaklah terlalu penting. Keandalan software, tidak seperti faktor kualitas lainnya, dapat diukur secara langsung dan diperkirakan dengan menggunakan data histori dan data perkembangan dari software. Keandalan software adalah probabilitas software dapat beroperasi tanpa adanya kegagalan dalam jangka waktu tertentu, dan dalam environment yang spesifik. Keandalan software juga merupakan faktor penting yang mempengaruhi keandalan dari system.

Keamanan Software

Keamanan software adalah aktivitas SQA yang memfokuskan pada identifikasi dan penilaian dari potensi bahaya yang dapat memberikan dampak buruk bagi software dan membuat seluruh system fail/gagal. Jika suatu bahaya dapat diidentifikasi di awal, fitur design software dapat dispesifikasikan untuk menghilangkan atau mengontrol potensi bahaya tersebut.


Capability Maturity Model Integration (CMMI)

  • CMMI adalah kerangka kerja (framework) yang bisa digunakan untuk mengembangkan proses di dalam perusahaan
  • CMMI membantu kita untuk memperbaiki proses di perusahaan/organisasi kita. Dengan membaiknya proses, diharapkan produk yang dihasilkan akan ikut menjadi baikLevel 1 – Initial
    tanpa prosedur dan planning, tidak konsisten

    Level 2 – Repeatable

    ada manajemen, jaminan kualitas, prosedur, individual performance tanpa model formal

    Level 3 – Defined

    proses terdefinisi, dan mengarah ke perbaikan proses secara kualitatif

    Level 4 – Managed

    perbaikan dan prediksi proses secara kuantitatifLevel 5 – Optimizing
    memperbaiki proses secara berkesinambungan, inovatif, direncanakan, dianggarkan dan integral dalam proses organisasi

Penerapan CMMI dapat dilihat di journal berikut.

https://ejournal.undip.ac.id/index.php/jsinbis/article/view/20734

https://ejournal.bsi.ac.id/ejurnal/index.php/ji/article/view/8231


Six Sigma

  • Six Sigma adalah singkatan dari “Six Standard Deviations ji-om the arithmetic mean” (Sigma atau (J adalah huruf latin yang digunakan untuk menyatakan deviasi standar pada statistik). 
  • Metodologi Six Sigma menyediakan teknik dan alat untuk meningkatkan kemampuan dan mengurangi kesalahan / kegagalan di berbagai proses. 
  • Secara statistik, Six Sigma menjamin bahwa 99,9997% dari semua produk yang dihasilkan oleh proses dapat memenuhi standar kualitas tertentu, artinya metoda ini hanya membolehkan kegagalan sekitar 3.4 per satu juta peluang. 
  • Proyek yang menggunakan Six Sigma sebagai alat kendali kualitasnya biasanya menggunaka 5 fase pengembangan yang disebut DMAIC (baca : de-MAY-ick)

Penerapan Six Sigma dapat dilihat di journal berikut.

https://jurnal.umj.ac.id/index.php/jisi/article/view/4061


 DMAIC

  • Define:  Mendefinisikan masalah/peluang, proses dan kebutuhan pelanggan
  • Measure: Mendefinisikan pengukuran, mengumpulkannya, mengaturnya dan menampilkan data
  • Analyze: Membedah masalah untuk mendapatkan peluang peningkatan kualitas ( biasanya menggunakan fishbone/Ishikawa diagram)
  • Improve:  Mensintesis solusi dan ide untuk menyelesaikan masalah (yg berkaitan dengan kualitas)Control:  Verifikasi kestabilan peningkatan dan solusi yang sudah diprediksi

ISO 9126

ISO 9126 adalah standar terhadap kualitas perangkat lunak yang diakui secara internasional. ISO 9126 mendefinisikan kualitas produk perangkat lunak, model, karakteristik mutu, dan metrik terkait yang digunakan untuk mengevaluasi dan menetapkan kualitas sebuah produk software. Selain itu, standar ISO juga harus dipenuhi dari sisi manajemen. Jika manajemennya tidak memenuhi standar ISO maka hasil kerjanya pun tidak dapat diberikan sertifikat standar ISO.

Faktor kualitas menurut ISO 9126 meliputi enam karakteristik kualitas sebagai berikut:

  1. Functionality (Fungsionalitas). Kemampuan perangkat lunak untuk menyediakan fungsi sesuai kebutuhan user dan memuaskan user.
  2. Reliability (Kehandalan). Kemampuan perangkat lunak untuk mempertahankan tingkat kinerja tertentu/ performance dari software (ex: akurasi, konsistensi, kesederhanaan, toleransi kesalahan).
  3. Usability (Kebergunaan). Kemampuan perangkat lunak untuk dipahami, dipelajari, digunakan, dan menarik bagi pengguna.
  4. Efficiency (Efisiensi). Kemampuan perangkat lunak untuk memberikan kinerja yang sesuai dan relatif terhadap jumlah sumber daya yang digunakan pada saat keadaan tersebut (ex: efisiensi penyimpanan).
  5. Maintainability (Pemeliharaan). Kemampuan perangkat lunak untuk dimodifikasi. Modifikasi meliputi koreksi, perbaikan atau adaptasi terhadap perubahan lingkungan, persyaratan, dan spesifikasi fungsional (ex: konsistensi).
  6. Portability (Portabilitas). Kemampuan perangkat lunak untuk ditransfer dari satu lingkungan ke lingkungan lain atau kemampuan software beradaptasi saat digunakan di area tertentu (ex: self documentation, teratur).

Penerapan 9126 dapat dilihat di journal berikut.

http://jurnal.ubl.ac.id/index.php/explore/article/view/336

https://ejournal.uin-malang.ac.id/index.php/saintek/article/view/7672

 

 

Leave a comment

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>