Software adalah : Suatu program komputer, prosedur,
data dan semua dokumentasi yang berhubungan operasi pada sistem komputer
dengan kata lain software merupakan kumpulan dari object membentuk
konfigurasi yang didalamnya termasuk program, dokumen, dan data.
Menurut IEEE , Pengembangan software (software engineering ) adalah
: Aplikasi sistematik, disiplin, pendekatan kuantitatif untuk
pengembangan, operasi dan pemeliharaan dari software, dengan kata lain
software engineering merupakan sebuah metodologi pengembangan perangkat
lunak (software) yang membahas semua aspek produksi perangkat lunak,
mulai dari tahap awal spesifikasi sistem hingga pada tahap pemeliharaan
sistem setelah digunakan dengan tujuan untuk membuat perangkat lunak
yang tepat dengan metode yang tepat.
Hal yang perlu di pertimbangkan dalam pengembangan software yaitu :
1. Produk dan software (terdiri dari program, dokumen, dan data)
2. Proses pengembangannya (terdiri dari proses manajemen dan proses teknikal)
System Development Life Cycle (SDLC) merupakan beberapa tahap
pengembangan pemantauan produk dari perangkat lunak. Contoh dari SDLC
antara lain model waterfall, model V, model spiral, prototyping dan
lain-lain. Sedangkan proses manajemen dalam pengembangan software lunak
terdiri atas manajemen proyek, configuration management dan quality
assurance management dan proses teknikal merupakan metode yang
diaplikasikan pada tahap tertentu dalam pengembangan software, yang
didalamnya termasuk metode analisis, metode desain, metode pemrograman,
dan metode testing.
Tiga Elemen kunci dalam Pengembangan Software :
1. Metode
Metode software engineering memberikan tehnik-tehnik bagaimana
membentuk software. Terdiri dari serangkaian tugas seperti perencanaan
dan estimasi proyek
Software merupakan bagian terbesar dari sistem, sehingga pekerjaan
dimulai dengan cara menerapkan kebutuhan semua elemen sistem dan
mengalokasikan sebagian kebutuhan tersebut ke software. Pandangan
terhadap sistem adalah penting, terutama pada saat software harus
berhubungan dengan elemen lain, seperti hardware, software lain dan
database
2. Analisis kebutuhan sistem dan software
Merupakan suatu proses pengumpulan kebutuhan software untuk mengerti
sifat -sifat program yang dibentuk software engineering, atau analis
harus mengerti fungsi software yang diinginkan, performance dan
interfase terhadap elemen lainnya. Hasil dari analisis ini
didokumentasikan dan ditinjau bersama-sama klien.
3. Desain struktur data
Desain software sesungguhnya adalah proses multi step (proses yang
terdiri dari banyak langkah) yang memfokuskan pada 3 atribut program
yang berbeda, yaitu struktur data, arsitektur software dan rincian
prosedur.
Sebelum membedakan, definisi dari pengembangan software dan pengembangan sistem informasi adalah sebagai berikut :
1. Metode
Metode software engineering memberikan tehnik-tehnik bagaimana
membentuk software. Terdiri dari serangkaian tugas seperti perencanaan
dan estimasi proyek
Software merupakan bagian terbesar dari sistem, sehingga pekerjaan
dimulai dengan cara menerapkan kebutuhan semua elemen sistem dan
mengalokasikan sebagian kebutuhan tersebut ke software. Pandangan
terhadap sistem adalah penting, terutama pada saat software harus
berhubungan dengan elemen lain, seperti hardware, software lain dan
database.
2. Analisis kebutuhan sistem dan software
Merupakan suatu proses pengumpulan kebutuhan software untuk mengerti
sifat -sifat program yang dibentuk software engineering, atau analis
harus mengerti fungsi software yang diinginkan, performance dan
interfase terhadap elemen lainnya. Hasil dari analisis ini
didokumentasikan dan ditinjau bersama-sama klien.
3. Desain struktur data
Desain software sesungguhnya adalah proses multi step (proses yang
terdiri dari banyak langkah) yang memfokuskan pada 3 atribut program
yang berbeda, yaitu struktur data, arsitektur software dan rincian
prosedur.
* Arsitektur program dan prosedur algoritma
Proses desain menterjemahkan kebutuhan kedalam representasi software
yang dapat diukur kualitasnya sebelum coding dimulai. Hasil dari desain
ini didokumentasikan dan menjadi bagian dari konfigurasi software.
* Coding
Merupakan proses penterjemahan desain ke dalam bentuk yang dapat dibaca oleh mesin
* Testing dan pemeliharaan
Setelah objek program dihasilkan, testing program dimulai. Proses
testing difokuskan pada logika internal software. Jaminan bahwa semua
pernyataan atau statements sudah dites dan lingkungan external menjamin
bahwa definisi input akan menghasilkan output yang diinginkan.
Sementara proses pemeliharaaan atau maintenance dilakukan karena
software mengalami error, atau harus diadaptasi untuk menyesuaikan
dengan lingkungan external.
Peralatan atau tools
Peralatan pengembangan software memberikan dukungan atau semiautomasi untuk metode, contohnya:
1. CASE (Case Aided Software Engineering), yaitu suatu software yang
menggabungkan software, hardware, dan database software engineering
untuk menghasilkan suatu lingkungan software engineering.
2. Database Software Engineering, adalah sebuah struktur data yang
berisi informasi penting tentang analisis, desain, kode dan testing.
3. Analogi dengan CASE pada hardware adalah : CAD, CAM, CAE.
Prosedur
Prosedur terdiri dari, urut-urutan di mana metode tersebut
diterapkan, dokumen, laporan-laporan, formulir-formulir yang diperlukan,
kontrol kualitas software, dan koordinasi perubahan yang terjadi pada
software.
Tiga Metode Dalam Pengembangan Software yang secara luas digunakan, yaitu:
1. System Development Life Cycle (SDLC)
Adalah proses pengembangan dimana keseluruhan proses pengembangan
sistem dilakukan melalui proses multi-langkah dari investigasi
persyaratan awal melalui analisis, desain, implementasi dan pemeliharaan
(sumber: Russel Kay, Computer World).
SDLC terdiri dari beberapa jenis model antara lain model Waterfall,
Fountain, dan Spiral. Pada model waterfall output dari langkah yang satu
akan menjadi input bagi langkah selanjutnya.
a. Spiral Model
Model spiral (spiral model) adalah model pengembangan software dimana
proses digambarkan sebagai spiral. Setiap loop akan mewakili satu fase
dari software process. Loop paling dalam berfokus pada kelayakan dari
sistem, loop selanjutnya tentang definisi dari kebutuhan, loop
berikutnya berkaitan dengan desain sistem dan seterusnya, seperti gambar
berikut
Pada spiral model, setiap Loop dibagi dibagi menjadi sejumlah
aktifitas kerangka kerja yang disebut juga wilayah tugas, wilayah tugas
tersebut terdiri antara tiga sampai enam wilayah tugas, yaitu :
1. Komunikasi Pelanggan.
Tugas – tugas yang dibutuhkan untuk membangun komunikasi yang efektif di antara pengembangan dan pelanggan.
2. Perencanaan.
Tugas–tugas yang dibutuhkan untuk mendefinisikan sumber–sumber daya,
ketepatan waktu, dan proyek informasi lain yang berhubungan.
3. Analisis Risiko.
Tugas – tugas yang dibutuhkan untuk menaksir risiko – risiko, baik manajemen maupun teknis.
4. Perekayasaan.
Tugas – tugas yang dibutuhkan untuk membangun satu atau lebih representasi dari aplikasi tersebut.
5. Konstruksi dan peluncuran.
Tugas – tugas yang dibutuhkan untuk mengkonstruksi, menguji, instalasi
dan memberikan pelayanan kepada pemakai (contohnya pelatihan dan
dokumentasi).
6. Evaluasi pelanggan.
Tugas – tugas yang dibutuhkan untuk memperoleh umpan balik dari
pelanggan dengan didasarkan pada evaluasi representasi software, yang
dibuat selama masa perekayasaan, dan diimplementasikan selama masa
pemasangan software.
b. Waterfall model
Fase atau tahapan yang terjadi pada waterfall model adalah sebagai berikut ::
1) Tahap Investigasi
Pada tahap investigasi akan terjadi proses seperti:
a) Initialisasi: terjadi proses seperti perencanaan manajemen, kebutuhan serta potensi dari user.
b) Definisi formal: dilakukan definisi tujuan, motivasi, ruang
lingkup, batasan, kendala, dan
strategi. Selain itu, pada definisi formal juga dilakukan verifikasi
permasalahan sehingga dapat dilakukan penilaian
terhadap kebutuhan yang baru.
c) Uji kelayakan, yang terdiri dari:
1. Uji kelayakan teknis, merupakan uji terhadap ketersediaan hardware dan software.
2. Uji kelayakan ekonomis, yaitu menilai apakah manfaat yang didapat
dari pengembangan software akan
sebanding dengan biaya yang dikeluarkan.
3. Uji kelayakan operasional, uji kelayakan yang berkaitan dengan
kemampuan orang yang bekerja dalam sistem
untuk melakukan pekerjaan mereka dengan cara
yang telah ditentukan.
4. Uji kelayakan kelayakan organisasi, menilai kesiapan perusahaan atau
organisasi untuk mengembangkan penjualan pemasaran
dan sistem keuangan berbasis Web (e-commerce system).
2) Tahap Analisa
Dalam tahapan ini sistem yang akan dibangun diselaraskan dengan
kebutuhan user atau pengguna. Pada tahap ini terjadi proses seperti:
a) Determine requirements atau penentuan kebutuhan, hal ini
dilakukan dengan cara mempelajari sistem yang telah ada,
serta menentukan kebutuhan struktur dan
menghilangkan redundansi.
b) Requirement analysis atau analisa kebutuhan, terdiri dari analisa
kebutuhan fungsional dan performa
(kinerja).
c) Menghasilkan desain sistem alternatif
d) Membandingkan alternatif desain sistem yang dihasilkan dan
e) Merekomendasikan alternatif terbaik kepada klien.
3) Tahap Desain
Tahap menentukan bagaimana sistem mencapai tujuan yang telah didefinisikan sebelumnya. Tahap ini terdiri dari:
a) User interface design, meliputi tampilan, form, report dan dialog design.
b) Data design, merupakan proses desain elemen struktur data.
c) Process design, merupakan desain program prosedur sistem
4) Tahap Implementasi
Pada tahap ini terjadi beberapa hal seperti:
a) Evaluasi hardware, software dan jasa
b) Modifikasi dan pengembangan software
c) Dokumentasi, yang merupakan mekanisme komunikasi utama selama proses pengembangan.
d) Konversi data, pada proses ini terjadi perbaikan dan penyaringan
data yang tidak diinginkan dan konsolidasi data.
e) Testing atau uji coba, pada proses ini dilakukan uji coba dan debugging software.
f) Training atau pelatihan sistem/software yang telah terbentuk.
g) Konversi, yakni proses pergantian dari sistem lama ke sistem baru.
Proses konversi dapat dilakukan melalui 4 macam cara
antara lain:
1. Parallel strategy
2. Pilot strategy
3. Phased strategy dan
4. Plunge strategy
5) Tahap Pemeliharaan (maintenance)
Pada proses ini terjadi modifikasi software, perbaikan error atau
umpan balik dari user terhadap software yang telah mereka gunakan.
Keunggulan dan Kelemahan pada metode SDLC antara lain:
a. Keunggulan:
1) Proses pengembangan sangat terstruktur dan sistematik
2) Melalui definisi kebutuhan, sehingga gap atau kesenjangan yang
terjadi antara kebutuhan dan sistem yang
dihasilkan dapat dikurangi.
3) Menghasilkan petunjuk arah pengembangan yang jelas bagi manajemen.
b. Kelemahan:
1) Tidak adaptif terhadap perubahan yang dapat terjadi selama
proses pengembangan
(kaku atau rigid).
2) Melelahkan karena membutuhkan waktu pengembangan yang lama dan biaya yang tinggi
3) Proyek yang sebenarnya jarang mengikuti aliran sequential yang
ditawarkan model ini. Iterasi
(Pengulangan) selalu terjadi dan menimbulkan masalah pada
aplikasi yang dibentuk oleh model ini.
4) Seringkali pada awalnya customer sulit menentukan semua kebutuhan secara explisit.
5) Klien harus sabar karena versi program yang sedang jalan tidak akan
tersedia sampai proyek pengembangan
selesai.
c. Rapid Application Development (RAD)
Rapid Aplication Development (RAD) adalah sebuah metode pengembangan
software yang diciptakan untuk menekan waktu yang dibutuhkan untuk
mendesain serta mengimplementasikan sistem, informasi sehingga
dihasilkan siklus pengembangan yang sangat pendek.
Model RAD ini merupakan adaptasi dari model sekuensial linier dimana
perkembangan yang cepat dicapai dengan menggunakan pendekatan kontruksi
berbasis komponen. Sehingga, jika kebutuhan sistem dipahami dengan baik,
proses RAD memungkinkan developer menciptakan sistem fungsional yang
utuh dalam periode waktu yang sangat pendek (± 60 sampai 90 hari).
Karena dipakai terutama pada aplikasi sistem konstruksi, pendekatan RAD
meliputi fase – fase dibawah ini:
a. Bussiness modeling
Aliran informasi di antara fungsi – fungsi bisnis dimodelkan dengan
suatu cara untuk menjawab pertanyaan – pertanyaan sebagai berikut :
1) Informasi apa yang mengendalikan proses bisnis?
2) Informasi apa yang di munculkan?
3) Siapa yang memunculkanya?
4) Ke mana informasi itu pergi?
5) Siapa yang memprosesnya?
b. Data modeling
Aliran informasi yang didefinisikan sebagai bagian dari fase
bussiness modelling disaring ke dalam serangkaian objek data yang
dibutuhkan untuk menopang bisnis tersebut. Karakteristik (disebut
atribut) masing masing objek diidentifikasi dan hubungan antara objek –
objek tersebut didefinisikan.
c. Prosess modelling
Aliran informasi yang didefinisikan di dalam fase data modeling
ditransformasikan untuk mencapai aliran informasi yang perlu bagi
implementasi sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk
menambah, memodifikasi, menghapus, atau mendapatkan kembali sebuah objek
data.
d. Aplication generation
RAD mengasumsikan pemakaian teknik generasi ke empat. Selain
menciptakan perangkat lunak dengan menggunakan bahasa pemrograman
generasi ketiga yang konvensional, RAD lebih banyak memproses kerja
untuk memkai lagi komponen program yang ada (pada saat memungkinkan)
atau menciptakan komponen yang bisa dipakai lagi (bila perlu). Pada
semua kasus, alat – alat bantu otomatis dipakai untuk memfasilitasi
konstruksi perangkat lunak.
e. Testing and turnover
Karena proses RAD menekankan pada pemakaian kembali, banyak komponen
program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian.
Tetapi komponen baru harus di uji dan semua interface harus dilatih
secara penuh.
Keunggulan dan kelemahan model RAD adalah :
Keunggulan:
1. Waktu pengembangan yang lebih singkat dan
2. Biaya yang relatif lebih murah
Kelemahan:
1. Tidak cocok untuk proyek skala besar
2. Proyek bisa gagal karena waktu yang disepakati tidak dipenuhi
3. Sistem yang tidak bisa dimodularisasi tidak cocok untuk model
4. Resiko teknis yang tinggi juga kurang cocok untuk model ini.
d. Prototyping
Proses pada model prototyping yang dapat dijelaskan sebagai berikut:
a. User Requirements
Pada tahap ini developer dan klien bertemu dan menentukan tujuan
umum, kebutuhan yang diketahui dan gambaran bagian-bagian yang akan
dibutuhkan berikutnya. Detil kebutuhan mungkin tidak dibicarakan pada
tahap ini.
b. Develope Prototype
Pada tahap ini dilakukan perancangan prototype sistem oleh developer,
perancangan sistem dilakukan secara cepat dan rancangan diusahakan
mewakili semua aspek software yang telah diketahui.
c. Revise Prototype
Pada tahap ini dilakukan evaluasi prototype sistem oleh klien.
Apabila klien merasa prototype sistem yang telah dikembangkan sesuai
dengan keinginannya maka prototype tersebut dapat digunakan, akan tetapi
jika prototype tersebut tidak sesuai, maka prototype tersebut akan
dilakukan revisi dan digunakan sebagai acuan dalam memperjelas kebutuhan
software dan kemudian dikembangkan prototype selanjutnya. Siklus ini
(develop-revise prototype) akan terus berlangsung hingga didapatkan
prototype sistem yang sesuai dengan kebutuhan klien atau user.
Keunggulan dan kelemahan pada pengembangan software menggunakan metode prototyping.
Keunggulan:
1. Meningkatnya komunikasi antara user dan developer
2. Peningkatan peran aktif user didalam proses pengembangan
3. Peningkatan efisiensi waktu
4. Implementasi sistem menjadi lebih mudah karena user turut berperan aktif didalam proses pengembangan
Kelemahan:
1. Kurangnya fitur keamanan dan kontrol pada prototype akhir sistem
2. Sistem akan sulit terbentuk jika proses evaluasi pada siklus prototype tidak mendapatkan titik temu.
3. Dapat menyebabkan dokumentasi akhir yang tidak lengkap
4. Developer lebih sulit mengendalikan ekspektasi user
Sumber : https://fatharaannisaa.wordpress.com