BAB 1
PENDAHULUAN
A. Pengertian Rekayasa Perangkat Lunak
Istilah Rekayasa Perangkat Lunak (RPL) secara umum disepakati sebagai terjemahan dari istilah Software Engineering. Istilah Software Engineering
dipopulerkan tahun 1968 pada Software Engineering Conference yang diselenggarakan oleh NATO. Sebagian orang mengartikan RPL hanya sebatas pada bagaimana membuat program komputer. Padahal ada perbedaan yang mendasar antara perangkat lunak (software) dan program komputer.
Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses informasi. Perangkat lunak dapat berupa program atau prosedur. Program adalah kumpulan perintah yang dimengerti oleh komputer sedangkan prosedur adalah perintah yang dibutuhkan oleh pengguna dalam memproses informasi (O’Brien, 1999). Pengertian RPL sendiri adalah sebagai berikut:
Jelaslah bahwa RPL tidak hanya berhubungan dengan cara pembuatan program komputer. Pernyataan “semua aspek produksi” pada pengertian di atas, mempunyai arti semua hal yang berhubungan dengan proses produksi seperti manajemen proyek, penentuan personil, anggaran biaya, metode, jadwal, kualitas sampai dengan pelatihan pengguna merupakan bagian dari RPL.
B. Tujuan Rekayasa Perangkat Lunak
Secara umum tujuan RPL tidak berbeda dengan bidang rekayasa yang lain.
Dari Gambar 1 dapat diartikan bahwa bidang rekayasa akan selalu berusaha menghasilkan output yang kinerjanya tinggi, biaya rendah dan waktu penyelesaian yang tepat. Secara lebih khusus kita dapat menyatakan tujuan RPL adalah :
a. Memperoleh biaya produksi perangkat lunak yang rendah.
b. Menghasilkan perangkat lunak yang kinerjanya tinggi, andal dan tepat
waktu
c. Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis
Platform.
d. Menghasilkan perangkat lunak yang biaya perawatannya rendah.
C. Ruang Lingkup Rekayasa Perangkat Lunak
Sesuai definisi yang telah disampaikan sebelumnya, maka ruang lingkup
RPL dapat digambarkan sebagai berikut.
- Software requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak.
- Software design mencakup proses penentuan arsitektur, komponen, antarmuka, dan karakteristik lain dari perangkat lunak.
- Software construction berhubungan dengan detil pengembangan perangkat lunak, termasuk algoritma, pengkodean, pengujian, dan pencarian kesalahan.
- Software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak.
- Software maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan.
- Software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu.
- Software engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak.
- Software engineering tools and methods mencakup kajian teoritis tentang alat bantu dan metode RPL.
- Software engineering process berhubungan dengan definisi, implementasi, pengukuran, pengelolaan, perubahan dan perbaikan proses RPL.
- Software quality menitikberatkan pada kualitas dan daur hidup perangkat lunak.
BAB II
METODE REKAYASA PERANGKAT LUNAK
Ketika kita bekerja dengan komputer seperti pada kita membutuhkan serangkaian tahapan dan cara-cara tertentu agar dapat menghasilkan sesuatu yang menjadi harapan kita. Demikian juga dalam rekayasa perangkat
lunak, diperlukan tahapan-tahapan kerja yang harus dilalui. Rekayasa perangkat lunak yang sukses tidak hanya membutuhk kemampuan komputasi seperti algoritma, pemrograman, dan basis data yang kuat, namun juga perlu penentuan tujuan yang baik, identifikasi cara penyelesaian, metode pengembangan, urutan aktifitas, identifikasi kebutuhan sumberdaya, dan faktor-faktor lain.
Hal-hal seperti ini terkait dengan apa yang disebut dengan metode rekayasa perangkat lunak. Isi dari bab ini tidak termasuk dalam standar kompetensi bidang keahlian RPL. Namun penulis memandang perlu disampaikan agar kalian dapat mengetahui bagaimana sebenarnya rekayasa perangkat lunak dilakukan dan metode-metode apa saja yang biasa digunakan. Beberapa bagian dari bab ini mungkin agak sulit dipahami, sehingga peran guru dalam membantu menjelaskan akan sangat diperlukan.
Setelah mempelajari Rekayasa Perangkat Lunak ini diharapkan mampu :
1. Memahami karakteristik umum model proses dalam rekayasa perangkat Lunak
2. Menyebutkan beberapa model rekayasa perangkat lunak
3. Mengetahui Prinsip-prinsip dari metode waterfall, prototyping, dan univied process.
4. Memahami Tahapan-tahapan dalam rekayasa Perangkat Lunak.
A. Model Rekayasa Perangkat Lunak
Pada rekayasa perangkat lunak, banyak model yang telah dikembangkan untuk membantu proses pengembangan perangkat lunak. Model-model ini pada umumnya
mengacu pada model proses pengembangan sistem yang disebut System Development Life Cycle (SDLC) seperti terlihat pada Gambar 10.
Setiap model yang dikembangkan mempunyai karakteristik sendiri- sendiri.
Namun secara umum ada persamaan dari model-model ini, yaitu:
§ Kebutuhan terhadap definisi masalah yang jelas. Input utama dari setiap model pengembangan perangkat lunak adalah pendefinisian masalah yang jelas. Semakin jelas akan semakin baik karena akan memudahkan dalam penyelesaian masalah. Oleh karena itu pemahaman masalah seperti dijelaskan pada Bab 1, merupakan bagian penting dari model pengembangan perangkat lunak.
§ Tahapan-tahapan pengembangan yang teratur. Meskipun model-model pengembangan perangkat lunak memiliki pola yang berbeda-beda, biasanya model-model tersebut mengikuti pola umum analysis – design – coding – testing - maintenance.
§ Stakeholder berperan sangat penting dalam keseluruhan tahapan pengembangan. Stakeholder dalam rekayasa perangkat lunak dapat berupa pengguna pemilik, pengembang, pemrogram dan orang-orang yang terlibat dalam rekayasa perangkat lunak tersebut.
§ Dokumentasi merupakan bagian penting dari pengembangan perangka lunak. Masing-masing tahapan dalam model biasanya menghasilkan sejumlah tulisan, diagram, gambar atau bentuk-bentuk lain yang harus didokumentasi dan merupakan bagian tak terpisahkan dari perangkat lunak yang dihasilkan.
§ Keluaran dari proses pengembangan perangkat lunak harus bernilah ekonomis. Nilai dari sebuah perangkat lunak sebenarnya agak susah di- rupiah-kan Namun efek dari penggunaan perangkat lunak yang telah dikembangkan haruslah memberi nilai tambah bagi organisasi. Hal ini dapat berupa penurunan biaya operasi, efisiensi penggunaan sumberdaya, peningkatan keuntungan organisasi, peningkatan “image” organisasi dan lain-lain
Ada banyak model pengembangan perangkat lunak, antara lain
The Waterfall Model, Joint Application Development (JAD), Information Engineering (IE), Rapid Application Development (RAD), Prototyping, Unified Process (UP), Structural Analysis and Design (SAD) d Framework for the Application of System thinking (FAST) The Waterfall Model, Prototyping, Unified Process (UP).
1. The waterfall model
Model siklus hidup (life cycle model) adalah model utama dan dasar dari banyak
model. Salah satu model yang cukup dikenal dalam dunia rekayasa perangkat lunak adalah The Waterfall Model. Ada 5 tahapan utama dalam The Waterfall Model seperti terlihat pada Gambar 2.3. di sebut Waterfall ( berarti Air Terjun) memang diagram tahapan prosesnya mirip dengan air terjun yang bertingkat. Tahapan-tahapan dalam The Waterfall Model secara ringkas adalah sebagai berikut :
a) Tahap investigasi dilakukan untuk menentukan apakah terjadi suatu masalah atau adakah peluang suatu sistem informasi dikembangkan. Pada tahapan ini studi kelayakan perlu dilakukan untuk menentukan apakah sistem informasi yang akan dikembangkan merupakan solusi yang layak
b) Tahap analisis bertujuan untuk mencari kebutuhan pengguna dan organisasi serta menganalisa kondisi yang ada (sebelum diterapkan sistem informasi yang baru).
c) Tahap disain bertujuan menentukan spesifikasi detil dari komponen- komponen sistem informasi (manusia, hardware, software, network dan data) dan produk-produk informasi yang sesuai dengan hasil tahap analisis.
d) Tahap implementasi merupakan tahapan untuk mendapatkan atau mengembangkan hardware dan software (pengkodean program), melakukan pengujian, pelatihan dan perpindahan ke sistem baru.
e) Tahapan perawatan (maintenance) dilakukan ketika sistem informasi sudah dioperasikan. Pada tahapan ini dilakukan monitoring proses, evaluasi dan perubahan (perbaikan) bila diperlukan.
2. Prototyping model
Prototyping adalah salah satu pendekatan dalam rekayasa perangkat lunak yang secara langsung mendemonstrasikan bagaimana sebuah perangkat lunak atau komponen-komponen perangkat lunak akan bekerja dalam lingkungannya sebelum tahapan konstruksi aktual dilakukan (Howard, 1997). Prototyping model dapat diklasifikasikan menjadi beberapa tipe seperti terlihat pada gambar 12
- Reusable prototype :
Prototype yang akan ditransformasikan menjadi produk final.
- Throwaway prototype :
Prototype yang akan dibuang begitu selesai menjalankan maksudnya.
- Input/output prototype :
Prototype yang terbatas pada antar muka pengguna (user interface).
- Processing prototype :
Prototype yang meliputi perawatan file dasar dan proses-proses transaksi.
- System prototype :
Prototype yang berupa model lengkap dari perangkat lunak.
Tahap-tahap dalam prototyping boleh dikata merupakan tahap-tahap yang dipercepat. Strategi utama dalam prototyping adalah kerjakan yang mudah terlebih dahulu dan sampaikan hasil kepada pengguna sesegera mungkin. Harris (2003) membagi prototyping dalam enam tahapan seperti terlihat pada gambar 13.
Tahapan-tahapan secara ringkas dapat dijelaskan sebagai berikut:
- Identifikasi kandidat prototyping. Kandidat dalam kasus ini meliputi user interface (menu, dialog, input dan output), file-file transaksi utama, dan fungsi-fungsi pemrosesan sederhana.
- Rancang bangun prototype dengan bantuan software seperti word processor, spreadsheet, database, pengolah grafik, dan software CASE
(Computer-Aided System Engineering).
- Uji prototype untuk memastikan prototype dapat dengan mudah dijalankan untuk tujuan demonstrasi.
- Siapkan prototype USD (User’s System Diagram) untuk mengidentifikasi bagian-bagian dari perangkat lunak yang di-prototype-kan.
- Evaluasi dengan pengguna untuk mengevaluasi prototype dan melakukan perubahan jika diperlukan.
- Transformasikan prototype menjadi perangkat lunak yang beroperasi penuh dengan melakukan penghilangan kode-kode yang tidak dibutuhkan, penambahan program-program yang memang dibutuhkan dan perbaikan dan pengujian perangkat lunak secara berulang.
Tidak ada komentar:
Posting Komentar