Dokumen ini membahas tentang tantangan-tantangan dalam rekayasa perangkat lunak. Beberapa tantangan utama yang disebutkan adalah metode pengembangan perangkat lunak tidak sesuai untuk sistem berskala besar, perubahan yang terjadi dengan cepat harus dapat diakomodasi, komunikasi informal yang membuang waktu, dan pengguna yang memiliki pemahaman samar tentang sistem. Dokumen ini juga membahas program studi Rekayasa Perangkat Lunak di ST3
2. Tantangan Rekayasa Perangkat Lunak
Rekayasa perangkat lunak menggunakan pendekatan yang terdefinisi dan sistematis
untuk mengembangkan perangkat lunak. Pendekatan ini dianggap sebagai cara yang
paling efektif untuk menghasilkan perangkat lunak berkualitas tinggi. Namun,
terlepas dari pendekatan sistematis dalam pengembangan perangkat lunak ini,
masih ada beberapa tantangan serius yang dihadapi oleh rekayasa perangkat lunak.
Beberapa tantangan ini tercantum di bawah ini.
Metode yang digunakan untuk mengembangkan sistem pada proyek skala kecil atau
menengah tidak sesuai bila diterapkan pada pengembangan sistem berskala besar
atau kompleks.
Perubahan dalam pengembangan perangkat lunak tidak dapat dihindari. Era
sekarang ini, perubahan terjadi dengan cepat dan harus dapat mengakomodasi
perubahan ini untuk mengembangkan perangkat lunak yang lengkap merupakan
salah satu tantangan utama yang dihadapi oleh para insinyur perangkat lunak
(software engineer).
3. Kemajuan teknologi komputer dan perangkat lunak mengharuskan perubahan sifat
sistem perangkat lunak. Sistem perangkat lunak yang tidak dapat mengakomodasi
perubahan maka tidak akan banyak berguna. Dengan demikian, salah satu tantangan
rekayasa perangkat lunak adalah menghasilkan perangkat lunak berkualitas tinggi
yang mampu beradaptasi dengan kebutuhan yang berubah sesuai waktu yang dapat
diterima. Untuk memenuhi tantangan ini, pendekatan berorientasi objek lebih
diutamakan, namun mengakomodasi perubahan pada perangkat lunak dan
perawatannya dengan biaya yang dapat diterima masih merupakan tantangan
tersendiri.
Komunikasi informal mengambil sebagian besar waktu yang dihabiskan untuk proyek
perangkat lunak. Pemborosan waktu seperti itu dapat menunda penyelesaian proyek
dalam waktu yang telah ditentukan.
Pengguna umumnya memiliki gagasan samar tentang ruang lingkup dan persyaratan
sistem perangkat lunak. Hal ini biasanya menghasilkan pengembangan perangkat
lunak, yang tidak sesuai dengan ekspektasi pengguna.
4. Perubahan biasanya digabungkan dalam dokumen tanpa mengikuti prosedur standar
apapun. Dengan demikian, kegiatan verifikasi semua perubahan tersebut seringkali
menjadi sulit.
Pengembangan perangkat lunak yang berkualitas dan handal memerlukan perangkat
lunak untuk diuji secara menyeluruh. Meskipun pengujian menyeluruh terhadap
perangkat lunak menghabiskan sebagian besar sumber daya, tetapi apabila
meremehkannya dapat menyebabkan memburuknya kualitas perangkat lunak.
Selain tantangan utama yang disebutkan di atas, tanggung jawab sistem analis,
perancang, dan pemrogram biasanya tidak didefinisikan dengan baik. Selain itu, jika
persyaratan pengguna tidak didefinisikan secara tepat, pengembang perangkat lunak
dapat salah menafsirkan maknanya. Semua tantangan ini perlu ditangani untuk
memastikan bahwa perangkat lunak dikembangkan dalam waktu dan perkiraan biaya
yang ditentukan dan juga memenuhi persyaratan yang ditentukan oleh pengguna.
5. Belajar terkait perangkat lunak, MENARIK kan ? Nah, Program Studi S1
Rekayasa Perangkat Lunak (S1 Software Engineering) ST3 Telkom Purwokerto
juga menyelenggarakan matakuliah Penjaminan Kualitas dan Manajemen
Konfigurasi Perangkat Lunak. Pada matakuliah tersebut kita mempelajari
konsep proses rekayasa perangkat lunak, software process maturity level,
manajemen kualitas perangkat lunak, aspek teknis dan manajerial
pengembangan perangkat lunak dalam organisasi perangkat lunak, dalam
hubungannya dengan metodologi pengembangan, dan tingkat kematangan.
Selain itu, kita juga langsung belajar best practices seperti proses, tools,
teknik, dan bidang pengetahuan yang terkait. Ini akan jadi bekal berharga
Anda untuk menekuni karir sebagai Software Engineer dan/atau
Technopreneur.