Nak, reusing designs through patterns yields faster and better maintenance (gamma et al, 1995). Albert endres (2003), menobatkan ungkapan 4 jagoan, the gang of four, gamma, helm, johnson dan vlissides, sebagai salah satu hipotesis terpenting yg berpengaruh besar ke industri software dunia beberapa dekade setelah buku itu terbit … Saya membeli buku design pattern di atas pada tahun 1995 di jepang, ketika masih semester 1 undergraduate program. Buku yg covernya berwarna putih biru, yg bikin pusing bacanya, lebih pusing lagi baca komentar erich gamma di introduction, “Don’t worry if you don’t understand this book completely on the first reading. We didn’t understand it all on the first writing!” … Buku ini terbit berbarengan dengan mulai berakhirnya perang metodologi object-oriented analysis and design, yg melibatkan maestro2 penting dunia semacam coud yourdon, grady booch, ivar jacobson dan james rumbaugh. Rekonsiliasi mereka membawa kita ke dunia pemodelan software bernama unified modeling language (UML), yg kemudian distandarkan oleh OMG di tahun 1997, dan digunakan di industri hingga saat ini. Beberapa konsep design pattern masuk ke UML dibawa oleh Quatrani di tahun 2001, melahirkan gaya baru notasi sequence diagram, yg menggunakan pola boundary-control-entity (BCE), atau orang sekarang lebih senang menggunakan term model-view-controller (MVC). Tidak banyak buku dan tutorial yg menjelaskan UML dari hulu ke hilir beserta contoh riilnya, saya mencoba mengurai benang kusut ini dengan suatu penjelasan yg sebenarnya berbentuk evolusi pemikiran. Saya pakai metode yg sama utk ngajar pertama di tahun 1997-1998 di jepang, baik di kampus atau perusahaan2 di jepang. Saya perbaiki dari tahun ke tahun, saya formulasi utk jadi standard, nomenklatur bahkan peraturan resmi baik di instansi pemerintah dan di swasta dan bumn. Saya ajarkan lebih komprehensif di kelas2 saya tentang Systems Analysis and Design dan Software Engineering. Download Slide:...
Knowledge Management: Konsep, Proses, Sistem atau Apa?
Ketika pegawai meninggalkan perusahaan, pengetahuan merekapun ikut pergi. Perusahaan tidak mengelola pengetahuannya dengan baik, sehingga transfer pengetahuan tidak terjadi. Organisasi perlu mengelola pengetahuan anggotanya untuk: Mengetahui kekuatan (dan penempatan) seluruh SDMPenggunaan kembali pengetahuan yang sudah ada tidak perlu mengulang proses kegagalanMempercepat proses penciptaan pengetahuan baru dari pengetahuan yang adaMenjaga pergerakan organisasi tetap stabil meskipun terjadi arus keluar-masuk atau rotasi SDM Apakah hal di atas ini yang disebut dengan manajemen pengetahuan (knowledge management)? Apakah knowledge management itu suatu konsep, arsitektur, proses atau nama suatu sistem aplikasi? Materi ini akan membahas tuntas tentang knowledge management dari berbagai perspektif, termasuk didalamnya contoh riil penerapan di organisasi seperti apa. Materi bisa didownload melalui:...
Software Engineering Research Trends
Membangun software bukanlah tujuan utama penelitian, hanya testbed untuk mempermudah kita dalam mengukur hasil penelitian. Tidak ada listing code, UML atau screenshot software di paper-paper journal terindeks (SCOPUS/WoS), kecuali penelitian tentang perbaikan paradigma pemrograman, analisis design, dsb. Ketika pada penelitian kita mengusulkan perbaikan suatu algoritma (proposed method). Contoh penelitian bidang image processing, topik penelitian face recognition, memikirkan perbaikan metode atau algoritma untuk pengenalan wajah dengan lebih akurat atau efisien. Penelitian bidang data mining, topik tentang decision tree, memikirkan perbaikan algoritma decision tree sehingga bisa memprediksi (klasifikasi) dengan lebih akurat. Nah untuk mempermudah eksperimen dan evaluasi, kita menulis kode program (software) untuk menguji dan mengevaluasi performance dari algoritma yang kita usulkan Bahkan penelitian bidang software engineering, bukan penelitian tentang pengembangan software yang hasil akhirnya produk software, tapi penelitian untuk perbaikan berbagai aspek metodologi pengembangan software, termasuk didalamnya bagaimana metode requirement gathering yang lebih efisien, perbaikan proses pengembangan software, perbaikan metode dan teknik tentang pengujian software, bagaimana software architecture yang lebih sistematis, dsb. Lha terus bidang software engineering itu sebenarnya bidang apa? Trend penelitiannya juga ke arah mana? Mana topik penelitian bidang software engineering yang sebaiknya saya angkat untuk penelitian saya? Materi dalam bentuk slide, dan bisa didownload dengan mengklik gambar...
10 Mitos Software Engineering
10 mitos dalam dunia software engineering, yang selama ini disangka bahwa ini benar, tapi ternyata merupakan kekeliruan. Tingkat kegagalan project software di dunia ini mencapai lebih dari 40%. Di Amerika, Standish Group mencatat kegagalan mencapai 42%, sedangkan General Accounting Office menemukan fakta bahwa kegagalan pengembangan software mencapai 53% (Dennis, 2012). Semakin besar ukuran dari software, semakin besar kemungkinan kegagalan dalam pengembangan dan penerapan. Ketika kita mencoba mengkritisi lingkungan di sekitar kita, kita akan menemukan fakta yang unik bahwa banyak penerapan software yang seperti dipaksakan ada. Software tersebut tidak membawa manfaat dan keuntungan apapun untuk kita, bahkan menyebabkan peningkatan biaya dan waktu. 10 mitos yang menyebabkan kegagalan pengembangan software akan dibahas pada materi ini. Materi tersaji dalam bentuk slide, dan merupakan versi update dari artikel 6 mitos kesalahan pengembangan software yang telah diupload sebelumnya. Download: romi-se-mitos.pdf Tersedia video penjelasan materi 10 mitos software engineering di Youtube di...
Research in Progress 2016: Software Defect Prediction
Bidang penelitian software engineering adalah bidang yang saya geluti sejak memulai kehidupan menjadi akademisi di Saitama University, Jepang di tahun 1994-2004. Di Jepang saya banyak bergerak di fase software engineering di bagian depan, yaitu topik penelitian tentang requirement engineering. Ini terlihat dari publikasi saya selama di Jepang kebanyakan ada di topik requirement engineering. Tidak hanya murni pendekatan software engineering, tapi saya juga menggunakan banyak metode machine learning untuk menghasilkan pola dan model, baik untuk requirement elicitation, requirement pattern, object-oriented analysis, automated software design, dsb. Ini memungkinkan saya lakukan karena lab penelitian saya dulu memang mengangkat topik penelitian lebih ke arah knowledge-based software engineering. Mulai tahun 2012, saya mencoba peruntungan baru, berpindah ke bagian belakang dari fase software engineering, yaitu topik penelitian tentang software defect prediction (prediksi cacat software) dan software testing. Pada topik ini metode machine learning dan soft computing lebih kental saya gunakan. Contribution to knowledge yang saya kejar tidak hanya mengarah ke model dan pola yang terbentuk dari proses pemodelan (software engineering), tapi juga ke arah perbaikan algoritma untuk machine learningnya sendiri. Tidak terasa sudah 4 tahun saya menggeluti topik software defect prediction ini, dan sudah waktunya saya memberikan laporan research in progress untuk topik software defect prediction yang selama ini saya lakukan. Tidak hanya saya lakukan sendiri, sebagian mahasiswa bimbingan juga saya minta meneruskan perdjoeangan saya di topik ini. Metode saya untuk pembimbingan penelitian mahasiswa tidak hanya melalui pertemuan darat (offline), tapi juga diskusi online yang kita lakukan rutin hampir setiap hari menggunakan Trello dan group Telegram Intelligent Systems. Pencapaian yang sudah saya hasilkan tidak hanya di publikasi paper di journal, tapi juga pembimbingan tesis mahasiswa, dan berkesempatan menjadi reviewer di berbagai journal Q1/Q2 di bidang software engineering dan puluhan journal lokal, baik yang terakreditasi dikti maupun tidak. JOURNAL REVIEWER Information & Software Technology,...
6 Mitos Kesalahan Pengembangan Software
Menurut data statistik, tingkat kegagalan project software di dunia ini mencapai lebih dari 40%. Di Amerika, Standish Group mencatat kegagalan mencapai 42%, sedangkan General Accounting Office menemukan fakta bahwa kegagalan pengembangan software mencapai 53% (Dennis, 2012). Semakin besar ukuran dari software, semakin besar kemungkinan kegagalan dalam pengembangan dan penerapan. Ketika kita mencoba mengkritisi lingkungan di sekitar kita, kita akan menemukan fakta yang unik bahwa banyak penerapan software yang seperti dipaksakan ada. Software tersebut tidak membawa manfaat dan keuntungan apapun untuk kita, bahkan menyebabkan peningkatan biaya dan waktu. Ketika KTP masih dibuat oleh kelurahan secara manual dengan mesin ketik, hanya perlu waktu 1 minggu untuk mengurusnya. Ketika komputerisasi KTP datang, bukannya tambah cepat, tapi ternyata perlu waktu 1 bulan untuk mengurusnya. Dan ketika datang sistem yang lebih canggih, alangkah terkejut ketika kita sadari bahwa e-KTP butuh waktu 1 tahun dari perekaman hingga sampai di tangan kita. Contoh lain bisa kita lihat bagaimana software yang kita terapkan di organisasi kita, bukannya tambah mempercepat pekerjaan kita, tapi justru membuat lambat pekerjaan kita. Padahal software tersebut dikembangkan dengan biaya yang sangat besar. Secara teori komputasi, ini menyalahi apa yang digariskan para founding fathers di dunia komputer bahwa komputer dan software datang untuk mempercepat dan membuat efisien pekerjaan manusia. Ratusan ribu mahasiswa lulus sarjana komputer setiap tahun, dengan skripsi yang mirip-mirip. Di latar belakang masalah, selalu diuraikan bahwa cara yang ada sekarang masih “manual”, sehingga perlu dibuatkan softwarenya. Software kemudian dikembangkan, tanpa melakukan analisis kelayakan, tanpa menghitung keuntungan secara tangible atau intangible, dan tanpa menghitung berapa Return on Investment (ROI) dan Break Event Point (BEP) yang dihasilkan dengan pengembangan software itu. Kemudian kita juga makin tersadar bahwa ratusan ribu software yang dihasilkan sarjana komputer kita berakhir di tumpukan buku perpustakaan, sangat sedikit sekali yang akhirnya bisa masuk ke dunia...
Video Wawancara Tema Programmer-Entrepreneur
Bukan materi baru, tapi tema-nya masih relevan saya tampilkan di blog, siapa tahu banyak yang belum sempat lihat. Video wawancara dengan tema programmer-entrepeneur, diambil setelah selesai ngisi acara 3rd PHP Developers Day di LIPI sekitar dua tahun lalu (19 Pebruari 2009). Materi lengkapnya sudah saya sajikan di blog ini dengan judul 5 Langkah Menjadi Programmer Entrepreneur. Link untuk download atau view langsung dari youtube, bisa di-klik dari sini:...
Penjurian Final Imagine Cup Indonesia 2009
Senin 11 Mei 2009, alhamdulillah mendapat kesempatan bareng Mark Glikson (GM, D&PE Lead Asia Pacific) dan Tony Seno Hartono (National Technology Officer Microsoft Indonesia) untuk menjadi juri di final Imagine Cup Indonesia 2009. Thanks to sohib saya om Norman Sasono (jabatan loe apaan sih om?) dan om Julius Fenata (Academic Developer Evangelist) yang sudah mengundang saya untuk ikutan duduk di bangku Juri ;). Mohon maaf terlambat sampai ke Shangri-La H0tel, karena ada kecelakan di tol JORR yg menahan laju innova hitamku lebih dari satu jam 🙁 Kompetisi dan lomba software selalu menjadi acara meriah. Sejak kepulangan saya ke tanah air pada tahun 2004 sampai tahun 2009, puluhan lomba dan kompetisi saya ikuti. Sayangnya saya jarang mendapat kesempatan menjadi peserta, selalu diminta untuk menjadi juri. Hmm nggak ngerti ini kutukan atau nikmat 🙂 Padahal jujur saja, pingin lebih banyak portfolio menjadi pemenang daripada juri hihihi. Sebagai informasi, Imagine Cup adalah ajang kompetisi teknologi untuk mahasiswa. yang diadakan oleh Microsoft. Imagine Cup diadakan secara rutin setiap tahun, dan saat di tahun 2009 ini memasuki tahun ke 7. Tema Imagine Cup untuk tahun 2009 ini adalah Imagine a world where technology helps solve the world’s toughest problems. Tema Imagine Cup mengambil pemikiran dari 8 Millenium Development Goals dari United Nations (PBB), yaitu: Mengentaskan Kemiskinan dan Kelaparan Pendidikan Dasar yang Merata Emansipasi Wanita Mengurangi Kematian Anak Meningkatkan Kesehatan Ibu Hamil Memerangi HIV/AIDS, Malaria dan Penyakit-Penyakit Lainnya Memelihara Kelestarian dan Keberlangsungan Lingkungan Mengembangkan Kerja Sama Global Okeh, langsung saja, ada tiga tim yang berhasil masuk ke final Imagine Cup Indonesia 2009, yaitu: Kabayan (IT Telkom) dengan project Demeter (Food Monitoring and Control System) Pusaka (ITB) dengan project Galaxy (RFID based Integrated Donation System) Big Bang (ITB) dengan project MOSES (Malaria Observation System and Endemic Surveillance) Seluruh tim dengan projectnya...
Wajibnya Skill Coding Bagi Mahasiswa Computing
Mas Romi, saya mahasiswa jurusan teknik informatika, semester akhir dengan peminatan software engineering. Karena saya lemah di coding, kira-kira nanti kesulitan ga ya untuk mengerjakan tugas akhir? (Taufik, Universitas Swasta di Jakarta) Inna lillahi wa inna ilaihi rajiun, segera lakukan taubat dan perbanyak istighfar 🙂 Jurusan teknik informatika semester akhir, peminatan software engineering pula, ga bisa coding? Selama ini kemana aja om? 🙁 Lemahnya skill coding mahasiswa di Indonesia adalah penyakit gawat, menular, mematikan dan secepatnya harus diberantas tuntas :). Mungkinkah ini juga yang membuat produksi software kita secara kuantitas dan kualitas dibawah negara tetangga kita? Ingat bahwa menurut laporan IDC dan Gartner, jumlah developer professional Indonesia mencapai 71.600 orang di tahun 2008. Jumlah developer kita tiga kalinya malaysia dan empat kalinya singapore loh 🙁 Wahai para mahasiswaku, andai kau tahu, jurusan computing di Indonesia mengambil acuan kurikulum IEEE Computing Curricula 2005. Asosiasi Perguruan Tinggi Informatika dan Komputer alias APTIKOM, yang menjadi wadah universitas yang memiliki jurusan atau prodi computing, membuat kurikulum inti yang mengacu ke IEEE Computing Curricula 2005, meskipun di beberapa sisi tidak konsisten 🙂 Tidak konsisten karena Information System (Sistem Informasi) dan Computer Engineering (Teknik/Sistem Komputer) saja yang direkomendasikan jadi jurusan atau prodi. Computer Science (Ilmu Komputer), Information Technology (Teknologi Informasi) dan Software Engineering (Rekayasa Perangkat Lunak) disuruh tumplek beg di satu wadah namanya Teknik Informatika 🙁 Padahal sebenarnya pembobotan materi yang dibidik berbeda-beda. Silakan cek dari gambar di bawah, target kemampuan yang diharapkan dari lulusan masing-masing cabang ilmu computing menurut IEEE Computing Curricula 2005. Secara IEEE Computing Curricula 2005, mahasiswa prodi/jurusan/fakultas/ dibawah disiplin ilmu computing, boleh tidak mengerti masalah sistem informasi atau teoritika database (mahasiswa CE misalnya), boleh juga nggak ngerti arsitektur komputer (mahasiswa IS dan IT misalnya). Tapi seluruh mahasiswa wajib hukumnya, dan ini wajib ain sifatnya 🙂 punya...
Software Engineer Sebagai Sebuah Profesi
Saya mendapat satu slot waktu untuk berbicara tentang profesi Software Engineer pada acara PHP Developers Day 2008 di PDII LIPI tanggal 19 Juni 2008 kemarin. Sebenarnya bingung juga mau ngomong apa :). Karena yang ke arah technical sudah cukup diwakili om Luri, om Rama, om Irving, om Riyogarta dan om Risman, akhirnya saya putuskan untuk menarik proyeksi ke titik lebih tinggi, “nggedabrus” masalah yang lebih strategis, relatif abstrak dan mungkin buram alias nggak jelas … hehehe. Acara PHP Developers Day 2008 yang dibikin LIPI, IlmuKomputer.Com, dan Zend ini memang unik. Moderatornya nggak jelas karena dipegang om Hendro yang kadang ijin untuk ngurus kambingnya di luar :), jadinya waktu bisa cepet or molor sesuai dengan mood pembicaranya … hehehe. Tapi yang pasti makanannya uenak, maknyus, jempol dua 🙂 Diskusi saya awali dengan data yang menarik, 10 orang terkaya di Indonesia dan 10 orang terkaya di Amerika. Di Indonesia, ada nama nama Aburizal Bakri, Sukanto Tanoto, dsb. Sedangkan di Amerika, Bill Gates tak tergoyahkan, diikuti Paul Allen, Larry Ellison (Oracle), dsb. Ada sesuatu fenoma unik apabila kita lakukan komparasi pada kedua data ini. Olala, orang terkaya di Indonesia sebagian besar karena bisnis yang berhubungan dengan sumber daya alam (minyak, batubara, emas, dsb), sebagian lagi adalah broker, dan boleh dikatakan sebagian besar kaya karena keturunan. Di lain sisi, sebagian besar orang Amerika yang masuk daftar sebagai orang terkaya, hampir tidak ada yang berbisnis sumber daya alam, semuanya bermain di knowledge capital alias berbasis pengetahuan. Bahkan data menunjukkan bahwa mereka memang orang besar yang memulai bisnis dari kecil, pekerja keras, berkubang lumpur, dan di waktu mudanya mereka sangat memahami masalah teknis berhubungan dengan bisnisnya. Bagaimanapun juga, sumber daya alam akan habis dalam waktu dekat, otomatis bisnis dengan cara seperti ini tidak akan bertahan lama. Indonesia dan SDMnya mau tak mau harus memikirkan untuk...