Software assessment using metrics:A comparison across large C++ and Java Systems<br />Jean Mayrand, Jean-François Patenaud...
Agenda<br />Pendahuluan<br />Data Eksperimen<br />System Level Metric<br />Class Level Metric<br />C++ Vs. Java<br />Metho...
Pendahuluan<br />Tujuan: Metodepenilaian u/ evaluasikualitassistemperangkatlunakberbasisObjek<br />Dasardarimetodepenilaia...
Pendahuluan<br />LatarBelakang:<br />Butuhpenilaiankualitasperangkatlunak<br />Berdasarhasilwawancaradesainerdanarsitekpro...
Pendahuluan<br />Framework Penilaian<br />Metodebertujuanuntukmenemukandanmenandaipadabagiansistem yang mempunyaikarakteri...
Pendahuluan<br />Level Of Granularity: Tingkat kedetilanstruktursistem<br />Level Sistem<br />Level Kelas<br />Level Metho...
DatrixTMToolset: untukabstraksisource code<br />Proses: SourceCodeAbstract Syntax Tree (AST) Intermediate Representation...
Data Eksperimen<br />7<br />4/11/2011<br />Focus Group E, TD TPL @ 2011<br />
Level of Granularity<br /><ul><li>Level System
Level Class
Level Method</li></ul>8<br />4/11/2011<br />Focus Group E, TD TPL @ 2011<br />
System Level Metrics<br /><ul><li>Diukurdenganmelihattopologidarisistemsoftwareuntukmembantudalammengevaluasimaintabilitys...
Kompleksitasdanrelevansidokumentasinyadapatdievaluasidaristrukturnya.
Penilaiantopologidapatmembantumengidentifikasikanapakahsistemtersebutberbasispadakerangkaobject oriented yang baik.</li></...
System Level Metrics<br />10<br />4/11/2011<br />Focus Group E, TD TPL @ 2011<br />
System Level Metrics<br /><ul><li>Diukurdenganmelihattopologidarisistemsoftwareuntukmembantudalammengevaluasimaintabilitys...
Kompleksitasdanrelevansidokumentasinyadapatdievaluasidaristrukturnya.
Penilaiantopologidapatmembantumengidentifikasikanapakahsistemtersebutberbasispadakerangkaobject oriented yang baik.</li></...
System Level Metrics<br />HasilEksperimen: Paper<br />12<br />4/11/2011<br />Focus Group E, TD TPL @ 2011<br />
System Level Metrics<br />HasilEksperimen: Character Graphics<br />13<br />4/11/2011<br />Focus Group E, TD TPL @ 2011<br />
System Level Metrics<br />Evaluasi Paper<br /><ul><li>ClaInhDirNbr
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. </li></ul>14<br />4/11/2011<br ...
System Level Metrics<br /><ul><li>JavaASTdihasilkandariSableCC
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.</li></ul>15<br />4/11/2...
System Level Metrics<br /><ul><li>ClaInhLvl
Padasistem java, mayoritas project memeilikikelaspewarisandengandengankedalamansatuatauduatingkat. Kelaspada OSS yang memi...
ClaIntLvl
Rata-rata tingkatkedalaman interface padasistem java adalahsatuataudua.</li></ul>16<br />4/11/2011<br />Focus Group E, TD ...
Class Level Metrics<br />Denganmengukurbesardanstrukturkelas-kelastersebut, kompleksitasbisadievaluasidansituasi yang tida...
Class Level Metrics - Attribute<br />18<br />4/11/2011<br />Focus Group E, TD TPL @ 2011<br />
Class Level Metrics - Attribute<br />HasilEksperimen: Paper<br />19<br />4/11/2011<br />Focus Group E, TD TPL @ 2011<br />
Class Level Metrics - Attribute<br />HasilEksperimen: Character Graphics<br />20<br />4/11/2011<br />Focus Group E, TD TPL...
Class Level Metrics - Attribute<br />Evaluasi: Paper<br />Kelas-kelasdenganClaAttNbrtinggi:<br />JDK(118); KeyEvent.java; ...
Class Level Metrics - Attribute<br />Di OSS, ClaAttPubNbrsangatrendah, hanya 129 dari 3435 atributyangbersifatpublic, 37% ...
Class Level Metrics - Attribute<br />Untuk metrik ClaAttStaNbr, 15% atribut di OSS static. Pada sistem berbasis Java, pers...
Class Level Metrics - Method<br />4/11/2011<br />Focus Group E, TD TPL @ 2011<br />24<br />
Class Level Metrics - Method<br />HasilEksperimen: Paper<br />25<br />4/11/2011<br />Focus Group E, TD TPL @ 2011<br />
Class Level Metrics - Method<br />HasilEksperimen: Character Graphics<br />26<br />4/11/2011<br />Focus Group E, TD TPL @ ...
Class Level Metrics - Method<br />Evaluasi: Paper<br />UntukClaMetNbr, kelas-kelas yang memilikinilaimaksimumtinggiadalah:...
Class Level Metrics - Method<br />Kelas dengan method public sedikit dan method private yang banyak, mengindikasikan penga...
Class Level Metrics - Class<br />4/11/2011<br />Focus Group E, TD TPL @ 2011<br />29<br />
Class Level Metrics - Class<br />HasilEksperimen: Paper<br />30<br />4/11/2011<br />Focus Group E, TD TPL @ 2011<br />
Class Level Metrics - Class<br />HasilEksperimen: Character Graphics<br />31<br />4/11/2011<br />Focus Group E, TD TPL @ 2...
Class Level Metrics - Class<br />Evaluasi: Paper<br />UntukClaMsgNbr, nilaiyangtinggimengindikasikankelasyangmungkinkomple...
Class Level Metrics - Class<br />ClaClaNstNbr, pada OSS, hanyaada 8 kemunculan. Anomalipada KFC(45) dan Swing(38). <br />P...
Class Level Metrics - Class<br />UntukClaCstrNbr, metrik ini tidaktersedia di OSS karenaketerbatasantoolpadapengujian. Tin...
Class Level Metrics - Class<br />Evaluasi: Character Graphics<br />UntukClaMsgNbr, nilaitertinggiterdapatpadakelasCShape(1...
Class Level Metrics - Class<br />BegitujugauntukClaCstrNbr, tiapkelashanyamemilikisebuahconstructor. Sehingga, kelas-kelas...
C++ Vs. Java<br />KelasInterface<br />Single Inheritance VS. Multi Inheritance<br />HirarkiKelasdarimasing-masingsistem<br...
Upcoming SlideShare
Loading in …5
×

Focus Group E

1,668
-1

Published on

Software assessment using metrics: A comparison across large C++ and Java Systems

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,668
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Lkdjl;fkjflkjasfdl;jsal;fkdjSlkdfjs;lakfj;lsdfkj
  • Focus Group E

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

      Clipping is a handy way to collect important slides you want to go back to later.

    ×