Pengenalan Rekayasa Perangkat Lunak Pertemuan II
Konsep Dasar Rekayasa Perangkat Lunak
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
Tim RPL 1
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 perus ahan saingannya Tim RPL 1
4
Evolusi Software 1950
•
1960
1970
1980
1990
2000
Tahun-tahun awal : - Batch orientation - Limmited distribution - Custummer software
Tim RPL 1
5
Evolusi Software •
Era ke-2 : - Multi user - Real time - Database
•
Era ke-4 : - Expert system - A I Machine - Parallel architecture
Tim RPL 1
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.
Tim RPL 1
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.
Tim RPL 1
8
Komponen Software ? • Bentuk Bahasa • Bentuk Translator • Bentuk Mesin : LANGUAGE FORM
HIGH LEVEL MIDDLE LEVEL
TRANSLATOR
MACHINE LANGUAGE
Tim RPL 1
9
Aplikasi Software ? 1. 2.
Sistem Software Real Time Software
3. 4. 5. 6. 7.
Business Software Engineering and Sciencetific Sofware Emdebed Software PC Software Artificial Intelegent 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.
Tim RPL 1
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
Tim RPL 1
11
Model Software Engineering (cont.) Software engineering paradigma (ada 3) : 1. Classic Life Cycle Paradigma SISTEM ENGINEERING ANALYS DESIGN CODE TESTING MAINTENANCE
Tim RPL 1
12
Model Software Engineering (cont.) 2. Prototype Paradigma REQUIMENTS GATHERING "QUICK DESIGN" BUILD PROTOTYPE EVALUAT ED AND REFINEMENTS ENGINEER PRODUCT
Tim RPL 1
13
Model Software Engineering (cont.) 3. Fourth Generati on Technique Paradigma REQUIMENTS GATHERING "DESIGN STRATEGICS" IMPLEMENTATION USING 4GT PRODUCT
Tim RPL 1
14
Model Software Engineering (cont.) 4. Model Kombinasi DAPAT LANGSUNG JIKA PENDEKATANNYA JELAS PROTOTYPING REQUIMENTS GATHERINGS
APPLY 4GL
PROTOTYPE
EVALUATE
Tim RPL 1
ENGINEER PRODUCT
CLASSIC LIFE 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 ? Tim RPL 1
16
Perbedaan SE & CS • 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
Tim RPL 1
- 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. Tim RPL 1
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 108 lines of code dikerjakan oleh Tim dengan 1400 orang
Soft. Engineering adalah bagaimana mengelola komplesitas tsb. dan dpt bekerja dalam satu Tim Work Tim RPL 1
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) Tim RPL 1
20
Tanggung Jaw ab Profesional Dan Etika
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.
Tim RPL 1
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 )
Tim RPL 1
23
IEEE-CS/ACM Code of Ethi cs and Professional Practice IEEE-CS/ACM Code of Ethi cs and Professional Practice • 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
Tim RPL 1
24
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.
Tim RPL 1
25
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 kepent ingan umum dan hukum.
Tim RPL 1
26
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. Tim RPL 1
27
4. Keputusan • Pengembang sistem seharusnya memelihara integritas dan independens inya 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.
Tim RPL 1
28
5. Manajemen • Manajer/pemimpin pengembanga n 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.
Tim RPL 1
29
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 .
Tim RPL 1
30
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. Tim RPL 1
31
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.
Tim RPL 1
32
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 hatihati sewaktu membuat perencanaan dan penjadwalan proyek serta sewaktu membuatkan penawaran
Tim RPL 1
33
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
Tim RPL 1
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 pihakpihak 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
Tim RPL 1
35
Siklus Hidup Perangkat Lunak (SDLC/Softw are Development Life Cycle)
Gambar Siklus Hidup Pengembangan Sistem
Tim RPL 1
37
Bagan Laporan Terdokumentasi Yang Siap Diserahkan Front-End
Tim RPL 1
38
Bagan Laporan Terdokumentasi Yang Siap Diserahkan Back-End
Tim RPL 1
39
Selesai
Tim RPL 1
40