Rabu, 25 Februari 2015

Rekayasa Perangkat Lunak

Pengertian
Menurut Wikipedia :  Satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembangan perangkat lunak dan manajemen kualitas.
Menurut IEEE Computer Society :   Sebagai penerapan suatu pendekatan yang sistematis,
                        disiplin dan terkuantifikasi atas pengembangan, pengguna-
                        an dan pemeliharaan perangkat lunak, serta studi atas
                        pendekatan-pendekatan ini, yaitu penerapan pendekatan
                        engineering atas perangkat lunak.
Kesimpulan :              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.

Tujuan Rekayasa Perangkat Lunak
Tujuan rekayasa perangkat lunak yaitu :
1.      Memperoleh biaya produksi perangkat lunak yang rendah.
2.      Menghasilkan perangkat lunak yang kinerjanya tinggi, andal dan tepat waktu.
3.      Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform.
4.      Menghasilkan perangkat lunak yang biaya perawatannya rendah.

Kriteria dalam Merekayasa Perangkat Lunak
1.      Maintainability :          Dapat terus dirawat dan dipelihara.
2.      Dependability :            Dapat mengikuti perkembangan teknologi.
3.      Robust :                       Dapat mengikuti keinginan pengguna.
4.      Usability :                    Dapat memenuhi kebutuhan yang diinginkan.
5.      Efektif dan efisien dalam menggunakan energi dan penggunaannya.

Ruang Lingkup Rekayasa Perangkat Lunak
1.      Software requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak.
2.      Software desain mencakup proses penampilan aristektur, komponen, antarmuka, dan karakteristik lain dari perangkat lunak.
3.      Software construction berhubungan dengan detail pengembangan perangkat lunak, termasuk algoritma, pengkodean, pengujian dan pencarian kesalahan.
4.      Software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak.
5.      Software maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan.
6.      Software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu.
7.      Software engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak.
8.      Software engineering tools and methods mencakup kajian teoritis tentang alat bantu dan metode RPL.

Materi Rekayasa Perangkat Lunak :
Secara garis besar ada 6 materi, yaitu :
1.      Pengenalan rekayasa perangkat lunak :
Di dalam materi pengenalan rekayasa perangkat lunak yang pertama dipelajari adalah materi secara umum yaitu pengertian berdasarkan kesepakatan serta beberapa tokoh, definisi secara umum, sejarah, perkembangan, tokoh-tokohnya. Di dalam materi ini juga di jelaskan tentang perangkat lunak secara umum, mulai dari karakteristik suatu perangkat lunak, tujuan pembuatan dari beberapa sisi baik itu dari sisi pengguna, dari sisi sponsor atau pihak yang mendanai ataupun dari sisi pengembang.
2.      Konsep dasar rekayasa perangkat lunak :
Konsep Dasar Rekayasa Perangkat Lunak. Didalam materi ini di jelaskan tentang konsep-konsep dasar dalam mengembangkan suatu perangkat lunak.  Dijelaskan juga tentang rekayasa perangkat lunak di dalam dunia praktis atau lapangan. Di dalam materi ini juga di jelaskan tentang siklus suatu rekayasa perangkat lunak mulai dari pra produksi, pengembangan, pasca produksi hingga rekayasa atau yang biasa kita lakukan dalam software adalah patch (menutupi kekurangan).  Di sini juga dijelaskan mengenai tingkatan perangkat lunak, jenis-jenis perangkat lunak dan perkembangan perusahaan perangkat lunak.
3.      Metode pengembangan perangkat lunak :
Metodologi pengembangan perangkat lunak atau disebut juga model proses atau paradigma rekayasa perangkat lunak adalah suatu strategi pengembangan yang memadukan proses, metode, dan perangkat (tools). Didalam materi ini di jelaskan mengenai metode-metode pengembangan perangkat lunak yang pernah di pakai dan sering di pergunakan di dalam mengembangkan software diantaranya metode sekuensial linier, prototype, RAD, Fouth Generation Techniques (4GT) , spiral, metode Proses Perangkat Lunak Evolusioner (pertambahan, spiral, konkruen), dan metode formal.
4.      Analisi resiko :
Di dalam materi ini di jelaskan mengenai resiko-resiko yang akan di hadapi dalam pengembangan suatu perangkat lunak. Di sini dijelaskan semua mengenai jenis-jenis resiko kemudian bagaimana menanganinya atau memanagement suatu resiko. Dan Bagaimana suatu resiko itu dapat di manfaatkan sebagai referensi di dalam pengembangan perangkat lunak dan selanjutnya.
5.      Persiapan project perangkat lunak :
Persiapan Project Perangkat Lunak, di dalam materi ini menjelaskan apa saja yang perlu di siapkan di dalam mengembangkan suatu project perangkat lunak. materi ini menjelaskan tentang manajemen proyek suatu pengembangan perangkat lunak berdasarkan tahap-tahap pengembangan yang baik, mulai dari Initiating(proyek sedang dalam proses untuk dipilih/disetujui, disponsori, didanai, dan diluncurkan. Planning (perencanaan adalah proses yang berulang dan menggambarkan proses bagaimana proyek akan dilaksanakan hingga selesai), Executing (setelah proyek direncanakan, tim proyek memulai pekerjaannya), Controlling (selama tim proyek mengerjakan tugasnya, project manager mengontrolnya) dan yang terakhir adalah Closing (setelah proyek diselesaikan project manager akan menutup proyek software).
6.      Analisis desain :
Di dalam materi ini di jelaskan tentang sistem informasi, fase-fase analisis desain, maintenance sistem, case tools, metodologi alternatif.
7.      Testing dan implementasi :
Di jelaskan secara umum karakterisk strategi pengujian perangkat lunak, tahapan-tahapan proses pengujian, dijelaskan pula faktor-faktor apa saja yang di perlukan didalam pengujian suatu perangkat lunak. Kemudian pengimplementasian kepada user seperti apa dan bagaimana suatu rekayasa dianggap berhasil atau gagal.

Macam-macam Perangkat Lunak
Macam-macam perangkat lunak, antara lain :
1.      Perangkat Lunak Sistem :
Software yang mengelola perangkat keras dan perangkat lunak yang digunakan komputer.
Ex : DOS, Macintosh, Windows, dll.
2.      Perangkat Lunak Bahasa Pemrogaman :
Software yang berfungsi untuk membantu melakukan pembuatan program aplikasi komputer.
Ex : Visual basic, C++, dll.
3.      Perangkat Lunak Aplikasi :
Software yang berfungsi untuk membantu melakukan berbagai tugas perkantoran/ aktivitas sehari-hari.
Ex : Pengolah kata, Pengolah gambar, Lembar sebar, dll.

Contoh Perangkat Lunak

Model air terjun ( waterfall ) :
Biasa juga disebut siklus hidup perangkat lunak. Mengambil kegiatan dasar seperti spesifikasi, pengembangan, validasi, dan evolusi serta mempresentasikannya sebagai fase-fase proses yang berbeda seperti spesifikasi persyaratan, perancangan peraangkat lunak, implementasi, pengujian dan seterusnya.
Masalah dengan model waterfall :
1.      Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses.
2.      Hal ini mengakibatkan sulitnya untuk merespon perubahan kebutuhan pengguna ( user ).
3.      Model air terjun harus digunakan hanya ketika persyaratan dipahami dengan baik.
Kekurangan model waterfall :
1.      Pengguna hanya mendapatkan deskripsi yang panjang, rinci dan “agak membosankan” untuk dibaca.
2.      Alur linier, proses lambat
3.      Pengguna baru melihat produk setelah akhir tahapan.
4.      Personil tidak bekerja optimal, karena ada waktu tunggu sebuah tahapan selelsai.
Kelebihan model waterfall :
1.      Lebih disiplin.
2.      Dorongan bahwa dokumentasi selalu tersedia untuk tiap tahapan ( dokumen lengkap ).
3.      Dorongan bahwa setiap produk yang dihasilkan selalu dicek, maintenance mudah karena dokumen lengkap.

sumber :