Perkembangan Perangkat lunak Kita ketahui, komputer membutuhkan data atau fakta, dimana data ini pada saat diinput akan diterjemahkan menjadi bilangan biner. Mesin komputer memproses fakta atau data menjadi suatu informasi yang berguna bagi penggunanya. Dengan Komputer diharapkan dapat meningkatkan hasil kerja dan memecahkan berbagai masalah. Sebelum menjadi informasi data tersebut diproses melalui hardware yang terletak pada CPU dengan menggunakan perangkat lunak. Perangkat lunak atau software adalah program dari komputer. Perangkat lunak adalah program yang berisi instruksi untuk melakukan proses pengolahan data. Saat ini, tingkat pemrosesan yang dikerjakan perangkat lunak bersifat machine-like (keinginan mesin) mulai berubah dengan sifat human-like (keinginan manusia). Di dalam teori informasi, disusun hirarki informasi, mulai dari data/ fakta, kemudian setelah proses seleksi dan pengurutan menjadi sesuatu yang berguna menjadi informasi. Informasi yang di susun secara sistematis dengan suatu alur logika tertentu menjadi knowledge (pengetahuan). Perangkat Keras tidak akan berfungsi tanpa adanya perangkat lunak begitu pula sebaliknya perangkat lunak tidak berfungsi tanpa adanya perangkat keras. Kedua perangkat tersebut memang saling berkaitan sehingga komputer dapat berfungsi dengan baik. Perkembangan teknologi terutama dalam perangkat keras terus diimbangi oleh perangkat lunaknya sehingga penggunaan komputer lebih maksimal. Kemampuan komputer dirasakan sangat berkaitan dengan perangkat keras dan perangkat lunaknya, maka dari itu diperlukan perangkat lunak yang benar-benar mendukung perangkat kerasnya.Bentuk paling sederhana dari perangkat lunak, menggunakan aljabar Boolean, yang di representasikan sebagai binary digit (bit), yaitu 1 (benar) atau 0 (salah), cara ini sudah pasti sangat menyulitkan, sehingga orang mulai mengelompokkan bit tersebut menjadi nible (4 bit), byte (8 bit), word (16 bit), double word (32 bit). Kelompok-kelompok bit ini di susun ke dalam struktur instruksi seperti penyimpanan, transfer, operasi aritmatika, operasi logika, dan bentuk bit ini di ubah menjadi kode-kode yang di kenal sebagai assembler. Kode-kode mesin sendiri masih cukup menyulitkan karena tuntutan untuk dapat menghapal kode tersebut dan format (aturan) penulisannya yang cukup membingungkan, dari masalah ini kemudian lahir bahasa pemrograman tingkat tinggi yang seperti bahasa manusia (bahasa Inggris). Saat ini pembuatan perangkat lunak sudah menjadi suatu proses produksi yang sangat kompleks, dengan urutan proses yang panjang dengan melibatkan puluhan bahkan ratusan orang dalam pembuatannya. Berdasarkan perkembangannya perangkat lunak sampai dengan sekarang dibagi menjadi beberapa era yaitu :