Published on

Software Development Life Cycle -SDLC

Authors

🧭 Prolog

Dalam mengembangkan sebuah aplikasi, terutama pada level industrial atau enterprise, pendekatan yang sistematis dan terdokumentasi dengan baik menjadi kunci keberhasilan. Proses ini tidak hanya dimulai dari sekadar menulis kode, melainkan dari pemahaman mendalam terhadap kebutuhan bisnis (BRS), yang kemudian diterjemahkan menjadi kebutuhan sistem (SRS) lengkap dengan use-case yang rinci.

Selanjutnya, desain sistem dilakukan dalam dua level: High-Level Design (HLD) yang memetakan komponen utama dan hubungan antar modul, serta Low-Level Design (LLD) yang merinci model data, algoritma, hingga skema API. Setelah perancangan matang, proses implementasi dapat dimulai secara terstruktur, disusul oleh fase pengujian, deployment, dan akhirnya maintenance untuk menjamin keberlangsungan dan skalabilitas sistem.

Template ini disusun sebagai pedoman menyeluruh untuk membangun aplikasi dari nol, dan dapat diadaptasi untuk berbagai jenis proyek, mulai dari aplikasi umum hingga sistem teknis kompleks seperti MxCore, IoT-based platform, dan lainnya.

[BRS]
Kebutuhan bisnis
[SRS]
Functional Requirements
Di sinilah use-case dijabarkan
[System Design]
HLD: Komponen sistem
LLD: Data model, algoritma, API schema
[Implementation]
[Testing]
[Deployment]
[Maintenance]

Template ini disusun agar dapat digunakan sebagai pedoman sistematis untuk mengembangkan sebuah aplikasi dari nol, dan dapat disesuaikan untuk proyek industrial atau enterprise (termasuk MxCore atau sistem teknis lainnya).


📘 SDLC Master Template — Rinci dan Struktural


🧩 1. Business Requirement Specification (BRS)

📌 Tujuan: Mendefinisikan masalah bisnis, tujuan strategis, dan nilai yang ingin dicapai oleh aplikasi.

🔹 Struktur Template:

  • Judul Proyek
  • Latar Belakang Masalah
  • Visi dan Tujuan Bisnis
  • Stakeholders dan Peran
  • Kebutuhan Bisnis Tingkat Tinggi
  • Kriteria Keberhasilan Proyek
  • Batasan dan Asumsi
  • Referensi Pendukung

✅ Output:

  • Dokumen BRS final → disetujui oleh tim bisnis & manajemen

🧩 2. Software Requirement Specification (SRS)

📌 Tujuan: Menjabarkan kebutuhan sistem secara teknis berdasarkan BRS

🔹 Struktur Template:

  • Pendahuluan

    • Tujuan dokumen
    • Ruang lingkup
    • Definisi & akronim
  • Gambaran Umum Sistem

  • Functional Requirements (FR-n)

    • FR-01: (contoh: User login with token auth)
    • FR-02: (contoh: Submit predictive maintenance alert)
  • Non-Functional Requirements

    • Availability, Security, Response time, Scalability
  • Use-Case List & Detail

    • Use-case diagram (opsional)

    • Use-case narrative (per skenario)

      • Nama
      • Aktor
      • Deskripsi
      • Trigger
      • Alur utama
      • Alur alternatif
      • Kondisi sukses
      • Catatan khusus
  • Prioritas Pengembangan (MoSCoW)

  • Traceability Matrix (opsional)

✅ Output:

  • Dokumen SRS → dasar pengembangan dan validasi QA

🧩 3. System Design

📌 Tujuan: Menterjemahkan requirement menjadi arsitektur sistem dan desain teknis.


🔷 3.1 High-Level Design (HLD)

Tujuan: Menjabarkan struktur sistem secara modular.

🔹 Struktur Template:

  • Diagram Arsitektur Sistem
  • Modul/Subsystem Overview
  • Komunikasi antar modul
  • External Interfaces
  • Security & Auth Flow
  • Integrasi (internal & eksternal)

🔷 3.2 Low-Level Design (LLD)

Tujuan: Spesifikasi teknis detail dari masing-masing komponen

🔹 Struktur Template:

  • Data Model

    • ERD (Entity-Relationship Diagram)
    • Data Dictionary (field, tipe data, constraints)
  • Algoritma/Flowchart

    • Inference logic, RUL calculation, scoring logic, dst.
  • Schema API (REST/GraphQL)

    • Endpoint: POST /predict
    • Payload: JSON format
    • Response: JSON format
  • Database Design

    • Normalisasi, Indexing, Partitioning
  • Config & Parameter List

✅ Output:

  • Dokumen HLD & LLD + baseline model siap coding

🧩 4. Implementation (Coding)

📌 Tujuan: Penerjemahan desain ke dalam kode sumber

🔹 Struktur Aktivitas:

  • Setup repositori (Git)
  • Coding by module/sprint
  • Kode mengacu pada LLD
  • Versioning dan dokumentasi
  • Code review & integration checklist

✅ Output:

  • Source code versi alpha → siap diuji

🧩 5. Testing

📌 Tujuan: Validasi bahwa sistem bekerja sesuai SRS dan use-case

🔹 Jenis Pengujian:

  • Unit Test: Pengujian fungsi spesifik
  • Integration Test: Antarmuka antar modul
  • System Test: End-to-end dari perspektif use-case
  • User Acceptance Test (UAT): Verifikasi oleh user

🔹 Dokumen Terkait:

  • Test Plan
  • Test Case
  • Bug Log & Traceability

✅ Output:

  • Release Candidate → siap deploy

🧩 6. Deployment

📌 Tujuan: Meluncurkan aplikasi ke lingkungan produksi

🔹 Checklist:

  • Build & CI/CD pipeline
  • Environment setup (Dev, Staging, Prod)
  • Backup & Rollback Plan
  • Dokumen Release Notes
  • Deployment Log

✅ Output:

  • Aplikasi berjalan di production environment

🧩 7. Maintenance & Support

📌 Tujuan: Menjamin kelangsungan layanan, perbaikan bug, dan peningkatan

🔹 Aktivitas:

  • Monitoring performance
  • Patch & bug fix
  • User feedback loop
  • Model retraining (jika AI)
  • Feature improvement roadmap

✅ Output:

  • SLA & KPI pemeliharaan terukur

  • 🔚 Kesimpulan

Template di atas memberikan kerangka lengkap dan runtut dari:

  • 🏢 Kebutuhan bisnis
  • ⚙️ Spesifikasi teknis
  • 🔧 Desain sistem
  • 💻 Implementasi dan pengujian
  • 📦 Deploy dan rawat

📌 Cocok digunakan untuk proyek dengan pendekatan structured (Waterfall) maupun iterative (Agile Hybrid)


🧩 Lampiran

Berikut adalah tabulasi matriks SDLC yang merangkum 7 poin utama dalam proses pengembangan sistem, lengkap dengan deskripsi, pelaku, objek kegiatan, deliverable, dan kolom tambahan relevan:

NoTahapan SDLCDeskripsi KegiatanPelaku (Role)Objek/TargetDeliverable DokumenTools/Metode Umum
1BRS (Business Requirement Specification)Identifikasi kebutuhan bisnis, latar belakang, visi, dan tujuan strategis.Business Analyst, Product OwnerStakeholders bisnis, user level atasDokumen BRSInterview, Workshop, Business Canvas
2SRS (Software Requirement Specification)Menjabarkan kebutuhan sistem secara teknis, termasuk use-case dan requirement detail.System Analyst, Product Owner, QA LeadTim teknis dan QADokumen SRS, Use-case DetailUML, MoSCoW, Use-case Diagram
3System Design (HLD & LLD)Mendesain arsitektur sistem secara modular (HLD) dan detail teknis tiap komponen (LLD).System Architect, Backend LeadModul sistem, interface, data modelDokumen HLD & LLDDraw.io, Lucidchart, ERD tools, Swagger
4ImplementationMenerjemahkan desain ke dalam kode program, sesuai modul & LLD.Developer (Front/Back/Fullstack)Source code modulSource Code, Repo VersioningGit, VSCode, Linter, ESLint, CI/CD Pipeline
5TestingVerifikasi sistem bekerja sesuai requirement, melalui berbagai jenis testing.QA Engineer, Tester, User (UAT)Fitur aplikasi dan logicTest Plan, Test Case, Bug ReportPostman, Jest, Cypress, TestRail
6DeploymentProses build, rilis, dan konfigurasi sistem ke lingkungan produksi.DevOps Engineer, Release ManagerEnvironments (Dev, Staging, Prod)Deployment Log, Release NotesDocker, GitHub Actions, Vercel, PM2
7Maintenance & SupportMonitoring, perbaikan bug, update fitur, dan peningkatan sistem.Support Engineer, Developer, QAProduksi dan user aktifSLA Report, Patch Log, RoadmapGrafana, Sentry, Feedback Tracker

📌 Keterangan Tambahan:

  • Pelaku → Pihak yang aktif melaksanakan kegiatan di tahap tersebut.
  • Objek/Target → Siapa atau apa yang menjadi sasaran aktivitas pada tahap tersebut.
  • Deliverable → Hasil nyata yang harus dihasilkan sebagai bukti tahapan selesai.
  • Tools/Metode Umum → Alat bantu yang umum digunakan untuk mendukung aktivitas di tahap tersebut.

Catatan Penyusunan Artikel ini disusun sebagai materi edukasi dan referensi umum berdasarkan berbagai sumber pustaka, praktik lapangan, serta bantuan alat penulisan. Pembaca disarankan untuk melakukan verifikasi lanjutan dan penyesuaian sesuai dengan kondisi serta kebutuhan masing-masing sistem.