190 likes | 323 Views
Object-Oriented Reengineering Patterns and Techniques. Wahyu Andhyka Kusuma, S.Kom kusuma.wahyu.a@gmail.com 081233148591. M ateri 3 Software Visualization. Topik. Pengantar S oftware V Visualization dalam Reengineering Context Static Code Visualization Contoh
E N D
Object-Oriented Reengineering Patterns and Techniques Wahyu Andhyka Kusuma, S.Kom kusuma.wahyu.a@gmail.com 081233148591 Materi 3 • Software Visualization
Topik • Pengantar • Software V Visualization dalam Reengineering Context • Static Code Visualization • Contoh • Dynamic Code Visualization • Contoh • Memahami Evolusi • Kesimpulan
Topik • Pengantar • Software Visualization dalam Reengineering Context • Static Code Visualization • Contoh • Dynamic Code Visualization • Contoh • Memahami Evolusi • Kesimpulan
Program Visualization • Pengurangan kompleksitas • Menghasilkan sudut pandang yang berbeda dari sistem • Visualization Sangat kuat tetapi memiliki kelemahan : • Dapat menjadi komplek, dan menjadikan penelitian tersendiri, • Penggunaan spasi, penggunaan tab, dll • Warna yang bagus tidak mengindikasikan informasi penting • Dimana dilihat dan apa itu penting ?
Kekurangan Kosakata • Visualization • Information Visualization • Software Visualization • Algorithm Visualization • Program Visualization • Static Code Visualization • Dynamic Code Visualization • Tujuan dari kesemuanya adalah mengurangi kompleksitas
(Information) Visualization • Kurang lebih ada tiga pertanyaan • Lower perception (one element) • Medium perception (several elements) • Upper perception (all elements/the complete picture) • Didalam Information Visualization digunakan untuk mengurangi kompleksitas • Mengumpukan Informasi • Bagaimana menampilkan informasi • Bagaimana memvisualisasikan
Software Visualization “Software Visualization is the use of the crafts of typography, graphic design, animation, and cinematography with modern human-computer interaction and computer graphics technology to facilitate both the human understanding and effective use of computer software.” Price, Baecker and Small, “Introduction to Software Visualization” 2 bidang utama: • Algorithm Visualization • Program Visualization Permasalahan utama: “Software is intangible, having no physical shape or size. Software visualisation tools use graphical techniques to make software visible by displaying programs, program artifacts and program behaviour.” [Thomas Ball]
Dalam konteks Teknik • Bekerja dalam sistem lama, juga arsitektur yang kadarluarsa • Biasanya tools (editor) tidak dapat memroses kode yang berbeda atau lama • Sebuah pendekatan • Scalability sangat penting • Efficient (waktu / Informasi yang diperoleh) • Membutuhkan sebuah fokus • Solusi • Mengurangi dukungan dari tools atau editor juga ketergantungannya • Gunakan tool untuk visualisasi (Rigi, CodeCrawler, Jinsight) • Lakukan sendiri tetapi gunakan pemikiran sederhana
Program Visualization “Program visualization is the visualization of the actual program code or data structures in either static or dynamic form” [Price, Baecker and Small] • Static code visualization • Dynamic code visualization • Menghasilkan sudut pandang yang berbeda dari sistem dan mempelajari informasi yang ada didalam visualization tersebut • Permasalahan yang kompleks, seperti : • Efficient space use, edge crossing problem, layout problem, focus, HCI issues, GUI issues, … • Kaidah yang tidak sesuai (colors, symbols, interpretation, …)
Topik • Pengantar • Software V Visualization dalam Reengineering Context • Static Code Visualization • Contoh • Dynamic Code Visualization • Contoh • Memahami Evolusi • Kesimpulan
Static Code Visualization • Informasi dari visualisasi dapat di peroleh dari static structure dari sebuah sistem • Tergantung dari bahasa pemrograman dan paradigmanya • Object-Oriented PL: • classes, methods, attributes, inheritance, … • Procedural PL: • procedures, invocations, … • Functional
Topik • Pengantar • Software V Visualization dalam Reengineering Context • Static Code Visualization • Contoh • Dynamic Code Visualization • Contoh • Memahami Evolusi • Kesimpulan
Dynamic Code Visualization Memvisualisasikan perilaku (behaviour) dinamis dari sistem • Instrumen dari kode • Trace collection (melihat jejak dari pengumpulan variabel) • Trace evaluation (melihat jejak dari evaluasi setelah dieksekusi) • Untuk apa visualisasinya • Execution trace (melihat jejak dari hasil eksekusi • Memory consumption (seberapa besar memori digunakan) • Object interaction (interaksi antar objek) • Kompleksitas dari Algoritma • …
Dynamic Software Visualization: Evaluation • Permasalahan instrumen dari kode • Blue Print, Method Wrapping, enkapsulasi, dll • Permasalahan Scalability
Topik • Pengantar • Software V Visualization dalam Reengineering Context • Static Code Visualization • Contoh • Dynamic Code Visualization • Contoh • Memahami Evolusi • Kesimpulan
Memahami Evolusi • Informasi ada didalam riwayat perngkat lunak • Kompleksitas yang sangat berlimpah • Bagaimana kita dapat mendeteksi dan memahami perubahan? • Solusi: • Revision Towers • TimeWheel, Infobug • The Evolution Matrix
Topik • Pengantar • Software V Visualization dalam Reengineering Context • Static Code Visualization • Contoh • Dynamic Code Visualization • Contoh • Memahami Evolusi • Kesimpulan
Menjadi diri sendiri lebih baik • Visualisasi yang baik dapat menjadi pekerjaan yang susah • Algoritma dapat menjadi sangat penting • Efisien dari penggunaan space sangat penting • Sangat susah untuk fokus: • Beautiful graphs are not always meaningful • Bagaimana seharusnya melihat informasi? • Bagaimana seharusnya informasi untuk digunakan?
Kesimpulan • Software Visualization sangat penting jika digunakan dengan baik • Pendekatan terintegrasi sangat dibutuhkan hanya menggunakan visualisasi dengan penampilan yang baik tidak cukup • Secara umum, hanya orang yang tahu tentang Software Visualization yang mengerti dan dapat memberikan informasi tentang sistem • Masa depan dari software sedang berkembang dan software visualization akan menjadi bagian dari itu