software engineering
DESCRIPTION
Software Engineering. Software and Software Engineering. Apa itu software?. Software → c omputer software Namun, pada John von Neumann type computer , antara data dengan software yang mengolah data, batasannya makin tidak jelas Istilah software berasal dari hardware - PowerPoint PPT PresentationTRANSCRIPT
SOFTWARE ENGINEERING 1
Software EngineeringSOFTWARE AND SOFTWARE ENGINEERING
SOFTWARE ENGINEERING 2
Apa itu software? Software → computer software
Namun, pada John von Neumann type computer, antara data dengan software yang mengolah data, batasannya makin tidak jelas
Istilah software berasal dari hardware◦ ware: barang yang dibuat; produk. kitchenware, ironware, etc.
Contoh kalimat menggunakan software muncul pertama kali tahun 1960 [Oxford Dictionary]
Sebelumnya, tahun 1958, Prof. John W. Tukey (Princeton Univ.) menuliskan software dalam tulisan ilmiahnya di jurnal American Mathematical Monthly) No. 1, yang ditemukan oleh Fred R. Shapiro (Graduate School of Law, Yel Univ.).
SOFTWARE ENGINEERING 3
ソフトウェアとは Computer software: ditulis dengan bahasa buatan yang disebut bahasa pemrograman (programming language)
Mirip dengan novel, artikel, tulisan ilmiah, yang juga disusun dari kata-kata, namun punya keistimewaan, dapat berinteraksi langsung dengan dunia luar
Hasil yang ditulis dari bahasa pemrograman disebut program
Beda program dengan software:◦ Program: deret symbol yang dijalankan oleh computer◦ Software: seperti pada hardware, sebutan umum untuk programDalam bahasa Inggris, software tidak memiliki bentuk plural – program ada
SOFTWARE ENGINEERING 4
Apa itu software engineering?
Dalam IEEE Standard 610-1990, Software Engineering (SE) didefinisikan sebagai:
1. Metode untuk membangun/mengembangkan, mengoperasikan, dan memelihara, yang dapat dihitung, dengan secara sistematis dan terstruktur
2. Penelitian untuk #1
Tujuan mata kuliah ini adalah untuk mencari proses, metode, yang dapat digunakan untuk membangun software yang dapat memenuhi kebutuhan dunia saat ini
Dibandingkan dengan engineering yang lain seperti Mechanical Engineering, Electrical Engineering, SE muncul belakangan
◦ Lebih mirip dengan Mechanical Engineering
Software tidak memilik wujud, seperti halnya mesin atau listrik
SOFTWARE ENGINEERING 5
ソフトウェア工学とは Dari keabstrakannya, dalam keilmuannya (Ilmu Pasti), SE dekat dengan ilmu komputer atau matematika
Dari sudut pandang bagaimana software itu dibuat – menggunakan bahasa pemrograman –, maka SE dekat dengan ilmu sastra
◦ Metode penulisan program mirip dengan cara menulis buku (B.W. Kernighan, et.al. 1974)
SOFTWARE ENGINEERING 6
Rekayasa Piranti Lunak Arti rekayasa (dari KBBI):
1. (kata benda) penerapan kaidah-kaidah ilmu dl pelaksanaan (spt perancangan, pembuatan konstruksi, serta pengoperasian kerangka, peralatan, dan sistem yg ekonomis dan efisien)
2. (kiasan) rencana jahat atau persekongkolan untuk merugikan dsb pihak lain: ia menjadi terdakwa krn -- yg dilakukan tetangganya;
Arti engineering (dari Oxford Dictionaries):1. (noun) the branch of science and technology concerned with the design,
building, and use of engines, machines, and structures.a field of study or activity concerned with modification or development in a particular area: software engineering
2. the action of working artfully to bring something about: if not for his shrewd engineering, the election would have been lost
SOFTWARE ENGINEERING 7
Tasks in Software Engineering
Sama dengan bidang engineering yang lain, pekerjaan dalam SE mencakup:◦ Modeling
Apa permasalahannya, sistem seperti apa yang harus dibuat, tidak jelas diberikan dari awal. Perlu dilakukan analisis terhadap target domain, identifikasi masalah, menangkap kebutuhan pengguna. Diperlukan teknik pemodelan.
◦ SpecificationDalam engineering, mendeskripsikan spesifikasi dengan benar, merupakan syarat utama.
◦ DesignInti dari engineering adalah desain.
◦ VerificationApakah sistem telah dibuat sesuai spesifikasinya? Perlu verifikasi.
◦ MaintenanceSistem yang hanya dibuat saja tidak bermanfaat. Pemeliharaan, upaya untuk menyesuaikan dengan kebutuhan dan perubahan lingkungan juga diperlukan.
◦ OrganizationPada umumnya, sistem tidak dibangun oleh satu orang. Perlu teknik manajemen untuk membangun dalam organisasi.
SOFTWARE ENGINEERING 8
Tiga sisi penting dalam SE
Dari sudut pandang engineering, yang penting adalah bagaimana membangun software sebagai suatu produk
◦ yang dibuat sendiri, untuk digunakan sendiri, tidak perlu engineering
Tiga sisi yang harus diperhatikan:1. Dari sisi teknik/teknologi murni yang digunakan untuk membangun dan
memelihara software dengan tingkat keabstrakan yang tinggi2. Dari sisi manajemen yang digunakan untuk mengelola pembangunan
software dalam suatu organisasi3. Dari sisi manusia, seperti komunikasi, pengakuan, yang digunakan untuk
meningkatkan kepuasan pengguna, serta untuk meningkatkan motifasi dan kerja sama tim dalam pembangunannya
SOFTWARE ENGINEERING 9
Sejarah Software Engineering
Pembangunan software dimulai sejak ditemukannya komputer◦ ENIAC (1946), program dibuat dengan menyambung-nyambungkan kabel
Komputer yang dilengkapi dengan program, ditemukan oleh John von Neumann ("First Draft of Report on the EDVAC", 1945)
◦ Dalam bagian akhirnya, tercantum program yang pertama kali dibuat
Komputer komersial pertama, yang digunakan dalam sensus penduduk Amerika Serikat, 1951
IBM System/360, 1964◦ dengan tingkat kompatibilitas tinggi, meningkatkan penggunaan software◦ OS-nya sendiri disusun dari 5 juta baris program assembly
SOFTWARE ENGINEERING 10
Krisis software Kebutuhan akan software tidak diimbangi dengan teknologi untuk membuatnya dan juga infrastrukturnya
◦ jadwal pembangunan yang terlambat◦ kualitas produknya rendah (1960)
→ Software crisis, krisis dalam software
SOFTWARE ENGINEERING 11
Perkembangan SE Software Engineering muncul untuk menyelamatkan krisis
Pertama kali diangkat dalam konferensi NATO, Garmisch (Deutsh), 1968
Tahun 1970an, pemrograman terstruktur, banyak diteliti/dikaji, baik dari sisi teori maupun aplikasinyaPada era ini lah, pondasi pemrograman, metodologi perancangan, dan teknik analisis kebutuhan dibuat
Tahun 1980an, lagi-lagi permintaan/kebutuhan software tidak diimbangi dengan perkembangan engineeringMuncul bidang ilmu manajemen (spt. quality control, configuration management), software process di dalam software engineering
→ Software Process: CMM, ISO9000
Tahun 1990an, Object Oriented Programming mendapatkan perhatian→ Object Oriented Design, Object Oriented Analysis
SOFTWARE ENGINEERING 12
Keragaman aplikasi Dibandingkan sebelumnya (tahun 70an), tahun 90an, aplikasi software makin beragam
◦ menyebarnya PC dan Internet◦ pembebasan, desentralisasi, miniaturisasi, multimedia→ software engineering yang selama ini dikembangkan jadi "ketinggalan"?
Pada abad ke-21 ini, kebutuhan software di dalam masyarakat dan ketergantungan pada software meningkat→ setelah 30 tahun, pentingnya software engineering makin dirasakan
SOFTWARE ENGINEERING 13
Cakupan software engineering
Literatur yang umum:◦ I. Sommerville, Software Engineering (6th Ed.), Addison-Wesley, 2001◦ R. Pressman, Software Engineering, A Practioner's Approach (5th Ed.),
McGraw-Hill, 2001
Asosisasi yang melakukan penelitian, membuat standar:◦ IEEE (Institute of Electrical and Electronics Engineers) Computer Society◦ ACM (Assocication for Computer Machinery)→ menyusun sistematika pengetahuan dalam software engineering→ SWEBOK (Software Engineering Body of Knowledge), V3 2004→ CC2001 (Computer Curricula 2001)
SOFTWARE ENGINEERING 14
Kematangan engineering dalam software engineering
Mary Shaw, Prospects for an engineering discipline of software, IEEE Software, 7(6):15–24, November 1990:
◦ Teknologi lahir dari industri dan seni/kerajinan tangan. Setelah keduanya saling terhubung, masuk tahapan komersialisasi. Kemudian jika ilmu pengetahuan ikut andil juga, maka lahirlah engineering.
◦ Dibandingkan dengan bidang lain, software, baru bagian pemrograman dan bagian khusus lain saja yang sudah masuk tahapan engineering.
D. L. Parnas. Software aspects of strategic defense systems, Communications of ACM, 28(12):1326–1335, 1985:
◦ Software untuk SDI (Strategic Defense Initiative, or Star Wars Plan), tidak mungkin dibangun, karena teknologi yang ada belum mencukupi.
F. P. J. Brooks. No silver bullet: Essence and accidents of software engineering, IEEE Software, pp. 10–19, April 1987.
◦ Belum ada teknologi setara peluru perak untuk pengembangan software
SOFTWARE ENGINEERING 15
Alternatif jalan menuju solusi
Jalan menuju solusi pengembangan yang memungkinkan:◦ Tidak buat sendiri, tapi beli◦ Memperjelas kebutuhan dan prototyping◦ Incremental Development◦ Super Developer
Kemampuan yang dibutuhkan seorang programmer:◦ Logika yang dimiliki seorang ahli matematika◦ Bakat engineering seperti Edison◦ Keakuratan yang dimiliki seorang banker◦ Imaginasi seorang penulis novel misteri◦ Kemampuan praktis seorang businessman◦ Sikap mau bekerja sama dan juga mengerti masalah manajerialA. P. Ershov. Aesthetics and the human factor in programming. Communications of ACM, 15(7):501–505, 1972