Anda di halaman 1dari 15

Software

Engineering
SOFTWARE AND SOFTWARE ENGINEERING

SOFTWARE ENGINEERING

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


Computer software: ditulis dengan bahasa buatan yang disebut bahasa
pemrograman (programming language)
Mirip dengan novel, artikel, tulisan ilmiah, yang juga disusun dari katakata, 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 program
Dalam bahasa Inggris, software tidak memiliki bentuk plural program ada

SOFTWARE ENGINEERING

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


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

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

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.
Specification
Dalam engineering, mendeskripsikan spesifikasi dengan benar, merupakan syarat
utama.
Design
Inti dari engineering adalah desain.
Verification
Apakah sistem telah dibuat sesuai spesifikasinya? Perlu verifikasi.
Maintenance
Sistem yang hanya dibuat saja tidak bermanfaat. Pemeliharaan, upaya untuk
menyesuaikan dengan kebutuhan dan perubahan lingkungan juga diperlukan.
Organization
Pada umumnya, sistem tidak dibangun oleh satu orang. Perlu teknik manajemen
untuk membangun dalam organisasi.
SOFTWARE ENGINEERING

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 tinggi
2. Dari sisi manajemen yang digunakan untuk mengelola pembangunan
software dalam suatu organisasi
3. Dari sisi manusia, seperti komunikasi, pengakuan, yang digunakan untuk
meningkatkan kepuasan pengguna, serta untuk meningkatkan motifasi dan
kerja sama tim dalam pembangunannya

SOFTWARE ENGINEERING

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

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

10

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 aplikasinya
Pada era ini lah, pondasi pemrograman, metodologi perancangan, dan
teknik analisis kebutuhan dibuat
Tahun 1980an, lagi-lagi permintaan/kebutuhan software tidak diimbangi
dengan perkembangan engineering
Muncul 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

11

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

12

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

13

Kematangan engineering
dalam software engineering
Mary Shaw, Prospects for an engineering discipline of software, IEEE
Software, 7(6):1524, 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):13261335, 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. 1019, April 1987.
Belum ada teknologi setara peluru perak untuk pengembangan software

SOFTWARE ENGINEERING

14

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 manajerial
A. P. Ershov. Aesthetics and the human factor in programming.
Communications of ACM, 15(7):501505, 1972

SOFTWARE ENGINEERING

15

Anda mungkin juga menyukai