Anda di halaman 1dari 25

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
Requirements
definition

System and
software design

Implementa tion
and unit testing

Integration and
system testing

Oper ation and


maintenance
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
Wat erfall model
0 25 50 75 100

Specification Design Development Integration and testing

It erative development

0 25 50 75 1 00

Specification Iterative development System testing

Component-based software eng ineering

0 25 50 75 1 00

Specification Development Integration and testing

Development and evolution costs for long-lifetime syst ems


0 10 200 30 400

System development System evolution


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
Requirements
Feasibility
stud y elicitation and
anal ysis
Requirements
specification
Feasibility Requirements
repor t validation

System
models
User and system
requirements

Requirements
document
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

Anda mungkin juga menyukai