REKAYASA
PERANGKAT LUNAK
3 sks
Sri Rezeki Candra Nursari
Referensi
•
Rekayasa Perangkat Lunak – Pendekatan
Praktisi, Roger S. Pressman, Ph.D, Andi
Jogyakarta, 2012 – Buku 1
•
Rekayasa Perangkat Lunak – Pendekatan
Praktisi, Roger S. Pressman, Ph.D, Andi
Jogyakarta, 2012 – Buku 2
•
Rekayasa Perangkat Lunak – Analisa
Kebutuhan Dalam, Daniel Siahaan, Andi
Jogyakarta, 2012
Materi
•
Perancangan, pembuatan, pengujian dan perawatan
perangkat lunak serta pemrograman dengan bahasa
tingkat tinggi.
•
Siklus hidup perangkat lunak, Waterfall model, V
model,
Spiral model, Prototyping, prinsip dasar analisis
kebutuhan, alur data, struktur data DSSD, Sistem
Jackson, perangkat pembantu.
•
Computer Aided Software Engineering (CASE) tools.
•
Perancangan real time system.
•
Analisis berorientasi objek, Pemodelan data, Metode
formal, Pengantar perancangan dan implementasi
APLIKASI PERANGKAT LUNAK
•
Kategori Umum Aplikasi Perangkat Lunak :
1. Perangkat lunak sistem
2. Perangkat lunak real time
3. Perangkat lunak bisnis
4. Perangkat lunak teknik dan ilmu pengetahuan
5. Embedded software
6. Perangkat lunak komputer personal
7. Perangkat lunak kecerdasan buatan / artificial
inteligent (AI)
1. PERANGKAT LUNAK SISTEM
•
Merupakan sekumpulan program yang ditulis
untuk melayani program-program yang lain
•
Perangkat lunak sistem ditandai dengan
eratnya interaksi dengan perangkat keras
•
Contoh :
–
kompiler, editor, utilitas pengatur file,
sistem operasi, driver, prosesor
2. PERANGKAT LUNAK REALTIME
• program yang memonitor / menganalisis / mengontrol kejadian dunia nyata pada saat terjadinya disebut
perangkat lunak real-time
• Elemen perangkat lunak real time mencakup :
– komponen pengumpul data yang mengumpulkan dan memformat informasi dan lingkungan eksternal
– komponen analisis yang mentransformasi informasi pada saat dibutuhkan oleh aplikasi
– komponen kontrol / output yang memberi respon kepada lingkungan eksternal
– komponen monitor yang mengkoordinasi semua
3. PERANGKAT LUNAK BISNIS
•
Untuk pemrosesan informasi bisnis. Area aplikasi
perangkat lunak paling luas, seperti :
– perangkat lunak MIS (Sistem Informasi Manajemen) yang mengakses satu atau lebih database besar yang berisi informasi bisnis. Contoh : payroll, account
receivable/ payable, inventory dan lain lain. – Penghitungan klien / server
– Penghitungan interaktif (misal : pemrosesan transaksi point of-sale)
4. PERANGKAT LUNAK TEKNIK DAN
ILMU PENGETAHUAN
•
Ditandai dengan algoritma number
crunching.
•
Memiliki jangkauan aplikasi mulai dari :
– ilmu astronomi sampai vulkanologi – analisis otomotif
– dinamika orbit pesawat ruang angkasa – biologi molekuler
– pabrik yang sudah diotomatisasi
– computer aided – design, simulasi sistem : sudah mendekati perangkat lunak sistem dan real-time
5. EMBEDDED SOFTWARE
•
Ada didalam read only memory (ROM) dan
dipakai untuk mengontrol hasil serta sistem
untuk keperluan konsumen dan pasar
industri, dan dapat :
– melakukan fungsi terbatas (contoh : key pad control pada microwave)
– memberikan kemampuan kontrol dan fungsi yang
penting (contoh : fungsi digital dalam sebuah automobil seperti kontrol bahan bakar, penampilan dashboard,
6. PERANGKAT LUNAK KOMPUTER
PERSONAL
•
Pasar dari perangkat ini adalah :
– pengolah kata, spreadsheet
– grafik komputer, multimedia, hiburan – manajemen database
– aplikasi keuangan, bisnis dan personal
7. PERANGKAT LUNAK KECERDASAN
BUATAN / ARTIFICIAL INTELIGENT (AI)
•
Menggunakan algoritma non-numeris untuk
memecahkan masalah kompleks yang tidak sesuai
untuk perhitungan atau analisis secara langsung.
•
Area kecerdasan buatan seperti :
– Sistem pakar : disebut juga sistem berbasis ilmu pengetahuan – Pengakuan pola (image dan voice)
– Pembuktian teorema – Permainan / game
– Jaringan syaraf tiruan (artificial neural network) : mensimulasi struktur proses-proses otak / fungsi syaraf biologis cabang baru dari perangkat lunak AI yang dapat mengenali pola-pola yang kompleks serta belajar dari pengalaman masa lalu.
8. PERANGKAT LUNAK : KRISIS DI MASA
MENDATANG
•
Krisis : titik balik dari segala hal.
•
Krisis perangkat lunak sendiri menyangkut masalah
yang terjadi dalam perkembangan perangkat lunak
komputer.
•
Masalah yang ada menyangkut :
– perangkat lunak yang tidak berfungsi dengan baik – bagaimana mengembangkan perangkat lunak
– bagaimana memelihara suatu volume perangkat lunak yang sedang tumbuh
– bagaimana mengejar kebutuhan akan lebih banyak perangkat lunak lagi
PRINSIP-PRINSIP SETIAP
AKTIFITAS KERANGKA KERJA
PRINSIP AKTIFITAS
KERANGKA KERJA
•
Prinsip masing-masing aktifitas kerangka
kerja :
1. Prinsip Komunikasi
2. Prinsip Perencanaan
3. Prinsip Pemodelan
4. Prinsip Konstruksi
5. Prinsip Penyerahan
1. PRINSIP KOMUNIKASI
1. Dengarkan
– Fokus pada kata pelanggan
– Lakukan pertanyaan klarifikasi jika tidka jelas – Jangan pernah menunjukan kekurangperhatian
2. Lakukan persiapan sebelum melakukan komunikasi
– Luangkan waktu untuk memahami permasalahan
– Lakukan penelitian sederhana untuk memahami keinginan pelanggan – Siapkan agenda pembicaraan untuk pertemuan tersebut
3. Seseorang sebaiknya menjadi fasilitator aktifitas komunikasi
– Percakapan harus berada pada arah yang produktif – Menjadi perantara jika suatu konflik terjadi
1. PRINSIP KOMUNIKASI
4. Komunikasi yang dilakukan secara tatap muka adalah yang terbaik
– Dapat juga berkomunikasi dalam bentuk dokumen yang ada ada gambarnya sehingga kelak pembicaraan menjadi lebih fokus
5. Lakukan pencatatan dan dokumentasi
– Dalam berkomunikasi sebaiknya melakukan pencatatan hal-hal serta keputusan-keputusan yang penting
6. Usahakan untuk bekerja sama
– Berkerjasama sesungguhnya bertindak untuk mengembangkan sikapsaling percaya diantara para anggota tim perangkat lunak dan juga membuat sasaran umum untuk tim
7. Tetaplah terfokus; lakukan modularisasi pembahasan kita
– Fasilitator harus menjaga agar diskusi berjalan sesuai agenda, dan mengakhiri suatu topik hanya setelah ada penyelesaian
1. PRINSIP KOMUNIKASI
8. Jika sesuatu tidak jelas, gambarlah
– Sketsa atau gambar seringkali memperjelas saat kata-kata gagal menjelaskannya
9. (a)Sekali kita telah membuat kesepakatan tentang suatu
pembahasan, bergeraklah ke pembahasan lainnya. (b) Jika tidak bisa mencapai kesepakatan tentang suatu pokok bahasan,
bergeraklah dengan segera ke pembahasan lainnya. (c) Jika suatu fitur atau fungsi tidak jelas dan tidak bisa diklarifikasi saat ini,
bergeraklah ke pembahasan berikutnya
– Bergerak ke topik bahasan selanjutjya seringkali merupakan jalan terbaik untuk mencapai kecepatan komunikasi
10. Negosiasi bukanlah suatu kontes atau perlombaan. Merupakan hal yang terbaik saat kedua pihak menang
– Menegosiasikan prioritas-prioritas dalam praktik perangkat lunak dan menegosiasikan tanggal penyerahan perangkat lunak ke stakeholder
2. PRINSIP PERENCANAAN
1. Memahami lingkup proyek
• Lingkup proyek disediakan bagi tim perangkat lunak
2. Melibatkan stakeholder pada aktifitas perencanaan
– Stakeholder harus didefinisikan prioritas-prioritas dan menetapkan batasan-batasan proyek perangkat lunak
3. Memahami bahwa perencanaan bersifat iteratif
– Perencaan proyek tidak pernah kaku
– Perencanaan harus diatur seddemikian rupauntuk bisa mengakomodasi perubahan
– Semua proses yang iteratif dan inkremental harus dirancang ulang setelah pengiriman masing-masing versi perangkat lunak
– Proses harus dirancang berdasarkan umpan balik dari para pelanggan/pengguna
2. PRINSIP PERENCANAAN
4. Melakukan prakiraaan berdasarkan apa yang kita mengerti
– Mengidentifikasikan usaha, biaya, lamanya pengerjaan pekerjaan sesuai dengan pemahaman tim perangkat lunak
5. Pertimbangan resiko saat kita mendefinisikan perencanaan
– Perencanaan perangkat lunak harus disesuaikan dengan resiko yang mungkin terjadi
6. Cobalah bersikap realistis
– Terjadi kesalahan oleh tim harus dipertimbangkan saat proyek perangkat lunak dilakukan
7. Sesuaikan granulitas saat kita mendefiniskan perencanaan
– Granuluritas merunjuk pada peringkat rincian yang dilakukan saat perencanaan proyekperangkat lunak dikembangkan
2. PRINSIP PERENCANAAN
8. Definisikan bagaimana kita memikirkan hal-hal yang berkaiatan dengan kualitas
– Tim perangkat lunak harus berfikir tentang bagaimana caranya memastikan kualitas
9. Deskripsikan bagaimana kita akan melakukan sesuatu yang berkaitan dengan cara kita mengakomodasi perubahan
– Harus mengidentifikasi bagaimana perubahan akan diakomodasi saat RPL berlangsung
10. Lakukan pelacakan terhadap perencanaan dan buatlah penyesuaian-penyesuaian jika hal ini memang diperlukan
– Terjadi ketidaksesuaian anatara jadwal yang telah ditetapkan sebelumnya dengan faktanya dilapangan
3. PRINSIP PEMODELAN
1. Tujuan utama tim perangkat lunak adalah untuk
mengembangkan perangkat lunak,bukan membuat model-model
• Model yang memperlambat proses seharusnya diabaikan saja
2. Jangan membuat model lebih banyak dari yang kita perlukan
– Dalam membuat pengembangan perangkat lunak sebaiknya lebih mudah dan lebih cepat
3. Berusahalah membuat model sederhana yang menjelaskan permasalahan atau perangkat lunak
– Jangan membuat model untuk perangkat lunak secara berlebihan
– Model yang sederhana akan lebih mudah dipahami dan dijritisi oleh anggota tim akan menghasikan umpan balik yang optimal
3. PRINSIP PEMODELAN
4. Kembangkan model-model sedemikian rupa sehingga perubahan dimungkinkan
– Model spesifikasi kebutuhan harus lengkap
5. Berusahalah untuk menetapkan suatu kegunaan eksplisit untuk masing-masing model yang dibuat
– Jangan menghabiskan waktu untuk membuat apabila keterangan yang didapat tidak jelas
6. Adaptasi model-model yang kita kembangkan dengan perubahan yang terjadi pada sistem
– Mengadaptasi notasi atau aturan model pada aplikasi
7. Cobalah untuk mengembangkan model-model yang
bermanfaat, tetapi lupakan tentang model-model yang sempurna
3. PRINSIP PEMODELAN
8. Jangan kaku dengan sintaks model. Jika model saat ini dapat mengkomunikasikan isi dengan baik,penampilan adalah yang nomor dua
– Gunakan notasi pemodelan yang konsisten
9. Jika secara intuisi kita merasa bahwa model tidak benar meski kelihatannya di atas kertas tidak ada masalah apa-apa,kita
mungkin memiliki alasan untuk mempertimbangkannya - ulang
– Periksa ulang model yang bersangkutan atau kembangkan model lainnya
10. Dapatkan umpan balik sesegera mungkin
– Setiap model harusnya ditinjau oleh para anggota tim, agar dapat dilakukan koreksi pada model
3. PRINSIP PEMODELAN
•
Prinsip pemodelan dalam pekerjaan
rekayasa perangkat lunak ada dua jenis
model/spesifikasi, yaitu :
1.
Model-model yang berkaitan dengan spesifikasi
kebutuhan
2.
Model-model yang berkaitan dengan
perancangan yang mengarah ke implementasi
selanjutnya
3a. PRINSIP PEMODELAN
SPESIFIKASI KEBUTUHAN
1. Ranah informasi dari suatu permasalahan harus ditampilkan dan dipahami
2. Fungsi-fungsi yang dilakukan perangkat lunak harus didefinisikan 3. Perilaku perangkat lunak akbiat kejadian-kejadian (event) yang
bersifat eksternal harus direpresentasikan
4. Model yang menjelaskan informasi, fungsi, dan perilaku harus dipisahkan dalam bentuk yang tidak menyingkapkan rinciannya dan harus digambarkan dalam bentuk perlapisan atau hierarki 5. Pekerjaan analisis seharusnya bergerak dari informasi yang
3b. PRINSIP PEMODELAN
RANCANGAN
1. Rancangan harus bisa dilacak balik ke model spesifikasi kebutuhan 2. Selalu memertimbangkan arsitektur sistem/perangkat lunak yang
akan dikembangkan
3. Perancangan datasama pentingnya dengan perancangan fungsi-fungsi pemrosesan
4. Antarmuka-antarmuka (baik yang bersifat internal maupun yang bersifat eksternal) harus dirancang secara hati-hati
5. Perancangan antarmuka pengguna seharusnya disesuaikan dengan kebutuhan pengguna.Meski demikian, dalam setiap
kasus, antarmuka harus dibuat dengan menekankan kemudahan penggunaannya
3b. PRINSIP PEMODELAN
RANCANGAN
6. Perancangan peringkat komponen sebaiknya mandiri secara fungsional
7. Komponen-komponen seharusnya bersifat saling tidak bergantung satu sama lain dan juga tidak bergantung pada linkungan eksternal 8. Representasi rancangan (model) seharusnya dapat dipahami
dengan mudah
9. Perancangan seharusnya dikembangkan secara iteraktif, dimana dalam masing-masing iterasi, perancang seharusnya menekankan kesederhaan
4. PRINSIP KONSTRUKSI
• Prinsip-prinsip dan konsep-konsep yang mendasari penulisan kode program dan penggujian, yaitu :
1. Prinsip-prinsip persiapan
• Sebelum kita menulis baris pertama kode program komputer kita
2. Prinsip-prinsip pemrograman
• Sebelum kita mulai menulis baris kode program komputer kita
3. Prinsip-prinsip validasi
• Setelah kita menyelesaikan penulisan kode 4. Prinsip-prinsip pengujian
4. PRINSIP KONSTRUKSI
• Prinsip-prinsip penggujian terdiri dari 5 prinsip, yaitu:
1. Semua pengujian seharusnya dapat dilacak-balik ke spesifikasi kebutuhan
2. Pengujian-pengujian seharusnya direncanakan lama sebalum pengujian-pengujian itu dimulai
3. Prinsip Paretto dapat diterapkan pada pengujian perangkat lunak
• Prinsip Paretto mengatakan bahwa : 80% kesalahan tidak terungkap selama pengujian, biasanya berada pada 20% komponen program secara keseluruhan
4. Pengujian seharusnya bergerak dari bagian yang lebih kecil dan menerus ke bagian yang semakin besar
5. PRINSIP PENYERAHAN
1. Harapan-harapan pelanggan untuk perangkat lunak harus dikelola dengan baik
2. Paket-paket pengiriman lengkap seharusnya dirakit dan sudah diuji
3. Sistem-sistempendukung harus ditetapkan sebelumperangkat lunak dikirimkan
4. Material-material instruksional yang sesuai harus disediakan bagi para pengguna
5. Perangkat lunak yang penuh dengan kesalahan
seharusnya diperbaiki lebih dahulu, pengiriman bisa dilakukan di waktu-waktu selanjutnya