Rekayasa Perangkat Lunak

Pengertian Perangkat Lunak
  • adalah program komputer yang memungkinkan sebuah komputer dapat melakukan sebuah tugas tertentu
  • program komputer yang berfungsi sebagai sarana interaksi antara pengguna dan perangkat keras.
  • dapat juga dikatakan sebagai ‘penterjemah’ perintah-perintah yang dijalankan pengguna komputer untuk diteruskan ke atau diproses oleh perangkat keras.
Evolusi Perangkat Lunak
  • Era Pioner: sambungan-sambungan kabel ke antar bagian dalam komputer. Cara lain dalam mengakses komputer adalah menggunakan punched card yaitu kartu yang di lubangi. (contoh: ENIAC)
  • Era Stabil: sistem basis data, yang memisahkan antara program (pemroses) dengan data (yang di proses) dan mampu menyelesaikan banyak pengguna (multi user) secara cepat/langsung (real time).
  • Era Mikro: automisasi mengarah ke suatu jenis kecerdasan buatan.
  • Era Modern: tingkat kecerdasan semakin meningkat , mulai bisa mengenal suara dan gambar. Contoh Telephon, TV, AC
Proses Perangkat Lunak
Serangkaian kegiatan dan hasil yang berhubungan dengannya, yang menuju pada dihasilkannya produk perangkat lunak.

Model Proses Perangkat Lunak :
A. Model air terjun (waterfall), B. Pengembangan Evolusioner, C. Model Pengembangan SistemFormal
D. Model Pengembangan Berorientasi Pemakaian Ulang (Re-Usable)

 
REKAYASA PERANGKAT LUNAK
(RPL, atau dalam bahasa Inggris: Software Engineering atau SE) adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan perangkat lunak dan sebagainya.
Ruang Lingkup
 

             Gambar 1.3. Ruang lingkup RPL (Abran et.al., 2004). 
Perkembangan RPL:
1940an: Komputer pertama yang membolehkan pengguna menulis kode program langsung
1950an: Generasi awal interpreter dan bahasa macro Generasi pertama compiler Generasi kedua compiler
1960an: Komputer mainframe mulai dikomersialkan  Pengembangan perangkat lunak pesanan Konsep Software Engineering mulai digunakan
1970an: Perangkat pengembang perangkat lunak Perangkat minicomputer komersial
1980an: Perangkat Komputer Personal (PC) komersial Peningkatan permintaan perangkat lunak Pemrograman berorientasi obyek (OOP)
1990an: Agile Process dan Extreme Programming  Peningkatan drastis kapasitas memori Peningkatan penggunaan internet
2000an: Platform interpreter modern (Java, .Net, PHP, dll)
Analisis Kebutuhan
Dalam rekayasa sistem dan rekayasa perangkat lunak, analisis kebutuhan (bahasa Inggris: requirement analysis) mencakup pekerjaan-pekerjaan penentuan kebutuhan atau kondisi yang harus dipenuhi dalam suatu produk baru atau perubahan produk, yang mempertimbangkan berbagai kebutuhan yang bersinggungan antar berbagai pemangku kepentingan. Kebutuhan dari hasil analisis ini harus dapat dilaksanakan, diukur, diuji, terkait dengan kebutuhan bisnis yang teridentifikasi, serta didefinisikan sampai tingkat detil yang memadai untuk desain sistem.
Metodologi Pengembangan Perangkat Lunak

Dalam rekayasa perangkat lunak, metodologi pengembangan perangkat lunak atau metodologi pengembangan sistem adalah suatu kerangka kerja yang digunakan untuk menstrukturkan, merencanakan, dan mengendalikan proses pengembangan suatu sistem informasi. Banyak ragam kerangka kerja yang telah dikembangkan selama ini, yang masing-masing memiliki kekuatan dan kelemahan sendiri-sendiri.
Suatu metodologi pengembangan sistem tidak harus cocok untuk digunakan untuk semua proyek. Masing-masing metodologi mungkin cocok diterapkan untuk suatu proyek tertentu, berdasarkan berbagai pertimbangan teknis, organisasi, proyek, serta tim.
Beberapa contoh metodologi pengembangan perangkat lunak yang tersedia di antaranya adalah waterfall, prototyping, incremental, spiral, dan RAD

PROSES PERANGKAT LUNAK
  • Serangkaian kegiatan dan hasil yang berhubungan dengannya, yang menuju pada dihasilkannya produk perangkat lunak.
  • Kegiatan-kegiatan mendasar yg umum bagi semua proses Perangkat Lunak :
1.      Spesifikikasi Perangkat Lunak à Fungsionalitas perangkat lunak dan batasan kemampuan operasinya harus didefinisikan.
2.      Pengembangan (Perancangan dan Implementasi) Perangkat Lunak à Perangkat lunak yang memenuhi spesifikasi harus di produksi
3.      Validasi Perangkat Lunak à Perangkat lunak harus divalidasi untuk menjamin bahwa perangkat lunak bekerja sesuai dengan apa yang diinginkan oleh pelanggan.
4.      Evolusi Perangkat Lunak à Perangkat lunak harus berkembang untuk memenuhi kebutuhan pelanggan.

                             Gambar Model Evolusioner


MODEL EVOLUSIONER PERANGKAT LUNAK
  Bersifat iteratif/ mengandung perulangan. Hasil proses berupa produk yang makin lama makin lengkap sampai versi terlengkap dihasilkan sebagai produk akhir dari proses.
  Tidak ada kegiatan spesifikasi, pengembangan, dan validasi yang terpisah. Kegiatan2 ini dilakukan pada saat yang bersamaan dengan umpan balik yang cepat untuk masing2 kegiatan.
Jenis-Jenis Model Evolusioner
Pengembangan Eksplotari
Tujuan: bekerja dengan pelanggan untuk menyelidiki persyaratan mereka dan mengirimkan sistem akhir.
Obyektif : bekerja dengan konsumen dan melibatkan sistem akhir dari spesifikasi skema inisial.
Dimulai dengan kebutuhan yang dimengerti dengan baik.
Prototipe Yang Dapat Dibuang (throw-away) à
Tujuan:Berkonsentrasi pada eksperimen, dengan persyaratan pelanggan yang tidak dipahami dengan baik.
Obyektif : mengerti kebutuhan sistem.
Dimulai dengan kebutuhan yang tidak dimengerti dengan baik.        
Model Evolusioner Menurut Mills dan Boehm


 1. Incremental Model (Original: Mills) 
  • berdasarkan model sistem yang dipecah sehingga model pengembangannya secara increment/bertahap.
  •   Masalah :
  1. cocok untuk proyek berukuran kecil (tidak lebih dari 200.000 baris coding)
  2. mungkin terjadi kesulitan untuk memetakan kebutuhan pengguna ke dalam rencana spesifikasi masing-masing hasil increment  

2.  Spiral Model (Original: Boehm)
  • Setiap loop mewakili satu fase dari software process.
  • Loop paling dalam berfokus pada kelayakan dari sistem, loop selanjutnya tentang definisi dari kebutuhan, loop berikutnya berkaitan dengan desain sistem dan seterusnya
  • Masalah:Membutuhkan waktu yang cukup panjang , sehingga waktu yang lama sama dengan biaya yang lebih besar. 

Pengembangan Evolusioner
Kelebihan:
  • Lebih efektif dari pendekatan air terjun dalam menghasilkan sistem yang dibutuhkan
  • user mendapat pemahaman yang lebih baik dari masalah mereka
Aplikasi:
  • Untuk sistem interaktif berukuran kecil atau medium
  • Untuk bagian dari sistem besar (misalnya user interface)


  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • Twitter
  • RSS

0 Response to "Rekayasa Perangkat Lunak"

Posting Komentar