Pemodelan software merupakan salah satu perkembangan terkini dalam pengembangan perangkat lunak. Terlepas dari banyaknya kesalahpahaman mengenai apa yang dimaksud dengan "pemodelan" perangkat lunak tersebut, teknik-teknik dalam melakukan pemodelan perangkat lunak, makin berkembang luas.
Salah satu "kebiasaan" para programmer pemula adalah seperti yang disebutkan pada kalimat ini: "rush to code syndrome" atau sindrom yang (selalu) ingin cepat menulis kode program. Kebiasaan ini, terlihat pada hampir semua programmer entry-level (maupun programmer template). Biasanya mereka, tanpa pikir panjang, langsung menulis kode (ataupun menggunakan template) dengan alasan ingin cepat2 mendelivered sebuah aplikasi bagi user.
Dalam software engineering, pendekatan "rush to code syndrome" menyebabkan Software Crisis 1.0 di Era 1960-an s/d 1970-an. Era Software Crisis tersebut, menghasilkan aplikasi perangkat lunak yang amburadul dari sisi biaya pengembangan yang membengkak, terlambat mendelivered perangkat lunak karena tidak adanya kontrol fitur-fitur yang dikembangkan dan buruknya manajemen pengelolaan proses perangkat lunak. Akibat yang paling nyata adalah dihasilkannya "sampah software" yang sungguh tak terhitung jumlahnya. (Sampah software adalah software yang ditinggalkan, karena tidak bermanfaat).
Pemodelan perangkat lunak relatif menghindarkan organisasi untuk mengalami kondisi "software crisis". Secara kasar, dapat dikatakan, proses pemodelan perangkat lunak, merupakan bagian dari pendekatan membuat perangkat lunak dengan berprinsip pada software system engineering, atau berpedoman pada prinsip rekayasa teknik yang reliable dan precise.
Disamping makin kompleksnya dunia pengembangan perangkat lunak, dewasa ini, maka langkah pemodelan software menjadi makin penting. Sedikitnya IBM Rational SOftware Team mengusulkan beberapa Tren terkait Pemodelan Perangkat Lunak. Tren tersebut adalah:
1) Beyond visual modeling; yakni pemodelan model, atau pemodelan dari model visual.
2) Unifying software, data and business modeling atau pemodelan yang menyeluruh, dalam artian model interasi dari aliran data, informasi, logic business dan aplikasi itu sendiri.
3) Modeling across lifecycle; atau pemodelan yang berkesinambungan mencakup seluruh langkah-proses daur hidup pengembangan perangkat lunak.
4) Domain-specific modeling language, atau bahasa pemodelan dengan sintaks dan semantics yang dapat diterima secara internasional
5) Model-driven architecture; atau suatu "next-step" mengenai pemodelan tingkat lanjut.
Selengkapnya dari tulisan tersebut diatas, dapat diunduh pada tautan dibawah ini: