Rekayasa Perangkat Lunak
1.Definisi Perangkat Lunak
Pengertian perangkat lunak komputer (software) adalah istilah umum untuk berbagai program yang berisi instruksi-instruksi terkait mengoperasikan komputer atau perangkat keras terkait. Software dalam bahasa Indonesia disebut juga perangkat lunak, karena software secara fisik tidak dapat dilihat namun dapat dioperasikan.
2.Karakteristik Perangkat Lunak
- Berdasarkan Fungsi
A. Functionality, artinya mengacu terhadap tingkat kinerja dari perangkat lunak tersebut pada tujuan yang telah ditetapkan.
B. Reliability, yaitu berhubungan dengan kemampuan dari perangkat
lunak dalam menyediakan fungsionalitas seperti yang diinginkan, atau dalam
kondisi tertentu.
C. Usability, yaitu kemampuan dari perangkat lunak sampai
sejauh mana bisa untuk digunakan dengan baik dan mudah.
D. Efficiency, yaitu bagaimana kemampuan dari perangkat lunak
dalam menggunakan/mengaplikasikan sumber
daya sistem dengan cara yang efisien serta cara yang efektif untuk dipakai.
E. Maintainability, yaitu bagaimana kemampuan dari perangkat
lunak tersebut dalam “kemudahan untuk modifikasi” misalnya untuk memperbaiki
kinerja, memperbaiki kesalahan dan memperluas fungsi sari perangkat lunak.
F. Portability, yaitu mengacu terhadap kemudahan dari software
developer (pengembangan dari perangkat lunak). Artinya manakah software
developer yang bisa mentransfer suatu perangkat lunak. Caranya yaitu ditransfer
melalui satu platform ke platform yang lain, sehingga tidak terjadi perubahan
(jika terjadi juga hanya minimum). Sederhananya, yaitu kemampuan dari perangkat
lunak agar bisa berfungsi dengan baik tanpa ada perubahan di dalamnya baik pada
platform hardware (perangkat keras) dan software (perangkat lunak)
G. Robustness, yaitu jika perangkat memiliki data yang tidak
valid, sejauh manakah kemapuan dari perangkat lunak tersebut.
H. Integrity, yaitu berhubungan dengan kemampuan dari perangkat
lunak dalam hal akses data yang tidak sah dan juga data yang bisa dicegah.
- Berdasarkan Perbedaanya dengan Hardware
A. Perangkat lunak memiliki keunikan yaitu tidak diproduksi
secara masal, namun tetap dikembangkan. Berbeda dengan perangkat keras. Dimana
perangkat lunak yang dibuat hanya satu, bukan diproduksi dalam jumlah yang
banyak seperti perangkat keras.
B. Perangkat lunak tidak mengenal “kata usang”. Perangkat keras
bertolak belakang dengan perangkat lunak dalam hal ini karena perangkat keras
lebih mudah usang jika digunakan dalam periode yang lama. Misalnya jika membeli
sebuag Gadge yang memiliki Processor Snapdragon 835, ROM 64 GB, RAM 16 GB
Kamera 32 MB, semakin lama gadge tersebut akan usang, tandanya yaitu
performansinya akan menurun, serta harganya juga semakin lama akan turun/murah.
C. Beberapa dari perangkat lunak ada yang dikembangkan dengan
cara “pesanan (custom)”, sedangkan pengembangan dengan “Component-Based
Assembly” digunakan dalam perangkat keras.
- Berdasarkan Sifat
A. software engineering merupakan cara yang digunakan dalam
membuat perangkat lunak, bukan diproduksi dengan cara pabrikan atau manufaktur.
Sehingga bisa dikatakan suatu produksi yang cukup unik karena tidak memiliki
seri produksi.
B. Jika perangkat lunak mempunyai kekurangan/cacat, maka dapat
diperbaiki, dikembangkan dan diperbaharui secara kontinyu sehingga tidak pernah
usang atau wear out. Jika pengguna dari sistem perangkat lunak menginginkan
sistem sesuai keinginannya maka perangkat lunak bisa di bentuk sesui
keinginanya.
C. Perangkat lunak biasanya akan diperbaiki sesuai kebutuhan
dari penggunanya. Sedangkan barang dari pabrik bersifat final dan permanen saat
di produksi.
D. Bersifat invisible (tidak terlihat).
E. Fleksible, yaitu jika ada yang kekurangan dapat
dikembangkan/dimodifikasi.
F. Secara umum dapat dihubungkan ke sisitem komputer.
- Berdasarkan Buku Ian Sommerville
A. Maintanability, yaitu dapat dirawat. Dimana perangkat lunak
harus bisa memenuhi perubahan dari kebutuhan user.
B. Dependability, yaitu perangkat lunak harus bersifat dapat
dipercya.
C. Efisiensi, yaitu dalam hal penggunaan resource (penyimpanan)
harus efisien.
D. Usability, yaitu penggunaan dari perangkat lunak harus bisa
sesuai dengan yang telah direncanakan/yang dibuat.
Kategori Perangkat Lunak
- Perangkat Lunak Sistem (System Software) ex. Sistem Operasi .
- Perangkat Lunak Aplikasi (Application Software) ex. Adobe Photoshop, Ms.Word, Open Office, Libra Office.
- Perangkat Lunak Rekayasa/Ilmiah (Engineering/Scientific Software) ex. Aplikasi kebutuhan astronomi, otomotif.
- Perangkat Lunak yang tertanam (Embedded Software) ex. Sistem Control lalu lintas.
- Perangkat Lunak Lini Produk (Product-Line Software) ex. Produk kendali inventaris.
- Perangkat Lunak Aplikasi Web (Web/Mobile Applications). ex. Tiket.com
- Perangkat Lunak Kecerdasan Buatan (Artificial Intelligence Software). ex. Google Assistant
a. Stand-Alone Applications
adalah contoh aplikasi seperti aplikasi office pada PC, program CAD, software manipulasi foto, dll
b. Interactive Transaction-Based Applications
adalah aplikasi yang mengeksekusi pada computer remote dan
yang diakses oleh pengguna dari PC mereka sendiri atau terminal
c. Batch Processing Systems
adalah sistem bisnis yang dirancang untuk memproses data
input yang besar untuk membuat output yang sesuai. Contoh: sistem penagihan
telepon, dan system pembayaran gaji
d. Embedded Control Systems
adalah sistem kontrol PL yang mengontrol dan mengelola
perangkat keras, atau sistem yang tertanam pada jenis sistem lain. Contoh: PL
yang mengontrol pengereman anti-lock mobil, dan software dalam oven microwave
untuk mengontrol proses memasak.
e. Entertainment Systems
adalah sistem yang terutama untuk penggunaan pribadi dan
yang dimaksudkan untuk menghibur pengguna.
f. Systems for Modelling and Simulation
adalah sistem yang dikembangkan untuk model proses fisik
atau situasi, dengan banyak objek yang saling berinteraksi
g. Data
Collection Systems
adalah sistem yang mengumpulkan data dari lingkungan mereka menggunakan satu set sensor dan mengirim data ke sistem lain untuk diproses.
h. Systems of
Systems
adalah sistem
yang terdiri dari sejumlah sistem PL lain.
Perangkat Lunak Warisan
- Perangkat Lunak warisan harus diadaptasikan sedemikian rupa sehingga memenuhi kebutuhan dari lingkungan atau teknologi komputasi yang baru.
- Perangkat Lunak warisan harus ditingkatkan kinerjanya supaya dapat menjalankan kebutuhan bisnis baru.
- Perangkat Lunak warisan harus diperluas sedemikian rupa agar dapat saling mengoperasikan dengan sistem/perangkat lunak/basis data modern lainnya.
- Perangkat Lunak harus dirancang ulang sehingga dapat hidup dalam lingkungan pengoperasian jaringan komputer.
Kegagalan Perangkat Lunak
- Perhitungan yang salah
- Pengeditan data salah
- Kinerja perangkat lunak yang tidak memadai
- Perangkat lunak yang sulit digunakan
- Pemrosesan tidak konsisten
- Antarmuka yang salah atau tidak memadai dengan sistem lain
4.Proses Perangkat Lunak
Proses pengembangan perangkat lunak (Software development
process) adalah suatu struktur yang diterapkan pada pengembangan suatu produk
perangkat lunak yang bertujuan untuk mengembangkan sistem dan memberikan
panduan yang bertujuan untuk menyukseskan proyek pengembangan sistem melalui
tahap demi tahap. Proses ini memiliki beberapa model yang masing-masing
menjelaskan pendekatan terhadap berbagai tugas atau aktivitas yang terjadi
selama proses. Contoh model proses pengembangan perangkat lunak antara lain adalah
proses iteratif, Extreme Programming, serta proses air terjun (waterfall).
a. Memahami permasalahan
- Siapa yang terkait dalam pemecahan masalah?
- Apa saja yang tidak diketahui?
- Data, fungsi, dan fitur yang dibutuhkan
- Dapatkah masalah dikategorikan (dipecah menjadi masalah yang lebih kecil)?
- Dapatkah masalah diwakili dengan grafis?
- Dapatkah dibuat sebuah model analisis?
b. Merancang solusi
- Pernahkah ada masalah serupa sebelumnya dan telah didapatkan pemecahan masalahnya
- Dapatkah sub-masalah didefinisikan?
- Dapatkah menyusun solusinya?
c. Menjalankan rancangan
- Apakah solusi cocok dengan masalah?
- Apakah kode program dapat dilacak secara langsung?
- Apakah komponen dari solusi sudah tepat?
d. Memeriksa hasil
- Uji setiap komponen dari solusi dengan menggunakan strategi pengujian
- Apakah solusi sesuai dengan data, fungsi dan fitur yang dibutuhkan?
Mitos perangkat lunak ada 3, yaitu :
1. Mitos Manajemen
2. Mitos Pelanggan
3. Mitos praktisi
1. Mitos Manajemen
realitasnya : Walau hasil program sama, produktivitas dan
kualitas software harus ditingkatkan dengan menggunakan pendekatan software
developments.
Realitasnya : Memang buku tersebut ada, tetapi apakah buku
tersebut sudah dibaca atau buku tersebut sudah ketinggalan jaman (out of date).
Realitasnya : Definisi awal yang buruk adalah penyebab utama kegagalan usaha-usaha pembentukan software. Penjelasan yang formal dan terinci tentang informasi fungsi performance interface, hambatan desain dan kriteria validasi adlaah penting. Karakteristik di atas dapat ditentukan hanya setelah adanya komunikaso antara customer dan developer.
b. Kebutuhan proyek yang terus menerus berubah dapat dengan mudah diatasi karena software itu bersifat fleksibel. Kenyataannya memang benar bahwa kebutuhan software berubah, tetapi dampak dari perubahan berbeda dari waktu ke waktu.
3. Mitos Praktisi
Realitasnya : Metode untuk analisa desain dan testing diperlukan dalam pengembangan software.
b. Segera setelah sofware digunakan, pemeliharaan dapat diminimalisasikan dan diatasi dengan cara"CATCH AS CATCH CAM".
Realitasnya : Diperlukan budget yang besar dalam maintenance
software. Pemeliharaan software harus diorganisir, direncanakan dan dikontrol
seolah-olah sebagai suatu proyek besar dalam sebuah organisasi.
Komentar
Posting Komentar