Rekayasa Perangkat Lunak dan Proses Software Aryo Pinandito Program Vokasi Universitas Brawijaya 2012
Tentang Rekayasa Perangkat Lunak Pertumbuhan ekonomi seluruh negara maju sangat bergantung pada perangkat lunak Semakin banyaknya sistem yang dikendalikan oleh perangkat lunak Ilmu rekayasa perangkat lunak terkait dengan teori, metode, dan tools untuk membuat perangkat lunak yang baik Biaya yang digunakan untuk pembelanjaan perangkat lunak merepresentasikan nilai yang signifikan di seluruh negara-negara maju
Biaya Perangkat Lunak Pada umumnya biaya perangkat lunak lebih mendominasi biaya keseluruhan sistem komputer. Biaya software lebih tinggi daripada biaya hardware. Untuk sistem jangka panjang, biaya perawatan untuk perangkat lunak lebih mahal daripada biaya pembuatan perangkat lunak. Rekayasa perangkat lunak terkait dengan bagaimana mengembangkan perangkat lunak yang efektif.
Apa itu software? Program komputer dan dokumentasi pendukungnya. (daftar kebutuhan, model-model desain, dan user manual) Produk software dapat dikembangkan untuk pengguna tertentu atau dikembangkan untuk pengguna secara umum. Generic: dikembangkan dan dipasarkan untuk banyak jenis pengguna (seperti: Excel dan Word) Custom: dikembangkan untuk satu pengguna berdasarkan spesifikasi kebutuhan pengguna tersebut Perangkat lunak dapat dikembangkan dari awal, mengubah konfigurasi sistem perangkat lunak, atau menggunakan ulang software yang sudah ada.
Apa itu Rekayasa Perangkat Lunak? Sebuah disiplin ilmu yang terkait dengan seluruh aspek pengembangan perangkat lunak Para pengembang perangkat lunak harus menggunakan pendekatan yang sistematis dan terstruktur, serta dalam menggunakan tools dan teknik yang sesuai harus mengacu kepada masalah yang akan diselesaikan, batasan-batasan pengembangan, dan sumber daya yang tersedia.
Proses Software Sekumpulan aktivitas yang tujuannya adalah mengembangkan atau mengubah perangkat lunak Aktivitas generik dalam seluruh proses software: Spesifikasi, apa yang harus sistem lakukan dan batasan- batasan pengembangannya. Development, proses pembuatan perangkat lunak. Validasi, memeriksa kesesuaian perangkat lunak dengan kebutuhan pengguna Evolusi, perubahan perangkat lunak sebagai respon terhadap kebutuhan yang berubah.
Model Proses Software Sebuah representasi yang disederhanakan dari sebuah proses software, dipresentasikan dari sudut pandang tertentu. Contoh sudut pandang proses: Workflow, urutan-urutan dari aktivitas; Data-flow, aliran informasi Role/action, siapa melakukan apa Model proses generik: Waterfall Pengembangan iterative Pengambangan berbasis komponen
Model Proses Software Waterfall
Fase Model Waterfall Definisi dan analisis kebutuhan Desain perangkat lunak dan sistem Implementasi dan unit testing Integrasi dan system testing Operasi dan maintenance
Masalah dalam model waterfall Kesulitan dalam mengakomodasi perubahan setelah proses dilaksanakan. Satu fase harus selesai sebelum bergerak ke fase selanjutnya. Model ini hanya sesuai ketika kebutuhan telah dipahami dengan baik, dan kemungkinan perubahan yang terjadi sangat kecil pada saat proses desain Sangat sedikit sistem bisnis yang memiliki kebutuhan yang stabil Umumnya model ini digunakan untuk proyek rekayasa sistem besar dimana sebuah sistem dikembangkan di beberapa tempat secara terpisah
Biaya rekayasa perangkat lunak Secara kasar, 60% biaya pengembangan dan 40% biaya pengujian. Variasi biaya bergantung pada jenis sistem yang dikembangkan dan kebutuhan atribut sistem, seperti performansi dan reliabilitas. Distribusi biaya bergantung pada model pengembangan yang digunakan.
Distribusi biaya
Metode Rekayasa Perangkat Lunak Metode RPL: Pendekatan terstruktur untuk mengembangkan perangkat lunak dimana didalamnya termasuk model-model sistem, notasi, aturan, desain dan garis besar proses. Deskripsi model Penjelasan gambar model yang akan dibuat Aturan Batasan-batasan yang harus diterapkan dalam model sistem Rekomendasi Saran-saran terhadap praktek desain yang baik Petunjuk Proses Aktivitas apa saja yang harus diikuti
CASE (Computer-Aided Software Engineering) Sistem perangkat lunak yang ditujukan untuk memberikan dukungan otomatisasi dalam aktivitas proses software. Upper-CASE Tools yang digunakan dalam aktivitas proses kebutuhan awal dan desain Lower-CASE Tools yang digunakan untuk mendukung aktivitas selanjutnya, seperti programming, debugging, dan testing
Atribut Perangkat Lunak Yang Baik Perangkat lunak yang dibangun harus mampu memberikan fungsional dan performa yang dibutuhkan oleh pengguna serta harus dapat diandalkan. Maintainability: Harus dapat diubah sesuai dengan kebutuhan pengguna Dependability: Output perangkat lunak harus dapat dipercaya Acceptability: Dapat dimengerti, digunakan, dan kompatibel dengan sistem yang lain.
Aktivitas Proses Spesifikasi Software Desain dan Implementasi Software Validasi Software Evolusi Software
Spesifikasi Software Proses untuk mengetahui layanan/fungsi yang dibutuhkan serta batasan-batasan dalam pengembangan dan pelaksanaannya Proses rekayasa kebutuhan: Studi kelayakan Pengumpulan dan analisis kebutuhan Spesifikasi kebutuhan Validasi kebutuhan
Proses Rekayasa Kebutuhan
Desain dan Implementasi Perangkat Lunak Proses mengubah spesifikasi sistem menjadi sebuah sistem yang dapat dijalankan Desain software Mendesain struktur perangkat lunak berdasarkan spesifikasi Implementasi Menerjemahkan struktur perangkat lunak kedalam program yang dapat dieksekusi Aktivitas dalam desain dan implementasi sangat berkaitan
Metode Desain Terstruktur Pendekatan sistematis untuk membuat sebuah desain perangkat lunak Umumnya didokumentasikan dengan sekumpulan model-model gambar. Model objek Model squence State-transition model Model struktural Model data-flow
Programming dan Debugging Menerjemahkan desain kedalam sebuah program dan menghilangkan kesalahan dalam program tersebut Pemrograman adalah aktivitas personal, dimana didalamnya tidak ada proses program yang umum. Programmer melakukan pengujian program untuk menemukan kesalahan dalam program. Kesalahan- kesalahan program diperbaiki dalam proses debugging.
Validasi Perangkat Lunak Verifikasi dan validasi bertujuan untuk memperlihatkan bahwa sistem yang dibangun sesuai dengan spesifikasi dan memenuhi kebutuhan dari pengguna Proses ini melibatkan proses review dan pengujian sistem. Pengujian sistem dilakukan dengan test case yang diturunkan dari spesifikasi dengan menggunakan data nyata yang akan diolah oleh sistem.
Evolusi (Maintenance) Software Perangkat lunak bersifat fleksibel dan dapat berubah Seiring dengan berubahnya kebutuhan terkait dengan kebutuhan bisnis, perangkat lunak yang mendukung bisnis tersebut harus berevolusi dan berubah. Semakin sedikit sistem dan perangkat lunak yang dibangun dengan benar-benar baru. Evolusi pada umumnya merupakan pengembangan dari versi sebelumnya atau merupakan gabungan dari sistem atau perangkat lunak lain.
Key Points Proses software adalah aktivitas yang terkait dalam membuat dan berevolusinya sebuah sistem perangkat lunak. Aktivitas umum dalam proses software Spesifikasi, desain dan implementasi, validasi dan evolusi Rekayasa kebutuhan adalah proses menyusun sebuah spesifikasi kebutuhan perangkat lunak Desain dan implementasi mengubah spesifikasi kedalam program yang dapat dijalankan
Key Points Validasi menguji sistem yang dibangun memenuhi spesifikasi dan kebutuhan user Evolusi terkait dengan perubahan sistem setelah digunakan Teknologi CASE digunakan untuk membantu dalam aktivitas-aktivitas proses software