Proses Software

Pengertian.
Proses Software merupakan Sekumpulan aktifitas yang saling terkait untuk spesifikasi, desain, implementasi dan testing sistem software.
Proses Software terdiri dari :
1. Spesifikasi
2. Desain
3. Validasi
4. Evolusi

Model Proses Software 
Model proses software adalah representasi abstrak dari proses. Merupakan gambaran dari proses dari beberapa perspektif tertentu
Model Proses Software Generik antara lain :
1. Model waterfall
Membagi dan membedakan fase spesifikasi dan pengembangan.
Langkah-langkah pada model ini adalah :
- Analisa dan definisi kebutuhan
- Desain sistem dan software
- Implementasi dan unit testing
- Integrasi dan testing sistem
- Operasi dan maintenance
Kekurangan dari model waterfall adalah kesulitan untuk mengakomodasi perubahan setelah proses berjalan.
Masalah yang sering dihadapi pada model ini, antara lain :
1. Tidak fleksibel dalam pembagian proyek ke dalam tingkat yang berbeda
2. Sulit untuk merespon perubahan kebutuhan konsumen, sehingga model ini hanya cocok jika kebutuhan sudah dimengerti dengan baik

2. Pengembangan Evolusioner
Spesifikasi dan pengembangan yang terpisah
ada 2 methode dalam 
Pengembangan Evolusioner, yaitu :* Pengembangan Exploratory
bekerja dengan konsumen dan melibatkan sistem akhir dari spesifikasi skema inisial. Dimulai dengan kebutuhan yang dimengerti dengan baik
* Throw-away prototyping
Berkonsentrasi pada eksperiment serta mengerti kebutuhan sistem. Dimulai dengan kebutuhan yang tidak dimengerti dengan baik
Permasalahan
Tidak ada visibilitas proses
- Sistem biasanya tidak terstruktur dengan baik
- Kemampuan khusus (misalnya bahasa untuk prototipe cepat) kemungkinan diperlukan
Aplikasi
- Untuk sistem interaktif berukuran kecil atau tingkat medium.
- Untuk bagian dari sistem besar (misalnya user interface).
- Untuk sistem dengan daur hidup pendek.

3. Pengembangan sistem Formal
Model sistem matematis yang secara formal diterjemahkan ke dalam implementasi.
Pengembangan Sistem Formal Berbasis transformasi dari spesifikasi matematis melalui representasi yang berbeda untuk program yg dapat dieksekusi. Sedangkan transformasi merupakan ‘pemelihara kebenaran’ sehingga dapat menunjukkan program sesuai spesifikasinya.

Permasalahan
- Perlu kemampuan dan training khusus untuk mengaplikasikan teknik ini
- Secara formal sulit untuk menentukan beberapa aspek dari sistem seperti antarmuka user
Aplikasi
- Sistem kritis terutama dimana keselamatan dan keamanan harus dibuat sebelum sistem beroperasi

4. Pengembangan Reuse-based
Penembangan sistem ini Berbasis systematic reuse dimana sistem diintegrasikan dalam komponen yang sudah ada atau sistem COTS (Commercial-off-theshelf).
Tingkatan/ Level Proses pada pengembangan Reuse-based antara lain :
- Analisakomponen
- Modifikasi kebutuhan
- Desain sistem dengan reuse
- Pengembangan dan integrasi
Kebutuhan sistem selalu berkembang selama proyek berlangsung, sehingga iterasi proses dimana level sebelumnya dilakukan rework merupakan bagian dari proses untuk sistem yang besar.
pada proses ini ada 2 pendekatan yang dapat dilakukan, yaitu :
1. Pengembangan Incremental
Pelepasan sistem tidak dalam bentuk pelepasan tunggal, tetapi pengembangan dan pelepasan dibagi ke dalam ‘increment’ dimana setiap ‘increment’ melepaskan bagian dari fungsional yang
dibutuhkan. Kebutuhan user diprioritaskan dan kebutuhan prioritas tertinggi akan dimasukkan dalam ‘increment’ awal. Jika pengembangan ‘increment’ dimulai, kebutuhan dibekukan terlebih dahulu dan setelah itu kebutuhan untuk ‘increment’ selanjutnya dapat dilanjutkan.

Keuntungan Pengembangan Incremental:- Nilai konsumen dapat diserahkan pada setiap ‘increment’ sehingga fungsional sistem tersedia lebih dahulu.
- ‘increment’ awal berfungsi sebagai prototype untuk membantu memperoleh kebutuhan ‘increment’ selanjutnya.
- Resiko lebih rendah dari keseluruhan kegagalan proyek.
- Layanan sistem prioritas tertinggi cenderung menerima testing terbanyak

2. Pengembangan Spiral
Proses direpresentasikan sebagai spiral bukan sebagai urutan aktivitas dengan melihat sistem sebelumnya (backtracking). Setiap loop dalam spiral merepresentasikan fase dalam proses. Tidak ada fase yang tetap seperti spesifikasi atau desain- loop , dalam spiral dipilih tergantung pada apa yang dibutuhkan. Resiko ditaksir secara eksplisit dan penyelesaian sepanjang proses.

Tiap loop dalam Spiral terdiri dari beberapa Sektor, yaitu :
1. Setting Obyektif
yaitu : menentukan tujuan dari Fase yan telah ditentukan.
Batasan-batasan pada proses dan produk serta resiko telah diketahui. Alternatif strategi telah disiapkan berdasarkan resiko-resiko yang telah diketahui dan sudah direncanakan.
2. Penaksiran dan pengurangan resiko
Resiko ditaksir secara detail dan aktifitas didigunakan untuk mengurangi resiko.
3. Pengembangan dan Validasi
Model pengembangan untuk sistem dipilih yang berupa model generik.
4. Perencanaan
Proyek direview dan fase berikutnya dari spiral direncanakan.

Spesifikasi SoftwareDari proses yang sudah berjalan ditentukan layanan apa yang dibutuhkan dan batasan operasi dan pengembangan sistem.
Proses rekayasa kebutuhan terdiri dari :
- Studi kelayakan
- Perolehan dan analisa kebutuhan
- Spesifikasi kebutuhan
- Validasi kebutuhan
Implementasi dan Desain Software
Proses ini mengubah spesifikasi sistem menjadi sistem yang dijalankan.
pengertian Desain software yaitu : Mendesain struktur software yang didapatkan dari spesifikasi.Sedangkan Implementasi yaitu : Mengubah struktur software ke dalam program yang dieksekusi.
Aktifitas desain dan implementasi saling berhubungan dan mungkin terpisah
Aktifitas Proses Desain antara lain :
1. Desain arsitektur
2. Spesifikasi abstrak
3. Desain antar muka
4. Desain komponen
5. Desain struktur data.
6. Desain algoritma.

Metode Desain
Metode Desain merupakan Pendekatan sistematis untuk pengembangan desain software
Desain biasanya terdokumentasi sebagai kumpulan model grafis. Beberapan jenis model Desain yang biasa digunakan antara lain :

  • Model data-flow
  • Model entity-relation-attribute
  • Model struktural
  • Model obyek
Pemrograman dan Debugging
yaitu proses untuk Mengubah desain ke dalam program dan menghilangkan error dari program.
Pemrograman adalah aktifitas personal – tidak ada proses pemrograman generik. Seorang Programmer membawa beberapa program testing untuk menemukan kegagalan dalam program dan menghilangkan kegagalan dalam proses debugging.
Prosses dalam Debuging adalah sebagai berikut :
Mencari error ---> Desain perbaikan error ---->Perbaikan error --->Re-test program.

Validasi Software
Verifikasi dan validasi bertujuan untuk menunjukkan bahwa sistem sesuai spesifikasinya dan sesuai kebutuhan konsumen. Validasi Software melibatkan pengecekan dan review proses dan testing sistem. Sedangkan testing sistem melibatkan eksekusi sistem dengan test case yang diambil dari spesifikasi data riil untuk diproses oleh sistem
Tingkat Testing
1. Testing Unit : Dilakukan tes pada komponen individu
2. Testing Modul : Dilakukan tes pada kumpulan komponan yang berhubungan
3.Testing sub-system : Modul diintegrasikan ke dalam sub sistem dan dilakukan tes. Fokus pada testing antar muka
4. Testing sistem : Testing pada keseluruhan sistem. Tertingi terhadap properti penting.
5. Testing Penerimaan : Testing dengan data konsumen untuk memeriksa apakah dapat diterima.

Evolusi Software
Software bersifat fleksibel dan dapat berubah. Perubahan kebutuhan karena perubahan lingkungan bisnis, software yang mendukung bisnis juga harus terlibat dan berubah, Meskipun terdapat batas antara pengembangan
dan evolusi (pemeliharaan), peningkatan yang tidak berhubungan menyebabkan sistem sedikit demi sedikit menjadi sebuah sistem baru.


Tidak ada komentar

Leave a Reply