Langsung ke konten utama

Rekayasa Perangkat Lunak

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

  1. Perangkat Lunak Sistem (System Software) ex. Sistem Operasi .
  2. Perangkat Lunak Aplikasi (Application Software) ex. Adobe Photoshop, Ms.Word, Open Office, Libra Office.
  3. Perangkat Lunak Rekayasa/Ilmiah (Engineering/Scientific Software) ex. Aplikasi kebutuhan astronomi, otomotif.
  4. Perangkat Lunak yang tertanam (Embedded Software) ex. Sistem Control lalu lintas.
  5. Perangkat Lunak Lini Produk (Product-Line Software) ex. Produk kendali inventaris.
  6. Perangkat Lunak Aplikasi Web (Web/Mobile Applications). ex. Tiket.com
  7. Perangkat Lunak Kecerdasan Buatan (Artificial Intelligence Software). ex. Google Assistant 
Jenis Perangkat Lunak

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

  1. Perangkat Lunak warisan harus diadaptasikan sedemikian rupa sehingga memenuhi kebutuhan dari lingkungan atau teknologi komputasi yang baru.
  2. Perangkat Lunak warisan harus ditingkatkan kinerjanya supaya dapat menjalankan kebutuhan bisnis baru.
  3. Perangkat Lunak warisan harus diperluas sedemikian rupa agar dapat saling mengoperasikan dengan sistem/perangkat lunak/basis data modern lainnya.
  4. Perangkat Lunak harus dirancang ulang sehingga dapat hidup dalam lingkungan pengoperasian jaringan komputer.


Kegagalan Perangkat Lunak

  1. Perhitungan yang salah
  2. Pengeditan data salah
  3. Kinerja perangkat lunak yang tidak memadai
  4. Perangkat lunak yang sulit digunakan
  5. Pemrosesan tidak konsisten
  6. Antarmuka yang salah atau tidak memadai dengan sistem lain
3. Rekayasa Perangkat Lunak

Rekayasa perangkat lunak adalah pengubahan perangkat lunak itu sendiri guna mengembangkan, memelihara, dan membangun kembali dengan menggunakan prinsip rekayasa untuk menghasilkan perangkat lunak yang dapat bekerja lebih efisien dan efektif untuk pengguna.


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).

5.Praktek Rekayasa Perangkat Lunak

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?
6. Mitos-Mitos Perangkat Lunak

Mitos perangkat lunak ada 3, yaitu :

1. Mitos Manajemen

2. Mitos Pelanggan

3. Mitos praktisi

 

1. Mitos Manajemen

 a. Kita tidak perlu mengubah pendekatan terhadap pengembangan software, karena jenis pemrograman yang kita lakukan sekarang ini sudah dilakukan 10 tahun yang lalu.

realitasnya : Walau hasil program sama, produktivitas dan kualitas software harus ditingkatkan dengan menggunakan pendekatan software developments.

 b. Kita sudah mempunyai buku yang berisi standarisasi dan prosedur untuk pembentukan software.

Realitasnya : Memang buku tersebut ada, tetapi apakah buku tersebut sudah dibaca atau buku tersebut sudah ketinggalan jaman (out of date).

 c. Jika kita tertinggal dari jadwal yang ditetapkan, kita menambah beberapa progammer saja. Konsep ini sering disebut Mongolin harde concept.

 2. Mitos Pelanggan

 a. Pernyataan tujuan umum sudah cukup untuk memulai penulisan program. Penjelasan yang lebih rinci akan menyusul kemudian.

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

 a. Tidak ada metode untuk analisa dan testing terhadap suatu pekerjaan, cukup menuju ke depan terminal dan mulai coding.

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

Postingan populer dari blog ini

Pengujian Perangkat Lunak

1. Dasar-dasar pengujian perangkat lunak Pengujian perangkat lunak adalah proses menjalankan dan mengevaluasi sebuah PL secara manual maupun otomatis untuk menguji apakah PL sudah memenuhi persyaratan atau belum, atau untuk menentukan perbedaan antara hasil yang diharapkan dengan hasil sebenarnya. Pengujian bertujuan untuk mencari kesalahan. Pengujian yang baik adalah pengujian yang memiliki kemungkinan besar dalam menemukan kesalahan sebanyak mungkin dengan usaha sekecil mungkin. A. Tujuan Pengujian a. Menilai apakah perangkat lunak yang dikembangkantelah memenuhi kebutuhan pemakai. b. Menilai apakah tahap pengembangan perangkat lunak telah sesuai dengan metodologi yang digunakan. c. Membuat dokumentasi hasil pengujian yang menginformasikan kesesuaian perangkat lunak yang diuji dengan spesifikasi yang telah ditentukan. B. Testability Testability adalah kemampuan PL untuk dapat diuji artinyaseberapa mudah sebuah program komputer untuk bisa diuji. Karakteristik testa

Pengujian Aplikasi Web

Konsep Pengujian Konsep Pengujian adalah serangkaian aktivitas yang tujuannya untuk menemukan kesalahan dalam isi, fungsi, kegunaan, kemampuan navigasi, kinerja, kapasitas dan keamanan aplikasi web sebelum aplikasi-aplikasi web yang dibuat dikirimkan ke end user. hal ini penting karena jika end user menemukan kesalahan yang membuat mereka meragukan aplikasi web tersebut, mereka akan pergi ke web lain untuk mencari isi dan informasi. langkahnya dimulai dengan fokus pada aspek aplikasi web yang terlihat oleh user dan berlanjut pada pengujian yang terkait dengan teknologi dan infrastruktur Konsep Pengujian Aplikasi Web A. Dimensi Kualitas Kualitas dievaluasi dengan menerapkan serangkaian tinjauan teknis yang melihat berbagai elemen dari model perancangan dan dengan menerapkan proses pengujian. Atribut dimensi kualitas: Isi (content): Dievaluasi ditingkat sintak dan semantik. Pada tingkat sintak dokumen berbasis teks diuji dalam hal ejaan, tanda baca dan tata bahasa. Pada tingkat semantik

PERANCANGAN BERORIENTASI OBJEK

PBO 1. Identifikasi Kelas Objek Tujuan mengidentifikasi kelas objek dalam sistem berorientasi objek: 1. Gunakan analisis gramatikal dari deskripsi bahasa alami. Objek dan atribut adalah kata benda; operasi atau layanan adalah kata kerja. 2. Gunakan entitas nyata (benda) dalam domain aplikasi seperti mobil, peran seperti manajer atau dokter, acara seperti permintaan, interaksi seperti pertemuan, lokasi seperti kantor, unit organisasi seperti perusahaan. 3. Gunakan analisis berbasis skenario dimana berbagai skenario penggunaan sistem diidentifikasi dan dianalisis secara bergantian. 2. Istilah dalam Objek Oriented 1. Objek (Object) Objek adalah konsep atau abstraksi tentang sesuatu yang memiliki arti untuk aplikasi yang akan dikembangkan.  Objek diwakili dengan kata benda Objek dapat berupa: Objek orang/manusia: Karyawan, Mahasiswa Objek tempat: Kantor, Gedung, Toko Objek abstrak: Transaksi, Jadwal, Peminjaman Objek organisasi: Divisi-IT, HRD Objek peralatan/benda: Mobil, Buku, Ba