Memahami Metrik Teknik Untuk Sistem Berorientasi Objek - Tujuan atau sasaran utama untuk metrik Object Oriented adalah sama dengan metrik – metrik yang ditarik untuk perangkat lunak konvesional :
Metrik Untuk Model Disain Object Oriented
Ada satu hal dari disain Object Oriented yang subjektif – desainer yang berpengalaman “mengetahui” bagaimana menandai suatu sistem Object Oriented sehingga dia akan secara efektif mengimplementasi persyaratan pelanggan. Tetapi pada saat disain Object Oriented berkembang ukurannya dan kompeksitasnya, pandangan yang lebih objektif mengenai karakteristik disain dapat bermanfaat baik bagi disainer yang berpengalaman maupun orang baru.
Pandangan mengenai disain harus memiliki komponen kuantitatif – dan membawa kepada metrik Object Oriented. Pada dasarnya, metrik teknis dapat diaplikasikan tidak hanya untuk model disain tetapi jga ke model analisis.
Metrik Orientasi Kelas
Kelas merupakan unit fundamental dari sistem Object Oriented. Dengan demikian pengukuran dan metrik untuk suatu kelas individual, hirarki kelas dan kolaborasi kelas akan berharga untuk seorang perekayasa perangkat lunak yang harus memperkirakan kualitas disain.
Suite Metrik CK
Chidamber dan Kemerer mengusulkan kumpulan metrik perangkat lunak Object Oriented yang paling banyak diferensi. Ada enam metrik disain berbasis kelas.
- Metode Pembebanan per Kelas (WMC), diasumsikan bahwa n metode dari kompleksitas c1, c2,…cn ditentukan bagi kelas C.
WMC = ∑ci
Untuk i = n
- Kedalaman Pohon Pewarisan (DIT), metrik ditentukan sebagai “panjang maksimum dari simpul ke akar pohon”. Pada gambar berikut harga DIT untuk hirarki kelas yang diperlihatkan adalah 4.
- Jumlah Anak (NOC), subkelas yang secara langsung merupakan subordinat dari suatu kelasdi dalam hirarki kelas disebut anak. Pada gambar diatas kelas C2 mempunyai anak C21, C22, C23.
- Perangkaian Antara Kelas Objek (CBO), pada dasarnya CBO merupakan jumlah kolaborasi yang didaftar untuk suatu kelas di dalam kartu indeks CRC-nya. Secara umum nilai CBO untuk masing – masing kelas dijaga serendah mungkin. Nilai CBO yang tinggi akan merumitkan modifikasi dan pengujian yang terjadi selama modifikasi dilakukan.
- Respon untuk Sebuah Kelas (RFC), kumpulan respon suatu kelas adalah “serangkaian metode yang dapat secara potensial dieksekusi sebagai respon terhadap suatu pesan yang diterima oleh sebuah objekdari kelas itu”.
Pada saat RCF bertambah, kreja yang diperlukan untuk menguji juga bertambah karena urutan pengujian berkembang, juga kompleksitas disain keseluruhan dari kelas juga bertambah.
- Kurangnya Kohesi dalam Metode (LCOM), masing – masing metode di dalam suatu kelas C mengakses satu atau lebih atribut (disebut juga variabel instan), LCOM merupakan jumlah metode yang mengakses satu atau lebih atribut yang sama. Bila tidak ada metode yang mengakses atribut yang sama, maka LCOM = 0.
Secara umum nilai LCOM yang tinggi mengimplikasikan bahwa kelas kelas dapat didisain lebih baik dengan memecahnya ke dalam dua kelas terpisah atau lebih.
Metrik yang diusulkan oleh Lorenz dan Kidd
Lorenz dan Kidd membagi mettrik berdasarkan kelas ke dalam empat kategori luas :
Metrik size oriented untuk kelas Object Oriented berfokus pada pencacahan atribut dan operasi untuk suatu kelas individu dan nilai rata – rata untuk sistem Object Oriented secara keseluruhan.
Metrik inheritance-based berfokus pada cara dimana operasi digunakan lagi pada hirarki kelas.
Metrik untuk internal kelas memandang kohesi dan masalah code-oriented.
Metrik eksternal menguji perangkaian dan reuse.
Contoh metrik yang diusulkan Lorenz dan Kidd adalah sebagai berikut :
Ukuran Kelas (CS), keseluruhan ukuran kelas dapat ditentukan dengan menggunakan pengukuran sebagai berikut :
Nilai CS yang besar mengindikasikan bahwa sebuah kelas terlalu banyak bertanggung jawab, yang akan mengurangi reusabilitas kelas dan merumitkan implementasi dan pengujian.
Jumlah Operasi yang Ditolak oleh Sebuah Subkelas (NOO), adalah contoh pada saat subkelas mengganti sebuah operasi yang diwariskan dari superkelasnya dengan versi yang dikhususkan untuk pemakaiannya sendiri. Hal ini disebut penolakan (overriding). Nilai NOO yang besar biasanya menunjukkan adanya masalh disain.
Bila nilai NOO besar maka dissainer telah menyalahgunakan abstraksi yang diimplikasikan oleh superkelas. Hal ini membuat hirarki kelas menjadi lemah dan perangkat lunak OO menjadi sulit diuji dan dimodifikasi.
Jumlah Operasi yang Ditambahkan oleh Suatu Subkelas (NOA), adalah subkelas dispesialisasi dengan menambahkan operasi dan atribut privat. Pada saat ini nilai NOA bertambah, subkelas bergeser menjauh dari abstraksi diimplikasikan oleh superkelas. Umumnya, pada saat kedalaman hirarki kelas bertambah (DIT menjadi lebih besar), nilai NOA pada tingkat yang lebih rendah di dalam hirarki akan turun.
Indeks Spesialisasi (SI), indeks spesialisasi memberikan indikasi kasar mengenai tingkat spesialisasi untuk masing – masing subkelas pada suatu sistem Object Oriented. Spesialisasi akan dapat dicapai dengan menambahkan atau mengurangi operasi dengan menolaknya.
Dimana tingkat merupakan tingkat di dalam hirarki kelas dimana kelas tinggal dan Mtotal adalah jumah total metode untuk kelas tersebut. Semakin tinggi nilai SI semakin dimungkinkan hirarki kelas tidak sesuai dengan abstraksi superkelas.
Metrik Operation Oriented
Karena kelas merupakan satuan yang dominan dalam sistem Object Oriented, maka ada lebih sedikit metrik yang diusulkan untuk operasi kelas.
Churcer dan Shepperd menyatakan :
Hasil dari studi akhir menunjukkan bahwa metode cenderung mengecil, kedua dalam jumlah statement maupun dalam kompleksitas logika, yang menyatakan bahwa struktur konektivitas dapat lebih penting daripada isi modul individual.
Tetapi ada beberapa wawasan yang diperoleh dalam menguji karakteristik rata – rata untuk operasi kelas. Tiga metrik sederhana yang diusulkan Lorenz dan Kidd dicatat sebagai berikut :
Ukuran Operasi Rata – Rata (OSavg), meskipun baris kode dapat digunakan sebagai indikator untuk ukuran operasi, pengukuran LOC menderita karena masalah. karena alasan itulah jumlah pesan yang dikirim oleh operasi memberikan alternatif bagi ukuran operasi. Pada saat jumlah operasi tunggal bertambah, maka kemungkinan tanggung jawab belum dialokasikan secara baik di dalam suatu kelas.
Kompleksitas Operasi (OC), kompleksitas operasi dapat dihitung dengan menggunakan setiap metrik kompleksitas yang diusulkan untuk perangkat lunak konvensional. Karena operasi harus dibatasi sampai suatu tanggung jawab spesifik, disainer harus berusaha menjaga supaya OC serendah mungkin.
Jumlah Rata – Rata Parameter per Operasi (NPavg), semakin besar jumlah parameter operasi, semakin kompleks kolaborasi di antara objek. Secara umum, NPavg harus dijaga serendah mungkin.
Metrik Untuk Pengujian Berorientasi Objek
Binder mengusulkan sejumlah metrik disain yang berpengaruh langsung terhadap “testibilitas” sistem Object Oriented. Metrik tersebut dikumpulkan dalam kategori yang merefleksikan karakteristik disain yang penting :
Enkapsulasi
Jumlah kelas akar (NOR). Metrik ini merupakan hitungan dari hirarki kelas yang berbeda yang digambarkan di dalam model disain. Serangkain pengujian untuk masing – masing kelas akar dan hirarki kelas yang sesuai harus dikembangkan. Pada saat NOR bertambah, maka pengujian juga bertambah.
Fan in (FIN). Pada saat digunakan dalam konteks Object Oriented, fan-in merupakan indikasi pewarisan bertingkat. FIN > 1 menunjukkan bahwa kelas mewariskan atribut dan operasinya dari lebih dari satu kelas. FIN > 1 harus dihindari bila mungkin.
Jumlah anak (NOC) dan kedalaman pohon pewarisan (DIT). Seperti telah dibahas sebelumnya, metode super kelas harus diuji lagi untuk masing – masing subkelas.
Metrik Untuk Proyek Berorientasi Objek
Aktivitas pertama yang dilakukan manajer proyek adalah merencanakan, dan salah satu tugas perencanaan awal adalah perkiraan. Lihat lagi model proses evolusioner dimana perencanaan dilihat lagi setelah masing – masing iterasi perangkat lunak. Dengan demikian rencana estimasi proyeknya dilihat lagi setelah masing – masing iterasi OOA dan OOD dan bahkan OOP.
Metrik Object Oriented berikut dapat memberikan wawasan mengenai ukuran perangkat lunak :
Jumlah skrip skenario (NSS). Jumlah skrip skenario atau use case berbanding lurus dengan jumlah kelas yang diperlukan untuk memenuhi persyaratan, jumlah keadaan masing – masing kelas dan jumlah metode, atribut dan kolaborasi. NSS merupakan indikasi kuat untuk ukuran program.
Jumlah kelas kunci (NKC). Kelas kunci berfokus secara langsung pada domain bisnis bagi masalah dan memiliki probabilitas rendah dengan mengimplementasikannya melalui reuse. Karena itu maka nilai NKC yang tinggi menunjukkan usaha pengembangan substansial yang terbentang luas. Lorenz dan Kidd menyatakan bahwa 20 sampai 40 persen dari semua kelas di dalam sistem Object Oriented tipikal merupakan kelas – kelas kunci. Sisanya mendukung infrastruktur (GUI, komunikasi, database, dsb).
Jumlah subsistem (NSUB). Jumlah subsistem memberikan wawasan mengenai alokasi sumber daya, penjadualan (dengan penekanan khusus pada pengembangan pararel), serta keseluruhan usaha integrasi.
Secara kolektif metrik – metrik ini dapat digunakan untuk memperkirakan usaha, durasi, staffing dan informasi proyek lain untuk proyek yang sedang berlangsung.
Daftar Pustaka
- Untuk lebih memahami kualitas produk
- Untuk lebih memperkirakan keefektifan proses
- Untuk meningkatkan kualitas kerja yang dilakukan pada suatu tingkat proyek
Metrik Untuk Model Disain Object Oriented
Ada satu hal dari disain Object Oriented yang subjektif – desainer yang berpengalaman “mengetahui” bagaimana menandai suatu sistem Object Oriented sehingga dia akan secara efektif mengimplementasi persyaratan pelanggan. Tetapi pada saat disain Object Oriented berkembang ukurannya dan kompeksitasnya, pandangan yang lebih objektif mengenai karakteristik disain dapat bermanfaat baik bagi disainer yang berpengalaman maupun orang baru.
Pandangan mengenai disain harus memiliki komponen kuantitatif – dan membawa kepada metrik Object Oriented. Pada dasarnya, metrik teknis dapat diaplikasikan tidak hanya untuk model disain tetapi jga ke model analisis.
Metrik Orientasi Kelas
Kelas merupakan unit fundamental dari sistem Object Oriented. Dengan demikian pengukuran dan metrik untuk suatu kelas individual, hirarki kelas dan kolaborasi kelas akan berharga untuk seorang perekayasa perangkat lunak yang harus memperkirakan kualitas disain.
Suite Metrik CK
Chidamber dan Kemerer mengusulkan kumpulan metrik perangkat lunak Object Oriented yang paling banyak diferensi. Ada enam metrik disain berbasis kelas.
- Metode Pembebanan per Kelas (WMC), diasumsikan bahwa n metode dari kompleksitas c1, c2,…cn ditentukan bagi kelas C.
WMC = ∑ci
Untuk i = n
- Kedalaman Pohon Pewarisan (DIT), metrik ditentukan sebagai “panjang maksimum dari simpul ke akar pohon”. Pada gambar berikut harga DIT untuk hirarki kelas yang diperlihatkan adalah 4.
- Perangkaian Antara Kelas Objek (CBO), pada dasarnya CBO merupakan jumlah kolaborasi yang didaftar untuk suatu kelas di dalam kartu indeks CRC-nya. Secara umum nilai CBO untuk masing – masing kelas dijaga serendah mungkin. Nilai CBO yang tinggi akan merumitkan modifikasi dan pengujian yang terjadi selama modifikasi dilakukan.
- Respon untuk Sebuah Kelas (RFC), kumpulan respon suatu kelas adalah “serangkaian metode yang dapat secara potensial dieksekusi sebagai respon terhadap suatu pesan yang diterima oleh sebuah objekdari kelas itu”.
Pada saat RCF bertambah, kreja yang diperlukan untuk menguji juga bertambah karena urutan pengujian berkembang, juga kompleksitas disain keseluruhan dari kelas juga bertambah.
- Kurangnya Kohesi dalam Metode (LCOM), masing – masing metode di dalam suatu kelas C mengakses satu atau lebih atribut (disebut juga variabel instan), LCOM merupakan jumlah metode yang mengakses satu atau lebih atribut yang sama. Bila tidak ada metode yang mengakses atribut yang sama, maka LCOM = 0.
Secara umum nilai LCOM yang tinggi mengimplikasikan bahwa kelas kelas dapat didisain lebih baik dengan memecahnya ke dalam dua kelas terpisah atau lebih.
Metrik yang diusulkan oleh Lorenz dan Kidd
Lorenz dan Kidd membagi mettrik berdasarkan kelas ke dalam empat kategori luas :
- Ukuran
- Pewarisan
- Internal
- Eksternal
Metrik size oriented untuk kelas Object Oriented berfokus pada pencacahan atribut dan operasi untuk suatu kelas individu dan nilai rata – rata untuk sistem Object Oriented secara keseluruhan.
Metrik inheritance-based berfokus pada cara dimana operasi digunakan lagi pada hirarki kelas.
Metrik untuk internal kelas memandang kohesi dan masalah code-oriented.
Metrik eksternal menguji perangkaian dan reuse.
Contoh metrik yang diusulkan Lorenz dan Kidd adalah sebagai berikut :
Ukuran Kelas (CS), keseluruhan ukuran kelas dapat ditentukan dengan menggunakan pengukuran sebagai berikut :
- Jumlah total operasi (baik yang diwariskan maupun operasi instan privat) yang dienkapsulasi di dalam kelas tersebut
- Jumlah atribut (baik yang diwariskan maupun atribut instan privat) yang dienkapsulasi oleh kelas tersebut
Nilai CS yang besar mengindikasikan bahwa sebuah kelas terlalu banyak bertanggung jawab, yang akan mengurangi reusabilitas kelas dan merumitkan implementasi dan pengujian.
Jumlah Operasi yang Ditolak oleh Sebuah Subkelas (NOO), adalah contoh pada saat subkelas mengganti sebuah operasi yang diwariskan dari superkelasnya dengan versi yang dikhususkan untuk pemakaiannya sendiri. Hal ini disebut penolakan (overriding). Nilai NOO yang besar biasanya menunjukkan adanya masalh disain.
Bila nilai NOO besar maka dissainer telah menyalahgunakan abstraksi yang diimplikasikan oleh superkelas. Hal ini membuat hirarki kelas menjadi lemah dan perangkat lunak OO menjadi sulit diuji dan dimodifikasi.
Jumlah Operasi yang Ditambahkan oleh Suatu Subkelas (NOA), adalah subkelas dispesialisasi dengan menambahkan operasi dan atribut privat. Pada saat ini nilai NOA bertambah, subkelas bergeser menjauh dari abstraksi diimplikasikan oleh superkelas. Umumnya, pada saat kedalaman hirarki kelas bertambah (DIT menjadi lebih besar), nilai NOA pada tingkat yang lebih rendah di dalam hirarki akan turun.
Indeks Spesialisasi (SI), indeks spesialisasi memberikan indikasi kasar mengenai tingkat spesialisasi untuk masing – masing subkelas pada suatu sistem Object Oriented. Spesialisasi akan dapat dicapai dengan menambahkan atau mengurangi operasi dengan menolaknya.
SI = [NOO x tingkat]/Mtotal
Dimana tingkat merupakan tingkat di dalam hirarki kelas dimana kelas tinggal dan Mtotal adalah jumah total metode untuk kelas tersebut. Semakin tinggi nilai SI semakin dimungkinkan hirarki kelas tidak sesuai dengan abstraksi superkelas.
Metrik Operation Oriented
Karena kelas merupakan satuan yang dominan dalam sistem Object Oriented, maka ada lebih sedikit metrik yang diusulkan untuk operasi kelas.
Churcer dan Shepperd menyatakan :
Hasil dari studi akhir menunjukkan bahwa metode cenderung mengecil, kedua dalam jumlah statement maupun dalam kompleksitas logika, yang menyatakan bahwa struktur konektivitas dapat lebih penting daripada isi modul individual.
Tetapi ada beberapa wawasan yang diperoleh dalam menguji karakteristik rata – rata untuk operasi kelas. Tiga metrik sederhana yang diusulkan Lorenz dan Kidd dicatat sebagai berikut :
Ukuran Operasi Rata – Rata (OSavg), meskipun baris kode dapat digunakan sebagai indikator untuk ukuran operasi, pengukuran LOC menderita karena masalah. karena alasan itulah jumlah pesan yang dikirim oleh operasi memberikan alternatif bagi ukuran operasi. Pada saat jumlah operasi tunggal bertambah, maka kemungkinan tanggung jawab belum dialokasikan secara baik di dalam suatu kelas.
Kompleksitas Operasi (OC), kompleksitas operasi dapat dihitung dengan menggunakan setiap metrik kompleksitas yang diusulkan untuk perangkat lunak konvensional. Karena operasi harus dibatasi sampai suatu tanggung jawab spesifik, disainer harus berusaha menjaga supaya OC serendah mungkin.
Jumlah Rata – Rata Parameter per Operasi (NPavg), semakin besar jumlah parameter operasi, semakin kompleks kolaborasi di antara objek. Secara umum, NPavg harus dijaga serendah mungkin.
Metrik Untuk Pengujian Berorientasi Objek
Binder mengusulkan sejumlah metrik disain yang berpengaruh langsung terhadap “testibilitas” sistem Object Oriented. Metrik tersebut dikumpulkan dalam kategori yang merefleksikan karakteristik disain yang penting :
Enkapsulasi
Tidak adanya kohesi di dalam metode (LCOM). Semakin tinggi harga LCOM, semakin banyak keadaan yang harus diuji untuk memastikan apakah metode itu tidak menghasilkan efek samping.
Persen publik dan terproteksi (PAP). Atribut publik diwariskan dari kelas lain sehingga kelihatan oleh kelas – kelas itu. Atribut yang terproteksi merupakan spesialisasi dan merupakan privat terhadap suatu subkelas spesifik. Nilai PAP yang tinggi menambah kemungkinan efek samping di antara kelas – kelas.
Akses publik ke anggota data (PAD). Metrik ini menunjukkan jumlah kelas (atau metode) yang dapat mengakses atribut – atribut kelas lainnya, suatu penyalahgunaan dari enkapsulasi. Nilai PAD yang tinggi menimbulkan efek samping yang potensial diantara kelas.
Pewarisan
Persen publik dan terproteksi (PAP). Atribut publik diwariskan dari kelas lain sehingga kelihatan oleh kelas – kelas itu. Atribut yang terproteksi merupakan spesialisasi dan merupakan privat terhadap suatu subkelas spesifik. Nilai PAP yang tinggi menambah kemungkinan efek samping di antara kelas – kelas.
Akses publik ke anggota data (PAD). Metrik ini menunjukkan jumlah kelas (atau metode) yang dapat mengakses atribut – atribut kelas lainnya, suatu penyalahgunaan dari enkapsulasi. Nilai PAD yang tinggi menimbulkan efek samping yang potensial diantara kelas.
Pewarisan
Jumlah kelas akar (NOR). Metrik ini merupakan hitungan dari hirarki kelas yang berbeda yang digambarkan di dalam model disain. Serangkain pengujian untuk masing – masing kelas akar dan hirarki kelas yang sesuai harus dikembangkan. Pada saat NOR bertambah, maka pengujian juga bertambah.
Fan in (FIN). Pada saat digunakan dalam konteks Object Oriented, fan-in merupakan indikasi pewarisan bertingkat. FIN > 1 menunjukkan bahwa kelas mewariskan atribut dan operasinya dari lebih dari satu kelas. FIN > 1 harus dihindari bila mungkin.
Jumlah anak (NOC) dan kedalaman pohon pewarisan (DIT). Seperti telah dibahas sebelumnya, metode super kelas harus diuji lagi untuk masing – masing subkelas.
Metrik Untuk Proyek Berorientasi Objek
Aktivitas pertama yang dilakukan manajer proyek adalah merencanakan, dan salah satu tugas perencanaan awal adalah perkiraan. Lihat lagi model proses evolusioner dimana perencanaan dilihat lagi setelah masing – masing iterasi perangkat lunak. Dengan demikian rencana estimasi proyeknya dilihat lagi setelah masing – masing iterasi OOA dan OOD dan bahkan OOP.
Metrik Object Oriented berikut dapat memberikan wawasan mengenai ukuran perangkat lunak :
Jumlah skrip skenario (NSS). Jumlah skrip skenario atau use case berbanding lurus dengan jumlah kelas yang diperlukan untuk memenuhi persyaratan, jumlah keadaan masing – masing kelas dan jumlah metode, atribut dan kolaborasi. NSS merupakan indikasi kuat untuk ukuran program.
Jumlah kelas kunci (NKC). Kelas kunci berfokus secara langsung pada domain bisnis bagi masalah dan memiliki probabilitas rendah dengan mengimplementasikannya melalui reuse. Karena itu maka nilai NKC yang tinggi menunjukkan usaha pengembangan substansial yang terbentang luas. Lorenz dan Kidd menyatakan bahwa 20 sampai 40 persen dari semua kelas di dalam sistem Object Oriented tipikal merupakan kelas – kelas kunci. Sisanya mendukung infrastruktur (GUI, komunikasi, database, dsb).
Jumlah subsistem (NSUB). Jumlah subsistem memberikan wawasan mengenai alokasi sumber daya, penjadualan (dengan penekanan khusus pada pengembangan pararel), serta keseluruhan usaha integrasi.
Secara kolektif metrik – metrik ini dapat digunakan untuk memperkirakan usaha, durasi, staffing dan informasi proyek lain untuk proyek yang sedang berlangsung.
Daftar Pustaka
- D Suryadi HS dan Bunawan : “Pengantar Implementasi dan Pemeliharaan Sistem Informasi”, Penerbit Gunadarma.
- Roger S Pressman Ph.D “Rekayasa Perangkat Lunak : Pendekatan Buku 1” terjemahan Andi, Yogyakarta.
Sekian artikel tentang Memahami Metrik Teknik Untuk Sistem Berorientasi Objek.
Memahami Metrik Teknik Untuk Sistem Berorientasi Objek
4/
5
Oleh
Unknown