agi putra kharisma., s.t., m.t. pengembangan berorientasi...

20
Agi Putra Kharisma., S.T., M.T. Pengembangan Berorientasi Penggunaan Ulang

Upload: vunhu

Post on 09-Mar-2019

230 views

Category:

Documents


0 download

TRANSCRIPT

Agi Putra Kharisma., S.T., M.T.

Pengembangan Berorientasi Penggunaan Ulang

Agenda Teknik Abstraksi

Metamodeling

Metaprogramming

Teknik Komposisi Pendekatan Modularisasi dan Packaging

Aspect-Oriented Programming

Subject-Oriented Programming

Pendekatan Berbasis Desain Komposisi berbasis event.

Simulated reflection.

Pola komposisi (Composition Design Pattern) lainnya.

Metamodeling Metamodel = model of a

model

Metamodeling = Factorization + Intensionalization

Factorization: mengisolasi concern, atau mengisolasi variable part dari fixed part.

Intensionalization: mengganti extensions (set of elements) dengan intension (definition).

Metamodeling (2-Ilustrasi) Honda Supra X 125

Manual

125 cc

Premium

Merah

Honda Vario

Automatic

125 cc

Premium

Biru

Merk dan Tipe

Jenis transmisi

Kapasitas mesin

Jenis bahan bakar

Warna

Dunia Nyata Model Metamodel

Metamodeling (3-Ilustrasi)

Nama Kelas

Atribut

Operasi

Dunia Nyata Model Metamodel

+name

Use Case

+name

Actor

+name

System

1

*

+participate

*

*

+super

0..1

+include*

*

*

+extend

0..*

Client

Add Order

PetStore

Buy

Metaprogramming Membuat program atau aplikasi dengan cara menulis

program yang dapat menghasilkan program.

Metaprogram adalah suatu program yang memperlakukan program lain sebagai data, sehingga program tersebut dapat membaca, membangkitkan/membuat (generate), menganalisis, atau mengubah program lain, atau bahkan mengubah dirinya sendiri.

Contoh: Pembangkit kode (code generator), pembangkit aplikasi (application generator)

Teknik Komposisi Komponen dikatakan composable apabila mereka dapat

berkomunikasi (to communicate) atau berinteroperasi (to interoperate).

Komunikasi dan interoparabilitas dapat diperoleh apabila artifak/komponen yang terlibat menggunakan “bahasa” yang sama. Jika artifak tersebut berada pada level analisis, maka notasi

yang digunakan harus sama.

Jika artifak tersebut berupa kode sumber konkret atau executables, maka bahasa pemrograman yang digunakan harus sama atau bila tidak, maka protokol antarmuka (interface protocol) harus sama.

Pendekatan Modularisasi dan Packaging Aspect-Oriented Programming (paling populer)

Subject-Oriented Programming (paling mature)

Aspect-Oriented Programming Aspect-oriented programming membutuhkan:

Bahasa pemrograman general-purpose.

Bahasa aspect untuk menulis aspects.

Aspect weaver, yaitu preprosesor yang berfungsi melakukan “weaves” atau “injects” suatu aspect ke dalam suatu komponen perangat lunak.

Contoh: AspectJ (Java)

Aspect-Oriented Programming (2)

Subject-Oriented Programming Termasuk paradigma OOP

Atribut dan operasi pada suatu objek tidak dapat dipandang sebagai sesuatu yang instrinsik, tetapi dipengaruhi oleh berbagai perspektif subyektif.

3rd dimensional method dispatch

Contoh: HyperJ (Java)

Pendekatan Berbasis Desain Komposisi berbasis event.

Simulated reflection.

Pola desain komposisi (Composition Design Pattern)

Komposisi Berbasis Event “Publish-and-subscribe” paradigm

Simulated Reflection Suatu komponen memanggil behavior dari komponen

lain dengan menspesifikasikan layanan (service) yang akan dijalankan, tetapi tanpa mengetahui nama dari method yang memanggil layanan (service) tersebut.

Contoh: Observer pattern

Composition Design Pattern Lainnya Adapter

Bridge

...

Dsb

(*) Intinya, semua design pattern dapat membantu komposisi.