Anda di halaman 1dari 53

Rekayasa Perangkat Lunak

Software Engineering
Rudy Ansari SKom,MKom
Rudy Ansari
• SMAN 2 Banjarmasin (1999)
• S1 STIKI (Sekolah Tinggi Informatika dan Komputer
Indonesia) Malang (2002)
• S2 UDINUS (Universitas Dian Nuswantoro)
Semarang (2009)
• Email: rudy.ansari@gmail.com
Tata Tertib
• Keterlambatan 20 menit
• Jika saya terlambat >30 menit tanpa
pemberitahuan = silahkan ditinggal
• Tertib dalam mengumpulkan tugas (Tepat
Waktu)
• Berpakaian Rapi dan Sopan
Komposisi
• Kehadiran: 10%
• Tugas: 20%
• UTS: 20%
• UAS: 20%
• Tugas Kelompok: 30%
Tugas Kelompok
• 1 Kelompok 4 Orang
• Spesifikasi dan Kebutuhan Perangkat Lunak
• Jadwal proyek dan pembiayaan
• Context Diagram
• Diagram Alir data / UML
• Interface Design
• 2 Pertemuan Terakhir kita gunakan sebagai
presentasi project
Textbooks

1. Rosa A.S, M. Shalahuddin - Rekayasa Perangkat Lunak – 2011


2. Adi Nugroho – Rekayasa Perangkat Lunak Berorientasi Objek dengan Metode USDP – 2010
3. Roger S. Pressman, Ph.D – Rekayasa Perangkat Lunak jilid 1 dan jilid 2 - 2012
Materi Bahasan
1. Pengantar Rekasaya Perangkat Lunak
2. Proses Rekayasa Perangkat Lunak
3. Analisis dan Desain Sistem
4. Basis Data
5. Pemrograman Terstruktur
6. Pemrograman Berorientasi Objek
7. Analisis dan Desain Berorientasi Objek
8. Pemodelan dan UML
9. Manajemen Kualitas
10. Manajemen Proyek Perangkat Lunak
11. Estimasi Proyek Perangkat Lunak
12. Penjadwalan Proyek
13. Manajemen Risiko
14. Perawatan dan Rekayasa Ulang
15. Peningkatan Proses Perangkat Lunak
16. Studi Kasus
1. Pengantar Rekayasa Perangkat
Lunak
Sejarah
• Rekayasa Perangkat Lunak yang merupakan
terjemahan dari terminologi Software Engineering
• Istilah software engineering, pertama kali digunakan
pada akhir tahun 1950-an dan sekitar awal 1960-an.
• Krisis Perangkat Lunak (Software Crisis)
• Komputer Generasi ke 3
• Pengembangan PL menjadi tidak efektif secara Cost,
waktu, kualitas
• Muncul pemikiran pendekatan pada engineering yg
lebih pasti, efektif, standard dan terukur dalam
pengembangan perangkat lunak
Apa yang dimaksud dengan Perangkat Lunak?
Pengertian Perangkat Lunak
• Program komputer yang terasosiasi dengan
dokumentasi perangkat lunak seperti
dokumentasi kebutuhan model desain, dan
cara penggunaan (user
manual)[Rosa,Shalahuddin-RPL-2012].
• Sekelompok Item atau objek yang membentuk
“Konfigurasi” dimana di dalamnya termasuk:
intruksi/program, dokumen, struktur data.
Karakteristik perangkat lunak
• Perangkat Lunak dibangun dengan rekayasa
bukan diproduksi secara manufaktur atau
pabrikan.
• Perangkat lunak tidak pernah usang karena
kecacatan dalam perangkat lundak dapat
diperbaiki.
• Barang produksi pabrikan biasanya komponen
barunya akan terus diproduksi, sedangkan
perangkat lunak biasanya terus diperbaiki seiring
bertambahnya kebutuhan.
Lingkup Proyek Perangkat Lunak
¤ Pengembangan perangkat lunak
¤ Pengembangan perangkat lunak, dan
pengadaan perangkat keras
¤ Pembenahan sistem prosedur, dan
pengembangan perangkat lunak
¤ Pembenahan sistem prosedur,
pengembangan perangkat lunak dan
pengadaan perangkat keras
Mata kuliah yang mendasari penguatan
pemahaman dalam belajar RPL :
– IMK
– Konsep pemrograman
– Algoritma pemrograman
– Basisdata
Definisi Perangkat Lunak
IEEE-Standar Glossary of Software Engineering Terminology,
1990:
(Institute of Electrical and Electronic Engineering )
• Computer programs, procedures, and possibly associated
documentation and data pertaining to the operation of a
computer system.

• Terjemahan bebasnya:
Perangkat lunak merupakan kumpulan dari
berbagai item (program, prosedur, dan dokumen
data yang saling terkait) yang merepresentasikan
masalah di dunia nyata yang dikonfigurasikan
dalam satu bentuk aplikasi yang harus dikerjakan
komputer.
Produk Perangkat Lunak (1)
• Perangkat lunak tidak sama dengan produk perangkat
keras

• Produk perangkat lunak dikembangkan (developed)


atau direkayasa (engineered) Tidak dipabrikkan seperti
pabrik perangkat keras, misal komputer, mobil.

• Perangkat lunak secara pemakaian tidak pernah


aus/usang layaknya suku cadang perangkat keras
Produk Perangkat Lunak (2)
• Perangkat lunak sebagian besar dikembangkan/dibangun
berdasarkan pemesanan hanya sebagian kecil yang dibuat
secara paket

Bentuk produk perangkat lunak


• Umum/generik
Dibuat untuk keperluan yang luas dan tidak berdasarkan pada
permintaan pihak tertentu.

• Pesanan/custome/by tailor
Dibuat spesifik sesuai sistem yang dibutuhkan oleh pemesan
Produk Perangkat Lunak (3)
• Karakteristik perangkat lunak yang baik:

- Mempunyai daya guna yang tinggi (usability)


- Mempunyai kinerja sesuai fungsi yang dibutuhkan
pemakai
- Mampu diandalkan (be reliable)
- Mudah dirawat/diperbaiki (maintenability)
- Lebih efisien
- Mempunyai antarmuka yang menarik (eye cathcing user
interface)
- Mempunyai siklus hidup yang cukup lama (long life
time)
Jenis-jenis Aplikasi PL (1)
• Perangkat lunak sistem
Sekumpulan program yang ditulis untuk melayani program-
program lain
Misal: sistem operasi, driver, kompilator, interpreter, utility,
dll

• Perangkat lunak waktu nyata (realtime)


Perangkat lunak yang berfungsi untuk memonitor,
menganalisis, mengontrol dan memberikan laporan
tentang kejadian dunia nyata dan meresponnya dalam
waktu kurang dari 1 menit.
Misal: pengontrol arus udara, pengontrol keasaman tabung
reaksi (pressman punya), pengontrol reaksi nuklir,dll
Pengendalian reaktor nuklir
Jenis-jenis Aplikasi PL (2)
• Perangkat lunak teknik dan ilmu pengetahuan
(scientific & engineering software)
Perangkat lunak yang menangani bidang teknik dan ilmu
pengetahuan secara rinci
Misal: simulasi, astronomi, vulkanologi, analisis otomatif, dinamika
orbit pesawat ruang angkasa, biologi molekuler, otomasi pabrik, dll

• Embeded system
Perangkat lunak yg ditempelkan/dilekatkan pada perangkat lainnya
(lunak/keras).
Misal: pada kamera digital, GPS, automobil, microwave, kulkas
cerdas, dll
Smart Car
Informasi perjalanan
Jenis-jenis Aplikasi PL (3)
• Perangkat lunak pengolah data (data processing)
Perangkat lunak yang khusus digunakan untuk
mengolah data dan menghasilkan suatu keputusan
tertentu.
Misal: billing telepon, pengolah statistik

• Perangkat lunak sistem informasi (information


system)
Perangkat lunak yang mampu memberi informasi dari
suatu sistem secara lebih detail.
Misal: web site, perpustakaan digital, dll
Jenis-jenis Aplikasi PL (4)
• Perangkat lunak sensor
Perangkat lunak yang mampu mengukur dan mengatur
suatu keadaan khusus, kadang digolongkan dalam
embedded system juga.
Misal: pengatur cuaca, pengatur suhu ruangan, dll

• Perangkat lunak komunikasi (communication


software)
Perangkat lunak yang berfungsi untuk menghubungkan
atau mengkomunikasikan suatu objek satu dengan
lainnya.
Misal: router, handphone, dll
Jenis-jenis Aplikasi PL (5)

• Perangkat lunak kantor (offices)


Perangkat lunak yang dirancang untuk membantu
tugas-tugas perkantoran.
Misal: word processing, spreedsheet processing, video
conferences, dll

• Perangkat lunak pengolah grafis


Perangkat lunak yang digunakan untuk melakukan
perancangan grafis
Misal: pembuatan film, pembuatan poster
Jenis-jenis Aplikasi PL (6)

• Perangkat lunak kecerdasan


Perangkat lunak yang menggunakan algoritma
no-numeris untuk memecahkan masalah
kompleks yang tidak sesuai untuk perhitungan
atau analisis secara langsung
Misal: sistem pakar, pembuktian teorema,
game strategi, jaringan saraf tiruan, dll
Evolusi perangkat lunak
Evolusi Perangkat Lunak (1)
• Perangkat lunak telah semakin berkembang sejak
pertama kali diciptakan tahun 1945
• Fokus utama pembuatannya
Untuk mengembangkan praktik dan teknologi
dalam meningkatkan produktivitas para praktisi
pengembang PL dan kualitas aplikasi yg dapat
digunakan oleh pemakai

• Evolusi dipicu adanya tuntutan bisnis dan


lingkungan kerja yang berkembang sangat
dinamis
Evolusi Perangkat Lunak (2)

• Era I (1945 – 1960):


- Munculnya teknologi perangkat keras di tahap awal
- Penggunaan perangkat lunak yg berorientasi batch
- Distribusi perangkat lunak masih terbatas
- Didominasi perangkat lunak model custome
- Munculnya istilah software engineering (akhir 1950-
an/awal 1960-an)
- Belum didefinisikan secara jelas tentang aspek
software engineering
Evolusi Perangkat Lunak (3)
• Era II (1960 – 1970)
- Disebut era krisis perangkat lunak (software crisis).
- Penggunaan perangkat lunak sudah meluas
- Telah hadir perusahaan yang membangun software (software
house)
- Perangkat lunak sdh mengenal multiprogram, multiuser, real-time,
dan penggunaan database.
- Banyak project PL yg gagal:
- Over budget/anggaran
- Meledaknya Roket Ariane àkesalahan perintah dlm PL

Dua konferensi tentang software engineering:


- Disponsori Komite Sains NATO
- Tahun 1968 dan 1969
- Profesi resmi bidang software engineering
Evolusi Perangkat Lunak (4)

• Era III (1975 – 1985)


- Pengembangan sistem mengarah ke konsep
sistem terdistribusi.
- Penerapan sistem embeded intelligence
- Harga perangkat keras sudah jauh lebih
murah sehingga pemakaian meluas
- Pemanfaatan jaringan global dan lokal serta
sudah diperkenalkan komunikasi digital
Evolusi Perangkat Lunak (5)

• Era IV (1985 – 2000)


- Kemampuan PC sudah setara dengan komputer
mainframe
- Penerapan teknologi yang berorientasi pada objek
- Implementasi sistem pakar,
- Jaringan saraf tiruan
- Komputasi paralel
- Jaringan komputer sudah semakin canggih
Evolusi Perangkat Lunak (6)
• Era V (2000 – sekarang)
- Penggunaan media digital
- Media web berkembang pesat
- Wireless sudah meluas
- Teknologi meluas hingga di mobile computing,
mobile programming
- Perangkat keras sudah semakin kecil namun
powerfull
- Dilakukan berbagai penelitian yang menghasilkan
model proses/paradigma pengembangan PL utk
mengatasi krisis PL
Era V (2000 – sekarang)
- Muncul teknik-teknik baru:
- Pemrograman terstruktur
- Pemrograman berientasi objek
- Perangkat bantu pengembangan (CASE
tools)
- Standarisasi PL
- Metode UML
Apa yang dimaksud dengan
Rekayasa Perangkat Lunak
(Software Engineering)??
Pengertian Rekayasa Perangkat Lunak

Suatu disiplin ilmu yang membahas semua aspek


produksi perangkat lunak, mulai dari tahap awal
requirement capturing (analisa kebutuhan
pengguna), specification (menentukan spesifikasi
dari kebutuhan pengguna), desain, coding, testing
sampai pemeliharaan sistem setelah digunakan.
• Rekayasa Perangkat Lunak bukan merupakan cabang
ilmu Computer Science yang mempelajari tentang
technical coding.
• Ini yang sering salah kaprah dipahami, sehingga
pelajar, mahasiswa atau bahkan calon dosen, shock
ketika dihadapkan dengan buku-buku textbook
Rekayasa Perangkat Lunak yang selalu tebal dengan
penjelasan sangat luas tentang bagaimana perangkat
lunak diproduksi, dari aspek requirement capturing,
desain, arsitektur, testing, kualitas software, sampai
people/cost management.
• Dan ini adalah suatu kesepakatan yang sudah
diterima umum tentang Rekayasa Perangkat
Lunak, sejak jaman Roger S Pressman menulis
buku ”Software Engineering: A Practitioner's
Approach”, sampai Ian Sommerville yang
kemudian datang dengan buku ”Software
Engineering” yang sudah sampai edisi ke 7,
maupun pendatang baru semacam Hans Van
Vliet, Shari Lawrence Pfleeger maupun James
F Peters.
Terus bagaimana kalau kita ingin
memperdalam masalah technical
coding dan programming?
Ada dua cabang ilmu lain yang membahas
lebih dalam masalah ini, yaitu:
1. Algoritma dan Struktur Data
2. Bahasa Pemrograman
Kok bisa begitu, dasarnya darimana?
• Pada hakekatnya, sebagai sebuah disiplin ilmu,
Computer Science itu juga memiliki definisi, ruang
lingkup, klasifikasi dan kategorisasinya.

• Klasifikasi yang paling terkenal dikeluarkan Task


Force yang dibentuk oleh IEEE (Institute of
Electrical and Electronics Engineers) dan ACM
(Association for Computing Machinary
(http://acm.org)) yang dipimpin oleh Peter J
Denning, yang kemudian terkenal dengan
sebutan Matriks Denning.
Sangat jelas bahwa Matriks Denning
memisahkan antara cabang ilmu Software
Engineering dengan Algoritma dan Struktur
Data, serta Bahasa Pemrograman.
Matriks Denning versi 1999
Nah terus pertanyaan kembali muncul, jadi
sebenarnya apa yang menjadi ruang lingkup
ilmu Software Engineering itu apa?
• Kegelisahan ini dijawab tuntas oleh IEEE
Computer Society (http://computer.org) dengan
membentuk tim di tahun 1998 dimana tim
tersebut mulai menyusun pemahaman
standard (body of knowledge) tentang bidang
ilmu Software Engineering
• Kemudian terkenal dengan sebutan SWEBOK
(Software Engineering Body of Knowledge).
Sudah ada dua versi SWEBOK ini, yaitu yang
diterbitkan tahun 1999 dan terakhir tahun
2004.
• Tiada gading yang tak retak kata orang bijak,
project IEEE Computer Society tentang SWEBOK
ini sebenarnya juga banyak dikritik oleh pakar
yang lain. Paling tidak dua tokoh besar dunia
Software Engineering yaitu Cem Kaner and Grady
Booch tidak terlalu setuju dengan materi yang
ada di dalam SWEBOK, bahkan menyebutnya
sebagai sebuah guide yang misguided
• Terlepas dari hal itu, boleh dikatakan SWEBOK
cukup bisa diterima banyak pihak.
• Selain SWEBOK, sebenarnya ada project lain
yang mirip dalam usaha menyusun
pemahaman standard dalam bidang Software
Engineering, yaitu CCSE (Computing
Curriculum Software Engineering)
• Hal ini berbeda dengan orientasi SWEBOK
yang lebih umum melingkupi dunia akademisi
dan praktisi.

Anda mungkin juga menyukai