MODEL PENGEMBANGAN PERANGKAT LUNAK

PENGEMBANGAN  PERANGKAT  LUNAK
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 (Jaidan Jauhari .pdf). Berikut batu landasan yang menopang rekayasa perangkat lunak (Rogers S. Pressman, 2002:28):

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) (Modul RPL.pdf). Metode-metode rekayasa perangkat lunak,  memberikan teknik untuk membangun perangkat lunak. Berkaitan dengan serangkaian tugas yang luas yang menyangkut analisis kebutuhan, konstruksi program, desain, pengujian, dan pemeliharaan (Rogers S. Pressman:2002).
Untuk menyelesaikan masalah di dalam pengembangan perangkat lunak, tim perekayasa harus menggabungkan strategi pengembangan yang melingkupi lapisan proses, metode, dan alat bantu. Model proses rekayasa perangkat lunak dipilih berdasarkan sifat aplikasi dan proyeknya, metode dan alat-alat bantu yang akan dipakai, dan control serta penyampaian yang dibutuhkan.
Berikut Metode-Metode Pengembangan Perangkat Lunak (Model Proses Pengembangan Perangkat Lunak) yaitu metode sekuensial linier, prototype, RAD, Fourth Generation Techniques (4GT) dan spiral   (dalam Jaidan Jauhari.Pdf). Selain metode-metode tersebut Roger S. Pressman (2002:45), mengungkapkan dua metode lagi yaitu  metode Proses Perangkat Lunak Evolusioner (pertambahan, spiral, konkruen), dan metode formal. Berikut Metode-metode tersebut :
1.     Model Waterfall
Metode ini merupakan metode yang sering digunakan oleh penganalisa sistem pada umumnya. Inti dari metode waterfall adalah pengerjaan dari suatu sistem dilakukan secara berurutan atau secara linear. Jadi jika langkah satu belum dikerjakan maka tidak akan bisa melakukan pengerjaan langkah 2, 3 dan seterusnya.  Secara otomatis tahapan ke-3 akan bisa dilakukan jika tahap ke-1 dan ke-2 sudah dilakukan.

Secara garis besar metode waterfall mempunyai langkah-langkah sebagai berikut : Analisa, Design, Code dan Testing, Penerapan dan Pemeliharaan.
a.     Analisa
Langkah ini merupakan analisa terhadap kebutuhan sistem. Pengumpulan data dalam tahap ini bisa malakukan sebuah penelitian, wawancara atau study literatur. Seorang sistem analis akan menggali informasi sebanyak-banyaknya dari user sehingga akan tercipta sebuah sistem komputer yang bisa melakukan tugas-tugas yang diinginkan olehuser tersebut. Tahapan ini akan menghasilkan dokumen user requirment atau bisa dikatakan sebagai data yang berhubungan dengan keinginan user dalam pembuatan sistem. Dokumen ini lah yang akan menjadi acuan sistem analis untuk menterjemahkan ke dalam bahasa pemprogram.
b.     Design
Proses desain akan menerjemahkan syarat kebutuhan ke sebuah perancangan perangkat lunak yang dapat diperkirakan sebelum dibuat coding. Proses ini berfokus pada : struktur data, arsitektur perangkat lunak, representasi interface, dan detail (algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut software requirment. Dokumen inilah yang akan digunakan proggrammer untuk melakukan aktivitas pembuatan sistemnya.
c.     Coding & Testing
Coding merupan penerjemahan design dalam bahasa yang bisa dikenali oleh komputer. Dilakukan oleh programmer yang akan meterjemahkan transaksi yang diminta oleh user.Tahapan ini lah yang merupakan tahapan secara nyata dalam mengerjakan suatu sistem. Dalam artian penggunaan komputer akan dimaksimalkan dalam tahapan ini. Setelah pengkodean selesai maka akan dilakukan testing terhadap sistem yang telah dibuat tadi. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap sistem tersebut dan kemudian bisa diperbaiki.
d.     Penerapan
Tahapan ini bisa dikatakan final dalam pembuatan sebuah sistem. Setelah melakukan analisa, design dan pengkodean maka sistem yang sudah jadi akan digunakan oleh user.
e.     Pemeliharaan
Perangkat lunak yang sudah disampaikan kepada pelanggan pasti akan mengalami perubahan. Perubahan tersebut bisa karena mengalami kesalahan karena perangkat lunak harus menyesuaikan dengan lingkungan (periperal atau sistem operasi baru) baru, atau karena pelanggan membutuhkan perkembangan fungsional.
·      Kelebihan Metode Waterfall
1.     Kualitas dari sistem yang dihasilkan akan baik. Ini dikarenakan oleh pelaksanaannya secara bertahap. Sehingga tidak terfokus pada tahapan tertentu.
2.     Document pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya. Jadi  setiap fase atau tahapan akan mempunyai dokumen tertentu.
·      Kelemahan Metode waterfall
1.     Diperlukan majemen yang baik, karena proses pengembangan tidak dapat dilakukan secara berulang sebelum terjadinya suatu produk.
2.     Kesalahan kecil akan menjadi masalah besar jika tidak diketahui sejak awal pengembangan.
3.     Pelanggan sulit menyatakan kebutuhan secara eksplisit sehingga tidak dapat mengakomodasi ketidakpastian pada saat awal pengembangan

2.     Model Prototype
                                           

Model ini dimulai dengan pengumpulan kebutuhan. Pendekatan prototyping model digunakan jika pemakai hanya mendefenisikan objektif umum dari perangkat lunak tanpa merinci kebutuhan input, pemrosesan dan outputnya, sementara pengembang tidak begitu yakin akan efisiensi algoritma, adaptasi sistem operasi, atau bentuk antarmuka manusia-mesin yang harus diambil. Cakupan aktivitas dari prototyping model terdiri dari :
a.     Mendefinisikan objektif secara keseluruhan dan mengidentifikasi kebutuhan yang sudah diketahui.
b.     Melakukan perancangan secara cepat sebagai dasar untuk membuat prototype.
c.     Menguji coba dan mengevaluasi prototype dan kemudian melakukan penambahan dan perbaikan       perbaikan terhadap prototype yang sudah dibuat.
secara ideal prototype berfungsi sebagai sebuah mekanisme untuk mengidentifikasi kebutuhan perangkat lunak. Bila prototype yang sedang bekerja dibangun, pengembang harus menggunakan fragmen-fragmen program yang ada atau mengaplikasikan alat-alat bantu (contoh: window manager, dsb) yang memungkinkan program yang bekerja agar dimunculkan secara cepat.
·      Kelebihan prototyping model :
1.     Adanya komunikasi yang baik antara pengembang dan pelanggan
2.     Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan
3.     Pelanggan berperan aktif dalam pengembangan sistem
4.     Lebih menghemat waktu dalam pengembangan sistem
5.     Penerapan menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya.

·      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.
3.     Model Transformasi Formal

Berbasiskan pada transformasi spesifikasi secara matematik melalui representasi yang berbeda untuk suatu program yang dapat dieksekusi, Trasformasi menyatakan spesifikasi program. Tranformasi formal menggunakan pendekatan ‘Cleanroom’ untuk pengembangan PL. Pendekatan ini berdasarkan pembuatan spesifikasi sistem formal secara matematik dan transformasi spesifikasi dengan menggunakan metode matematik atau dengan suatu program.Transformasi ini adalah correctness preserving, ini berarti bahwa kita dapat yakin programyang dikembangkan sesuai dengan spesifikasi. Pengembangan sistem formal menggunakansuatu model sistem matematika yang ditransformasikan ke implementasi. Pengembangan sistem formal merupakan pendekatan terhadap pengembangan perangkatlunak yang memiliki kesamaan dengan model air terjun, tetapi proses pengembangannyadidasarkan pada transformasi matematis dari spesifikasi sistem menjadi program yang dapat dijalankan.
a.     Pendekatan pengembangan Sistem Formal :
       Berbasiskan pada transformasi spesifikasi secara matematik melalui representasi yang berbeda untuk suatu program yang dapat dieksekusi,
       Trasformasi menyatakan spesifikasi program,
       Menggunakan pendekatan ‘Clean room’ untuk pengembangan PL.
b.     Penggunaan metode formal :
       Metode ini mempunyai keterbatasan dalam pemakaiannya,
       Keunggulannya adalah mengurangi jumlah kesalahan pada sistem sehingga penggunaan utamanya adalah pada sistem yang kritis,
       hal itu menjadi efektif dari segi biaya.
c.     Permasalahan dalam model pengembangan metode formal :
       Memerlukan keahlian khusus dan pelatihan untuk mengaplikasikannya,
       Sulit menentukan beberapa aspek dari suatu sistem seperti user interface.
d.     Pemakaian model pengembangan metode formal :
       Memerlukan tingkat kerahasian dan keamanan yang tinggi sebelum digunakan
·      Kelebihan Model Transformasi Formal :
1.     Mengurangi jumlah kesalahan pada sistem sehingga penggunaan utamanya adalah pada sistem yang kritis
2.     efektif dalam segi biaya
3.     Memiliki risiko lebih rendah terhadap keseluruhan pengembagan sistem.
·      Kelemahan model Transformasi Formal :
1.     Metode ini mempunyai keterbatasan dalam Pemakaiannya
2.     Memerlukan keahlian khusus dan pelatihan untuk Mengaplikasikannya
3.     Memerlukan keahlian khusus dan pelatihan untuk Mengaplikasikannya
4.     Memerlukan tingkat kerahasian dan keamanan yang tinggi sebelum digunakan.

4.     Model RAD (Rapid Application Development)
Merupakan model proses pengembangan perangkat lunak secara linear sequential yang menekankan pada siklus pengembangan yang sangat singkat/pendek. 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 RAD model menekankan cakupan :
a.     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 ?
b.     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.
c.     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.
d.     Pembuatan aplikasi (Application generation)
Selain menciftakan 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.
e.     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.

·      Kelebihan Model RAD (Rapid Application Development)
1.     Setiap fungsi mayor dapat dimodulkan dalam waktu tertentu kurang dari 3 bulan dandapat dibicarakan oleh tim RAD yang terpisah dan kemudian diintegrasikan sehinngawaktunya lebih efesien.
2.     RAD mengikuti tahapan pengembangan sistem sepeti umumnya, tetapi mempunyaikemampuan untuk menggunakan kembali komponen yang ada (reusable object) sehingga pengembang pengembang tidak perlu membuat dari awal lagi dan waktulebih singkat .
·      Kelemahan model  RAD :
1.     Untuk proyek dengan skala besar, RAD membutuhkan sumber daya manusia yang cukup untuk membentuk sejumlah tim RAD yang baik.
2.     RAD membutuhkan pengembang dan pemakai yang mempunyai komitmen dalam aktivitas rapid-fire untuk melaksanakan aktivitas melengkapi sistem dalam kerangka waktu yang singkat. Jika komitmen tersebut tidak ada, proyek RAD gagal.
Tidak semua aplikasi sesuai untuk RAD.bila system tidak dapat dimodulkan dengan teratur, pembangunan komponen penting pada RAD akan menjadi sangat problematic. RAD menjadi tidak sesuai jika risiko teknisnya tinggi.
5.     Model Pengembangan Incremental

Incremental model adalah model pengembangan sistem pada software engineering berdasarkan requirement software yang dipecah menjadi beberapa fungsi atau bagian sehingga model pengembangannya secara bertahap. Dilain pihak ada yang mengartikan model incremental sebagai perbaikan dari model waterfall dan sebagai standar pendekatan topdown.
a.       Tahapan dalam Incremental model:
1.    Requirement, Requirment adalah proses tahapan awal yang dilakukan pada incremental model adalah penentuan kebutuhan atau analisis kebutuhan.
2.    Specification, Specification adalah proses spesifikasi dimana menggunakan analisis kebutuhan sebagai acuannya.
3.    Architecture Design, adalah tahap selanjutnya, perancangan software yang terbuka agar dapat diterapkan sistem pembangunan per-bagian pada tahapan selanjutnya.
4.    Code setelah melakukan proses desain selanjutnya ada pengkodean.
5.    Test merupakan tahap pengujian dalam model ini.
Tahapan-tahapan tersebut dilakukan secara berurutan. Setiap bagian yang sudah selesai dilakukan testing, dikirim ke pemakai untuk langsung dapat digunakan. Pada incremental model, tiga tahapan awal harus diselesaikan terlebih dahulu sebelum sebelum tahap membangun tiap increment. Untuk mengantisipasi kondisi yang terjadi pada incremental model, diperkenalkan model More Risky Incremental Model. Model ini menerapkan sistem kerja yang paralel. Setelah daftar kebutuhan didapatkan dari pemakai, tim spesifikasi membuat spesifikasi untuk modul pertama. Setelah spesifikasi pertama selesai, tim desain menindak lanjuti. Tim spesifikasi sebelumnya juga langsung membuat spesifikasi untuk model kedua, dan seterusnya. Jadi, tidak harus menunggu modul pertama selesai hingga dikirim ke user.
·      Kelebihan Model Pengembangan Incremental :
1.     Merupakan model dengan manajemen yang sederhana.
2.     Pengguna tidak perlu menunggu sampai seluruh sistem dikirim untuk mengambil keuntungan dari sistem tersebut. Increment yang pertama sudah memenuhi persyaratan mereka yang paling kritis, sehingga perangkat lunak dapat segera digunakan.
3.     Resiko untuk kegagalan proyek secara keseluruhan lebih rendah, walaupun masalah masih dapat ditemukan pada beberapa increment. Karena layanan dengan prioritas tertinggi diserahkan pertama dan increment berikutnya diintegrasikan dengannya, sangatlah penting bahwa layanan sistem yang paling penting mengalami pengujian yang ketat. Ini berarti bahwa pengguna akan memiliki kemungkinan kecil untuk memenuhi kegagalan perangkat lunak pada increment sistem yang paling bawah.
4.     Nilai penggunaan dapat ditentukan pada setiap increment sehingga fungsionalitas sistem disediakan lebih awal.
5.     Memiliki risiko lebih rendah terhadap keseluruhan pengembagan sistem,
6.     Prioritas tertinggi pada pelayanan sistem adalah yang paling diuji.
·      Kelemahan Model Pengembangan Incremental :
1.     Kemungkinan tiap bagian tidak dapat diintegrasikan
2.     Dapat menjadi build and Fix Model, karena kemampuannya untuk selalu mendapat perubahan selama proses rekayasa berlangsung
3.     Harus Open Architecture
4.     Mungkin terjadi kesulitan untuk memetakan kebutuhan pengguna ke dalam rencana spesifikasi masing-masing hasil increment.
·      Waktu penggunaan :
Metode Incremental banyak digunakan untuk proyek dengan teknologi terbaru, proyek yang membutuhkan jadwal pengembangan yang panjang, manajemen sederhana serta resiko yang rendah.
6.     Model Spiral
Awalnya diusulkan oleh Boehm (BOE88), adalah model proses perangkat lunak yang evolusioner, merangkai sifat iterative dari prototype dengan cara control dan aspek sistematis dari model sekuensial linier. Model yang berpotensi untuk pengembangan versi pertambahan perangkat lunak secara cepat. Model spiral dibagi menjadi sejumlah aktifitas kerangka kerja atau wilayah tugas, antara lain :
·      Komunikasi pelanggan, tugas-tugas yang dibutuhkan untuk membangun komunikasi yang efektif diantara pengembang dan pelanggan.
·      Perencanaan, tugas-tugas yang dibutuhkan untuk mendefinisikan sumber-sumber daya, ketepatan waktu, dan proyek informasi lain yang berhubungan.
·      Analisis resiko, tugas-tugas yang dibutuhkan untuk menaksir resiko-resiko, baik manajemen maupun teknis.
·      Perekayasaan, tugas-tugas yang dibutuhkan untuk membangun satu atau lebih representasi dari aplikasi tersebut.
·      Konstruksi dan peluncuran, tugas-tugas yang dibutuhkan untuk mengkonstruksi, menguji, memasang (instal), dan memberikan pelayanan kepada pemakai (contohnya pelatihan dan dokumentasi)
·      Evaluasi pelanggan, tugas-tugas untuk memperoleh umpan balik dari pelanggan dengan didasarkan pada evaluasi representasi perangkat lunak, yang dibuat selama masa perekayasaan, dan dimplementasikan selama masa pemasangan.


Model spiral menjadi pendekatan yang realistis bagi perkembangan system dan perangkat lunak skala besar. Karena perangkat lunak terus bekerja  selama proses bergerak, pengembang dan pemakai memahami, dan bereaksi lebih baik terhadap resiko dari Setiap tingkat evolusi. Model spiral menggunakan prototype sebagai mekanisme pengurangan resiko. Model spiral membutuhkan keahlian penafsiran resiko yang masuk akal, dan sangat bertumpu pada keahlian ini untuk mencapai keberhasilan. Jika sebuah resiko tidak dapat ditemukan dan diatur, pasti akan terjadi masalah. Model ini membutuhkan waktu bertahun-tahun sampai kehandalannya bisa dipertimbangkan dengan kepastian absolute.
·      Kelebihan Model Spiral :
1.     Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer.
2.     Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar.
3.     Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadapresiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses .
4.     Menggunakan prototipe sebagai mekanisme pengurangan resiko dan pada setiapkeadaan di dalam evolusi produk.
5.     Tetap mengikuti langkah-langkah dalam siklus kehidupan klasik dan memasukkannyake dalam kerangka kerja iterative.
6.     Membutuhkan pertimbangan langsung terhadp resiko teknis sehingga mengurangiresiko sebelum menjadi permaslahan yang serius.
·      Kelemahan Model Spiral :
1.     Sulit untuk menyakinkan pelanggan bahwa pendekatan evolusioner ini bisa dikontrol.
2.     Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yangserius jika resiko mayor tidak ditemukan dan diatur.
3.     Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolut.

7.     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 : i) Bahasa non prosedural untuk query basis data; ii)  Report generation; iii) Data manipulation ; iv) Interaksi layar ; v) Kemampuan grafik level tinggi ; vi) Kemampuan spreadsheet . Tiap tool ini ada tapi hanya untuk sauatu aplikasi khusus.
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 bahasakhusus 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.
·      Kelebihan Model 4GT :
1.     Pelanggan dapat menggambarkan kebutuhannya dalam suatu rancangan sistem dan secara otomatis rancangan dapat diubah menjadi prototip operasional.
2.     Penggunaan perangkat 4GT tidak membutuhkan pengetahuan bahasa pemrograman, karena kode komputer (source code) dapat dibangkitkan oleh sistem 4GT.
3.     4GT mengurangi waktu pengembangan perangkat lunak dan meningkatkan produktivitas manusia yang mengambangkannya.
·      Kelemahan Model 4GT :
1.     Kode komputer yang dihasilkan tidak efisien dan perawatan sistem perangkat lunak besar yang dikembangkan menggunakan 4GT masih menjadi tanda tanya.
2.     Penggunaan 4GT masih terbatas pada aplikasi sistem informasi bisnis, khususnya analisis informasi dan pelaporan yang mengacu pada database besar.

Tidak ada komentar:

Posting Komentar