Assalamualaikum Wr. Wb
Saya kembali lagi dengan membawa postingan baru. Kali ini saya akan membahas tentang Model Perancangan Perangkat Lunak.
No. 1
Ada beberapa model proses
perangkat lunak yang
biasa digunakan sesuai dengan kondisi-kondisi tertentu, di antaranya:
1. Linear sequential
Model (Model Sekuensial Linear)/Model Waterfall
Model ini adalah model
klasik yang mengusung pengembangan perangkat lunak yang sistematis,
berurutan/sekuensial dimulai pada tingkat dan kemajuan system pada seluruh
persyaratan dalam analisis, perancangan (desain), pengkodean, pengujian
(testing), hingga ke tahap pemeliharaan dalam membangun software (perangkat
lunak). Berikut ini gambaran dari Linear Sequential Model / waterfall model.
Gambar 1. The linear sequential model
Pada setiap tahapan
dianalogikan bak air yang mengalir dari tempat tinggi ke tempat yang lebih
rendah, artinya sebuah proses baru bias dilanjutkan setelah satu tahap
awal selesai dengan sempurna.
Penjelasan tentang setiap tahapan dapat diringkas sebagai berikut:
-Tahap analisis: pada tahap ini berlangsung proses
pengumpulan kebutuhan secara lengkap
untuk dianalisis dan didefinisikan
kebutuhan apa saja yang harus dipenuhi oleh program
yang akan dibuat, seperti
memahami domain permasalahan, tingkah laku, unjuk kerja
dan interface (antar
muka).
-Tahap desain: proses ini melibatkan empat atribut sebuah program yaitu struktur
data,
arsitektur, perangkat lunak, representasi interface, dan detail
(algoritma) prosedural.
-Tahap pengkodean: proses penterjemahan desain ke dalam bentuk bahasa mesin yang
dapat
dilakukan secara mekanis.
-Tahap pengujian: proses ini dikerjakan setelah kode
dirancang dan difokuskan pada
fungsi dan jumlah kesalahan untuk diperbaiki.
-Tahap pemeliharaan: meliputi penyesuaian atau perubahan yang berkembang seiring
dengan
adaptasi perangkat lunak dengan kondisi atau situasi sebenarnya setelah
disampaikan kepada konsumen atau pelanggan.
-Kelebihan metode ini antara lain mudah diaplikasikan karena urutan-urutan pengerjaan
sudah sering dipakai; selain
itu juga cocok untuk software berskala besar dan yang
bersifat umum; yang
paling penting, karena langkah-langkahnya sangat sekuensial,
pengerjaan
proyek
akan mudah dikontrol dan terjadwal dengan baik.
Namun, terdapat pula
beberapa kelemahan yang
menjadi kekurangan dari metode waterfall ini, seperti kurang fleksibel,
dikarenakan rincian prosesnya harus benar-benar jelas dan tidak boleh
diubah-ubah. Apabila dikerjakan dengan melampaui tahap yang seharusnya maka
proses desain yang sebelumnya itu akan berubah total dan memakan waktu yang banyak jika harus mengulang proses.
Model waterfal ini
sangat sesuai digunakan dalam
pengembangan sistem perangkat lunak dan hardware yang luas dan apabila
kebutuhan pengguna telah dimengerti dengan baik. Selain itu, juga apabila waktu
yang tersedia juga masih cukup
banyak.
2. Prototyping
Model
Metode ini menyajikan gambaran yang lengkap dari sistem, terdiri atas model
kertas, model kerja dan program. Pihak pengembang akan melakukan identifikasi
kebutuhan pemakai, menganalisa sistem dan melakukan studi kelayakan serta studi
terhadap kebutuhan pemakai, meliputi model interface, teknik prosedural dan
teknologi yang akan dimanfaatkan.
Gambar 2. Prototyping Model
Secara ringkas, tahapan-tahapan dalam model prototyping
adalah:
Tahap Pengumpulan kebutuhan: pada tahap ini, pelanggan dan pengembang saling bantu dalam mendefinisikan format seluruh perangkat lunak, menentukan keperluan dan garis besar sistem yang akan dirancang.
-Tahap Quick design: membangun rancangan global sebagai
contoh bagi user
Tahap Pembangunan Prototipe: proses perancangan sementara yang
fokusnya kepada
penyajian kepada pelanggan, termasuk pengujian dan
penyempurnaan.
-Tahap Evaluasi
Pelanggan: di mana
pelanggan melakukan pengujian terhadap prototipe
yang ada dan pengembang
memperhalus analisis kebutuhan pemakai.
-Tahap Pembuatan dan
Implementasi: tahap ini
termasuk proses desain (rancang),
pengkodean dan testing.
-Keunggulan model ini adalah sifatnya yang sangat interaktif sehingga
pengembang dan pengguna (pemakai) dapat terus berinteraksi selama pengerjaan
tahapan-tahapan tersebut. Peran aktif pemakai ini dapat
menghemat waktu dalam pengembangan sistem dan bila terdapat kesalahan atau ketidaksesuaian
keinginan, pemakai dapat segera memberitahukannya sehingga pengembang dapat secepatnya melakukan penyesuaian.
-Kelemahan model ini antara lain, akibat adanya quick design, kadang pemakai tidak menyadari bahwa
perangkat lunak yang ditunjukkan masih berupa blue print sehingga
tidak ada jaminan terhadap kualitas secara keseluruhan dan pemeliharaan jangka
panjangnya. Dari sisi pengembang, karena ingin menyegerakan selesainya proyek,
sering menggunakan bahasa pemrograman yang sederhana dalam membuat prototipe
tanpa memikirkan lebih lanjut program yang lebih kompleks untuk membangun sistem yang sebenarnya.
-Model Prototyping ini
sangat sesuai diterapkan untuk kondisi yang beresiko tinggi di mana masalah-masalah tidak
terstruktur dengan baik, terdapat fluktuasi kebutuhan pemakai yang berubah dari
waktu ke waktu atau yang tidak terduga, bila interaksi dengan pemakai menjadi
syarat mutlak dan waktu yang tersedia sangat terbatas sehingga butuh
penyelesaian yang segera. Model ini juga dapat berjalan dengan maksimal pada
situasi di mana sistem yang diharapkan adalah yang inovatif dan mutakhir
sementara tahap penggunaan
sistemnya relatif singkat.
3. RAD Model (Rapid
Aplication Development)
RAD adalah proses
pembangunan Perangkat Lunak yang menekankan pada siklus pengembangan yang
pendek dan singkat. Model ini mengawinkan model waterfall dan model component
based construction.
Gambar 3. Model RAD
Secara ringkas,
tahapan-tahapan RAD adalah sebagai berikut.
-Tahap Pemodelan
Bisnis: dibuat agar dapat
menjawab pertanyaan-pertanyaan berikut: informasi apa yang mengontrol proses
bisnis? Informasi apa yang didapat? Siapa yang mendapatkannya? Untuk siapa
informasi itu ditujukan? Siapa yang akan memprosesnya?
-Tahap Pemodelan Data: informasi-informasi yang dipadu dari
pemodelan bisnis dipilah-pilah ke menjadi sekumpulan objek data yang
masing-masing objek diidentifikasikan dan ditentukan hubungan antara
objek-objek tersebut.
-Tahap Pemodelan
Proses: aliran informasi
yang didapat dalam proses pemodelan data diolah sedemikian untuk dapat menopang
fungsi-fungsi bisnis. Prosesnya dikreasikan untuk menambah, memodifikasi,
menghapus dan atau mendapatkan kembali sebuah objek data.
-Tahap Pembuatan
Aplikasi: RAD dapat saja memakai kembali komponen program yang sudah ada
bila dimungkinkan, atau membuat komponen yang dapat digunakan lagi bila
diperlukan di masa mendatang. RAD juga diasumsikan menggunakan teknik generasi
keempat (4GT).
-Tahap Pengujian dan Pergantian: Proses RAD menekankan
pada pemakaian kembali yang memungkinkan berkurangnya keseluruhan waktu
pengujian, namun komponen harus diuji dan harus dilatih secara penuh dan
terintegrasi.
-Kelebihan model RAD: tahap-tahap RAD membuatnya mampu untuk
menggunakan kembali komponen yang ada (reusable object), karena setiap komponen
software dikerjakan secara terpisah dengan tim-tim tersendiri sehingga dapat digunakan juga untuk aplikasi lain yang
pada akhirnya akan menghemat waktu. Penggunaan tim yang terpisah untuk
mengerjakan pekerjaan yang berbeda membuat pekerjaan lebih cepat dalam proses
integrasi dan efisien terhadap waktu tanpa mengacaukan aplikasi.
-Kelemahan model RAD: Tidak begitu cocok untuk proyek dengan skala
besar karena dibutuhkan sumber daya manusia yang semakin banyak seiring dengan
semakin banyaknya komponen yang dikerjakan, selain itu, semakin besar proyek, semakin kompleks pula koordinasi yang
dibutuhkan. Dalam waktu yang singkat, rasanya sulit untuk pengembang dan
pemakai berkomitmen untuk melaksanakan berbagai kegiatan untuk melengkapi
sistem. Apalagi bila sistem ternyata tidak dapat dimodularisasi sementara
sistem mempunyai resiko teknik yang tinggi.
-RAD sangat tepat
diterapkan untuk sistem yang telah jelas dan lengkap kebutuhannya, di
mana terdapat komponen-komponen yang dapat dipakai kembali dalam proyek yang
berskala kecil dengan waktu pengembangan perangkat lunak yang singkat.
4. Evolutionary software process model, terbagi dua.
4. A. Incremental
Model
Model ini merupakan
hasil kombinasi elemen-elemen dari model waterfall yang diaplikasikan secara
berulang. Elemen-elemen tersebut dikerjakan hingga menghasilkan produk dengan
spesifikasi tertentu kemudian proses dimulai dari awal kembali hingga muncul
hasil yang spesifikasinya lebih lengkap dari sebelumnya dan tentunya memenuhi
kebutuhan pemakai.
Gambar 4.
Incremental Model
-Kelebihan model ini adalah mampu mengakomodasi
perubahan secara fleksibel, dengan waktu yang relatif singkat dan tidak dibutuhkan anggota/tim yang banyak untuk menjalankannya.
-Kekurangannya adalah tidak cocok untuk proyek berukuran
besar (lebih dari 200.000 baris
coding) dan sulit untuk memetakan kebutuhan pemakai ke dalam rencana
spesifikasi tiap-tiap hasil dari increament.
-Model ini cocok
dipakai untuk proyek
kecil dengan anggota tim yang sedikit dan ketersediaan waktu yang terbatas.
4.B. Spiral
Model/Spiral Boehm
Model ini mengadaptasi
dua model perangkat lunak yang ada
yaitu model prototyping dengan pengulangannya dan model waterfall dengan
pengendalian dan sistematikanya. Model ini dikenal dengan sebutan Spiral
Boehm. Pengembang dalam model ini memadupadankan beberapa model umum tersebut
untuk menghasilkan produk khusus atau untuk menjawab persoalan-persoalan
tertentu selama proses pengerjaan proyek.
Gambar 5. Model
Spiral Boehm
Tahap-tahap model ini dapat
dijelaskan secara ringkas sebagai berikut.
-Tahap Liason: pada tahap ini dibangun komunikasi yang baik dengan calon
pengguna/pemakai.
-Tahap Planning
(perencanaan): pada tahap
ini ditentukan sumber-sumber informasi, batas waktu dan informasi-informasi
yang dapat menjelaskan proyek.
-Tahap Analisis Resiko: mendefinisikan resiko, menentukan apa
saja yang menjadi resiko baik teknis maupun manajemen.
-Tahap Rekayasa (engineering): pembuatan prototipe.
-Tahap Konstruksi dan
Pelepasan (release): pada
tahap ini dilakukan pembangunan perangkat lunak yang dimaksud, diuji, diinstal
dan diberikan sokongan-sokongan
tambahan untuk keberhasilan proyek.
-Tahap Evaluasi: Pelanggan/pemakai/pengguna biasanya
memberikan masukan berdasarkan hasil yang didapat dari tahap engineering dan instalasi.
-Kelebihan model ini adalah sangat mempertimbangkan resiko
kemungkinan munculnya kesalahan sehingga sangat dapat diandalkan untuk
pengembangan perangkat lunak skala besar. Pendekatan model ini dilakukan
melalui tahapan-tahapan yang sangat baik dengan menggabungkan model waterfall
ditambah dengan pengulangan-pengulangan sehingga lebih realistis untuk
mencerminkan keadaan sebenarnya. Baik pengembang maupun pemakai dapat cepat
mengetahui letak kekurangan dan kesalahan dari sistem karena proses-prosesnya dapat diamati dengan baik.
-Kekurangan model ini adalah waktu yang dibutuhkan untuk
mengembangkan perangkat lunak cukup panjang demikian juga biaya yang besar.
Selain itu, sangat tergantung kepada tenaga ahli yang dapat memperkirakan
resiko. Terdapat pula kesulitan untuk mengontrol proses. Sampai saat ini,
karena masih relatif baru, belum ada bukti apakah metode ini cukup handal untuk diterapkan.
Model Boehm sangat
cocok diterapkan untuk pengembangan
sistem dan perangkat lunak skala besar di mana pengembang dan pemakai dapat
lebih mudah memahami kondisi pada
setiap tahapan dan bereaksi terhadap kemungkinan terjadinya kesalahan. Selain
itu, diharapkan juga waktu dan dana yang tersedia cukup memadai.
5. Component
Assembly Model (CAM/Model Perakitan
Komponen)
Model ini merupakan
gabungan dari berbagai sifat dan karakter dari model spiral Boehm dan sangat
erat keterikatannya dengan model RAD (Rapid Application Development) model
karena model CAM ini menggunakan peralatan-peralatan dan GUI (Graphic User
Interface) untuk membangun software. Dengan kata lain, pembuatan aplikasinya
dibuat dari paket perangkat lunak yang berisi serangkaian komponen yang telah
ada sebelumnya. Namun, waktu yang dibutuhkan dapat disesuaikan atau lebih
efektif ketimbang harus mengerjakan program dari awal.
Gambar 6. CAM
Tahapan-tahapan Model ini adalah:
Tahap Identifikasi calon-calon komponen (kelas objek); Tahap
melihat komponen-komponen dalam pustaka; Tahap mengekstrak komponen jika ada;
Tahap membangun komponen jika tidak ada; Tahap menyimpan komponen baru pada
pustaka; Tahap mengkonstruksi iterasi ke-n dari sistem.
-Kelebihan model ini adalah tinggal mencaplok atau
menggunakan program atau komponen yang sudah ada dan menyusunnya menjadi sebuah
program yang lebih kompleks dan berkembang sesuai dengan kebutuhan user/pengguna
sehingga dapat mengefisienkan penggunaan waktu dan tenaga. Selain itu,
model ini juga menyediakan
kemampuan untuk memvisualisasikan hasil rakitan dengan kesanggupan untuk
mengukur, menganalisa, merancang dan merancang ulang program.
-Kekurangan model ini adalah seringnya program atau
komponen-komponen terdahulu tidak kompatibel atau sejalan dengan model
perakitan komponen ini sehingga untuk perusahaan berskala kecil akan kesulitan
menemukan komponen yang sesuai
untuk dirakit.
-ini sangat
sesuai digunakan oleh
perusahaan besar yang sudah berpengalaman mengembangkan software. Mereka dapat memanfaatkan software-software yang
telah umum dikembangkan sebelumnya menjadi bentuk baru dari software yang ingin
dikomersilkan.
6. The
Concurrent Development Model
Model ini disebut juga
dengan concurrent engineering yang
dapat digambarkan secara skematik sebagai serial dari kegiatan teknis utama,
tugas-tugas, dan hubungan antar bagian-bagian yang saling terkait di mana aktifitas analisa seperti desain/rancangan atau
komunikasi pelanggan dapat diskemakan dengan cara yang sama.
Concurrent process
model cocok digunakan
untuk pengembangan aplikasi client/server yang terdiri atas satu set komponen
yang fungsional. Terdapat dua dimensi aktivitas yang digambarkan oleh model ini
sebagai berikut.
-Dimensi sistem: terdapat tiga proses di dalamnya yakni
perancangan, perakitan (assembly) dan penggunaan (use).
-Dimensi komponen: terdapat dua kegiatan utama yaitu
perancangan dan realisasi.
Concurrency
(pertemuan) dapat diperoleh dengan dua cara: 1) sistem dan komponen kegiatan
(aktifitas) terjadi secara simultan dan dapat diperagakan dengan memanfaatkan pendekatan yang berdasar pada status
sebelumnya; 2) aplikasi client/server yang bersifat unik/khas di mana dapat diterapkan
pada banyak komponen yang tiap-tiap komponen bisa dirancang dan direalisasikan
secara serentak.
7. Formal
Method Models
Pada model ini,
digunakan notasi matematika yang terperinci dan penuh ketelitian dalam
mengidentifikasi desain dan menguji sistem yang berbasis komputer. Metode ini
sering dipakai untuk spesifikasi yang detail, rancangan dan verifikasi pada
bagian-bagian sistem yang penting (bersifat kritikal) seperti pada sistem
avionic dan aerospace, serta pada sistem keamanan yang kritikal pada monitor
jantung, ATM (Anjungan Tunai Mandiri) dan pada perbankan.
Secara khusus, metode formal sangat cocok dijalankan pada sistem
yang kompleks.
8. Fourth Generation
Techniques/Model Teknik
Generasi ke-4/4GT
Gambar 8. Model Teknik Generasi ke-4
Istilah Fourth Generation Techniques (4GT) mencakup seperangkat peralatan
perangkat lunak yang berfungsi sebagai perangkat bantu yang memudahkan seorang
pengembang software mengaplikasi beberapa karakteristik software pada tingkat
yang tinggi, yang akan menghasilkan source code dan object code secara otomatis sesuai dengan
spesifikasi (persyaratan khusus) yang dibuat oleh sang pengembang perangkat
lunak.
Dewasa ini, 4GT tools
dipakai sebagai bahasa non prosedur untuk DataBase Query, Pembentukan laporan (Report Generation), Manipulasi data, Definisi dan
interaksi layar (screen), Pembentukan object dan source (Object and source generation ), Kemampuan grafik
yang tinggi, dan Kemampuan spreadsheet.
Tahapan-tahapan model
4GT dapat diringkas sebagai berikut.
-Tahap Pengumpulan
Kebutuhan: tahap ini dimulai
dengan mengumpulkan serangkaian
kebutuhan yang nantinya akan diterjemahkan ke dalam prototipe. Namun, apabila
pelanggan tidak yakin dengan apa yang diperlukan dan fakta-fakta tidak jelas
diketahui maka prototipe tidak dapat dikerjakan oleh peralatan 4GT.
-Tahap Implementasi
Menggunakan Bahasa Keempat: untuk
skala kecil tahap ini dapat langsung dilakukan ketika kebutuhan telah jelas,
dan untuk proyek besar tahapan ini dijalankan setelah dirancang prototipe
operasional. Implementasi yang menggunakan 4GT memudahkan pengembang software
untuk menjelaskan hasil yang diharapkan yang nantinya akan diterjemahkan ke
dalam bentuk kode sumber dan kode objek.
-Tahap Produksi: Tahap ini merupakan langkah terakhir
yakni mengubah implementasi 4GT ke dalam hasil akhir berupa produk.
-Kelebihan model ini adalah pengurangan waktu dan peningkatan produktivitas yang
besar.
-Kekurangan model ini adalah kemungkinan akan sulit memanfaatkan
alat bantu/peralatan/tools 4GT dibandingkan dengan menggunakan bahasa
pemrograman yang konvensional, selain itu terdapat juga masalah dalam hal kode
sumber yang tidak efisien. Di samping itu, pemeliharaan sistem software besar
yang dikembangkan oleh 4GT juga masih sedang dalam proses pengkajian.
-Model ini
diaplikasikan untuk mengembangkan
perangkat lunak yang memakai bentuk bahasa khusus atau notasi grafik yang
dieksekusi/diselesaikan dengan syarat atau ketentuan yang dipahami oleh
pemakai/pengguna/kustomer.
No. 2
Andaikan Saya terpilih menjadi seorang manajer
proyek pada sebuah perusahaan kecil yang memproduksi perangkat lunak di mana
tugas saya adalah membangun sebuah aplikasi yang sangat mirip dengan aplikasi
lain yang sudah dibangun sebelumnya, meskipun yang satu ini lebih besar dan
kompleks, sementara syarat-syarat sudah didokumentasikan dengan teliti oleh pemakai.
Maka, struktur yang akan saya pilih adalah struktur table karena
fleksibelitas rancangan struktur
table ini yang dapat menjelaskan dengan baik hubungan antar elemen/komponen
yang dijelaskan, hal tersebut memudahkan pengembang untuk menggunakannya.
Dan, model proses yang akan saya terapkan adalah RAD model (Rapid
Aplication Development),mengingat dalam tahapan RAD dapat digunakan
kembali dokumentasi dari pemakai yang sebelumnya telah ada. Dalam RAD ini
terdapat tahapan di mana pengembang harus mengetes atau menguji coba
program,karena program terdahulunya masih dapat dipakai, pengembang cukup
melakukan testing terhadap program-program dan komponen-komponen baru saja
sehingga dapat menghemat waktu. Oleh karena produksinya dilakukan oleh
perusahaan kecil dengan estimasi proyek berskala kecil dan tenaga manusianya
(dalam bentuk) tim dapat dipenuhi maka RAD sangat memungkinkan untuk diterapkan
demi efisiensi waktu dan kerja.
No. 3
Andaikan saya terpilih menjadi
seorang manajer proyek pada sebuah perusahaan besar yang memproduksi perangkat
lunak, di mana tugas saya adalah mengatur perkembangan versi generasi
selanjutnya dari perangkat lunak pengolah kata produk yang sudah dipakai sangat
luas, sementara itu, kondisinya adalah kompetisi dan batas waktu yang ketat
sudah dibangun dan ditetapkan.
Maka, struktur yang
akan saya pilih adalah struktur chart karena dapat menjelaskan hubungan antar elemen/komponen dengan sangat baik,
selain itu, interface yang menghubungkan komponen-komponen dapat dengan mudah
ditentukan seperti halnya dapat ditetapkannya wujud dan penempatan komponen
dalam tempat penyimpanan sekunder secara fisik.
Dan, model proses yang
akan saya terapkan adalah Component Assembly Model
(CAM/Model Perakitan Komponen) karena saya dapat menggunakan
kembali program-program dan peralatan-peralatan software yang sudah ada
sebelumnya untuk dikembangkan menjadi generasi berikutnya. Oleh karena ini
adalah perusahaan besar yang tentunya telah berpengalaman dengan software
serupa, maka tools dan program yang akan digunakan untuk CAM sudah kompatibel sehingga dapat mempersingkat waktu.
Sekian postingan mengenai model pengembangan sofware, semoga bermanfaat :D
Terimakasih
Wassalamualaikum Wr. Wb
tulisan bermanfaat sekali terimakasih
BalasHapushttp://blog.binadarma.ac.id/faton
tulisan bermanfaat sekali terimakasih
BalasHapusMy Blog
study kasus nomer 7 mana
BalasHapus