Pengenalan Rekayasa Perangkat Lunak
Pertemuan II
Konsep Dasar Rekayasa Perangkat Lunak
Tim RPL 1 3
• Ilmu yang mempelajari tehnik pembuatan software yang baik dengan pendekatan tehnik (Engineering approach)
• Ada beberapa cara / fase1. Fase Perencanaan2. Fase Pengembangan3. Fase Pemeliharaan
Software Engineering ?
Tim RPL 1 4
• 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
Soft. and Soft. Engineering
Tim RPL 1 5
• Tahun-tahun awal :- Batch orientation- Limmited distribution- Custummer software
Evolusi Software
1950 1960 1970 1980 1990 2000
Tim RPL 1 6
• Era ke-2 : Era ke-3 :- Multi user - Distibuted system- Real time - Embedded intellegence- Database - Low cost hardware
- Consumer infact• Era ke-4 :
- Expert system- A I Machine- Parallel architecture
Evolusi Software
Tim RPL 1 7
• InstruksiAtau program komputer yang ketika dieksekusi akan memberi fungsi dan hasil yang diinginkan.
• Struktur dataYang memungkinkan program memanipulasi informasi
• DokumenYang menggambarkan operasi dan penggunaan program.
Arti Software ?
Tim RPL 1 8
• 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.
Sifat & Karakteristik Software ?
Tim RPL 1 9
• Bentuk Bahasa• Bentuk Translator• Bentuk Mesin :
Komponen Software ?
LANGUAGE FORM
TRANSLATOR
MACHINELANGUAGE
HIGH LEVEL
MIDDLE LEVEL
Tim RPL 1 10
1. Sistem Software2. 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.
3. Business Software4. Engineering and Sciencetific Sofware5. Emdebed Software6. PC Software7. Artificial Intelegent Software
Aplikasi Software ?
Tim RPL 1 11
• Krisis Software ?• Masalah ?• Penyebab ?
Model Software EngineeringàFritz Badar (soft. yg ekonomis), terdiri dari 3 elemen :
1. Metode2. Peralatan3. Prosedur
Aplikasi Software ? (cont.)
Tim RPL 1 12
Software engineering paradigma (ada 3) :1. Classic Life Cycle Paradigma
Model Software Engineering (cont.)
SISTEM ENGINEERING
ANALYS
DESIGN
CODE
TESTING
MAINTENANCE
Tim RPL 1 13
2. Prototype Paradigma
Model Software Engineering (cont.)
REQUIMENTS GATHERING
"QUICK DESIGN"
BUILD PROTOTYPE
EVALUATED AND REFINEMENTS
ENGINEER PRODUCT
Tim RPL 1 14
3. Fourth Generati on Technique Paradigma
Model Software Engineering (cont.)
REQUIMENTS GATHERING
"DESIGN STRATEGICS"
IMPLEMENTATION USING 4GT
PRODUCT
Tim RPL 1 15
4. Model Kombinasi
Model Software Engineering (cont.)
REQUIMENTSGATHERINGS
PROTOTYPING
PROTOTYPEAPPLY4GL
EVALUATE
ENGINEERPRODUCT
CLASSIC LIFECYCLE
DAPAT LANGSUNG JIKA PENDEKATANNYA JELAS
Tim RPL 1 16
• 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 ?
Sebuah Analogi
Tim RPL 1 17
• Apa perbedaan antara software engineering (rekayasa perangkat lunak) dengan computer science (ilmu komputer) ?
Berhubungan dengan :
Computer Science Software Engineering
- Teori-teori
- Dasar-dasar Ilmu Komputer
- Pengetahuan praktis untuk pengembangan
- Untuk menghasilkan soft. yg berguna
Perbedaan SE & CS
Tim RPL 1 18
• 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.
Perbedaan SE & CS (cont.)
Tim RPL 1 19
• 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
Mengapa perlu Soft. Engineering
Tim RPL 1 20
• 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)
Tahap-tahap Proses Pengembangan Soft.
Tanggung Jaw ab Profesional Dan Etika
Tim RPL 1 22
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.
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 Ethicsand Professional Practice IEEE-CS/ACM Code of Ethics
and Professional Practice
Tim RPL 1 24
• Dikembangkan berdasarkan 8 prinsip:1. Kepentingan umum2. Klien dan atasan3. Produk4. Keputusan5. Manajemen6. Profesi7. Rekan sejawat8. Diri sendiri
1. Kepentingan Umum• Pengembang sistem seharusnya bertindak konsisten
dengan kepentingan umum• Menyetujui sistem jika memiliki keyakinan yang kuat
bahwa sistem aman, memenuhi standar, melewatiberbagai pengujian dan tidak mengurangi kualitashidup, privasi, atau mengganggu lingkungan.
• Menyingkap setiap bahaya potensial padapengguna.
• Adil dan hindari kecurangan dalam setiappernyataan terkait dengan sistem.
Tim RPL 1 25
2. Klien dan Atasan• Pengembang sistem seharusnya bertindak
dalam cara yang memberikan perhatian terbesarpada klien atau atasannya, konsisten dengankepentingan umum.
• Jujur akan keterbatasan pengetahuan danpengalamannya.
• 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 standarprofesional tertinggi yang mungkin.
• Berupaya untuk mutu yang tinggi, biaya yang wajar, dan jadwal yang beralasan.
• Lakukan pengujian, penghapusan bug, danpengkajian yang memadai terhadap sistem dandokumen yang terkait.
• Hadapi setiap perawatan sistem denganprofesionalisme yang sama dengan pengembanganbaru.
Tim RPL 1 27
4. Keputusan• Pengembang sistem seharusnya memelihara
integritas dan independens inya dalam membuatsuatu keputusan profesional
• Tidak terikat dengan praktik keuangan yang keliru.
• Perlihatkan ke semua pihak yang terkait, konflik kepentingan yang terjadi yang tidakdapat dibiarkan begitu saja.
Tim RPL 1 28
5. Manajemen• Manajer/pemimpin pengembangan sistem
seharusnya mengikuti dan mendorong pendekatanetis terhadap manajemen pengembangan sistem.• Yakini bahwa para pengembang sistem telah
diberitahukan standar-standar yang akandigunakan.
• 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 dalamsistem dan dokumentasi yang terkait yang sedangdikerjakannya .
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 darirekan 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 mendukungpendekatan etis dalam praktik profesinya.
• Menambah pengetahuannya• Meningkatkan kemampuannya dalam
mengembangkan sistem berkualitas yang aman, andal, dan berguna
• Meningkatkan kemampuannya untuk menghasilkandokumentasi yang akurat, informatif, dan ditulisdengan 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 melampauisekedar penulisan kode program
• Kembangkan untuk pengguna• Untuk menghasilkan sistem yang berguna dan aman,
pengguna harus dilibatkan dalam tahap-tahap pengembangansistem.
• Rencanakan dan jadwalkan secara seksama• Memperhatikan kedetilan, lakukan dengan seksama dan hati-
hati sewaktu membuat perencanaan dan penjadwalan proyekserta 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 MenghadapiMasalahProfesional 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”, “dilarangsecara etis”, atau “dapat diterima secara etis”
• Pertimbangkan manfaat dari tiap pilihan tindakan, dan pilihlah salahsatu
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