1. Era Pioneer. Pada Era Pioneer ini bentuk software komputer pada awalnya adalah
sambungan-sambungan kabel ke antar bagian dalam komputer, Cara dalam mengakses komputer
adalah menggunakan punched card yaitu kartu yang di lubangi. Penggunaan komputer dengan
sebuah program yang digunakan untuk sebuah mesin tertentu dan untuk tujuan tertentu. Di era
ini software komputer merupakan satu kesatuan dengan sebuah hardware komputer.
Hardware komputer
2. Era Stabil. Pada Era ini software komputer yang dijalankan bukan lagi satu-satu, tapi sudah
banyak proses yang di lakukan secara bersamaan (multi tasking). Software Komputer pada era
stabil ini juga mampu menyelesaikan banyak pengguna (multi user) dan secara cepat/langsung
(real time). Di era ini jugalah mulai di kenal sistem basis data, yang memisahkan antara program
dan data .
3. Era Mikro. Pada Era Mikro ini software komputer dapat dibedakan menjadi beberapa bagian
yaitu Software Sistem (Windows, Linux, Machintos, dll), Software Aplikasi (Ms.Office,
OpenOffice, dll) dan Languange Software/Bahasa Pemograman (Assembler, Visual Basic,
Delphi, dll)
4. Era Modern. Pada Era Modern ini software komputer tidak hanya untuk sebuah komputer
tetapi sebuah handphone pun telah di lengkapi dengan sebuah software sistem seperti Android,
Symbian, dll. Tingkat kecerdasan yang ditunjukkan oleh software komputer pun semakin
meningkat, selain permasalahan teknis, software komputer sekarang juga mulai bisa mengenal
suara dan gambar.
Pada tahun 1987, Fred Brooks menulis artikel No Silver Bullet, yang berproposisi bahwa tidak
ada satu teknologi atau praktik yang sanggup mencapai 10 kali lipat perbaikan dalam
produktivitas pengembangan perangkat lunak dalam tempo 10 tahun.
3. Design Patterns - Pada pengembangan software, penggunaan design patern didasarkan pada
observasi bahwa beberapa proyek software gagal sementara proyek yang mirip berhasil (hal ini
dapat berupa pola managemen, pole penjadwalan, pola testing dll). pada desain software,
penggunaan pola didasarkan pada observasi lebih lanjut pada pola desain umum untuk tugas
yang hampir sama digunakan berulangkali untuk proyek yang berhasil.
5. Aspect oriented Programming - Ide utama dibalik aspect oriented programming (AOP)
adalah pemisahan konsentrasi sistem software pada bagian yang berbeda. pada prinsipnya,
pilosofi ini mengijinkan pengembangan sistem yang lebih modular, dengan modularitasnya
terkontrol oleh konsentrasi pengembangan yang berbeda. untuk programmer java,
direkomendasikan untuk mencari AspectJ project
- See more at: http://muhammadfajarsaputro.blogspot.co.id/2013/10/pengertian-software-dan-
sejarah-perkembangan-software.html#sthash.U1gsBxJa.dpuf