A.
Pengertian
Software adalah
produk yang dirancang dan dibangun oleh software engineer, meliputi
program yang dijalankan dalam komputer
dengan berbagai ukuran dan arsitektur, dokumen hasil cetakan dan formulir yang
bersifat maya, data yang terdiri dari kombinasi angka dan huruf, termasuk informasi yang disajikan melalui
gambar, gambar hidup dan suara.
B. Tujuan Rekayasa Perangkat Lunak
Secara
lebih khusus kita dapat menyatakan tujuan dan Rekaya Perangkat Lunak ini
adalah:
1.
Memperoleh
biaya produksi perangkat lunak yang rendah.
2.
Menghasilkan
pereangkat lunak yang kinerjanya tinggi, andal dan tepat waktu
3.
Menghasilkan
perangkat lunak yang dapat bekerja pada berbagai jenis platform
4.
Menghasilkan
perangkat lunak yang biaya perawatannya rendah
C.
Jenis-Jenis
perangkat lunak menurut Roger S.Pressman :
1. perangkat
lunak sistem
2. perangkat
lunak real-time
3. perangkat
lunak bisnis
4. perangkat
lunak teknik dan ilmu pengetahuan
5. embedded
software
6. perangkat
lunak komputer personal
7. perangkat
lunak kecerdasan buatan
1. Generasi Awal
Ø Batch orientation
Ø Custom software
2. Generasi Kedua
Ø Multi--user, Real
Ø Database
Ø Product software
3. Generaasi Ketiga
Ø Distributed systems
Ø Low cost hardware
4. Generasi Keempat
Ø Desktop systems
Ø Object Oriented Technologies
Ø Expert Systems
Ø AI, neural networks
Ø Parallel computing
Ø Network computers
E. Metode Proses Pengembangan Software
Engineering
Pengembangan sistem dapat berati
menyusun suatu sistem yang baru untuk menggantikan sistem yang lama secara
keseluruhan atau memperbaiki sistem telah ada.
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). Setiap
model yang dikembangkan mempunyai karakteristik tersendiri. Namun secara umum
ada persamaan dari model-model tersebut.
a.
Model
Sekuensial Linier (Model Air Terjun)
Dalam model sekuensial linier atau
yang biasa dikenal sebagai waterfall terdapat lima tahapan utama yang harus
dilakukan. Pada model ini setiap tahapan harus diselesaikan secara berurutan,
karena untuk dapat melanjutkan ke tahap berikutnya maka tahapan sebelumnya
harus diselesaikan terlebih dahulu. Berikut adalah tahapan-tahapan dari model
sekuensial linier.
1. Tahap Rekayasa dan pemodelan sistem
informasi (investigasi/requirement)
Investigasi dilakukan untuk menentukan apakah terjadi suatu
masalah atau adakah peluang suatu sistem informasi dikembangkan.
2. Tahap Analisis kebutuhan perangkat
lunak
Tahap ini dilakukan untuk mengetahui kebutuhan sistem dan
mencari kebutuhan pengguna dan organisasi serta menganalisa kondisi yang ada.
Merupakan tahap pemahaman kebutuhan user terhadap sistem oleh analis yang
kemudian semuanya akan dibuat dalam bentuk yang dapat dimengerti oleh user
3. Tahap Desain
Menentukan spesifikasi detil dari komponen-komponen sistem
informasi (manusia, hardware, software, network dan data) dan produk-produk
informasi yang sesuai dengan hasil tahap analisis. Proses desain menerjemahkan
syarat atau kebutuhan ke dalam sebuah representasi perangkat lunak yang dapat
diperkirakan demi kulitas sebelum dimulai pemunculan kode.
4. Tahap Implementasi (pengkodean)
Desain harus diterjemahkan kedalam bentuk yang dapat
dimengerti mesin. Oleh karena itulah dilakukan pengkodean untuk mendapatkan
atau mengembangkan hardware dan software. Lalu dilakukan pengujian, pelatihan
dan perpindahan ke sistem baru.
5. Tahap Pengujian
Setiap kali kode dari sistem telah dibuat maka akan
dilakukan pengujian untuk memastikan bahwa semua pernyataan sudah di uji.
Selain itu pengujian dilakukan untuk menemukan kesalahan-kesalahan dan
memastikan input memberikan hasil yang diharapkan.
6. Tahap Pemeliharaan
Perangkat lunak akan mengalami perubahan setelah disampaikan
ke pelanggan (perkecualian yang mungkin adalah perangkat lunak yang
dilekatkan). Perubahan akan terjadi karena kesalahan-kesalahan ditentukan,
karena perangat lunak harus disesuaikan untuk mengakomodasi perubahan-perubahan
didalam lingkungan eksternalnya ( contohnya perubahan yang dibutuhkan sebagai
akibat dari perangkat peripheral atau sistem informasi yang baru), atau karena
pelanggan membutuhkan perkembangan fungsional atau unjuk kerja. Pemeliharaan
perangkat lunak mengaplikasikan lagi setiap fase program sebelumnya dan tidak
membuat yang baru lagi.
Beberapa
kelebihan dari linear sequential model:
- Mudah dimengerti, mudah digunakan
- Struktur menyediakan staf berpengalaman
- Milestones dipahami dengan baik
- Persyaratan Sets stabilitas
- Baik untuk kontrol manajemen
(rencana, staf, lagu)
- Bekerja dengan baik ketika
kualitas lebih penting daripada biaya atau jadwal
Beberapa
kelemahan linear sequential model:
- Proyek yang sebenarnya jarang mengikuti alur
sekuensial, sehingga perubahan yang terjadi dapat menyebabkan hasil
yang sudah didapat tim harus diubah kembali.
- Linear
sequential model mengharuskan semua kebutuhan pemakai sudah dinyatakan
secara eksplisit di awal proses, tetapi kadang-kadang hal ini tidak dapat
terlaksana karena kesulitan yang dialami pemakai saat akan mengungkapkan
semua kebutuhannya tersebut.
- Pemakai harus bersabar karena
versi dari program tidak akan didapat sampai akhir rentang waktu proyek.
- Adanya waktu menganggur bagi
pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan
pekerjaannya.
b. Prototyping Model
Secara Ideal prototipe berfungsi
sebagai sebuah mekanisme untuk mengidentifikasi kebtuhan perangat lunak.
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).
Pendekatan prototyping model
digunakan jika pemakai hanya mendefinisikan objektif umum dari perangkat lunak
tanpa merinci kebutuhan input, pemrosesan dan outputnya, sementara pengembang
tidak begitu yakin akan efisiensi algoritma, adaptasi sistem operasi, atau
bentuk interaksi manusia-mesin yang harus diambil.
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. 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.
Beberapa
kelebihan dari model prototype:
- Pelanggan dapat user dapat langsung melihat wujud
perangkat lunak yang akan dibangunmeskipun sederhana dan dari sana dapat
digali kebutuhan yang lebih dalam sebagai bahan penyusunan perangkat lunak
berikutnya.
- Pengembang belajar dari
pelanggan
- Yang lebih akurat produk akhir
- Persyaratan terduga ditampung
- Fleksibel memungkinkan untuk
desain dan pengembangan
- Tenang, terlihat tanda-tanda
kemajuan yang dihasilkan
- Interaksi dengan merangsang
prototipe kesadaran diperlukan tambahan fungsionalitas
Beberapa
kekurangan dari model prototype:
- Kecenderungan untuk mengabaikan pengembangan program
terstruktur untuk “kode-dan-memperbaiki” pembangunan
- Reputasi buruk untuk
“cepat-dan-kotor” metode
- Kemampu-rawatan keseluruhan
dapat diabaikan
- Pelanggan mungkin ingin
prototipe disampaikan.
- Proses ini mungkin berlangsung
selamanya (scope creep)
c. RAD (Rapid Application Development) Model
Model pengembangan 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.
Pendekatan RAD mencakup bebrapa
tahap yaitu sebagai berikut :
1.
Pemodelan
Bisnis
Pemodelan bisnis yang mencakup beberapa pertanyyan berikut
· Informasi apa yang mengendalikan
proses bisnis?
· Informasi apa yang di munculkan?
· Siapa yang memunculkanya?
· Ke mana informasi itu pergi?
· Siapa yang memprosesnya?
2.
Pemodelan
Data
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.
3.
Pemodelan
Proses
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.
4.
Pembuatan
Aplikasi
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.
5.
Pengujian
dan Pergantian
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.
Beberapa
kelebihan dari model RAD :
- Waktu pengembangan yang relatif
- Biaya yang relatif lebih murah
Beberapa
kekurangan dari model RAD :
- Tidak cocok untuk proyek skala besar
- Proyek bisa gagal karena waktu
yang disepakati tidak dipenuhi
- Sistem yang tidak bisa dimodularisasi
tidak cocok untuk model
- Resiko teknis yang tinggi juga
kurang cocok untuk model ini
d. Model Pertambahan ( Increment )
Model pertambahan adalah gabungan
elemen-elemen model sekuensial linier (yang diaplikasikan secara berulang)
dengan filosofi prototipe iteratif. Model pertambahan berfokus pada penyampaian
produk operasional dalam setiap pertambahannya. Penambahan fungsi tambahan
dilakukan untuk membuat sistem menjadi lebih baik. Pada intinya model
penambahan memebuat sistem yang dapat terus ditambahkan fungsi-fungsi tambahan
lain sesuai kebutuhan yang terus beralnjut dalam pemakaian sistem tersebut.
Contohnya pada Microsoft Word, pada dasarnya (increment 1) Ms word berfungsi
untuk memanajemen fie dasar seperti mengetik, mengedit, dan menghasilkan
dokumen. Kemudian pada tahap pertambahan kedua (increment 2) ditambahkan fungsi
editing dan kemampuan penghasilan dokumen yang lebih canggih seperti word art
dan spelling, lalu dianjutkan penambahan-penambahan fungsi yang lainnya
sehingga produk tersebut memiliki semua aspek yang dibutuhkan oleh penggunanya.
e. Model Spiral
Model spiral adalah model proses
perangkat lunak yang evousioner yang merangkai sifat iteraif dari prootipe
dengan cara kontrol dan aspek sistematis dari model sekuensial. Model yang berbentuk
spiral diusulkan awalnya diusulkan oleh Boehm. Model spiral tidak memiliki
tahapan tetapi dibagi mejadi sejumah aktifitas kerangka kerja atau disebut juga
wilayah tugas, diantara tiga dari enam wilayah tgas meggambarkan moel spiral
yang berisi 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
3.
Analisis
Resiko
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 – trugas yang dibutuhkan untuk mengkonstruksi,
menguji, memasang (instal) 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.
Referensi
Tidak ada komentar:
Posting Komentar