Back to IF3141 Sistem Informasi

Development Methodologies and Software Paradigms

Questions/Cues

  • Apa perbedaan defined process dan empirical process?
  • Kapan defined process tepat digunakan?
  • Mengapa pengembangan sistem cenderung empiris?
  • Apa contoh metodologi defined dan empirical?
  • Apa tiga paradigma software engineering utama?

Reference Points

  • IF3141 Sistem Informasi (Slides 9-12)

Dua Kategori Proses: Defined vs Empirical

Proses pengembangan sistem secara garis besar terbagi menjadi dua kategori: ‘defined’ atau ‘empirical’. Pembedaan ini berakar pada teori pengendalian proses dan menentukan metodologi mana yang paling sesuai untuk konteks proyek tertentu.

Pemilihan kategori bukan soal mana yang “lebih baik” secara mutlak, melainkan soal kesesuaian dengan tingkat ketidakpastian pekerjaan. Semakin pasti dan dipahami sebuah proses, semakin cocok pendekatan defined; semakin kompleks dan tidak terprediksi, semakin perlu pendekatan empirical.

Defined Process

Premis di balik defined process adalah bahwa setiap potongan pekerjaan dapat dipahami sepenuhnya dan bahwa, diberikan sekumpulan input yang terdefinisi dengan baik, output yang sama dihasilkan setiap kali. Proses ini bersifat prediktabel dan repeatable.

Defined process berguna ketika mekanisme yang mendasari operasi proses sudah dipahami dengan cukup baik. Ibarat lini produksi pabrik: bahan baku yang sama menghasilkan produk identik setiap kali.

Metodologi dan framework defined (procedural) yang umum antara lain: SSADM (Structured Systems Analysis and Design Method), Structured Analysis, Structured Design, Yourdon Structured Method, Information Engineering, SADT, SSM (Soft Systems Methodology), Structured Programming, JSP (Jackson Structured Programming), IDEF0, Structured Methods, dan UP (Unified Process).

Empirical Process

Masalah dalam menerapkan defined process pada disiplin pengembangan sistem adalah bahwa defined process berlandaskan premis bahwa produk yang dibangun selalu sama, sehingga prosesnya prediktabel dan repeatable. Pada kenyataannya, pengembangan sistem lebih menyerupai riset dan pengembangan produk baru (research and development), yang lebih bersifat empirical.

Karena itulah muncul tren menuju pengembangan ‘Agile’, yang dibangun di atas model empirical process. Proses yang tidak dapat diulang karena kompleksitas inherennya perlu mengadopsi mekanisme ini — mekanisme berbasis inspeksi dan adaptasi berkala (transparency, inspection, adaptation).

Pendekatan empirical yang umum antara lain: RAD (Rapid Application Development) dan keluarga AgileXP (Extreme Programming), DSDM, Scrum, Adaptive Software Development, Crystal Clear, Lean Systems Development, Test-Driven Development, Feature-Driven Development, Kanban, dan Agile UP.

flowchart TD
    P["Proses Pengembangan"]
    P --> D["Defined<br/>(prediktabel & repeatable)"]
    P --> E["Empirical<br/>(inspeksi & adaptasi)"]
    D --> DM["SSADM, Structured Analysis/Design,<br/>JSP, IDEF0, UP"]
    E --> EM["RAD, Agile:<br/>Scrum, XP, Kanban, TDD, FDD"]

Software Engineering Paradigms

Sejumlah paradigma berbeda — yaitu world views (cara pandang) yang mendasari teori dan metodologi software engineering dan pemrograman — telah berevolusi sejak awal 1960-an, masing-masing mengusulkan pendekatan yang secara radikal berbeda dalam membangun perangkat lunak.

Tiga paradigma paling lazim yang menjadi fondasi pengembangan perangkat lunak modern adalah: Structured Programming (dekomposisi fungsional dengan urutan, seleksi, perulangan), Object-Oriented Programming (pemodelan dunia sebagai objek yang mengenkapsulasi data dan perilaku), dan Service-Oriented Development (sistem disusun dari layanan-layanan otonom yang saling berkomunikasi). Materi ini ditandai untuk dieksplorasi secara mandiri.

[!cornell] Summary

Proses pengembangan sistem terbagi menjadi defined dan empirical. Defined process mengasumsikan pekerjaan dipahami sepenuhnya sehingga input terdefinisi selalu menghasilkan output sama — prediktabel dan repeatable — cocok bila mekanismenya dipahami baik (contoh: SSADM, Structured Methods, UP). Empirical process mengakui bahwa pengembangan sistem mirip R&D yang kompleks dan tak terprediksi, melandasi tren Agile (Scrum, XP, Kanban, TDD, RAD) berbasis inspeksi-adaptasi. Di atas itu berdiri tiga paradigma software engineering sebagai world views: Structured, Object-Oriented, dan Service-Oriented development.