Selasa, 08 Juni 2010

Pengujian Object Oriented

Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.

Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.

Konsep dasar dari Pemrograman Berorientasi Objek

Pemrograman orientasi-objek menekankan konsep berikut:

* kelas — kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.

* Objek - membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.

* Abstraksi - Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.

* Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.

* Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.

* Inheritas- Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada - objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa haru mengimplementasi ulang perilaku tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas.)

* Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.

Bahasa pemrograman

Bahasa pemrograman yang mendukung OOP antara lain:

1. Visual Foxpro
2. Java
3. C++
4. Pascal (bahasa pemrograman)
5. Visual Basic.NET
6. SIMULA
7. Smalltalk
8. Ruby
9. Python
10. PHP
11. C#
12. Delphi
13. Eiffel
14. Perl

Perangkat Lunak : Merupakan program-program komputer dan dokumentasi yang berkaitan, Produk perangkat lunak dibuat untuk pelanggan tertentu ataupun untuk pasar umum Produk perangkat lunak tersebut:

* Generik – dibuat untuk dijual ke suatu kumpulan pengguna yang berbeda.

* Bespoke (custom) – dibuat untuk suatu pengguna tunggal sesuai dengan spesifikasinya.

Rekayasa Perangkat Lunak :

adalah suatu disiplin rekayasa yang berkonsentrasi terhadap seluruh aspek produksi perangkat lunak. 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

Paradigma Berorientasi Objek

* Paradigma OO meliputi suatu pandangan yang lengkap mengenai Rekayasa Perangkat Lunak.
* Rekayasa Perangkat Lunak dengan metoda klasik:

1. Analisis
2. Desain
3. Pemrograman
4. Pengujian
5. Teknologi yang sesuai

Paradigma Rekayasa Perangkat Lunak OO


Model proses evolusioner yang di rangkai dengan suatu pendekatan yang mendorong pemasangan komponen.

Proses OO bergerak melewati spiral evolusioner yang berangkat dengan komunikasi pelanggan. Analisis risiko dan perencanaan membangun fondasi bagi rencana proyek OO. Rekayasa Perangkat Lunak OO menekankan penggunaan ulang sehingga di lihat di dala pustaka ( dari kelas OO yang ada ) sebelum di bangun.

Bagaimana jika suatu kelas tidak ditemukan pada pustaka?

Perekayasa perangkat lunak melakukan :

* Mengaplikasikan analisis berorientasi objek (OOA)

* Berorientasi objek design (OOD)

* Pemrograman berorientasi objek (OOP)

* Pengujian berorientasi objek (OOT)

Konsep – Konsep Berorientasi Objek

1. Objek mengenkapsulasi data
2. Operasi (aksi yang diaplikasikan untuk merubah atribut)
3. Objek lain (objek komposit dapat ditentukan)

Enkapsulasi berarti semua informasi dikemas di bawah satu nama dan dapat digunakan lagi sebagai satu spesifikasi atau komponen program

Definisi berorientasi objek menurut Coad dan Tourdon :

Berorentasi objek = objek + klasifikasi + pewarisan +komunikasi

Kelas & Objek

Kelas adalah konsep OO yang mengenkapsulasi data dan abtraksi prosedural yang diperlukan untuk menggambarkan isi serta tingkah laku berbagai entitas dunia nyata.

Kelas dapat didefinisikan juga sebagai suatu deskripsi tergeneralisir (template,pola,cetak biru).

Objek yang ada pada suatu kelas mewarisi atribut dan operasi nya yang dapat diperoleh untuk memanipulasi atribut tersebut.

Superkelas adalah sekumpulan kelas.

Subkelas adalah kejadian dari suatu kelas

Atribut

Entitas kehidupan nyata sering digambarkan dengan kata – kata yang mengindikasikan keadaan yang stabil . Sebagian besar objek fisik memiliki keadaan seperti potongan, berat, warna dan tipe material.Manusia memiliki keadaan, termasuk data kelahiran, orang tua, nama dan warna mata.

Teknologi Object Oriented

Merupakan paradigma baru dalam rekayasa software yang didasarkan obyek dan kelas

Teknik object oriented memandang software bagian per bagian dan menggambarkannya dalam satu obyek

Teknologi obyek menganalogikan sistem aplikasi seperti kehidupan nyata yang didominasi obyek

contoh :

1. Manusia adalah obyek yang memiliki atribut (nama, pekerjaan, rumah, dll.)

2. Manusia dapat berjalan, bicara, makan, minum, dll.

* Obyek dapat beraksi dan bereaksi

Prinsip Dasar dari Pemograman berorientasi obyek

* Abstraksi : memfokuskan pada karakteristikobyek

* Enkapsulasi : menyembunyikan banyak hal yang terdapat dalam obyek yang tidak perlu diketahui obyek lain

* Modularitas : membagi sistem yang rumit menjadi bagian-bagian yang lebih kecil

* Hirarki : berhubungan dengan abstraksi dan modularitas yaitu pembagian berdasarkan urutan dan pengelompokan tertentu

* Bagi Software Engineer, Teknik Pemodelan Object Oriented berpengaruh dalam bahasa pemrograman, metodologi rekayasa,manajemen proyek, hardware, dsb

* Analisis dan perancangan berorientasi obyek adalah suatu metode analisis yang memeriksa requirements (syarat-syarat/keperluan yang harus dipenuhi suatu sistem) dari sudut pandang kelas-kelas dan obyek-obyek dalam lingkup permasalahan

Konsep dasar Object Oriented Analysis and Design

* Obyek adalah benda secara fisik atau konseptual yang memiliki keadaan (state) dan perilaku (behavior)

* Kelas (Class) adalah definisi umum (pola, template atau cetak biru) untuk himpunan obyek sejenis
* Kotak hitam dan Interface : sebuah obyek digambarkan sebagai kotak hitam untuk mengakses obyek melalui interface.Kotak hitam berisi Kode (himpunan instruksi dengan bahasa yang dipahami komputer) dan Data
* Association dan Aggregation:

1. Association adalah hubungan antar obyek yang saling membutuhkan.
2. Aggregation adalah menggambarkan seluruh bagian dari obyek

Perbedaan antara Metode Struktural dan OOAD

Terletak pada bagaimana data dan fungsi disimpan

Metode Struktural : data dan fungsi disimpan terpisah. Biasanya semua data ditempatkan sebelum fungsi ditulis.

Metode OOAD : data dan fungsi yang berhubungan dalam suatu obyek disimpan bersama-sama dalam satu kesatuan.

Pemrograman berorientasi obyek

Adalah kelanjutan dari proses analisa dan desain berorientasi obyek yang kemudian diimplementasikan dengan bahasa pemrograman berorientasi obyek.
misal : C++, Java, Visual Basic, dsb

Kebutuhan dan Spesifikasi Perangkat Lunak

LINGKUP PEMBAHASAN

* Pengumpulan Kebutuhan Perangkat Lunak

- Mengumpulkan Data mengenai analisa sistem dan masalah nya

* Teknik Pemodelan Analisa Kebutuhan

- Dengan pendekatan berorientasi obyek menggunakan UML( Unified Modelling Language )

* Kebutuhan Fungsional & Non Fungsional
* Pembuatan Prototipe & teknik spesifikasi formal

- Perancangan sistem dengan pendekatan UML sbg alat bantu perangkat lunak

Sistem yang baik adalah yang selalu menyesuaikan dengan perubahan lingkungan yang terjadi disekitarnya atau sistem tersebut harus dinamis menuju keadaan yang lebih baik.

Tahapan Pengembangan Sistem Informas

1. Tahap Perencanaan :

menyangkut studi kebutuhan user, studi kelayakan baik secara teknis maupun teknologi serta penjadwalan pengembangan suatu proyek sistem informasi
2.

Tahap Analisis :

yaitu tahap dimana kita berusaha mengenali segenap permasalahan yang muncul pada pengguna, mengenali komponen-komponen sistem, obyek-obyek, hubungan antar obyek dan sebagainya.
3.

Tahap Perancangan :

yaitu tahap dimana kita mencoba mencari solusi permasalahan yang didapat dari tahap analisa.
4.

Tahap Implementasi :

tahap dimulainya pemilihan perangkat keras, penyusunan perangkat lunak aplikasi, melihat apakah sistem yang dibuat sudah sesuai dengan kebutuhan user atau belum.
5.

Tahap Pemeliharaan :

mulai melakukan pengoperasian sistem dan jika diperlukan dapat melakukan perbaikan-perbaikan kecil.

Unified Modeling Language (UML)

Suatu bahasa yang dapat membuat model untuk semua jenis aplikasi perangkat lunak yang dapat berjalan pada perangkat keras. UML menyediakan beberapa notasi dan arti fact standar sebagai alat komunikasi bagi pelaku dalam proses analisa dan desain

UML memiliki Diagram Grafis

* Use Case Diagram

* Class Diagram

* Behavior Diagram :

- state chart diagram

- activity diagram

- interaction diagram : * sequence diagram

* collaboration diagram

* Implementation Diagram

- Component Diagram

- Deployment Diagram

Cakupan UML

* UML menggabungkan konsep Booch, OMT, dan OOSE

* UML menekankan pada apa yang dapat dikerjakan dengan metode-metode tsb

* UML berfokus pada bahasa Pemodelan Standar, bahkan pada Proses Standar


http://id.wikipedia.org/wiki/Pemrograman_berorientasi_objek

http://www.google.co.id/#hl=id&q=iisi+pengujian+objek+oriented&aq=f&aqi=&aql=&oq=&gs_rfai=&fp=a86637e519b879be

Selasa, 01 Juni 2010

Macam-macam jenis pemeliharaan sistem

Pemeliharaan Korektif
Pemeliharaan korektif adalah bagian pemeliharaan sistem yang tidak begitu tinggi nilainya dan lebih membebani, karena pemeliharaan ini mengkoreksi kesalahan-kesahan yang ditemukan pada saat sistem berjalan. Umumnya pemeliharaan korektif ini mencakup kondisi penting atau bahaya yang memerlukan tindakan segera. Kemampuan untuk mendiagnosa atau memperbaiki kesalahan atau malfungsi dengan cepat sangatlah berharga bagi perusahaan.

Pemeliharaan Adaptif
Pemeliharaan adaptif dilakukan untuk menyesuaikan perubahan dalam lingkungan data atau pemrosesan dan memenuhi persyaratan pemakai baru. Lingkungan tempat sistem beroperasi adalah dinamik, dengan demikian, sistem harus terus merespon perubahan persyaratan pemakai. Misalnya, Undang-Undang Perpajakan yang baru mungkin memerlukan suatu perubahan dalam kalkulasi pembayaran bersih. Umumnya pemeliharaan adatif ini baik dan tidak dapat dihindari.

Pemeliharaan Perfektif
Pemeliharaan penyempurnaan mempertinggi cara kerja atau maintainabilitas (kemampuan untuk dipelihara). Tindakan ini juga memungkinkan sistem untuk memenuhi persyaratan pemakai yang sebelumnya tidak dikenal.
Ketika membuat perubahan substansial modul apapun, petugas pemeliharaan juga menggunakan kesempatan untuk mengupgrade kode, mengganti cabang-cabang yang kadaluwarsa, memperbaiki kecerobohan, dan mengembangkan dokumentasi.
Sebagai contoh, kegiatan pemeliharaan ini dapat berbentuk perekayasaan ulang atau restrukturisasi perangkat lunak, penulisan ulang dokumentasi, pengubahan format dan isi laporan, penentuan logika pemrosesan yang lebih efisien, dan pengembangan efisiensi pengoperasian perangkat.

Pemeliharaan Preventif
Pemeliharaan Preventif terdiri atas inspeksi periodik dan pemeriksaan sistem untuk mengungkap dan mengantisipasi permasalahan.
Karena personil pemeliharaan sistem bekerja dalam sistem ini, mereka seringkali menemukan cacat-cacat (bukan kesalahan yang sebenarnya) yang menandakan permasalahan potensial. Sementara tidak memerlukan tindakan segera, cacat ini bila tidak dikoreksi di tingkat awal, jelas sekali akan mempengaruhi baik fungsi sistem maupun kemampuan untuk memeliharanya dalam waktu dekat.

Macam-macam metode pelatihan implementasi sistem

White Box Testing
Pengujian white box (glass box) adalah pengujian yang didasarkan pada pengecekan terhadap detil perancangan, menggunakan struktur kontrol dari desain program secara procedural untuk membagi pengujian ke dalam beberapa kasus pengujian. Penentuan kasus uji disesuaikan dengan struktur system, pengetahuan mengenai program digunakan untuk mengidentifikasikan kasus uji tambahan. Tujuan penggunaan white box untuk menguji semua statement program.

Penggunaan metode pengujian white box dilakukan untuk :
{1} memberikan jaminan bahwa semua jalur independen suatu modul digunakan minimal satu kali,
(2) menggunakan semua keputusan logis untuk semua kondisi true atau false,
(3) mengeksekusi semua perulangan pada batasan nilai dan operasional pada setiap kondisi., dan
(4) menggunakan struktur data internal untuk menjamin validitas
jalur keputusan.

Black Box Testing
Pengujian black box merupakan pendekatan komplementer dari teknik white box, karena pengujian black box diharapkan mampu mengungkap kelas kesalahan yang lebih luas dibandingkan teknik white box. Pengujian black box berfokus pada pengujian persyaratan fungsional perangkat lunak, untuk mendapatkan serangkaian kondisi input yang sesuai dengan persyaratan fungsional suatu program.

Yang Bertanggung Jawab
Teknisi dan System Administrator adalah seseorang yang harus memelihara (maintain) sistem komputer yang berbeda pengoperasian dan penanganannya beserta sarana pendukungnya.
Supervisor / direct personal adalah jabatan yang sangat strategis dalam suatu organisasi. Ia memiliki peran ganda. Di satu sisi ia adalah pemimpin yang harus membimbing, memotivasi dan mengendalikan karyawan. Di sisi lain, ia adalah wakil manajemen yang harus mempertanggungjawabkan semua tugas yang diberikan pada bagiannya. Karena itulah, seorang supervisor dituntut bukan hanya menguasai keterampilan teknis, tetapi juga keterampilan hubungan antar manusia. Training ini akan memberikan pengetahuan dan pedoman para supervisor dalam melaksanakan tugasnya.
General Manager atau Manajer umum adalah manajer yang memiliki tanggung jawab seluruh bagian / fungsional pada suatu perusahaan atau organisasi. Manajer umum memimpin beberapa unit bidang fungsi pekerjaan yang mengepalai beberapa atau seluruh manajer fungsional. Pada perusahaan yang berskala kecil mungkin cukup diperlukan satu orang manajer umum, sedangkan pada perusahaan atau organisasi yang berkaliber besar biasanya memiliki beberapa orang manajer umum yang bertanggung-jawab pada area tugas yang berbeda-beda.

User training plan
User training plan adalah pelatihan seluruh tenaga kerja untuk memenuhi kebutuhanya dalam melakukan sesuatu yang akan dikerjakan meliputi :
• Kelas
• Tutorial

Modul Pelatihan
Modul pelatihan ini akan membantu dalam mempelajari cara menggunakan sebuah perangkat lunak perencanaan/pemodelan meliputi :
• Materi Pelatihan
• Bantuan Pelatihan Computer-based

Topik untuk pelatihan
• Penggunaan System
• Konsep Umum Komputer
• Konsep Sistem Informasi
• Konsep Pengorganisasian
• Manajemen Sistem
• Instalasi Sistem

Metode Pelatihan
Metode pelatihan adalah proses untuk melatih pengguna dalam penggunaan proses bisnis baru dan fitur serta fungsi sistem baru dengan tujuan pengembangan kompetensi untuk menjamin keberhasilan operasional sistem baru. alur atau tata cara untuk menjelaskan mengapa metode pelatihan harus dipilih dengan hati-hati agar sesuai dengan tujuan dari satu sesi dan sesuai dengan profil pelatihan. Metoda pelatihan ini meliputi beberapa bagian seperti :

~Resident expert adalah sebuah pelatihan yang membutuhkan tenaga ahli pada suatu bidang.

~Computer-aided instruction adalah suatu tehnik pelatihan yang menggunakan instruksi-instruksi terprogram untuk melakukan suatu pelatihan perancangan dan perekaan dengan dibantu oleh computer dengan sistem yang terkomputansi.

~Formal courses adalah pelatihan yang dilakukan dengan cara formal yang mencakup muatan proses pembelajaran yang bersifat teori dan diskusi yang dilaksanakan didalam sebuah pelatihan secara formal untuk beberapa orang sekaligus.

~Software help components adalah sebuah perangkat lunak yang membantu mengeksekusi instruksi dalam sebuah program kemudian membantu mengambil bentuk instruksi dalam sebuah komponen. Komponen terpadu dalam sistem yang dirancang untuk pelatihan dan troubleshooting sistem.

~Tutorials adalah layanan bantuan dalam sebuah pembelajaran untuk membantu kelancaran proses dalam sebuah pelatihan. berisi petunjuk dan latihan untuk pengajaran dan pengembangan kompetensi pengguna dalam penggunaan sistem. Petunjuk latihan dan tutorial ini dapat dilengkapi oleh basis data yang menggunakan data riil.

~Interactive training manuals adalah bentuk kombinasi antara pelatihan tutorials dan Computer-aided instruction.


~External sources, such as vendors adalah vendor penyedia jasa pelatihan kursus dan bentuk pelatihan lain.

Metodologi Umum Pelaksanaan Proyek Sistem Informasi
Pengembangan sebuah sistem informasi dalam sebuah perusahaan dilakukan dengan pendekatan manajemen proyek (project management). Lepas dari berbagai variasi proyek-proyek teknologi informasi yang ada – seperti pembuatan aplikasi, penerapan perangkat lunak, konstruksi infrastruktur jaringan, dan lain sebagainya – metodologi yang dipergunakan secara umum adalah sama. Setidak-tidaknya ada enam buah tahapan yang harus dilalui: perencanaan, analisa, desain, konstruksi, implementasi, dan pasca implementasi. Masing-masing konsultan atau para praktisi teknologi informasi biasanya memiliki variasinya masing-masing yang secara prinsip tidak lepas dari keenam langkah metodologi di atas.