Pergeseran makna rekayasa perangkat lunak
Semakin
berkembangnya zaman maka semakin berkembangnya pula makna yang sebenarnya,
begitu juga dengan arti dengan RPL. Dari berbagagai referensi yang ditemukan di
dunia maya dan jugapada fakta makna Software Engineering berubah. Dan semakin
bertambahnya zaman Rekayasa Perangkat Lunak (Software Engineering), sedikit
mengalami pergeseran makna di realita dunia industri, bisnis, pendidikan maupun
kurikulum Teknologi Informasi (TI) di tanah air. Di industri, para tester,
debugger dan programmer sering salah kaprah menyandang gelar Software Engineer.
SMK di Indonesia juga latah dengan membuka jurusan Rekayasa Perangkat Lunak,
meskipun secara kurikulum hanya mengajari bahasa C atau Pascal (mungkin lebih pas
disebut jurusan pemrograman komputer). Tulisan ini berusaha meluruskan
salah kaprah yang terjadi tentang Rekayasa Perangkat Lunak (Software
Engineering) berdasarkan kesepakatan, acuan, dan standard yang ada di dunia
internasional.
Sejarah munculnya Rekayasa Perangkat
Lunak sebenarnya dilatarbelakangi oleh adanya krisis perangkat lunak (software
crisis) di era tahun 1960-an. Krisis perangkat lunak merupakan akibat langsung
dari lahirnya komputer generasi ke 3 yang canggih, ditandai dengan penggunaan
Integrated Circuit (IC) untuk komputer. Performansi hardware yang meningkat,
membuat adanya kebutuhan untuk memproduksi perangkat lunak yang lebih baik.
Akibatnya perangkat lunak yang dihasilkan menjadi menjadi beberapa kali lebih
besar dan kompleks. Pendekatan informal yang digunakan pada waktu itu dalam
pengembangan perangkat lunak, menjadi tidak cukup efektif (secara cost, waktu
dan kualitas). Biaya hardware mulai jatuh dan biaya perangkat lunak menjadi
naik cepat. Karena itulah muncul pemikiran untuk menggunakan pendekatan
engineering yang lebih pasti, efektif, standard dan terukur dalam pengembangan
perangkat lunak.
Dari berbagai literatur, kita dapat
menyimpulkan bahwa Rekayasa Perangkat Lunak adalah:
Suatu disiplin ilmu yang membahas
semua aspek produksi perangkat lunak, mulai dari tahap awal requirement
capturing (analisa kebutuhan pengguna), specification (menentukan spesifikasi
dari kebutuhan pengguna), desain, coding, testing sampai pemeliharaan sistem
setelah digunakan.
Kalimat “seluruh aspek produksi perangkat
lunak” membawa implikasi bahwa bahwa Rekayasa Perangkat Lunak tidak hanya
berhubungan dengan masalah teknis pengembangan perangkat lunak tetapi juga
kegiatan strategis seperti manajemen proyek perangkat lunak, penentuan metode
dan proses pengembangan, serta aspek teoritis, yang kesemuanya untuk mendukung
terjadinya produksi perangkat lunak.
Kemudian tidak boleh dilupakan bahwa
secara definisi perangkat lunak tidak hanya untuk program komputer, tetapi juga
termasuk dokumentasi dan konfigurasi data yang berhubungan yang diperlukan
untuk membuat program beroperasi dengan benar. Dengan definisi ini otomatis
keluaran (output) produksi perangkat lunak disamping program komputer juga
dokumentasi lengkap berhubungan dengannya. Ini yang kadang kurang dipahami oleh
pengembang, sehingga menganggap cukup memberikan program yang jalan (running
program) ke pengguna (customer).
Rekayasa Perangkat Lunak bukan
merupakan cabang ilmu Computer Science yang mempelajari tentang technical
coding. Ini yang sering salah kaprah dipahami, sehingga pelajar, mahasiswa atau
bahkan calon dosen shock ketika dihadapkan dengan buku-buku textbook Rekayasa
Perangkat Lunak yang selalu tebal dengan penjelasan sangat luas tentang
bagaimana perangkat lunak diproduksi, dari aspek requirement capturing, desain,
arsitektur, testing, kualitas software, sampai people/cost management. Dan ini
adalah suatu kesepakatan yang sudah diterima umum tentang Rekayasa Perangkat
Lunak, sejak jaman Roger S Pressman menulis buku “Software Engineering: A Practitioner’s
Approach”, sampai Ian Sommerville yang kemudian datang dengan buku “Software
Engineering” yang sudah sampai edisi ke 7, maupun pendatang baru semacam Hans
Van Vliet, Shari Lawrence Pfleeger maupun James F Peters.
Terus bagaimana kalau kita ingin memperdalam
masalah technical coding dan programming? Ada dua cabang ilmu lain yang
membahas lebih dalam masalah ini, yaitu: Algoritma dan Struktur Data, dan
Bahasa Pemrograman.
Kok bisa begitu, dasarnya darimana?
Jadi pada hakekatnya, sebagai sebuah disiplin ilmu, Computer Science itu juga
memiliki definisi, ruang lingkup, klasifikasi dan kategorisasinya. Klasifikasi
yang paling terkenal dikeluarkan Task Force yang dibentuk oleh IEEE (Institute
of Electrical and Electronics Engineers) dan ACM (Association for Computing
Machinary (http://acm.org)) yang
dipimpin oleh Peter J Denning, yang kemudian terkenal dengan sebutan Matriks
Denning. Sangat jelas bahwa Matriks Denning memisahkan antara cabang ilmu
Software Engineering dengan Algoritma dan Struktur Data, serta Bahasa
Pemrograman. Itulah di paragraf awal saya sebut bahwa lebih tepat SMK, akademi
atau universitas menggunakan nama jurusan (atau mata kuliah): Pemrograman
Komputer, Algoritma dan Struktur Data, atau Bahasa Pemrograman, kalau memang
materinya hanya mempelajari masalah bahasa pemrograman secara teknis.
Nah terus pertanyaan kembali muncul,
jadi sebenarnya apa yang menjadi ruang lingkup ilmu Software Engineering itu
apa? Pertanyaan ini merupakan pertanyaan banyak orang, semakin banyak peneliti
dan praktisi menulis maka semakin bervariasi pemahaman yang muncul, semakin
banyak buku yang terbit semakin membingungkan pelajar dan mahasiswa dalam
memahami secara komprehensif apa itu Rekayasa Perangkat Lunak.
Kegelisahan ini dijawab tuntas oleh
IEEE Computer Society (http://computer.org) dengan membentuk tim di tahun 1998 dimana tim tersebut
mulai menyusun pemahaman standard (body of knowledge) tentang bidang ilmu
Software Engineering, yang kemudian terkenal dengan sebutan SWEBOK (Software Engineering Body of
Knowledge). Sudah ada dua versi SWEBOK ini, yaitu yang diterbitkan tahun 1999
dan terakhir tahun 2004.
Tiada gading yang tak retak kata
orang bijak, project IEEE Computer Society tentang SWEBOK ini sebenarnya juga
banyak dikritik oleh pakar yang lain. Paling tidak dua tokoh besar dunia
Software Engineering yaitu Cem Kaner and Grady Booch tidak terlalu setuju
dengan materi yang ada di dalam SWEBOK, bahkan menyebutnya sebagai sebuah guide
yang misguided. Terlepas dari hal itu, boleh dikatakan SWEBOK cukup bisa
diterima banyak pihak.
Selain SWEBOK, sebenarnya ada
project lain yang mirip dalam usaha menyusun pemahaman standard dalam bidang
Software Engineering, yaitu CCSE (Computing Curriculum Software Engineering).
Project ini juga disponsori oleh IEEE Computer Society dan ACM , hanya
orientasinya sedikit berbeda, yaitu untuk membentuk kurikulum standard
berhubungan dengan bidang ilmu Software Engineering. Hal ini berbeda dengan
orientasi SWEBOK yang lebih umum melingkupi dunia akademisi dan praktisi.
Pergeseran makna rekayasa perangkat lunak
Semakin
berkembangnya zaman maka semakin berkembangnya pula makna yang sebenarnya,
begitu juga dengan arti dengan RPL. Dari berbagagai referensi yang ditemukan di
dunia maya dan jugapada fakta makna Software Engineering berubah. Dan semakin
bertambahnya zaman Rekayasa Perangkat Lunak (Software Engineering), sedikit
mengalami pergeseran makna di realita dunia industri, bisnis, pendidikan maupun
kurikulum Teknologi Informasi (TI) di tanah air. Di industri, para tester,
debugger dan programmer sering salah kaprah menyandang gelar Software Engineer.
SMK di Indonesia juga latah dengan membuka jurusan Rekayasa Perangkat Lunak,
meskipun secara kurikulum hanya mengajari bahasa C atau Pascal (mungkin lebih pas
disebut jurusan pemrograman komputer). Tulisan ini berusaha meluruskan
salah kaprah yang terjadi tentang Rekayasa Perangkat Lunak (Software
Engineering) berdasarkan kesepakatan, acuan, dan standard yang ada di dunia
internasional.
Sejarah munculnya Rekayasa Perangkat
Lunak sebenarnya dilatarbelakangi oleh adanya krisis perangkat lunak (software
crisis) di era tahun 1960-an. Krisis perangkat lunak merupakan akibat langsung
dari lahirnya komputer generasi ke 3 yang canggih, ditandai dengan penggunaan
Integrated Circuit (IC) untuk komputer. Performansi hardware yang meningkat,
membuat adanya kebutuhan untuk memproduksi perangkat lunak yang lebih baik.
Akibatnya perangkat lunak yang dihasilkan menjadi menjadi beberapa kali lebih
besar dan kompleks. Pendekatan informal yang digunakan pada waktu itu dalam
pengembangan perangkat lunak, menjadi tidak cukup efektif (secara cost, waktu
dan kualitas). Biaya hardware mulai jatuh dan biaya perangkat lunak menjadi
naik cepat. Karena itulah muncul pemikiran untuk menggunakan pendekatan
engineering yang lebih pasti, efektif, standard dan terukur dalam pengembangan
perangkat lunak.
Dari berbagai literatur, kita dapat
menyimpulkan bahwa Rekayasa Perangkat Lunak adalah:
Suatu disiplin ilmu yang membahas
semua aspek produksi perangkat lunak, mulai dari tahap awal requirement
capturing (analisa kebutuhan pengguna), specification (menentukan spesifikasi
dari kebutuhan pengguna), desain, coding, testing sampai pemeliharaan sistem
setelah digunakan.
Kalimat “seluruh aspek produksi perangkat
lunak” membawa implikasi bahwa bahwa Rekayasa Perangkat Lunak tidak hanya
berhubungan dengan masalah teknis pengembangan perangkat lunak tetapi juga
kegiatan strategis seperti manajemen proyek perangkat lunak, penentuan metode
dan proses pengembangan, serta aspek teoritis, yang kesemuanya untuk mendukung
terjadinya produksi perangkat lunak.
Kemudian tidak boleh dilupakan bahwa
secara definisi perangkat lunak tidak hanya untuk program komputer, tetapi juga
termasuk dokumentasi dan konfigurasi data yang berhubungan yang diperlukan
untuk membuat program beroperasi dengan benar. Dengan definisi ini otomatis
keluaran (output) produksi perangkat lunak disamping program komputer juga
dokumentasi lengkap berhubungan dengannya. Ini yang kadang kurang dipahami oleh
pengembang, sehingga menganggap cukup memberikan program yang jalan (running
program) ke pengguna (customer).
Rekayasa Perangkat Lunak bukan
merupakan cabang ilmu Computer Science yang mempelajari tentang technical
coding. Ini yang sering salah kaprah dipahami, sehingga pelajar, mahasiswa atau
bahkan calon dosen shock ketika dihadapkan dengan buku-buku textbook Rekayasa
Perangkat Lunak yang selalu tebal dengan penjelasan sangat luas tentang
bagaimana perangkat lunak diproduksi, dari aspek requirement capturing, desain,
arsitektur, testing, kualitas software, sampai people/cost management. Dan ini
adalah suatu kesepakatan yang sudah diterima umum tentang Rekayasa Perangkat
Lunak, sejak jaman Roger S Pressman menulis buku “Software Engineering: A Practitioner’s
Approach”, sampai Ian Sommerville yang kemudian datang dengan buku “Software
Engineering” yang sudah sampai edisi ke 7, maupun pendatang baru semacam Hans
Van Vliet, Shari Lawrence Pfleeger maupun James F Peters.
Terus bagaimana kalau kita ingin memperdalam
masalah technical coding dan programming? Ada dua cabang ilmu lain yang
membahas lebih dalam masalah ini, yaitu: Algoritma dan Struktur Data, dan
Bahasa Pemrograman.
Kok bisa begitu, dasarnya darimana?
Jadi pada hakekatnya, sebagai sebuah disiplin ilmu, Computer Science itu juga
memiliki definisi, ruang lingkup, klasifikasi dan kategorisasinya. Klasifikasi
yang paling terkenal dikeluarkan Task Force yang dibentuk oleh IEEE (Institute
of Electrical and Electronics Engineers) dan ACM (Association for Computing
Machinary (http://acm.org)) yang
dipimpin oleh Peter J Denning, yang kemudian terkenal dengan sebutan Matriks
Denning. Sangat jelas bahwa Matriks Denning memisahkan antara cabang ilmu
Software Engineering dengan Algoritma dan Struktur Data, serta Bahasa
Pemrograman. Itulah di paragraf awal saya sebut bahwa lebih tepat SMK, akademi
atau universitas menggunakan nama jurusan (atau mata kuliah): Pemrograman
Komputer, Algoritma dan Struktur Data, atau Bahasa Pemrograman, kalau memang
materinya hanya mempelajari masalah bahasa pemrograman secara teknis.
Nah terus pertanyaan kembali muncul,
jadi sebenarnya apa yang menjadi ruang lingkup ilmu Software Engineering itu
apa? Pertanyaan ini merupakan pertanyaan banyak orang, semakin banyak peneliti
dan praktisi menulis maka semakin bervariasi pemahaman yang muncul, semakin
banyak buku yang terbit semakin membingungkan pelajar dan mahasiswa dalam
memahami secara komprehensif apa itu Rekayasa Perangkat Lunak.
Kegelisahan ini dijawab tuntas oleh
IEEE Computer Society (http://computer.org) dengan membentuk tim di tahun 1998 dimana tim tersebut
mulai menyusun pemahaman standard (body of knowledge) tentang bidang ilmu
Software Engineering, yang kemudian terkenal dengan sebutan SWEBOK (Software Engineering Body of
Knowledge). Sudah ada dua versi SWEBOK ini, yaitu yang diterbitkan tahun 1999
dan terakhir tahun 2004.
Tiada gading yang tak retak kata
orang bijak, project IEEE Computer Society tentang SWEBOK ini sebenarnya juga
banyak dikritik oleh pakar yang lain. Paling tidak dua tokoh besar dunia
Software Engineering yaitu Cem Kaner and Grady Booch tidak terlalu setuju
dengan materi yang ada di dalam SWEBOK, bahkan menyebutnya sebagai sebuah guide
yang misguided. Terlepas dari hal itu, boleh dikatakan SWEBOK cukup bisa
diterima banyak pihak.
Selain SWEBOK, sebenarnya ada
project lain yang mirip dalam usaha menyusun pemahaman standard dalam bidang
Software Engineering, yaitu CCSE (Computing Curriculum Software Engineering).
Project ini juga disponsori oleh IEEE Computer Society dan ACM , hanya
orientasinya sedikit berbeda, yaitu untuk membentuk kurikulum standard
berhubungan dengan bidang ilmu Software Engineering. Hal ini berbeda dengan
orientasi SWEBOK yang lebih umum melingkupi dunia akademisi dan praktisi.
Pergeseran makna rekayasa perangkat lunak
Semakin
berkembangnya zaman maka semakin berkembangnya pula makna yang sebenarnya,
begitu juga dengan arti dengan RPL. Dari berbagagai referensi yang ditemukan di
dunia maya dan jugapada fakta makna Software Engineering berubah. Dan semakin
bertambahnya zaman Rekayasa Perangkat Lunak (Software Engineering), sedikit
mengalami pergeseran makna di realita dunia industri, bisnis, pendidikan maupun
kurikulum Teknologi Informasi (TI) di tanah air. Di industri, para tester,
debugger dan programmer sering salah kaprah menyandang gelar Software Engineer.
SMK di Indonesia juga latah dengan membuka jurusan Rekayasa Perangkat Lunak,
meskipun secara kurikulum hanya mengajari bahasa C atau Pascal (mungkin lebih pas
disebut jurusan pemrograman komputer). Tulisan ini berusaha meluruskan
salah kaprah yang terjadi tentang Rekayasa Perangkat Lunak (Software
Engineering) berdasarkan kesepakatan, acuan, dan standard yang ada di dunia
internasional.
Sejarah munculnya Rekayasa Perangkat
Lunak sebenarnya dilatarbelakangi oleh adanya krisis perangkat lunak (software
crisis) di era tahun 1960-an. Krisis perangkat lunak merupakan akibat langsung
dari lahirnya komputer generasi ke 3 yang canggih, ditandai dengan penggunaan
Integrated Circuit (IC) untuk komputer. Performansi hardware yang meningkat,
membuat adanya kebutuhan untuk memproduksi perangkat lunak yang lebih baik.
Akibatnya perangkat lunak yang dihasilkan menjadi menjadi beberapa kali lebih
besar dan kompleks. Pendekatan informal yang digunakan pada waktu itu dalam
pengembangan perangkat lunak, menjadi tidak cukup efektif (secara cost, waktu
dan kualitas). Biaya hardware mulai jatuh dan biaya perangkat lunak menjadi
naik cepat. Karena itulah muncul pemikiran untuk menggunakan pendekatan
engineering yang lebih pasti, efektif, standard dan terukur dalam pengembangan
perangkat lunak.
Dari berbagai literatur, kita dapat
menyimpulkan bahwa Rekayasa Perangkat Lunak adalah:
Suatu disiplin ilmu yang membahas
semua aspek produksi perangkat lunak, mulai dari tahap awal requirement
capturing (analisa kebutuhan pengguna), specification (menentukan spesifikasi
dari kebutuhan pengguna), desain, coding, testing sampai pemeliharaan sistem
setelah digunakan.
Kalimat “seluruh aspek produksi perangkat
lunak” membawa implikasi bahwa bahwa Rekayasa Perangkat Lunak tidak hanya
berhubungan dengan masalah teknis pengembangan perangkat lunak tetapi juga
kegiatan strategis seperti manajemen proyek perangkat lunak, penentuan metode
dan proses pengembangan, serta aspek teoritis, yang kesemuanya untuk mendukung
terjadinya produksi perangkat lunak.
Kemudian tidak boleh dilupakan bahwa
secara definisi perangkat lunak tidak hanya untuk program komputer, tetapi juga
termasuk dokumentasi dan konfigurasi data yang berhubungan yang diperlukan
untuk membuat program beroperasi dengan benar. Dengan definisi ini otomatis
keluaran (output) produksi perangkat lunak disamping program komputer juga
dokumentasi lengkap berhubungan dengannya. Ini yang kadang kurang dipahami oleh
pengembang, sehingga menganggap cukup memberikan program yang jalan (running
program) ke pengguna (customer).
Rekayasa Perangkat Lunak bukan
merupakan cabang ilmu Computer Science yang mempelajari tentang technical
coding. Ini yang sering salah kaprah dipahami, sehingga pelajar, mahasiswa atau
bahkan calon dosen shock ketika dihadapkan dengan buku-buku textbook Rekayasa
Perangkat Lunak yang selalu tebal dengan penjelasan sangat luas tentang
bagaimana perangkat lunak diproduksi, dari aspek requirement capturing, desain,
arsitektur, testing, kualitas software, sampai people/cost management. Dan ini
adalah suatu kesepakatan yang sudah diterima umum tentang Rekayasa Perangkat
Lunak, sejak jaman Roger S Pressman menulis buku “Software Engineering: A Practitioner’s
Approach”, sampai Ian Sommerville yang kemudian datang dengan buku “Software
Engineering” yang sudah sampai edisi ke 7, maupun pendatang baru semacam Hans
Van Vliet, Shari Lawrence Pfleeger maupun James F Peters.
Terus bagaimana kalau kita ingin memperdalam
masalah technical coding dan programming? Ada dua cabang ilmu lain yang
membahas lebih dalam masalah ini, yaitu: Algoritma dan Struktur Data, dan
Bahasa Pemrograman.
Kok bisa begitu, dasarnya darimana?
Jadi pada hakekatnya, sebagai sebuah disiplin ilmu, Computer Science itu juga
memiliki definisi, ruang lingkup, klasifikasi dan kategorisasinya. Klasifikasi
yang paling terkenal dikeluarkan Task Force yang dibentuk oleh IEEE (Institute
of Electrical and Electronics Engineers) dan ACM (Association for Computing
Machinary (http://acm.org)) yang
dipimpin oleh Peter J Denning, yang kemudian terkenal dengan sebutan Matriks
Denning. Sangat jelas bahwa Matriks Denning memisahkan antara cabang ilmu
Software Engineering dengan Algoritma dan Struktur Data, serta Bahasa
Pemrograman. Itulah di paragraf awal saya sebut bahwa lebih tepat SMK, akademi
atau universitas menggunakan nama jurusan (atau mata kuliah): Pemrograman
Komputer, Algoritma dan Struktur Data, atau Bahasa Pemrograman, kalau memang
materinya hanya mempelajari masalah bahasa pemrograman secara teknis.
Nah terus pertanyaan kembali muncul,
jadi sebenarnya apa yang menjadi ruang lingkup ilmu Software Engineering itu
apa? Pertanyaan ini merupakan pertanyaan banyak orang, semakin banyak peneliti
dan praktisi menulis maka semakin bervariasi pemahaman yang muncul, semakin
banyak buku yang terbit semakin membingungkan pelajar dan mahasiswa dalam
memahami secara komprehensif apa itu Rekayasa Perangkat Lunak.
Kegelisahan ini dijawab tuntas oleh
IEEE Computer Society (http://computer.org) dengan membentuk tim di tahun 1998 dimana tim tersebut
mulai menyusun pemahaman standard (body of knowledge) tentang bidang ilmu
Software Engineering, yang kemudian terkenal dengan sebutan SWEBOK (Software Engineering Body of
Knowledge). Sudah ada dua versi SWEBOK ini, yaitu yang diterbitkan tahun 1999
dan terakhir tahun 2004.
Tiada gading yang tak retak kata
orang bijak, project IEEE Computer Society tentang SWEBOK ini sebenarnya juga
banyak dikritik oleh pakar yang lain. Paling tidak dua tokoh besar dunia
Software Engineering yaitu Cem Kaner and Grady Booch tidak terlalu setuju
dengan materi yang ada di dalam SWEBOK, bahkan menyebutnya sebagai sebuah guide
yang misguided. Terlepas dari hal itu, boleh dikatakan SWEBOK cukup bisa
diterima banyak pihak.
Selain SWEBOK, sebenarnya ada
project lain yang mirip dalam usaha menyusun pemahaman standard dalam bidang
Software Engineering, yaitu CCSE (Computing Curriculum Software Engineering).
Project ini juga disponsori oleh IEEE Computer Society dan ACM , hanya
orientasinya sedikit berbeda, yaitu untuk membentuk kurikulum standard
berhubungan dengan bidang ilmu Software Engineering. Hal ini berbeda dengan
orientasi SWEBOK yang lebih umum melingkupi dunia akademisi dan praktisi.