Tuesday, August 18, 2009

trend software engeneering



untuk mendapatkan pengertian tentang software, sangat penting untuk memeriksa karakteristik dari software yang membuatnya berbeda dari hal lain yang di buat oleh umat manusia. ketika sebuah hardware di buat, proses kreatif manusia(analisa, desain, konstruksi dan testing) sepenuhnya di terjemahkan ke dalam sebuah bentuk fisik. jka kita membangun sebuah komputer baru, rencana, desain dan hasilnya melibatkan bentuk fisik. software merupakan sebuah logika daripada sebuah bentuk fisik semata. oleh karena ituoleh karena itu software mempunyai karakteristik yang lebih daripada sebuah hardware.
Pemrograman berorientasi objek kini sudah sangat popular dalam dunia rekayasa perangkat lunak. Dengan menggunakan 3 konsep utama, Encapsulate(Enkapsulasi), Inheritance(Penurunan), dan Polymorphic. Ketiga konsep ini menjadi landasan kuat pada pemograman beroriantasi objek yang dapat menigkatkan readability (mudah dibaca dan dipelajari), reusability (mudah dikegunakan kembali), dan dekomposisi permasalahan (pemodulan). Object menjadi kunci utama keberhasilan OOP karena mengurangi tingkat kompleksitas dalam pemrograman dan memungkinkan maintenance yang relatif lebih mudah terhadap perangkat lunak itu sendiri. Namun, masalah muncul jika di dalam object-object atau kelas-kelas yang berbeda terdapat suatu aspek tertentu yang unik. Untuk mengubah suatu aspek dari perangkat lunak yang dibangun, maka beberapa object dan definisi kelas harus dimodifikasi. Hal ini dapat menjadi suatu masalah yang cukup mengganggu, terutama dalam menangani perangkat lunak yang kompleks dan berskala besar. Kemudian dikenal istilah Tangling, yang artnya dalam suatu objek terdapat aspek lain dari objek itu sendiri, sebagai contoh pada objek bisnis terdapat penanganan loging. Adapula scattering yang artinya, beberapa aspek yang sama muncul pada setiap layer/modul. Dan kedua hal ini cenderung sering muncul secara bersamaan.
Kemudian muncullah Aspect-Oriented Programming, dimana metode ini menyusun masalah-masalah kedalam satuan unit yang disebut aspek. Secara garis besar AOP merupakan metode pemograman yang menghadirkan konsep untuk memotong silang (crosscut) permasalahan tangling dan scattering. Tangling dalam artian bawa terdapat hal-hal lain didalam suatu Object yang sebenarnya tidak berhubungan langsung, namun hanya merupakan technical concerns semata. Sedangkan scattering lebih kepada pengkodean yang muncul pada banyak tempat, sebagai contoh kode program untuk akses user password yang bisa terjadi pada beberapa layer. Kedua hal diatas, telah menyebabkan source code menjadi tidak bersih dan tidak independent. Untuk itulah dibutuhkan madul yang dapat melakukan crosscutting concern terhadap permasalahan diatas, inilah yang dinamakan Aspect. Sebagai contoh, security dapat dikatakan sebuah aspect, tanpa merusak design asli dari system. Maka dalam hal ini Aspek dapat dikatakan sebagai suatu modul yang meng-enkasulapsi perilaku yang mempengaruhi kelas-kelas (dan object-object) tertentu. Dengan AOP, tiap aspek dapat dijabarkan sebagai unit-unit yang terpisah dan kemudian disatukan oleh Aspect Weaver(sebagai kompilasi). Bila kita bandingkan dengan Object-Oriented Programming (OOP), security dijadikan sebagai sebuah class, dan tidak dapat digunakan crosscutting concern, AOP sendiri merupakan penyempurna dari metode OOP tersebut.

2 comments:

Anonymous said...

hello... hapi blogging... have a nice day! just visiting here....

fashion and style said...

wah...mantapp deh infonya..