1 / 19

Object-Oriented Reengineering Patterns and Techniques

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

Télécharger la présentation

Object-Oriented Reengineering Patterns and Techniques

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Object-Oriented Reengineering Patterns and Techniques Wahyu Andhyka Kusuma, S.Kom kusuma.wahyu.a@gmail.com 081233148591 Materi 3 • Software Visualization

  2. Topik • Pengantar • Software V Visualization dalam Reengineering Context • Static Code Visualization • Contoh • Dynamic Code Visualization • Contoh • Memahami Evolusi • Kesimpulan

  3. Topik • Pengantar • Software Visualization dalam Reengineering Context • Static Code Visualization • Contoh • Dynamic Code Visualization • Contoh • Memahami Evolusi • Kesimpulan

  4. 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 ?

  5. Kekurangan Kosakata • Visualization • Information Visualization • Software Visualization • Algorithm Visualization • Program Visualization • Static Code Visualization • Dynamic Code Visualization • Tujuan dari kesemuanya adalah mengurangi kompleksitas

  6. (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

  7. 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]

  8. 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

  9. 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, …)

  10. Topik • Pengantar • Software V Visualization dalam Reengineering Context • Static Code Visualization • Contoh • Dynamic Code Visualization • Contoh • Memahami Evolusi • Kesimpulan

  11. 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

  12. Topik • Pengantar • Software V Visualization dalam Reengineering Context • Static Code Visualization • Contoh • Dynamic Code Visualization • Contoh • Memahami Evolusi • Kesimpulan

  13. 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 • …

  14. Dynamic Software Visualization: Evaluation • Permasalahan instrumen dari kode • Blue Print, Method Wrapping, enkapsulasi, dll • Permasalahan Scalability

  15. Topik • Pengantar • Software V Visualization dalam Reengineering Context • Static Code Visualization • Contoh • Dynamic Code Visualization • Contoh • Memahami Evolusi • Kesimpulan

  16. 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

  17. Topik • Pengantar • Software V Visualization dalam Reengineering Context • Static Code Visualization • Contoh • Dynamic Code Visualization • Contoh • Memahami Evolusi • Kesimpulan

  18. 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?

  19. 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

More Related