Minggu, 15 Maret 2020

PENGEMBANGAN PERANGKAT LUNAK SDLC


2.1          Pengertian SDLC


Pada awal pengembangan perangkata lunak, para pembuat program (programmer) langsung melakukan pengodean perangkat lunak tanpa menggunakan prosedur atau tahapan pengembangan perangkat lunak. Dan ditemuilah kendala-kendala seiring dengan perkembangan skala system-sistem perangkat yang semakin besar.
SDLC dimulai dari tahun 1960-an, untuk mengembangkan system skala usaha besar secara fungsional untuk para konglomerat pada jaman itu. System-sytem yang dibangun mengelola informasi kegiatan dan rutinitas dari perusahaan-perusahaan yang berpotensi memiliki data yang lebih besar lagi dalam pengembangannya.
SDLC atau Software Development Life Cycle atau sering disebut juga System Development Life Cycle adalah proses mengembangkan asta mengubah suatu sustem perangkat lunak dengan menggunakan model-model dan metodologi yang digunakan orang untuk mengembangkan system-sistem perangkat lunak sebelumnya (berdasarkan best pratictice atau cara-cara yang sudah teruji baik). Seperti halnya proses metamorphosis pada kupu-kupu, untuk menjadi kupu-kupu yang indah maka dibutuhkan beberapa tahap untuk dilalui, sama halnya dengan membuat perangkat lunak, memiliki daur tahapan yang dilalui agar menghasilkan perangkat lunak yang berkualitas.
Tahapan-tahapan yang ada pada SDLC secara global adalah sebagai berikut :
a.       Inisiasi (initiation)
Tahap ini biasanya ditandai dengan pembuatan proposal proyek perangkat lunak.
b.      Pengembangan konsep system (system concept development)
Mendefiniskan lingkup konsep termasuk dokumen lingkup system, analisis manfaat biaya, manajemen rencana dan pembelajran kemudahan system.
c.       Perencanaan (planning)
Mengembangakn rencana menajemen proyek dan dokumen perencanaan lainnya. Menyediakan dasar untuk mendapatkan sumber data (resourced) yang dibutuhkan untuk memperoleh solusi.
d.      Analisi kebutuhan (requirements analysis)
Menganalisis kebutuhan pemakai system peangkat lunak (user) dan mengembangkan kebutuhan user. Membuat dokumen kebutuhan fungsional.
e.       Desain (design)
Mentranformasikan kebutuhan detail menjadi kebutuhan yang sudah lengkap, dokumen desain system focus pada bagaimana dapat memenuhi fungsi-fungsi yang dibutuhkan.
f.       Pengembangan (development)
Mengonversi desain ke system informasi yang lengkap termasuk bagaimana memperoleh dan melakukan instalasi lingkungan system yang dibutuhkan, membuat basis data dan mempersiapkan prosedur kasus pengujian, mempersiapkan berkas atau file pengujian, pengodean, pengompilasian, memperbaiki dan membersihkan program, peninjauam pengujian.
g.      Integrasi dan pengujian (integration and test)
Mendemontrasikan system perangkat lunak bahwa telah memenuhi kebutuhan yang dispesifikasikan pada dokumen kebutuhan fungsioanl. Dengan diarahkan oleh staf penjamin kuaita dan user. Menghasilkan laporan analisi pengujian.
h.      Implementasi (implementation)
Termasuk pada persiapan implementasi, implementasi perangkat lunak pada lingkunganproduksi (lingkungan pada user) dan menjalankan resolusi dari permasalahan yang teridentifikasi dari fase integrasi dan pengujian.
i.        Operasi dan pemeliharaan (operations and maintenance)
Mendeskripsikan pekerjaan untuk mengoperasikan dan meme;ihara system informasi pada lingkungan produksi (lingkungan pada user), termasuk implementasi akhir dan masuk pada proses peninjauan.
j.        Disposisi (disposition)
Mendeskripsikan aktifitas akhir dari pemngembangan system dan membangun data yang sebenarnya sesuai dengan aktifitas user.
Analisi dan desain sering dikelompokkan sebagai proses system/rekayasa informasi karena pada tahapan inilah informasi mengenai kebutuhan perangkat lunak banyak dikumpulkan dan diintegrasikan. Ada beberapa model SDLC yang dapat digunakan. Semuanya memiliki kelemhan dan kelebihan pada setiap model SDLC. Hal terpenting adalah mengenali tipe pelanggan (customer) dan memilih menggunakan model SDLC yangsesuai dengan karakter pelanggan (customer) dan sesuai dengan karakter pengembang.

2.2          Model SDLC

2.2.1     Waterfall Model

Nama model ini sebenarnya adalah “Linear Sequential Model”. Model ini sering disebut dengan “classic life cycle” atau model waterfall. Model ini adalah model yang muncul pertama kali yaitu sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai didalam Software Engineering (SE). Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing / verification, dan maintenance.
Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Sebagai contoh tahap desain harus menunggu selesainya tahap sebelumnya yaitu tahap requirement. Secara umum tahapan pada model waterfall dapat dilihat pada gambar berikut :
Kelebihan waterfall model :
a.       Menghasilkan mature process pada setiap tahapannya.
b.      Mudah untuk diaplikasikan pada sebuah proyek.
c.       Menghasilkan sistem yang terstuktur dengan baik.
d.      Memiliki tingkat visibilitas yang tinggi (setiap tahap mempunyai dokumen yang jelas).
Kelemahan waterfall model:
a.       Ketidakfleksibelan antar tahapan.
b.      Susah dalam merespon kebutuhan customer.

2.2.2     V Model

Bisa dikatakan model ini merupakan perluasan dari model waterfall. Disebut sebagai perluasan karena tahap-tahapnya mirip dengan yang terdapat dalam model waterfall. Jika dalam model waterfall proses dijalankan secara linear, maka dalam model V proses dilakukan bercabang. Dalam model V ini digambarkan hubungan antara tahap pengembangan software dengan tahap pengujiannya.
Kelebihan v model :
a.       V Model sangat fleksibel. V Model mendukung project tailoringdan penambahan dan pengurangan method dantool secara dinamik. Akibatnya sangat mudah untuk melakukan tailoring pada V Model agar sesuai dengan suatu proyek tertentu dan sangat mudah untuk menambahkan method dan tool baru atau menghilangkanmethod dan tool yang dianggap sudah obsolete.
b.      V Model dikembangkan dan di-maintainoleh publik. Userdari V Model berpartisipasi dalam change control boardyang memproses semua change request terhadap V Model.
Kekurangan v model :
a.       V Model adalah model yang project orientedsehingga hanya bisa digunakan sekali dalam suatu proyek.
b.      V Model terlalu fleksibel dalam arti ada beberapa activitydalam V Model yang digambarkan terlalu abstrak sehingga tidak bisa diketahui dengan jelas apa yang termasuk dalamactivitytersebut dan apa yang tidak.

2.2.3     Incremental Process Model

Model incremental (Incremental waterfall model) merupakan perbaikan dari  model waterfall dan sebagai standar pendekatan top-down. Ide dasar dari model ini adalah membangun software secara meningkat (increment) berdasarkan kemampuan fungsional. Model incremental ini diaplikasikan pada sistem pakar dengan penambahan rules yang mengakibatkan bertambahnya kemampuan fungsional sistem
Kelebihan Incremental Model :
a.       Personil bekerja optimal
b.      Pihak konsumen dapat langsung menggunakan dahulu bagian-bagian yang telah selesai dibangun. COntohnya pemasukan data karyawan
c.       Mengurangi trauma karena perubahan sistem.  Klien dibiasakan perlahan-lahan menggunakan produknya bagian per bagian
d.      Memaksimalkan pengembalian modal investasi konsumen
Kekurangan Incremental Model :
a.       kemungkinan tiap bagian tidak dapat diintegrasikan
b.      Dapat menjadi build and Fix Model, karena kemampuannya untuk selalu mendapat perubahan selama proses rekayasa berlangsung

2.2.4     Rapid Application Development (RAD)

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. Working model digunakan kadang-kadang saja sebagai basis desain dan implementasi sistem final.
Kelebihan :
RAD mengikuti tahapan pengembangan sistem sepeti umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada (reusable object).
Setiap fungsi dapat dimodulkan dalam waktu tertentu dan dapat dibicarakan oleh tim RAD yang terpisah dan kemudian diintegrasikan sehingga waktunya lebih efesien.
Kekurangan :
a.       Tidak cocok untuk proyek skala besar.
b.      Proyek bisa gagal karena waktu yang disepakati tidak dipenuhi.
c.       Sistem yang tidak bisa dimodularisasi tidak cocok untuk model ini.
d.      Resiko teknis yang tinggi juga kurang cocok untuk model ini.

2.2.5     Prototyping

Prototype merupakan metodologi pengembangan software yang menitik-beratkan pada pendekatan aspek desain, fungsi dan user–interface. Developer dan user fokus pada user-interface dan bersama-sama mendefinisikan spesifikasi, fungsi, desain dan bagaimana software bekerja.
Developer dan user bertemu dan melakukan komunikasi  dan menentukan tujuan umum, kebutuhan yang diketahui dan gambaran bagian-bagian yang akan dibutuhkan. Developer mengumpulkan detail dari kebutuhan dan memberikan suatu gambaran dengan cetak biru (prototype).
Keunggulan prototyping adalah:
a.       Adanya komunikasi yang baik antara pengembang dan pelanggan
b.      Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan
c.       Pelanggan berperan aktif dalam pengembangan sistem
d.      Lebih menghemat waktu dalam pengembangan sistem
e.       Penerapan menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya.
Kelemahan prototyping adalah :
a.       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 jangja waktu lama.
b.      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 cetak biru sistem.
c.       Hubungan pelanggan dengan komputer yang disediakan mungkin tidak mencerminkan teknik perancangan yang baik

2.2.6     Concurrent Process Model

Model proses konkuren sering digunakan sebagai paradigma bagi pengembangan aplikasi klien/server. Sistem klien/server dirancang dari serangkaian komponen fungsional. Bila diaplikasikan kepada klien/server, model proses konkuren akan mendefinisikan aktivitas di dalam dua dimensi : dimensi sistem, dan dimensi komponen. Isu tingkat sistem ditujudengan menggunakan tiga aktivitas : desain, assembly, dan pemakaian. Dimensi komponen dituju dengan dua aktivitas : desain dan rea-lisasi.
Kelebihan concurrent model :
Proses konkuren model ini berlaku untuk semua jenis pengembangan perangkat lunak dan memberikan gambaran yang akurat tentang keadaan sekarang dari suatu proyek
Kekurangan concurrent model :
statenya sangat banyak sehingga membutuhkan waktu lebih banyak.

2.2.7     Spiral model

Model spiral adalah model proses perangkat lunak yang evolusioner yang merangkai sifat iteratif dari prototipe dengan cara kontrol dan aspek sistematis dari model sekuensial linier. Model itu berpotensi untuk pengambangan versi pertambahan perangkat lunak secara cepat.
Kelebihan model Spiral :
a.       Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer.
b.      Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar
c.       Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi  terhadap resiko  setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses .
d.      Menggunakan prototipe sebagai mekanisme pengurangan resiko dan pada setiap keadaan di dalam evolusi produk.
e.       Tetap mengikuti langkah-langkah dalam siklus kehidupan klasik dan memasukkannya ke dalam kerangka kerja iteratif .
f.       Membutuhkan pertimbangan langsung terhadp resiko teknis sehingga mengurangi resiko sebelum menjadi permaslahan yang serius.
Kelemahan model Spiral:
a.       Sulit untuk menyakinkan pelanggan bahwa pendekatan evolusioner ini bisa dikontrol.
b.      Memerlukan  penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius jika  resiko mayor tidak ditemukan dan diatur.
c.       Butuh  waktu lama untuk menerapkan paradigma ini  menuju kepastian yang absolut

Tidak ada komentar:

Posting Komentar

PENGENALAN DFD

7.1           Pengertian DFD Data Flow Diagram (DFD) merupakan suatu cara atau metode untuk membuat rancangan sebuah sistem yang mana ...