PEMAHAMAN REKAYASA PERANGKAT LUNAK
Apakah Rekayasa Perangkat Lunak itu? Rekayasa: aplikasi keilmuan untuk penyelesaian permasalah an praktis Rekayasa Perangkat Lunak: aplikasi ilmu komputer untuk membangun sistem perangkat lunak praktis adalah suatu disiplin rekayasa yang berkonsentrasi ter hadap seluruh aspek produksi perangkat lunak. mengadopsi pendekatan yang sistematis dan terorganisir terhadap pekerjaannya dan menggunakan tool yang sesuai serta teknik yang ditentukan berdasarkan masalah yang akan dipecahkan, kendala pengembangan dan sumber daya yang tersedia
Pemrograman o Individu menulis keseluruhan program o Satu orang, satu komputer o Well-defined Problem o Programming-in-the-Small Rekayasa Perangkat Lunak o Individu menulis komponen program o Tim membangun keseluruhan prgram o Programming-in-the-Large
Aplikasi dari merekayasa perangkat lunak Wilayah Computer Science Engineering yang berhubungan dengan Sistem Perangkat Lunak o Besar dan kompleks o Dibangun oleh tim o Terdapat beberapa versi o Berakhir beberapa tahun o Undergo changes Definisi o Aplikasi yang menggunakan pendekatan sistematis, disiplin, terukur untuk mengembangkan, mengoperasikan dan memelihara perangkat lunak (IEEE 1990) o Pembangunan oleh banyak orang (multi-person) dari perangkat lunak multi-version (Parnas 1978)
Mengapa Rekayasa Perangkat lunak ? Kompleksitas program melebihi programmer individu Rekayasa perangkat lunak ditarget untuk o Membangun aplikasi perangkat lunak besar o Mendefinisikan permasalahan dengan jelas dan komplit o Perangkat dan teknik untuk mendukung proses o Team-Oriented experience Rekayasa perangkat lunak harus berkembang menjadi Engineering discipline Rekayasa perangkat lunak harus memajukan dan mendukung konstruksi multi-person dari perangkat lunak multi-version
Tujuan RPL Diartikan bahwa bidang rekayasa akan selalu berusaha menghasilkan output yang kinerjanya tinggi, biaya rendah dan waktu penyelesaian yang tepat.
Apa tujuan RPL ? a. Memperoleh biaya produksi perangkat lunak yang rendah. b. Menghasilkan perangkat lunak yang kinerjanya tinggi, andal dan tepat waktu. c. Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform. d. Menghasilkan perangkat lunak yang biaya perawatannya rendah.
MANFAAT RPL Perangkat lunak yang dihasilkan sesuai dengan kebutuhan yang diinginkan. Perangkat lunak dapat digunakan dan beroperasi dengan benar di lingkungan sebenarnya. Perangkat lunak memberikan manfaat bagi pemakai yang menggunakannya. Biaya yang dikeluarkan untuk membuatnya rendah (efisien), efektif dan sesuai dengan anggaran yang telah ditetapkan. Tepat waktu, baik saat pembuatan, penyerahan ke pemakai, maupun instalasinya. Setiap tahap pekerjaan terjamin kualitasnya, terdokumentasi, dan dapat dipertanggungjawabkan kebenarannya (ada proses verifikasi dan validasi).
Elemen-elemen Kunci dalam RPL - Metode : 'how to' yang bersifat teknis , meliputi bidang- bidang perencanaan proyek, estimasi, analisis persyaratan, perancangan, coding, pengujian, dan pemeliharaan. - Tool : Memberikan dukungan automasi bagi metode - Prosedur : mengintegrasikan metode dan tool
Ruang lingkup Rekayasa Perangkat lunak . Perangkat Lunak
Software design mencakup proses penentuan arsitektur, - Software requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak. Software design mencakup proses penentuan arsitektur, komponen,antarmuka, dan karakteristik lain dari perangkat lunak. Software construction berhubungan dengan detil pengembangan perangkat lunak, termasuk algoritma, pengkodean, pengujian, dan pencarian kesalahan. Software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak. - Software maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan.
Software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu. Software engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak. Software engineering tools and methods mencakup kajian teoritis tentang alat bantu dan metode RPL. Software engineering process berhubungan dengan definisi, implementasi, pengukuran, pengelolaan, perubahan dan perbaikan proses RPL. - Software quality menitikberatkan pada kualitas dan daur hidup perangkat lunak.
Keterkaitan RPL dengan Ilmu lain
Keterkaitan RPL dengan Ilmu lain Bidang ilmu manajemen meliputi akutansi, finansial, pemasaran, manajemen operasi, ekonomi, analisis kuantitatif, manajemen sumber daya manusia, kebijakan dan strategi bisnis. Bidang ilmu matematika meliputi aljabar linier, kalkulus, peluang, statistik, analisis numerik dan matematika diskrit. Bidang ilmu manajemen proyek meliputi semua hal yang berkaitan dengan proyek, seperti ruang lingkup proyek, anggaran, tenaga kerja, kualitas, manajemen resiko, dan penjadwalan proyek.
Keterkaitan RPL dengan Ilmu lain Bidang ilmu manajemen kualitas meliputi pengembangan sistem kualitas, manajemen resiko dan keandalan, perbaikan kualitas, dan metode-metode kuantitatif. Bidang ilmu ergonomika menyangkut hubungan (interaksi) antara manusia dengan komponen-komponen lain dalam sistem komputer. Bidang ilmu rekayasa sistem meliputi teori sistem, analisis biayakeuntungan, pemodelan, simulasi, proses dan operasi bisnis.
Biaya rekayasa perangkat lunak Sekitar 60% untuk biaya pengembangan, 40% biaya pengujian. Untuk perangkat lunak berbasis pengguna (custom), biaya evolusi biasanya melebihi biaya pengembangan. Biaya beragam tergantung pada tipe sistem yang akan dikembangkan dan kebutuhan sistem seperti unjuk kerja dan kehandalan sistem, Distribusi biaya bergantung pada model pengembangan yang digunakan.
Proses Perangkat lunak Sekumpulan aktifitas yang memiliki tujuan untuk pengembangan ataupun evolusi perangkat lunak. Aktifitas generic dalam semua proses perangkat lunak adalah: • Spesifikasi – apa yang harus dilakukan oleh perangkat lunak dan batasan/kendala pengembangannya • Pengembangan – proses memproduksi sistem perangkat lunak • Validasi – pengujian perangkat lunak terhadap keinginan pengguna • Evolusi – perubahan perangkat lunak berdasarkan perubahan keinginan.
Model Proses Perangkat Lunak Model Proses Perangkat Lunak adalah: Penjelasan atau abstrak dari proses perangkat lunak yang disederhanakan dan dipresentasikan dengan sudut pandang tertentu, ke dalam bentuk gambar/diagram, misalnya seperti: Data flow diagram Use-case Flowchart
Rekayasa PL Vs Proses PL Disiplin Ilmu yang membahas semua aspek produksi PL, dari tahap awal spesifikasi sistem sampai pemeliharaannya Disiplin rekayasa: Menerapkan teori , metode dan alat bantu yg sesuai Semua aspek produksi PL : Proses teknis pengembangan dan manajemen proyek , serta pengembangan alat bantu dan metode untuk mendukung produksi PL. Proses PL Serangkaian kegiatan yang memberikan hasil2 relevannya untuk meng hasilkan perangkat lunak, meliputi spesifikasi PL, Pengembangan PL , validasi PL dan Evolusi PL.
Sejarah RPL “Early Days” o Th 1950 programmer menulis program o Awal 1960 – Pembangunan project software skala sangat besar oleh “Expert” o Pertengahan-Akhir 1960 - muncul aplikasi software komersial skala besar • Sistem besar melibatkan tim • Muncul istilah “Software Engineering Disiplin RPL o Individu tidak dapat melihat “Big Picture” o Meningkatnya waktu komunikasi o Perubahan personal berakibat pada produktifitas RPL: manajemen, organisasi, perangkat, teori, metodologi, teknik dll
Perkembangan RPL
Pengaruh RPL Harga software terus meningkat, membutuhkan produksi software yang lebih efisien o Software acquisition vs outsourcing o Software reuse vs build-from-scratch Kompleksitas perangkat lunak besar berubah dalam bentuk perspektif pengembangan Konsep Desain Pengembangan Integrasi Distribusi Dokumentasi Pemeliharaan Evolusi Perluasan Pertumbuhan RPL/Computer Science o 350.000 pekerjaan teknologi informasi terbuka o 100.000 pekerjaan baru setiap tahun selama 10 tahun
Programer Vs RPL Bagian dari tim Individu dengan skill yang baik Pemrograman kecil Pengetahuan dalam o Strukturdata o Algoritma Menguasai beberapa bahasa pemrograman Ketiadaan training formal Penggunaan CS minimal Bagian dari tim Pemrograman skala besar Pendekatan desain o OO, modul dll o Top-Down/Bottom-Up Menterjemahkan kebutuhan ke dalam spesifikasi Lebih akrab dalam area multiple application Berlawanan dengan user Melihat “Big picture” Dapat memodelkan aplikasi Skill komunikasi dan interpersonal yang baik
Rekayasa Perangkat Analisis & Perancang Lunak Vs an sistem informasi Bagian dari tim Pemrograman skala Besar Pendekatan disain o OO, modul dll o Top-down/Buttom-Up Menterjemahkan kebutuhan ke dalam spesifikasi Dapat memodelkan aplikasi Ditujukan untuk membangun semua sistem termasuk sistem informasi Bagian dari tim Pemrograman skala besar Pendekatan desain o OO, modul dll o Top-Down/Bottom-Up Menterjemahkan kebutuhan ke dalam spesifikasi Dapat memodelkan aplikasi Ditujukan hanya untuk membangun sistem informasi