MASIH DALAM TAHAP REKONSTRUKSI,MAKA DARI ITU ADA BEBERAPA KATEGORI YANG BELUM TERPENUHI!!

STILL UNDER RECONSTRUCTION STAGE---THEN FROM THAT THERE ARE SEVERAL CATEGORIES unfilled!!

Thursday, 28 April 2011

METODOLOGI PENGEMBANGAN PERANGKAT LUNAK

1. Latar Belakang
Pada pertengahan tahun 60 sampai 70-an banyak dikembangkan sistem-sistem
perangkat lunak yang besar. Sistem-sistem yang dikembangkan ini banyak yang dipandang
tidak efisien, kurang berhasil, bahkan banyak yang gagal. Kegagalan ini disebabkan karena
tidak tersedianya teknik pengembangan perangkat lunak yang baik. Pada awal tahun 70-an
mulai muncul metodologi-metodologi pengembangan perangkat lunak yang cukup baik.
Pengembangan perangkat lunak dapat diartikan sebagai proses membuat suatu perangkat
lunak baru untuk menggantikan perangkat lunak lama secara keseluruhan atau
memperbaiki perangkat lunak yang telah ada. Agar lebih cepat dan tepat dalam
mendeskripsikan solusi dan mengembangkan perangkat lunak, juga hasilnya mudah
dikembangkan dan dipelihara, maka pengembangan perangkat lunak memerlukan suatu
metodologi khusus. Metodologi pengembangan perangkat lunak adalah suatu proses
pengorganisasian kumpulan metode dan konvensi notasi yang telah didefinisikan untuk
mengembangkan perangkat lunak. Secara prinsip bertujuan untuk membantu menghasilkan
perangkat lunak yang berkualitas. Penggunaan suatu metodologi sesuai dengan persoalan
yang akan dipecahkan dan memenuhi kebutuhan pengguna akan menghasilkan suatu
produk perekayasaan yang berkualitas dan terpelihara serta dapat menghindari masalahmasalah
yang sering terjadi seperti estimasi penjadwalan dan biaya, perangkat lunak yang
tidak sesuai dengan keinginan pengguna dan sebagainya.
Metodologi pengembangan perangkat lunak (atau disebut juga model proses atau
paradigma rekayasa perangkat lunak) adalah suatu strategi pengembangan yang
memadukan proses, metode, dan perangkat (tools).
Menurut Pressman (1997) Komponen metodologi pengembangan perangkat lunak dapat
dibagi dalam tiga unit, yaitu :

  1. Metode, yaitu suatu cara atau teknik pendekatan yang sistematik yang dipergunakan
    untuk mengembangkan perangkat lunak. Metode ini mencakup : Perencanaan proyek dan perkiraan, analisis keperluan sistem dan perangkat lunak, perancangan struktur data, arsitektur program, prosedur algoritma, Coding, uji coba dan pemeliharaan.
  2. Alat bantu (Tools), yaitu alat-alat (manual atau otomatis) yang mendukung
    pengembangan perangkat lunak. Terdapat 2 alat Bantu yang dapat digunakan yaitu :
    alat Bantu manual dan alat Bantu otomatis.
  3. Prosedur, yang dipergunakan untuk mendefinisikan urut-urutan pekerjaan (daur) dari metode dan alat bantu tersebut.

Secara umum daur hidup pengembangan perangkat lunak meliputi tahapan-tahapan
atau aktivitas pengembangan yang terdiri dari tahap analisis, tahap perancangan, tahap
implementasi serta tahap pengujian dan perawatan perangkat lunak. Tahap analisis dan
perancangan merupakan tahapan awal yang penting dalam suatu paradigma
pemgembangan perangkat lunak, karena sangat mempengaruhi tahapan selanjutnya.
Sehingga jika terjadi kesalahan pada tahap analisis dan perancangan, maka akan terdapat
juga kesalahan pada tahap implementasi dan tahapan-tahapan selanjutnya. Tahap
implementasi perangkat lunak bertujuan untuk menerapkan spesifikasi kebutuhan
perangkat lunak ke dalam bahasa pemrograman tertentu. Tahap pengujian perangkat lunakdilakukan untuk menemukan kesalahan (bug) yang mungkin terdapat di dalam sebuah perangkat lunak. Sedangkan tahap perawatan perangkat lunak fokusnya adalah
pengubahan. Ada tiga pengubahan yaitu : pembetulan, adaptasi (perbaikan terhadap
lingkungan) dan perluasan (penambahan karena permintaan pemakai).

2. Proses Pengembangan Perangkat Lunak
Proses pengembangan perangkat lunak adalah suatu proses dimana kebutuhan pemakai
diterjemahkan menjadi produk perangkat lunak. Proses ini mencakup aktivitas
penerjemahan kebutuhan pemakai menjadi kebutuhan perangkat lunak, transformasi
kebutuhan perangkat lunak menjadi desain, penerapan desain menjadi kode program, uji
coba kode program, dan instalasi serta pemeriksaan kebenaran perangkat lunak untuk
operasional (IEEE. 1990). Berdasarkan pengertian tersebut, secara umum dapat dikatakan
bahwa proses pengembangan perangkat lunak mengikuti tahap-tahap :

  1. Menentukan APA yang harus dikerjakan oleh perangkat lunak dalam satu rentang
    waktu tertentu.
  2. Mendefinisikan BAGAIMANA perangkat lunak dibuat, mencakup arsitektur
    perangkat lunaknya, antar muka internal, algoritma, dan sebagainya.
  3. Penerapan (penulisan program) dan pengujian unit-unit program.
  4. Integrasi dan pengujian modul-modul program.
  5. Validasi perangkat lunak secara keseluruhan (pengujian sistem).

3. Siklus Pengembangan Perangkat Lunak
Siklus pengembangan perangkat lunak atau sering disebut juga dengan siklus hidup
perangkat lunak adalah (IEEE,1987) :

  • Periode waktu yang diawali dengan keputusan untuk mengembangkan produk perangkat lunak dan berakhir setelah perangkat lunak diserahkan. Umumnya siklus pengembangan ini terdiri dari tahap analisis kebutuhan, perancangan, penerapan, pengujian, dan instalasi serta pemeriksaan.
  • Periode waktu yang diawali dengan keputusan untuk mengembangkan produk perangkat lunak dan berakhir saat produk tidak dapat ditingkatkan lebih jauh lagi oleh pengembang.

4. Metode Pengembangan Perangkat Lunak
4.1. Linear Sequential

image

Linear sequential (atau disebut juga “classic life cycle” atau “waterfall method”) adalah
metode pengembangan perangkat lunak dengan pendekatan sekuensial dengan cakupan
aktivitas :

  • Rekayasa sistem dan Analisis (Sistem Engineering)
    Karena perangkat lunak adalah bagian dari sistem yang lebih besar, pekerjaan dimulai dari pembentukan kebutuhan-kebutuhan untuk seluruh elemen sistem dan kemudian memilah mana yang untuk pengembangan perangkat lunak. Hal ini penting, ketika perangkat lunak harus berkomunikasi dengan hardware, orang dan basis data
  • Analisis kebutuhan perangkat lunak (Analysis)
    Pengumpulan kebutuhan dengan fokus pada perangkat lunak, yang meliputi :
    Domain informasi, fungsi yang dibutuhkan, unjuk kerja/performansi dan antarmuka.
    Hasilnya harus didokumentasi dan direview ke pelanggan
  • Perancangan (Design)
    Ada 4 atribut untuk program yaitu : Struktur Data, Arsitektur perangkat lunak, Prosedur detil dan Karakteristik Antarmuka. Proses desain mengubah kebutuhan-kebutuhan menjadi bentuk karakteristik yang dimengerti perangkat lunak sebelum dimulai penulisan program.
  • Pembuatan kode (Coding)
    Penterjemahan perancangan ke bentuk yang dapat dimengerti oleh mesin, dengan
    menggunakan bahasa pemrograman
  • Pengujian (Testing)
    Setelah kode program selesai testing dapat dilakukan. Testing memfokuskan pada logika internal dari perangkat lunak, fungsi eksternal dan mencari segala kemungkinan kesalahan dan memriksa apakah sesuai dengan hasil yang diinginkan.
  • Pemeliharaan (Maintenance)
    Merupakan bagian paling akhir dari siklus pengembangan dan dilakukan setelah
    perangkat lunak dipergunakan.

Kelemahan metode linear sequential:

  1. Proyek yang sebenarnya jarang mengikuti alur sekuensial seperti diusulkan, sehingga perubahan yang terjadi dapat menyebabkan hasil yang sudah didapat tim harus diubah kembali/iterasi sering menyebabkan masalah baru.
  2. Linear sequential metode mengharuskan semua kebutuhan pemakai sudah dinyatakan secara eksplisit di awal proses, tetapi kadang-kadang ini tidak dapat terlaksana karena kesulitan yang dialami pemakai saat akan mengungkapkan semua kebutuhannya tersebut.
  3. Pemakai harus bersabar karena versi dari program tidak akan didapat sampai akhir
    rentang waktu proyek.
  4. Adanya waktu menganggur bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya.

4.2. Prototyping

image

Pendekatan prototyping metode digunakan jika pemakai hanya mendefenisikan
objektif umum dari perangkat lunak tanpa merinci kebutuhan input, pemrosesan dan
outputnya, sementara pengembang tidak begitu yakin akan efesiensi algoritma, adaptasi
sistem operasi, atau bentuk antarmuka manusia-mesin yang harus diambil. Cakupan
aktivitas dari prototyping model terdiri dari :

  1. Mendefinisikan objektif secara keseluruhan dan mengidentifikasi kebutuhan yang sudah diketahui.
  2. Melakukan perancangan secara cepat sebagai dasar untuk membuat prototype.
  3. Menguji coba dan mengevaluasi prototype dan kemudian melakukan penambahan dan perbaikan-perbaikan terhadap prototype yang sudah dibuat.

Kelemahan prototyping model :

  1. Pelanggan yang melihat working version dari model yang dimintanya tidak menyadari, bahwa mungkin saja prototype dibuat terburu-buru dan rancangan tidak tersusun dengan baik
  2. Pengembang kadang-kadang membuat implementasi sembarang, karena ingin working version bekerja dengan cepat

4.3 RAD (Rapid Application Development)

image

Gambar 2.3 RAD (Rapid Application Development)

Merupakan metode proses pengembangan perangkat lunak secara linear sequential
yang menekankan pada siklus pengembangan yang sangat singkat. Jika kebutuhan
dipahami dengan baik, proses RAD memungkinkan tim pengembangan menciptakan
“sistem fungsional yang utuh” dalam periode waktu yang sangat pendek (kira-kira 60-90 hari).
Pendekatan metode RAD menekankan cakupan :

  1. Pemodelan bisnis (Bussiness Modelling)
    Aliran informasi diantara fungsi-fungsi bisnis dimodelkan dengan suatu cara untuk
    menjawab pertanyaan-pertanyaan berikut : Informasi apa yang mengendalikan proses bisnis ? Kemana informasi itu pergi? Siapa yang memprosesnya ?
  2. Pemodelan data (Data Modelling)
    Aliran informasi yang didefinisikan sebagai bagian dari fase pemodelan bisnis disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik/atribut dari masing-masing objek diidentifikasi dan hubungan antara objek-objek tersebut didefinisikan.
  3. Pemodelan proses (Process Modelling)
    Aliran informasi yang didefinisikan dalam fase pemodelan data ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk menambah, memodifikasi, menghapus atau mendapatkan kembali sebuah objek data.
  4. Pembuatan aplikasi (Application generation)
    Selain menciptakan perangkat lunak dengan menggunakan bahasa pemrograman
    generasi ketiga yang konvensional, RAD lebih banyak memproses kerja untuk memakai lagi komponen program yang telah ada atau menciftakan komponen yang bias dipakai lagi. Pada semua kasus, alat-alat Bantu otomatis dipakai untuk memfasilitasi kontruksi perangkat lunak.
  5. Pengujian dan pergantian (Testing and turnover)
    Karena proses RAD menekankan pada pemakaian kembali, banyak komponen yang telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tapi komponen baru harus diuji.

Kelemahan RAD model :

  1. Untuk proyek dengan skala besar, RAD membutuhkan sumber daya manusia yang cukup untuk membentuk sejumlah tim RAD.
  2. RAD membutuhkan pengembang dan pemakai yang mempunyai komitmen untuk
    melaksanakan aktivitas melengkapi sistem dalam kerangka waktu yang singkat.
  3. Akan menimbulkan masalah jika sistem tidak dapat dibuat secara modular.
  4. RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang tinggi.

4.4. Spiral
Merupakan metode proses perangkat lunak yang memadukan wujud pengulangan dari
metode prototyping dengan aspek pengendalian dan sistematika dari linear sequential
metode, dengan penambahan elemen baru yaitu analisis resiko. metode ini memiliki 4
aktivitas penting, yaitu :

  1. Perencanaan (Planning), penentuan tujuan, alternatif dan batasan
  2. Analisis resiko (Risk Analysis), analisis alternatif dan identifikasi/pemecahan resiko
  3. Rekayasa (Engineering), pengembangan level berikutnya dari produk
  4. Evaluasi Pemakai (Customer Evaluation) penilaian terhadap hasil rekayasa

imageGambar 2.4 Spiral

Bentuk spiral memberikan gambaran bahwa semakin besar iterasinya, maka
menunjukkan makin lengkap versi dari perangkat lunak yang dibuat. Selama awal sirkuit,
objektif, alternatif dan batasan didefinisikan serta resiko diidentifikasikan dan dianalisa.
Jika resiko menunjukkan ada ketidakpastian terhadap kebutuhan, maka prototyping harus
dibuat pada kuadran rekayasa. Simulasi dan pemodelan lain dapat digunakan untuk
mendefinisikan masalah dan memperbaiki kebutuhan.
Pelanggan mengevaluasi hasil rekayasa (kuadran evaluasi pelanggan) dan membuat
usulan untuk perbaikan. Berdasarkan masukan dari pelanggan, fase berikutnya adalah
perencanaan dan analisis resiko. Setelah analisis resiko selalu diperiksa apakah proyek
diteruskan atau tidak, jika resiko terlalu besar, maka proyek dapat dihentikan.
Model spiral ini adalah pendekatan yang paling realistic untuk sistem sekala besar. Metode
ini menggunakan pendekatan evolusioner, sehingga pelanggan dan pengembang dapat
mengerti dan bereaksi terhadap suatu resiko yang mungkin terjadi

Kelemahan spiral model :

  1. Sulit untuk meyakinkan pemakai (saat situasi kontrak) bahwa penggunaan pendekatan ini akan dapat dikendalikan.
  2. Memerlukan tenaga ahli untuk memperkirakan resiko, dan harus mengandalkannya
    supaya sukses.
  3. Belum terbukti apakah metode ini cukup efisien karena usianya relatif baru.

4.5. Fourth Generation Techniques (4GT)
Istilah generasi ke empat, mengarah ke perangkat lunak yang umum yaitu tiap
pengembang perangkat lunak menentukan beberapa karakteristik perangkat lunak pada
level tinggi.

Saat ini pengembangan perangkat lunak yang mendukung 4GT, berisi tool-tool
berikut :

  • Bahasa non prosedural untuk query basis data
  • Report generation
  • Data manipulation
  • Interaksi layar
  • Kemampuan grafik level tinggi
  • Kemampuan spreadsheet
    Tiap tool ini ada tapi hanya untuk sauatu aplikasi khusus.

image

Menggunakan perangkat bantu (tools) yang akan membuat kode sumber secara
otomatis berdasarkan spesifikasi dari pengembang perangkat lunak. Hanya digunakan
untuk menggunakan perangkat lunak yang menggunakan bahasa khusus atau notasi grafik
yang diselesaikan dengan syarat yang dimengerti pemakai. Cakupan aktivitas 4GT :

  1. Pengumpulan kebutuhan, idealnya pelanggan akan menjelaskan kebutuhan yang akan ditranslasikan ke prototype operasional.
  2. Translasi kebutuhan menjadi prototype operasional, atau langsung melakukan
    implementasi secara langsung dengan menggunakan bahasa generasi keempat (4GL) jika aplikasi relatif kecil.
  3. Untuk aplikasi yang cukup besar, dibutuhkan strategi perancangan sistem walaupun 4GL akan digunakan.
  4. Pengujian.
  5. Membuat dokumentasi.
  6. Melaksanakan seluruh aktivitas untuk mengintegrasikan solusi-solusi yang
    membutuhkan paradigma rekayasa perangkat lunak lainnya.
    Salah satu keuntungan penggunaan model 4GT adalah pengurangan waktu dan
    peningkatan produktivitas secara besar, sementara kekurangannya terletak pada kesulitan penggunaan perangkat bantu (tools) dibandingkan dengan bahsa pemrograman, dan juga kode sumber yang dihasilkannya tidak efisien.

4.6 Berorientasi Objek
Paradigma pembangunan perangkat lunak berbasis objek adalah bagaimana
merepresentasikan dunia nyata ke dalam sebuah sistem sehingga pemecahan suatu masalah tidak dilihat dari cara menyelesaikan masalah tersebut tetapi dititikberatkan pada objek-objek apa sajakah yang dapat memecahkan masalah tersebut.Akan dibahasa pada Analisis dan Perancangan berorientasi Objek

1 comments:

Post a Comment

Related Posts Plugin for WordPress, Blogger...
Twitter Delicious Facebook Digg Stumbleupon Favorites More

 

KBw /20' Member Link

Followers

Total Visitor

Free Counter

Comment