Software dan Software Development

Ridwan Firdaus
Hexavara Tech
Published in
3 min readDec 12, 2020
sensortower.com

Software

Menurut Sommerville (2011), software adalah program komputer yang menjalankan sekumpulan fungsi/tugas tertentu. Sementara IBM (n.d) mendenisikan software sebagai sekumpulan instruksi atau program yang memberi tahu komputer apa yang harus dilakukan. IBM mengklasifikasikan software kedalam tiga jenis, yaitu:

  1. System Software
    System software
    adalah perangkat lunak yang menyediakan fungsi inti seperti sistem operasi, manajemen disk, utilitas, manajemen perangkat keras, dan keperluan operasional lainnya.
  2. Programming software
    Programming software
    adalah perangkat lunak yang memberikan programmer peralatan untuk membuat kode seperti text editor, kompiler, linker/penghubung, dan debugger.
  3. Application software
    Aplikasi adalah perangkat lunak untuk membantu pengguna melakukan tugas seperti software produktivitas kantor, manajemen data, pemutar media, dan program keamanan. Aplikasi juga mengacu pada aplikasi web dan seluler

Software Development

Menurut sommerville (2011), sebuah software bisa dikembangkan dengan pendekatan plan-driven atau agile process. Pendekatan plan-driven adalah proses di mana semua aktivitas proses direncanakan sebelumnya dan progress diukur terhadap rencana ini. Sementara pada pendekatan agile, perencanaan bersifat inkremental dan lebih mudah untuk mengubah proses untuk mencerminkan perubahan kebutuhan pelanggan/user.

Waterfall
Pendekatan plan-driven disebut juga sebagai proses waterfall dimana semua aktivitas direncanakan diawal dan suatu proses harus diselesaikan terlebih dahulu sebelum memulai aktivitas yang lain.

Metode Waterfall as per Sommerville (2011)

Agile
Pada pendekatan proses agile, sebuah software tidak dikembangkan sebagai satu unit tetapi sebagai serangkaian increment, dengan setiap increment-nya terdapat penambahan fungsi sistem baru. Pada proses ini, spesifikasi, desain, dan implementasi tidak terpisahkan seperti pendekatan waterfall, melainkan saling terkait. Pada pendekatan ini, pengguna/user terlibat erat selama proses pengembangan yang berperan menyediakan dan memprioritaskan requirement sistem dan untuk mengevaluasi iterasi sistem.

https://www.cleart.com/what-is-agile-software-development.html

Waterfall vs Agile
Secara umum perbedaannya bisa diringkas dalam gambar berikut

baswolfs.info

Ketika tujuan dari pengembangan adalah membuat “alat transportasi”, metode agile akan menentukan ‘alat berfungsi paling minimum’ untuk disampaikan pada iterasi pertama. Kemudian menarik feedback dan pada iterasi berikutnya fungsionalitas lain ditambahkan. Sebagai contoh, pada gambar diatas, iterasi pertama adalah skateboard yang mampu memindahkan seseorang dari tempat A ke tempat B. Kemudian pada iterasi berikutnya ditambahkan stang pada skateboard untuk meningkatkan kontrol. Kemudian di iterasi berikutnya ditambahkan lagi fungsionalitas lain dan seterusnya hingga produk jadi terbentuk. Dalam agile, setiap iterasi selalu menghasilkan ‘sesuatu yang fungsional’, sementara pada waterfall, produk fungsional hanya dapat didapat di akhir pengembangan.

Next kita akan bahas metode agile lebih detail, so stay tune :)

References:
- Sommerville, I., 2011. Software Engineering. 9th. Massachusetts: Addison-Wesley
- IBM, Topics: What is software development?. Available at: https://www.ibm.com/topics/software-development

--

--