A. Pengertian Rekayasa Perangkat Lunak
Konsep dasar rekayasa perangkat lunak
mempunyai dua hal pokok yaitu perangkat lunak (software) dan komponen
perekayasa. Menurut IEEE definisi perangkat lunak (software) merupakan
program komputer, prosedur, data dan semua dokumentasi yang berhubungan operasi
pada sistem komputer.
jadi bisa disimpulkan bahwa software merupakan
kumpulan dari object membentuk konfigurasi yang didalamnya termasuk program,
dokumen, dan data. Sedangkan Perekayasa software bertugas mengembangkan
produk perangkat lunak, yang secara produk dapat dikategorikan menjadi 2 tipe
yaitu :
a.
Produk
generik
Sistem stand-alone, produk
shrink-wrapped
b.
Produk
pesanan
Produk custemisasi, terdapat
proses interaksi antara pemesan dan pembuat.
Rekayasa perangkat lunak dapat didefinisikan sebagai
disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai tahap
awal spesifikasi sistem sampai pemeliharaan sistem setelah digunakan. Rekayasa
perangkat lunak tidak hanya berhubungan dengan proses teknis dari pengembangan
perangkat lunak tetapi juga mencakup kegiatan manajemen proyek perangkat lunak
dan pengembangan alat bantu, metode dan teori untuk mendukung produksi
perangkat lunak. Secara umum rekayasa perangkat lunak memakai pendekatan yang
sistematis dan terorganisir dengan menggunakan metode tertentu.
Perangkat lunak
adalah seluruh perintah yang digunakan untuk memproses informasi.Perangkat
lunak dapat berupa program atau prosedur.Progra adalah kumpulan perintah yang dimengerti oleh
komputer,sedankan prosedur adalah perintah yang dibutuhkan oleh pennguna
dalam memproses informasi.
B. Ruang Lingkup Rekayasa Perangkat Lunak
Sesuai definisi yang sudah disampaikan sebelumnya,maka ruang lingkup RPL dapat digambarkan sebagai berikut :
- SoftwarerequirementsberhSoftware
requirements berhubungan dengan spefisikasi kebutuhan dan persyaratan
perangkat lunak.
- Software
design mencakup rposes penentuan arsitektur,komponen,antar muka, dan
karakteristik lain dari perangkat lounak.
- Software
construction berhubungan dengan detil pengembangan perangkat
lunak,termasuk algoritma.pengkodean,pengujian,dan pencarian kesalahan.
- Software
testing meliputi penhujian pada keseluruhan perilaku perangkat lunak.
- Software
maintenance mencakup upay-upaya perawatan ketika perangkat lunak telah
dioperasikan.
- Software
configuration management berhubungan dengan usaha perubahan konfigurasi
perngkat lunak untuk memenuhi kebutuhan tertentu.
- Software
engineering management berkaitan dengan pengelolaan dan pengukuran RPL
termasuk perencaan proyek perangkat lunak.
- Software
engineering toolos and methods mencakupkajian teoritis tentang alat bantu
dan metode RPL.
- Software
engineering proses berhubungan dengan
definisi,implementasi,pengukuran,pengelolaan,perubahan dan perbaikan
proses RPL.
- Software quality menitik beratkan pada kualitas dan daur hidup perangkat lunak.
C.
Proses dan Metode Rekayasa Perangkat Lunak
Proses
perangkat lunak adalah seri aktivitas yang harus dilaksanakan selama siklus
hidup perangkat lunak, yaitu periode waktu yang dimulai saat produk perangkat
lunak disusun dan berakhir saat produk tersebut tidak dapat digunakan lagi. Mengacu
pada IEEE/EIA 12207 Standard for Information Technology, ada tiga kelompok
besar proses perangkat lunak, yaitu:
1.
proses utama
(primary processes)
2.
proses
pendukung (supporting processes)
3.
proses
organisasi (organizational processes)
Setiap proses yang ada pada
masing-masing kelompok proses terdiri dari beberapa aktivitas, dan setiap
aktivitas dibagi menjadi beberapa pekerjaan. Setiap pekerjaan mengacu pada
produk perangkat lunak atau dokumen yang tertentu yang harus dibuat.
Proses perangkat lunak merupakan
serangkaian kegiatan dan hasil hasil relevannya yang menghasilkan perangkat
lunak. Kegiatan ini sebagian besar dilakukan oleh perekayasa perangkat lunak.
Terdapat empat kegiatan proses dasar, meliputi :
·
Spesifikasi
perangkat lunak. Fungsionalitas perangkat lunak dan batasan kemampuan
operasinya harus didefinisikan.
·
Pengembangan
perangkat lunak. Pengembangan terhadap produk perangkat lunak yang memenuhi
spesifikasi perangkat lunak.
·
Validasi
perangkat lunak.
·
Perangkat
lunak harus divalidasi untuk menjamin bahwa perangkau lunak melakukan apa yang
diinginkan oleh user.
·
Evolusi
rangkat lunak. Perangkat lunak harus berkembang untuk memenuhi kebutuhan
pelanggan yang berubah ubah.
a.
Metodologi Rekayasa
Perangkat Lunak
Terdapat
beberapa metodologi dalam rekayasa perangkat lunak, antara lain:
1. System Development Methodologies
o Metodologi yang mengacu pada pendekatan implementasi SDLC.
o Metodologi akan berubah-ubah tergantung pada kepentingan dan
kegunaan software itu sendiri.
2. Process-centered Methodologies
o Fokus pada penentuan aktifitas yang berhubungan dengan
sistem.
o Menyajikan konsep sistem sebagai serangkaian proses yang
mengalir masuk dan keluar.
3. Data-centered Methodologies
o Fokus pada penentuan isi dari data penyimpanan dan bagaimana
mereka terorganisasi.
o Data-centered methodologies menggunakan data models sebagai
inti dari konsep sistem.
4. Object-oriented Methodologies
o Metodologi ini berhasil menyeimbangkan fokus antara proses
dan data.
o The Unified Modeling Language (UML) digunakan untuk
mendeskripsikan konsep sistem sebagai koleksi dari object melengkapi data dan
proses.
D.Jenis-jenis Perangkat Lunak
Jenis-jenis perangkat lunak dilihat dari
fungsinya, perangkat lunak dapat dikelompokkan menjadi:
1.
Perangkat
Lunak Sistem
Perangkat
lunak yang kegunaannya lebih banyak ditujukan untuk operasional komputer atau
perangkat lunak lain. Perangkat lunak yang termasuk dalam kelompok ini adalah:
o
sistem
operasi
o
penerjemah
bahasa pemrograman (compiler/interpreter)
o
utility
software
2.
Perangkat
lunak aplikasi
Perangkat
lunak yang kegunaannya lebih banyak ditujukan untuk membantu menyelesaikan
masalah-masalah yang dihadapi oleh pemakai. Perangkat lunak aplikasi dapat
dibedakan menjadi:
o
program
paket yang sudah jadi (package program)
o
program
aplikasi buatan sendiri (tailor made)
Sedangkan jika dilihat dari bentuk
aplikasinya, perangkat lunak dibedakan menjadi:
1.
Perangkat
lunak sistem (system software)
Sekumpulan
program yang ditulis untuk mendukung operasional komputer atau kepentingan
program lain, seperti:
o
sistem
operasi
o
compiler/interpreter
o
utility software
2. Perangkat lunak waktu nyata (real-time software)
Perangkat lunak yang
memonitor, menganalisis, atau mengendalikan kejadian-kejadian dunia nyata
berdasarkan kejadian (event) yangditerimanya dengan kendala waktu yang ketat (teliti), seperti:
o
perangkat
lunak untuk mengatur mekanisme kerja lift
o ATCS (Automatic
Traffic Control System)
3. Perangkat lunak bisnis (business software)
Perangkat lunak yang
memberikan fasilitas operasi untuk bisnis ataufasilitas pengambilan keputusan manajemen,
seperti:
o aplikasi untuk sistem informasi, misalnya sistem
persediaan,akuntansi, produksi, dan lain-lain.
o sistem pendukung keputusan
o Enterprise Resources Planning (ERP)
4. Perangkat lunak rekayasa dan ilmu pengetahuan (engineering
andscientific software)
Perangkat lunak jenis ini
biasanya berhubungan dengan komputasidata numerik, CAD (Computer Aided
Design), simulasi sistem, danlain-lain, seperti:
o aplikasi statistika (misalnya SPSS), matematika (Math Lab)
o aplikasi untuk merancang lengkung sayap pesawat terbang
5. Embedded Software
Perangkat lunak yang menyatu (terintegrasi) dengan
perangkattertentu yang digunakan untuk mengontrol produk atau sistem, baikuntuk
konsumen atau pasar industri, seperti :
o aplikasi programmable logic circuit (PLC)
o permainan (game) pada mobile phone
6. Perangkat lunak pribadi (personal software)
Perangkat lunak yang banyak digunakan pada aplikasi-aplikasi
yang bersifat perorangan, Seperti :
o pengolah kata (word processor), lembar kerja
elektronik(spreadsheet), organizer
o aplikasi keuangan pribadi
7. Perangkat lunak intelegensia buatan (artificial
inteligent software)
Perangkat lunak yang dibuat
dengan menggunakan teknik algoritmanon-numerik untuk memecahkan masalah yang
kompleks, Seperti:
o sistem pakar (expert system)
o pemrosesan bahasa alami (natural language)
o
permainan
catur
o
E. Tahapan Rekayasa Perangkat Lunak
Meskipun
dalam pendekatan berbeda-beda, namun model-model pendekatan memiliki kesamaan,
yaitu menggunaka pola tahapan analysis – design – coding(construction) –
testing – maintenance.
1. Analisis sistem
adalah sebuah teknik pemecahan masalah
yang menguraikan sebuah sistem menjadi komponen-komponennya dengan tujuan
mempelajari seberapa bagus komponen-komponen tersebut bekerja dan berinteraksi
untuk meraih tujuan mereka.
Analisis mungkin
adalah bagian terpenting dari proses rekayasa perangkat lunak. Karena semua proses lanjutan akan sangat
bergantung pada baik tidaknya hasil analisis. Ada satu bagian penting yang
biasanya dilakukan dalam tahapan analisis yaitu pemodelan proses bisnis.
2. Model proses
adalah model yang memfokuskan pada
seluruh proses di dalam sistem yang
mentransformasikan data menjadi informasi (Harris, 2003). Model proses juga menunjukkan aliran data
yang masuk dan keluar pada suatu proses.
Biasanya model ini digambarkan dalam bentuk Diagram Arus Data (Data Flow
Diagram / DFD). DFD meyajikan gambaran
apa yang manusia, proses dan prosedur lakukan untuk mentransformasi data
menjadi informasi.
3. Disain perangkat lunak
adalah tugas, tahapan atau aktivitas
yang difokuskan pada spesifikasi detil dari solusi berbasis computer (Whitten
et al, 2004).
Disain perangkat lunak sering juga
disebut sebagai physical design. Jika
tahapan analisis sistem menekankan pada masalah bisnis (business rule), maka
sebaliknya disain perangkat lunak fokus pada sisi teknis dan implementasi
sebuah perangkat lunak (Whitten et al, 2004).
Output utama dari
tahapan disain perangkat lunak adalah
spesifikasi disain. Spesifikasi ini
meliputi spesifikasi disain umum yang akan disampaikan kepada stakeholder
sistem dan spesifikasi disain rinci yang akan digunakan pada tahap
implementasi. Spesifikasi disain umum
hanya berisi gambaran umum agar stakeholder sistem mengerti akan seperti apa
perangkat lunak yang akan dibangun.
Spesifikasi disain
rinci atau kadang disebut disain arsitektur rinci perangkat lunak diperlukan
untuk merancang sistem sehingga memiliki konstruksi yang baik, proses
pengolahan data yang tepat dan akurat, bernilai, memiliki aspek user friendly
dan memiliki dasar-dasar untuk pengembangan selanjutnya.
Desain arsitektur ini terdiri dari
desain database, desain proses, desain user interface yang mencakup desain input,
output form dan report, desain hardware, software dan jaringan. Desain proses merupakan kelanjutan dari
pemodelan proses yang dilakukan pada tahapan analisis.
4. Konstruksi
adalah tahapan menerjemahkan hasil disain logis dan fisik ke dalam kode-kode program komputer.
5. Pengujian
sistem melibatkan semua kelompok pengguna yang telah direncanakan
pada tahap sebelumnya. Pengujian tingkat penerimaan terhadap perangkat lunak
akan berakhir ketika dirasa semua kelompok pengguna menyatakan bisa menerima
perangkat lunak tersebut berdasarkan
kriteria-kriteria yang telah ditetapkan.
6. Perawatan dan Konfigurasi
Ketika sebuah perangkat lunak telah
dianggap layak untuk dijalankan, maka tahapan baru menjadi muncul yaitu
perawatan perangkat lunak.