NAMA KELOMPOK: BANGKIT SANJAYA GEDE WIKA WINUTARA ANGGA PRADASTA MANDALA ADITYA
KATA PENGANTAR
Puji syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa karena berkat rahmatNya penulis dapat menyusun paper yang singkat ini dengan judul METODE SOFTWARE ENGINEERING (SPIRALL,WATERFALL,PROTOTYPING) Penulis menyadari akan keterbatasan kemampuan baik ilmu maupun pengalaman, maka penulis yakin laporan ini banyak kekurangannya. Karena itu kritik sehat yang sifatnya membangun akan penulis terima dengan lapang dada dan hati yang terbuka demi kesempurnaannya. Tak lupa penulis mohon maaf bila penyajian tidak berkenan dihati pembaca dan semoga dalam kesempatan lain penulis bisa menyusun paper yang lebih sempurna lagi. Akhirnya tak lupa penulis menghaturkan Puji syukur karena atas karunia-Nya penulis bisa menyelesaikan paper ini tepat pada waktunya.
Metode
Metode software engineering memberikan tehnik-tehnik bagaimana membentuk software. Terdiri dari serangkaian tugas seperti perencanaan dan estimasi proyek Software merupakan bagian terbesar dari sistem, sehingga 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 lain dan database Analisis kebutuhan sistem dan software Merupakan suatu proses pengumpulan kebutuhan software untuk mengerti sifat -sifat program yang dibentuk software engineering, atau analis harus mengerti fungsi software yang diinginkan, performance dan interfase terhadap elemen lainnya. Hasil dari analisis ini didokumentasikan dan ditinjau bersama-sama klien. Desain struktur data Desain software sesungguhnya adalah proses multi step (proses yang terdiri dari banyak langkah) yang memfokuskan pada 3 atribut program yang berbeda, yaitu struktur data, arsitektur software dan rincian prosedur. Sebelum membedakan, definisi dari pengembangan software dan pengembangan sistem informasi adalah sebagai berikut : Arsitektur program dan prosedur algoritma Proses desain menterjemahkan kebutuhan kedalam representasi software yang dapat diukur kualitasnya sebelum coding dimulai. Hasil dari desain ini didokumentasikan dan menjadi bagian dari konfigurasi software.
Coding Merupakan proses penterjemahan desain ke dalam bentuk yang dapat dibaca oleh mesin Testing dan pemeliharaan Setelah objek program dihasilkan, testing 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. Sementara proses pemeliharaaan atau maintenance dilakukan karena software mengalami error, atau harus diadaptasi untuk menyesuaikan dengan lingkungan external. 2.
Peralatan pengembangan software memberikan dukungan atau semiautomasi untuk metode, contohnya: 1. CASE (Case Aided Software Engineering), yaitu suatu software yang menggabungkan software, hardware, dan database software engineering untuk menghasilkan suatu lingkungan software engineering. 2. Database Software Engineering, adalah sebuah struktur data yang berisi informasi penting tentang analisis, desain, kode dan testing. 3. Analogi dengan CASE pada hardware adalah : CAD, CAM, CAE. 3.
Prosedur
Prosedur terdiri dari, urut-urutan di mana metode tersebut diterapkan, dokumen, laporanlaporan, formulir-formulir yang diperlukan, kontrol kualitas software, dan koordinasi perubahan yang terjadi pada software. Tiga Metode Dalam Pengembangan Software yang secara luas digunakan, yaitu: 1. System Development Life Cycle (SDLC) Adalah proses pengembangan dimana keseluruhan proses pengembangan sistem dilakukan melalui proses multi-langkah dari investigasi persyaratan awal melalui analisis, desain, implementasi dan pemeliharaan (sumber: Russel Kay, Computer World). SDLC terdiri dari beberapa jenis model antara lain model Waterfall, Prototyping, dan Spiral. Pada model waterfall output dari langkah yang satu akan menjadi input bagi langkah selanjutnya.
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 aspek sistematis model sequensial linier. Model iteratif ditandai dengan tingkah laku yang memungkinkan pengembang mengembangkan versi perangkat lunak yang lebih lengkap secara bertahap. Perangkat lunak dikembangkan dalam deretan pertambahan. Selama awal iterasi, rilis inkremantal bisa berupa model/prototype kertas, kemudian sedikit demi sedikit dihasilkan versi sistem yang lebih lengkap.
Satu lingkaran dari bentuk spiral pada spiral model dibagi menjadi beberapa daerah yang disebut dengan region. Region tersebut dibagi sesuai dengan jumlah aktivitas yang dilakukan dalam spiral model. Tentunya lingkup tugas untuk project yang kecil dan besar berbeda. Untuk project yang besar, setiap region berisi sejumlah tugas-tugas yang tentunya lebih banyak dan kompleks daripada untuk project yang kecil. SE berjalan dari inti spiral berjalan mengitari sirkuit per sirkuit. Sebagai contoh untuk sirkuit pertama dilakukan untuk pembangunan dari spesifikasi dari software dengan mencari kebutuhan dari customer. Untuk sirkuit pertama harus menjalani semua aktivitas yang didefinisikan. Setelah 1 sirkuit terlewati lanjut ke tugas selanjutnya misalnya membangun prototype. Tugas ini juga harus mengitari 1 sirkuit dan begitu terus selanjutnya sampai project selesai. Tidak seperti model-model konvesional dimana setelah SE selesai, maka model tersebut juga dianggap selesai. Akan tetapi hal ini tidak berlaku untuk spiral model, dimana model ini dapat digunakan kembali sepanjang umur dari software tersebut. Pada umumnya, spiral model digunakan untuk beberapa project seperti Concept Development Project (proyek pengembangan konsep), New Product Development Project (proyek pengembangan produk baru), Product Enhancement Project (proyek peningkatan produk), dan Product Maintenance Project (proyek pemeliharaan proyek). Keempat project tersebut berjalan berurutan mengitari sirkuit dari spiral. Sebagai contoh setelah suatu konsep dikembangkan dengan melalui aktivitas2 dari spiral model, maka dilanjutkan dengan proyek selanjutnya yaitu pengembangan produk baru, peningkatan produk, sampai pemeliharaan proyek. Semuanya melalui sirkuit2 dari spiral model.
keadaan di dalam evolusi produk. 5. Tetap mengikuti langkah-langkah 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
MODEL WATERFALL
Nama model ini sebenarnya adalah Linear Sequential Model. Model ini sering disebut dengan classic life cycle atau model waterfall. Model ini adalah model yang muncul pertama kali yaitu sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai didalam Software Engineering (SE). Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing / verification, dan maintenance. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Sebagai contoh tahap desain harus menunggu selesainya tahap sebelumnya yaitu tahap requirement. Secara umum tahapan pada model waterfall dapat dilihat pada gambar berikut :
Gambar di atas adalah tahapan umum dari model proses ini. Akan tetapi Roger S. Pressman memecah model ini menjadi 6 tahapan meskipun secara garis besar sama dengan tahapantahapan model waterfall pada umumnya. Berikut adalah penjelasan dari tahap-tahap yang dilakukan di dalam model ini menurut Pressman: System / Information Engineering and Modeling. Permodelan ini diawali dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. Hal ini sangat penting, mengingat software harus dapat berinteraksi dengan elemen-elemen yang lain seperti hardware, database, dsb. Tahap ini sering disebut dengan Project Definition. Software Requirements Analysis. Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface, dsb. Dari 2 aktivitas tersebut (pencarian kebutuhan sistem dan software) harus didokumentasikan dan ditunjukkan kepada pelanggan. Design. Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas menjadi representasi ke dalam bentuk blueprint software sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Seperti 2 aktivitas sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi dari software. Coding. Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap design yang secara teknis nantinya dikerjakan oleh programmer.
Testing / Verification. Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya. Maintenance. Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada errors kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya.[2]
MODEL PROTOTYPING
Rapid application development (RAD) atau rapid prototyping adalah model proses pembangunan perangkat lunak yang tergolong dalam teknik incremental (bertingkat). RAD menekankan pada siklus pembangunan pendek, singkat, dan cepat. Waktu yang singkat adalah batasan yang penting untuk model ini. Rapid application development menggunakan metode iteratif (berulang) dalam mengembangkan sistem dimana working model (model bekerja) sistem dikonstruksikan di awal tahap pengembangan dengan tujuan menetapkan kebutuhan (requirement) user dan selanjutnya disingkirkan.[1] Working model digunakan kadang-kadang saja sebagai basis desain dan implementasi sistem final.[1]
Penerapan
Model RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat yang dicapai dengan menerapkan : 1. Component based construction ( pemrograman berbasis komponen bukan prosedural). 2. Penekanan pada penggunaan ulang (reuse) komponen perangkat lunak yang telah ada. 3. Pembangkitan kode program otomatis/semi otomatis. 4. Multiple team (banyak tim), tiap tim menyelesaikan satu tugas yang selevel tapi tidak sama. Banyaknya tim tergantung dari area dan kompleksitasnya sistem yang dibangun. Jika keutuhan yang diinginkan pada tahap analisa kebutuhan telah lengkap dan jelas, maka waktu yang dibutuhkan untuk menyelesaikan secara lengkap perangkat lunak yang dibuat adalah berkisar 60 sampai 90 hari. Model RAD hampir sama dengan model waterfall, bedanya siklus pengembangan yang ditempuh model ini sangat pendek dengan penerapan teknik yang cepat. Sistem dibagi-bagi menjadi beberapa modul dan dikerjakan beberapa tim dalam waktu yang hampir bersamaan d alam waktu yang sudah ditentukan. Model ini melibatkan banyak tim, dan setiap tim mengerjakan tugas yang selevel, namun berbeda. Sesuai dengan pembagian modul sistem.
6. penghalusan dan penggabungan dari beberapa tim di akhir proses sangat diperlukan dan ini memerlukan kerja keras. 7. proyek bisa gagal karena waktu yang disepakati tidak dipenuhi 8. risiko teknis yang tinggi juga kurang cocok untuk model ini.
DAFTAR PUSTAKA
[1] Britton, Carol (2001). Object-Oriented Systems Development. McGraw-Hill. hlm. 28-29, 269. ISBN 0-07-709544-8. [2] Buku Software Engineering by Roger S. Pressman http://en.wikipedia.org/wiki/Waterfall_model