Bab 14 : Software Engineering Professional Practice

Nama     : Mutia Ardelia Rokhima

NIM       : 240605110075

Bab 14 : Software Engineering Professional Practice

Bagian 1 : Etika dan Standar dalam Rekayasa Perangkat Lunak

A.    Kode etik dan tanggung jawab profesional

1.     Pentingnya kode etik dalam profesi rekayasa perangkat lunak

Kode etik memiliki peran penting dalam profesi rekayasa perangkat lunak karena menjadi pedoman bagi para profesional untuk bertindak secara jujur, bertanggung jawab, dan profesional dalam menjalankan pekerjaannya. Dengan adanya kode etik, pengembang dapat memastikan bahwa perangkat lunak yang dibuat aman, berkualitas, dan tidak merugikan pengguna maupun masyarakat. Selain itu, penerapan kode etik juga membantu meningkatkan kepercayaan publik terhadap profesi rekayasa perangkat lunak serta mendorong terciptanya praktik kerja yang sesuai dengan nilai-nilai profesional.

2.     Tiga prinsip utama dalam Software Engineering Code of Ethics and Professional Practice yang dikeluarkan oleh IEEE/ACM.

1.     Public Interest

Prinsip Public Interest menegaskan bahwa seorang insinyur perangkat lunak harus mengutamakan kepentingan dan kesejahteraan masyarakat dalam setiap aktivitas pengembangan sistem. Oleh karena itu, perangkat lunak yang dibuat harus aman, andal, serta tidak menimbulkan dampak yang merugikan bagi pengguna maupun publik.

2.     Client and Employer

Prinsip Client and Employer mengharuskan insinyur perangkat lunak untuk bekerja sesuai kepentingan klien dan organisasi tempatnya bekerja. Dalam menjalankan tugasnya, mereka harus menjaga kerahasiaan informasi, bersikap jujur, serta menunjukkan profesionalisme agar kepercayaan yang diberikan tetap terjaga.

3.     Professionalism

Prinsip Professionalism menekankan pentingnya menjaga integritas, kompetensi, dan citra profesi rekayasa perangkat lunak. Seorang profesional dituntut untuk bertindak secara bertanggung jawab, terus meningkatkan kemampuan, serta mematuhi standar etika dan profesional yang berlaku

3.     Berdasarkan studi kasus Seorang Pengembang Perangkat Lunak Menemukan Celah Keamanan dalam Sistem Perbankan yang Dikembangkannya

Prinsip Etika

Deskripsi

Penerapan dalam Studi Kasus

Public Interest

Mengutamakan keselamatan dan kepentingan masyarakat dalam pengembangan perangkat lunak.

Pengembang segera melaporkan celah keamanan agar data dan transaksi nasabah tidak terancam.

Client and Employer

Bertindak demi kepentingan klien dan perusahaan dengan tetap menjaga kerahasiaan informasi.

Pengembang menyampaikan temuan kerentanan kepada pihak perusahaan tanpa membocorkannya kepada pihak lain.

Professionalism

Menjaga integritas dan tanggung jawab profesional dalam bekerja.

Pengembang memperbaiki celah keamanan sesuai standar profesional dan melakukan pengujian ulang sebelum sistem digunakan.

 

B.    Hukum dan regulasi dalam rekayasa perangkat lunak

1.     Jelaskan mengapa aspek hukum penting dalam rekayasa perangkat lunak.

Aspek hukum memiliki peran yang sangat penting dalam rekayasa perangkat lunak karena memastikan bahwa proses pengembangan dan penggunaan perangkat lunak dilakukan sesuai dengan ketentuan yang berlaku. Kepatuhan terhadap aspek hukum membantu melindungi hak-hak pengguna, menjaga kerahasiaan serta keamanan data pribadi, dan mencegah terjadinya pelanggaran yang dapat menimbulkan sanksi hukum maupun kerugian bagi pengembang dan organisasi. Selain itu, penerapan aspek hukum juga mendukung terciptanya perangkat lunak yang aman, bertanggung jawab, dan sesuai dengan standar yang ditetapkan.

2.     Tiga regulasi atau undang-undang yang berkaitan dengan perangkat lunak dan data.

a.     General Data Protection Regulation (GDPR)

GDPR merupakan peraturan perlindungan data yang berlaku di Uni Eropa dan bertujuan untuk menjaga keamanan data pribadi pengguna. Regulasi ini juga memberikan hak kepada individu untuk mengontrol penggunaan dan pengelolaan data pribadi mereka.

b.     Digital Millennium Copyright Act (DMCA)

DMCA adalah undang-undang yang mengatur perlindungan hak cipta dalam lingkungan digital. Regulasi ini bertujuan untuk mencegah pelanggaran hak kekayaan intelektual serta melindungi karya digital dari penggunaan tanpa izin.

c.     Undang-Undang Perlindungan Data Pribadi (PDP)

Undang-Undang PDP merupakan regulasi di Indonesia yang mengatur tata cara pengumpulan, penggunaan, penyimpanan, dan perlindungan data pribadi. Tujuannya adalah untuk mencegah penyalahgunaan data serta menjamin hak privasi setiap individu.

3.     Lengkapi tabel berikut dengan tujuan dan dampak dari masing-masing regulasi.

Regulasi

Tujuan

Dampak pada Perangkat Lunak

GDPR

Melindungi data pribadi dan hak privasi pengguna.

Perangkat lunak harus menerapkan perlindungan data dan memperoleh persetujuan pengguna sebelum mengumpulkan data.

DMCA

Melindungi hak cipta dan kekayaan intelektual digital.

Pengembang harus menghormati hak cipta dan menghindari penggunaan konten tanpa izin.

PDP

Mengatur perlindungan dan pengelolaan data pribadi pengguna.

Sistem harus menerapkan mekanisme keamanan dan pengelolaan data yang sesuai dengan peraturan yang berlaku.

4.     Berdasarkan studi kasus tersebut, aplikasi e-commerce telah melanggar General Data Protection Regulation (GDPR) dan Undang-Undang Perlindungan Data Pribadi (PDP) karena melakukan pengumpulan serta pemrosesan data pribadi pengguna tanpa memperoleh persetujuan yang sah terlebih dahulu. Tindakan tersebut bertentangan dengan prinsip perlindungan data yang mewajibkan adanya transparansi dan persetujuan dari pemilik data.

Sebagai langkah korektif, perusahaan harus memastikan bahwa setiap pengumpulan dan pemrosesan data dilakukan setelah mendapatkan persetujuan pengguna. Selain itu, perusahaan perlu menyediakan kebijakan privasi yang jelas dan mudah dipahami, membatasi pengumpulan data hanya pada informasi yang benar-benar diperlukan, serta meningkatkan sistem keamanan untuk melindungi data dari risiko kebocoran atau penyalahgunaan. Pengguna juga harus diberikan hak untuk mengakses, memperbarui, maupun menghapus data pribadi mereka. Dengan menerapkan langkah-langkah tersebut, sistem pengelolaan data dapat berjalan sesuai dengan ketentuan GDPR dan PDP yang berlaku.

Bagian 2 : Standar Industri dalam Rekayasa Perangkat Lunak

A.    Standar dan Sertifikasi dalam Rekayasa Perangkat Lunak

1.     Pentingnya standar dalam rekayasa perangkat lunak

Standar dalam rekayasa perangkat lunak berperan sebagai pedoman untuk memastikan proses pengembangan dilakukan secara terstruktur dan menghasilkan perangkat lunak yang berkualitas. Penerapan standar membantu pengembang memenuhi kebutuhan pengguna, menerapkan praktik terbaik industri, serta menjaga konsistensi kualitas produk. Selain itu, standar juga mendukung efisiensi kerja, mempermudah pengelolaan proyek, dan meningkatkan kepercayaan pengguna maupun pelanggan terhadap perangkat lunak yang dihasilkan

2.     Tiga standar industri yang umum digunakan dalam pengembangan perangkat lunak

a.     ISO 25010 (Software Quality)

ISO 25010 merupakan standar kualitas perangkat lunak yang digunakan untuk mengevaluasi karakteristik kualitas seperti keandalan, keamanan, performa, dan maintainability.

b.     CMMI (Capability Maturity Model Integration)

CMMI merupakan kerangka kerja yang digunakan untuk meningkatkan kematangan proses pengembangan perangkat lunak sehingga kualitas produk dan proses dapat ditingkatkan secara berkelanjutan.

c.     IEEE 12207 (Software Life Cycle Processes)

IEEE 12207 merupakan standar yang mendefinisikan proses-proses dalam siklus hidup perangkat lunak, mulai dari perencanaan, pengembangan, pengujian, hingga pemeliharaan.

3.     Lengkapi tabel berikut dengan manfaat dan penerapan dari masing-masing standar

Standar Industri

Manfaat

Contoh Penerapan

ISO 25010

Membantu mengevaluasi dan meningkatkan kualitas perangkat lunak.

Pengujian kualitas aplikasi mobile berdasarkan aspek reliability, security, dan performance.

CMMI

Meningkatkan kematangan dan konsistensi proses pengembangan perangkat lunak.

Perusahaan perangkat lunak menerapkan prosedur pengembangan yang terstandarisasi.

IEEE 12207

Memberikan pedoman proses siklus hidup perangkat lunak yang terstruktur.

Pengelolaan proyek perangkat lunak mulai dari analisis kebutuhan hingga pemeliharaan sistem.

 

4.     Berdasarkan studi kasus Perusahaan Startup yang Ingin Meningkatkan Kualitas Produk Perangkat Lunaknya, pilih standar yang paling sesuai dan jelaskan alasannya.

Standar yang paling sesuai untuk perusahaan startup yang ingin meningkatkan kualitas produk perangkat lunaknya adalah ISO 25010. Standar ini menyediakan kriteria kualitas yang jelas untuk mengevaluasi perangkat lunak berdasarkan berbagai aspek penting, seperti keamanan, performa, keandalan, dan kemudahan pemeliharaan. Dengan menerapkan ISO 25010, perusahaan dapat lebih mudah mengidentifikasi bagian sistem yang perlu ditingkatkan serta memastikan bahwa produk yang dikembangkan mampu memenuhi kebutuhan dan harapan pengguna secara lebih optimal.

B.    Sertifikasi Profesional dalam Rekayasa Perangkat Lunak

1.     Jelaskan mengapa sertifikasi profesional penting dalam industri perangkat lunak.

Sertifikasi profesional memiliki peran penting dalam industri perangkat lunak karena menjadi bukti bahwa seseorang memiliki pengetahuan, keterampilan, dan kompetensi yang sesuai dengan standar yang diakui. Kepemilikan sertifikasi dapat meningkatkan kredibilitas profesional, memperkuat kepercayaan perusahaan terhadap kemampuan seseorang, serta membuka peluang karier yang lebih luas. Selain itu, sertifikasi juga menunjukkan komitmen individu untuk terus mengembangkan kemampuan dan mengikuti perkembangan teknologi di bidang perangkat lunak.

2.     Sebutkan tiga sertifikasi yang diakui secara global dalam rekayasa perangkat lunak.

a.     Certified Software Development Professional (CSDP)

CSDP merupakan sertifikasi yang dirancang untuk mengukur kompetensi profesional dalam bidang pengembangan perangkat lunak. Sertifikasi ini menunjukkan bahwa pemegangnya memahami prinsip, metode, dan standar yang digunakan dalam rekayasa perangkat lunak secara profesional.

b.     AWS Certified Solutions Architect

AWS Certified Solutions Architect adalah sertifikasi yang berfokus pada kemampuan merancang, mengimplementasikan, dan mengelola solusi berbasis cloud menggunakan layanan Amazon Web Services (AWS). Sertifikasi ini banyak diakui dalam industri karena relevan dengan kebutuhan teknologi cloud yang terus berkembang.

c.     Scrum Master Certification

Scrum Master Certification merupakan sertifikasi yang membuktikan kemampuan seseorang dalam menerapkan kerangka kerja Agile Scrum. Pemegang sertifikasi ini memiliki pemahaman tentang cara mengelola tim, memfasilitasi proses pengembangan, dan meningkatkan efektivitas kerja dalam proyek perangkat lunak berbasis Agile.

3.     Lengkapi tabel berikut dengan manfaat dari masing-masing sertifikasi.

Sertifikasi

Bidang Keahlian

Manfaat

CSDP

Rekayasa Perangkat Lunak

Membuktikan kompetensi profesional dalam pengembangan perangkat lunak dan meningkatkan kredibilitas di industri.

AWS Certified Solutions Architect

Cloud Computing dan Arsitektur Sistem

Membantu merancang solusi cloud yang andal serta meningkatkan peluang karier di bidang cloud computing.

Scrum Master Certification

Agile Project Management

Meningkatkan kemampuan dalam mengelola tim Agile dan mendukung pengembangan perangkat lunak yang lebih efektif.

 

Bagian 3:  Komunikasi dan Kerja Tim dalam Rekayasa Perangkat Lunak

A.    Teknik Komunikasi Efektif dalam Pengembangan Perangkat Lunak

1.     Jelaskan mengapa komunikasi efektif sangat penting dalam proyek perangkat lunak.

Komunikasi yang efektif merupakan salah satu faktor utama dalam keberhasilan proyek perangkat lunak karena membantu seluruh anggota tim memiliki pemahaman yang sama mengenai tujuan, kebutuhan, dan perkembangan proyek. Dengan komunikasi yang baik, kesalahan akibat miskomunikasi dapat diminimalkan, koordinasi antaranggota tim menjadi lebih lancar, dan proses penyelesaian masalah dapat dilakukan dengan lebih cepat. Selain itu, komunikasi yang efektif juga mendukung kolaborasi yang lebih baik sehingga proyek dapat diselesaikan sesuai target yang telah ditetapkan.

2.     Sebutkan tiga teknik komunikasi yang efektif dalam pengembangan perangkat lunak.

a.     Stand-Up Meetings

Stand-Up Meetings merupakan pertemuan singkat yang dilakukan secara rutin untuk membahas perkembangan pekerjaan, kendala yang dihadapi, serta rencana kerja yang akan dilakukan. Teknik ini membantu tim tetap selaras dan mengetahui kondisi proyek secara berkala.

b.     Dokumentasi yang Jelas

Dokumentasi yang jelas adalah penyusunan informasi proyek secara sistematis dan mudah dipahami oleh seluruh anggota tim. Dokumentasi yang baik membantu mengurangi kesalahpahaman serta memudahkan proses pengembangan dan pemeliharaan sistem.

c.     Feedback Constructive

Feedback Constructive merupakan pemberian masukan yang bersifat membangun dengan tujuan meningkatkan kualitas pekerjaan dan kinerja tim. Umpan balik yang disampaikan secara positif dapat membantu anggota tim memperbaiki kekurangan serta meningkatkan efektivitas kerja sama dalam proyek.

3.     Lengkapi tabel berikut dengan contoh penerapan dari masing-masing teknik komunikasi.

Teknik Komunikasi

Deskripsi

Contoh Penerapan

Stand-Up Meetings

Pertemuan singkat secara rutin untuk membahas progres dan hambatan pekerjaan.

Daily meeting setiap pagi untuk melaporkan tugas yang telah dikerjakan dan rencana pekerjaan selanjutnya.

Dokumentasi yang Jelas

Penyusunan informasi proyek secara terstruktur dan mudah dipahami.

Pembuatan dokumen kebutuhan sistem dan dokumentasi API yang dapat diakses seluruh anggota tim.

Feedback Constructive

Pemberian masukan yang bertujuan memperbaiki kualitas pekerjaan.

Memberikan saran perbaikan kode saat proses code review tanpa menyalahkan anggota tim.

 

4.     Berdasarkan studi kasus Tim Pengembang yang Kesulitan Berkomunikasi dalam Proyek Perangkat Lunak, tentukan strategi komunikasi yang paling efektif untuk menyelesaikan permasalahan tersebut.

Strategi komunikasi yang paling efektif adalah Stand-Up Meetings

Alasan strategi Stand-Up Meetings dianggap paling efektif adalah karena metode ini memungkinkan setiap anggota tim mengetahui perkembangan pekerjaan yang sedang dikerjakan oleh rekan-rekannya. Selain itu, hambatan atau kendala yang muncul dapat diidentifikasi lebih awal sehingga solusi dapat segera dicari. Pertemuan rutin ini juga membantu meningkatkan koordinasi dan kolaborasi antaranggota tim, mengurangi risiko miskomunikasi yang berpotensi menyebabkan keterlambatan proyek, serta mendukung proses pengambilan keputusan yang lebih cepat dan tepat dalam pelaksanaan proyek perangkat lunak

B.    Dinamika Kerja Tim dalam Pengembangan Perangkat Lunak

1.     peran kerja tim dalam pengembangan perangkat lunak.

Kerja tim memiliki peran yang sangat penting dalam pengembangan perangkat lunak karena memungkinkan individu dengan berbagai keahlian untuk bekerja sama dalam mencapai tujuan proyek. Melalui kolaborasi yang baik, tugas dapat diselesaikan dengan lebih efisien, permasalahan dapat ditangani lebih cepat, dan kualitas perangkat lunak dapat ditingkatkan. Selain itu, kerja tim yang efektif juga membantu memastikan bahwa proyek berjalan sesuai rencana dan kebutuhan pengguna dapat terpenuhi dengan baik.

2.     tiga metode kolaborasi dalam tim pengembangan perangkat lunak.

a.     Pair Programming

Pair Programming merupakan metode kolaborasi di mana dua pengembang bekerja bersama menggunakan satu komputer. Satu orang berfokus pada penulisan kode, sementara yang lain melakukan peninjauan secara langsung untuk membantu menemukan kesalahan dan meningkatkan kualitas kode yang dihasilkan.

b.     Code Review

Code Review adalah proses pemeriksaan kode program yang dilakukan oleh anggota tim lain sebelum kode tersebut digunakan atau digabungkan ke dalam sistem. Metode ini bertujuan untuk menemukan bug, meningkatkan kualitas kode, serta memastikan bahwa standar pengembangan telah diterapkan dengan baik.

c.     Agile Development Practices

Agile Development Practices merupakan pendekatan kolaboratif yang menekankan komunikasi yang intensif, pengembangan secara bertahap, serta kemampuan beradaptasi terhadap perubahan kebutuhan. Metode ini mendorong kerja sama yang erat antaranggota tim sehingga proses pengembangan perangkat lunak menjadi lebih fleksibel dan efektif.

3.     Lengkapi tabel berikut dengan kelebihan dan kekurangan dari masing-masing metode.

Metode Kolaborasi

Kelebihan

Kekurangan

Pair Programming

Meningkatkan kualitas kode dan mempercepat deteksi kesalahan.

Membutuhkan lebih banyak sumber daya karena melibatkan dua pengembang untuk satu tugas.

Code Review

Membantu menemukan bug dan meningkatkan kualitas kode.

Membutuhkan waktu tambahan untuk proses pemeriksaan kode.

Agile Development Practices

Meningkatkan komunikasi dan fleksibilitas tim terhadap perubahan kebutuhan.

Membutuhkan keterlibatan aktif seluruh anggota tim dan koordinasi yang intensif.

 

Kesimpulan dan Refleksi

1.     Kesimpulan

Dalam lembar kerja ini telah dipelajari berbagai aspek Software Engineering Professional Practice, meliputi etika profesi, regulasi dan hukum terkait perangkat lunak, standar industri, sertifikasi profesional, serta pentingnya komunikasi dan kerja sama tim dalam pengembangan perangkat lunak. Pemahaman terhadap praktik profesional tersebut membantu pengembang bekerja secara etis, bertanggung jawab, dan sesuai standar yang berlaku sehingga dapat menghasilkan perangkat lunak yang berkualitas, aman, serta mampu memenuhi kebutuhan pengguna secara efektif

2.     Refleksi Pribadi

Tantangan terbesar dalam menerapkan praktik profesional dalam rekayasa perangkat lunak adalah menjaga keseimbangan antara kemampuan teknis, penerapan etika, kepatuhan terhadap standar industri, dan kerja sama tim di tengah perkembangan teknologi yang sangat cepat. Kondisi tersebut menuntut pengembang untuk terus belajar, beradaptasi, dan meningkatkan kompetensinya agar tetap dapat bekerja secara profesional. Konsep yang dipelajari dapat diterapkan dalam proyek nyata dengan mematuhi kode etik profesi, mengikuti regulasi dan standar yang berlaku, serta membangun komunikasi dan kolaborasi yang efektif dalam tim. Dengan demikian, perangkat lunak yang dikembangkan dapat memiliki kualitas yang baik, aman, andal, dan sesuai dengan kebutuhan pengguna maupun organisasi.

 

Komentar

Postingan populer dari blog ini

Bab 1 : Software Requirements

Bab 4 : Software Construction

Bab 9 : Software Engineering Management