agi putra kharisma., s.t., m.t. pengembangan berorientasi...
TRANSCRIPT
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
+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)
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)
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