Pengenalan Rekayasa Perangkat Lunak Pertemuan II @bhkrisdhianto
Konsep Dasar Rekayasa Perangkat Lunak
Ilmu yang mempelajari tehnik pembuatan Software Engineering ? Ilmu yang mempelajari tehnik pembuatan software yang baik dengan pendekatan tehnik (Engineering ap-proach) Ada beberapa cara / fase 1. Fase Perencanaan 2. Fase Pengembangan 3. Fase Pemeliharaan 3
Soft. and Soft. Engineering Tantangan ? àmengembangkan hardware komputer yang dapat mengurangi biaya pengolahan dan penyimpanan data àmengurangi biaya dan memperbaiki kualitas solusi berbasis komputer Solusi ? àSoft. merupakan faktor kunci dlm keberhasilan suatu usaha, soft. dpt membedakan satu perusahaan dari perusahan saingannya 4
Evolusi Software Tahun-tahun awal : - Batch orientation 1950 1960 1970 1980 1990 2000 Tahun-tahun awal : - Batch orientation - Limmited distribution - Custummer software 5
Evolusi Software Era ke-3 : - Distibuted system - Multi user - Real time - Database Era ke-4 : - Expert system - A I Machine - Parallel architecture Era ke-3 : - Distibuted system - Embedded intellegence - Low cost hardware - Consumer infact 6
Arti Software ? Instruksi Atau program komputer yang ketika dieksekusi akan memberi fungsi dan hasil yang diinginkan. Struktur data Yang memungkinkan program memanipulasi informasi Dokumen Yang menggambarkan operasi dan penggunaan program. 7
Sifat & Karakteristik Software ? Software merupakan elemen sistem logik dan bukan elemen sistem fisik seperti hardware Elemen itu tidak aus, tetapi bisa rusak. Elemen software itu direkayasa atau dikembangkan dan bukan dibuat di pabrik seperti hardware Software itu tidak bisa dirakit. 8
Komponen Software ? Bentuk Bahasa Bentuk Translator Bentuk Mesin : LANGUAGE FORM HIGH LEVEL MIDDLE LEVEL TRANSLATOR MACHINE LANGUAGE 9
Aplikasi Software ? 1. 2. 3. 4. 5. 6. 7. Sistem Software Real Time Software Perlu dicatat bahwa istilah real time berbeda dari istilah interactive atau time sharing. Sistem real time harus memberikan respons pada waktu yang ditentukan, sedangkan pada sistem interactive atau time sharing respons time biasanya melebihi batas waktu yang ditentukan tanpa merusak hasil. Business Software Engineering and Sciencetific Sofware Emdebed Software PC Software Artificial Intelegent Software 10
Aplikasi Software ? (cont.) Krisis Software ? Masalah ? Penyebab ? Model Software Engineering àFritz Badar (soft. yg ekonomis), terdiri dari 3 elemen : 1. Metode 2. Peralatan 3. Prosedur 11
Model Software Engineering (cont.) Software engineering paradigma (ada 3) : 1. Classic Life Cycle Paradigma SISTEM ENGINEERING ANALYS DESIGN CODE TESTING MAINTENANCE 12
Model Software Engineering (cont.) 2. Prototype Paradigma REQUIMENTS GATHERING "QUICK DESIGN" BUILD PROTOTYPE EVALUATED AND REFINEMENTS ENGINEER PRODUCT 13
Model Software Engineering (cont.) 3. Fourth Generation Technique Paradigma REQUIMENTS GATHERING "DESIGN STRATEGICS" IMPLEMENTATION USING 4GT PRODUCT 14
Model Software Engineering (cont.) 4. Model Kombinasi DAPAT LANGSUNG JIKA PENDEKATANNYA JELAS PROTOTYPING ENGINEER PRODUCT REQUIMENTS GATHERINGS APPLY 4GL PROTOTYPE CLASSIC LIFE EVALUATE CYCLE 15
Sebuah Analogi Gas Oksigen dapat dibuat oleh : - Sebuah Laboratorium - Industri Pabrik Gas Perangkat lunak dapat dikembangkan oleh : - Sekelompok programmer - Sebuah organisasi yang mengembangkannya melalui rekayasa Apa yang membedakan antara keduanya ? 16
Perbedaan SE & CS Berhubungan dengan : Apa perbedaan antara software engineering (rekayasa perangkat lunak) dengan computer science (ilmu komputer) ? Computer Science Software Engineering Berhubungan dengan : - Teori-teori - Dasar-dasar Ilmu Komputer - Pengetahuan praktis untuk pengembangan - Untuk menghasilkan soft. yg berguna 17
Perbedaan SE & CS (cont.) Comp. Science terkait dgn teori-teori & dasar-dasar dari ilmu komputer, sedangkan software engineering terkait pada pengetahuan & penyerahan perangkat lunak yg berguna. Teori-teori ilmu komputer biasanya tidak cukup digunakan sebagai pendukung yang lengkap dari software engineering. 18
Mengapa perlu Soft. Engineering Masalahnya adalah kompleksitas Banyak dibutuhkan sumber-sumber, tetapi kuncinya adalah ukuran (size) : - UNIX berisi 4 juta lines of code - Windows 2000 berisi 108lines of code dikerjakan oleh Tim dengan 1400 orang Soft. Engineering adalah bagaimana mengelola komplesitas tsb. dan dpt bekerja dalam satu Tim Work 19
Tahap-tahap Proses Pengembangan Soft. Bagaimana bekerja dalam suatu proyek skala besar, kompleks & melibatkan banyak orang ? 1. Spesifikasi Kebutuhan (requirement specification) 2. Analisis (anlysis) 3. Perancangan (design) 4. Implementasi & Pengujian (implementastion & testing) 5. Perawatan & Up-grade (maintenance & upgrade) 20
Tanggung Jawab Profesional Dan Etika
Kita memiliki kebanggaan pada pekerjaan kita Mengapa Perlu Kode Etika Profesi TI ? Kita memiliki kebanggaan pada pekerjaan kita dan ingin pekerjaan kita diberikan pengakuan dan rasa hormat. Kita ingin melindungi mata pencaharian kita. Komputer memiliki potensi untuk menghasilkan manfaat yang positif maupun dampak yang negatif atau mempengaruhi ke arah yang positif maupun negatif. 22
Etika Profesional Komputer Secara umum, perilaku etis yang diharapkan dari para profesional komputer: Jujur dan adil; memegang kerahasiaan; memelihara kompetensi profesi; memahami hukum yang terkait; menghargai dan melindungi kerahasiaan pribadi; menghindari merugikan pihak lain; dan menghargai hak milik. Berbagai contoh kode etik profesi komputer: IEEE-CS/ACM (Software Engineering Code of Ethics and Professional Practice) (http://www.acm.org/about/se-code) ACM Code of Ethics and Professional Conduct (http://www.acm.org/about/code-of-ethics) British Computer Society Code of Conduct and Code of Good Practice (http://www.bcs.org/upload/pdf/conduct.pdf dan http://www. bcs.org/upload/pdf/cop.pdf ) 23
and Professional Practice IEEE-CS/ACM Code of Ethics Dikembangkan berdasarkan 8 prinsip: 1. Kepentingan umum 2. Klien dan atasan 3. Produk 4. Keputusan 5. Manajemen 6. Profesi 7. Rekan sejawat 8. Diri sendiri 24
Pengembang sistem seharusnya bertindak konsisten 1. Kepentingan Umum Pengembang sistem seharusnya bertindak konsisten dengan kepentingan umum Menyetujui sistem jika memiliki keyakinan yang kuat bahwa sistem aman, memenuhi standar, melewati berbagai pengujian dan tidak mengurangi kualitas hidup, privasi, atau mengganggu lingkungan. Menyingkap setiap bahaya potensial pada pengguna. Adil dan hindari kecurangan dalam setiap pernyataan terkait dengan sistem. 25
Pengembang sistem seharusnya bertindak 2. Klien dan Atasan Pengembang sistem seharusnya bertindak dalam cara yang memberikan perhatian terbesar pada klien atau atasannya, konsisten dengan kepentingan umum. Jujur akan keterbatasan pengetahuan dan pengalamannya. Simpan setiap informasi rahasia, konsisten dengan kepentingan umum dan hukum. 26
Pengembang sistem seharusnya meyakinkan bahwa 3. Produk Pengembang sistem seharusnya meyakinkan bahwa produknya dan segala perubahannya memenuhi standar profesional tertinggi yang mungkin. Berupaya untuk mutu yang tinggi, biaya yang wajar, dan jadwal yang beralasan. Lakukan pengujian, penghapusan bug, dan pengkajian yang memadai terhadap sistem dan dokumen yang terkait. Hadapi setiap perawatan sistem dengan profesionalisme yang sama dengan pengembangan baru. 27
Pengembang sistem seharusnya memelihara 4. Keputusan Pengembang sistem seharusnya memelihara integritas dan independensinya dalam membuat suatu keputusan profesional Tidak terikat dengan praktik keuangan yang keliru. Perlihatkan ke semua pihak yang terkait, konflik kepentingan yang terjadi yang tidak dapat dibiarkan begitu saja. 28
Manajer/pemimpin pengembangan sistem 5. Manajemen Manajer/pemimpin pengembangan sistem seharusnya mengikuti dan mendorong pendekatan etis terhadap manajemen pengembangan sistem. Yakini bahwa para pengembang sistem telah diberitahukan standar-standar yang akan digunakan. Memberikan honor yang adil dan memadai. Tidak memberikan sanksi kepada siapapun yang memberikan perhatian etis mengenai proyek. 29
Pengembang sistem seharusnya menaikkan integritas 6. Profesi Pengembang sistem seharusnya menaikkan integritas dan reputasinya konsisten dengan kepentingan umum. Memasyarakatkan pengetahuan umumakan pengembangan sistem. Akurat dalam menyatakan karakteristik perangkat lunak yang dikerjakannya. Bertanggung jawab untuk mendapatkan, memperbaiki, dan melaporkan kesalahan dalam sistem dan dokumentasi yang terkait yang sedang dikerjakannya. 30
Pengembang sistem seharusnya adil dan 7. Rekan Sejawat Pengembang sistem seharusnya adil dan memberi dukungan kepada rekan sejawatnya. Hargai pekerjaan orang lain Berikan pemahaman yang adil akan pendapat, perhatian, dan keberatan dari rekan sejawat. Untuk hal-hal di luar kompetensi yang dimiliki, minta pendapat dari profesional yang berkompetensi di bidang tersebut. 31
Pengembang sistem seharusnya belajar terus terkait 8. Diri Sendiri Pengembang sistem seharusnya belajar terus terkait dengan praktik profesinya dan seharusnya mendukung pendekatan etis dalam praktik profesinya. Menambah pengetahuannya Meningkatkan kemampuannya dalam mengembangkan sistem berkualitas yang aman, andal, dan berguna Meningkatkan kemampuannya untuk menghasilkan dokumentasi yang akurat, informatif, dan ditulis dengan baik. 32
Pahami apa itu keberhasilan Pedoman Tambahan Untuk Profesional TI Pahami apa itu keberhasilan Pengembang (terutama) dan pengguna sistem komputer harus melihat keberhasilan sebagai sesuatu yang melampaui sekedar penulisan kode program Kembangkan untuk pengguna Untuk menghasilkan sistem yang berguna dan aman, pengguna harus dilibatkan dalam tahap-tahap pengembangan sistem. Rencanakan dan jadwalkan secara seksama Memperhatikan kedetilan, lakukan dengan seksama dan hati- hati sewaktu membuat perencanaan dan penjadwalan proyek serta sewaktu membuatkan penawaran 33
Mengkaji penggunaan kembali perangkat lunak Pedoman Tambahan Untuk Profesional TI (cont.) Mengkaji penggunaan kembali perangkat lunak Jangan mengasumsikan bahwa perangkat lunak yang sudah ada aman dan dapat digunakan kembali Melindungi Perlu jaminan yang meyakinkan akan keamanan sistem Jujur Jujur dan terbuka mengenai kemampuan, keamanan, dan keterbatasan dari perangkat lunak 34
Bagaimana MenghadapiMasalah Profesional yang terkait Etika? Brainstorming Daftarkan risiko, isu, masalah, dan akibat yang ada Daftarkan pihak-pihak yang terlibat Daftarkan tindakan/perbuatan yang mungkin Analisis Identifikasi tanggung jawab dari pembuat keputusan Identifikasi hak-hak dari pihak-pihak yang terlibat Pertimbangkan dampak dari pilihan-pilihan tindakan terhadap pihak- pihak tersebut Temukan pedoman dalam kode etik profesi anda (jika ada). Kategorikan tiap pilihan tindakan sebagai wajib secara etis , dilarang secara etis , atau dapat diterima secara etis Pertimbangkan manfaat dari tiap pilihan tindakan, dan pilihlah salah satu 35
(SDLC/Software Development Life Siklus Hidup Perangkat Lunak (SDLC/Software Development Life Cycle)
Gambar Siklus Hidup Pengembangan Sistem 37
Bagan Laporan Terdokumentasi Yang Siap Diserahkan Front-End 38
Bagan Laporan Terdokumentasi Yang Siap Diserahkan Back-End 39
Selesai Ada Pertanyaan ??? 40