KOM 331 3(2-3) – Rekayasa Perangkat Lunak Panji Wasmana Sony Hartono Wijaya – sony@ipb.ac.id Departemen Ilmu Komputer IPB 2009 updated : 25 Februari 2009 Pertemuan 1 – Introduction Panji Wasmana Sony Hartono Wijaya – sony@ipb.ac.id Departemen Ilmu Komputer IPB 2009 updated : 25 Februari 2009 MATERI KULIAH KENAPA PERLU REKAYASA PERANGKAT LUNAK ? DEFINISI REKAYASA PERANGKAT LUNAK PROSES PERANGKAT LUNAK PRODUK PERANGKAT LUNAK MATERI KULIAH KENAPA PERLU REKAYASA PERANGKAT LUNAK ? DEFINISI REKAYASA PERANGKAT LUNAK PROSES PERANGKAT LUNAK PRODUK PERANGKAT LUNAK Materi Kuliah Tujuan kuliah Referensi Sommerville I. 2004 & 2006. Software Engineering . 7th or 8th Edition, Addison-Wesley, Harlow, Essex,UK Pressman RS. 2005. Software Engineering. 6th Edition. McGraw-Hill Pilone D. & Miller R. 2008. Head First Software Development. O’Reilly Referensi Bennett S. et al. 2002. Object Oriented System Analysis and Design Using UML. McGraw-Hill Materi Kuliah dan Diskusi • www.ilkom.fmipa.ipb.ac.id/ kulon • Enrollment key : rpl0809 • Username dan First Name diisi dengan nomor NRP. – Mahasiswa yang tidak memenuhi ketentuan tersebut tidak akan diterima menjadi anggota kuliah online RPL Penilaian dan Kontrak Perkuliahan • Semester Ganjil 2009/2010 – Kuliah : Selasa, 19.00 – 20.40 – KOM Baranangsiang – Praktikum : Rabu dan Kamis, 19.00 – 21.00 - Lab. • Penilaian : – UTS : 30% – UAS : 30% – Project, Praktikum dan Tugas: 40% (Progress 10%, Presentasi 20%) • Ujian perbaikan menyusul , maksimal 1 minggu setelah jadwal ujian yang telah ditetapkan • Toleransi keterlambatan maksimal 15 menit MATERI KULIAH KENAPA PERLU REKAYASA PERANGKAT LUNAK ? PROSES PERANGKAT LUNAK DEFINISI REKAYASA PERANGKAT LUNAK PRODUK PERANGKAT LUNAK Kenapa perlu RPL ? Kenapa perlu RPL ? Kejadian yang disebabkan error perangkat lunak Software bug - Famous computer bugs Software bug - Space exploration • NASA Mariner 1 went off-course during launch, due to a missing 'bar' in its FORTRAN software (July 22, 1962).[6] • NASA Apollo 11 landing problem (July 20, 1969). • NASA Voyager 2 (January 25, 1986). • Phobos 1 lost (September 10, 1988). • ESA Ariane 5 Flight 501 self-destruction 40 seconds after takeoff (June 4, 1996). • NASA Mars Climate Orbiter destroyed due to incorrect orbit insertion (September 23, 1999). • Mars Polar Lander lost (December 3, 1999). • NASA Mars Rover freezes due to too many open files in flash memory (January 21, 2004). Software bug - Medical • The Therac-25 accidents (1985-1987), quite possibly the most serious computer-related failure ever in terms of human life lost. Software bug - Telecommunications • AT&T long distance network crash (January 15, 1990). Software bug - Computing • Pentium FDIV bug, resulting in inaccuracies in certain floating point division (FDIV) operations. • Pentium F0 bug, causing the processor to stop under certain instructions. • The year 2000 problem, popularly known as the "Y2K bug", spawned fears of worldwide economic collapse and an industry of consultants providing last-minute fixes. Software bug - Military • The MIM-104 Patriot bug, which resulted in the deaths of 28 Americans in Dharan, Saudi Arabia (February 25, 1991). • Chinook crash on Mull of Kintyre Software bug - Video games • The Missingno. and Glitch City bugs, found in the Pokémon series • The Minus world in NES version of Super Mario Brothers http://www.experiencefestival.com/a/Software_bug_-_Famous_computer_bugs/id/4880583 MATERI KULIAH KENAPA PERLU REKAYASA PERANGKAT LUNAK DEFINISI REKAYASA PERANGKAT LUNAK PROSES PERANGKAT LUNAK PRODUK PERANGKAT LUNAK Definisi Rekayasa Perangkat Lunak Rekayasa Perangkat Lunak (Software Engineering) • Disiplin ilmu rekayasa yang berhubungan dengan semua aspek yang terkait dengan pembuatan perangkat lunak Software Engineer • Harus melakukan pendekatan yang sistematis dan terorganisasi dalam menyelesaikan pembuatan perangkat lunak • Harus menggunakan alat bantu dan teknik yang sesuai bergantung dengan problem yang akan dipecahkan dan ketersediaan sumber daya Perbedaan Rekayasa Perangkat Lunak dan Rekayasa Sistem ? • Rekayasa Perangkat Lunak adalah bagian dari Rekayasa Sistem • Rekayasa Sistem (mis: Sistem Informasi) terkait dengan semua aspek pengembangan sistem berbasis komputer yang meliputi : – – – – – Perangkat keras (Hardware), Jaringan (Netware) Perangkat lunak (Software) Data (dataware) Manusia (brainware) • System engineers melibatkan kegiatan Spesifikasi sistem, perancangan arsitektur, integrasi dan deployment MATERI KULIAH KENAPA PERLU REKAYASA PERANGKAT LUNAK DEFINISI REKAYASA PERANGKAT LUNAK PROSES PERANGKAT LUNAK PRODUK PERANGKAT LUNAK Apakah Perangkat Lunak itu ? • Perangkat Lunak adalah suatu kumpulan objek-objek yang membentuk sebuah konfigurasi yang terdiri dari: – program – dokumen – data ... What is Software? • Software is engineered, tidak direkayasa dengan metode klasik (1 design to all) • Software doesn’t wear out, tidak akan lekang dimakan waktu, kecuali spesifikasi kebutuhan berubah. • Software is complex, multidisiplin, multi aspek. Waktu penggunaan vs. Tingkat kegagalan Biaya perubahan Aplikasi Perangkat Lunak Perangkat Lunak Sistem Perangkat Lunak Real time Perangkat Lunak Bisnis Perangkat Lunak Teknik atau Sains Embedded Software Perangkat Lunak PC Perangkat Lunak AI Aplikasi Web Perangkat Lunak Sistem Sistem Operasi Kompilator Perangkat Lunak Utilitas Anti Virus Perangkat Lunak Real Time Perangkat Lunak Pengendali Reaktor Kimia Perangkat Lunak Pengendali Pesawat Terbang Perangkat Lunak untuk Vehicle Tracking System dll Perangkat Lunak Bisnis Cash Register Sistem Inventory Sistem Informasi Akuntansi Sistem Informasi Eksekutif dll Embedded Software Smart Card Microwave dll Perangkat Lunak PC Pengolah Kata Pengolah Data Presentasi dll Perangkat Lunak AI Sistem Pakar Optimasi Game Robot SE in plain text • Serangkaian metode yang diterapkan untuk menghasilkan Software yang berkualitas. • Disiplin Ilmu yang mendasari arsitektur sebuah aplikasi • Berkualitas memiliki kedekatan arti dengan pemuasan konsumen Studi Kasus Tom the adventure Guys… Siapakah Tom? • • • • Seorang cowo macho!! Memiliki pekerjaan sebagai trail guide Aktif dalam berbagai perkumpulan Pengguna aktif Internet Komponen dalam project SE • Pendanaan • Waktu • Complexity dan kualitas Apa yang biasanya terjadi? Pelajaran dari studi kasus • • • • • Mind reader? Tidak ada metode dalam rekayasa? Team? Optimasi kerja? Komunikasi dengan customer? Diskusi dan Pertanyaan? Tantangan Proses Pengembangan Perangkat Lunak Bagaimana kita bisa menjamin kualitas perangkat lunak yang kita bangun ? Bagaimana kita tetap dapat memenuhi permintaan yang meningkat tapi tetap mampu mengontrol budget ? Bagaimana dapat menghindari keterlambatan waktu pengembangan ? Bagaimana kita dapat dengan sukses memperkenalkan teknologi baru ? Jawabannya ??? PROSES ! Terima Kasih Minggu Depan : • Process •Go deep with Tom