component oriented programming

Slides:



Advertisements
Presentasi serupa
KEBUTUHAN & SPESIFIKASI SOFTWARE
Advertisements

PENGANTAR VB.NET.
APLIKASI MANAJEMEN PERKANTORAN - D Minggu 1. Kata “ Visual ” merujuk kepada metode yang digunakan untuk membuat antar muka yang bersifat grafis Graphical.
Minggu 6 Prinsip & Konsep Desain
Oleh Ardian M. Prastiawan 9/12/2014 2:00:42 PM1. Materi 9/12/2014 2:00:42 PM2 1. Mangenal Delphi – 2 x Pertemuan 2. Mengenal IDE – 3 x Pertemuan 3. Object.
Pemrograman Berbasis Komponen
PENGENALAN ANALISA SISTEM BERORIENTASI OBYEK
Pemrograman Lanjut Ratnokustiawan.wordpress.com.
Algoritma & Pemrograman 1
PEMROGRAMAN APLIKASI BISNIS I (VISUAL STUDIO 2010)
Interoperabilitas.
Pertemuan 2 Konsep Aplikasi Berbasis Objek, UML dan Rational Rose
BAB 1 KONSEP OOP.
Object Oriented Programming (OOP)
STRATEGI PENGUJIAN PERANGKAT LUNAK
Rekayasa Perangkat Lunak Proses Rekayasa Perangkat Lunak
Pemrograman Berorientasi Obyek1 Sejarah C – Martin Richard -> Bahasa Pemrograman BCPL 1970 – Ken Thomson (Bell Lab) -> Bahasa B yang membuat Unix.
Arsitektur Perangkat Lunak
Wahyu Herlambang ( ) Pendidikan Teknik Informatika dan Komputer Universitas Negeri Makassar 2012 Wahyu Herlambang ( ) Pendidikan Teknik.
Pemrograman Berorientasi Obyek (PBO)
COMPONENT DIAGRAM.
Orientasi Object Pertemuan 2.
IT210 - Pemrograman Visual Ramos Somya.  Framework.NET merupakan suatu komponen Windows yang terintegrasi dan dibuat agar dapat menjalankan berbagai.
Pengantar UML.
KONSEP DASAR PENDEKATAN OBJEK
Rekayasa Perangkat Lunak Konsep Orientasi Objek
Pemrograman Visual I Outline: Pengenalan bahasa C#
Rekayasa Perangkat Lunak Model Proses PL
Pemrograman Visual Oleh : Erni Fatmawati.
Pengantar Web Service Teguh S.
Pemrograman Visual I Outline: Profil Kontrak Perkuliahan
ARSITEKTUR APLIKASI WEB
Object oriented analyst and design
Arsitektur SisTer.
Pengantar Object Oriented Analysis and Design
Konsep delphi Pertemuan Ke-1 & 2.
PENGEMBANGAN PERANCANGAN SISTEM
PERANCANGAN SISTEM BERORIENTASI OBJEK DENGAN UML
Strategi Pengujian Perangkat Lunak
BAB 1 KONSEP OOP.
KEBUTUHAN & SPESIFIKASI SOFTWARE
Pendahuluan Analisis & Desain Berorientasi Obyek (ADBO)
11 Arsitektur Sistem Terdistribusi
PENGEMBANGAN SISTEM PENDUKUNG KEPUTUSAN
Java Fundamentals Eko Hari Rachmawanto.
Overview Component-Oriented Programming
Konsep Pemrograman berorientasi Objek
REKAYASA PERANGKAT LUNAK
KEBUTUHAN & SPESIFIKASI SOFTWARE
PIBJ (PEMROGRAMAN INTERNET BERBASIS JAVA)
REKAYASA PERANGKAT LUNAK
Bina Sarana Informatika
MODUL PRATIKUM PEMOGRAMAN BERORIENTASI OBJEK (OOP)
MEMBANGUN MODUL PROGRAM YANG EFEKTIF
Pengenalan Borland Delphi 7.0
PEMROGRAMAN BERORIENTASI OBYEK
ANALISA & DESAIN BERORIENTASI OBJEK
PEMROGRAMAN BERORIENTASI OBJEK
ANALISA KEBUTUHAN PERANGKAT LUNAK
Testing Dan Implementasi Sistem
PEMODELAN ANALISIS RPL – PERTEMUAN 5&6.
Object-Oriented Programming (OOP). TEXT BOOK Materi Pertama 1.OOP Concepts: Konsep dan Paradigma Object-Oriented.
Strategi Pengujian Perangkat Lunak
KEBUTUHAN & SPESIFIKASI SOFTWARE
Strategi Pengujian Perangkat Lunak
Metode Pengembangan Arsitektur
Pemrograman berorientasi objek
Konsep Aplikasi Berbasis Objek
Strategi Pengujian Perangkat Lunak
Strategi Pengujian Perangkat Lunak
Transcript presentasi:

component oriented programming Materi 1 - Silabus, Review OOP dan Pengantar COP

Literatur Building reliable component-based software system by Ivica Crnkovic, Magnus Larsson, Boston, Artech House, 2002 Head First Design Pattern by Eric Freeman dan Elisabeth Freeman, O’Reilly, 2004 Component Oriented Programming, by Andy Ju An Wang dan Kai Qian, Willey, 2005 Wang dan Kai Qian, Willey, 2005 Component-based development : principles and planning for business system by katharine whitehead, boston, Mass London, Addison wesley, 2002 Head First Enterprise Java Beans, O’Reilly Component Software, Beyond Object Oriented Programming, Clemens Szyperski, Addison-Wesley Professional; 2 edition, 2002 Design Patterns Java Companion by James W. Cooper, Addison-Wesley, 1998

Topik Komponen Perkembangan Paradigma Pemrograman Interface Contract (Kontrak) Pattern (Pola) Frameworks Hubungan antara konsep Kesimpulan

Topik Komponen Perkembangan Paradigma Pemrograman Interface Contract (Kontrak) Pattern (Pola) Frameworks Hubungan antara konsep Kesimpulan

Apa itu komponen? Kita dapat menemukan beberapa definisi dari Komponen dibeberapa literatur tetapi bagaimanapun kita setuju bahwa komponen adalah bagian dari software Definisi dapat dimulai dari bagaimana CBSE dipandang dari sudut pandang yang berbeda seperti : Different phases (design, implementation and run-time phases), Business aspects, Architectural issues.

Komponen: Szyperski Szyperski mendefinisikan secara tepat satu persatu dari karakteristiknya sebagai berikut : Komponen adalah bagian dari komposisi dengan cara kontrak perjanjian interface spesifik dan ketergantungan dari konteksnya. Komponen dapat dibangun sendiri dan intinya digabungkan dengan perangkat lain (third party).

Efek dari Definisi Szyperski Beberapa maksud dari definisi Szyperski menghasilkan : Untuk komponen yang akan dibangun sendiri, perbedaan yang jelas dari lingkungan (environment ) dan komponen yang lain sangat dibutuhkan. Komponen harus memiliki spesifikasi interface yang jelas. Implementasinya harus dienkapsulasi didalam komponen dan tidak langsung dapat dicapati dari lingkungannya (environment ).

Komponen : D'Souza dan Wills D'Souza dan Wills mendefinisikan komponen sebagai : Bagian dari software yang dapat digunakan ulang, dimana dia dibangun dengan bebas, dan dapat bergabung dengan komponen yang lain untuk menjadi bagian yang besar. Hal tersebut mungkin akan diadaptasi tetapi tidak untuk diubah. Komponen dapat menjadi, sebagai contoh menjalankan (compile) kode tanpa source codenya.

Component Oriented Programming (COP) Jadi dapat digambarkan bahwa komponen adalah : Pemrograman Berorientasi Komponen Komponen sebagai sudut pandang utama Program tersusun dari komponen-komponen yang saling terhubung dalam hubungan yang terdefinisi dengan baik, dapat digunakan ulang dan saling independen satu sama lain

Kenapa COP Penting ? Sistem Operasi Lines of Code Windows NT 4.0 11-12 Juta Windows 2000 29+ Juta Windows XP 40 Juta Windows Server 2003 50 Juta Windows 7 > 50 Juta Kompleksitas software selalu meningkat sejalan dengan penambahan fitur/fungsi sesuai kebutuhan yang terus meningkat juga

Black Box Grey Box White Box Kenapa COP Penting Black Box Grey Box White Box Ada perbedaan tingkatan reusable jika dilihat dari tingkat pembungkusannya Black box : hanya dapat dilihat luarnya saja, hanya diketahui interfacenya saja White box : isinya dapat dilihat semua Grey box : gabungan / perpaduan dari blackbox dan whitebox

Kenapa COP Penting? Banyak cilent yang memesan suatu system informasi / aplikasi / software untuk perusahaan mereka Client hanya terfokus pada fungsi suatu software Client tidak tahu dan tidak mau tahu bagaimana software tersebut dibuat / dikembangkan Tingkat ekspektasi yang tinggi dari client seringkali berbanding terbalik dengan alokasi waktu yg disediakan untuk mengembangkan software tersebut

Kenapa COP Penting ? Perkembangan software yang semakin kompleks, butuh teknik untuk mengatasi kompleksitas tersebut Menangani perubahan sesuai kebutuhan Penggunaan ulang untuk mengurangi waktu pengembangan

Komponen Itu Apa ? Self contained Self deployable Well-defined functionality Can be assembled through its interface Self contained : pembungkusan, abstraksi level tinggi

Komponen Itu Apa ?

Komponen Itu Apa ?

Komponen Itu Apa ?

Komponen Itu Apa ? Network GTalk Pidgin IM YM! XML MSN

Contoh Komponen JavaBeans dan EJB (Sun Microsystem) COM, DCOM, ActiveX dan .Net Component (Microsoft) Corba (OMG) XPCOM (Mozilla) VCL, CLX dan LCL (Borland) UNO (OpenOffice.org) Dan lainnya …

Topik Komponen Perkembangan Paradigma Pemrograman Interface Contract (Kontrak) Pattern (Pola) Frameworks Hubungan antara konsep Kesimpulan

Perkembangan Paradigma Pemrograman Structured Programming (SP) Pemecahan program menjadi fungsi-fungsi Object Oriented Programming (OOP) Object sebagai penyusun program Component Oriented Programming (COP) Program tersusun dari komponen

SP vs OOP vs COP Divide and Conquer - Memecah masalah besar menjadi masalah-masalah yang lebih kecil - Untuk menangani kompleksitas SP OOP COP YES

SP vs OOP vs COP Data + Function - Menggabungkan data dan fungsi SP NO YES

SP vs OOP vs COP Encapsulation Pembungkusan, isolasi Mengurangi coupling (ketergantungan) SP OOP COP NO YES

SP vs OOP vs COP Identity - Setiap software entitas punya identity yang unik SP OOP COP NO YES

SP vs OOP vs COP Interface Ketergantungan spesifikasi Membagi spesifikasi komponen menjadi interface Mencegah ketergantungan antar interface SP OOP COP NO YES

SP vs OOP vs COP Deployment - Unit abstrak dapat dideploy secara independen SP OOP COP NO YES

COP vs OOP

COP vs OOP

Objek dan Komponen Pfister dan Szyperski Melihat komponen sebagai bagaian dari objek, dimana objek bekerjasama dengan yang lain dan saling terkait. D'Souza dan Wills Menyatakan bahwa jika class dimana dibungkus bersama dengan interface yang telah didefinisikan dengan kebutuhan dan implement nya sehingga class ini akan menjadi komponen.

Topik Komponen Perkembangan Paradigma Pemrograman Interface Contract (Kontrak) Pattern (Pola) Frameworks Hubungan antara konsep Kesimpulan

Interface Sebuah interface dari komponen dapat didefinisikan sebagai spesifikasi dari inti permasalahan, bukan menawarkan implementasi dari setiap operasi tersebut. Pemisah tersebut membuatnya memungkin untuk : Mengganti bagian dari implementasi tanpa mengganti dari interface; Menambahkan sebuah interface baru (dan implementation) tanpa merubah implementation yang sudah ada,

Menggambarkan sebuah Interface Interface didefinisikan didalam standard component technologies menggunakan teknik seperti Interface Definition Language (IDL) sebagai berikut: Cukup menjelaskan functional properties saja. Tidak perlu menjelaskan extra-functional properties seperti accuracy, availability, latency, security.

Export dan Import Interface Kita dapat membedakan dua jenis interface. Komponen dapat export/import interface ke/dari environment dimana mungkin mengandung (include) komponen lainnya. Sebuah interface yang diexport menjelaskan service apa yang disediakan komponen untuk environment. Sebuah interface yang diimport menjelaskan service yang dibutuhkan komponen untuk environment.

Topik Komponen Interface Contract (Kontrak) Pattern (Pola) Frameworks Hubungan antara konsep Kesimpulan

Contract (Perjanjian, Kontrak) Lebih akuratnya spesifikasi dari behavior sebuah komponen dapat dicapai dimulai dengan contract. Sebuah contract terdiri atas: The Invariant, global constraints dimana komponen akan didirikan/ditegakkan/dimulai; The Pre-condition, constraints (pembatas) dimana membutuhkan untuk dipenuhi oleh cilent; The Post-condition, constraints (pembatas) dimana komponen mengijinkan untuk menentukan kembalian (return).

Bagaimana Contract menentukan interaksi komponen Sebuah contract menspesifikasikan interaksi antara komponen dalam hubungan sebagai berikut : Kumpulan dari bagian dalam komponen; Tugas dari setiap komponen meneruskan kewajiban yang berdasar perjanjian, seperti tipe dan casual obligation; The invariant yang akan dikelolah oleh komponen; Spesifikasi dari method dimana menjelaskan (instantiate) perjanjian tersebut.

Topik Komponen Perkembangan Paradigma Pemrograman Interface Contract (Kontrak) Pattern (Pola) Frameworks Hubungan antara konsep Kesimpulan

Pattern (Pola) Pattern mendefinisikan perulangan solusi untuk perulangan masalah menghasilkan solusi masalah tidak jelas, tidak hanya inti dasar atau strateginya. Solusi harus membuktikan untuk menyelesaikan masalah daripada menjadi teori atau spekulasi. Pattern menjelaskan hubungan antara struktur paling dalam dari sistem dan mekanismenya. Sebuah komponen sebagai entitas reusable, dapat menjadi solusi dari sebuah desain pattern.

Tiga kategori dari Pattern Pattern dapat diklasifikasikan dalam tiga kategori utama: Architectural Patterns, menangkap semua struktur dan organisasi dari sebuah sistem software. Design Patterns, menyaring struktur dan behavior dari sub sistem sama seperti sebuah komponen dalam sistem software, dan hubungan yang ada diantaranya. Idioms, adalah low-level pattern dimana bergantung pada paradigma yang dipilih dan bahasa pemrograman yang dipilih.

Topik Komponen Perkembangan Paradigma Pemrograman Interface Contract (Kontrak) Pattern (Pola) Frameworks Hubungan antara konsep Kesimpulan

Software Framework CBSE berarti kita akan membangun sebuah software dengan “menaruh bagian bersamaan”. Framework menyediakan konteks dimana bagian tersebut dapat digunakan. Sebuah framework mungkin akan dilihat sebagai: Sebuah desain reusable dari sistem, Sebuah kerangka (skeleton) dari aplikasi dimana dapat diubah oleh pengembang aplikasi.

Coordination Services (transactions, persistence..) Bagian dari Framework Saat Framework dalam penjelasan umum sebuah situasi yang khusus dan reusable dalam level model, bagian dari framework dijelaskan sebagai “circuit-board” dengan lubang-lubang kosong dimana komponen dapat dimasukkan untuk membuatnya bekerja. Component Framework Coordination Services (transactions, persistence..)

Komponen model Ada dua konsep komponen model dan komponen framework yang biasanya tercampur. Sebuah komponen model menjelaskan bagian dari standar dan aturan yang digunakan pengembang komponen dimana sebagai komponen framework mendukung infrastruktur dari komponen model. Component model

Topik Komponen Perkembangan Paradigma Pemrograman Interface Contract (Kontrak) Pattern (Pola) Frameworks Hubungan antara konsep Kesimpulan

Hubungan diantara konsep Interface that satisfies contracts Component-type Specific interface Component implementation Independent deployment Component model Component Framework Coordination Services (transactions, persistence..)

Framework dan Kontrak Framework dan komponen Dari definisi dari framework yang didefinisikan sebelumnya, sebuah framework dapat dilihat sebagai circuit-board (komponen framework) dimana menerapkan dengan mengisi ditempat yang kosong Framework dan kontrak Sebuah framework fokus pada semua properti dari komposisi sebuah komponen Kontrak memberikan spesifikasi untuk hubungan diantara konponen konkrit. Spesifikasi ini mungkin akan berbeda untuk komponen dalam suatu komposisi

Framework dan Pattern Dalam hal ini sangat penting untuk menyadari bahwa desain pattern dan framework adalah konsep yang berbeda dari sifat yang berbeda Desain Pattern bersifat logik, mempresentasikan pengetahuan dan pengalaman dalam software Framework bersifat fisik dan framework adalah software executable yang digunakan didalam desain lain atau dalam keadaaan run-time. Perbedaan besar antara desain pattern dan framework adalah sebagai berikut: Level abstraksi antara framework dan desain pattern; Desain pattern memiliki arsitektur elemen lebih kecil dari framework; Spesialisasi level dari framework dan desain pattern.

Topik Komponen Perkembangan Paradigma Pemrograman Interface Contract (Kontrak) Pattern (Pola) Frameworks Hubungan antara konsep Kesimpulan

Kesimpulan Spesifikasi komponen adalah inti dari komponen pengguna dimana fokus pada fitur dari komponen, fungsional dan non fungsional Tujuan utama dari framework adalah mendukung proses dari komposisi komponen Pengembang komponen harus mematuhi aturan dan format yang disepsifikasikan dari framework untuk mengembangkan dan menetapkan komponen, sampai komponen pengguna akan digunakan framework untuk menyusun sistem dari komponen yang lebih efisien dan akurat

Kesimpulan Pattern memberikan abstrak dan sudut pandang lain dari function, procedure, method dimana akan diimplementasikan didalam form dari sistem atau komponen Desainer komponen akan menggunakan pattern dalam proses desain hingga desain komponen lebih efisien