SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
Software assessment using metrics:A comparison across large C++ and Java Systems Jean Mayrand, Jean-François Patenaude, EttoreMerlo, Michel Dagenais and Bruno Laguë Ahmad Sabiq, Anugrah Ramadhani, Yonatan Focus Group E TD:TPL FakultasIlmuKomputer, Universitas Indonesia
Agenda Pendahuluan Data Eksperimen System Level Metric Class Level Metric C++ Vs. Java Method Level Metric Kesimpulan 1 4/11/2011 Focus Group E, TD TPL @ 2011
Pendahuluan Tujuan: Metodepenilaian u/ evaluasikualitassistemperangkatlunakberbasisObjek Dasardarimetodepenilaian: Abstraksisourcecode OO Metrics RepresentasiGrafis 2 4/11/2011 Focus Group E, TD TPL @ 2011
Pendahuluan LatarBelakang: Butuhpenilaiankualitasperangkatlunak Berdasarhasilwawancaradesainerdanarsitekproduk subjektifdanterkadang bias Berdasarhasil review life cycle awaldariproduksepertidokumenanalisis & desain  terkadangprodukakhirberbedadengandokumenanalisis & desain Berdasarabstraksisource code  presisi, tidak bias, danbisadiaplikasikanpadasistem yang sangatbesar (dengan tools otomatis) 3 4/11/2011 Focus Group E, TD TPL @ 2011
Pendahuluan Framework Penilaian Metodebertujuanuntukmenemukandanmenandaipadabagiansistem yang mempunyaikarakteristiktidakbiasa Dasar OO Metrics: Level of Granularity Tools: DatrixTM Toolset Data Eksperimen: Sembilan* sistemberbasis OO yang besar, dariduabahasapemrograman (C++ dan Java) 4 4/11/2011 Focus Group E, TD TPL @ 2011
Pendahuluan Level Of Granularity: Tingkat kedetilanstruktursistem Level Sistem Level Kelas Level Method 5 4/11/2011 Focus Group E, TD TPL @ 2011
DatrixTMToolset: untukabstraksisource code Proses: SourceCodeAbstract Syntax Tree (AST) Intermediate Representation Language (IRL) Pendahuluan 6 4/11/2011 Focus Group E, TD TPL @ 2011
Data Eksperimen 7 4/11/2011 Focus Group E, TD TPL @ 2011
Level of Granularity ,[object Object]
Level Class
Level Method8 4/11/2011 Focus Group E, TD TPL @ 2011
System Level Metrics ,[object Object]
Kompleksitasdanrelevansidokumentasinyadapatdievaluasidaristrukturnya.
Penilaiantopologidapatmembantumengidentifikasikanapakahsistemtersebutberbasispadakerangkaobject oriented yang baik.9 4/11/2011 Focus Group E, TD TPL @ 2011
System Level Metrics 10 4/11/2011 Focus Group E, TD TPL @ 2011
System Level Metrics ,[object Object]
Kompleksitasdanrelevansidokumentasinyadapatdievaluasidaristrukturnya.
Penilaiantopologidapatmembantumengidentifikasikanapakahsistemtersebutberbasispadakerangkaobject oriented yang baik.11 4/11/2011 Focus Group E, TD TPL @ 2011
System Level Metrics HasilEksperimen: Paper 12 4/11/2011 Focus Group E, TD TPL @ 2011
System Level Metrics HasilEksperimen: Character Graphics 13 4/11/2011 Focus Group E, TD TPL @ 2011
System Level Metrics Evaluasi Paper ,[object Object]
Hanya 6% kelas di proyek OSS yang menggunakan multiple inheritance
Java hanyamengizinkansatupewarisan, sehinggamaksimalselalu 1.
ClaChdDirNbr
Padasistem java jumlahparent classumumnyaberkisardiantara 0 sampai 4.
PadaSableCCterdapatduakelasdenganjumlahanak 36 dan 62, yang merupakan Node dankelas Token. 14 4/11/2011 Focus Group E, TD TPL @ 2011
System Level Metrics ,[object Object]
Swing memiliki 9 buahkelas yang memilikianaklebihdari 10.
Pada OSS dan JDK, kelas yang memilikijumlahanakbanyakbiasanyakelas yang berhubungandengankelasutilitas.
ClaInhIndNbr
Pada OSS tidakbegitudiperlukankarena 94% kelashanyamenggunakanpewarisantunggal.
ClaIntChdDirNbr
Swing dan KFC yang merupakan  toolkit user -interface,, menggunakaninterface-extensionlebihbanyak.15 4/11/2011 Focus Group E, TD TPL @ 2011
System Level Metrics ,[object Object]
Padasistem java, mayoritas project memeilikikelaspewarisandengandengankedalamansatuatauduatingkat. Kelaspada OSS yang memilikitingkatpewarisandengankedalaman 9 merupakankelas yang over engineered.
ClaIntLvl
Rata-rata tingkatkedalaman interface padasistem java adalahsatuataudua.16 4/11/2011 Focus Group E, TD TPL @ 2011
Class Level Metrics Denganmengukurbesardanstrukturkelas-kelastersebut, kompleksitasbisadievaluasidansituasi yang tidakbiasabisadiidentifikasi Dievaluasidengancaramengkajikarakteristik internal darikelas-kelassistem Dibagitiga sub-bagian: Atributte, Method dan Class 17 4/11/2011 Focus Group E, TD TPL @ 2011
Class Level Metrics - Attribute 18 4/11/2011 Focus Group E, TD TPL @ 2011
Class Level Metrics - Attribute HasilEksperimen: Paper 19 4/11/2011 Focus Group E, TD TPL @ 2011
Class Level Metrics - Attribute HasilEksperimen: Character Graphics 20 4/11/2011 Focus Group E, TD TPL @ 2011
Class Level Metrics - Attribute Evaluasi: Paper Kelas-kelasdenganClaAttNbrtinggi: JDK(118); KeyEvent.java; enumerasi, mappingeventsuntukmengaturkeyboard Swing(110);Constant.java; mappinguntuk HTML tag JavaAST(245); JavaParser.java; parsingstatemachine OSS(70); maps data repository TingkatClaAttHidpada OSS sudahcukupbagus. KFC, CUP, AntLR dan JavaASTmemilikihasilyangrendah. 21 4/11/2011 Focus Group E, TD TPL @ 2011
Class Level Metrics - Attribute Di OSS, ClaAttPubNbrsangatrendah, hanya 129 dari 3435 atributyangbersifatpublic, 37% dariatributbersifatprivate.  UntukClaAttPriNbr, OSS memiliki 37% dari total atributyangbersifatprivate, sedangkanpada KFC bernilai 25%, CUP 28%, AntLR 8,4% dan JavaAST 15,6% RendahnyaClaAttPubNbr dan tingginyaClaAttPriNbrmencerminkanlevelenkapsulasi sistem yangbaik 4/11/2011 Focus Group E, TD TPL @ 2011 22
Class Level Metrics - Attribute Untuk metrik ClaAttStaNbr, 15% atribut di OSS static. Pada sistem berbasis Java, persentase lebih tinggi, JDK(57%), Swing(40%), CUP(65%), dan JavaAST(78%). Kelas dengan jumlah atribut static tinggi biasanya adalah kelas repositori informasi sistem Evaluasi: Character Graphics KelasdenganClaAttProNbrtinggiadalahCshape. UntukmetrikClaAttStaNbr, hanya 3.9% atribut di Character Graphics berupaatributstatic. 4/11/2011 Focus Group E, TD TPL @ 2011 23
Class Level Metrics - Method 4/11/2011 Focus Group E, TD TPL @ 2011 24
Class Level Metrics - Method HasilEksperimen: Paper 25 4/11/2011 Focus Group E, TD TPL @ 2011
Class Level Metrics - Method HasilEksperimen: Character Graphics 26 4/11/2011 Focus Group E, TD TPL @ 2011
Class Level Metrics - Method Evaluasi: Paper UntukClaMetNbr, kelas-kelas yang memilikinilaimaksimumtinggiadalah: JavaASR(481); kelasJavaParser; parserdarianalyzersourcecode Swing(420); kelas html32; parserdari file HTML SableCC(315); kelasDepthFirstAdapter UntukClaMetPubNbr, rata-rata pada semuasistemsudahcukuptinggi. Pengecualian pada JavaAST(40%). Untuk metrik ClaMetStaNbr, anomali terdapatpadaJavaAST(84% methodnyabersifatstatic) 27 4/11/2011 Focus Group E, TD TPL @ 2011
Class Level Metrics - Method Kelas dengan method public sedikit dan method private yang banyak, mengindikasikan pengaplikasian desain sistem facade* Evaluasi: Character Graphics Semuamethod sistem bersifatpublic, denganjumlahmethodterbanyak (15) ada padakelasCshape Hanya satudari 61 methodyangbersifatstatic, yaitumethod main 28 4/11/2011 Focus Group E, TD TPL @ 2011
Class Level Metrics - Class 4/11/2011 Focus Group E, TD TPL @ 2011 29
Class Level Metrics - Class HasilEksperimen: Paper 30 4/11/2011 Focus Group E, TD TPL @ 2011
Class Level Metrics - Class HasilEksperimen: Character Graphics 31 4/11/2011 Focus Group E, TD TPL @ 2011
Class Level Metrics - Class Evaluasi: Paper UntukClaMsgNbr, nilaiyangtinggimengindikasikankelasyangmungkinkompleksitasnyatinggi.  JavaAST(726) JavaParser Swing(444) html32 SableCC(315) DepthFirstAdapter 32 4/11/2011 Focus Group E, TD TPL @ 2011
Class Level Metrics - Class ClaClaNstNbr, pada OSS, hanyaada 8 kemunculan. Anomalipada KFC(45) dan Swing(38).  Pada KFC tinggikarenanestedclassdiutilisasisebagaisebuahcallback Pada Swing tinggikarenamemangperludiperbaiki. (Padarilis Swing selanjutnya, masalahinitelahdiselesaikan) 33 4/11/2011 Focus Group E, TD TPL @ 2011
Class Level Metrics - Class UntukClaCstrNbr, metrik ini tidaktersedia di OSS karenaketerbatasantoolpadapengujian. Tingginyanilaimetrik ini mengindikasikankemungkinankompleksitaskelasjugatinggi. Contohnyaadalahkelaspada KFC(17) dan JDK(13). UntukClaNamLen, secaraumum >8 karaktersudahdianggapmencukupi. Secara rata-rata, metrik ini lebihtinggipadasistem-sistem Java dibandingkan di sistem C++ 34 4/11/2011 Focus Group E, TD TPL @ 2011
Class Level Metrics - Class Evaluasi: Character Graphics UntukClaMsgNbr, nilaitertinggiterdapatpadakelasCShape(19). Tetapi, banyakmethoddiCShapeyanghanyaberupaabstractyang akan didefinisikanlagipadakelasturunan, sehinggaCShapetidaktergolongkelasyang kompleks. Untuk metrik ClaNstNbr, semuakelasbernilaisatukarenatiap file hanyaberisikansebuahkelas. 35 4/11/2011 Focus Group E, TD TPL @ 2011
Class Level Metrics - Class BegitujugauntukClaCstrNbr, tiapkelashanyamemilikisebuahconstructor. Sehingga, kelas-kelaspadaCharacter Graphics bisadigolongkantidakkompleks UntukmetrikClaNamLen, secara rata-rata penamaankelasCharacter Graphics masihkurangbaik, kecualiuntukkelas DrawingPackage(14) 36 4/11/2011 Focus Group E, TD TPL @ 2011
C++ Vs. Java KelasInterface Single Inheritance VS. Multi Inheritance HirarkiKelasdarimasing-masingsistem 4/11/2011 Focus Group E, TD TPL @ 2011 37

Mais conteúdo relacionado

Semelhante a Focus Group E

Metodologi Desain JPLAS
Metodologi Desain JPLASMetodologi Desain JPLAS
Metodologi Desain JPLASmega_aprilia
 
Metodologi Desain JPLAS
Metodologi Desain JPLASMetodologi Desain JPLAS
Metodologi Desain JPLASmega_aprilia
 
RPS-Pemrograman-Berorientasi-Objek.pdf
RPS-Pemrograman-Berorientasi-Objek.pdfRPS-Pemrograman-Berorientasi-Objek.pdf
RPS-Pemrograman-Berorientasi-Objek.pdfbaihaqi29
 
Metodologi extreme programming
Metodologi extreme programmingMetodologi extreme programming
Metodologi extreme programmingAnnisa Shabrina
 
clustering
clusteringclustering
clusteringdewi2093
 
Prak sinyal sistem_1
Prak sinyal sistem_1Prak sinyal sistem_1
Prak sinyal sistem_1alvinwidan2
 
Prak sinyal sistem_1
Prak sinyal sistem_1Prak sinyal sistem_1
Prak sinyal sistem_1alvinwidan2
 
04-cara-pemakaian-weka.ppt
04-cara-pemakaian-weka.ppt04-cara-pemakaian-weka.ppt
04-cara-pemakaian-weka.pptPutrifitriasari1
 
Tutorial WEKA.ppt
Tutorial WEKA.pptTutorial WEKA.ppt
Tutorial WEKA.pptJurnalJTIM
 
Analisis data kualitatif kent1
Analisis data kualitatif kent1Analisis data kualitatif kent1
Analisis data kualitatif kent1Bradely Orlando
 
152111283021_RAB_ResumeANN.pptx
152111283021_RAB_ResumeANN.pptx152111283021_RAB_ResumeANN.pptx
152111283021_RAB_ResumeANN.pptxssusera3e413
 
Pemrograman dengan Transact SQL Bagian-1
Pemrograman dengan Transact SQL Bagian-1Pemrograman dengan Transact SQL Bagian-1
Pemrograman dengan Transact SQL Bagian-1Yoppy Yunhasnawa
 
Contoh Power Point Presentasi Seminar Proposal Skripsi.pptx
Contoh Power Point Presentasi Seminar Proposal Skripsi.pptxContoh Power Point Presentasi Seminar Proposal Skripsi.pptx
Contoh Power Point Presentasi Seminar Proposal Skripsi.pptxAltiQuery
 
Dashboard-dengan-GDS (1).pdf
Dashboard-dengan-GDS (1).pdfDashboard-dengan-GDS (1).pdf
Dashboard-dengan-GDS (1).pdfAkuhuruf
 
524 rekayasa perangkat lunak smk
524 rekayasa perangkat lunak smk524 rekayasa perangkat lunak smk
524 rekayasa perangkat lunak smkWinarto Winartoap
 
Jbptunikompp gdl-rninankari-22216-12-unikom r-.
Jbptunikompp gdl-rninankari-22216-12-unikom r-.Jbptunikompp gdl-rninankari-22216-12-unikom r-.
Jbptunikompp gdl-rninankari-22216-12-unikom r-.Munir Maestro
 

Semelhante a Focus Group E (20)

Metodologi Desain JPLAS
Metodologi Desain JPLASMetodologi Desain JPLAS
Metodologi Desain JPLAS
 
Metodologi Desain
Metodologi DesainMetodologi Desain
Metodologi Desain
 
Metodologi Desain JPLAS
Metodologi Desain JPLASMetodologi Desain JPLAS
Metodologi Desain JPLAS
 
RPS-Pemrograman-Berorientasi-Objek.pdf
RPS-Pemrograman-Berorientasi-Objek.pdfRPS-Pemrograman-Berorientasi-Objek.pdf
RPS-Pemrograman-Berorientasi-Objek.pdf
 
Metodologi extreme programming
Metodologi extreme programmingMetodologi extreme programming
Metodologi extreme programming
 
IES
IESIES
IES
 
clustering
clusteringclustering
clustering
 
Prak sinyal sistem_1
Prak sinyal sistem_1Prak sinyal sistem_1
Prak sinyal sistem_1
 
Prak sinyal sistem_1
Prak sinyal sistem_1Prak sinyal sistem_1
Prak sinyal sistem_1
 
04-cara-pemakaian-weka.ppt
04-cara-pemakaian-weka.ppt04-cara-pemakaian-weka.ppt
04-cara-pemakaian-weka.ppt
 
Tutorial WEKA.ppt
Tutorial WEKA.pptTutorial WEKA.ppt
Tutorial WEKA.ppt
 
Apsi 2
Apsi 2Apsi 2
Apsi 2
 
Analisis data kualitatif kent1
Analisis data kualitatif kent1Analisis data kualitatif kent1
Analisis data kualitatif kent1
 
152111283021_RAB_ResumeANN.pptx
152111283021_RAB_ResumeANN.pptx152111283021_RAB_ResumeANN.pptx
152111283021_RAB_ResumeANN.pptx
 
Pemrograman dengan Transact SQL Bagian-1
Pemrograman dengan Transact SQL Bagian-1Pemrograman dengan Transact SQL Bagian-1
Pemrograman dengan Transact SQL Bagian-1
 
Contoh Power Point Presentasi Seminar Proposal Skripsi.pptx
Contoh Power Point Presentasi Seminar Proposal Skripsi.pptxContoh Power Point Presentasi Seminar Proposal Skripsi.pptx
Contoh Power Point Presentasi Seminar Proposal Skripsi.pptx
 
Dashboard-dengan-GDS (1).pdf
Dashboard-dengan-GDS (1).pdfDashboard-dengan-GDS (1).pdf
Dashboard-dengan-GDS (1).pdf
 
524 rekayasa perangkat lunak smk
524 rekayasa perangkat lunak smk524 rekayasa perangkat lunak smk
524 rekayasa perangkat lunak smk
 
Jbptunikompp gdl-rninankari-22216-12-unikom r-.
Jbptunikompp gdl-rninankari-22216-12-unikom r-.Jbptunikompp gdl-rninankari-22216-12-unikom r-.
Jbptunikompp gdl-rninankari-22216-12-unikom r-.
 
PPT SIDANG TA.pptx
PPT SIDANG TA.pptxPPT SIDANG TA.pptx
PPT SIDANG TA.pptx
 

Focus Group E

  • 1. Software assessment using metrics:A comparison across large C++ and Java Systems Jean Mayrand, Jean-François Patenaude, EttoreMerlo, Michel Dagenais and Bruno Laguë Ahmad Sabiq, Anugrah Ramadhani, Yonatan Focus Group E TD:TPL FakultasIlmuKomputer, Universitas Indonesia
  • 2. Agenda Pendahuluan Data Eksperimen System Level Metric Class Level Metric C++ Vs. Java Method Level Metric Kesimpulan 1 4/11/2011 Focus Group E, TD TPL @ 2011
  • 3. Pendahuluan Tujuan: Metodepenilaian u/ evaluasikualitassistemperangkatlunakberbasisObjek Dasardarimetodepenilaian: Abstraksisourcecode OO Metrics RepresentasiGrafis 2 4/11/2011 Focus Group E, TD TPL @ 2011
  • 4. Pendahuluan LatarBelakang: Butuhpenilaiankualitasperangkatlunak Berdasarhasilwawancaradesainerdanarsitekproduk subjektifdanterkadang bias Berdasarhasil review life cycle awaldariproduksepertidokumenanalisis & desain  terkadangprodukakhirberbedadengandokumenanalisis & desain Berdasarabstraksisource code  presisi, tidak bias, danbisadiaplikasikanpadasistem yang sangatbesar (dengan tools otomatis) 3 4/11/2011 Focus Group E, TD TPL @ 2011
  • 5. Pendahuluan Framework Penilaian Metodebertujuanuntukmenemukandanmenandaipadabagiansistem yang mempunyaikarakteristiktidakbiasa Dasar OO Metrics: Level of Granularity Tools: DatrixTM Toolset Data Eksperimen: Sembilan* sistemberbasis OO yang besar, dariduabahasapemrograman (C++ dan Java) 4 4/11/2011 Focus Group E, TD TPL @ 2011
  • 6. Pendahuluan Level Of Granularity: Tingkat kedetilanstruktursistem Level Sistem Level Kelas Level Method 5 4/11/2011 Focus Group E, TD TPL @ 2011
  • 7. DatrixTMToolset: untukabstraksisource code Proses: SourceCodeAbstract Syntax Tree (AST) Intermediate Representation Language (IRL) Pendahuluan 6 4/11/2011 Focus Group E, TD TPL @ 2011
  • 8. Data Eksperimen 7 4/11/2011 Focus Group E, TD TPL @ 2011
  • 9.
  • 11. Level Method8 4/11/2011 Focus Group E, TD TPL @ 2011
  • 12.
  • 15. System Level Metrics 10 4/11/2011 Focus Group E, TD TPL @ 2011
  • 16.
  • 19. System Level Metrics HasilEksperimen: Paper 12 4/11/2011 Focus Group E, TD TPL @ 2011
  • 20. System Level Metrics HasilEksperimen: Character Graphics 13 4/11/2011 Focus Group E, TD TPL @ 2011
  • 21.
  • 22. Hanya 6% kelas di proyek OSS yang menggunakan multiple inheritance
  • 25. Padasistem java jumlahparent classumumnyaberkisardiantara 0 sampai 4.
  • 26. PadaSableCCterdapatduakelasdenganjumlahanak 36 dan 62, yang merupakan Node dankelas Token. 14 4/11/2011 Focus Group E, TD TPL @ 2011
  • 27.
  • 28. Swing memiliki 9 buahkelas yang memilikianaklebihdari 10.
  • 29. Pada OSS dan JDK, kelas yang memilikijumlahanakbanyakbiasanyakelas yang berhubungandengankelasutilitas.
  • 31. Pada OSS tidakbegitudiperlukankarena 94% kelashanyamenggunakanpewarisantunggal.
  • 33. Swing dan KFC yang merupakan toolkit user -interface,, menggunakaninterface-extensionlebihbanyak.15 4/11/2011 Focus Group E, TD TPL @ 2011
  • 34.
  • 35. Padasistem java, mayoritas project memeilikikelaspewarisandengandengankedalamansatuatauduatingkat. Kelaspada OSS yang memilikitingkatpewarisandengankedalaman 9 merupakankelas yang over engineered.
  • 37. Rata-rata tingkatkedalaman interface padasistem java adalahsatuataudua.16 4/11/2011 Focus Group E, TD TPL @ 2011
  • 38. Class Level Metrics Denganmengukurbesardanstrukturkelas-kelastersebut, kompleksitasbisadievaluasidansituasi yang tidakbiasabisadiidentifikasi Dievaluasidengancaramengkajikarakteristik internal darikelas-kelassistem Dibagitiga sub-bagian: Atributte, Method dan Class 17 4/11/2011 Focus Group E, TD TPL @ 2011
  • 39. Class Level Metrics - Attribute 18 4/11/2011 Focus Group E, TD TPL @ 2011
  • 40. Class Level Metrics - Attribute HasilEksperimen: Paper 19 4/11/2011 Focus Group E, TD TPL @ 2011
  • 41. Class Level Metrics - Attribute HasilEksperimen: Character Graphics 20 4/11/2011 Focus Group E, TD TPL @ 2011
  • 42. Class Level Metrics - Attribute Evaluasi: Paper Kelas-kelasdenganClaAttNbrtinggi: JDK(118); KeyEvent.java; enumerasi, mappingeventsuntukmengaturkeyboard Swing(110);Constant.java; mappinguntuk HTML tag JavaAST(245); JavaParser.java; parsingstatemachine OSS(70); maps data repository TingkatClaAttHidpada OSS sudahcukupbagus. KFC, CUP, AntLR dan JavaASTmemilikihasilyangrendah. 21 4/11/2011 Focus Group E, TD TPL @ 2011
  • 43. Class Level Metrics - Attribute Di OSS, ClaAttPubNbrsangatrendah, hanya 129 dari 3435 atributyangbersifatpublic, 37% dariatributbersifatprivate. UntukClaAttPriNbr, OSS memiliki 37% dari total atributyangbersifatprivate, sedangkanpada KFC bernilai 25%, CUP 28%, AntLR 8,4% dan JavaAST 15,6% RendahnyaClaAttPubNbr dan tingginyaClaAttPriNbrmencerminkanlevelenkapsulasi sistem yangbaik 4/11/2011 Focus Group E, TD TPL @ 2011 22
  • 44. Class Level Metrics - Attribute Untuk metrik ClaAttStaNbr, 15% atribut di OSS static. Pada sistem berbasis Java, persentase lebih tinggi, JDK(57%), Swing(40%), CUP(65%), dan JavaAST(78%). Kelas dengan jumlah atribut static tinggi biasanya adalah kelas repositori informasi sistem Evaluasi: Character Graphics KelasdenganClaAttProNbrtinggiadalahCshape. UntukmetrikClaAttStaNbr, hanya 3.9% atribut di Character Graphics berupaatributstatic. 4/11/2011 Focus Group E, TD TPL @ 2011 23
  • 45. Class Level Metrics - Method 4/11/2011 Focus Group E, TD TPL @ 2011 24
  • 46. Class Level Metrics - Method HasilEksperimen: Paper 25 4/11/2011 Focus Group E, TD TPL @ 2011
  • 47. Class Level Metrics - Method HasilEksperimen: Character Graphics 26 4/11/2011 Focus Group E, TD TPL @ 2011
  • 48. Class Level Metrics - Method Evaluasi: Paper UntukClaMetNbr, kelas-kelas yang memilikinilaimaksimumtinggiadalah: JavaASR(481); kelasJavaParser; parserdarianalyzersourcecode Swing(420); kelas html32; parserdari file HTML SableCC(315); kelasDepthFirstAdapter UntukClaMetPubNbr, rata-rata pada semuasistemsudahcukuptinggi. Pengecualian pada JavaAST(40%). Untuk metrik ClaMetStaNbr, anomali terdapatpadaJavaAST(84% methodnyabersifatstatic) 27 4/11/2011 Focus Group E, TD TPL @ 2011
  • 49. Class Level Metrics - Method Kelas dengan method public sedikit dan method private yang banyak, mengindikasikan pengaplikasian desain sistem facade* Evaluasi: Character Graphics Semuamethod sistem bersifatpublic, denganjumlahmethodterbanyak (15) ada padakelasCshape Hanya satudari 61 methodyangbersifatstatic, yaitumethod main 28 4/11/2011 Focus Group E, TD TPL @ 2011
  • 50. Class Level Metrics - Class 4/11/2011 Focus Group E, TD TPL @ 2011 29
  • 51. Class Level Metrics - Class HasilEksperimen: Paper 30 4/11/2011 Focus Group E, TD TPL @ 2011
  • 52. Class Level Metrics - Class HasilEksperimen: Character Graphics 31 4/11/2011 Focus Group E, TD TPL @ 2011
  • 53. Class Level Metrics - Class Evaluasi: Paper UntukClaMsgNbr, nilaiyangtinggimengindikasikankelasyangmungkinkompleksitasnyatinggi. JavaAST(726) JavaParser Swing(444) html32 SableCC(315) DepthFirstAdapter 32 4/11/2011 Focus Group E, TD TPL @ 2011
  • 54. Class Level Metrics - Class ClaClaNstNbr, pada OSS, hanyaada 8 kemunculan. Anomalipada KFC(45) dan Swing(38). Pada KFC tinggikarenanestedclassdiutilisasisebagaisebuahcallback Pada Swing tinggikarenamemangperludiperbaiki. (Padarilis Swing selanjutnya, masalahinitelahdiselesaikan) 33 4/11/2011 Focus Group E, TD TPL @ 2011
  • 55. Class Level Metrics - Class UntukClaCstrNbr, metrik ini tidaktersedia di OSS karenaketerbatasantoolpadapengujian. Tingginyanilaimetrik ini mengindikasikankemungkinankompleksitaskelasjugatinggi. Contohnyaadalahkelaspada KFC(17) dan JDK(13). UntukClaNamLen, secaraumum >8 karaktersudahdianggapmencukupi. Secara rata-rata, metrik ini lebihtinggipadasistem-sistem Java dibandingkan di sistem C++ 34 4/11/2011 Focus Group E, TD TPL @ 2011
  • 56. Class Level Metrics - Class Evaluasi: Character Graphics UntukClaMsgNbr, nilaitertinggiterdapatpadakelasCShape(19). Tetapi, banyakmethoddiCShapeyanghanyaberupaabstractyang akan didefinisikanlagipadakelasturunan, sehinggaCShapetidaktergolongkelasyang kompleks. Untuk metrik ClaNstNbr, semuakelasbernilaisatukarenatiap file hanyaberisikansebuahkelas. 35 4/11/2011 Focus Group E, TD TPL @ 2011
  • 57. Class Level Metrics - Class BegitujugauntukClaCstrNbr, tiapkelashanyamemilikisebuahconstructor. Sehingga, kelas-kelaspadaCharacter Graphics bisadigolongkantidakkompleks UntukmetrikClaNamLen, secara rata-rata penamaankelasCharacter Graphics masihkurangbaik, kecualiuntukkelas DrawingPackage(14) 36 4/11/2011 Focus Group E, TD TPL @ 2011
  • 58. C++ Vs. Java KelasInterface Single Inheritance VS. Multi Inheritance HirarkiKelasdarimasing-masingsistem 4/11/2011 Focus Group E, TD TPL @ 2011 37
  • 59. Kelas Interface Interface: kumpulan method tanpaisi (body) Dalampengaplikasiannya, denganmenggunakanrelasi `implements` Sebuah “kontrak” tentang method-method yang akanadapadainstanceybs. Compilerakanmemeriksaapakahsemua method interface dideklarasikanisinya. Kalautidak error 4/11/2011 Focus Group E, TD TPL @ 2011 38 Sumber: The Java Tutorial http://download.oracle.com/javase/tutorial/java/concepts/interface.html
  • 60. Single Inheritance VS. Multi Inheritance 4/11/2011 Focus Group E, TD TPL @ 2011 39 Java hanyamengijinkanSingle Inheritance, sedangkan C++ Multiple Inheritance Pada Java, jumlahdirect parent selalu 1 atau 0 Struktursingle inheritance  Tree Strukturmulti inheritance  Graph
  • 61. HirarkiKelas Seharusnyadibangununtukmempermudahpengembanganlanjutsistem (easilyenhancedand extended) Kombinasidari metrics level kelasdan level sistem. Semakindalam level inheritance, seharusnyajumlah method danatribut per kelasmenjadilebihsedikit Dibantudenganrepresentasigrafikscatter 4/11/2011 Focus Group E, TD TPL @ 2011 40
  • 62. Level Inheritance & Jumlah Method Sebuahtitikmencerminkansebuahkelasdarisistem. 4/11/2011 Focus Group E, TD TPL @ 2011 41
  • 63. Level Inheritance & JumlahAtribut Sebuahtitikmencerminkansebuahkelasdarisistem. 4/11/2011 Focus Group E, TD TPL @ 2011 42
  • 64. Character Graphics 4/11/2011 Focus Group E, TD TPL @ 2011 43
  • 65. Character Graphics 4/11/2011 Focus Group E, TD TPL @ 2011 44
  • 66. Method Level Metrics FokuspadaCode Java Tools yang digunakantidakmendukung method metric untuk C++ Tujuan Evaluasikomplesitas method JenisMetrik yang digunakan 4/11/2011 Focus Group E, TD TPL @ 2011 45
  • 67. Method Level Metrics 4/11/2011 Focus Group E, TD TPL @ 2011 46
  • 68. HasilEksperimen : Paper 4/11/2011 Focus Group E, TD TPL @ 2011 47
  • 69. HasilEksperimen : Character Graphic 4/11/2011 Focus Group E, TD TPL @ 2011 48
  • 70. Evaluasi Method Metric Evaluasi: Paper RtnCalToNbr Method yang paling banyakmemanggil method lain : padaproyeksableCCsebanyaklebihdari 250 method. Perludi split menjadibagian yang lebihkecil RtnCalFromNbr 85% method dipanggilantara 0 s/d 5 method lain. Method yang paling banyakdipanggilsebanyak 1829 kali oleh method lain. Menunjukan method tersebutpentingdanbiasanyacukup simple. 4/11/2011 Focus Group E, TD TPL @ 2011 49
  • 71. Evaluasi Method Metric RtnStmExeNbr 90% method memilikikurangdari 25 baris statement RtnCndNbr Method yang komplekditemuipadaproyek Swing danJavaAST 4/11/2011 Focus Group E, TD TPL @ 2011 50
  • 72. Evaluasi Method Metric Evaluasi: Character Graphics RtnCalToNbr Method yang paling banyakmemanggil method lain : DrawingPackage.InteractdanDrawingPackage.ApplyDragTool RtnCalFromNbr Method yang paling banyakdipanggilScreen.DrawPixel RtnStmExeNbr Statement yang paling banyakdalam 1 method: 28 statement – DrawingPackage.ApplyDragTool RtnCndNbr Max 12 Kondisi – DrawingPackage.ApplyDragTool 4/11/2011 Focus Group E, TD TPL @ 2011 51
  • 73. Kesimpulan Paper Metodepenilaianlewatabstraksisourcecodecocokpadasistem yang sangatbesar Nilai metrics danrepresentasigrafisharusdiintrepetasikandengan “judgement”, bukandengancaramembandingkanhasiltersebutdenganpanduan yang sudahfix Pada Level sistem; Beberapatipeperangkatlunak, seperti Parser, harusmempunyainilai metrics tersendiri. 4/11/2011 Focus Group E, TD TPL @ 2011 52
  • 74. Kesimpulan Source code hasil generate otomatis, harusmasukpertimbangandansudutpandang yang berbedadengan source code biasa Metrics seharusnyadigunakansebagaiguidelineinspeksi, bukansebagaidasarsistempenilaian Pada Level Kelas, Beberapa metrics barudiusulkanuntukmembantumengivestigasisistemsecaraspesifikdanefisien Kelas-kelas yang memilikianomalibisadiinspeksidandiberikantandasebagai area beresiko Dengancaraini, evaluator bisabekerjalebihcepatdalammenginvestigasi area beresikopadasistem yang sangatbesar 4/11/2011 Focus Group E, TD TPL @ 2011 53
  • 75. Kesimpulan Pada Level Method, Sistemdenganpersentasi method private tinggi, dimungkinkanuntukmengambilasumsibahwadesainsistemtersebutberfokuspadamengijinkanaksesdariluarmelaluisejumlahkecil method public, atauFaçade system design [Gamma et al. 1994] 4/11/2011 Focus Group E, TD TPL @ 2011 54
  • 76. Kesimpulan Character Graphics Penggunaan metrics yang diajukanpada paper inikurangtepat, karenaditujukanuntuksistem yang sangatbesar. Padasistem character graphics, anomalidarisuatu area kurangterlihatkarenakurangnyavariasi data. Level sistem Metrikinidigunakanhanyauntukmelihatgambaransistemsecarakeseluruhan, danmembantuevaluasipada level berikutnya 4/11/2011 Focus Group E, TD TPL @ 2011 55
  • 77. Kesimpulan Level Kelas Kelas CShape cenderung memiliki nilai metrik yang mencolok baik dari bagian method atau class, tetapi jika dikaji lebih lanjut, ternyata CShape banyak terdiri dari abstract method yang kompleksitasnya terbagi di kelas turunan dari CShape, yaitu CRect, CCircle, dan Ctext Dengan semua method yang bersifat public dantidakadanya method private, bisadikatakanbahwa Character Graphics tidakmengadopsidesainsistemFaçade. 4/11/2011 Focus Group E, TD TPL @ 2011 56
  • 78. Kesimpulan Level Method DrawingPackageadalahkelas yang memiliki method yang paling banyakmemanggiloleh method lain. method Interact() danApplyDragTool() Secara total, method yang paling banyakdipanggiladalah method DrawPixel() 4/11/2011 Focus Group E, TD TPL @ 2011 57

Notas do Editor

  1. Lkdjl;fkjflkjasfdl;jsal;fkdjSlkdfjs;lakfj;lsdfkj