Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
SIKLUS HIDUP PERANGKAT LUNAK
Untuk Memenuhi Tugas Mata Kuliah Rekayasa Perangkat Lunak
Dosen Pembimbing :
Wachyu Hari Haji, S.Kom, MM
Disusun Oleh :
Fadhilla Eka Hentino / 41813120051
UNIVERSITAS MERCU BUANA JAKARTA
FAKULTAS ILMU KOMPUTER
JURUSAN SISTEM INFORMASI
Maret 2015
SIKLUS HIDUP PERANGKAT LUNAK
I. DEFINISI SIKLUS HIDUP PERANGKAT LUNAK
Siklus Hidup Perangkat Lunak atau Software Development Life Cycle (SWDLC) adalah
suatu siklus atau tahapan dalam suatu projek pembuatan perangkat lunak atau sistem dimana
siklus ini terdiri dari fase menemukan masalah,menganalisa kebutuhan , pembuatan hingga tahap
pemeliharaan perangkat lunak atau sistem. Siklus Hidup Perangkat Lunak merupakan kerangka
terstandar sesuai ISO/IEC 12207 atau Standar Internasional dalam proses pembangunan
perangkat lunak.
Tujuan dari Siklus Hidup Perangkat Lunak ini adalah untuk standarisasi dalam
mendefinisikan seluruh kebutuhan dalam membangun perangkat lunak agar produk yang
dibangun memiliki kualitas yang baik , mempermudah perencanaan projek dan meningkatkan
efisiensi kerja dalam membangun perangkat lunak.
II. TAHAPAN DALAM SIKLUS HIDUP PERANGKAT LUNAK
1. Requirement Analysis and Planning
Requirement Analysis and Planning atau Analisa Kebutuhan dan Perencanaan adalah
salah satu fase penting dalam siklus hidup perangkat lunak karena pada fase ini, seluruh masalah
dan kebutuhan yang diperlukan oleh pengguna perangkat lunak ditemukan agar tujuan serta
manfaat dari perangkat lunak benar – benar tercapai dan bisa memecahkan masalah para
pengguna.
Pada umumnya di fase ini manajer projek dan beberapa dari tim IT akan melakukan
pertemuan dengan pengguna, tim divisi penjualan , tim divisi pemasaran , serta tim analis sistem
atau bisnis pada perusahaan pengguna untuk membicarakan tentang apa saja masalah dan
kebutuhan yang sekiranya bisa di pecahkan oleh sistem yang akan dibangun selain itu pertemuan
ini untuk melakukan studi akan batasan - batasan pada sisi ekonomi, operasional dan teknis
termasuk budget dan durasi waktu projek agar ketika projek tersebut dijalankan setiap tim yang
nantinya bekerja bisa mempunyai tanggung jawab serta tugas yang jelas.
Pertemuan ini pada akhirnya akan menciptakan dokumen yang berisi apa saja kebutuhan
yang akan didesain dan dibangun pada saat projek berlangsung. Pada umumnya dokumen
tersebut bernama Software Requirement Specification (SRS ) atau Business Requirement
Document (BRD)
2. Design
Pada fase ini, arsitek sistem akan memikirkan desain terbaik untuk perangkat lunak yang
akan dibangun agar terintegrasi dengan sistem yang telah ada.Pada tahap ini juga dibahas tentang
teknologi informasi apa yang paling sesuai dengan kebutuhan perusahaan yang bersangkutan,
serta mempelajari fungsi-fungsi manajemen dan aspek-aspek bisnis terkait yang akan
berpengaruh.Dalam mendesain, para arsitek/analis sistem akan menggunakan dokumen SRS atau
BRD sebagai acuan dalam proses desain sistem.
Pada umumnya fase ini terdapat 2 bagian besar yang akan di rancang yaitu :
a. Perangkat Lunak
Pada desain perangkat lunak, akan dirancang mengenai metode , bahasa
pemrogramman , tampilan , workflow serta fitur apa yang akan terdapat pada perangkat lunak
nanti.Pada bagian ini pula arsitek/analis sistem akan mencari metode agar tim development
perangkat lunak bisa bekerja secara efektif tetapi tetap menghasilkan perangkat lunak yang baik.
b. Basis Data
Pada desain basis data, akan dirancang mengenai alur pemrosesan data ,
Permodelan data yang mencakup Entity Relationship Diagram (ERD), Conceptual Data Model
(CDM), dan Physical Data Model (PDM), serta Permodelan proses dengan Unified Modeling
Language.
Selain mendesain 2 hal diatas, pada fase ini juga akan ditentukan pembagian durasi waktu
pada fase – fase setelah desain , sumber daya serta kebutuhan – kebutuhan tambahan agar projek
bisa selesai dengan budget yang sesuai dan waktu yang tepat sesuai kesepakatan pada fase
sebelumnya.Pada fase ini akan menghasilkan dokumen Design Document Specification (DDS).
3. Development
Pada fase inilah pembangunan sistem sebenarnya dimulai.modul – modul aplikasi dibuat
berdasarkan DDS yang dihasilkan pada fase sebelumnya.Para pengembang aplikasi atau
developer akan menggunakan bahasa pemrogramman , metode dan workflow yang telah didesain
sebelumnya.tahap ini juga biasa disebut pengkodean atau coding karena desain pada DDS akan
diubah kedalam kode bahasa pemrogramman tingkat tinggi lalu di definisikan oleh tool
pemrogramman seperti compiler,interpreter , debbuger dll agar bisa dibaca oleh bahasa mesin.
Selain itu pada sisi basis data juga akan dibangun basis data yang sesuai dengan DDS
agar bisa saling mendukung dengan aplikasi.Membangun sistem pada basis data adalah salah
satu bagian yang penting apalagi jika aplikasi yang dibuat merupakan Data Oriented Application
atau aplikasi yang berorientasi pada data.
4. Testing
Testing atau pengujian adalah tahap dimana sistem yang telah didevelopment akan diuji
apakah sistem sudah sesuai kebutuhan dan tidak ada masalah atau error ketika dioperasikan serta
mengevaluasi sistem apakah sudah memenuhi syarat – syarat tertentu agar sistem yang telah
dibangun dapat bekerja dengan baik.
Secara umum , tahapan pada fase testing terdapat 2 tahap yaitu System Integration
Testing (SIT) dan User Acceptances System (UAT).
a. System Integration Testing (SIT)
System Integration Testing merupakan tahapan testing yang bersifat teknis.pada tahap ini
sistem atau aplikasi akan di test berdasarkan sudut pandang teknis seperti apakah fungsi atau
fitur pada sistem telah berjalan tanpa error .Pada umumnya tester pada tahap ini merupakan
orang – orang yang berlatar belakang IT karena tujuan SIT adalah menemukan masalah pada sisi
teknis aplikasi yang meliputi fitur,fungsi,penulisan kode/koding maupun prosedur.
Bagian umum pada SIT bisa dibagi 3 bagian , Yaitu :
Unit Testing adalah bagian terkecil dari tahapan testing yang berupa testing pada fungsi
dasar atau fitur terkecil dari aplikasi seperti fungsi dari button yang ada atau sudah sesuaikah jika
membuka suatu menu.Pada unit testing juga dilakukan pengecekan terhadap kode dan prosedur
yang telah dibuat apakah terdapat error atau tidak.
Integration Testing adalah tahapan testing setelah dilakukannya Unit Testing. Integration
Testing adalah tahap untuk memeriksa bagaimana fungsi – fungsi yang telah melalui unit testing
bisa bekerja sebagai suatu kombinasi, bukan lagi sebagai suatu unit yang individual. Sebagai
contoh, jika memiliki sebuah proses yang dikerjakan oleh dua fungsi, di mana satu fungsi
menggunakan hasil output dari fungsi yang lainnya,apakah kedua function ini telah berjalan
dengan baik dan menghasilkan output yang diinginkan.
System Testing adalah tahapan testing sistem atau aplikasi yang bersifat keseluruhan
setelah sistem selesai didevelop. Karena itu,setiap fungsi atau fitur pada sistem secara
keseluruhan harus berfungsi sebagaimana mestinya.
b. User Acceptances testing (UAT)
User Acceptances testing (UAT) adalah tahapan testing setelah semua tahapan SIT
selesai dilakukan.UAT merupakan testing yang lebih bersifat kepada fungsionalitas sistem bukan
lagi testing yang bersifat teknis seperti SIT.Pada UAT , tester yang melakukan testing umumnya
adalah pengguna akhir atau End-User yang nantinya akan menggunakan sistem untuk kegiatan
operasional. Testing pada tahap ini merupakan simulasi penggunaan nyata dari sistem pada
lingkungan yang sebenarnya. Proses ini merupakan salah satu tahap final sebelum end-user
menyetujui dan menerima penerapan sistem aplikasi yang baru oleh sebab itu UAT sudah
berorientasi pada kevalidan data atau hasil dari sistem.
5. Implementaion
Implementation atau Implementasi adalah tahapan dimana sistem yang telah didesain ,
dibangun dan ditesting telah siap untuk dirilis pada environment produksi untuk digunakan
secara nyata oleh End-user untuk membantu mengatasi masalah sesuai tujuan utama pembuatan
sistem.Tahapan ini juga biasa disebut Deployment.
6. Maintenance
Setelah tahap Implementasi selesai dan sistem telah digunakan pada penggunaan nyata
maka tahapan selanjutnya adalah maintenance atau perawatan sistem. Tujuannya adalah untuk
menjaga agar sistem akan terus berjalan sesuai fungsi nya hingga sistem tersebut sudah tidak
relevan lagi untuk mengatasi masalah-masalah baru .
III. MODEL – MODEL PADA SIKLUS HIDUP PERANGKAT LUNAK
Dalam implementasinya, terdapat berbagai model penerapan SLDC dalam
pengembangan suatu sistem. Masing-masing model tersebut memiliki keunggulan dan
kelemahan masing-masing sesuai dengan kebutuhan yang diperlukan. Model-model SLDC yang
ada diantaranya :
a. Waterfall model
Kelebihan waterfall model adalah kemudahan serta kejelasan interpretasinya. Model ini
terstruktur serta cocok diadaptasi untuk management control. Model ini cocok untuk sistem
yang mengedepankan kualitas dibandingkan biaya pengembangan atau waktu pengembangan.
Kelemahan model ini terletak pada sifatnya yang tidak fleksibel, dimana semua
persyaratan harusdiketahui sejak awal serta hanya sedikit peluang bagi end user untuk meninjau
sistem ini sampai akhir pengembangan.model ini tepat digunakan ketika semua persyaratan
sudah diketahui di awal,definsi dari produk jelas dan tidak berubah-ubah, teknologinya dapat
dimengerti, ketika mengembangkan suatu software yang merupakan versi upgrade dari model
yang sudah ada atau merubah sebuah model yang sudah ada ke dalam platform baru.
b. V-Shaped SDLC model
Kelebihan model ini adalah pada kemudahan penggunaannya, serta menekankan pada
dilakukannya verifikasi dan validasi pada tahap-tahap awal pengembangannya ,sehingga user
dapat lebih terlibat dalam pembuatannya. Setiap output mampu di test pada tahap awal, serta
mudah dimonitor karena memiliki milestones yang jelas.
Kelemahan dari model ini adalah tidak dapat digunakan untuk permasalahan yang terjadi
secara bersamaan, iterasi, tidak dapat digunakan untuk perubahan-perubahan besar dalam
persyaratan, dan tidak bisa menganalisis resiko. Model ini cocok digunakan pada sistem yang
menuntut kehandalan tinggi, pada sistem yang semua persyaratannya diketahui, dan bisa
dimodifikasi untuk menyesuaikan dengan perubahan setelah fase analisis, serta solusi dan
teknologinya telah jelas diketahui.
c. Structured Evolutionary Prototyping Model
Kelebihan model ini terletak pada keterbukaannya. User dapat melihat persyaratan
sistemnya selagi dikumpulkan. Model ini juga memungkinkan developer untuk belajar dari
user,sehingga mendapatkan produk akhir yang lebih tepat bagi user. Model ini juga fleksibel
dalam pembuatannya.
Kelemahannya adalah metode ini dapat sulit di maintain, memiliki reputasi metode -
metodeyang mengutamakan kecepatan pengerjaan. Model ini cocok untuk kondisi ketika
persyaratan tidak stabil, persyaratan berada pada tahap klarifikasi pada model waterfall, ketika
mengembangkan antarmuka pengguna, merupakan pengembangan yang orisinil, serta ketika
desain dan analisisnya bersifat objective oriented.
d. Rapid Application Model
Model RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat yang
dicapai dengan menerapkan :
Component based construction ( pemrograman berbasis komponen bukan prosedural).
Penekanan pada penggunaan ulang (reuse) komponen perangkat lunak yang telah ada.
Pembangkitan kode program otomatis/semi otomatis.
Multiple team (banyak tim), tiap tim menyelesaikan satu tugas yang selevel tapi tidak
sama. Banyaknya tim tergantung dari area dan kompleksitasnya sistem yang dibangun.
Kelebihan metode ini adalah pada waktunya. Metode ini dapat mengurangi waktu siklus
serta meningkatkan produktifitas dengan lebih efisien. Model ini juga lebih berorientasi pada
user, dimana user berperan serta dalam keseluruhan tahap pengembangan.
Kelemahannya adalah menuntut user yang dapat bereaksi dengan cepat terhadap
perubahan, terdapat resiko tidak bisa closure, serta sulit digunakan dengan sistem legacy. Model
ini digunakan ketika persyaratannya sudah jelas diketahui, user terlibat selama proses
pembuatan, tidak memerlukan performa yang terlalu tinggi, serta memiliki resiko teknis yang
rendah.
e. Spiral model
Spiral model adalah model proses yang pendekatannya bersifat realistis pada sistem besar
karena proses dari awal sampai proses pengiriman dan perbaikan dapat dipahami dnegan baik
oleh user dan developer. Model ini mempunyai rangkaian kerja yang iterasi (peningkatan pada
model) awal yang berbentuk prototype dan kemudian iterasi selanjutnya akan menjadi
perkembangan dari model sebelumnya. Model ini dapat terus digunakan meskipun sistem sudah
dikirimkan karena proses (siklus)dapat berputar lagi jika ada perubahan pada sistem sampai tidak
ada permintaan perubahan pada sistem oleh user.
Kelebihan model Spiral :
Setiap tahap pengerjaan dibuat prototyping sehingga kekurangan dan apa yang
diharapkan oleh client dapat diperjelas dan juga dapat menjadi acuan untuk client dalam
mencari kekurangan kebutuhan.
Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar.
Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak
komputer.
Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko
setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses.
Menggunakan prototipe sebagai mekanisme pengurangan resiko dan pada setiap keadaan
di dalam evolusi produk.
Tetap mengikuti langkah-langkah dalam siklus kehidupan klasik dan memasukkannya ke
dalam kerangka kerja iteratif.
Membutuhkan pertimbangan langsung terhadp resiko teknis sehingga mengurangi resiko
sebelum menjadi permaslahan yang serius.
Kekurangan model Spiral :
Banyak konsumen (Client) tidak percaya bahwa pendekatan secara evolusioner dapat
dikontrol oleh kedua pihak. Model spiral mempunyai resiko yang harus dipertimbangkan
ulang oleh konsumen dan developer.
Memerlukan tenaga ahli untuk memperkirakan resiko, dan harus mengandalkannya
supaya sukses.
Belum terbukti apakah metode ini cukup efisien karena usianya yang relatif baru.
Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius
jika resiko mayor tidak ditemukan dan diatur.
Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolute.
DAFTAR PUSTAKA
www.tutorialspoint.com/sdlc/sdlc_tutorial.pdf
http://anindito38e.blogstudent.mb.ipb.ac.id/files/2012/01/Tugas-UAT-SIM-SLDC1.pdf
http://id.wikipedia.org/wiki/Rapid_application_development
http://www.ss.pku.edu.cn/mscourse/lecture/02.pdf