Tuesday, December 10, 2024

EAS - KPPL 2024

 


Soal  Evaluasi Akhir Semester

  1. 1. Dalam Pengembangan Perangkat Lunak ada fase Analisis dan Desain. 
  2.    - Terangkan aktivitas yang dilakukan dalam fase Analisis dan Desain
  3.    - Apa Output dari aktivitas tersebut untuk mendukung pengembangan perangkat lunak.

  4. 2. Dalam model Waterfall, setiap tahap memiliki fungsi spesifik. Jelaskan lima tahap utama dalam model ini, serta sebutkan kelebihan dan kekurangan dari model tersebut dalam konteks proyek besar yang memiliki persyaratan tetap.

  5. 3. Jelaskan perbedaan antara architectural design dan detailed design. Mengapa kedua jenis desain tersebut diperlukan dalam proses pengembangan perangkat lunak?

  6. 4. Studi Kasus
  7. Sebuah perusahaan membutuhkan sistem e-commerce untuk menjual produk digital seperti foto, video, desain poster, ebook. Saat ini transaksi dihandle dengan WhatsApp. Namun seiring dengan perkembangan bisnis tools tersebut tidak mampu menangani lonjakan transaksi. Buatkan sistem / aplikasi yang mampu menangani lonjakan transaksi pada musim tertentu. Jelaskan pendekatan rekayasa perangkat lunak yang akan Anda gunakan untuk merancang, membangun, dan menguji sistem tersebut agar memenuhi kebutuhan klien. (Jawaban tertulis dan terangkan dalam video presentasi yang diupload di Youtube.)

Pengumpulan Jawaban


Absensi

Peserta





Tuesday, November 19, 2024

Design Concepts

Konsep Desain merupakan prinsip dan teknik dasar yang mendasari desain perangkat lunak. Tujuannya adalah untuk menciptakan perangkat lunak yang berkualitas tinggi dengan struktur yang baik, mudah dipahami, dipelihara, dan diperluas.


Komponen Utama Konsep Desain

  1. Abstraction
    Abstraksi adalah pendekatan untuk menyederhanakan masalah yang kompleks dengan fokus pada karakteristik utama.
    • Data abstraction: Menyembunyikan detail implementasi data. Contoh: Tipe data abstrak.
    • Control abstraction: Penyederhanaan aliran kontrol, seperti penggunaan fungsi atau metode.
  2. Architecture
    Arsitektur perangkat lunak adalah kerangka kerja yang mengatur komponen sistem dan hubungan antar komponen.
    • Menggunakan pola arsitektur seperti MVC, Layered Architecture.
    • Fokus pada non-functional requirements seperti kinerja, skalabilitas, dan keamanan.
  3. Patterns
    Pola desain menawarkan solusi reusable untuk masalah umum dalam konteks tertentu.
    • Contoh: Singleton, Factory, Observer.
    • Membantu dalam membuat desain yang lebih terstruktur dan konsisten.
  4. Separation of Concerns (SoC)
    Pembagian sistem menjadi bagian-bagian yang independen berdasarkan fungsi atau tanggung jawabnya.
    • Contoh: Memisahkan logika bisnis, antarmuka pengguna, dan penyimpanan data.
  5. Modularity
    Membagi sistem menjadi modul-modul yang independen dan berfungsi penuh.
    • Modul memiliki low coupling (hubungan antar modul rendah) dan high cohesion (kesatuan dalam modul tinggi).
  6. Information Hiding
    Prinsip menyembunyikan detail implementasi dari modul lain untuk mengurangi ketergantungan.
    • Contoh: Hanya metode yang relevan dari sebuah kelas yang diekspos ke luar.
  7. Functional Independence
    Modul harus berfungsi secara independen tanpa bergantung secara berlebihan pada modul lain.
    • Dicapai dengan high cohesion dan low coupling.
  8. Refinement
    Pendekatan iteratif untuk menyempurnakan desain.
    • Proses berulang dari generalisasi ke spesifikasi.
  9. Aspects
    Identifikasi aspek yang memengaruhi banyak modul (cross-cutting concerns).
    • Contoh: Logging, keamanan, manajemen transaksi.
  10. Design Classes
    Kelas yang dirancang dengan tanggung jawab yang jelas dan tujuan spesifik.
    • Boundary classes: Interaksi dengan antarmuka pengguna.
    • Controller classes: Mengatur logika aplikasi.

Entity classes: Mewakili objek dunia nyata atau abstrak




Analysis Model ke Design Model

Proses transformasi analysis  model ke dalam design model adalah langkah penting untuk menjembatani analisis dan implementasi perangkat lunak. Proses ini melibatkan beberapa tahapan utama untuk memastikan bahwa kebutuhan yang diidentifikasi selama analisis diterjemahkan menjadi representasi desain yang dapat diimplementasikan.

Langkah-langkah yang dilakukan :

1. Understand the Requirements Model

  • Tujuan: Memastikan bahwa kebutuhan yang telah dirinci dalam requirements model dipahami dengan baik.
  • Aktivitas:
    • Meninjau ulang dokumen kebutuhan (requirement specification).
    • Mengidentifikasi elemen penting seperti fitur, fungsi, dan batasan sistem.

2. Choose a Design Strategy

  • Tujuan: Memilih pendekatan desain yang sesuai berdasarkan kebutuhan sistem.
  • Pilihan Strategi:
    • Top-Down Design: Memulai dari abstraksi tingkat tinggi, lalu memecah menjadi komponen yang lebih kecil.
    • Bottom-Up Design: Membangun sistem dari komponen tingkat rendah dan menyusunnya menjadi sistem lengkap.
    • Hybrid Approach: Kombinasi dari kedua pendekatan di atas.

3. Map the Requirements to Design Elements

  • Tujuan: Mentranslasikan elemen dalam requirements model ke komponen desain.
  • Aktivitas:
    • Functional Requirements: Diterjemahkan menjadi modul, fungsi, atau layanan dalam desain.
    • Non-Functional Requirements: Diterjemahkan menjadi atribut sistem seperti kinerja, keamanan, dan skalabilitas.
    • Actors and Use Cases: Diterjemahkan menjadi antarmuka pengguna (user interface) atau interaksi antar modul.

4. Define the System Architecture

  • Tujuan: Merancang struktur sistem tingkat tinggi.
  • Aktivitas:
    • Menentukan pola arsitektur (seperti MVC, Layered Architecture, atau Microservices).
    • Membuat diagram arsitektur yang menunjukkan komponen utama dan hubungan antar komponen.

5. Design Data Structures

  • Tujuan: Merancang struktur data yang digunakan oleh sistem.
  • Aktivitas:
    • Membuat model data (Entity-Relationship Diagram atau Class Diagram).
    • Menentukan format penyimpanan data, skema database, atau API untuk data akses.

6. Develop the Interface Design

  • Tujuan: Merancang interaksi antara pengguna dan sistem serta antar komponen sistem.
  • Aktivitas:
    • Merancang User Interface (antarmuka pengguna) berdasarkan kebutuhan pengguna.
    • Mendefinisikan spesifikasi API untuk komunikasi antar modul.

7. Define Component-Level Design

  • Tujuan: Merinci komponen individual yang membentuk sistem.
  • Aktivitas:
    • Menentukan kelas, metode, dan atribut jika menggunakan paradigma berorientasi objek.
    • Mendesain algoritma untuk operasi atau fungsi spesifik.

8. Evaluate and Refine the Design

  • Tujuan: Memastikan bahwa model desain memenuhi semua kebutuhan dan batasan.
  • Aktivitas:
    • Melakukan tinjauan desain dengan tim pengembang dan pemangku kepentingan.
    • Memperbaiki elemen desain berdasarkan umpan balik.

Dimensi Design Model

Dimensi model desain merujuk pada berbagai aspek atau perspektif dari sistem yang perlu dipertimbangkan selama fase desain dalam rekayasa perangkat lunak. Dimensi-dimensi ini membantu perancang perangkat lunak dalam mengorganisir pendekatan mereka untuk membangun sistem dan memastikan bahwa semua komponen yang relevan telah diperhatikan. Tujuan utamanya adalah untuk menciptakan desain yang komprehensif dan efektif, yang akan memenuhi kebutuhan sistem.

Perbedaan Abstraction Dimension dan Process Dimension

Dimensi

Fokus

Tujuan

Contoh

Abstraction Dimension

Menyembunyikan detail dan kompleksitas implementasi dalam sistem.

Mengurangi kompleksitas dengan menyederhanakan tampilan dan interaksi.

Abstraksi data melalui API, kelas yang menyembunyikan logika rinci.

Process Dimension

Menyusun dan mengelola aktivitas-aktivitas dalam pengembangan perangkat lunak.

Menjamin proses pengembangan perangkat lunak terstruktur dan efisien.

Proses desain, pengujian, dan integrasi.

 




Referensi




Latihan :


  1. Berdasarkan SRS dan Use Case Smart Home pada minggu lalu buatlah Analysis Modelnya.
  2. Analysis Model, Use Case Diagram, Activity Diagram, dan Class Diagram
  3. Lengkapi Analysis Model yang dibuat dengan Behavioral Element.
  4. Pengerjaan bisa secara kelompok, maksimal 2

Absensi




Tuesday, November 12, 2024

Study Kasus - Safe Home

 




Studi Kasus: Aplikasi Safe Home

Latar Belakang

Safe Home adalah sistem otomatisasi rumah yang mengintegrasikan keamanan, pengelolaan energi, dan sistem kenyamanan dalam satu aplikasi. Sistem ini memungkinkan pengguna mengontrol lampu, sistem keamanan, suhu, serta perangkat elektronik lainnya dari jarak jauh melalui perangkat mobile atau komputer. Tantangan dalam pengembangan Safe Home mencakup kebutuhan akan stabilitas, keamanan, dan kemudahan penggunaan untuk para penghuni.

Persyaratan Sistem

  1. Keamanan Pengguna: Sistem harus menyediakan autentikasi dua faktor untuk keamanan akses pengguna.
  2. Kontrol Jarak Jauh: Aplikasi harus mendukung kontrol dari jarak jauh melalui internet.
  3. Sensor Terintegrasi: Sistem terhubung dengan sensor gerak, suhu, dan asap untuk meningkatkan keamanan.
  4. Penyimpanan Data: Data aktivitas dan log akses disimpan secara terpusat dengan enkripsi.
  5. Notifikasi: Sistem harus mengirimkan notifikasi real-time ke perangkat pengguna jika ada aktivitas yang mencurigakan.

Studi Kasus





Referensi




Latihan :


  1. Buatlah SRS dari Video Aplikasi Smart Home di atas
  2. Buat use case diagram untuk Aplikasi Smart Home

Absensi





Tuesday, November 5, 2024

Requirement Modelling

 


Pendahuluan

  • Definisi: Scenario-Based Requirements Modeling adalah teknik pemodelan yang menggunakan skenario (cerita atau narasi) untuk menggambarkan interaksi antara pengguna dan sistem yang akan dikembangkan.
  • Tujuan: Membantu pengembang untuk memahami kebutuhan pengguna dengan cara yang lebih nyata dan mendalam, serta memberikan konteks yang lebih terarah.

Peran Skenario dalam Pemodelan Kebutuhan

  • Skenario sebagai Komunikasi Kebutuhan: Menggambarkan interaksi pengguna yang konkret dan membantu pemangku kepentingan dalam memahami bagaimana sistem akan bekerja dari sudut pandang pengguna.
  • Penghubung antara Stakeholder dan Pengembang: Skenario memungkinkan diskusi dan validasi antara pengguna dan pengembang.
  • Jenis Skenario: Skenario dapat berkisar dari skenario penggunaan sederhana hingga skenario yang lebih kompleks untuk mengakomodasi kasus-kasus khusus.
MODEL REQUIREMENT

Tipe-tipe model requirements dalam requirements modeling berdasarkan berbagai perspektif untuk memahami dan merancang sistem secara menyeluruh:

1. Scenario-Based Models

  • Deskripsi: Scenario-Based Models menggambarkan persyaratan dari sudut pandang aktor atau pengguna sistem, yaitu entitas yang berinteraksi dengan sistem untuk mencapai tujuan tertentu.
  • Contoh: Use Case Diagrams atau skenario pengguna yang menunjukkan bagaimana pengguna akan menggunakan sistem dalam situasi nyata.
  • Tujuan: Untuk memahami kebutuhan dan ekspektasi pengguna secara praktis serta menggambarkan skenario interaksi yang dapat diikuti oleh sistem.

2. Class-Oriented Models

  • Deskripsi: Class-Oriented Models digunakan dalam pemodelan berbasis objek untuk mengidentifikasi dan mengorganisasi kelas-kelas yang diperlukan dalam sistem.
  • Komponen:
    • Kelas: Objek yang memiliki atribut dan operasi (fungsi atau metode) tertentu.
    • Atribut: Properti atau karakteristik dari kelas.
    • Operasi: Fungsi atau perilaku yang dapat dilakukan oleh kelas.
  • Contoh: Diagram kelas dalam Unified Modeling Language (UML) yang menunjukkan hubungan dan kolaborasi antara kelas-kelas.
  • Tujuan: Untuk merancang struktur objek yang akan membentuk sistem, memfasilitasi penggunaan ulang kode, dan memastikan bahwa semua kebutuhan sistem dapat dipenuhi oleh interaksi antar kelas.

3. Behavioral and Patterns-Based Models

  • Deskripsi: Behavioral Models menggambarkan bagaimana perangkat lunak merespons terhadap peristiwa eksternal, seperti aksi pengguna atau sinyal dari sistem lain. Patterns-Based Models menggunakan pola tertentu untuk mengatasi masalah desain yang umum.
  • Contoh: State Diagrams yang menunjukkan transisi kondisi sistem, atau Sequence Diagrams yang menggambarkan urutan interaksi antar objek sebagai respons terhadap suatu peristiwa.
  • Tujuan: Untuk memodelkan perilaku dinamis dari sistem, terutama dalam situasi yang kompleks di mana berbagai elemen sistem bereaksi terhadap banyak stimulus eksternal.

4. Data Models

  • Deskripsi: Data Models memetakan dan menggambarkan struktur informasi yang dikelola oleh sistem. Ini termasuk representasi data dan relasinya dalam sistem.
  • Contoh: Entity-Relationship Diagrams (ERD) atau Data Flow Diagrams (DFD) yang menunjukkan entitas data utama, atributnya, dan hubungan antar entitas.
  • Tujuan: Untuk memastikan bahwa semua informasi yang dibutuhkan oleh sistem tercakup dan terorganisir dengan baik, membantu dalam integritas data, dan mempermudah manajemen informasi.

5. Flow-Oriented Models

  • Deskripsi: Flow-Oriented Models menggambarkan bagaimana data mengalir dan ditransformasikan oleh sistem. Model ini juga memetakan komponen fungsional sistem dan peran mereka dalam memproses data.
  • Contoh: Data Flow Diagrams (DFD) atau diagram Process Flow yang menunjukkan aliran data melalui berbagai proses dalam sistem.
  • Tujuan: Untuk memodelkan proses dan aliran informasi dalam sistem, sehingga memudahkan dalam pemahaman cara data diproses dan dipindahkan antara komponen atau modul yang berbeda.


https://www.slideshare.net/slideshow/requirement-modelling-for-software-engineering-docx/273056018




Referensi


Pressman, Roger.S. "Software Engineering : A Practioner's Approach." 



Latihan :


  1. Buat skenario untuk sistem aplikasi perpustakaan digital
  2. Buat use case diagram untuk sistem perpustakaan digital sesuai dengan skenario yang dibuat

Absensi



Tuesday, October 29, 2024

Memahami Kebutuhan PL

 


Requirement atau kebutuhan perangkat lunak adalah daftar layanan/ fitur kemampuan perangkat lunak yang harus disediakan oleh aplikasi.

Ada beberapa macam requirement (kebutuhan) menurut Sommerville yaitu:
  1. Kebutuhan pengguna (user requirement). Pernyataan tentang layanan yang disediakan sistem dan tentang batasan-batasan operasionalnya. Pernyataan ini dapat dilengkapi dengan gambar/diagram yang dapat dimengerti dengan mudah.
  2. Kebutuhan sistem (system requirement). Sekumpulan layanan/kemampuan sistem dan batasan-batasannya yang ditulis secara detail. System requirement document (dokumen kebutuhan sistem) sering disebut functional specification (spesifikasi fungsional), harus menjelaskan dengan tepat dan detail. Ini bisa berlaku sebagai kontrak antara klien/pemesan sistem dan pembangun perangkat lunak (software).
  3. Spesifikasi rancangan perangkat lunak (software design specification). Gambaran abstrak dari rancangan perangkat lunak yang menjadi dasar bagi perancangan dan implementasi yang lebih detail. 
Tipe-tipe Requirement
  • Functional Requirements: Fitur dan layanan yang harus disediakan sistem untuk memenuhi tujuan.
  • Non-Functional Requirements: Aturan atau batasan yang mempengaruhi bagaimana sistem harus beroperasi, termasuk keandalan, keamanan, kinerja, dan lain-lain.
  • Domain Requirements: Spesifikasi kebutuhan khusus yang berasal dari domain sistem.

Proses Requirement Engineering
  • Requirement Elicitation: Proses pengumpulan informasi dari berbagai pemangku kepentingan.
  • Requirement Analysis: Menganalisis data yang dikumpulkan untuk menemukan ketidakjelasan atau konflik dalam kebutuhan.
  • Requirement Specification: Mendokumentasikan requirement secara formal agar mudah dimengerti oleh semua pemangku kepentingan.
  • Requirement Validation: Verifikasi bahwa requirement yang telah didokumentasikan sesuai dengan kebutuhan pengguna.

Teknik Elicitation Requirement
  • Wawancara: Berbagai jenis wawancara untuk mendalami kebutuhan pengguna.
  • Observasi: Pengamatan langsung terhadap cara kerja atau interaksi pengguna.
  • Workshops dan Focus Groups: Diskusi intensif bersama pengguna dan pemangku kepentingan.
  • Survei dan Kuesioner: Teknik untuk menjangkau pengguna dalam skala yang lebih luas.

Tools dan Metode dalam Requirement Engineering
  • Penggunaan tools seperti Use Case Diagrams, User Stories, dan Context Diagrams.
  • Pengenalan metode seperti QFD (Quality Function Deployment) dan Persona Development untuk mendalami user needs.

Referensi


Pressman, Roger.S. "Software Engineering : A Practioner's Approach." 


Latihan


Deskripsi Kasus

PT. Travelo adalah perusahaan yang bergerak di bidang perjalanan dan pariwisata. Untuk meningkatkan pelayanannya, perusahaan ini ingin mengembangkan sistem pemesanan tiket secara online, yang mencakup pemesanan tiket pesawat, kereta api, dan hotel. Mereka ingin sistem ini mudah digunakan, aman, dan dapat diakses di perangkat mobile. Sebagai seorang analis sistem, Anda bertanggung jawab dalam tahap requirement untuk mengidentifikasi kebutuhan dari sistem ini.

Permintaan dan Ekspektasi dari Pemangku Kepentingan:
  1. Pengguna (Traveler) menginginkan antarmuka yang mudah digunakan, dapat mencari tiket dengan berbagai filter, dan melakukan pembayaran dengan aman.
  2. Administrator Sistem membutuhkan akses untuk mengelola data penerbangan, perjalanan kereta, dan hotel serta memantau transaksi.
  3. Tim Manajemen ingin laporan penjualan secara real-time dan data statistik untuk keperluan pengambilan keputusan.
  4. Departemen Keamanan IT menginginkan fitur keamanan tambahan, termasuk enkripsi data dan otentikasi ganda untuk pembayaran.
Tugas: Identifikasi Requirement
  1. Identifikasi Functional Requirements (Fungsional)
  2. Identifikasi Non-Functional Requirements (Non-Fungsional)
  3. Dokumentasikan requirement tersebut

Absensi





Tuesday, October 15, 2024

Aspek manusia dalam Software Engineering

 

Peran Manusia

Dalam rekayasa perangkat lunak, ada berbagai profesi atau peran yang terlibat di sepanjang siklus pengembangan perangkat lunak. Setiap peran memiliki tugas dan tanggung jawab spesifik untuk memastikan bahwa perangkat lunak dikembangkan secara efektif dan sesuai dengan kebutuhan pengguna. Berikut adalah beberapa peran utama dalam software engineering beserta tugas dan tanggung jawabnya:

1. Software Engineer / Software Developer

Tugas dan Tanggung Jawab:

  • Merancang, mengembangkan, menguji, dan memelihara perangkat lunak.
  • Menerjemahkan kebutuhan pengguna atau klien menjadi solusi teknis.
  • Menulis kode dan mendokumentasikan pengembangan perangkat lunak.
  • Bekerja sama dengan tim untuk memperbaiki bug dan mengoptimalkan perangkat lunak.

2. Project Manager

Tugas dan Tanggung Jawab:

  • Memimpin dan mengelola proyek pengembangan perangkat lunak dari awal hingga akhir.
  • Menyusun rencana proyek, menetapkan jadwal, dan mengelola sumber daya.
  • Berkomunikasi dengan pemangku kepentingan, tim, dan klien untuk memastikan bahwa proyek berjalan sesuai jadwal dan anggaran.
  • Menyelesaikan masalah dan kendala proyek serta memastikan kualitas akhir perangkat lunak.

3. Business Analyst

Tugas dan Tanggung Jawab:

  • Mengidentifikasi dan menganalisis kebutuhan bisnis serta mentranslasikan kebutuhan ini ke dalam spesifikasi teknis yang akan digunakan oleh tim pengembang.
  • Berperan sebagai penghubung antara pemangku kepentingan bisnis dan tim teknis.
  • Memastikan solusi perangkat lunak memenuhi kebutuhan bisnis dan memberikan nilai tambah.

4. Quality Assurance (QA) Engineer

Tugas dan Tanggung Jawab:

  • Merancang dan menjalankan pengujian perangkat lunak untuk memastikan kualitas dan keandalannya.
  • Menemukan, mendokumentasikan, dan melaporkan bug atau masalah dalam perangkat lunak.
  • Bekerja sama dengan pengembang untuk memastikan masalah yang ditemukan dapat diperbaiki sebelum produk diluncurkan.
  • Membuat dan menjaga dokumentasi pengujian.

5. UI/UX Designer

Tugas dan Tanggung Jawab:

  • Merancang antarmuka pengguna (User Interface, UI) yang mudah digunakan dan menarik secara visual.
  • Memastikan bahwa pengalaman pengguna (User Experience, UX) optimal, dengan mempertimbangkan kebutuhan dan perilaku pengguna.
  • Membuat prototipe dan wireframe untuk menunjukkan bagaimana perangkat lunak akan terlihat dan berfungsi.
  • Bekerja sama dengan pengembang untuk mengimplementasikan desain secara teknis.

6. System Architect

Tugas dan Tanggung Jawab:

  • Merancang arsitektur perangkat lunak, yaitu struktur teknis keseluruhan dari sistem.
  • Membuat keputusan teknis kritis, seperti memilih teknologi, alat, dan framework yang tepat untuk proyek.
  • Menjaga agar perangkat lunak yang dikembangkan bersifat scalable, maintainable, dan sesuai dengan standar.
  • Mengelola komunikasi antara berbagai komponen sistem.

7. DevOps Engineer

Tugas dan Tanggung Jawab:

  • Mengelola integrasi dan pengiriman perangkat lunak secara berkelanjutan (Continuous Integration and Continuous Delivery, CI/CD).
  • Mengotomatisasi proses pengembangan, pengujian, dan deployment perangkat lunak.
  • Memantau kinerja infrastruktur dan memastikan perangkat lunak berfungsi dengan baik di lingkungan produksi.
  • Mengelola keamanan, skalabilitas, dan reliabilitas sistem.

8. Database Administrator (DBA)

Tugas dan Tanggung Jawab:

  • Mendesain, mengelola, dan memelihara basis data yang digunakan oleh perangkat lunak.
  • Memastikan data disimpan dengan aman dan dapat diakses dengan cepat dan efisien.
  • Melakukan backup dan recovery data untuk mencegah kehilangan data.
  • Mengoptimalkan performa basis data dan mengatasi masalah terkait.

9. Security Engineer

Tugas dan Tanggung Jawab:

  • Memastikan bahwa perangkat lunak aman dari ancaman dan kerentanan keamanan.
  • Melakukan audit keamanan, mengidentifikasi risiko, dan merancang mekanisme untuk melindungi perangkat lunak dan data.
  • Mengimplementasikan enkripsi, autentikasi, dan kontrol akses untuk melindungi informasi sensitif.
  • Berkolaborasi dengan tim pengembangan untuk mengatasi masalah keamanan yang ditemukan.

10. Scrum Master / Agile Coach

Tugas dan Tanggung Jawab:

  • Memfasilitasi tim pengembang dalam metodologi Agile, seperti Scrum.
  • Mengadakan pertemuan harian (daily stand-up) dan memastikan bahwa tim tetap fokus pada tujuan sprint.
  • Membantu menghilangkan hambatan yang dihadapi tim dalam pengembangan.
  • Menjaga alur kerja Agile dan mendorong perbaikan terus-menerus.

11. Product Manager

Tugas dan Tanggung Jawab:

  • Mengembangkan visi dan strategi produk berdasarkan kebutuhan pasar dan pengguna.
  • Mengelola roadmap produk, merencanakan fitur, dan prioritas pengembangan.
  • Berkomunikasi dengan klien dan tim pengembang untuk memastikan produk sesuai dengan harapan.
  • Mengumpulkan umpan balik dari pengguna dan pemangku kepentingan untuk peningkatan produk di masa depan.

12. Technical Writer

Tugas dan Tanggung Jawab:

  • Menulis dokumentasi teknis yang mudah dipahami untuk pengguna dan pengembang, seperti manual penggunaan, panduan instalasi, dan API documentation.
  • Berkolaborasi dengan tim pengembangan untuk memastikan dokumentasi yang dibuat akurat dan up-to-date.
  • Mengkomunikasikan informasi teknis dengan cara yang jelas kepada audiens non-teknis.


Aspek Manusia

Aspek manusia dalam rekayasa perangkat lunak (Human Aspects of Software Engineering) berfokus pada bagaimana faktor manusia mempengaruhi pengembangan perangkat lunak, termasuk bagaimana tim berinteraksi, pengambilan keputusan, produktivitas, dan kepuasan pengguna akhir.

Berikut adalah beberapa elemen penting dari aspek manusia dalam rekayasa perangkat lunak:

1. Komunikasi dalam Tim

Tim pengembang perangkat lunak terdiri dari orang-orang dengan latar belakang yang berbeda, sehingga komunikasi yang baik sangat penting. Misalnya, antara pengembang, manajer proyek, dan pemangku kepentingan bisnis. Kesalahpahaman atau kurangnya komunikasi dapat mengarah pada kegagalan proyek.

Contoh: Jika seorang pengembang salah mengerti kebutuhan pengguna yang disampaikan oleh manajer proyek, produk akhir mungkin tidak memenuhi harapan.

2. Kolaborasi dan Dinamika Tim

Pengembangan perangkat lunak biasanya dilakukan oleh tim. Maka, penting untuk memahami bagaimana orang bekerja sama, menangani konflik, serta membangun kepercayaan dan saling menghargai dalam tim.

Contoh: Agile dan Scrum adalah metodologi yang mendorong kolaborasi melalui pertemuan harian, feedback rutin, dan iterasi.

3. Motivasi dan Produktivitas

Motivasi anggota tim sangat mempengaruhi kualitas dan produktivitas mereka. Memahami faktor-faktor yang memotivasi pengembang, seperti lingkungan kerja yang mendukung, kompensasi, atau peluang pengembangan diri, dapat meningkatkan hasil proyek.

Contoh: Pengembang yang bekerja di lingkungan kerja yang fleksibel dengan tujuan yang jelas akan lebih termotivasi untuk menyelesaikan proyek tepat waktu.

4. Pengambilan Keputusan

Pengambilan keputusan dalam tim pengembang harus mempertimbangkan berbagai perspektif, termasuk teknis, bisnis, dan pengguna akhir. Pengembang juga perlu memahami batasan teknologi dan preferensi pengguna untuk membuat keputusan yang tepat.

Contoh: Memilih bahasa pemrograman yang tepat berdasarkan kemampuan tim dan kebutuhan proyek merupakan keputusan kritis dalam pengembangan perangkat lunak.

5. Ergonomi dan Kesehatan Pengembang

Pengembangan perangkat lunak adalah aktivitas yang intensif secara mental dan fisik. Faktor seperti postur tubuh saat bekerja, durasi waktu duduk di depan komputer, dan pengelolaan stres perlu diperhatikan untuk menjaga kesehatan pengembang.

6. Pengalaman Pengguna (User Experience)

Salah satu faktor terpenting dalam rekayasa perangkat lunak adalah kepuasan pengguna akhir. Pengembang perlu memahami cara pengguna berinteraksi dengan perangkat lunak, kebiasaan mereka, dan apa yang mereka inginkan dari sebuah aplikasi.

Contoh: Aplikasi yang user-friendly, dengan navigasi yang intuitif dan performa yang baik, meningkatkan kepuasan pengguna.

7. Manajemen Konflik

Ketika bekerja dalam tim yang beragam, konflik tidak dapat dihindari. Oleh karena itu, penting untuk memiliki keterampilan manajemen konflik untuk mengatasi perbedaan pendapat dengan cara yang produktif.

8. Pelatihan dan Pengembangan

Dunia teknologi selalu berkembang, sehingga pelatihan dan pengembangan anggota tim pengembang perangkat lunak perlu diperhatikan agar mereka dapat terus beradaptasi dengan teknologi baru.


Template yang Digunakan Project Manager

a. Project Charter

  • Fungsi: Dokumen awal yang menjelaskan tujuan proyek, pemangku kepentingan, ruang lingkup, anggaran, dan jadwal. Template ini memberikan panduan jelas tentang apa yang akan dicapai dalam proyek.
  • Kandungan Utama:
    • Tujuan proyek.
    • Ruang lingkup proyek.
    • Pemangku kepentingan.
    • Sumber daya yang dibutuhkan.
    • Risiko awal dan rencana mitigasi.
    • Anggaran dan jadwal tinggi.

b. Work Breakdown Structure (WBS)

  • Fungsi: WBS membagi pekerjaan proyek menjadi tugas-tugas yang lebih kecil dan lebih mudah dikelola. Ini membantu project manager untuk mengidentifikasi semua aktivitas yang diperlukan untuk menyelesaikan proyek.
  • Kandungan Utama:
    • Struktur tugas secara hierarki.
    • Identifikasi tugas, sub-tugas, dan durasi.
    • Alokasi sumber daya.

c. Gantt Chart

  • Fungsi: Gantt Chart adalah template visual yang digunakan untuk menjadwalkan tugas proyek dan menunjukkan hubungan antara tugas serta batas waktu.
  • Kandungan Utama:
    • Waktu mulai dan berakhir setiap tugas.
    • Tugas yang saling bergantung.
    • Jalur kritis proyek (critical path).

d. Risk Management Plan

  • Fungsi: Rencana ini digunakan untuk mengidentifikasi risiko potensial dalam proyek, menilai dampaknya, dan merencanakan respons untuk mengurangi risiko tersebut.
  • Kandungan Utama:
    • Identifikasi risiko.
    • Analisis dampak risiko.
    • Rencana mitigasi.
    • Pemantauan dan pelaporan risiko.

e. Status Report Template

  • Fungsi: Template ini digunakan untuk melaporkan status proyek secara berkala kepada pemangku kepentingan. Memberikan gambaran umum tentang kemajuan, masalah, dan risiko yang sedang dihadapi.
  • Kandungan Utama:
    • Pencapaian minggu ini.
    • Tugas yang tertunda.
    • Masalah yang muncul dan resolusi.
    • Risiko yang muncul.
    • Tindakan yang akan dilakukan minggu depan.

f. Budget Tracking Template

  • Fungsi: Template ini digunakan untuk melacak pengeluaran proyek terhadap anggaran yang direncanakan. Memastikan bahwa proyek tetap dalam batas biaya yang telah disetujui.
  • Kandungan Utama:
    • Anggaran yang dialokasikan.
    • Pengeluaran aktual.
    • Perbandingan anggaran dan pengeluaran.





Absen