Anda di halaman 1dari 29

REKAYASA PERANGKAT

LUNAK
DIAN NURDIANA, M.KOM
Proses PL
• Proses PL merupakan aktifitas yang saling terkait
(koheren) untuk menspesifikasikan, merancang,
implementasi dan pengujian sistem perangkat lunak
Fungsi Model Proses
• Fungsi utama model proses pengembangan perangkat
lunak :
• Menentukan tahap-tahap yang diperlukan untuk
pengembangan perangkat lunak.
• Menentukan urutan pelaksanaan dari tahap-tahap tersebut
dalam rangka pengembangan perangkat lunak.
• Menentukan kriteria transisi/perpindahan dari satu tahap ke
tahap berikutnya.
Model Proses yang baik
• Suatu model proses yang baik dan terstruktur akan (Boehm, 1988):
• menentukan urutan tahap dalam suatu proses
• menciptakan kriteria transisi untuk maju ke tahap selanjutnya

• Suatu proses model harus bisa menangani hal-hal sebagai berikut:


• Kualitas
• Requirement yang berubah-ubah
• Kompleksitas
PROSES PERANGKAT LUNAK
• Serangkaian kegiatan dan hasil yang berhubungan dengannya,
yang menuju pada dihasilkannya produk perangkat lunak.
• Kegiatan-kegiatan mendasar yang umum bagi semua proses
Perangkat Lunak :
1. Spesifikikasi Perangkat Lunak  Fungsionalitas perangkat lunak
dan batasan kemampuan operasinya harus didefinisikan.
2. Pengembangan (Perancangan dan Implementasi) Perangkat
Lunak  Perangkat lunak yang memenuhi spesifikasi harus di
produksi
3. Validasi Perangkat Lunak  Perangkat lunak harus divalidasi
untuk menjamin bahwa perangkat lunak bekerja sesuai dengan
apa yang diinginkan oleh pelanggan.
4. Evolusi Perangkat Lunak  Perangkat lunak harus berkembang
untuk memenuhi kebutuhan pelanggan.
System Development Proses
Perencanaan Metode, Teknik, atau Tools (alat
Sistem yang ada bantu )
Analisis

Pemicu Perancangan
Permasalahan
Implementasi
Kesempatan Pelaku
Instruksi
Pemeliharaan

Sistem Informasi Proses


Evolusi Pengembangan
Sistem
Prinsip Pengembangan Validasi
Keuntungan Sistem Informasi
1. Libatkan Pengguna Sistem 1. Peningkatan keuntungan perusahaan
Memecahkan masalah
2. Gunakan Pendekatan Pemecahan Masalah 2. Pengurangan biaya bisnis
meraih kesempatan
3. Biaya dan keuntungan sistem
3. Bentuklah Fase dan Aktivitas memenuhi instruksi
4. Peningkatan pangsa pasar
4. Dokumentasikan Sepanjang Pengembangan 5. Perbaikan relasi pelanggan
5. Bentuklah Estándar 6. Peningkatan efisiensi
6. Kelola Proses dan Proyek 7. Perbaikan pembuatan keputusan
8. Pemenuhan peraturan lebih baik
7. Membenarkan System Informasi sebagai Investasi Modal Sistem yang baru 9. Kesalahan lebih sedikit
8. Jangan Takut untuk Membatalkan atau Merevisi Lingkup 10.Perbaikan keamanan
9. Bagilah dan Takhlukkan 11.Kapasitas lebih besar
10. Desainlah Sistem untuk Pertumbuhan dan Perubahan
Tujuan Proses Perangkat Lunak
• Tujuan proses perangkat lunak:
1. Memperkenalkan model proses PL
2. Menggambarkan beberapa model proses dan kapan
digunakan
3. Menggambarkan outline model proses untuk rekayasa
kebutuhan, pengembangan PL, testing dan evolusi
4. Mengenalkan teknolodi CASE untuk mendukung aktifitas
proses PL
Model Proses Perangkat Lunak
•  Menurut Ian Sommerville:
• Model Pengembangan Waterfall
• Model Pengembangan Prototyping (Evolusioner)
• Model Pengembanagan formal
• Model Pengembangan perakitan komponen-komponen guna
ulang
Model Proses Perangkat Lunak
• Menurut Roger S.Pressman:
• Linier sequential model
• Prototyping model
• Rapid Aplication development (RAD) model
• Evolutionary software process model terdiri dari:
• Increment Model 
• Spiral model
• WINWIN Spiral Model
• Conccurent development model
• Component based development
• Formal method model
• 4th Generation technique paradigm
Alasan munculnya banyak model proses
• Selain Model proses diatas masih banyak proses model
lainnya, Model proses muncul dikarenakan :
• Kompleksitas masalah semakin besar 
• Melibatkan tim dalam pengembangan software
sehingga membutuhkan abstraksi.
• Memelihara pengembangan sehingga
membutuhkan standarisasi.
Rekayasa Perangkat Lunak
Linier sequential model
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).
Linear sequential Model (Model Sekuensial Linear)/Model
Waterfall

• 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.
Linear sequential Model (Model Sekuensial Linear)/Model
Waterfall

• 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.
Rekayasa Perangkat Lunak
Prototyping model
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.
• Model ini digunakan jika customer tidak menjelaskan detail kebutuhan input,
proses atau output, sehingga developer tidak dapat memastikan algoritma yang
akan dipakai, kesesuaian sistem operasi atau bentuk user interface. Prototyping
model dimulai dengan mendengarkan kebutuhan user. Engineer dan customer
bertemu dan menentukan semua tujuan software dan menentukan kebutuhan-
kebutuhan. Developer kemudian membangun prototype dan user menguji coba
prototype untuk memberikan feedback. Prototype dapat dijalankan sebagai
sistem yang pertama. User bisa mendapatkan pengertian dari sistem yang
sesungguhnya dan developer dapat membangun sistem dengan segera.
Prototyping model
• 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.
Prototyping model
• 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.
Rekayasa Perangkat Lunak
Rapid Aplication development (RAD) model
Rapid Aplication development (RAD) model

• RAD merupakan incremental software process yang menekankan


pada siklus development yang singkat. Model ini mengunakan
pembuatan berdasarkan komponen, menekankan penggunaan
kembali code dan code generation.
• Jika requirement telah diketahui dengan pasti dan scope project
mendesak, RAD proses memungkinkan team development untuk
sistem fungsional keseluruhan dalam periode waktu yang sangat
singkat (misalnya 60-90 hari).
• RAD model dapat digunakan untuk project yang dapat dipisah,
misalnya ada 1 project besar, dibagi 3, dikerjakan oleh team yang
berbeda-beda (dari analisis sampai testing) kemudian
diintegrasikan. Jika menggunkan RAD model, kualitas team harus
solid dan punya disiplin tinggi.
Rapid Aplication development (RAD) model

• Rapid application development (RAD) atau rapid


prototyping adalah model proses pembangunan perangkat lunak
 yang tergolong dalam teknik incremental (bertingkat).
• RAD menekankan pada siklus pembangunan pendek, singkat, dan
cepat. Waktu yang singkat adalah batasan yang penting untuk
model ini.
• Rapid application development menggunakan metode iteratif
(berulang) dalam mengembangkan sistem dimana working model
(model bekerja) sistem dikonstruksikan di awal tahap
pengembangan dengan tujuan menetapkan kebutuhan
(requirement) user dan selanjutnya disingkirkan.[1] Working model
digunakan kadang-kadang saja sebagai basis desain dan
implementasi sistem final.
Rapid Aplication development (RAD) model
• Model RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat yang
dicapai dengan menerapkan :
• Component based construction ( pemrograman berbasis komponen bukan
prosedural).
• Penekanan pada penggunaan ulang (reuse) komponen perangkat lunak yang telah
ada.
• Pembangkitan kode program otomatis/semi otomatis.
• Multiple team (banyak tim), tiap tim menyelesaikan satu tugas yang selevel tapi
tidak sama. Banyaknya tim tergantung dari area dan kompleksitasnya sistem yang
dibangun.
• Jika keutuhan yang diinginkan pada tahap analisis kebutuhan telah lengkap dan jelas,
maka waktu yang dibutuhkan untuk menyelesaikan secara lengkap perangkat lunak yang
dibuat adalah berkisar 60 sampai 90 hari. Model RAD hampir sama dengan model
waterfall, bedanya siklus pengembangan yang ditempuh model ini sangat pendek dengan
penerapan teknik yang cepat.
• Sistem dibagi-bagi menjadi beberapa modul dan dikerjakan beberapa tim dalam waktu
yang hampir bersamaan dalam waktu yang sudah ditentukan. Model ini melibatkan
banyak tim, dan setiap tim mengerjakan tugas yang selevel, namun berbeda. Sesuai
dengan pembagian modul sistem.
Rapid Aplication development (RAD) model
• 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.
Rapid Aplication development (RAD) model

• 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.
• Model 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.
Rekayasa Perangkat Lunak
Evolutionary software: Spiral model
Evolutionary software: Spiral
model
• 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.
Evolutionary software: Spiral
model
• 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.

Anda mungkin juga menyukai