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
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.
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.
2. 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.
3. 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.
Metode System Development Life Cycle (SDLC) :
1. Rekayasa dan Pemodelan Sistem/Informasi
Karena perangkat lunak
merupakan bagian dari suatu sistem maka langkah pertama dimulai dengan
membangun syarat semua elemen sistem dan mengalokasikan ke perangkat lunak
dengan memeperhatiakn hubungannya dengan manusia, perangkat keras dan database.
2. Analisis Kebutuhan Perangkat Lunak
Proses menganalisis dan
pengumpulan kebutuhan sistem yang sesuai dengan domain informasi tingkah laku,
unjuk kerja, dan antar muka (interface) yang diperlukan.
Kebutuhan-kebutuhan tersebut didokumentasikan dan dilihat lagi dengan
pelanggan.
3. Desain
Proses desain akan
menerjemahkan syarat kebutuhan ke sebuah perancangan perangkat lunak yang dapat
diperkirakan sebelum dibuat coding. Proses ini berfokus pada : struktur data,
arsitektur perangkat lunak, representasi interface, dan detail (algoritma)
prosedural.
4. Pengkodeaan (Coding)
Pengkodean merupakan
proses menerjemahkan desain ke dalam suatu bahasa yang bisa dimengerti oleh
komputer.
5. Pengujian
Proses pengujian
dilakukan pada logika internal untuk memastikan semua pernyataan sudah diuji.
Pengujian eksternal fungsional untuk menemukan kesalahan-kesalahan dan
memastikan bahwa input akan memberikan hasil yang aktual sesuai yang
dibutuhkan.
6. Pemeliharaan
Perangkat lunak yang
sudah disampaikan kepada pelanggan pasti akan mengalami perubahan. Perubahan
tersebut bisa karena mengalami kesalahan karena perangkat lunak harus
menyesuaikan dengan lingkungan (periperal atau sistem operasi baru) baru, atau
karena pelanggan membutuhkan
perkembangan fungsional atau unjuk kerja.