Pertemuan 2

Nama: Amelia Nova Safitri

NRP: 5025231041


Pertemuan 2 KPPL (E)

Untuk menjadi Software Engineer, ada beberapa langkah yang perlu dipahami, yaitu:


1. Menguasai Tools Software engineering 

    Beberapa tools standar yang perlu dikuasai antara lain:

  • Command Line Interface (CLI): Cara berinteraksi dengan sistem operasi dan sistem file melalui perintah berbasis teks.
  • Text Editor: Menulis kode menggunakan text editor.
  • Integrated Development Environment (IDE): IDE sederhananya adalah teks editor yang lebih canggih untuk mengerjakan priyek skala besar dan kompleks.
  • Git: Git merupakan version control system yang umum digunakan.
  • GitHub: Media sosialnya para software engineer.
    Contoh: 
    Misalnya, kamu bekerja di proyek tim dan butuh mengelola versi kode. Kamu bisa gunakan Git untuk commit perubahan yang kamu buat, dan push ke repository GitHub. Ini membantu semua anggota tim untuk melihat perubahan terbaru dan berkolaborasi tanpa konflik kode.

2. Menguasai metodologi (Methods) yang paling banyak digunakan oleh software engineering

   Ada setidaknya enam metode yang digunakan untuk mengembangkan perangkat lunak:

  • Waterfall: Metode tradisional yang menggunakan pendekatan berurutan, di mana setiap tahap pengembangan harus diselesaikan sebelum tahap berikutnya dimulai.
  • Prototype: Melibatkan pembuatan model awal dari perangkat lunak yang digunakan untuk mengumpulkan feedback dari pengguna sebelum versi akhir dikembangkan.
  • Spiral: Metode iteratif yang menggabungkan elemen dari Waterfall dan Prototype. Setiap "lingkaran" dalam spiral melibatkan empat fase: perencanaan, analisis risiko, pengembangan dan pengujian, serta evaluasi.
  • RAD (Rapid Application Development): Menekankan pada pengembangan yang cepat melalui penggunaan prototipe, alur kerja pendek, dan feedback berkelanjutan dari pengguna. Fokusnya adalah pada pengiriman produk dalam waktu singkat.
  • Agile: Sebuah metodologi yang menekankan iterasi dan kolaborasi tim.
  • Scrum: Kerangka kerja yang digunakan dalam Agile untuk mengelola dan mengontrol pengembangan perangkat lunak.
    Contoh:
    Misalnya, dalam pengembangan aplikasi mobile, tim kamu bekerja dalam sprint 2 minggu. Setiap 2 minggu, kamu merilis versi baru aplikasi yang sudah diuji dan diperbaiki berdasarkan feedback pengguna. Tim selalu berkolaborasi secara erat, sehingga produk bisa terus berkembang dan disesuaikan dengan kebutuhan pengguna.

3. Proses

    Secara sederhana, proses Software Engineering antara lain:

  • Spesification (Spesifikasi): Dalam tahap ini, software engineer membuat gambaran lengkap tentang perangkat lunak yang akan dikembangkan. Spesifikasi ini dibuat berdasarkan kebutuhan fungsional (apa yang harus dilakukan) dan non-fungsional (seperti kecepatan, keamanan, dan stabilitas).
  • Development (Pengembangan): Pengembangan adalah proses di mana software engineer mulai mendesain, menulis kode, mendokumentasikan, menguji, dan memperbaiki bug dalam perangkat lunak. Semua ini dilakukan sesuai dengan spesifikasi yang sudah ditetapkan sebelumnya.
  • Validation (Validasi): Validasi adalah tahap di mana perangkat lunak diuji untuk memastikan bahwa fungsinya sesuai dengan yang diharapkan, memenuhi standar kualitas, dan sesuai dengan keinginan pengguna.
  • Evolution (Evolusi): Setelah perangkat lunak selesai dibuat, pekerjaan tidak berhenti di situ. Software engineer perlu terus memperbarui dan meningkatkan perangkat lunak untuk mengikuti kebutuhan pengguna yang terus berubah.
       Contoh:
    Misalnya, setelah menyelesaikan pengembangan fitur baru untuk aplikasi web, kamu melakukan pengujian dengan skenario pengguna yang berbeda untuk memastikan fitur tersebut berfungsi dengan benar. Jika ada bug atau masalah yang muncul, kamu segera memperbaikinya sebelum fitur dirilis ke publik.

4. Quality

    Kualitas perangkat lunak adalah aspek penting yang menentukan seberapa baik perangkat lunak memenuhi kebutuhan pengguna dan bertahan dalam jangka panjang. Berikut adalah beberapa faktor utama yang menentukan kualitas perangkat lunak:

  • Maintainability – software harus dapat dikembangkan untuk memenuhi kebutuhan yang terus berubah.
  • Efficiency – software tidak boleh menggunakan perangkat komputasi yang boros, seperti memori dan processor cycle.
  • Correctness – produk software harus memenuhi persyaratan yang sudah ditentukan di dokumen software requirements specification (SRS) dan diimplementasikan dengan benar.
  • Reusability – software memiliki reusability yang baik jika modul produk bisa digunakan kembali untuk mengembangkan produk baru.
  • Testability – software bisa digunakan untuk menetapkan kriteria pengujian dan mengevaluasi perangkat lunak sesuai dengan kriteria yang sudah ditetapkan.
  • Reliability – berkaitan dengan sejauh mana suatu program bisa melakukan fungsi sesuai keinginan dalam periode waktu yang berubah-ubah.
  • Portability – software dapat ditransfer dari satu sistem komputer ke lainnya.
  • Adaptability – software memungkinkan untuk menjalankan sistem sesuai kebutuhan pengguna.
  • Interoperability – kemampuan dua atau lebih functional unit untuk memproses data secara bersamaan.
    Contoh:
    Misalnya, kamu mengembangkan sistem pembayaran online. Kualitas reliabilitas sangat penting karena sistem ini harus selalu siap melayani transaksi kapan pun tanpa error. Kamu melakukan pengujian stres dan memastikan server mampu menangani volume transaksi yang tinggi, sehingga pengguna bisa merasa aman dan nyaman saat bertransaksi.


Referensi

Bahan kuliah

Komentar

Postingan populer dari blog ini

Pertemuan 7