- Metode : 'how to' yang bersifat teknis
Meliputi bidang-bidang perencanaan proyek, estimasi, analisis persyaratan, perancangan, coding, pengujian, dan pemeliharaan.
- Tool : memberikan dukungan automasi bagi metode
- Prosedur : mengintegrasikan metode dan tool
Siklus Klasik (Model Air Terjun)
Berdasarkan siklus konvensional dalam bidang rekayasa lainnya, dengan pendekatan sekuensial yang sistematis.
Tahapan-tahapan dalam siklus klasik :
- Analisis dan rekayasa sistem : perangkat lunak merupakan bagian dari sebuah sistem, untuk mendapatkan gambaran yang meluas pada aras sistem.
- Analisis persyaratan : fokus lebih terarah ke perangkat lunak, berusaha mengetahui aspek 'what', melibatkan pemakai dan pengembang.
- Perancangan : menerjemahkan persyaratan menjadi suatu bentuk representasi yang dapat dievaluasi kualitasnya sebelum coding dilakukan.
- Coding (penulisan program) : penerjemahan rancangan ke dalam bentuk yang dapat dimengerti komputer, menggunakan bahasa pemrograman teretentu.
- Pengujian : berfokus pada rincian logikal dari perangkat lunak, bertujuan mengungkap dan menghilangkan kesalahan-kesalahan yang ada sehingga perangkat lunak bekerja sesuai dengan yang diharapkan.
- Pemeliharaan : meliputi kegiatan-kegiatan koreksi kesalahan dan penyesuaian perangkat lunak terhadap perubahan lingkungannya.
Problem : ketidaksadaran bahwa prototipe bukan hasil yang diharapkan.
- Pemakai : tidak sabar menunggu perangkat lunak yang sebenarnya.
- Pengembang : pemakaian teknik dan tools yang tidak optimal pada prototipe yang akhirnya tetap digunakan pada perangkat lunak yang sesungguhnya.
Model Spiral
Menggabungkan keuntungan-keuntungan model air terjun dan prototyping, dan memasukkan aktivitas analisis resiko (risk analysis).
Melibatkan proses iterasi, tiap iterasi bekerja pada satu 'level produk' (dari level prototipe sampai pada level perangkat lunak yang diinginkan). Tiap perpindahan level didahului oleh analisis resiko.
Terdiri dari empat aktivitas utama :
- Perencanaan : penentuan sasaran, alternatif solusi, dan hambatan.
- Analisis resiko : analisis alternatif solusi dan identifikasi resiko.
- Perekayasaan : pengembangan produk pada 'level berikutnya'.
- Evaluasi oleh pemakai : diterapkan pada hasil proses perekayasaan.
Problem : menuntut keahlian dalam bidang analisis resiko.