Buku ajar kecil 03
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Buku ajar kecil 03

  • 1,516 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,516
On Slideshare
1,516
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
83
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Buku Ajar Rekayasa Perangkat Lunak BAB 3 Metrik Proyek Perangkat Lunak Kompetensi Dasar : Mahasiswa memahami maksud dari metrik proyek perangkat lunak dan mampu menggunakan metrik tersebut. Pengukuran merupakan suatu hal yang pokok bagi disiplin perekayasaan (engineering), rekayasa perangkat lunakpun tidak terkecuali. Metrik perangkat lunak mengacu pada suatu jangkauan luas pengukuran perangkat lunak komputer. Pengukuran dapat diterapkan pada proses perangkat lunak guna mengembangkannya dengan dasar yang kontinyu. Pengukuran dapat digunakan di seluruh proyek perangkat lunak untuk membantu perhitungan, kontrol kualitas, perkiraan produktivitas dan kontrol proyek. Akhirnya, pengukuran dapat digunakan oleh perekayasa perangkat lunak untuk membantu memperkirakan kualitas produk kerja teknis serta untuk membantu mengambil keputusan taktis pada saat proyek sudah berjalan. Dalam konteks manajemen perangkat lunak, perhatian utama pada produktivitas dan metrik kualitas – pengukuran output perkembangan perangkat lunak sebagai sebuah fungsi usaha dan waktu yang diaplikasikan serta pengukuran “kesesuaian pemakaian” produk kerja yang dihasilkan. Untuk tujuan perencanaan dan perkiraan harus memperhatikan sejarah. 1. Pengukuran, metrik dan indikator. Meskipun bentuk measure (mengukur), measurement (pengukuran), dan metrik sering dipakai secara bergantian, namun penting untuk dicatat perbedaaan kecil yang ada diantara ketiganya. Measure dan measurement dapat digunakan dengan baik sebagai kata kerja atau kata benda. Dalam konteks RPL, measure mengindikasikan kuantitatif dari luasan, jumlah, dimensi, kapasitas, atau ukuran dari atribut sebuah proses atau produk. Measurement adalah kegiatan 23
  • 2. Buku Ajar Rekayasa Perangkat Lunak menentukan sebuah measure (pengukuran). IEEE Standard Glossary of Software Engineering Terms (IEEE 93) mendefinisikan metrics sebagai “Ukuran kuantitatif dari tingkat dimana sebuah sistem, komponen, atau proses memiliki atribut tertentu “. Metrik perangkat lunak menghubungkan pengukuran individu dengan banyak cara (seperti rata-rata jumlah kesalahan yang ditemukanper kajian atau jumlah rata-rata kesalahan yang ditemukan per person-hour yang dipakai pada kajian). RPL mengumpulkan pengukuran dan mengembangkan metrik sehingga diperoleh suatu indikator. Indikator adalah sebuah metrik atau kombinasi dari metrik yang memberikan pengetahuan ke dalam proses perangkat lunak, sebuah proyek perangkat lunak, atau produk itu sendiri. Indikator memberikan pengetahuan yang memungkinkan manajer proyek atau perekayasa perangkat lunak meneyesuaikan proses, proyek dan produk, untuk membuat semuanya menjadi lebih baik. 2. Metrik dalam proses dan domain proyek. Metrik harus dikumpulkan sehingga indikator proses dan produk dapat dipastikan. Indikator proses memungkinkan sebuah organisasi rekayasa perangkat lunak memperoleh pengetahuan tentang reliabilitas sebuah proses yang sedang berlangsung. Indikator proses memungkinkan manajer dan pelaksana memperkirakan apa yang harus dikerjakan dan yang tidak. Metrik proses dikumpulkan di seluruh proyek dan pada perkembangan proses perangkat lunak jangka panjang. Indikator proyek memungkinkan manajer proyek perangkat lunak : 1. memperkirakan status sebuah proyek yang sedang berlangsung. 2. menelusuri risiko-risiko potensial. 3. menemukan area masalah sebelum masalah menjadi semakin kritis. 4. menyesuaikan aliran kerja atau tugas-tugas. 5. mengevaluasi kemampuan tim proyek untuk mengontrol kualitas hasil kerja rekayasa perangkat lunak. 24
  • 3. Buku Ajar Rekayasa Perangkat Lunak Satu-satunya cara yang paling rasional untuk meningkatkan proses adalah dengan mengukur atribut tertentu dari proses, mengembangkan serangkaian metrik yang berarti berdasarkan atribut-atribut tersebut, dan kemudian menggunakan metrik itu untuk memberikan indikator yang akan membawa kepada sebuah strategi pengembangan. Gambar 3.1. Determinan untuk kualitas dan efektivitas organisasional perangkat lunak. Dalam gambar 3.1. proses berada di tengah-tengah sebuah segitiga yang menghubungkan tiga faktor yang sangat besar pengaruhnya terhadap kualitas pertangkat lunak dan unjuk kerja organisasional. Keterampilan dan motivasi yang diperlihatkan oleh manusia merupakan satu-satunya faktor yang paling berpengaruh pada kualitas dan unjuk kerja tim. Teknologi yang menghuni proses juga berpengaruh. Segitiga proses juga berada di dalam sebuah lingkaran yang menggambarkan kondisi lingkungan yang menyangkut lingkungan pengembangan, kondisi bisnis dan karakteristik pelanggan. Pengukuran reliabilitas proses perangkat lunak secara tidak langsung yaitu dengan mengambil serangkaian metrik berdasarkan keluaran yang dapat diambil oleh proses. Keluaran menyangkut pengukuran kesalahan yang ditemukan sebelum pelepasan perangkat lunak, cacat yang disampaikan dan dilaporkan oleh pemakai akhir, produk kerja yang dikirim, usaha manusia yang dilakukan, waktu kalender yang digunakan, konfirmasi jadwal, serta pengukuran yang lain. 25
  • 4. Buku Ajar Rekayasa Perangkat Lunak Dalam proses terdapat tipe data yang berbeda sehubungan dengan “privat dan publik”. Data-data tersebut juga harus bersifat privat bagi individu dan berfungsi sebagai indikator hanya untuk individu. Contoh metrik yang bersifat privat terhadap individu menyangkut :  Nilai cacat oleh individu.  Nilai cacat oleh modul.  Kesalahan yang ditemukan selama pengembangan. Metrik publik biasanya mengasimilasi informasi yang secara orisinal bersifat privat bagi individu dan tim. Nilai cacat tingkat proyek, usaha, waktu kalender dan data dikumpulkan dan dievaluasi dalam upaya menemukan indikator yang dapat mengembangkan unjuk kerja proses organisasional. Metrik proses perangkat lunak digunakan untuk tujuan strategis. Pengukuran proyek perangkat lunak bersifat taktis, yaitu bahwa metrik proyek dan indikator yang berasal dari pengukuran digunakan oleh manajer proyek dan tim perangkat lunak untuk mengadaptasi aliran kerja proyek dan aktivitas teknis. Aplikasi pertama dari metrik proyek pada sebagian besar proyek perangkat lunak terjadi selama perkiraan. Metrik yang dikumpulkan dari proyek yang terdahulu digunakan sebagai dasar untuk membuat perkiraan usaha dan durasi waktu untuk kerja perangkat lunak saat ini. Selagi proyek berjalan, pengukuran usaha dan waktu kalender yang digunakan dibandingkan dengan perkiraan awal dan jadwal proyek. Manajer menggunakan data tersebut untuk memonitor dan mengontrol kemajuan. Pada saat kerja teknis dimulai, metrik proyek mulai memiliki arti. Nilai produksi yang disajikan dalam bentuk halaman dokumentasi, jam kajian, titik-titik fungsi dan sederetan sumber yang disampaikan diukur dan kesalahan yang ditemukan selama masing-masing tugas kerja rekayasa perangkat lunak kemudian ditelusuri. Selagi perangkat lunak berjalan dari spesifikasi ke perancangan, metrik teknik dikumpulkan untuk memperkirakan kualitas desain serta memberikan indikator yang akan mempengaruhi pendekatan yang akna diambil untuk memunculkan kode dan modul serta pengujian integrasi. Metrik proyek mempunyai tujuan ganda. Pertama, metrik tersebut digunakan untuk meminimalkan jadwal 26
  • 5. Buku Ajar Rekayasa Perangkat Lunak pengembangan dengan melakukan penyesuaian yang diperlukan untuk menghindari penundaan serta mengurangi masalah dan risiko potensial. Kedua, metrik proyek dipakai untuk memperkirakan kualitas produk pada basis yang berlaku dan bila dibutuhkan, memodifikasi pendekatan teknis untuk meningkatkan kualitas. Pada saat kualitas meningkat, kesalahan menjadi minimal, dan selagi kesalahan semakin berkurang, jumlah kerja ulang yang dibutuhkan selama proyek berlangsung juga berkurang. Dengan demikian, pembiayaan proyek secara keseluruhan dapat berkurang. Model yang lain dari metrik proyek mengusulkan bahwa setiap proyek harus mengukur :  Input, yaitu pengukuran sumber daya seperti manusia, lingkungan yang dibutuhkan untuk melakukan pekerjaan.  Output, yaitu pengukuran kemampuan penyampaian atau produk kerja yang diciptakan selama proses rekayasa perangkat lunak.  Hasil, yaitu pengukuran yang menunjukkan efektivitas kemampuan penyampaian. Pada kenyataannya model ini dapat diterapkan, baik proses maupun pada proyek. Dalam konteks proyek, model dapat diterapkan secara rekursif pada saat masing-masing aktivitas kerangka kerja berjalan, sehingga output dari satu aktivitas menjadi input bagi aktivitas selanjutnya. Metrik hasil dapat digunakan untuk memberikan indikasi daya guna produk kerja selagi mereka mengalir dari satu aktivitas kerangka kerja ke aktivitas kerangka kerja selanjutnya. 3. Pengukuran perangkat lunak. Pengukuran langsung dari proses rekayasa perangkat lunak menyangkut biaya dan usaha yang diaplikasikan. Pengukuran langsung dari produk menyangkut deretan kode (LOC) yang diproduksi, kecepatan eksekusi, ukuran memori dan cacat yang dilaporkan pada sejumlah periode waktu. Pengukuran tidak langsung dari produk menyangkut fungsionalitas, kualitas, kompleksitas, efisiensi, reliabilitas, kemampuan pemeliharaan dan banyak lagi kemampuan lain. 3.1. Metrik size – oriented. Metrik perangkat lunak size oriented (berorientasi pada ukuran) ditarik dengan normalisasi kualitas dan atau 27
  • 6. Buku Ajar Rekayasa Perangkat Lunak pengukuran produktivitas dengan mempertimbangkan “ukuran” perangkat lunak yang dihasilkan. Bila sebuah organisasi memelihara rekaman-rekaman sederhana, sebuah tabel pengukuran size-oriented seperti ditunjukkan pada gambar 3.2. dapat diciptakan. Tabel tersebut mencantumkan daftar setiap proyek pengembangan perangkat lunak yang sudah diselesaikan pada tahun- tahun terakhir dan pengukuran yang sesuai untuk proyek tersebut. Gambar 3.2. Metrik size-oriented. Untuk mengembangkan metrik yang dapat diasimilasi dengan metrik yang sama dari proyek yang lain, kita memilih sederetan kode sebagai nilai normalisasi. Dari data yang belum sempurna yang ada pada tabel, dapat dikembangkan serangkaian metrik size – oriented yang sederhana untuk setiap proyek :  Kesalahan (error) per KLOC (kilo LOC).  $ per LOC.  Cacat (defect) per KLOC.  Halaman dokumentasi per KLOC. Sebagai tambahan, metrik menarik yang lain dapat dihitung :  Kesalahan / person – month.  LOC per person – month.  $ / halaman dokumentasi. 28
  • 7. Buku Ajar Rekayasa Perangkat Lunak 3.2. Metrik function – oriented. Metrik perangkat lunak function – oriented (berorientasi pada fungsi) menggunakan sebuah pengukuran fungsionalitas yang disampaikan oleh aplikasi sebagai suatu nilai normalisasi. Karena fungsionalitas tidak dapat diukur secara langsung, maka fungsionalitas harus ditarik secara tidak langsung dengan menggunakan pengukuran langsung yang lain. Metrik berorientasi fungsi pertama kali diusulkan oleh Albrecht yang mengusulkan sebuah pengukuran yang disebut function point. Gambar 3.3. Penghitungan metrik function point Function point ditarik dengan menggunakan sebuah hubungan empiris berdasarkan pengukuran langsung domain informasi perangkat lunak yang dapat dihitung serta perkiraan kompleksitas perangkat lunak. Function point dihitung dengan melengkapi tabel yang diperlihatkan pada gambar 3.3. lima karakteristik domain informasi ditentukan dan penghitungan diberikan di dalam lokasi tabel yang sesuai. Nilai domain informasi didefinisikan dengan cara sebagai berikut :  Jumlah input pemakai (External Input, EI). Setiap input pamakai yang memberikan data yang berorientasi pada aplikasi yang jelas pada perangkat lunak 29
  • 8. Buku Ajar Rekayasa Perangkat Lunak dihitung. Input ini harus dibedakan dari penelitian yang dihitung secara terpisah.  Jumlah output pemakai (External Output, EO). Setiap output pemakai yang memberikan informasi yang berorientasi pada aplikasi kepada pemakai dihitung. Pada konteks ini output mengacu pada laporan, layar, tampilan kesalahan dan sebaginya. Jenis data individual pada sebuah laporan tidak dihitung secara terpisah.  Jumlah penyelidikan pemakai (External Inquiry, EQ). Sebuah penyelidikan didefinisikan sebagai input on- line yang mengakibatkan munculnya beberapa respon perangkat lunak yang cepat dalam bentuk sebuah output on-line. Setiap penyelidikan yang jelas dihitung.  Jumlah file (Internal Logical Files, ILF). Setiap file master logika (yaitu pengelompokan data secara logis yang menjadi suatu bagian dari sebuah database yang besar atau sebuah file yang terpisah) dihitung.  Jumlah interface eksternal (External Interface Files, EIF). Semua interface yang dapat dibaca oleh mesin yang digunakan untuk memindahkan informasi ke sistem yang lain dihitung. Setelah komponen-komponen tersebut diklasifikasikan pada lima komponen utama, sebuah tingkatan rendah, sedang atau tinggi diberikan. Untuk transaksi (EI, EO, EQ) tingkatannya berdasarkan jumlah file yang diupdate atau direferensi (File Type Referenced, FTR) dan jumlah tipe elemen data (DET). Untuk file ILF dan EIF tingkatannya berdasarkan tipe elemen record (RET). Tipe elemen record adalah subgrup dari elemen data dalam ILF atau EIF yang dapat dikenali oleh user. Tipe elemen data adalah sesuatu yang dapat dikenali secara unik oleh user, nonrekursif field. Tabel-tabel berikut ini membantu dalam menentukan tingkatan proses. Tabel 3.1. Tabel jumlah input pemakai. 30
  • 9. Buku Ajar Rekayasa Perangkat Lunak Tabel 3.2. Tabel jumlah output pemakai dan jumlah penyelidikan pemakai. Tabel 3.3. Nilai transaksi. Seperti semua komponen, EQ dihitung dan dinilai. Pada dasarnya, EQ dihitung (rendah, sedang, tinggi) seperti EO, tetapi diberikan nilai seperti EI. Perhitungan berdasar pada jumlah DET dan FTR yang merupakan kombinasi input dan output. Jika FTR yang sama digunakan pada input dan output, maka hanya akan dihitung sekali. Untuk ILF dan EIF jumlah tipe elemen record dan jumlah tipe elemen data digunakan untuk menentukan tingkatan rendah, sedang, atau tinggi. Suatu tipe elemen record adalah subgrup dari elemen data yang dapat dikenali oleh user dengan ILF atau EIF. Suatu tipe elemen data adalah sesuatu yang unik dikenali oleh user, tidak ada field rekursif pada ILF maupun EIF. Tabel 3.4. Jumlah elemen data 31
  • 10. Buku Ajar Rekayasa Perangkat Lunak Tabel 3.5. Tingkatan untuk ILF dan EIF Sekali data tersebut dikumpulkan, maka sebuah nilai kompleksitas akan dihubungkan dengan masing-masing perhitungan. Organisasi yang menggunakan metode titik fungsi mengembangkan kriteria untuk menentukan apakah sebuah entri tertentu bersifat sederhana, rata- rata atau kompleks. Meskipun demikian perkiraan kompleksitas tetap bersifat subyektif. Untuk menghitung titik-titik fungsi dipakai hubungan sebagai berikut : FP = jumlah total x [ 0.65 + 0.01 x (Fi)] Dimana jumlah total adalah jumlah semua entri yang diperoleh dari gambar 3.3. Value Adjustment Factor (VAF) berdasarkan pada 14 karakteristik umum sistem (GSC) yang menghitung fungsionalitas umum dari aplikasi yang sedang dihitung. Setiap karakteristik mempunyai deskripsi yang berhubungan yang membantu menentukan derajat pengaruh karakteristik. Fi ( i = 1 s/d 14 ) adalah harga penyesuaian kompleksitas berdasarkan respon pada pertanyaan yang ditulis pada tabel 3.6. nilai konstanta pada persamaan dan faktor pembobotan yang diaplikasikan pada hitungan domain informasi ditentukan secara empiris. Tabel 3.6. Menghitung function points. 32
  • 11. Buku Ajar Rekayasa Perangkat Lunak Karakteristik No. Keterangan Sistem 1 Kemudahan Apakah sistem membutuhkan operasional backup dan recovery yang reliabel ? 2 Komunikasi data Apakah komunikasi data dibutuhkan ? 3 Pemrosesan data Apakah fungsi pemrosesan terdistribusi didistribusikan ? 4 Kinerja Apakah kinerja penting ? 5 Konfigurasi Apakah sistem akan berjalan pada lingkungan operasional yang sudah ada yang paling banyak digunakan ? 6 Data entry on-line Apakah sistem membutuhkan entry data on-line ? 7 Transaksi Apakah entry data on-line membutuhkan ada transaksi input terhadap layar atau operasi ganda ? 8 Update on-line Apakah file master diperbarui secara on-line ? 9 Efisiensi end-user Apakah input, output, file atau inquiry kompleks ? 10 Kompleksitas Apakah pemrosesan internal pemrosesan kompleks ? 11 Pemakaian Apakah kode didesain untuk kembali dapat dipakai kembali ? 12 Kemudahan Apakah desain melibatkan instalasi konversi dan instalasi ? 13 Situs ganda Apakah sistem didesain untuk instalasi ganda dalam situs untuk organisasi berbeda ? 14 Fasilitas Apakah aplikasi didesain untuk perubahan memfasilitasi perubahan dan mempermudah pemakai untuk menggunakannya ? Sekali titik fungsi telah dihitung, maka titik-titik itu digunakan dengan cara analog dengan LOC untuk 33
  • 12. Buku Ajar Rekayasa Perangkat Lunak menormalisasi pengukuran produktifitas, kualitas perangkat lunak, serta atribut-atribut yang lain :  Kesalahan per FP.  Cacat per FP.  $ per FP.  Halaman dokumentasi per FP.  FP per person – month. 3.3. Metrik function point yang diperluas. Metrik function point secara orisinal dirancang untuk diterapkan pada aplikasi informai bisnis yang ditekankan pada pengeluaran dimensi (kontrol) tingkah laku dan fungsional. Karena alasan tersebut, maka pengukuran function point tidak sesuai untuk beberapa sistem terapan dan rekayasa. Sejumlah ekstensi pada pengukuran function point dasar telah diusulkan untuk mengatasi situasi ini. Eksistensi function point yang disebut feature point merupakan superset dari pengukuran function point yang dapat diterapkan pada aplikasi perangkat lunak rekayasa dan sistem. Pengukuran feature point mengakomodasi aplikasi yang kompleksitas algoritmanya tinggi. Real-time, kontrol proses dan aplikasi perangkat lunak embedded, cenderung memiliki kompleksitas algoritma yang tinggi sehingga dapat dipertanggung jawabkan untuk feature point. Untuk menghitung feature point, harga domain informasi harus dihitung lagi dan dibobot. Sebagai tambahan, metrik feature point juga menghitung karakteristik perangkat lunak yang baru, yaitu algoritma. Algoritma didefinisikan sebagai masalah perhitungan yang terbatas yang dilakukan dalam sebuah program komputer yang spesifik. Ekstensi function point untuk sistem real – time dan produk rekayasa telah dikembangkan oleh Boeing. Pendekatan Boeing mengintegrasi dimensi data perangkat lunak dengan dimensi kontrol dan fungsional untuk memberikan sebuah pengukuran yang berorientasi pada fungsi, yang disebut 3D function point, yang dapat dipertanggung jawabkan untuk aplikasi yang menekankan kemampuan fungsi dan kontrol. Karakteristik dari semua dimensi perangkat lunak dihitung, dikuantisasi dan ditransformasi 34
  • 13. Buku Ajar Rekayasa Perangkat Lunak ke dalam sebuah pengukuran yang memberikan indikasi fungsionalitas yang disampaikan oleh perangkat lunak. Dimensi data dievaluasi dengan cara yang sama seperti dijelaskan pada subbab sebelumnya. Penghitungan data yang disimpan (struktur data program internal, seperti file) dan data eksternal (input, output, inquiry dan referensi eksternal) dipakai bersama dengan pengukuran kompleksitas untuk menarik penghitungan dimensi data. Dimensi fungsional diukur dengan mempertimbangkan jumlah operasi internal yang dibutuhkan untuk mentransformasi input ke data output. Karena tujuan komputasi adalah function point 3D, maka suatu transformasi dipandang sebagai sebuah deretan langkah pemrosesan yang dibatasi oleh sejumlah pernyataan semantik. Sebagai aturan umum, transformasi dilakukan dengan sebuah algoritma yang menghasilkan suatu perubahan dasar ke data input ketika dia diproses untuk menjadi data output. Langkah pemrosesan yang membutuhkan data dari sebuah file dan secara sederhana menempatkan data tersebut ke dalam memori program, tidak akan dipertimbangkan sebagai sebuah transformasi. Data itu sendiri tidak diubah dengan cara yang mendasar. Tingkat kompleksitas yang diberikan pada masing-masing transformasi merupakan fungsi dari sejumlah langkah proses dan sejumlah pernyataan semantik yang mengontrol langkah pemrosesan. Gambar 3.4. memberikan tuntunan bagi kompleksitas penugasan dalam dimensi fungsional. 35
  • 14. Buku Ajar Rekayasa Perangkat Lunak Gambar 3.4. Menentukan kompleksitas transformasi untuk function point 3D. Dimensi kontrol diukur dengan menghitung jumlah transisi antar pernyataan. Pernyataan mewakili beberapa mode tigkah laku yang dapat diobservasi secara eksternal. Transisi terjadi sebagai hasil dari kejadian yang menyebabkan perangkat lunak atau sistem mengubah mode tingkah lakunya. Contohnya telepon seluler berisi perangkat lunak yang mendukung fungsi-fungsi autodial. Untuk menghitung function point 3D, digunakan hubungan sebagai berikut : Indeks = I + O + Q + F + E + T + R Dimana I, O, Q, E, F, T dan R mewakili nilai bobot kompleksitas untuk elemen-elemen yang telah disebut- kan : input, output, inquiry, struktur data eksternal, file eksternal, transformasi dan transisi secara berurutan. Masing-masing nilai bobot kompleksitas dihitung dengan menggunakan hubungan sebagai berikut : Nilai bobot kompleksitas = Nil Wil + Nia Wia + Nih Wih Dimana N adalah jumlah kejadian elemen i untuk masing- masing tingkat kompleksitas dan W adalah bobot masing- masing. Perhitungan keseluruhan untuk function point 3D diperlihatkan pada gambar 3.5. 36
  • 15. Buku Ajar Rekayasa Perangkat Lunak Gambar 3.5. Menghitung indeks function point 3D. Perlu diperhatikan bahwa function point, feature point dan function point 3D menunjukkan hal yang sama yaitu fungsionalitas atau utility yang dikirim oleh perangkat lunak. Pada dasarnya, masing-masing pengukuran menghasilkan nilai yang sama hanya jika dimensi data dari sebuah aplikasi dipetimbangkan. Untuk sistem real- time yang lebih kompleks, jumlah feature point sering antara 20 % dan 35 % lebih tinggi daripada jumlah yang ditentukan dengan hanya menggunakan function point. 4. Menyatukan berbagai pendekatan metrik yang berbeda. Hubungan antara baris-baris kode dan function point tergantung pada bahasa pemrograman yang digunakan untuk mengimplementasikan perangkat lunak dan kualitas desain. Berikut ini pernyataan Albrecht dan Gaffney : “Thesis studi ini adalah jumlah fungsi yang disediakan oleh aplikasi (program) dapat diestimasi dari itemisasi komponen utama data yang digunakan atau disediakan oleh aplikasi. Lebih lanjut, estimasi fungsi harus dihubungkan dengan jumlah LOC yang akan dikembangkan dan dengan usaha pengembangan yang diperlukan. Tabel berikut ini memberikan estimasi kasar terhadap rata-rata jumlah baris kode yang diperlukan untuk membangun satu function point dalam berbagai bahasa pemrograman : Bahasa Pemrograman LOC / FP (rata-rata) 37
  • 16. Buku Ajar Rekayasa Perangkat Lunak Assembly 320 C 128 Cobol 105 Fortran 105 Pascal 90 ADA 70 Bahasa berorientasi objek 30 Bahasa generasi keempat 20 Generator kode 15 Spreadsheets 6 Bahasa Grafis 4 Ukuran LOC dan FP sering digunakan untuk mendapatkan metrik produktifitas. Hal itu menimbulkan adanya perdebatan mengenai pemakaian data tersebut. LOC / person-month atau FP / person-month dari suatu kelompok tidak harus dibandingkan dengan data serupa dari kelompok lainnya. Demikian juga penilaian kerja individual oleh manajer dengan menggunakan metrik tersebut tidak harus dilakukan, karena ada banyak faktor yang mempengaruhi produktivitas. Basili dan Zelkowitz menetapkan empat faktor penting yang mempengaruhi produktifitas perangkat lunak, yaitu : • Faktor manusia. Ukuran dan keahlian organisasi pengembangan. • Faktor masalah. Kompleksitas masalah yang dipecahkan dan jumlah perubahan dalam batasan dan persyaratan desain. • Faktor proses. Teknik analisis dan desain yang digunakan, bahasa dan peranti CASE yang tersedia, dan teknik-teknik kajian. • Faktor sumber daya. Ketersediaan peranti CASE dan sumber daya perangkat keras dan perangkat lunak. Jika salah satu faktor produktifitas tersebut di atas rata-rata (sangat baik) untuk suatu proyek yang ditentukan, maka produktifitas pengembangan perangkat lunak akan secara signifikan lebih tinggi daripada jika faktor yang sama berada di bawah rata-rata (tidak baik). Proses membuat baseline ditunjukkan pada gambar 3.6. idealnya data yang diperlukan untuk membaut baseline dikumpulkan secara terus-menerus. Oleh karena itu, kumpulan 38
  • 17. Buku Ajar Rekayasa Perangkat Lunak data membutuhkan investigasi historis terhadap proyek- proyek sebelumnya untuk menyusun kembali data yang diperlukan. Komputasi metrik dapat dilakukan setelah ukuran- ukuran dikumpulkan. Akhirnya metrik harus dievaluasi dan diterapkan selama estimasi, kerja teknis, kontrol proyek, dan peningkatan proses. Evaluasi metrik memfokuskan pada alasan-alasan mendasar untuk hasil yang diperoleh dan membuat sekumpulan indikator yang memandu proyek atau proses. Prose s RPL Proye Kumpulan ukuran k RPL data Produ Komputasi k RPL metrik numerik Evaluasi indikator metrik Gambar 3.6. Proses kumpulan metrik perangkat lunak. 5. Metrik untuk kualitas perangkat lunak. Tujuan rekayasa perangkat lunak adalah untuk menghasilkan sistem, aplikasi atau produk berkualitas tinggi. Untuk mencapai tujuan tersebut, perekayasa perangkat lunak harus menerapkan metode-metode yang efektif bersama-sama dengan peranti modern dalam konteks proses perangkat lunak yang matang. Sebagai tambahan, perekayasa perangkat lunak yang baik harus mengukur apakah kualitas tinggi terealisasi. Kualitas sistem, aplikasi, atau produk, merupakan persyaratan yang menjelaskan masalah, desain model solusi, kode yang membuat program dapat dieksekusi, dan pengujian yang menguji perangkat lunak untuk menemukan kesalahan. Perekayasa perangkat lunak yang baik menggunakan pengukuran untuk menilai kualitas model analisis dan desain, kode sumber, dan test case yang dibuat ketika perangkat lunak direkayasa. Untuk mencapai kualitas penilaian real-time, 39
  • 18. Buku Ajar Rekayasa Perangkat Lunak perekayasa harus menggunakan pengukuran teknis untuk mengevaluasi kualitas dalam cara-cara yang obyektif. Manajer proyek juga harus mengevaluasi kualitas saat melanjutkan proyek. Metrik-metrik privat yang dikumpulkan oleh para perekayasa perangkat lunak disatukan untuk mendapatkan hasil tingkat proyek. Meskipun ada banyak pengukuran kualitas yang dapat dikumpulkan, tujuan utama pada tingkat proyek adalah mengukur kesalahan dan cacat. Metrik yang diperoleh dari pengukuran tersebut memberikan adanya indikasi mengenai efektifitas jaminan kualitas perangkat lunak kelompok dan individual, serta tindakan- tindakan kontrol. Kesalahan yang ditemukan per jam kajian dan kesalahan yang ditemukan per jam pengujian memberikan wawasan mengenai kehebatan masing-masing aktivitas yang diimplikasikan oleh metrik. Data salah juga dapat digunakan untuk menghitung Defect Removal Efficiency untuk masing- masing aktifitas kerja proyek. McCall dan Cavano menetapkan sekumpulan faktor kualitas yang merupakan langkah pertama dalam mengembangkan metrik-metrik untuk kualitas perangkat lunak. Faktor-faktor tersebut menilai perangkat lunak dari tiga sudut pandang berbeda, yaitu operasi produk (menggunakannya), revisi produk (mengubahnya), transisi produk (memodifikasinya untuk bekerja dalam lingkungan yang berbeda). McCall dan Cavano juga menjelaskan hubungan antara faktor kualitas tersebut dan aspek-aspek lain dari proses rekayasa perangkat lunak : • Kerangka kerja memberikan suatu mekanisme untuk manajer proyek untuk mengenali kualitas-kualitas apa yang penting. Kualitas tersebut merupakan atribut perangkat lunak, sebagai tambahan untuk koreksi dan kinerja fungsionalnya, yang mempunyai implikasi daur hidup. • Kerangka kerja memberikan alat untuk menilai secara kuantitatif seberapa baik kemajuan pengembangan. Dalam hal ini, penilaian adalah bersifat relatif dengan tujuan-tujuan kualitas yang ditetapkan. • Kerangka kerja memberikan interaksi yang lebih dalam pada personil QA di sepanjang usaha pengembangan. 40
  • 19. Buku Ajar Rekayasa Perangkat Lunak • Personil jaminan kualitas dapat menggunakan indikasi buruknya kualitas untuk membantu mengidentifikasi standar-standar untuk diusahakan di masa mendatang. Gilb memberikan definisi dan ukuran terhadap pengukuran kualitas perangkat lunak : • Cara yang benar. Program harus beroperasi dengan benar atau program itu memberikan sedikit saja nilai bagi para pemakainya. Cara yang benar adalah tingkat di mana perangkat lunak melakukan fungsi yang ditentukan. Ukuran paling umum untuk cara yang benar adalah cacat per KLOC, di mana cacat didefinisikan sebagai kurangnya kesesuaian dengan persyaratan. • Maintanabilitas. Pemeliharaan perangkat lunak menjelaskan usaha dari pada sekedar aktivitas rekayasa perangkat lunak. Maintanabilitas adalah kemudahan di mana program dapat dikoreksi jika ditemukan kesalahan, diadaptasi jika lingkungannya berubah, atau diperkuat jika pelanggan menginginkan perubahan kebutuhan. Tidak ada cara untuk mengukur maintanabilitas secara langsung, karena itu harus digunakan pengukuran tidak langsung. Metrik time-oriented sederhana adalah rata- rata waktu untuk berubah (MTTC), waktu yang diperlukan untuk menganalisis perubahan yang diperlukan, desain modifikasi yang tepat, mengimplementasi perubahan, mengujinya, dan mendistribusikan perubahan kepada semua pemakai. • Integritas. Atribut ini mengukur kemampuan sistem untuk menahan serangan terhadap sekuritasnya. Serangan dapat dilakukan pada semua komponen perangkat lunak : program, data dan dokumen. Untuk mengukur integritas, ada dua atribut tambahan yang harus ditentukan : ancaman dan sekuritas. Ancaman adalah probabilitas bahwa serangan tipe tertentu akan terjadi dalam suatu periode waktu yang ditentukan. Sekuritas adalah probabilitas bahwa serangan tipe tertentu akan dipukul mundur. Integritas sistem kemudian dapat ditentukan sebagai : Integritas = ∑ [1 – ancaman x (1- sekuritas)] Di mana ancaman dan sekuritas adalah jumlah dari masing-masing jenis serangan. 41
  • 20. Buku Ajar Rekayasa Perangkat Lunak • Usabilitas. Usabilitas adalah usaha untuk mengukur user friendliness dan dapat diukur dalam empat karakteristik : o Keterampilan fisik atau intelektual untuk mempelajari sistem. o Waktu yang diperlukan untuk menjadi cukup efisien dalam menggunakan sistem. o Peningkatan bersih dalam produktifitas yang diukur ketika sistem digunakan oleh seseorang yang cukup efisien. o Penilaian subyektif dari sikap pemakai terhadap sistem. Metrik kualitas yang memberikan manfaat pada tingkat poyek dan tingkat proses adalah efisiensi penghapusan cacat (DRE). Pada dasarnya, DRE adalah mengukur kemampuan penyaringan jaminan kualitas dan aktifitas kontrol ketika keduanya diterapkan pada semua aktifitas kerangka kerja proses. Dengan mempertimbangkan proyek sebagai satu kesatuan, maka DRE didefinisikan sebagai berikut : DRE = E / (E + D) Dimana E = jumlah kesalahan yang ditemukan sebelum perangkat lunak dikirim kepada pemakai akhir D = jumlah cacat yang ditemukan setelah pengiriman. Nilai ideal untuk DRE adalah 1, di mana tidak ditemukan adanya cacat pada perangkat lunak. Secara kenyataan, D akan lebih besar dari 0, tetapi nilai DRE masih dapat mendekati 1, jika E bertambah. Jika digunakan sebagai metrik yang memberikan indikator kemampuan memfilter aktifitas kontrol dan jaminan kualitas, maka DRE mendorong tim proyek perangkat lunak melembagakan teknik-teknik untuk menemukan sebnyak mungkin kesalahan sebelum pengiriman. DRE dapat juga digunakan dalam proyek untuk menilai kemampuan tim dalam menemukan kesalahan sebelum kesalahan dilewatkan ke aktifitas kerangka kerja atau ke tugas rekayasa perangkat lunak berikutnya. Rangkuman 42
  • 21. Buku Ajar Rekayasa Perangkat Lunak Measure dan measurement dapat digunakan dengan baik sebagai kata kerja atau kata benda. Dalam konteks RPL, measure mengindikasikan kuantitatif dari luasan, jumlah, dimensi, kapasitas, atau ukuran dari atribut sebuah proses atau produk. Measurement adalah kegiatan menentukan sebuah measure (pengukuran). IEEE Standard Glossary of software Engfineering Terms (IEEE 93) mendefinisikan metrics sebagai “Ukuran kuantitatif dari tingkat dimana sebuah sistem, komponen, atau proses memiliki atribut tertentu“. Indikator adalah sebuah metrik atau kombinasi dari metrik yang memberikan pengetahuan ke dalam proses perangkat lunak, sebuah proyek perangkat lunak, atau produk itu sendiri. Metrik proyek mempunyai tujuan ganda. Pertama, metrik tersebut digunakan untuk meminimalkan jadwal pengembangan dengan melakukan penyesuaian yang diperlukan untuk menghindari penundaan serta mengurangi masalah dan risiko potensial. Kedua, metrik proyek dipakai untuk memperkirakan kualitas produk pada basis yang berlaku dan bila dibutuhkan, memodifikasi pendekatan teknis untuk meningkatkan kualitas. Pengukuran langsung dari proses rekayasa perangkat lunak menyangkut biaya dan usaha yang diaplikasikan. Pengukuran langsung dari produk menyangkut deretan kode (LOC) yang diproduksi, kecepatan eksekusi, ukuran memori dan cacat yang dilaporkan pada sejumlah periode waktu. Pengukuran tidak langsung dari produk menyangkut fungsionalitas, kualitas, kompleksitas, efisiensi, reliabilitas, kemampuan pemeliharaan dan banyak lagi kemampuan lain. Latihan/Tugas/Test Mandiri 1. Jelaskan apa yang dimaksud dengan pengukuran perangkat lunak ! 2. Mengapa pengukuran perangkat lunak diperlukan ? 3. Jelaskan yang dimaksud dengan metrik perangkat lunak ! 4. Sebutkan dan jelaskan cara-cara pengukuran perangkat lunak ! 5. Carilah contoh kasus tentang pengukuran perangkat lunak, dan jelaskan teknik pengukurannya ! 43