PENGEMBANGAN PERANGKAT LUNAK
Perangkat Lunak Pengembangan Pengembangan Perangkat Lunak Perancangan Perangkat Lunak Pengkodean Perangkat Lunak Pengujian Perangkat Lunak
Sumber Perangkat Lunak Perangkat Lunak Komersial (Vendor) Perangkat Lunak In House /Customized Software Perangkat Lunak Komersial (Vendor) Kelebihan : Implementasi Cepat, Penghematan Biaya, Estimasi Biaya dan waktu, Reliabilitas. Kekurangan : Kesesuaian Rancangan Sistem yang Tidak baik, Ketergantungan pada Vendor, Biaya Tidak Langsung dari Kerusakan SDLC Penilaian : Kinerja Pengoperasian, Dokumentasi, Kemudahan pembelajaran, Kemudahan penggunaan (pengendalian dan penanganan kesalahan, dukungan)
Perangkat Lunak In House / Customized Software Mengikuti SWDLC (Software Development Life Cycle) Rancangan (Design) Kode (Code) Uji (Test) Rancangan (Design) Bagan terstruktur, SE/Pseudocode, Tabel/pohon keputusan, Kamus data, Diagram W/O, Diagram JSD dsb. Kode (Code) 3GL, 4GL, Pemrograman Object Uji (Test) White Box, Black Box
Pendekatan Organisasi Pengorganisasian Proyek Pengembangan Perangkat Lunak (Komunikasi, Integrasi, koordinasi) Pendekatan Organisasi Tim pengembangan program (program development team) Tim programmer kepala (chief programmer team) Tim pemrograman bersama (egoless programming team)
Program Development Team Manajer Tim Pengembang Program Pengkode Perancang Penguji
Chief Programmer Team Kepala Pemrogram Administrator Asisten Utama Pustakawan Editor Klerk Program Pemrogram Pendukung
Egoless Programming Team Pemrogram
SIKLUS HIDUP SISTEM Proses Pengembangan sistem berasal dari system life cycle/siklus hidup sistem. Siklus hidup sistem terjadi begitu saja System Life cycle adalah pemfaktoran umur hidup sebuah sistem informasi ke dalam dua tahap (1) pengembangan sistem dan (2) Operasi dan perawatan sistem – pertama anda membangunnya , kemudian anda menggunakan dan merawatnya . Pada akhirnya, anda kembali ke pengembangan ulang sebuah sistem baru System Development Methodology / metodologi pengembangan sistem , mengeksekusi tahap pengembangan sistem siklus hidup sistem.
Gambar Siklus Hidup Sistem :
Pendekatan Pengembangan Sistem Dalam pengembangan sebuah sistem, kita mengenal konsep SDLC (system development life cycle). Secara global definisi SDLC dapat dikatakan sebagai suatu proses berkesinambungan untuk menciptakan atau merubah sebuah sistem, merupakan sebuah model atau metodologi yang digunakan untuk melakukan pengembangan sistem. 2 3 1 4 5
Proses Pengembangan Sistem System development process/ process pengembangan sistem adalah satu set aktivitas , metode , dan peralatan terotomasi yang digunakan stakeholder untuk mengembangkan dan memelihara sistem informasi dan perangkat lunak . Proses pengenbangan sistem ini kebanyakan organisasi mengikuti pendeketan pemecahan masalah. Pemecahan masalah tersebut bisa kita kelompokan kedalam empat tahap atau fase yang harus diselesikan untuk semua proyek pengembangan sistem Proses Pengembangan Sistem Langkah-langkah pemecahan masalah Permulaan sistem /planning 1.Mengidentifikasi Masalah (Juga merencanakan solusi untuk masalah) Analisis Sistem 2.Menganalisa dan memahami masalah 3.Mengidentifikasi persyaratan dan harapan solusi Desain Sistem 4.Mengidentifikasi solusi alternatif dan memilih tindakan terbaik 5.Mendesain solusi yang dipilih Implementasi Sistem 6.Mengimplementasikan solusi yang dipilih 7.Mengevaluasi hasilnya (Jika masalah tidakterpecahkan, kembalilahke langkah 1 atau 2 seperlunya)
Pendekatan Pengembangan Sistem Dalam System development process biasanya sebuah langkah akan diselesaikan terlebih dahulu sebelum melanjutkan ke fase berikutnya. Keuntungan menggunakan metodologi ini requirement harus didefinisikan lebih mendalam sebelum proses coding dilakukan. Disamping itu metodologi ini memungkinkan sesedikit mungkin perubahan dilakukan pada saat proyek berlangsung. Namun, metodologi ini juga mempunyai beberapa kelemahan, diantaranya desain harus komplit sebelum programming dimulai, serta jika terjadi fase yang terlewati, maka biaya yang akan ditimbulkan akan lumayan besar. Bagian dari metodologi ini terdapat beberapa model software life cycle : Waterfall Model Prototype Model Throwaway Prototyping Spiral Model Dan laini-lain
Water Fall Model Model yang digunakan pertama kali oleh Winston Royce, sekitar tahun 1970, dikenal jg dengan “Linier Sequential Model/Classic Life Cycle” Pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem, analisis, desain, coding, testing/verification dan maintenance. Merupakan model yang paling banyak dipakai pengembang sistem. Cenderung dipakai untuk proyek skala besar dan yang akan dipakai dalam waktu lama. Karena waktu pengerjaan relatif lama maka biaya yang ditimbulkan juga besar.
WATERFALL MODEL …. cont
WATERFALL MODEL …. cont
Kelebihan dari model waterfall : Apabila kebutuhan sistem dapat didefenisikan secara utuh, eksplisit dan benar di awal project, maka Software Engineering dapat berjalan dengan baik dan tanpa masalah. Kekurangan dari model waterfall : Tidak dapat lanjut ke proses berikutnya jika terjadi kesalahan, sampai kesalahan tersebut diperbaiki. Pengerjaan berlangsung lama karna harus menunggu setiap proses pengerjaan selesai. Pada setiap proses pengerjaannya dilakukan sesuai spesialisasi masing-masing, oleh karena itu jika proses selesai maka sumber dayanya juga tidak digunakan lagi
Prototype Model Digunakan apabila user hanya mendefenisikan objek umum dari perangkat lunak tanpa merinci kebutuhan input, proses dan outputnya. Dipakai untuk proyek skala kecil. Pada dasarnya penggunaan model prototype adalah untuk mendefenisikan kebutuhan software.
PROTOTYPE MODEL …. cont
PROTOTYPE MODEL….cont Pengumpulan kebutuhan : developer dan klien bertemu dan menentukan tujuan umum, kebutuhan yang diketahui dan gambaran bagian-bagian yang akan dibutuhkan berikutnya. Detil kebutuhan biasanya tidak dibahas pada awal pengumpulan kebutuhan. Perancangan : perancangan dilakukan cepat dan rancangan mewakili semua aspek software yang diketahui. Pada tahap inilah pembuatan prototype dibangun. Evaluasi : klien mengevaluasi/testing prototype yang akan dibuat dan digunakan untuk memperjelas kebutuhan software
Kelebihan dari model prototype : Pembangunan sistem relatif cepat. PROTOTYPE MODEL….cont Kelebihan dari model prototype : Pembangunan sistem relatif cepat. Memudahkan komunikasi antara developer dan klien, sehingga klien dapat mengetahui gambaran awal dari sistem yang akan dibangun. Membantu untuk mendapatkan kebutuhan yang lebih baik dan detail.
PROTOTYPE MODEL….cont Kekurangan dari model prototype : Walaupun user melihat berbagai perbaikan dari setiap versi prototype, tetapi pemakai mungkin tidak menyadari bahwa versi tersebut dibuat tanpa memperhatikan kualitas dan pemeliharaan jangka panjang. Jika klien merasa cocok dengan prototype yang disajikan dan berkeras terhadap produk tersebut, maka developer harus bekerja keras untuk mewujudkan produk tersebut menjadi lebih baik. Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien.