Kamis, 22 Oktober 2009

Pengantar Object-Oriented

Metodologi Object-Oriented

Object-Oriented” (OO) mengandung arti mengorganisasikan perangkat lunak yang terdiri sekumpulan objek diskrit yang mempersatukan struktur data dan behavior. Secara umum ada empat askep sebagai karakteristik OO, yaitu : identity, classification, polymorphism and inheritance.

==Identity

Idendity mengandung arti data yang memiliki jumlah diskrit, membedakan entitas disebut object. Contoh : paragraph dalam dokumen, windows pada workstation

==Classification

Klasifikasi merupakan objek dengan kesamaan struktur data (attribute) dan behavior/prilaku (operation) dikelompokan menjadi sebuah calass. Paragrap dan window merupakan contoh dari class. Class adalah abstraksi yang menjelaskan propenrti penting untuk aplikasi.

==Polymorphism

Kebanyakrupaan (polymorphisme):

o pensubstitusian dinamis supertype oleh subtype

o pemanipulasian objek secara seragam dengan tipe yang berbeda-beda

contoh : operasi move memiliki prilaku yang berbeda pada class window dan bicycle class.

==Inheritance

Pewarisan (inherintance): pembentukan suatu hirarki atau jejaring akibat peng-umum-an atau pengkhususan (bergantung pada fokus perhatian).

Contoh penerapan inheritance : ScrollingWindow dan FixedWindows adalah subclass dari Window.

Object-Oriented Development

Pengembangan orientasi objek merupakan suatu cara baru tentang perangkat lunak yang berbasis abstakri yang terdapat pada dunia nyata. Prinsip abstraksi dan kemudian dilanjutkan penerapan dekomposisi merupakan ciri proses pengembangan perangkat lunak, yaitu :

  1. Abstraksi membantu dalam membuat pilihan yang tepat mengenai komponen-komponen pembentuk perangkat lunak
  2. Dekomposisi digunakan untuk memecah perangkat lunak menjadi komponen-komponen yang dapat dikombinasikan untuk menyelesaikan persoalan besar.

Abstraksi akan dibahas pada bagian berikutnya dalam diktat kuliah ini.

Langkah-langkah pengembangan perangkat lunak secara umum telah dibahas pada part one dalam diktat ini meliputi :

  1. Requiment analysis and definition
  2. System Design
  3. Program Design
  4. Write The Program
  5. Unit Testing
  6. Integration Testing
  7. System Testing
  8. System Delivery

Selanjutnya disebut Software Development Process.

Pengembangan perangkat lunak berorientasi objek memiliki kesamaan proses namun setiap tahapan memiliki pekerjaan pemodelan yang berbeda.

Banyak pada para ilmuwan, penulis buku/artikel mengusulkan bagaimana langkah-langka pengembangan perangkat lunak berorientasi objek dilaksanakan, berikut contoh-contoh metoda/metodologi yang ada :

Shlaer/Mellor

Coad/Yourdon

Object Modelling Techniques (Rumbaugh, et. al.)

Responsibility Driven Design (Wirfs-Brock, et. al.)

Objectory

OOAD Booch

Fusion (Coleman, et. al.)

Antara metoda/metodologi yang satu dengan yang lain memiliki kekhususan masing-masing dalam hal teknik dan notasi yang digunakan.

Kesamaan umum dari semua metode/metodologi berorientasi objek terletak pada

Cara pandang:

§ Static, menggambarkan keterkaitan lojik antar entitas pada sistem

§ Dynamic, menggambarkan hubungan yang terbentuk akibat dinamika sistem

Penggambaran umum:

§ Class diagram

§ Object diagram

· Snapshot views: menggambarkan peta hubungan antarobjek pada suatu saat tertentu

· Functional/Sequencing views: menggambarkan fungsi yang perlu diperankan oleh sistem

§ Subsystem view: menggambarkan pengabstraksian/pembagian sistem secara lojik

§ Implementation view berupa module/component: menggambarkan pemisahan sistem menjadi suatu konfigurasi fisik produk yang akan diluncurkan

Selanjutnya untuk menyeragamkan dalam hal notasi yang digunakan untuk melakukan pemodelan mereka (Rumbaugh, dkk) merumuskan suatu notasi/language yang dikenal dengan nama UML (Unified Modelling Language). UML akan dibahas pada bagian berikutnya.

Selasa, 13 Oktober 2009

Materi RPL Terapan

Review Materi RPL

.1. Rekayasa Perangkat Lunak

==Definisi
Rekayasa Perangkat Lunak adalah suatu disiplin rekayasa yang berkonsentrasi terhadap seluruh aspek produksi Perangkat Lunak atau mengadopsi pendekatan yang sistematis dan terorganisir terhadap pekerjaannya dan menggunakan tool yang sesuai serta teknik yang ditentukan berdasarkan masalah yang akan dipecahkan, kendala pengembangan dan sumber daya yang tersedia
Di bawah ini beberapa definisi dari rekayasa Perangkat Lunak:
1. Ian Sommervile
Berkaitan dengan teori, metode dan tools yang diperlukan dalam pengembangkan perangkat lunak untuk komputer.
2. Fritz Bauer
Penetapan dan penggunaan prisip-prinsip rekayasa yang tangguh/teruji dalam upaya memperoleh perangkat lunak secara ekonomis, handal dan bekerja efisien di mesin nyata.
3. Mynatt
Secara sederhana menyatakan sebagai pendekatan sistematis untuk menciptakan
dan pemilikan perangkat lunak
4. IEEE
Pendekatan sistematis untuk pengembangan, operasi, pemeliharaan dan
pemberhentian pemakaian perangkat lunak.
5. Roger S Pressman
a) pendekatan yang sistematis, berdisiPerangkat Lunakin dan dapat dikuantifikasi untuk dikuantifikasi untuk pengembangan, pengoperasian, dan pemeliharaan perangkat lunak, yaitu penerapan rekayasa terhadap perangkat lunak.
b) Studi terhadap pendekatan a).

== Elemen Kunci
Rekaysa perangkat lunak terdiri dari 3 elemen kunci, yaitu :
1. Metode,
Metode software engineering memberikan tehnik-tehnik bagaimana membentuk
software. Metode ini terdiri dari serangkaian tugas :
 Perencanaan & estimasi proyek
 Analisis kebutuhan sistem dan software
 Desain struktur data
 Arsitektur program dan prosedur algoritma
 Coding
 Testing dan pemeliharaan
2. Peralatan (tools),
Peralatan software engineering memberikan dukungan atau semiautomasi untuk
metode. Contohnya :
 CASE (Case Aided Software Engineering), yaitu suatu software yang
menggabungkan software, hardware, dan database software engineering untuk
menghasilkan suatu lingkungan software engineering.
 Database Software Engineering, adalah sebuah struktur data yang berisi informasi
penting tentang analisis, desain, kode dan testing.
 Analogi dengan CASE pada hardware adalah : CAD, CAM, CAE
3. Prosedur,
Terdiri dari :
 urut-urutan di mana metode tersebut diterapkan
 dokumen
 laporan-laporan
 formulir-formulir yang diperlukan
 mengontrol kualitas software
 mengkoordinasi perubahan yang terjadi pada software

==Aktivitas Pengembangan
Secara umum akivitas pengembangan perangkat lunak terdiri dari :
1. Requiment analysis and definition
2. System Design
3. Program Design
4. Write The Program
5. Unit Testing
6. Integration Testing
7. System Testing
8. System Delivery
Ke delapan aktivitas tersebut disebut Software Development Process.

Untuk menjalankan aktivitas secara ideal dibutuhkan suatu team yang terdiri dari :
1. Analyst
2. Designer
3. Programmer
4. Tester
5. Trainer

==Paradigma Perangkat Lunak
Paradigma merupakan suatu pendekatan yang digunakan untuk pengembangan
perangkat lunak, ada beberapa paradigma yang bisa digunakan yaitu; paradigma
terstruktur, paradigma objek oriented, paradigma formal dan paradigma lainnya
1. Konvensional
Paradigma terstruktur merupakan pendekatan yang menfokuskan pada proses
pembentukan prosedur atau algoritma sebagai pembentuk perangkat lunak, jadi
paradigma mengatur bagaimana Perangkat Lunak dibentuk.
Secara global tahapan pengembangan Perangkat Lunak menggunakan paradigma
terstuktur adalah sebagai berikut :
A. Analisis kebutuhan
B. Analisis domain masalah
C. Perancangan
D. Pemrogramman
E. Pengujian
Sesuai dengan definisi bahwa paradigma tidak melakukan pengelolaan bagaimana
tahapan tersebut dilaksanakan namun hanya sebata pada bagaimana Perangkat
Lunakitu dibentuk.

2. Berorientasi Objek
3. Metode Formal
4. CBSE
5. The 4th Generation Technique Paradigm

Rekayasa Perangkat Lunak Terapan

Rekayasa Perangkat Lunak Terapan merupakan mata kuliah lanjutan dari Rekayasa Perangkat Lunak (RPL) yang saya bina di Universitas Siliwangi Tasikmalaya Jawa Barat dengan deskripsi sebagai berikut :

Nama Mata Kuliah : Rekayasa Perangkat Lunak Terapan
Sks : 3 sks

Materi :

1. Review Materi RPL
RPL berisi tentang proses pengembangan perangkat lunak secara umum menggunakan pendekatan terstruktur.

2. Object-Oriented Approac
Membicarakan pendekatan orientasi objek mengenai definisi, siklus pengembangan, metodologi serta tools.

3. Object-Orientef Development
Membicarakan beberapa metodologi yang digunakan untuk pengembangan perangkat lunak diantaranya OMT (object Modelling Technique), OOA&D (Object-Oriented Analysis and Design), OOSE (Object Oriented Software Engineering)

4. UML (Unifed Modelling Language)
Membicarakan notasi standar untuk membantu melakukan pemodelan OO dalam dalam hal menggunakan UML

5. Rational Rose
Membicarakan CASE tools untuk melakukan penggambaran UML. untuk kegiatan ini dilaksanakan di lab.