PENDAHULUAN REKAYASA PERANGKAT LUNAK By PresenterMedia.com
KELOMPOK 6 Hj.HUSNAYANTI I.K HASLINDA ARDIANSYAH MIFTA FARID MUHLIS TAHIR ANDI LATIFA NABONE ABD.MALIKUL MULKY 2
TUJUAN Memahami apa yang dimaksud dengan rekayasa perangkat lunak dan bagaimana arti pentingnya. Mengetahui jawaban terhadap pertanyaanpertanyaan kunci yang memberikan pemahaman awal mengenai rekayasa perangkat lunak. Memahami isu ketika dan profesi yang penting untuk para perekayasa perangkat lunak. 3
Materi FAQ mengenai perangkat lunak Tanggung jawab profesional dan etika 4
Pendahuluan Ekonomi SEMUA negara maju adalah lunak. tergantung pada perangkat Rekayasa perangkat lunak merupakan suatu disiplin ilmu yang bertujuan mengembangkan sistem perangkat lunak yang efektif dari segi biaya. Rekayasa perangkat lunak yang bersangkutan dengan teori-teori, metode dan alat untuk perangkat lunak profesional pembangunan. Perekayasa perangkat lunak berhak untuk berbangga atas keberhasilan mereka. Rekayasa perangkat lunak telah berperan besar dalam waktu hidupnya yang singkat dan kita harus yakin bahwa, dengan matangnya disiplin ilmu. 5
Biaya perangkat lunak Pendahuluan Biaya perangkat lunak seringkali mendominasi sistem komputer biaya. Biaya perangkat lunak pada PC sering lebih besar dari biaya hardware. Biaya Perangkat Lunak lebih untuk mempertahankan daripada yang dilakukannya untuk berkembang. Untuk sistem dengan umur panjang, biaya perawatan mungkin beberapa kali Biaya yang diperlukan untuk pengembangan. Rekayasa perangkat lunak berkaitan dengan biaya pengembangan perangkat lunak yang efektif. 6
FAQ Mengenai Rekayasa Perangkat Lunak 1. Apakah Perangkat Lunak? 2. Apakah Rekayasa Perangkat Lunak (RPL)? 3. Apa perbedaan antara RPL dengan ilmu komputer (computer science)? 4. Apa perbedaan RPL dan rekayasa sistem? 5. Apa yang dimaksud dengan proses perangkat lunak? 6. Apakah model proses perangkat lunak? 7. Berapa biaya rekayasa perangkat lunak? 8. Apa saja metode-metode RPL? 9. Apa yang dimaksud dengan CASE (Computer-Aided Software Engineering)? 10. Apakah atribut-atribut perangkat lunak yang baik? 11. Apa tantangan kunci yang dihadapi RPL? 7
FAQ Mengenai Rekayasa Perangkat Lunak Apakah Perangkat Lunak Itu? Perangkat Lunak (Software) tidak sama dengan program komputer. Perangkat lunak tidak hanya mencakup program, tetapi juga semua dokumentasi dan konfigurasi data yang berhubungan, yang diperlukan untuk membuat agar program beroperasi dengan benar. Sistem Perangkat Lunak terdiri dari : Sejumlah program yg terpisah File-file konfigurasi Dokumentasi sistem Dokumentasi User 8
FAQ Mengenai Rekayasa Perangkat Lunak Dua tipe produk perangkat lunak Dua tipe produk perangkat lunak : Produk Generik Sistem stand-alone standar yg diproduksi oleh organisasi pengembang dan dijual ke pasar terbuka ke siapapun yg membelinya. Biasa disebut sebagai software shrink-wrapped. Contoh : pengolah kata (word processor). Produk pesanan (yang disesuaikan) Sistem yg dipesan oleh pelanggan tertentu. Dikembangkan khusus bagi pelanggan oleh kontraktor perangkat lunak. Contoh : Sistem untuk mendukung proses bisnis tertentu dan sistem kontrol lalu lintas udara. 9
FAQ Mengenai Rekayasa Perangkat Lunak Perbedaan PENTING antara tipe2 perangkat lunak : Pada produk generik, organisasi yang mengembangkan perangkat lunak mengontrol spesifikasi perangkat lunak. Pada produk pesanan, spesifikasi biasanya dikembangkan dan dikontrol oleh organisasi yang membeli perangkat lunak tersebut. 10
FAQ Mengenai Rekayasa Perangkat Lunak Apa Rekayasa Perangkat Lunak Itu? RPL atau Software Engineering (SE) Disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal spesifikasi sistem sampai pemeliharaan sistem setelah digunakan. Ada 2 istilah kunci disini : disiplin rekayasa Perekayasa membuat suatu alat bekerja. Menerapkan teori, metode, dan alat bantu yang sesuai, selain itu mereka menggunakannya dengan selektif dan selalu mencoba mencari solusi terhadap permasalahan. semua aspek produksi perangkat lunak RPL tidak hanya berhubungan dengan proses teknis dari pengembangan perangkat lunak tetapi juga dengan kegiatan seperti Manajemen proyek PL dan pengembangan alat bantu, metode, dan teori untuk mendukung produksi PL. 11
FAQ Mengenai Rekayasa Perangkat Lunak Perbedaan antara RPL dengan Computer Science? teori ilmu komputer masih cukup untuk bertindak sebagai fondasi yang lengkap untuk perangkat lunak rekayasa (seperti misalnya fisika dan teknisi listrik ). Intinya, computer science berhubungan dengan teori dan metode yang mendasari sistem komputer dan perangkat lunak, sedangkan RPL berhubungan dengan praktek dalam memproduksi perangkat lunak. 12
FAQ Mengenai Rekayasa Perangkat Lunak Perbedaan RPL dengan Rekayasa Sistem? Rekayasa sistem berkaitan dengan semua aspek dalam pembangunan sistem berbasis komputer termasuk hardware, rekayasa PL dan proses. RPL adalah bagian dari rekayasa sistem yang meliputi pembangunan PL, infrasktruktur, kontrol, aplikasi dan database pada sistem. Rekayasa sistem merupakan disiplin yang lebih tua dari rekayasa perangkat lunak 13
FAQ Mengenai Rekayasa Perangkat Lunak Apa yang dimaksud dengan proses perangkat lunak? Serangkaian kegiatan dan hasil-hasil relevannya yang menghasilkan perangkat lunak sebagian besar dilakukan oleh perekayasa perangkat lunak. Ada 4 kegiatan/aktivitas pada proses PL : 1. Spesifikikasi Perangkat Lunak Fungsionalitas perangkat lunak dan batasan kemampuan operasinya harus didefinisikan. 2. Pengembangan Perangkat Lunak Perangkat lunak yang memenuhi spesifikasi harus di produksi 3. Validasi Perangkat Lunak Perangkat lunak harus divalidasi untuk menjamin bahwa perangkat lunak melakukan apa yang diinginkan oleh pelanggan. 4. Evolusi Perangkat Lunak Perangkat lunak harus berkembang untuk memenuhi kebutuhan pelanggan. 14
FAQ Mengenai Rekayasa Perangkat Lunak Apa yang dimaksud dengan proses perangkat lunak? Proses perangkat lunak yang berbeda mengatur kegiatan ini dengan cara yang berbeda dan dijelaskan dengan tingkat kerincian yang berbeda pula. Waktu kegiatan bervariasi, sebagaimana hasilnya Pengaturan yang berbeda dapat menggunakan proses yang berbeda untuk menghasilkan produk yang sama. Tapi untuk beberapa jenis aplikasi tertentu, beberapa proses lebih sesuai dari yang lainnya, jika digunakan proses yang tidak sesuai maka kualitas kegunaan produk perangkat lunak yang akan dikembangkan tersebut mungkin akan berkurang. 15
FAQ Mengenai Rekayasa Perangkat Lunak Model Proses Perangkat Lunak Merupakan deskripsi yang disederhanakan dari proses perangkat lunak di presentasikan dengan sudut pandang tertentu. Bisa mencakup kegiatan yang merupakan bagian dari proses perangkat lunak, produk perangkat lunak, dan peran orang yang terlibat pada rekayasa perangkat lunak (Perekayasa PL). 16
FAQ Mengenai Rekayasa Perangkat Lunak Contoh Jenis Model Proses PL 1. Model aliran kerja (workflow) menunjukkan kegiatan pada proses bersama dengan input, output, dan ketergantungannya. Merepresentasikan pekerjaan manusia. 2. Model aliran data (data flow) merepresentasikan proses sebagai suatu set kegiatan yang melakukan transformasi data. Menunjukkan bagaimana input ke proses, misalnya spesifikasi ditransformasi menjadi output, misalnya menjadi desain. 3. Model peran/aksi merepresentasikan peran orang yang terlibat pada PL dan kegiatan yg menjadi tanggung jawab mereka. 17
FAQ Mengenai Rekayasa Perangkat Lunak Contoh Jenis Model Proses PL 1. Model air terjun (waterfall) Mengambil kegiatan dasar seperti spesifikasi, pengembangan, validasi, dan evolusi dan merepresentasikannya sebagai fase-fase proses yang berbeda seperti spesifikasi persyaratan, perancangan perangkat lunak, implementasi, pengujian dan seterusnya. 2. Pengembangan evolusioner Pendekatan ini berhimpitan dengan kegiatan spesifikasi, pengembangan, dan validasi. Sistem awal dikembangkan dengan cepat dari spesifikasi abstrak. Sistem ini kemudian di perbaiki dengan masukan dari pelanggan untuk menghasilkan sistem yang memuaskan kebutuhan pelanggan. 18
FAQ Mengenai Rekayasa Perangkat Lunak FAQ Mengenai Rekayasa Perangkat Lunak 3. Pengembangan Sistem Formal Pendekatan ini menghasilkan suatu sistem matematis yang formal dan mentransformasikan spesifikasi ini, dengan menggunakan metode matematik menjadi sebuah program. 4. Pengembangan berdasarkan pemakaian ulang (Reusable) Teknik ini menganggap bahwa bagian-bagian sistem sudah ada. Proses pengembangan sistem terfokus pada pengintegrasian bagian-bagian sistem dan bukan pengembangannya dari awal. 19
FAQ Mengenai Rekayasa Perangkat Lunak Biaya Rekayasa Perangkat Lunak Umumnya sekitar 60% untuk biaya pengembangan (development) dan 40% biaya pengujian (testing). Distribusi biaya yang tepat selama proses perangkat lunak bergantung pada proses yang digunakan dan jenis perangkat lunak yang dikembangkan. 20
FAQ Mengenai Rekayasa Perangkat Lunak Biaya Rekayasa Perangkat Lunak 21
FAQ Mengenai Rekayasa Perangkat Lunak Biaya Rekayasa Perangkat Lunak Pada gambar diatas perangkat lunak dikembangkan dengan menggunkan pendekatan evolusioner, maka tidak ada batasan yang jelas antara spesifikasi,perancangan, dan pengembangan. Harus dilakukan modifikasi untuk jenis pengembangan ini agar biaya spesifikasi dikurangi karena hanya spesifikasi tingkat tinggi yang dihasilkan sebelum pengembangan denga pendekatan ini. Spesifikasi, perancangan, implemntasi, integrasi dan pengujian dilakukan secara pararel dalam kegiatan pengembangan 22
FAQ Mengenai Rekayasa Perangkat Lunak Biaya Rekayasa Perangkat Lunak/Biaya Pengembangan Produk 23
FAQ Mengenai Rekayasa Perangkat Lunak Metode-metode RPL Pendekatan-pendekatan terstruktur terhadap pengembangan perangkat lunak mencakup model, notasi, aturan, saran pengembangan sistem (rekomendasi), dan panduan proses. Deskripsi model sistem Deskripsi model yang harus dikembangkan dan notasi yang digunakan untuk mendefinisikan model-model ini. Ex : model aliran data. Aturan Batasan yang berlaku bagi model sistem. Ex : Setiap entitas pada model sistem harus memiliki nama yang unik. Rekomendasi Saran dalam membentuk perancangan yang baik. Ex : Tidak ada objek yang memiliki lebih dari tujuh sub-objek yang berhubungan dengannya. Panduan Proses Aktifitas yang bisa diikuti untuk mengembangkan model sistem. Ex : Atribut objek harus didokumentasi sebelum mendefinisikan operasi yang berhubungan dengan objek. 24
FAQ Mengenai Rekayasa Perangkat Lunak CASE (Computer-Aided Software Engineering) Mencakup berbagai macam program yang digunakan untuk mendukung kegiatan PL seperti analisis persyaratan, pemodelan sistem, debugging, dan pengujian. 25
FAQ Mengenai Rekayasa Perangkat Lunak atribut perangkat lunak yang bagus yang bagus Perangkat Lunak seharusnya memberikan user kebutuhan fungsionalitas dan kinerja yang : 1. Dapat dipelihara (Maintanability) PL harus dapat memenuhi perubahan kebutuhan user. 2. Dapat diandalkan (Dependability) PL harus dapat dipercaya dan tidak menyebabkan kerusakan fisik atau ekonomi jika terjadi kegagalan sistem. 3. Efisien PL harus efisien dalam penggunaan sumber daya sistem. 4. Kemampuan pemakaian (Usability) PL harus dapat dipakai sesuai dengan yang direncanakan. 26
FAQ Mengenai Rekayasa Perangkat Lunak Tantangan Kunci yang dihadapi RPL? 1. Tantangan Warisan (Legacy) Tantangan memelihara dan meng-update PL sedemikian sehingga biaya yg berlebihan dapat dihindari dan layanan bisnis yg penting tetap dilakukan. 2. Tantangan Heterogenitas Tantangan teknik pengembangan untuk membangun perangkat lunak yang dapat diandalkan dan cukup flexibel untuk menghadapi heterogenitas yang ada. 3. Tantangan Pengiriman Tantangan mempersingkat waktu kirim sistem besar dan kompleks, tanpa mengurangi kualitas sistem. 27
Tanggung Jawab Profesional dan Etika Software engineering melibatkan lebih luas tanggung jawab dari sekedar penerapan keterampilan teknis. Para Perancang Perangkat Lunak harus berperilaku jujur dan etis cara yang bertanggung jawab jika mereka harus dihormati sebagai profesional. Perilaku etis lebih dari sekedar menegakkan hukum. 28
Tanggung Jawab Profesional dan Etika Isu tanggung jawab profesional Konfidensialitas Engineers biasanya harus menghormati kerahasiaan dari majikan mereka atau klien terlepas dari apakah atau tidak perjanjian kerahasiaan formal telah ditandatangani. Kompetensi Perekayasa tidak boleh menggambarkan tingkat mereka kompetensi. Mereka seharusnya tidak sengaja menerima pekerjaan yang melebihi kompetensi mereka. 29
Tanggung Jawab Profesional dan Etika Isu tanggung jawab profesional Hak properti intelektual Insinyur harus menyadari hukum setempat yang mengatur penggunaan kekayaan intelektual seperti paten, hak cipta, dll Mereka harus berhati-hati untuk memastikan bahwa kekayaan intelektual majikan dan klien dilindungi. Komputer penyalahgunaan insinyur Perangkat lunak tidak harus menggunakan keterampilan teknis mereka untuk penyalahgunaan komputer orang lain. Komputer penyalahgunaan berkisar dari yang relatif sepele (bermain game pada komputer atasan ) sampai yang sangat serius (penyebaran virus). 30
Tanggung Jawab Profesional dan Etika ACM / IEEE Kode Etik Masyarakat profesional di AS bekerja sama untuk menghasilkan sebuah kode praktek yang etis. Anggota organisasi ini mendaftar ke kode praktek ketika mereka ingin bergabung. Kode berisi delapan Prinsip-prinsip yang terkait dengan perilaku dan keputusan yang dibuat oleh profesional perangkat lunak insinyur, termasuk praktisi, pendidik, manajer, supervisor dan kebijakan pembuat, serta trainee dan mahasiswa profesi. 31
Tanggung Jawab Profesional dan Etika Kode etik dan praktek profesional rekayasa perangkat lunak. Mukadimah Versi pendek kode merangkum aspirasi pada tinggi tingkat abstraksi tersebut; ayat-ayat yang termasuk dalam penuh versi memberikan contoh dan rincian tentang bagaimana aspirasi mengubah cara kita bertindak sebagai profesional rekayasa perangkat lunak. Tanpa aspirasi, rincian bisa menjadi legalistik dan membosankan, tanpa rincian, aspirasi dapat menjadi tinggi terdengar tapi kosong; bersama-sama, aspirasi dan rincian membentuk kode kohesif 32
Tanggung Jawab Profesional dan Etika Kode etik dan praktek profesional rekayasa perangkat lunak. Perekayasa Perangkat Lunak harus berkomitmen untuk membuat analisis, spesifikasi, desain, pengembangan, pengujian dan pemeliharaan perangkat lunak dan dihormati sebagai profesi menguntungkan. Sesuai dengan komitmen mereka untuk keselamatan, kesehatan dan kesejahteraan masyarakat, insinyur perangkat lunak harus mematuhi Delapan Prinsip berikut: 33
Tanggung Jawab Profesional dan Etika Prinsip Kode Etik PUBLIK insinyur Perangkat Lunak harus bertindak konsisten dengan publik bunga. KLIEN DAN KERJA Perekayasa Perangkat Lunak harus bertindak dengan cara yang ada di terbaik kepentingan klien mereka dan majikan yang konsisten dengan publik bunga. PRODUK Perekayasa Perangkat Lunak harus memastikan bahwa mereka produk dan terkait modifikasi memenuhi standar profesional tertinggi mungkin. 34
Tanggung Jawab Profesional dan Etika Prinsip Kode Etik PENGHAKIMAN Perekayasa Perangkat Lunak harus mempertahankan integritas dan kemandirian dalam penilaian profesional mereka. MANAJEMEN Manajer dan pemimpin Software engineering harus berlangganan dan mempromosikan pendekatan etis dengan pengelolaan pengembangan perangkat lunak dan pemeliharaan. PROFESI Perekayasa Perangkat Lunak memajukan integritas dan reputasi profesi konsisten dengan kepentingan publik. 35
Tanggung Jawab Profesional dan Etika Prinsip Kode Etik KOLEGA Perangkat Lunak harus bersikap adil dan mendukung terhadap kolega mereka. DIRI Perangkat Lunak harus berpartisipasi dalam seumur hidup mengenai tentang praktek profesi mereka dan akan mempromosikan pendekatan etis untuk mempraktekkan profesi. 36
Tanggung Jawab Profesional dan Etika Dilema Etika Ketidaksepakatan pada prinsipnya dengan kebijakan senior manajemen. Atasan harus bertindak dengan cara yang tidak etis dan melepaskan-kritis sistem keamanan tanpa finishing pengujian sistem. Partisipasi dalam pengembangan militer sistem atau sistem senjata nuklir merupakan dilema terbesar. 37
Hal-Hal Penting Software engineering adalah disiplin ilmu yang terkait dengan semua aspek produksi perangkat lunak. Produk perangkat lunak terdiri dari program yang dikembangkan dan dokumentasi yang relevan. Atribut yang penting adalah perawatan, kehandalan, efisiensi dan kegunaan. Proses perangkat lunak terdiri dari kegiatan-kegiatan yang terlibat dalam produk perangkat lunak. Dasar kegiatan adalah perangkat lunak spesifikasi, pengembangan, validasi dan evolusi. Metode adalah cara memproduksi perangkat lunak. Metode mencakup usulan untuk proses yang akan diikuti, notasi yang akan digunakan, peraturan yang mengatur sistem deskripsi yang dihasilkan dan pedoman desain. 38
Hal-Hal Penting (2) CASE tools adalah perangkat lunak sistem yang dirancang untuk mendukung kegiatan rutin pada proses perangkat lunak seperti pengeditan desain diagram, pemeriksaan konsistensi diagram dan melacak program tes yang telah dijalankan. Perekayasa Perangkat Lunak memiliki tanggung jawab terhadap profesi rekayasa dan masyarakat. Mereka seharusnya tidak hanya peduli dengan masalah teknis. Masyarakat Profesional mempublikasikan kode etik yang ditetapkan dari standar perilaku yang diharapkan dari mereka anggota. 39
Terima Kasih