Proses software adalah aktivitas yang terkait dalam membuat dan berevolusinya sebuah sistem perangkat
lunak yang meliputi aktivitas umum dalam proses software Spesifikasi, desain dan implementasi, validasi dan
evolusi. Kebutuhan adalah proses menyusun sebuah spesifikasi kebutuhan perangkat lunak Desain dan
implementasi mengubah spesifikasi kedalam program yang dapat dijalankan. Validasi menguji sistem yang
dibangun memenuhi spesifikasi dan kebutuhan user Evolusi terkait dengan perubahan sistem setelah
digunakan Teknologi CASE digunakan untuk membantu dalam aktivitas-aktivitas proses software
Model Software Proses
1. Waterfall Model
Waterfall Model adalah sebuah metode pengembangan software yang bersifat sekuensial . selain ini
Model ini merupakan model yang paling banyak dipakai oleh para pengembang software. Inti dari
metode waterfall adalah pengerjaan dari suatu sistem dilakukan secara berurutan atau secara linear.
Jadi jika langkah satu belum dikerjakan maka tidak akan bisa melakukan pengerjaan langkah 2, 3 dan
seterusnya. Secara otomatis tahapan ke3
akan bisa dilakukan jika tahap ke1
dan ke2
sudah
dilakukan. Ada dua gambaran dari Waterfall Model, biarpun berbeda dalam menggunakan fase tapi
intinya sama.
Fasefase
dalam Waterfall Model menurut Pressman
Fasefase
dalam Waterfall Model menurut Sommervile
Keterkaitan dan pengaruh antar tahap ini ada karena output sebuah tahap dalam Waterfall Model
merupakan input bagi tahap berikutnya, dengan demikian ketidaksempurnaan hasil pelaksanaan tahap
sebelumnya adalah awal ketidaksempurnaan tahap berikutnya. Memperhatikan karakteristik ini, sangat
penting bagi tim pengembang dan perusahaan untuk secara bersamasama
melakukan analisa kebutuhan
dan desain sistem sesempurna mungkin sebelum masuk ke dalam tahap penulisan kode program.
Secara garis besar metode waterfall mempunyai langkahlangkah
sebagai berikut : Analisa, Design,
Code dan Testing, Penerapan dan Pemeliharaan
1. Analisa kebutuhan (Requirement Analysis)/( Requirements analysis and definition)
Langkah ini merupakan analisa terhadap kebutuhan sistem. Pengumpulan data dalam tahap ini bisa
malakukan sebuah penelitian, wawancara atau study literatur. Seorang sistem analis akan menggali
informasi sebanyakbanyaknya
dari user sehingga akan tercipta sebuah sistem komputer yang bisa
melakukan tugastugas
yang diinginkan oleh user tersebut. Tahapan ini akan menghasilkan dokumen
user requirment atau bisa dikatakan sebagai data yang berhubungan dengan keinginanuser dalam
pembuatan sistem. Dokumen ini lah yang akan menjadi acuan sistem analis untuk menterjemahkan ke
dalam bahasa pemprogram.
2. Design sistem (System Design)
Proses desain akan menerjemahkan syarat kebutuhan ke sebuah perancangan perangkat lunak yang
dapat diperkirakan sebelum dibuat coding. Proses ini berfokus pada : struktur data, arsitektur perangkat
lunak, representasi interface, dan detail (algoritma) prosedural. Tahapan ini akan menghasilkan dokumen
yang disebut software requirment. Dokumen inilah yang akan digunakanproggrammer untuk
melakukan aktivitas pembuatan sistemnya.
3. Coding & Testing/penulisan kode Program (Implementation)
Coding merupan penerjemahan design dalam bahasa yang bisa dikenali oleh komputer. Dilakukan oleh
programmer yang akan meterjemahkan transaksi yang diminta oleh user. Tahapan ini lah yang
merupakan tahapan secara nyata dalam mengerjakan suatu sistem. Dalam artian penggunaan komputer
akan dimaksimalkan dalam tahapan ini. Setelah pengkodean selesai maka akan dilakukan testing
terhadap sistem yang telah dibuat tadi. Tujuan testing adalah menemukan kesalahankesalahan
terhadap sistem tersebut dan kemudian bisa diperbaiki.
4. Penerapan / pengujian program (Integration & Testing)
Tahapan ini bisa dikatakan final dalam pembuatan sebuah sistem. Setelah melakukan analisa, design
dan pengkodean maka sistem yang sudah jadi akan digunakan oleh user.
5. Pemeliharaan (Operation & Maintenance)
Perangkat lunak yang sudah disampaikan kepada pelanggan pasti akan mengalami perubahan.
Perubahan tersebut bisa karena mengalami kesalahan karena perangkat lunak harus menyesuaikan
dengan lingkungan (periperal atau sistem operasi baru) baru, atau karena pelanggan membutuhkan
perkembangan fungsional.
Keuntungan Metode Waterfall
● Kualitas dari sistem yang dihasilkan akan baik. Ini dikarenakan oleh pelaksanaannya secara
bertahap. Sehingga tidak terfokus pada tahapan tertentu.
● Document pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan
lengkap sebelum melangkah ke fase berikutnya. Jadi setiap fase atau tahapan akan mempunyai
dokumen tertentu.
● Metode ini masih lebih baik digunakan walaupun sudah tergolong kuno, daripada menggunakan
pendekatan asalasalan.
Selain itu, metode ini juga masih masuk akal jika kebutuhan sudah diketahui
dengan baik.
Kelemahan waterfall
● Diperlukan majemen yang baik, karena proses pengembangan tidak dapat dilakukan secara
berulang sebelum terjadinya suatu produk.
● Kesalahan kecil akan menjadi masalah besar jika tidak diketahui sejak awal pengembangan yang
berakibat pada tahapan selanjutnya.
● Pelanggan sulit menyatakan kebutuhan secara eksplisit sehingga tidak dapat mengakomodasi
ketidakpastian pada saat awal pengembangan.
● Pelanggan harus sabar, karena pembuatan perangkat lunak akan dimulai ketika tahap desain sudah
selesai. Sedangkan pada tahap sebelum desain bisa memakan waktu yang lama.
● Pada kenyataannya, jarang mengikuti urutan sekuensial seperti pada teori. Iterasi sering terjadi
menyebabkan masalah baru.
2. Model spiral
Model spiral pada awalnya diusulkan oleh Boehm, adalah model proses perangkat lunak evolusioner
yang merangkai sifat iteratif dari prototype dengan cara kontrol dan aspeksistematis model sequensial
linier.
Model iteratif ditandai dengan tingkah laku yang memungkinkan pengembangmengembangkan
versi perangkat lunak yang lebih lengkap secara bertahap. Perangkat lunakdikembangkan dalam
deretan pertambahan. Selama awal iterasi, rilis inkremantal bisaberupa model/prototype kertas,
kemudian sedikit demi sedikit dihasilkan versi sistem yanglebih lengkap.
TahapanTahapan
Model Spiral
Model spiral dibagi menjadi enam wilayah tugas yaitu:
1. Komunikasi pelanggan
Yaitu tugastugas
untuk membangun komunikasi antara pelanggan dan kebutuhankebutuhan yang
diinginkan oleh pelanggan
2. Perencanaan
Yaitu tugastugas
untuk mendefinisikan sumber daya, ketepatan waktu, dan proyek
informasi lain yg berhubungan.
3. Analisis Resiko
Yaitu tugastugas
yang dibutuhkan untuk menaksir resikomanajemen dan teknis.
4. Perekayasaan
Yaitu tugas yang dibutuhkan untuk membangun satu atau lebih representasi dari
apikasi tersebut.
5. Konstruksi dan peluncuran
Yaitu tugastugas
yang dibutuhkan untuk mengkonstruksi, menguji, memasang , dan
memberi pelayanan kepada pemakai.
6. Evaluasi Pelanggan
Yaitu tugastugas
untuk mendapatkan umpan balik dari pelanggan.
Kelebihan dan Kelemahan Model Spiral
a. Kelebihan model Spiral :
1. Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak
komputer.
2. Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar
3. Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap
resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses .
4. Menggunakan prototipe sebagai mekanisme pengurangan resiko dan pada setiap
keadaan di dalam evolusi produk.
5. Tetap mengikuti langkahlangkah
dalam siklus kehidupan klasik dan memasukkannya
ke dalam kerangka kerja iteratif .
6. Membutuhkan pertimbangan langsung terhadp resiko teknis sehingga mengurangi
resiko sebelum menjadi permaslahan yang serius.
b. Kelemahan model Spiral :
1. Sulit untuk menyakinkan pelanggan bahwa pendekatan evolusioner ini bisa dikontrol.
2. Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang
serius jika resiko mayor tidak ditemukan dan diatur.
3. Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolut
3. Prototyping Model
Prototyping adalah salah satu pendekatan dalam rekayasa perangkat lunak yang secara langsung
mendemonstrasikan bagaimana sebuah perangkat lunak atau komponenkomponen
perangkat lunak
akan bekerja dalam lingkungannya sebelum tahapan konstruksi aktual dilakukan (Howard, 1997).
• Reusable prototype : Prototype yang akan ditransformasikan menjadi produk final.
• Throwaway prototype : Prototype yang akan dibuang begitu selesai menjalankan maksudnya.
• Input/output prototype : Prototype yang terbatas pada antar muka pengguna (user interface).
• Processing prototype : Prototype yang meliputi perawatan file dasar dan prosesproses
transaksi.
• System prototype : Prototype yang berupa model lengkap dari perangkat lunak.
Tahaptahap
dalam prototyping boleh dikata merupakan tahaptahap
yang dipercepat. Strategi utama
dalam prototyping adalah kerjakan yang mudah terlebih dahulu dan sampaikan hasil kepada pengguna
sesegera mungkin. Harris (2003) membagi prototyping dalam enam tahapan seperti terlihat pada
gambar. Tahapantahapan
secara ringkas dapat dijelaskan sebagai berikut:
• Identifikasi kandidat prototyping. Kandidat dalam kasus ini meliputi user interface (menu, dialog, input
dan output), filefile
transaksi utama, danfungsifungsi
pemrosesan sederhana.
• Rancang bangun prototype dengan bantuan software seperti word processor, spreadsheet, database,
pengolah grafik, dan software CASE (ComputerAided
System Engineering).
• Uji prototype untuk memastikan prototype dapat dengan mudah dijalankan untuk tujuan demonstrasi.
• Siapkan prototype USD (User’s System Diagram) untuk mengidentifikasi bagianbagian
dari
perangkat lunak yang diprototypekan.
• Evaluasi dengan pengguna untuk mengevaluasi prototype dan melakukan perubahan jika diperlukan.
• Transformasikan prototype menjadi perangkat lunak yang beroperasi penuh dengan melakukan
penghilangan kodekode
yang tidak dibutuhkan, penambahan programprogram
yang memang
dibutuhkan dan perbaikan dan pengujian perangkat lunak secara berulang.
Keuntungan menggunakan model Prototype dalam pembuatan sebuah software adalah karena model ini
bisa:
1.membuat komunikasi antara developer dan customer lebih mudah
2.memecahkan masalah penerimaan customer terhadap software
3.memberikan pada customer bukti awal konsep software
4.menciptakan kejelasan pada tahap awal desain software
5.mengumpulkan user requirement yang valid dari customer
6.menambahkan partisipasi yang membangun dari pihak user
7.mengelola perubahan user requirement
8.mengatasi ketidakjelasan produk
9.membuat kualitas software lebih terjamin
Meskipun demikian, model Prototype ini juga mempunyai kekurangan, yaitu
1.sulitnya menentukan berapa kali harus bertemu dengan customer
2.proyek bisa dijalankan tanpa batasan waktu yang jelas
3.harus mengatasi konflik antara developer dan customer
4.mengukur tahapan pembuatan software tanpa batasan yang jelas
5.permintaan yang berlebihan dari customer bisa muncul
6.customer tidak peduli terhadap proyek software
4. Incremental model
Incremental model adalah model pengembangan sistem pada software engineering berdasarkan
requirement software yang dipecah menjadi beberapa fungsi atau bagian sehingga model
pengembangannya secara bertahap. dilain pihak ada mengartikan model incremental sebagai
perbaikan dari model waterfall dan sebagai standar pendekatan topdown. Layaknya Model
Waterfall, model ini pun juga memiliki tahapan tahapan untuk perancangan perangkat lunaknya,
yaitu:
1. Requirement , Requirment adalah proses tahapan awal yang dilakukan pada incremental
model adalah penentuan kebutuhan atau analisis kebutuhan.
2. Specification, Specification adalah proses spesifikasi dimana menggunakan analisis
kebutuhan sebagai acuannya.
3. Architecture Design, adalah tahap selanjutnya, perancangan software yang terbuka agar
dapat diterapkan sistem pembangunan perbagian
pada tahapan selanjutnya.
4. Code setelah melakukan proses desain selanjutnya ada pengkodean.
5. Test merupakan tahap pengujian dalam model ini.
Tahapantahapan
tersebut dilakukan secara berurutan. Setiap bagian yang sudah selesai
dilakukan testing, dikirim ke pemakai untuk langsung dapat digunakan. Pada incremental model,
tiga tahapan awal harus diselesaikan terlebih dahulu sebelum sebelum tahap membangun tiap
increment. Untuk mengantisipasi kondisi yang terjadi pada incremental model, diperkenalkan
model More Risky Incremental Model. Model ini menerapkan sistem kerja yang paralel. Setelah
daftar kebutuhan didapatkan dari pemakai, tim spesifikasi membuat spesifikasi untuk modul
pertama. Setelah spesifikasi pertama selesai, tim desain menindak lanjuti. Tim spesifikasi
sebelumnya juga langsung membuat spesifikasi untuk model kedua, dan seterusnya. Jadi, tidak
harus menunggu modul pertama selesai hingga dikirim ke user.
Beberapa Kelebihan Dari Mode Incremental atara lain :
1. Merupakan model dengan manajemen yang sederhana
2. Pengguna tidak perlu menunggu sampai seluruh sistem dikirim untuk mengambil
keuntungan dari sistem tersebut. Increment yang pertama sudah memenuhi persyaratan
mereka yang paling kritis, sehingga perangkat lunak dapat segera digunakan.
3. Resiko untuk kegagalan proyek secara keseluruhan lebih rendah. Walaupun masalah
masih dapat ditemukan pada beberapa increment. Karena layanan dengan prioritas
tertinggi diserahkan pertama dan increment berikutnya diintegrasikan dengannya,
sangatlah penting bahwa layanan sistem yang paling penting mengalami pengujian yang
ketat. Ini berarti bahwa pengguna akan memiliki kemungkinan kecil untuk memenuhi
kegagalan perangkat lunak pada increment sistem yang paling bawah.
4. Nilai penggunaan dapat ditentukan pada setiap increment sehingga fungsionalitas sistem
disediakan lebih awal.
5. Memiliki risiko lebih rendah terhadap keseluruhan pengembagan sistem,
6. Prioritas tertinggi pada pelayanan sistem adalah yang paling diuji
Kelemahannya adalah :
1. kemungkinan tiap bagian tidak dapat diintegrasikan
2. Dapat menjadi build and Fix Model, karena kemampuannya untuk selalu mendapat
perubahan selama proses rekayasa berlangsung
3. Harus Open Architecture
4. Mungkin terjadi kesulitan untuk memetakan kebutuhan pengguna ke dalam rencana
spesifikasi masingmasing
hasil increment.
Tidak ada komentar:
Posting Komentar