Selasa, 16 Desember 2008

Software engineering terdiri dari 3 elemen kunci, yaitu :
1. Metode
Metode ini terdiri dari serangkaian tugas :
• Perencanaan & estimasi proyek
• Analisis kebutuhan sistem dan software
• Desain struktur data
• Arsitektur program dan prosedur algoritma
• Coding, Testing dan pemeliharaan
2. Peralatan (Tools)
Peralatan software engineering memberikan dukungan atau semiautomasi untuk metode. Contohnya :
• CASE yaitu suatu software yang menggabungkan software, hardware, dan database software engineering untuk menghasilkan suatu lingkungan software engineering.
• Database Software Engineering, adalah sebuah struktur data yang berisi informasi penting tentang analisis, desain, kode dan testing.
• Analogi dengan CASE pada hardware adalah : CAD, CAM, CAE
3. Prosedur
Terdiri dari :
- urut-urutan di mana metode tersebut diterapkan
- dokumen, laporan-laporan, formulir-formulir yang diperlukan
- mengontrol kualitas software
- mengkoordinasi perubahan yang terjadi pada software

Model-model dalam proses pengembangan perangkat lunak
1. Model Waterfall - Classic Life Cycle Paradigm
Keterangan :
a. System Engineering
Karena software merupakan bagian terbesar dari sistem, maka pekerjaan dimulai dengan cara menerapkan kebutuhan semua elemen sistem dan mengalokasikan sebagian kebutuhan tersebut ke software. Pandangan terhadap sistem adalah penting, terutama pada saat software harus berhubungan dengan elemen lain, seperti Hardware, Software, dan Database
b. Analisis kebutuhan software
Suatu proses pengumpulan kebutuhan software untuk mengerti sifat-sifat program yang dibentuk software engineering, atau analis harus mengerti fungsi software yang diinginkan, performance dan interface terhadap elemen lainnya. Hasil dari analisis ini didokumentasikan dan direview / dibahas / ditinjau bersama-sama customer.
c. Design
Proses desain menterjemahkan kebutuhan ke dalam representasi software yang dapat diukur kualitasnya sebelum mulai coding. Hasil dari desain ini didokumentasikan dan menjadi bagian dari konfigurasi software.
d. Coding
Bentuk rancangan diubah menjadi suatu bahasa pemrograman yang dapat dimengerti oleh mesin komputer.
e. Testing
Segera sesudah objek program dihasilkan, pengetesan program dimulai. Proses testing difokuskan pada logika internal software. Jaminan bahwa semua pernyataan atau statements sudah dites dan lingkungan external menjamin bahwa definisi input akan menghasilkan output yang diinginkan.
f. Maintenance
Software yang sudah dikirim ke customer data berubah karena
- Software mengalami error
- Software harus diadaptasi untuk menyesuaikan dengan lingkungan external, misalnya adanya sistem operasi baru atau peripheral baru.
- Software yang lebih disempurnakan karena adanya permintaan dari customer.
Masalah yang dihadapi dari model siklus hidup klasik adalah :
- Proyek yang sebenarnya jarang mengikuti aliran sequential yang ditawarkan model ini. Iterasi (Pengulangan) selalu terjadi dan menimbulkan masalah pada aplikasi yang dibentuk oleh model ini.
- Seringkali pada awalnya customer sulit menentukan semua kebutuhan secara explisit (jelas).
Customer harus sabar karena versi program yang jalan tidak akan tersedia sampai proyek software selesai dalam waktu yang lama.

2. Model Prototyping
Pendekatan prototype untuk software engineering merupakan langkah yang terbaik ketika customer sulit menentukan input yang lebih terinci, proses yang diinginkan dan output yang diharapkan.
Pada model ini biaya analisis kebutuhan pelanggan meningkat, tetapi biaya-biaya lain seperti untuk perancangan, pengujian, penulisan dokumen terperinci dan perawatan perangkat lunak akan berkurang.
Kekurangan model prototype adalah :
- Sedikitnya analisis menyebabkan miskin akan dokumen dan sulit untuk mengelola dan mengendalikan tahapan-tahapan.
- Pengembang sering membuat kompromi implementasi untuk membuat prototip bekerja dengan cepat, tetapi ketika sistem digabung, ternyata tidak sesuai dengan keinginan, kualitas dan pemakaian jangka panjang.
- Anggapan disisi pemakai bahwa perubahan dapat dilakukan dengan mudah dan secepat prototip.
- Harapan pemakai kadang-kadang tidak realistik, mereka meminta lebih banyak setelah melihat prototip karena itu dibutuhkan perencanaan dan pengendalian yang baik untuk memperoleh waktu penyelesaian yang tepat.

3. Incremental Development
Pengembangan sistem berdasarkan model sistem yang dipecah sehingga model pengembangannya secara increment/bertahap. Kebutuhan pengguna diprioritaskan dan prioritas tertinggi dimasukkan dalam awal increment. Setelah pengembangan suatu increment dimulai, kebutuhan dibekukan dulu hingga increment berikutnya dimulai Validate, increment, Develop, system increment Design system, architecture, Integrate, increment, Validate, system Define outline, requirements, Assign requirements, to increments, System incomplete, Final, system.
Keuntungan :
- Nilai penggunan dapat ditentukan pada setiap increament sehingga fungsionalitas sistem disediakan lebih awal,
- Increment awal berupa prototype untuk membantu memahami kebutuhan pada increment berikutnya,
- Memiliki risiko lebih rendah terhadap keseluruhan pengembagan sistem,
- Prioritas tertinggi pada pelayanan sistem adalah yang paling diuji.

4. Rapid Application Development
Rapid Application Development (RAD) merupakan model proses pengembangan software yang linier sequential yang menggunakan siklus pengembangan yang singkat.
Model RAD merupakan adaptasi High-speed dari model linier sequential yang pengembangannya dilakukan dengan menggunakan pendekatan komponen-based.
Proses RAD memungkinkan untuk membuat fully functional System dalam waktu yang sangat singkat (60 s.d 90 hari).

5. Model Spiral
Model spiral dikembangkan untuk mengabungkan kelebihan model Waterfall dan Prototyping dengan menambahkan elemen baru yaitu analisis resiko.

6. Fourth Generation Technique
Istilah Fourth Generation Technique (4GT) meliputi seperangkat peralatan software yang memungkinkan seorang developer software menerapkan beberapa karakteristik software pada tingkat yang tinggi, yang kemudian menghasilkan source code dan object code secara otomatis sesuai dengan spesifikasi yang ditentukan developer.
Saat ini peralatan / tools 4GT adalah bahasa non prosedur untuk database query, report generation, manipulasi data, definisi dan interaksi layar, pembentukan object dan source, kemampuan grafik yang tinggi, dan kemampuan spreadsheet.
Masalah yang dihadapi dalam model 4GT adalah adanya sebagian orang yang beranggapan bahwa :
a. peralatan 4GT tidak semudah penggunaan bahasa pemrograman,
b. source code yang dihasilkan oleh peralatan ini tidak efisien,
c. pemeliharaan sistem software besar yang dikembangkan dengan 4GT masih merupakan tanda tanya.

7. Model Kombinasi -Combining Paradigm

Keterangan :
Model ini menggabungkan keuntungan-keuntungan dari beberapa model sebelumnya. Seperti pada model sebelumnya, model kombinasi ini dimulai dengan langkah pengumpulan kebutuhan.
Pendekatan yang dapat diambil adalah pendekatan siklus hidup klasik (analisis sistem dan analisis kebutuhan software) atau dapat juga menggunakan pendekatan seperti prototyping jika definisi masalahnya tidak terlalu formal.
Jika kebutuhan untuk fungsi dan performance software diketahui dan dimengerti, pendekatan yang dianjurkan adalah model siklus hidup klasik. Sebaliknya, jika aplikasi software menuntut interaksi yang sering antara manusia dan mesin, membutuhkan algoritma yang tidak dapat dibuktikan, atau membutuhkan tehnik output / kontrol, maka pendekatan yang dianjurkan adalah model prototyping.

1 komentar:

jadmikoz mengatakan...

bingung mau comment di mana jadi aku taruh di sini deh.. Blogrool sama RSS aku dong XP http://gembiraku.blogspot.com