1 Pemodelan Berorientasi Objek Reverse Engineering & Forward Engineering Adam Hendra Brata
Materi Pertemuan 8 2 Reverse Engineering & Forward Engineering Forward Engineering Reverse Engineering Re-engineering
Forward Engineering 3
Forward Engineering 4 Ingatkah kalian dengan ini?
Forward Engineering 5 Dalam SDLC waterfall proses pengembangan perangkat lunak secara sederhana dapat dilihat bahwa proses pengembangannya bersifat maju Dari analisis kebutuhan maju sampai ke pemeliharaan sistem
Forward Engineering 6 Karena PBO merupakan komponen dalam pengembangan perangkat lunak, maka forward engineering juga pasti terjadi Analisis Kebutuhan Perancangan Implementasi Requirements Design Source Code Behavior
Forward Engineering 7 Dalam proses pegembangan maju kita mengembangkan sebuah sistem dengan metode yang terstruktur mulai dari konsep awal sampai jadi Dalam PBO, forward engineering adalah proses transformasi diagram UML yang dirancang dalam perancangan perangkat lunak ke source code dalam fase implementasi
Forward Engineering 8 Forward engineering the process of transforming a model into code through a mapping to an implementation language Steps Identify the rules of mapping to a specific language Constrain use of UML to match language semantics (e.g. inheritance) Use tagged values to identify language Use tools when possible
Forward Engineering 9 successor Client { Java} EventHandler { Java} currenteventid : Integer source : Strings handlerequest() : void GuiEventHandler { Java} public abstract class EventHandler { private EventHandler successor; private Integer currenteventid; private String source; } EventHandler() {} public void handlerequest() {}
Reverse Engineering 10
Reverse Engineering 11 Sebaliknya dalam PBO dikenal juga istilah reverse engineering, reverse engineering adalah proses transformasi balik source code menjadi diagram UML
Reverse Engineering 12 successor Client { Java} EventHandler { Java} currenteventid : Integer source : Strings handlerequest() : void GuiEventHandler { Java} public abstract class EventHandler { private EventHandler successor; private Integer currenteventid; private String source; } EventHandler() {} public void handlerequest() {}
Reverse Engineering 13 Terus kenapa kita perlu reverse engineering kalau sudah ada forward engineering? Bukannya fase pengembangan perangkat lunak itu maju yah?
Reverse Engineering 14 Please look deeply about this an unexpected case : You finished one course project using Java Your program runs OK But, by accident, you delete the java file How to hand in your project?
Reverse Engineering 15 Solution? Reverse engineering
Reverse Engineering 16 Forward Engineering Reverse Engineering Requirements Design Source Code Behavior
Reverse Engineering 17 Reverse engineering the process of transforming code into a model through mapping from a specific implementation language. Steps Identify the rules of mapping from a specific language Use a tool; point the tool to the code Query the model to obtain desired information for the model
Re-engineering 18
Re-engineering 19 Re-engineering dalam dunia industri dapat diartikan adalah teknik hasil gabungan dari reverse engineering dan forward engineering untuk membangun produk yang lebih baik lagi berdasarkan produk sebelumnya Dalam industri perangkat lunak re-engineering digunakan untuk proses evolusi perangkat lunak
Re-engineering 20 Apakah itu evolusi perangkat lunak?
Re-engineering 21 Abstraction System Reverse Engineering Abstraction Forward Engineering Re-Implementation Old system New System
Re-engineering 22 Dalam Re-engineering kita sebagai developer dapat mengembangkan sistem yang lama menjadi baru dengan cara yang lebih efisien Kita tidak perlu menulis kode program dari awal lagi untuk bikin sistem yang relatif sama Kita bongkar sistem yang lama, dipecah kode programnya, dikembalikan menjadi diagram UML kembali, kita kembangkan fiturnya serta kita evaluasi hasil dari sistem yang lama, kemudian kita bangun lagi sistem yang baru berdasarkan informasi perancangan yang baru, yang merupakan hasil pengembangan dari sistem yang lama
Re-engineering 23 Software Evolution Changing a software product after delivery to adapt such system to the ever-changing user requirements and operating environment the system operates in or address a problem or activity of a real world
Re-engineering 24 Software Evolution Goals Adapts the application to the ever-changing user and operating environment Adds new features Corrects mistakes and misunderstandings Responds to both developer and user learning Program usually grows during evolution Both software architecture and software team knowledge make evolution possible
Re-engineering 25 Why we need Re-engineering Recovery of lost information providing proper system documentation Assisting with maintenance identification of side effects and anomalies Migration to another hw/sw platform Facilitating software reuse
Re-engineering 26 Benefit of Re-engineering Maintenance cost savings Quality improvements Competitive advantages Software reuse facilitation
27 Terimakasih v^^