1) Perkembangan Pembuatan Perangkat Lunak
Dari perkembangan perangkat lunak, kita bisa membayangkan bagaimana perkembangan interaksi manusia dengan perangkat lunak. Bentuk paling primitive dari perangkat lunak,menggunakan aljabar Boolean yang dipresentasikan sebagai binary digit (bit), yaitu 1 (Benar/on) atau 0 (Salah/Off), cara ini sudah pasti menyulitkan, sehingga orang mulai mengelompokkan bit tersebut menjadi nible (4bit), byte (8 bit), word (2 byte), double word (32 bit). Kelompok-kelompok bit ini disusun ke dalam struktur instruksi seperti penyimpanan, transfer, operasi aritmatika, operasi logika, dan bentuk bit ini diubah menjadi kode-kode yang dikenal sebagai assembler. Kode-kode mesin sendiri masih cukup menyuilitkan 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.
2) EVOLUSI PERANGKAT LUNAK
Ø Era Pioner
Bentuk perangkat lunak pada awalnya adalah sambungan-sambungan kabel ke antar bagian dalam komputer. Cara lain dalam mengakses komputer adalah menggunakan punched card yaitu kartu yang dilubangi. Penggunaan komputer saat itu masih dilakukan secara langsung, sebuah program untuk sebuah mesin untuk tujuan tertentu.
Ø Era Stabil
Pada era stabil penggunaan komputer sudah banyak digunakan, tidak hanya oleh kalangan peneliti dan akademi saja, tetapi juga oleh kalangan peneliti dan akademi saja, tetapi juga oleh kalangan indutri/perusahaan. Perusahaan perangkat lunak bermunculan dan sebuah perangkat lunak dapat menjalankan beberapa fungsi, dari ini perangkat lunak mulai bergeser menjadi sebuah produk. Baris-baris perintah perangkat lunak yang dijalankan oleh komputer bukan lagi satu-satu tapi sudah seperti banyak proses yang dilakukan secara serempak (multi tasking). Sebuah perangkat lunak mampu menyelesaikan banyak pengguna (multi user) secara cepat/langsung (real time). Pada era ini mulai di kenal system basis data, yang memisahkan antara program (pemroses) dengan data (yang diproses).
Ø Era Mikro
Sejalan dengan semakin luasnya PC dan jaringan komputer di era ini, perangkat lunak juga berkembang untuk memenuhi kebutuhan perorangan. Perangkat lunak dapat dibedakan menjadi perangkat lunak sistem yang bertugas menangani internal dan perangkat lunak aplikasi yang digunakan secara langsung oleh penggunanya untuk keperluan tertentu. Automatisasi yang ada di dalam perangkat lunak mengarah ke suatu jenis kecerdasan buuatan.
Ø Era Modern
Saat ini perangkat lunak sudah terdapat di mana-mana, tidak hanya pada sebuah superkomputer dengan 25 prosesnya, sebuah komputer genggampun telah dilengkapi dengan perangkat lunak yang dapat disinkronkan dengan PC. Tidak hanya komputer, bahkan peralatan seperti telepon,TV, hingga ke mesin cuci, AC dan microwave, telah ditanamkan perangkat lunak bukan lagi pekerjaan segelintir orang, tetapi telah menjadi pekerjaan banyak orang, dengan beberapa tahapan proses yang melibatkan berbagai disiplin ilmu dalam perancangannya. Tingkat kecerdasan yang ditunjukkan oleh perangkat lunak pun semakin meningkat, selain permasalahan teknis, perangkat lunak sekarang mulai bisa mengenal suara dan gambar.



