Home
REKAYASA PERANGKAT LUNAK
Pengantar RPL
Pertemuan 1 – 3
PENDAHULUAN
1.Apakah Perangkat Lunak?
2.Apakah Rekayasa Perangkat Lunak (RPL) ?
3.Apa perbedaan antara RPL dengan ilmu komputer (computer science) ?
4.Apa perbedaan RPL dan rekayasa sistem ?
5.Apa yang dimaksud dengan proses perangkat lunak ?
6.Apakah model proses perangkat lunak ?
7.Berapa biaya rekayasa perangkat lunak ?
8.Apa saja metode-metode RPL ?
9.Apa yang dimaksud dengan CASE (Computer-Aided Software Engineering)  ?
10.Apakah atribut-atribut perangkat lunak yang baik ?
11.Apa tantangan kunci yang dihadapi RPL ?
nPERANGKAT LUNAK
nPerangkat Lunak (Software) tidak sama dengan program komputer. Perangkat lunak tidak hanya mencakup program, tetapi juga semua dokumentasi dan konfigurasi data yang berhubungan, yang diperlukan untuk membuat agar program beroperasi dengan benar.
nSistem Perangkat Lunak terdiri dari :
nSejumlah program yg terpisah
nFile-file konfigurasi
nDokumentasi sistem
nDokumentasi User
 
 
nDua tipe produk perangkat lunak :
nProduk Generik à Sistem stand-alone standar yg diproduksi oleh organisasi pengembang dan dijual ke pasar terbuka ke siapapun yg membelinya. Biasa disebut sebagai software shrink-wrapped. Contoh : pengolah kata (word processor).
nProduk pesanan (yang disesuaikan) à Sistem yg dipesan oleh pelanggan tertentu. Dikembangkan khusus bagi pelanggan oleh kontraktor perangkat lunak. Contoh : Sistem untuk mendukung proses bisnis tertentu dan sistem kontrol lalu lintas udara.
 
nPerbedaan PENTING antara tipe2 perangkat lunak :
nPada produk generik, organisasi yang mengembangkan perangkat lunak mengontrol spesifikasi perangkat lunak.
nPada produk pesanan, spesifikasi biasanya dikembangkan dan dikontrol oleh organisasi yang membeli perangkat lunak tersebut.
nREKAYASA PERANGKAT LUNAK
nRPL atau Software Engineering (SE) à Disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal spesifikasi sistem sampai pemeliharaan sistem setelah digunakan. Ada 2 istilah kunci disini :
n“disiplin rekayasa” à Perekayasa membuat suatu alat bekerja.  Menerapkan teori, metode, dan alat bantu yang sesuai, selain itu mereka menggunakannya dengan selektif dan selalu mencoba mencari solusi terhadap permasalahan.
n“semua aspek produksi perangkat lunak” à RPL tidak hanya berhubungan dengan proses teknis dari pengembangan perangkat lunak tetapi juga dengan kegiatan seperti Manajemen proyek PL dan pengembangan alat bantu, metode, dan teori untuk mendukung produksi PL.
 
nPerbedaan antara RPL dengan Computer Science ?
nIntinya, computer science berhubungan dengan teori dan metode yang mendasari sistem komputer dan perangkat lunak, sedangkan RPL berhubungan dengan praktek dalam memproduksi perangkat lunak.
nPerbedaan RPL dengan Rekayasa Sistem ?
nRekayasa sistem berkaitan dengan semua aspek dalam pembangunan sistem berbasis komputer termasuk hardware, rekayasa PL dan proses. RPL adalah bagian dari rekayasa sistem yang meliputi pembangunan PL, infrasktruktur, kontrol, aplikasi dan database pada sistem.
nProses Perangkat Lunak
nSerangkaian kegiatan dan hasil-hasil relevannya yang menghasilkan perangkat lunak à sebagian besar dilakukan oleh perekayasa perangkat lunak. Ada 4 kegiatan/aktivitas pada proses PL :
1.Spesifikikasi Perangkat Lunak à Fungsionalitas perangkat lunak dan batasan kemampuan operasinya harus didefinisikan.
2.Pengembangan Perangkat Lunak à Perangkat lunak yang memenuhi spesifikasi harus di produksi
3.Validasi Perangkat Lunak à Perangkat lunak harus divalidasi untuk menjamin bahwa perangkat lunak melakukan apa yang diinginkan oleh pelanggan.
4.Evolusi Perangkat Lunak à Perangkat lunak harus berkembang untuk memenuhi kebutuhan pelanggan.
nModel Proses Perangkat Lunak
nMerupakan deskripsi yang disederhanakan dari proses perangkat lunak di presentasikan dengan sudut pandang tertentu.
nBisa mencakup kegiatan yang merupakan bagian dari proses perangkat lunak, produk perangkat lunak, dan peran orang yang terlibat pada rekayasa perangkat lunak (Perekayasa PL).

 

nContoh Jenis Model Proses PL
1.Model aliran kerja (workflow) à menunjukkan kegiatan pada proses bersama dengan input, output, dan ketergantungannya. Merepresentasikan pekerjaan manusia.
2.Model aliran data (data flow) à merepresentasikan proses sebagai suatu set kegiatan yang melakukan transformasi data. Menunjukkan bagaimana input ke proses, misalnya spesifikasi ditransformasi menjadi output, misalnya menjadi desain.
3.Model peran/aksi à merepresentasikan peran orang yang terlibat pada PL dan kegiatan yg menjadi tanggung jawab mereka.
nModel atau paradigma umum pada proses PL
1.Model air terjun (waterfall) à Mengambil kegiatan dasar seperti spesifikasi, pengembangan, validasi, dan evolusi dan merepresentasikannya sebagai fase-fase proses yang berbeda seperti spesifikasi persyaratan, perancangan perangkat lunak, implementasi, pengujian dan seterusnya.
2.Pengembangan evolusioner à Pendekatan ini berhimpitan dengan kegiatan spesifikasi, pengembangan, dan validasi. Sistem awal dikembangkan dengan cepat dari spesifikasi abstrak. Sistem ini kemudian di perbaiki dengan masukan dari pelanggan untuk menghasilkan sistem yang memuaskan kebutuhan pelanggan.
n
3.Pengembangan Sistem Formal à Pendekatan ini menghasilkan suatu sistem matematis yang formal dan mentransformasikan spesifikasi ini, dengan menggunakan metode matematik menjadi sebuah program.
4.Pengembangan berdasarkan pemakaian ulang (Reusable) à Teknik ini menganggap bahwa bagian-bagian sistem sudah ada. Proses pengembangan sistem terfokus pada pengintegrasian bagian-bagian sistem dan bukan pengembangannya dari awal.
nBiaya Rekayasa Perangkat Lunak
nUmumnya sekitar 60% untuk biaya pengembangan (development) dan 40% biaya pengujian (testing).
nDistribusi biaya yang tepat selama proses perangkat lunak bergantung pada proses yang digunakan dan jenis perangkat lunak yang dikembangkan.
nMetode-metode RPL
nPendekatan-pendekatan terstruktur terhadap pengembangan perangkat lunak mencakup model, notasi, aturan, saran pengembangan sistem (rekomendasi), dan panduan proses.

 

nDeskripsi model sistem à Deskripsi model yang harus dikembangkan dan notasi yang digunakan untuk mendefinisikan model-model ini. Ex : model aliran data.
nAturan à Batasan yang berlaku bagi model sistem. Ex : Setiap entitas pada model sistem harus memiliki nama yang unik.
nRekomendasi à Saran dalam membentuk perancangan yang baik. Ex : Tidak ada objek yang memiliki lebih dari tujuh sub-objek yang berhubungan dengannya.
nPanduan Proses à Aktifitas yang bisa diikuti untuk mengembangkan model sistem. Ex : Atribut objek harus didokumentasi sebelum mendefinisikan operasi yang berhubungan dengan objek.
nCASE (Computer-Aided Software Engineering)
nMencakup berbagai macam program yang digunakan untuk mendukung kegiatan PL seperti analisis persyaratan, pemodelan sistem, debugging, dan pengujian.
nAtribut-atribut PL yang baik
nPerangkat Lunak seharusnya memberikan user kebutuhan fungsionalitas dan kinerja yang :
1.Dapat dipelihara (Maintanability) à PL harus dapat memenuhi perubahan kebutuhan user.
2.Dapat diandalkan (Dependability) à PL harus dapat dipercaya dan tidak menyebabkan kerusakan fisik atau ekonomi jika terjadi kegagalan sistem.
3.Efisien à PL harus efisien dalam penggunaan sumber daya sistem.
4.Kemampupakaian (Usability) à PL harus dapat dipakai sesuai dengan yang direncanakan.
nTantangan Kunci yang dihadapi RPL ?
1.Tantangan Warisan (Legacy) à Tantangan memelihara dan meng-update PL sedemikian sehingga biaya yg berlebihan dapat dihindari dan layanan bisnis yg penting tetap dilakukan.
2.Tantangan Heterogenitas à Tantangan teknik pengembangan untuk membangun perangkat lunak yang dapat diandalkan dan cukup flexibel untuk menghadapi heterogenitas yang ada.
3.Tantangan Pengiriman à Tantangan mempersingkat waktu kirim sistem besar dan kompleks, tanpa mengurangi kualitas sistem.
nPemilihan Bahasa Pemrograman
n2 faktor yang berhubungan terhadap pemilihan bahasa pemrograman :
n1. Pramagtik Pemilihan Bahasa
n2. Bahasa Pemrograman Yang dipilih
nPragmatik Pemilihan Bahasa
1.Sponsor Requirement; permintaan sponsor.
2.Knowledge of Coders; pengetahuan yang mudah dipahami programmer.
3.Languages used in previous and/or concurrent projects; bahasa pemrograman yang digunakan proyek sebelumnya atau proyek yang berbarengan terkait dengan pengetahuan programmer.
nPragmatik Pemilihan Bahasa…
4.Availability and quality of language compiler; ketersediaan dan kualitas kompiler bahasa pemrograman yang sesuai target hardware yang digunakan.
5.Availability of supporting software development tools; ketersediaan alat bantu perangkat lunak pendukung editor, debugger, linker dan lainnya.
6.Portabilitty; sistem yg dikembangkan dpt beroperasi di berbagai mesin komputer dan berjalan pd aneka OS yg berbeda.
nProgramming in the small
nMenguji atau mencoba fitur-fitur yang mendukung dg pengkodean program modul-modul tunggal dan program-program kecil oleh kepentingan programmer secara individu.
nKarakteristik fitur-fitur
1.Sifat simplicity, clarity dan orthogonality dari bahasanya.
2.Sintaks dari bahasa pemrogramannya.
3.Jumlah dan tipe kontrol struktur
4.Abstraksi data terhadap tipe struktur datanya.
nKarakteristik fitur-fitur
nSimplicity ; merupakan ukuran dari kamus data dari bahasa seperti jumlah operator, operan dan reserved word (seperti if…then, dsb)
nClarity; merupakan tingkat dari bahasa berkaitan dengan pengertian sintaks natural, pemahaman dan ketidakbingungan programmer dalam menggunakan bhs pemrograman sampai berjalan.
nKarakteristik fitur-fitur
nOrthogonality merupakan tingkat dari programmer bebas mengkombinasikan fitur-fitur yg ada di bhs pemrograman itu seperti pemnafaat
nProgramming in the Large
(Pemrograman Berskala Besar)
nDibutuhkan saat sebuah sistem mengandung banyak baris kode/mempunyai skala yg besar yg membutuhkan pendekatan pengembangan sistem secara integrasi thdp sekelompok proyek sistem.
nKarakteristik Fitur
nMekanisme utk enkapsulasi atau pembentukan kelompok tingkat tinggi thdp abstraksi prosedural dan data.
nPemisahan yg jelas antara spesifikasi deskripsi sebuah abstraksi dan implementasi abstraksi.
nMekanisme utk meproteksi akses dari luar thdp informasi yg dienkapsulasi.
nMetode yg sederhana pd pemberian modul ke bagian modul lain (reusable/penggunaan kembali suatu modul ke modul lain)
nMutu Perangkat Lunak
1.Sponsor  : seseorang atau organisasi yg membiayai selama pengembangan sistem software dan mempunyai respon thdp bangsis S/W dan melibatkan perhitungan biaya yg optimal.
2.User   :  setiap orang yg secara langsung berinteraksi thdp eksekusi S/W, memberi inout dan menikmati output dr komputer
nMutu Perangkat Lunak

3. Developer  :  seseorang atau organisasi yg memberikan modifikasi dan memelihara thdp error serta mengembangkan sistem S/W tsb.

nSponsor
nHarga yg wajar
nLuwes
nOn time
nPeningkatan produktifitas
nEfisiensi

 

nUser
nKemudahan mempelajari
nKemudahan mengingat
nKemudahan penggunaan fungsionalitas
nEfisiensi
nDeveloper
nDokumentasi yg baik
nMinimum Error
nDesain yg baik
nKode yg mudah dibaca dan dimodifikasi
n

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s