Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1...

27
Pemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

Transcript of Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1...

Page 1: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

Pemodelan Berorientasi

Objek

Adam Hendra Brata

1

Reverse Engineering &

Forward Engineering

Page 2: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

Materi Pertemuan 8

Reverse Engineering & Forward Engineering

Forward Engineering

Reverse Engineering

Re-engineering

2

Page 3: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

Forward Engineering

3

Page 4: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

Ingatkah kalian dengan ini ?

4Forward Engineering

Page 5: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

Dalam SDLC waterfall proses pengembangan

perangkat lunak secara sederhana dapat

dilihat bahwa proses pengembangannya

bersifat “maju”

Dari analisis kebutuhan “maju” sampai ke

pemeliharaan sistem

5Forward Engineering

Page 6: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

Karena PBO merupakan komponen dalam

pengembangan perangkat lunak, maka

forward engineering juga pasti terjadi

Analisis Kebutuhan → Perancangan →

Implementasi

6Forward Engineering

Requirements

Design

Source Code

Behavior

Page 7: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

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

7Forward Engineering

Page 8: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

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

8Forward Engineering

Page 9: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

9Forward Engineering

GuiEventHandler{ Java}

successor

EventHandler{ Java}

currentEventId : Integer

source : Strings

handleRequest() : void

Client{ Java}

public abstract class EventHandler

{

private EventHandler successor;

private Integer currentEventId;

private String source;

EventHandler() {}

public void handleRequest() {}

}

Page 10: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

Reverse Engineering

10

Page 11: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

Sebaliknya dalam PBO dikenal juga istilah

reverse engineering, reverse engineering

adalah proses “transformasi balik” source

code menjadi diagram UML

11Reverse Engineering

Page 12: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

12Reverse Engineering

GuiEventHandler{ Java}

successor

EventHandler{ Java}

currentEventId : Integer

source : Strings

handleRequest() : void

Client{ Java}

public abstract class EventHandler

{

private EventHandler successor;

private Integer currentEventId;

private String source;

EventHandler() {}

public void handleRequest() {}

}

Page 13: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

Terus kenapa kita perlu reverse engineering

kalau sudah ada forward engineering ?

Bukannya fase pengembangan perangkat

lunak itu maju yah ?

13Reverse Engineering

Page 14: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

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 ?

14Reverse Engineering

Page 15: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

Solution ?

Reverse engineering

15Reverse Engineering

Page 16: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

16Reverse Engineering

Forward Engineering Reverse Engineering

Requirements

Design

Source Code

Behavior

Page 17: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

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

17Reverse Engineering

Page 18: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

Re-engineering

18

Page 19: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

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

19Re-engineering

Page 20: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

Apakah itu evolusi perangkat lunak ?

20Re-engineering

Page 21: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

21Re-engineering

Abstraction System

Old system New System

Forward Engineering

Re-Implementation

Reverse Engineering

Abstraction

Page 22: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

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

22Re-engineering

Page 23: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

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

23Re-engineering

Page 24: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

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

24Re-engineering

Page 25: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

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

25Re-engineering

Page 26: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

Benefit of Re-engineering

Maintenance cost savings

Quality improvements

Competitive advantages

Software reuse facilitation

26Re-engineering

Page 27: Pemodelan Berorientasi Objek · PDF filePemodelan Berorientasi Objek Adam Hendra Brata 1 Reverse Engineering & Forward Engineering

Terimakasih v^^

27