Anda di halaman 1dari 31

LOGO

Rekayasa Perangkat Lunak (RPL)


Oleh : Agung Dermawan, ST, MM

LOGO

Pendahuluan
Apakah Perangkat Lunak (Software)? Apakah Rekayasa Perangkat Lunak (RPL) ? Apa perbedaan antara RPL dengan ilmu komputer (computer science) ? Apa perbedaan RPL dan rekayasa sistem ? Apa yang dimaksud dengan proses perangkat lunak ? Apakah model proses perangkat lunak ? Berapa biaya rekayasa perangkat lunak ? Apa saja metode-metode RPL ? Apa yang dimaksud dengan CASE (Computer-Aided Software Engineering) ? Apakah atribut-atribut perangkat lunak yang baik ? Apa tantangan kunci yang dihadapi RPL ?

LOGO

Apakah Perangkat Lunak (Software)?

Definisi Perangkat Lunak Ada beberapa definisi perangkat lunak yang pernah dikemukakan antara lain : Software = Perangkat lunak
Kumpulan program komputer dengan fungsi tertentu

Perangkat lunak adalah


1. Instruksi (program komputer) yang bila dieksekusi dapat menjalankan fungsi tertentu, 2. Struktur data yang dapat membuat program memanipulasi informasi, dan 3. Dokumen yang menjelaskan operasi dan penggunaan program (Pressman, 1997).

Perangkat lunak adalah program komputer, prosedur, aturan, dan dokumentasi yang berkaitan serta data, yang bertalian dengan operasi suatu sistem komputer (IEEE, 1993).

LOGO

Apakah Perangkat Lunak (Software)?

Karakteristik Perangkat Lunak Perangkat lunak lebih dikenal sebagai elemen logik daripada fisik, oleh karena itu perangkat lunak memiliki karakteristik yang berbeda dari perangkat keras :
1. Perangkat lunak dikembangkan atau direkayasa, jadi tidak diproduksi dalam pengertian klasik. 2. Merupakan produk yang unik (tidak ada seri produksi). 3. Perangkat lunak tidak pernah akan rusak/aus karena selalu diperbaharui 4. Tidak terlihat (invisible). 5. Perangkat lunak pada umumnya dibangun sesuai keinginan, jadi tidak dibentuk dari komponen yang sudah ada. 6. Fleksibel, sehingga mudah dimodifikasi. 7. Dihubungkan (linked) dengan sistem komputer.

LOGO

Jenis-jenis Software?

Dilihat dari sudut pandang fungsinya, perangkat lunak dapat dikelompokkan menjadi : 1. Perangkat lunak sistem Perangkat lunak yang kegunaannya lebih banyak ditujukan untuk operasional komputer.
sistem operasi penerjemah bahasa pemrograman (compiler/interpreter)

2. Perangkat lunak aplikasi


Perangkat lunak yang kegunaannya lebih banyak ditujukan untuk membantu menyelesaikan masalalah-masalah yang dihadapi oleh pemakai.
program paket yang sudah jadi program aplikasi buatan sendiri

LOGO

Jenis-jenis Software?

Dilihat dari aplikasinya, perangkat lunak dibedakan menjadi : 1. Perangkat Lunak Sistem (Sistem Software) 2. Perangkat Lunak Waktu Nyata (Real Time Software) 3. Perangkat Lunak Bisnis (Business Software) 4. Perangat Lunak Rekayasa dan Sains (Engineering and Scientific Software) 5. Embedded Software 6. Perangkat Lunak Komputer Pribadi (Personal Computer Software) 7. Perangkat Lunak Intelegensia Buatan (Artificial Intelligent Software)

LOGO

Latar Belakang
krisis software di era tahun 1960-an. Krisis tersebut akibat dari lahirnya komputer generasi ke III yang ditandai dengan penggunaan IC (Integrated Circuit). Kemampuan hardware yang meningkat, membuat adanya kebutuhan untuk memproduksi software yang lebih baik. Akibatnya software yang dihasilkan menjadi menjadi beberapa kali lebih besar dan kompleks. Pendekatan informal yang digunakan dalam pengembangan perangkat lunak pada saat itu, menjadi tidak cukup efektif (secara biaya, waktu dan kualitas). Biaya hardware mulai jatuh dan biaya perangkat lunak menjadi naik cepat. Oleh karena itu muncul pemikiran untuk menggunakan pendekatan yang lebih efektif, standard dan terukur dalam mengembangan perangkat lunak.

LOGO

Krisis Software
Krisis software adalah sekumpulan masalah yang ditemukan dalam pengembangan software komputer. Masalahnya tidak hanya terbatas pada software yang tidak berfungsi sebagaimana mestinya, tetapi krisis software ini terdiri dari masalah yang berhubungan dengan : a. Bagaimana mengembangkan software. b. Bagaimana memelihara software yang ada, yang berkembang dalam jumlah besar. c. Bagaimana mengimbangi permintaan software yang makin besar.

LOGO

Krisis Software
Krisis software dipicu oleh beberapa masalah : a. Estimasi jadwal dan biaya yang seringkali tidak tepat. b. Produktivitas pembuat software yang tidak dapat mengimbangi permintaan software. c. Kualitas software yang kurang baik.

LOGO

Krisis Software
Penyebab : Masalah yang berhubungan dengan krisis software disebabkan oleh : Karakteristik software itu sendiri Karakteristik software adalah software yang bersifat logika dibandingkan fisik, oleh karena itu mengukur software harus merupakan suatu kesatuan, tidak seperti hardware. Software yang bersifat tidak aus ini menyebabkan kesalahan yang terjadi pada software. Umumnya terjadi pada tahap pengembangan. Manajer tingkat menengah dan tingkat atas yang tidak mempunyai latar belakang software, seringkali diberi tanggung jawab untuk mengembangkan software. Padahal tidak semua manajer itu dapat me-manage semua proyek. Praktisnya : software programmer atau software engineering mendapatkan latihan formal yang sedikit dalam hal tehnik baru pengembangan software. Kegagalan mereka yang bertanggung jawab dalam pengembangan software.

LOGO

Mitos Software
Mitos management Kita tidak perlu mengubah pendekatan terhadap pengembangan software, karena jenis pemrograman yang kita lakukan sekarang ini sudah kita lakukan 10 tahun yang lalu. Realita : Walau hasil program sama, produktivitas dan kualitas software harus ditingkatkan dengan menggunakan pendekatan software developments. Kita sudah mempunyai buku yang berisi standarisasi dan prosedur untuk pembentukan software. Realita : Memang buku tersebut ada, tetapi apakah buku tersebut sudah dibaca atau buku tersebut sudah ketinggalan jaman (out of date). Jika kita tertinggal dari jadwal yang ditetapkan, kita menambah beberapa programmer saja. Konsep ini sering disebut Mongolian harde concept.

LOGO

Mitos Software
Mitos customer Pernyataan tujuan umum sudah cukup untuk memulai penulisan program. Penjelasan yang lebih rinci akan menyusul kemudian. Realita : Definisi awal yang buruk adalah penyebab utama kegagalan terhadap usahausaha pembentukkan software. Penjelasan yang formal dan terinci tentang informasi fungsi performance interface, hambatan desain dan kriteria validasi adalah penting. Kebutuhan proyek yang terus menerus berubah dapat dengan mudah diatasi karena software itu bersifat fleksibel. Realita : Jika perubahan mendekati akhir penyelesaian, maka biaya akan lebih besar.

LOGO

Mitos Software
Biaya akibat perubahan

60 - 100 kali 1,5 - 6 kali Waktu penyelesaian Definition Development Maintenance

1 kali

Kesimpulan : Jika perubahan mendekati akhir penyelesaian, maka biaya akan lebih besar.

LOGO

Mitos Software
Mitos Praktisi Tidak ada metode untuk analisis disain dan testing terhadap suatu pekerjaan, cukup menuju ke depan terminal dan mulai coding. Realita : Metode untuk analisis desain dan testing diperlukan dalam pengembangan software. Segera setelah software digunakan, pemeliharaan dapat diminimalisasikan dan diatasi. Realita : Diperlukan budget yang besar dalam maintenance software. Pemeliharaan software harus diorganisir, direncanakan dan dikontrol seolah-olah sebagai suatu proyek besar dalam sebuah organisasi.

Apakah Rekayasa Perangkat Lunak (RPL)? LOGO

Rekayasa perangkat lunak (software engineering) adalah suatu proses rancang bangun. Beberapa definisi tentang rekayasa perangkat lunak :

Software engineering adalah sebuah disipin ilmu dalam bidang teknik yang berfokus masalah-maslah praktis dalam pengembangan sistem perangkat lunak yang besar. (Sommervile,1992)
Pembentukan dan penggunaan prinsip rekayasa (engineering) untuk mendapatkan perangkat lunak secara ekonomis namun andal dan dapat bekerja secara efesien pada komputer (Fritz Bauer, 1968). Penerapan pendekatan yang sistematis, disiplin, dan terukur untuk pengembangan, operasi, dan pemeliharaan perangkat lunak (IEEE, 1993). Suatu disiplin yang mengintegrasikan proses/prosedur, pembangunan perangkat lunak komputer (Pressman, 97). metode, dan perangkat tools untuk

Merupakan aplikasi dari prinsip-prinsip sains untuk : o Mengurutkan transformasi masalah menjadi solusi yang dapat bekerja dengan baik o Urutan pemeliharaan perangkat lunak tersebut sampai tidak dapat digunakan lagi (Alan M. Davis) Proses RPL dimulai jauh sebelum Coding dilakukan dan berlanjut terus setelah versi awal dari program selesai dikerjakan.

LOGO

Latar Belakang RPL?

Mengapa Rekayasa Perangkat Lunak ? Adanya krisis perangkat lunak (NATO conference, 1968) : Perangkat lunak lebih banyak menyebabkan masalah daripada menyelesaikannya. Peningkatan ukuran perangkat lunak tanpa pengorganisasian. Perbaikan suatu kesalahan menyebabkan timbulnya kesalahan lainnya. Tidak ada kendali pemeliharaan.

Masalah-masalah perangkat lunak :

Perangkat lunak telah diselesaikan dan diserahkan (delivered) tetapi tidak pernah digunakan (47%). Pemakai (user) sudah membayar untuk perangkat lunak tetapi tidak pernah jadi dan diserahkan (29,7%). Perangkat lunak digunakan setelah dilakukan modifikasi (3%). Perangkat lunak digunakan sebagaimana mestinya (2%).

LOGO

Latar Belakang RPL?

Faktor pendukung kehadiran rekayasa perangkat lunak : Ketidak mampuan untuk memprediksi waktu, usaha dan biaya pada pengembangan perangkat lunak. Kualitas perangkat lunak yang kurang baik. Perubahan perbandingan (rasio) harga perangkat keras dan perangkat lunak. Kemajuan teknologi perangkat keras. Kemajuan teknik perangkat lunak. Kebutuhan yang meningkat terhadap perangkat lunak. Kebutuhan akan perangkat lunak yang lebih besar dan kompleks.

LOGO

Perbedaan antara Pemrograman dengan Rekayasa Perangkat Lunak (RPL) :

Pemrograman o Individu menulis keseluruhan program o Satu orang, satu komputer o Programming-in-the-Small o Well-defined Problem
Rekayasa Perangkat Lunak o Individu menulis komponen program o Tim membangun keseluruhan program o Programming-in-the-Large

LOGO

Penyelesaian Masalah (Problem Solving)

COMPUTER SCIENCE

CUSTOMER

Teori

Fungsi Computer

Problem

SOFTWARE ENGINEERING
Tools dan Teknik utk Menyelesaikan Problem

19

LOGO

Tujuan dari RPL

Menghasilkan sebuah perangkat lunak yang berkualitas. Baik dari sisi Sponsor, Pemakai (User), dan Maintainer / developer

Menghasilkan perangkat lunak dengan biaya yang efisien.

Menghasilkan perangkat lunak tepat pada waktunya.

LOGO

Tujuan dari RPL

LOGO

Tujuan dari RPL

Harga yg wajar Luwes On time Peningkatan produktifitas

efisien si

Kemudahan mempelajari, mengingat, penggunaan Fungsionalitas

Kehandal an

Dokumentasi yg baik minimum error Desain yang baik Kode yang mudah dibaca dan dimodifikasi

22

LOGO Bagaimana Cara Pembuatan Software Yang Baik?

Planning

Rencana software Analisa kebutuhan software Analisa cost banefit (Salah satu bagian dari studi kelayakan)

Development

Coding Testing

Koreksi (Corection) Adaptasi (Adaptive) Penyempurnaan (Perfective Maintenance) Maintenance Pencegahan (Perventive maintenance)

LOGO
Rencana software Analisa kebutuhan software Analisa cost banefit (Salah satu bagian dari studi kelayakan)

Planning /Definition

Fase Planning / definisi (Definition phase) berfokus pada apa (what); Mengidentifikasi informasi apa yang akan diproses, Fungsi dan unjuk kerja apa yang dibutuhkan, Tingkah laku sistem seperti apa yang diharapkan, Interface apa yang akan dibangun, Batasan desain apa yang ada, dan Kriteria validasi apa yang dibutuhkan untuk mendefinisikan sistem yang sukses. Kebutuhan (requirement) kunci dari sistem dan perangkat lunak yang didefinisikan.

LOGO
Coding Testing

Development

Fase pengembangan (Development phase) berfokus pada how (bagaimana), Mendefiniskan bagaimana data dikonstruksikan, Bagaimana fungsi-fungsi diimplementasikan sebagai sebuah arsitektur perangkat lunak, Bagaimana detail prosedur akan diimplementasikan, Bagaimana interface ditandai (dikarakterisasi), Bagaimana rancangan akan diterjemahkan ke dalam bahasa pemrograman (atau bahasa non prosedural), serta Bagaimana pengujian akan dilakukan.

LOGO
Coding Testing

Development

Macam-macam test program : Unit test (Test per modul) Integreated test (Test penggabungan dari modul-modul yang telah diuji) Validated test (Diuji dengan data sebenarnya) System test (Test dilakukan dengan lingkungan sebenarnya) Topdown test (Test gabungan dari atas ke bawah) Bottom up test (Test gabungan dari bawah ke atas)

LOGO
Koreksi (Corection) Adaptasi (Adaptive) Perfective Maintenance Maintenance Perventive maintenance

Fase pemeliharaan (Maintenance phase) berfokus pada perubahan (change), yang dihubungkan dengan koreksi kesalahan, penyesuaian yang dibutuhkan ketika lingkungan perangkat lunak berkembang, serta perubahan sehubungan dengan perkembangan yang disebabkan oleh perubahan kebutuhan pelanggan.

LOGO
Koreksi (Corection) Adaptasi (Adaptive) Perfective Maintenance Maintenance Perventive maintenance

Pemeliharaan korektif (Corrective maintenance) mengubah perangkat lunak, membetulkan cacat atau kerusakan. Adaptasi. Dari waktu ke waktu, lingkungan original (contohnya CPU, sistem operasi, aturan-aturan bisnis, karakteristik produk eksternal) di mana perangkat lunak dikembangkan akan terus berubah. Pemeliharaan adaptif (Adaptif maintenance) menghasilkan modifikasi kepada perangkat lunak untuk mengakomodasi perubahan pada kebutuhan fungsionalitas originalnya.

LOGO
Koreksi (Corection) Adaptasi (Adaptive) Perfective Maintenance Maintenance Perventive maintenance

Perfective maintenance memperluas perangkat lunak sehingga melampaui kebutuhan fungsi originalnya. Pencegahan (preventive maintenance). Keadaan perangkat lunak semakin memburuk sehubungan dengan waktu, dan karena itu, preventive maintenance yang sering juga disebut Rekayasa perangkat lunak, harus dilakukan untuk memungkinkan perangkat lunak melayani kebutuhan para pemakainya. Pada dasarnya preventive maintenance melakukan perubahan pada program komputer sehingga bisa menjadi lebih mudah untuk dikoreksi, disesuaikan dan dikembangkan.

LOGO

Evolusi Software

1950

1960

1970

1980

1990

2000

LOGO