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).
- 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.
- 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.
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.