REKAYASA PERANGKAT LUNAK 3 sks Sri Rezeki Candra Nursari
reezeki2011.wordpress.com
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
APLIKASI PERANGKAT LUNAK • Kategori Umum Aplikasi Perangkat Lunak : 1. 2. 3. 4. 5. 6. 7.
Perangkat lunak sistem Perangkat lunak real time Perangkat lunak bisnis Perangkat lunak teknik dan ilmu pengetahuan Embedded software Perangkat lunak komputer personal Perangkat lunak kecerdasan buatan / artificial inteligent (AI) 8. Perangkat lunak : krisis di masa mendatang
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 telekomunikasi
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 komponen lain agar respon real time-nya (khususnya •
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, sistem rem, dan lain lain)
6. PERANGKAT LUNAK KOMPUTER PERSONAL
• Pasar dari perangkat ini adalah : – pengolah kata, spreadsheet – grafik komputer, multimedia, hiburan – manajemen database – aplikasi keuangan, bisnis dan personal – jaringan eksternal, akses database, dan lain lain
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 prosesproses 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. 2. 3. 4. 5.
Prinsip Komunikasi Prinsip Perencanaan Prinsip Pemodelan Prinsip Konstruksi Prinsip Penyerahan
1. PRINSIP KOMUNIKASI 1.
Dengarkan – – –
2.
Fokus pada kata pelanggan Lakukan pertanyaan klarifikasi jika tidka jelas Jangan pernah menunjukan kekurangperhatian
Lakukan persiapan sebelum melakukan komunikasi – – –
3.
Luangkan waktu untuk memahami permasalahan Lakukan penelitian sederhana untuk memahami keinginan pelanggan Siapkan agenda pembicaraan untuk pertemuan tersebut
Seseorang sebaiknya menjadi fasilitator aktifitas komunikasi – – –
Percakapan harus berada pada arah yang produktif Menjadi perantara jika suatu konflik terjadi Memastikan prinsip-prinsip komunikasi yang lain diikuti
1. PRINSIP KOMUNIKASI 4.
Komunikasi yang dilakukan secara tatap muka adalah yang terbaik –
5.
Dapat juga berkomunikasi dalam bentuk dokumen yang ada ada gambarnya sehingga kelak pembicaraan menjadi lebih fokus
Lakukan pencatatan dan dokumentasi –
6.
Dalam berkomunikasi sebaiknya melakukan pencatatan hal-hal serta keputusan-keputusan yang penting
Usahakan untuk bekerja sama –
7.
Berkerjasama sesungguhnya bertindak untuk mengembangkan sikapsaling percaya diantara para anggota tim perangkat lunak dan juga membuat sasaran umum untuk tim
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 –
9.
Sketsa atau gambar seringkali memperjelas saat kata-kata gagal menjelaskannya
(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 –
10. –
Bergerak ke topik bahasan selanjutjya seringkali merupakan jalan terbaik untuk mencapai kecepatan komunikasi
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 –
3.
Stakeholder harus didefinisikan prioritas-prioritas dan menetapkan batasanbatasan proyek perangkat lunak
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 –
5.
Mengidentifikasikan usaha, biaya, lamanya pengerjaan pekerjaan sesuai dengan pemahaman tim perangkat lunak
Pertimbangan resiko saat kita mendefinisikan perencanaan –
6.
Perencanaan perangkat lunak harus disesuaikan dengan resiko yang mungkin terjadi
Cobalah bersikap realistis –
7.
Terjadi kesalahan oleh tim harus dipertimbangkan saat proyek perangkat lunak dilakukan
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 –
9.
Tim perangkat lunak harus berfikir tentang bagaimana caranya memastikan kualitas
Deskripsikan bagaimana kita akan melakukan sesuatu yang berkaitan dengan cara kita mengakomodasi perubahan –
10. – –
Harus mengidentifikasi bagaimana perubahan akan diakomodasi saat RPL berlangsung
Lakukan pelacakan terhadap perencanaan dan buatlah penyesuaian-penyesuaian jika hal ini memang diperlukan Terjadi ketidaksesuaian anatara jadwal yang telah ditetapkan sebelumnya dengan faktanya dilapangan Jika ketidaksesuaian memang terjadi, perencanaan harus segera disesuaikan
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 –
3.
Dalam membuat pengembangan perangkat lunak sebaiknya lebih mudah dan lebih cepat
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 –
5.
Model spesifikasi kebutuhan harus lengkap
Berusahalah untuk menetapkan suatu kegunaan eksplisit untuk masing-masing model yang dibuat –
6.
Jangan menghabiskan waktu untuk membuat apabila keterangan yang didapat tidak jelas
Adaptasi model-model yang kita kembangkan dengan perubahan yang terjadi pada sistem –
7.
Mengadaptasi notasi atau aturan model pada aplikasi
Cobalah untuk mengembangkan model-model yang bermanfaat, tetapi lupakan tentang model-model yang sempurna –
Buat model secra benar dan lengkap
3. PRINSIP PEMODELAN 8.
Jangan kaku dengan sintaks model. Jika model saat ini dapat mengkomunikasikan isi dengan baik,penampilan adalah yang nomor dua –
9.
Gunakan notasi pemodelan yang konsisten
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 –
10. –
Periksa ulang model yang bersangkutan atau kembangkan model lainnya
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. 2.
Model-model yang berkaitan dengan spesifikasi kebutuhan Model-model yang berkaitan dengan perancangan yang mengarah ke implementasi selanjutnya
3a. PRINSIP PEMODELAN SPESIFIKASI KEBUTUHAN 1. 2. 3. 4.
5.
Ranah informasi dari suatu permasalahan harus ditampilkan dan dipahami Fungsi-fungsi yang dilakukan perangkat lunak harus didefinisikan Perilaku perangkat lunak akbiat kejadian-kejadian (event) yang bersifat eksternal harus direpresentasikan Model yang menjelaskan informasi, fungsi, dan perilaku harus dipisahkan dalam bentuk yang tidak menyingkapkan rinciannya dan harus digambarkan dalam bentuk perlapisan atau hierarki Pekerjaan analisis seharusnya bergerak dari informasi yang bersifat esensial menuju rincian implementasi
3b. PRINSIP PEMODELAN RANCANGAN 1. 2. 3. 4. 5.
Rancangan harus bisa dilacak balik ke model spesifikasi kebutuhan Selalu memertimbangkan arsitektur sistem/perangkat lunak yang akan dikembangkan Perancangan datasama pentingnya dengan perancangan fungsifungsi pemrosesan Antarmuka-antarmuka (baik yang bersifat internal maupun yang bersifat eksternal) harus dirancang secara hati-hati 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. 7. 8. 9.
Perancangan peringkat komponen sebaiknya mandiri secara fungsional Komponen-komponen seharusnya bersifat saling tidak bergantung satu sama lain dan juga tidak bergantung pada linkungan eksternal Representasi rancangan (model) seharusnya dapat dipahami dengan mudah 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 •
2.
Prinsip-prinsip pemrograman •
3.
Sebelum kita mulai menulis baris kode program komputer kita
Prinsip-prinsip validasi •
4.
Sebelum kita menulis baris pertama kode program komputer kita
Setelah kita menyelesaikan penulisan kode
Prinsip-prinsip pengujian
4. PRINSIP KONSTRUKSI Prinsip-prinsip penggujian terdiri dari 5 prinsip, yaitu:
•
1.
Semua pengujian seharusnya dapat dilacak-balik ke spesifikasi kebutuhan Pengujian-pengujian seharusnya direncanakan lama sebalum pengujian-pengujian itu dimulai Prinsip Paretto dapat diterapkan pada pengujian perangkat lunak
2. 3. •
4. 5.
Prinsip Paretto mengatakan bahwa : 80% kesalahan tidak terungkap selama pengujian, biasanya berada pada 20% komponen program secara keseluruhan
Pengujian seharusnya bergerak dari bagian yang lebih kecil dan menerus ke bagian yang semakin besar Pengujian yang lengkap merupakan hal yang tidak
5. PRINSIP PENYERAHAN 1. 2. 3. 4. 5.
Harapan-harapan pelanggan untuk perangkat lunak harus dikelola dengan baik Paket-paket pengiriman lengkap seharusnya dirakit dan sudah diuji Sistem-sistempendukung harus ditetapkan sebelumperangkat lunak dikirimkan Material-material instruksional yang sesuai harus disediakan bagi para pengguna Perangkat lunak yang penuh dengan kesalahan seharusnya diperbaiki lebih dahulu, pengiriman bisa dilakukan di waktu-waktu selanjutnya
Tugas Presentasi 1 • Batas terakhir kirimkan ke email 27 Oktober 2012 jam 12.00 wib ke
[email protected] • Metode RAD • Yang dipresentasikan adalah - Nama tabel master apa saja - Proses transaksi apa saja(tabelnya apa saja) - Laporannya atau ouput apa saja - Buat APL