Model - Model Proses
Perangkat Lunak
Model sekuensial linear disebut juga model waterfall
atau air terjun. Model ini peertama kali muncul pada tahun1970 yang
diperkenalkan oleh WinstonW.Royce. walaupun sudah dikenal dalam waktu yang lama
dan sering di anggap kuno tetapi model ini paling banyak dipakai dalam industri
perangkat lunak .
Model sekuensial linear berisi rangkaian proses yang
disajikan secara terpisah, yaitu analisis
kebutuhan,perancangan,pemgkodean,pemgujian, seta implementasi dan pemeliharaan.
Setelah setiap proses dilakukan, proses tersebut ditutup dan pengembangan
dilanjutkan pada proses berikutnya.
Untuk mengatasi kekurangna-kekurangan tersebut,
dibuatlah model sekuensial linear yang dimodifikasis. Keunggulan model ini
dibandingkan model sekuensial linear biasa adalah model ini memungkinkan
tahap-tahap kembali sehinnga jika ternyata
terjadi kesalahan atau kekurangan dalam menentukan kebutuhan di tahap
awal, bisa dilakukan perbaikan atau peambahan lagi.
1 Rekayasa dan pemodelan
sistem/informasi
Karena sistem merupakan bagian dari sebuah sistem yang lebih besar, kerja
dimulai dengan membangun syarat dari semua elemen sistem dan mengalokasikan
beberapa subset dari kebutuhan ke software tersebut. Pandangan sistem ini
penting ketika software harus berhubungan dengan elemen-elemen yang lain
seperti software, manusia, dan database. Rekayasa dan anasisis system
menyangkut pengumpulan kebutuhan pada tingkat sistem dengan sejumlah kecil
analisis serta disain tingkat puncak. Rekayasa informasi mancakup juga
pengumpulan kebutuhan pada tingkat bisnis strategis dan tingkat area bisnis.
2 Analisis kebutuhan Software
Proses pengumpulan kebutuhan diintensifkan dan difokuskan, khusunya pada
software. Untuk memahami sifat program yang dibangun, analis harus memahami
domain informasi, tingkah laku, unjuk kerja, dan interface yang diperlukan.
Kebutuhan baik untuk sistem maupun software didokumentasikan dan dilihat lagi
dengan pelanggan.
3 Desain
Desain software sebenarnya adalah proses multi langkah yang berfokus pada
empat atribut sebuah program yang berbeda struktur data, arsitektur software,
representasi interface, dan detail (algoritma) prosedural. Proses desain
menterjemahkan syarat/kebutuhan ke dalam sebuah representasi software yang
dapat diperkirakan demi kualitas sebelum dimulai pemunculan kode. Sebagaimana
persyaratan, desain didokumentasikan dan menjadi bagian dari konfigurasi
software.
4 Generasi Kode
Desain harus diterjemahkan kedalam bentuk mesin yang bisa dibaca. Langkah
pembuatan kode melakukan tugas ini. Jika desain dilakukan dengan cara yang
lengkap, pembuatan kode dapat diselesaikan secara mekanis.
5 Pengujian
Sekali program dibuat, pengujian program dimulai. Proses pengujian berfokus
pada logika internal software, memastikan bahwa semua pernyataan sudah diuji,
dan pada eksternal fungsional, yaitu mengarahkan pengujian untuk menemukan
kesalahan – kesalahan dan memastikan bahwa input yang dibatasi akan memberikan
hasil aktual yang sesuai dengan hasil yang dibutuhkan.
6 Pemeliharaan
Software akan mengalami perubahan setelah disampaikan kepada pelanggan
(perkecualian yang mungkin adalah software yangdilekatkan). Perubahan akan
terjadi karena kesalahan – kesalahan ditentukan, karena software harus
disesuaikan untuk mengakomodasi perubahan – perubahan di dalam lingkungan
eksternalnya (contohnya perubahan yang dibutuhkan sebagai akibat dari perangkat
peripheral atau sistem operasi yang baru), atau karena pelanggan membutuhkan
perkembangan fungsional atau unjuk kerja. Pemeliharaan software mengaplikasikan
lagi setiap fase program sebelumnya dan tidak membuat yang baru lagi.
KEKURANGAN MODEL SEKUENSIAL LINEAR
Masalah yang kadang
terjadi ketika model sekuensial linier diaplikasikan adalah :
1. Jarang sekali proyek nyata mengikuti aliran
sekuensial yang dianjurkan oleh model. Meskipun model linier bisa mengakomodasi
iterasi, model ini melakukannya dengan cara tidak langsung. Sebagai hasilnya,
perubahan – perubahan dapat menyebabkan keraguan pada saat tim proyek berjalan.
2. Kadang – kadang sulit bagi pelanggan untuk
menyatakan semua kebutuhannya secara eksplisit. Model linier sekuensial
memerlukan halini dan mengalami kesulitan untuk mengakomodasi
ketidakpastiannatural yang ada pada bagian awal beberapa proyek.
3. Pelanggan harus bersifat sabar. Sebuah
versi kerja dari program – program kerja itu tidak akan diperoleh sampai akhir
waktu proyek dilalui. Sebuah kesalahan besar, jika tidak terdeteksi sampai
program yang bekerja tersebut dikaji ulang, bisa menjadi petaka
4. Pengembang sering melakukan penundan yang
tidak perlu. Sifat alami dari siklus kehidupan klasik membawa kepada blocking
state di mana banyak anggota tim proyek harus menunggu tim yang lain
untuk melengkapi tugas yang saling memiliki ketergantungan. Blocking state
cenderung menjadi lebih lazim pada awal dan akhir sebuah proses sekuensial
linier
KELEBIHAN MODEL SEKUENSIL LINIER
1. software yang dikembangkan dengan metode
ini biasanya menghasilkan kualitas yang baik.
2. Document pengembangan sistem sangat
terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum
melangkah ke fase berikutnya.
Model Prototype
Prototype adalah sebuah Javascript Framework yang dibuat untuk lebih
memudahkan proses dalam membangun aplikasi berbasis web.
Paradigma dari metode prototyping adalah sistem informasi yang
menggambarkan hal-hal penting dari sistem informasi yang akan datang. Prototipe
sistem informasi bukanlah merupakan sesuatu yang lengkap, tetapi sesuatu yang
harus dimodifikasi kembali, dikembangkan, ditambahkan atau digabungkan dengan
sistem informasi yang lain bila perlu.
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. Kekurangan : kontrak akan merugikan, dirugikan
oleh keinginan customer yang meminta penambahan-penambahan. Kelebihan : akan
mengurangi waktu pembuatan program, kebutuhan customer akan lebih terpenuhi
dengan baik, jika kebutuhannya belum jelas, maka dengan prototype akan lebih
menguntungkan.
Empat langkah yang menjadi karakteristik metode Prototyping yaitu
1. Pemilihan fungsi
Mengacu pada pemilahan fungsi yang harus ditampilkan oleh prototyping.
Pemilahan harus selalu dilakukan berdasarkan pada tugas-tugas yang relevan yang
sesuai dengan contoh kasus yang akan diperagakan
2. Penyusunan Sistem Informasi
Bertujuan untuk memenuhi permintaan akan tersedianya prototype
3. Evaluasi
4. Penggunaan Selanjutnya
Tahapan-tahapan Prototyping
1. Pengumpulan kebutuhan : Pelanggan dan
pengembang bersama-sama mendefinisikan format seluruh perangkat lunak,
mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.
2. Membangun prototyping : Membangun
prototyping dengan membuat perancangan sementara yang berfokus pada penyajian
kepada pelanggan (misalnya dengan membuat input dan format output)
3. Evaluasi prototyping : Evaluasi ini
dilakukan oleh pelanggan apakah prototyping yang sudah dibangun sudah sesuai
dengan keinginann pelanggan. Jika sudah sesuai maka langkah 4 akan diambil.
Jika tidak prototyping direvisi dengan mengulangu langkah 1, 2 , dan 3.
4. Mengkodekan sistem : Dalam tahap ini
prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman
yang sesuai
5. Menguji sistem : Setelah sistem sudah
menjadi suatu perangkat lunak yang siap pakai, harus dites dahulu sebelum
digunakan. Pengujian ini dilakukan dengan White Box, Black Box, Basis Path,
pengujian arsitektur dan lain-lain
6. Evaluasi Sistem : Pelanggan mengevaluasi apakah
sistem yang sudah jadi sudah sesuai dengan yang diharapkan . Jika ya, langkah 7
dilakukan; jika tidak, ulangi langkah 4 dan 5.
7. Menggunakan sistem : Perangkat lunak yang
telah diuji dan diterima pelanggan siap untuk digunakan.
Jenis-jenis Prototyping
·
Feasibility prototyping – digunakan untuk menguji kelayakan dari teknologi
yang akan digunakan untuk system informasi yang akan disusun.
·
Requirement prototyping – digunakan untuk mengetahui kebutuhan aktivitas
bisnis user.
·
Desain Prototyping - digunakan untuk mendorong perancangan system
informasi yang akan digunakan.
·
Implementation prototyping – merupakan lanjytan dari rancangan protipe,
prototype ini langsung disusun sebagai suatu system informasi yang akan
digunakan.
Teknik-teknik Prototyping meliputi
1. Perancangan Mode
2. Perancangan Dialog
3. Simulasi
Keunggulan dan Kelemahan Prototyping
Keunggulan Prototyping :
1. End user dapat berpartisipasi aktif
2. Penentuan kebutuhan lebih mudah diwujudkan
3. Mempersingkat waktu pengembangan SI
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 :
1. Proses analisis dan perancangan terlalu
singkat
2. Mengesampingkan alternatif pemecahan
masalah
3. Bisanya kurang fleksible dalam mengahadapi
perubahan
4. Prototype yang dihasilkan tidak selamanya
mudah dirubah
5. Prototype terlalu cepat selesai
Rapid Application
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.
Kekurangan : (1). untuk project yang besar dan membutuhkan sumber daya manusia
yang cukup. (2) Jika developer dan customer berkomitmen untuk menyelesaikan
project dalam waktu yang singkat, maka project akan gagal. (3). Jika pemodulan
project tidak tepat, maka pembangunan komponen untuk RAD akan bermasalah.
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.
Model RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat
yang dicapai dengan menerapkan :
1. Component based construction ( pemrograman berbasis
komponen bukan prosedural).
2. Penekanan pada penggunaan ulang (reuse) komponen
perangkat lunak yang telah ada.
3. Pembangkitan kode program otomatis/semi otomatis.
4. 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.
KELEMAHAN
Beberapa hal (kelebhan
dan kekurangan) yang perlu diperhatikan dalam implementasi pengembangan
menggunakan model RAD :
1. Model RAD memerlukan sumber daya yang cukup besar,
terutama untuk proyek dengan skala besar.
2. Model ini cocok untuk proyek dengan skala besar.
3. Model RAD memerlukan komitmen yang kuat antara
pengembang dan pemesssan, bahkan keduanya bisa tergabung dalam 1 tim
4. kinerja dari perangkat lunak yang dihasilkan dapat
menjadi masalah manakala kebutuhan-kebutuhan diawal proses tidak dapat
dimodulkan, sehingga pendekatan dengan model ini kurang bagus.
5. sistem yang tidak bisa dimodularisasi tidak cocok untuk
model ini.
6. penghalusan dan penggabungan dari beberapa tim di akhir
proses sangat diperlukan dan ini memerlukan kerja keras.
7. proyek bisa gagal karena waktu yang disepakati tidak
dipenuhi
8. risiko teknis yang tinggi juga kurang cocok untuk model
ini.
KELEBIHAN
1. Fleksibilitas
yang lebih besar
2. Sangat
mengurangi manual coding
3. Peningkatan
keterlibatan pengguna
4. Mungkin lebih
sedikit cacat
5. Mungkin
dikurangi biaya
6. Singkat siklus
pengembangan
Incremental Model
Pada tahun 1971 Harlan Mills (IBM) mengusulkan semestinya perkembangansoftware
lebih tepat daripada membuatnya. Kita mulai membangun system sangat sederhanayang mendukung, memiliki fungsi sederhana,
kemudian menambahkan dan mengembangkansoftware tersebut. Semestinya
software pengembangan seperti bunga atau pohon. Nama lainperangkat lunak
tersebut adalah incremental model
Model incremental
(Incremental waterfall model) merupakan perbaikan dari modelwaterfall dan
sebagai standar pendekatan top-down. Ide dasar dari model ini adalahmembangun
software secara meningkat (increment) berdasarkan kemampuan fungsional.Model
incremental ini diaplikasikan pada sistem pakar dengan penambahan rules
yangmengakibatkan bertambahnya kemampuan fungsional sistem.
Model incremental merupakanmodel continous rapid prototype dengan durasi
yang diperpanjang hingga akhir prosespengembangan. Pada model prototipe biasa,
prototipe hanya dibuat pada tahap awal untuk mendapatkan kebutuhan user.Model
Incremental dalam rekayasa perangkat lunak, menerapkan rekayasa perangkatlunak
perbagian, hingga menghasilkan perangkat lunak yang lengkap. Proses
membangunberhenti jika produk telah mencapai seluruh fungsi yang
diharapkan.Pada awal tahapan dilakukan penentuan kebutuhan dan spesifikasi.
Kemudian dilakukanperancangan arsitektur software yang terbuka, agar dapat
diterapkan pembangunan per-bagian pada tahapan selanjutnya.
Tahapan Incremental
Model
1.Requirement
2.Specification
3.Architecture Design
Incremental model
menerapkan rangkaian linear. Setiap rangkaian linear mendelivery increment dari
software. Sebagai contoh, software word-processing, dibangun menggunakan
incremental model, mendelivery fungsi dasar file management, editing, dan
fungsi document production pada increment pertama. Kemampuan editing, dan
fungsi document production yang lebih baik pada increment kedua, checking dan
grammar spelling pada increment ketiga. Proses akan diulangi sampai produk yang
lengkap telah dihasilkan. Jika menggunakan Incremental model, increment yang
pertama merupakan inti product. Incremental model fokus pada pendeliverian
opertional product pada tiap increment.
Kelebihan Model Incremental
1. Penambahan kemampuan fungsional akan lebih
mudah diuji, diverifikasi, dan divalidasi dandapat menurunkan biaya yang
dikeluarkan untuk memperbaiki system.
2. Nilai penggunaan dapat ditentukan
pada setiap increament sehingga fungsionalitas sistemdisediakan lebih awal
3. Increment
awal berupa prototype untuk membantu memahami kebutuhan pada
incrementberikutnya.
4. Memiliki risiko lebih rendah terhadap
keseluruhan pengembagan sistem.
5. Prioritas
tertinggi pada pelayanan sistem adalah yang paling diuji
Kekurangan Model Incremental
1. Tiap
bagian tidak dapat diintegrasikan
2. Setiap tambahan yang dibangun harus
dimasukkan kedalam struktur yang ada tanpamenurunkan kualitas dari yang
telah dibangun system tersebut sampai saat ini.
3. Penambahan staf dilakukan jika
hasil incremental akan dikembangkan lebih lanjut
0 komentar:
Posting Komentar