software engineering

15
Software Engineering SOFTWARE AND SOFTWARE ENGINEERING SOFTWARE ENGINEERING 1

Upload: shepry

Post on 24-Feb-2016

288 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Software Engineering

SOFTWARE ENGINEERING 1

Software EngineeringSOFTWARE AND SOFTWARE ENGINEERING

Page 2: 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.).

Page 3: Software Engineering

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

Page 4: Software Engineering

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

Page 5: Software Engineering

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)

Page 6: Software Engineering

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

Page 7: Software Engineering

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.

Page 8: Software Engineering

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

Page 9: Software Engineering

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

Page 10: Software Engineering

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

Page 11: Software Engineering

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

Page 12: Software Engineering

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

Page 13: Software Engineering

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)

Page 14: Software Engineering

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

Page 15: Software Engineering

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