Siklus Hidup Pengembangan Sistem) atau Systems Life Cycle (Siklus Hidup Sistem), dalam rekayasa sistem dan rekayasa perangkat lunak, adalah proses pembuatan dan pengubahan sistem serta model dan metodologi yang digunakan untuk mengembangkan sistem-sistem tersebut. Konsep ini umumnya merujuk pada sistem komputer atau informasi.
SDLC juga merupakan pola yang diambil untuk mengembangkan sistem
perangkat lunak, yang terdiri dari tahap-tahap:
rencana(planning),analisis (analysis), desain (design), implementasi
(implementation), uji coba (testing) dan pengelolaan (maintenance).
Dalam rekayasa perangkat lunak angsyat Ä, konsep SDLC mendasari berbagai
jenis metodologi pengembangan perangkat lunak. Metodologi-metodologi ini membentuk suatu kerangka kerja untuk perencanaan dan pengendalian pembuatan sistem informasi, yaitu proses pengembangan perangkat lunak. Terdapat 3 jenis metode siklus hidup sistem yang paling banyak digunakan, yakni: siklus hidup sistem tradisional (traditional system life cycle), siklus hidup menggunakan prototyping (life cycle using prototyping), dan siklus hidup sistem orientasi objek (object-oriented system life cycle).
1. Model Spiral
Spiral Model
adalah suatu model tentang tahapan pembuatan suatu perangkat lunak, spiral
model ini adalah salah satu dari model revolusioner, model spiral merangkai
sifat interatif yaitu sifat yang ditandai yang memungkinkan untuk mengembangkan
versi dari suatu perangkat lunak secara bertahap untuk menghasilkan perangkat
lunak yang lebih lengkap atau lebih sempurna dan terkontrol.
Tahapan-Tahapan Model Spiral
Model spiral dibagi menjadi enam
wilayah tugas yaitu:
1.
Komunikasi
pelanggan
Yaitu tugas-tugas untuk membangun
komunikasi antara pelanggan dan kebutuhankebutuhan yang diinginkan oleh
pelanggan
2.
Perencanaan
Yaitu tugas-tugas untuk
mendefinisikan sumber daya, ketepatan waktu, dan proyekinformasi lain yg berhubungan.
3.
Analisis Resiko
Yaitu tugas-tugas yang dibutuhkan
untuk menaksir resikomanajemen dan teknis.
4.
Perekayasaan
Yaitu tugas yang dibutuhkan untuk
membangun satu atau lebih representasi dari apikasi tersebut.
5.
Konstruksi dan peluncuran
Yaitu tugas-tugas yang dibutuhkan
untuk mengkonstruksi, menguji, memasang dan memberi pelayanan kepada pemakai.
6.
Evaluasi Pelanggan
Yaitu tugas-tugas untuk mendapatkan
umpan balik dari pelanggan.
·
Dapat disesuaikan agar perangkat
lunak bisa dipakai selama hidup perangkat lunak komputer.
·
Lebih cocok untuk pengembangan
sistem dan perangkat lunak skala besar
·
Pengembang dan pemakai dapat lebih
mudah memahami dan bereaksi terhadap resiko setiap
tingkat evolusi karena perangkat lunak terus bekerja selama proses .
·
Menggunakan
prototipe sebagai mekanisme pengurangan resiko dan pada setiap keadaan di dalam
evolusi produk.
·
Tetap mengikuti langkah-langkah
dalam siklus kehidupan klasik dan memasukkannya ke dalam kerangka kerja
iteratif.
b. Kelemahan model Spiral :
·
Sulit untuk menyakinkan pelanggan
bahwa pendekatan evolusioner ini bisa dikontrol.
·
Memerlukan
penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius jika resiko mayor tidak ditemukan dan diatur.
Metode
Waterfall adalah suatu proses pengembangan perangkat lunak berurutan, di mana
kemajuan dipandang sebagai terus mengalir ke bawah (seperti air terjun)
melewati fase-fase perencanaan, pemodelan, implementasi (konstruksi), dan
pengujian. Berikut adalah gambar pengembangan perangkat lunak berurutan/ linear
(Pressman, Roger S. 2001):
Tahapan
Metode Waterfall
1.
Requirement (analisis kebutuhan).
Dalam
langakah ini merupakan analisa terhadap kebutuhan sistem. Pengumpulan data
dalam tahap ini bisa melakukan sebuah penelitian, wawancara atau study
literatur. Seseorang system analisis akan menggali informasi sebanyak-banyaknya
dari user sehingga akan tercipta sebuah sistem komputer yang bisa melakukan
tugas-tugas yang diinginkan oleh user tersebut. Tahapan ini akan menghasilkan
dokumen user requirement atau bisa dikatakan sebagai data yang berhubungan
dengan keinginan user dalam pembuatan sistem. Dokumen inilah yang akan menjadi
acuan system analisis untuk menterjemahkan kedalam bahasa pemrograman.
2.
Design System (design sistem)
Proses
design akan menterjemahkan syarat kebutuhan kesebuah perancangan perangkat
lunak yang dapat diperkirakan sebelum dibuat koding. Proses ini berfokus pada :
struktur data, arsitektur perangkat lunak, representasi interface, dan detail
(algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut
software requirement. Dokumen inilah yang akan digunakan programmer untuk
melakukan aktivitas pembuatan sistemnya.
3.
Coding & Testing (penulisan sinkode program / implemention)
Coding merupakan penerjemahan design dalam bahasa yang bisa
dikenali oleh komputer.Dilakukan oleh programmer yang akan meterjemahkan
transaksi yang diminta oleh user. Tahapan inilah yang merupakan tahapan secara
nyata dalam mengerjakan suatu sistem.Dalam artian penggunaan computer 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 system tersebut dan kemudian bisa diperbaiki.
4.
Penerapan / Pengujian Program (Integration & Testing)
Tahapan ini
bisa dikatakan final dalam pembuatan sebuah sistem. Setelah melakukan
analisa, design dan pengkodean maka sistem yang sudah jadikan digunakan oleh
user.
e. Pemeliharaan (Operation & Maintenance)
Perangkat
lunak yang susah disampaikan kepada pelanggan pasti akan mengalami perubahan.
Perubahan tersebut bisa karena mengalami kesalahan karena perangkat lunak harus
menyesuaikan dengan lingkungan (periperal atau system operasi baru) baru, atau
karena pelanggan membutuhkan perkembangan fungsional.
a.
Kelemahan
model waterfall
Kelemahan pengembangan software
dengan metode waterfall yang utama adalah lambatnya proses pengembangan
perangkat lunak. Dikarenakan prosesnya yang satu persatu dan tidak bisa
diloncat-loncat menjadikan model klasik ini sangat memakan waktu dalam
pengembangannya
b.
Kelebihan Model Waterfall
- Kualitas dari sistem yang dihasilkan akan baik. Ini dikarenakan oleh pelaksanaannya secara bertahap. Sehingga tidak terfokus pada tahapan tertentu.
- Document pengembangan system sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya. Jadi setiap fase atau tahapan akan mempunyai dokumen tertentu.
- Metode ini masih lebih baik digunakan walaupun sudah tergolong kuno, daripada menggunakan pendekatan asal-asalan. Selain itu, metode ini juga masih masuk akal jika kebutuhan sudah diketahui dengan baik.
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.
Tahapan
dalam model RAD:
1. Rencana Kebutuhan (Requirement
Planning)
Pada tahap ini, user dan analyst melakukan
semacam pertemuan untuk melakukan identifikasi tujuan dari aplikasi atau system
dan melakukan identifikasi kebutuhan informasi untuk mencapai tujuan.
2. Proses Desain (Design
Workshop)
Pada tahap ini adalah melakukan proses desain dan
melakukan perbaikan-perbaikan apabila masih terdapat ketidaksesuaian desain
antara user dan analyst. Untuk tahap ini maka keaktifan user yang
terlibat sangat menentukan untuk mencapai tujuan, karena user bisa
langsung pemberikan komentar apabila
terdapat ketidaksesuaian pada desain. Biasanya, user dan analyst berkumpul
menjadi satu dan duduk di meja melingkar dimana masing-masing orang bias
melihat satu dengan yang lain tanpa ada halangan. Apabila memungkinkan, maka
masingmasing user diberikan satu komputer yang terhubung satu dengan
yang lain, sehingga masing-masing bisa melihat desain yang dibuat dan langsung
memberikan komentar. Hal ini sering kali disebut dengan Group Decision
Support System (GDSS). Pada beberapa kasus, GDSS ini merupakan suatu
langkah yang ideal, karena user dan analyst dapat menyetujui desain yang dibuat
untuk kemudian dilanjutkan oleh programmer dalam pembuatan prototype dari
aplikasi yang dimaksud dengan langsung menampilkan kepada user hasilnya dengan
cepat.
3. Implementasi (Implementation)
Setelah desain dari sistem yang akan dibuat sudah
disetujui baik itu oleh user dan analyst, maka pada tahap ini programmer
mengembangkan desain menjadi suatu program. Setelah program selesai baik
itu sebagian maupun secara keseluruhan, maka dilakukan proses pengujian
terhadap program tersebut apakah terdapat kesalahan atau tidak sebelum
diaplikasikan pada suatu organisasi.
a.
Kelebihan
model RAD:
- · Membeli sistem yang baru memungkinkan untuk lebih menghemat biaya ketimbang engembangkan sendiri.
- · Proses pengiriman menjadi lebih mudah, hal ini dikarenakan proses pembuatan lebih banyak menggunakan potonganpotongan script.
- · Mudah untuk diamati karena menggunakan model prototype, sehingga user lebih mengerti akan sistem yang dikembangkan.
- · Lebih fleksibel karena pengembang dapat melakukan proses desain ulang pada saat yang bersamaan.
- · Bisa mengurangi penulisan kode yang kompleks karena menggunakan wizard.
- · Keterlibatan user semakin meningkat karena merupakan bagian dari tim secara keseluruhan.
b.
Kekurangan
Model RAD
- · Dengan melakukan pembelian belum tentu bisa menghemat biaya dibandingkan dengan mengembangkan sendiri.
- · Membutuhkan biaya tersendiri untuk membeli peralatan-peralatan penunjang seperti misalnya software dan hardware.
- · Kesulitan melakukan pengukuran mengenai kemajuan proses.
- · Kurang efisien karena apabila melakukan pengkodean dengan menggunakan tangan bisa lebih efisien.
- · Ketelitian menjadi berkurang karena tidak menggunakan metode yang formal dalam melakukan pengkodean.
- · Lebih banyak terjadi kesalahan apabila hanya mengutamakan kecepatan dibandingkan dengan biaya dan kualitas.
Menurut Raymond McLeod, prototype didefinisikan sebagai alat yang
memberikan ide bagi pembuat maupun pemakai potensial tentang cara system
berfungsi dalam bentuk lengkapnya, dan proses untuk menghasilkan sebuah
prototype sisebut prototyping. Prototyping adalah proses pembuatan model
sederhana software yang mengijinkan pengguna memiliki gambaran dasar tentang
program serta melakukan pengujian awal.
Tahapan
model Prototyping
- Pengumpulan kebutuhan
Pelanggan dan pengembang
bersama-sama mendefinisikan format dan kebutuhan kesseluruhan perangkat lunak,
mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.
- Membangun prototyping
Membangun prototyping dengan
membuat perancangan sementara yang berpusat pada penyajian kepada pelanggan
(misalnya dengan membuat input dan contoh outputnya).
- Evaluasi protoptyping
Evaluasi ini dilakukan oleh
pelanggan apakah prototyping yang sudah dibangun sudah sesuai dengan keinginan
pelanggan. Jika sudah sesuai maka langkah keempat akan diambil. Jika tidak,
maka prototyping diperbaiki dengan mengulang langkah 1, 2 , dan 3.
- Mengkodekan system
Dalam tahap ini prototyping yang
sudah disepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai.
- Menguji system
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.
- Evaluasi Sistem
Pelanggan mengevaluasi apakah
sistem yang sudah jadi sudah sesuai dengan yang diharapkan . Jika sudah, maka
langkah ketujuh dilakukan, jika belum maka mengulangi langkah 4 dan 5.
a. Kelebihan
Model Prototyping
- Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan setiap pelanggannya.
- Pelanggan berperan aktif dalam proses pengembangan sistem.
- Lebih menghemat waktu dalam pengembangan sistem.
- Kekurangan Model Prototyping
- Pelanggan kadang tidak melihat atau menyadari bahwa perangkat lunak yang ada belum mencantumkan kualitas perangkat lunak secara keseluruhan dan juga belum memikirkan kemampuan pemeliharaan untuk jangka waktu lama.
- Pengembang biasanya ingin cepat menyelesaikan proyek sehingga menggunakan algoritma dan bahasa pemrograman yang sederhana untuk membuat prototyping lebih cepat selesai tanpa memikirkan lebih lanjut bahwa program tersebut hanya merupakan sebuah kerangka kerja(blueprint) dari sistem .
- Hubungan pelanggan dengan komputer yang disediakan mungkin tidak mencerminkan teknik perancangan yang baik dan benar.
Agile Development Methods adalah sekelompok metodologi
pengembangan perangkat lunak yang didasarkan pada prinsip-prinsip yang sama
atau pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dari
pengembang terhadap perubahan dalam bentuk apapun. Agile development methods
merupakan salah satu dari Metodologi pengembangan perangkat lunak yang digunakan
dalam pengembangan perangkat lunak. Agile memiliki pengertian bersifat cepat,
ringan, bebas bergerak, dan waspada.
Prinsip Agile Software Development
Agile
Software Development juga melihat pentingnya komunikasi antara anggota tim,
antara orang-orang teknis dan businessmen, antara developer dan managernya.
Ciri lain adalah klien menjadi bagian dari tim pembangun software. Ciri-ciri
ini didukung oleh 12 prinsip yang ditetapkan oleh Agile Alliance. Menurut Agile
Alliance, 12 prinsip ini adalah bagi mereka yang ingin berhasil dalam penerapan
Agile Software Development:
- Kepuasan klien adalah prioritas utama dengan menghasilkan produk lebih awal dan terus menerus.
- Menerima perubahan kebutuhan, sekalipun diakhir pengembangan.
- Penyerahan hasil/software dalam hitungan waktu beberapa minggu sampai beberapa bulan.
- Pihak bisnis dan pengembang harus bekerja sama setiap hari selama pengembangan berjalan.
- Membangun proyek dilingkungan orang-orang yang bermotivasi tinggi yang bekerja dalam lingkungan yang mendukung dan yang dipercaya untuk dapat menyelesaikan proyek.
- Komunikasi dengan berhadapan langsung adalah komunikasi yang efektif dan efisien
- Software yang berfungsi adalah ukuran utama dari kemajuan proyek
- Dukungan yang stabil dari sponsor, pembangun, dan pengguna diperlukan untuk menjaga perkembangan yang berkesinambungan
- Perhatian kepada kehebatan teknis dan desain yang bagus meningkatkan sifat agile
- Kesederhanaan penting
- Arsitektur, kebutuhan dan desain yang bagus muncuk dari tim yang mengatur dirinya sendiri
- Secara periodik tim evaluasi diri dan mencari cara untuk lebih efektif dan segera melakukannya.
Dua belas
prinsip tersebut menjadi suatu dasar bagi model-model proses yang punya sifat
agile. Dengan prinsip-prinsip tersebur Agile Process Model berusaha untuk
menyiasati 3 asumsi penting tentang proyek software pada umumnya:
v Kebutuhan
software sulit diprediksi dari awal dan selalu akan berubah. Selain itu,
prioritas klien juga sering berubah seiring berjalannya proyek.
v Desain dan
pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang
diperlukan sebelum pembangunan.
v Analisis,
desain, pembangunan dan testing tidak dapat diperkirakan seperti yang
diinginkan.
- Kelebihan Metode Agile
·
Meningakatkan rasio kepuasan pelanggan.
·
Bisa melakukan reviw pelanggan mengenai software yang dibuat lebih awal.
·
Mengurangi resiko kegagalan implementasi software dari non-teknis.
·
Besar kerugian baik secara material atau imaterial tidak terlalu besar jiak
terjadi kegagalan
- Kelemahan Metode Agile
·
Agile jarang dipraktekkan secara langsung,
·
Interksi dengan customers yang berlebihan,
·
Agile sulid diimplementasikan dalam proyek
yang berskala besar,
·
Membutuhkan manajemen tim yang terlatih,
·
Lemah dalam perencanaan arsitektur,2 Scrum dan
Extreme Programming
·
Keterbatasan waktu dalam perencanaan Proyek
6. Model 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 mengartikan model
incremental sebagai perbaikan dari model waterfall dan sebagai standar
pendekatan topdown. Layaknya Model Waterfall, model ini pun juga
memiliki tahapan tahapan untuk perancangan perangkat lunaknya.
Tahapan-tahapan model Incremental
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.
a.
Kelebihan
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
b.
Kekurangan
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.
7. Model
Iterasi
Iterasi adalah model pengembangan
system yang bersifat dinamis dalam artian setiap tahapan proses pengembangan system
dapat diulang jika terdapat kekurangan atau kesalahan. Setiap tahapan
pengembangan system dapat dikerjakan berupa ringkasan dan tidak lengkap, namun
pada akhir pengembangan akan didapatkan system yang lengkap pada pengembangan
system.
- Kelebihan
1.
Dapat mengakomodasi jika terjadi perubahan pada
tahapan pengembangan yang telah dilaksanakan.
2.
Dapat disesuaikan agar system bisa dipakai selama
hidup software computer.
3.
Cocok untuk pengembangan sistem dan perangkat lunak
skala besar.
4.
Pengembang dan pemakai dapat lebih mudah memahami dan
bereaksi terhadap resiko setiap tahapan karena system terus bekerja selama
proses.
b. Kekurangan
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
Atipa Muji
*diambil dari berbagai sumber
0 komentar:
Posting Komentar