Pemodelan Berorientasi Objek

advertisement
1
Pemodelan Berorientasi
Objek
Reverse Engineering &
Forward Engineering
Adam Hendra Brata
Materi Pertemuan 8

Reverse Engineering & Forward Engineering

Forward Engineering

Reverse Engineering

Re-engineering
2
3
Forward Engineering
Forward Engineering

Ingatkah kalian dengan ini ?
4
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
5
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

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
7
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
8
Forward Engineering
successor
EventHandler
{ Java}
Client
{ 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() {}
}
9
10
Reverse Engineering
Reverse Engineering

Sebaliknya dalam PBO dikenal juga istilah
reverse engineering, reverse engineering
adalah proses “transformasi balik” source
code menjadi diagram UML
11
Reverse Engineering
successor
EventHandler
{ Java}
Client
{ 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() {}
}
12
Reverse Engineering

Terus kenapa kita perlu reverse engineering
kalau sudah ada forward engineering ?

Bukannya fase pengembangan perangkat
lunak itu maju yah ?
13
Reverse 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 ?
14
Reverse Engineering

Solution ?

Reverse engineering
15
Reverse Engineering
Forward Engineering
Reverse Engineering
Requirements
Design
Source Code
Behavior
16
Reverse 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
17
18
Re-engineering
Re-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
19
Re-engineering

Apakah itu evolusi perangkat lunak ?
20
Re-engineering
21
Abstraction System
Reverse Engineering
Abstraction
Old system
Forward Engineering
Re-Implementation
New System
Re-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
22
Re-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
23
Re-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
24
Re-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
25
Re-engineering
Benefit of Re-engineering

Maintenance cost savings

Quality improvements

Competitive advantages

Software reuse facilitation
26
27

Terimakasih v^^
Download