Mata Kuliah
156150100011009
3. Rizdania
156150100011013
156150100011016
A.
PENDAHULUAN
Software Engineering merupakan cabang dari ilmu engineering (teknik)
yang terkait dengan pengembangan produk software yang menggunakan prinsipprinsip, metode dan prosedur ilmiah yang terdefinisikan dengan baik. Software
engineering akan menghasilkan sebuah produk software yang efisien dan reliable
(terpercaya).
Software engineering merupakan pengaplikasian suatu pendekatan
sistematis, disiplin dan terukur terhadap pengembangan, operasional dan
perawatan dari software.
Untuk membangun suatu produk software tersebut, di dalam software
engineering terdapat tahap-tahap terstruktur yang urut, terdefinisikan dengan baik,
yang disebut SDLC (Software Development Life Cycle). SDLC terdiri dari
serangkaian langkah-langkah yang harus diikuti untuk mendesain dan
mengembangkan produk software secara efisien.
2.
Requirement gathering
Langkah ini mengarah kepada pekerjaan dari tim pengembangan software
untuk melaksanakan tugasnya. Tim tersebut melakukan diskusi terhadap
permasalahan-permasalahan dan mencoba menampung informasi sebanyak
mungkin dari keinginan-keinginan user yang nantinya menghasilkan dokumen
berupa system requirements dan functional requirements. Keinginan tersebut
dikumpulkan dengan menggunakan beberapa cara. Di antaranya adalah:
3. Feasibility study
Setelah proses requirement gathering, tim sampai pada rencana kasar dari
proses software. Pada tahap ini tim menganalisa apakah sebuah software dapat
didesain untuk memenuhi permintaan dari user, dan apakah ada kemungkinan
dari software tersebut menjadi tidak berguna. Selain itu juga dilakukan analisa
apakah proyek tersebut secara finansial, praktek, dan teknologi dapat
dilakukan untuk diaplikasikan baik oleh pengembang maupun user. Dalam
penyelesaian permasalahan ini terdapat banyak algoritma yang tersedia yang
akan membantu pengembang untuk memutuskan kesesuaian dari sebuah
proyek software.
4. System analysis
Pada tahap ini pengembang memutuskan sebuah roadmap rencana dan
menawarkan model software terbaik yang sesuai untuk proyek tersebut.
System Analysis termasuk memahami batasan produk software, mempelajari
sistem yang berkaitan dengan masalah atau perubahan-perubahan yang harus
dilakukan terhadap sistem yang telah ada sebelumnya, mengidentifikasi
pengaruh dari proyek tersebut terhadap user dan personilnya.
5. Software design
Langkah selanjutnya adalah membawa semua informasi tentang requirement
dan analisa kemudian memulai mendesain produk software. Input dari user
Testing
Ada yang mengatakan kalau 50% dari keseluruhan proses membangun
software harus diuji. Kesalahan mungkin saja akan mengacaukan software.
Pengujian tersebut dilakukan ketika fase coding dilakukan oleh pengembang
dan melalui pengujian yang dilakukan oleh tenaga-tenaga ahli. Misalnya
pengujian modul, program dan produk, pengujian dari pengembang itu sendiri
serta pengujian saat telah diterima user. Kesalahan yang ditemukan lebih awal
dan segera dilakukan perbaikan merupakan kunci dari software yang reliable.
Integration
Pada tahapan ini software diintegrasikan dengan library, database dan
program yang lain.
9. Implementation
Pada tahapan implementation ini merupakan tahap menginstal software pada
mesin user. Pada saat itu software membutuhkan konfigurasi setelah diinstal
pada user. Software tersebut diuji apakah dapat beradaptasi dengan sistem
yang telah ada. Dan apabila terdapat masalah dengan integrasi, maka masalah
itu dipecahkan pada tahap implementation ini.
10. Operation and maintenance
Tahap ini memastikan operasi software berada pada tahap efisien dan minim
eror. Jika diperlukan maka user akan ditraining atau diberikan dokumen
tentang
bagaimana
mengoperasikan
software.
Software
dilakukan
mungkin akan menemui tantangan berupa bugs tersebunyi dan masalah yang
tidak teridentifikasi di dunia nyata.
Terdapat beberapa model SDLC yang dapat digunakan untuk membantu
pengembang memilih strategi untuk mengembangkan software. Masing-masing
model memiliki kumpulan tools, metode, dan prosedur yang dijabarkan secara
jelas dan mendefinisikan SDLC. Model-model tersebut di antaranya adalah
waterfall model, V-model, RAD dan AGILE.
B. WATERFALL MODEL
Model waterfall adalah proses pengembangan software
yang
bersifat
sekuensial
dimana
seluruh
tahapan
proses
berpindah
ke
tahap
selanjutnya
hanya
jika
fase
Waterfall
terdiri
dari
fase
yaitu
analisa
pengujian
unit,
integrasi
dan
pengujian
sistem,
dan
pemeliharaan.
1. Analisa requirement.
Fase ini sering dikenal sebagai
Specification
(SRS).
Fase
ini
Software Requirements
dilakukan
dengan
cara
yang
akan
dikembangkan
di
analisa
dan
sistem
mengalokasikan
semua
requirement
baik
unit-unit
coding
kecil.
Seluruh
unit
dilakukan
sistem,
maka
dilakukan
pemeliharaan
yang
metode
pengembangan
software
memiliki
sebelum
dilakukan
pengembangan.
2. Mudah
diterapkan
daya
dibutuhkan
bagian
maka
satu
bagian
lainnya
yang
mengakibatkan
yang
dalam
kebingungan
pada
tim
proyek.
menunggu
anggota
tim
sebelumnya
dapat
supaya
mengerjakan
fase
ini
tidak
dapat
yang
tidak
dapat
mengutarakansemua
requirement di awal.
4. Pengguna
sistem
dapat
menilai
kualitas
dari
C. V-MODEL
V-model menyediakan sarana pengujian dari software di setiap tahap dan
alurnya dapat dibolak-balik. Pada setiap tahap, test plans dan test cases diciptakan
untuk memverifikasi dan menvalidasi produk sesuai permintaan pada tahap
tersebut. Misalnya pada tahap requirement gathering, tim penguji mempersiapkan
seluruh test case yang berhubungan dengan requirement. Kemudian ketika produk
dikembangkan dan siap untuk dilakukan pengujian, test case dari tahap ini
memverifikasi software terhadap validitas requirement-nya. Hal ini membuat baik
verifikasi dan validasi berjalan secara paralel. V-model ini juga dikenal dengan
model verifikasi dan validasi Diagram v-model dapat dilihat pada gambar 3.
Pada fase ini fokus kepada arsitektur dan desain system. Tahap ini mencakup
garis besar dari solusi, platform, sistem, produk, dan layanan/proses.
Sebuah Integration Test plan dibuat pada tahap ini yang bertugas untuk
menguji kemampuan sistem software tersebut untuk bekerja bersama.
3. Fase Low-Level design (LLD)
Fase ini merupakan tahap dimana komponen-komponen software yang
sebenarnya didesain. Fase ini mendefinisikan actual logic untuk setiap
komponen sistem. Diagram class dengan semua methods dan relasi antar class
dibuat dalam LLD. Selain itu component test dibuat dalam tahap ini.
4. Fase impelementasi
Fase ini merupakan tempat dimana semua coding dilakukan. Ketika sebuah
coding selesai, sebuah jalur eksekusi mengikuti di bagian kanan dari V model
ini dimana test plans yang dibuat sebelumnya digunakan.
5. Coding
Fase ini berada pada bagian dasar dari V model. Desain modul dikonversi
menjadi program (coding) oleh pengembang.
Setiap metode pengembangan software meiliki kelebihan
dan
kekurangan
masing-masing,
adapun
kelebihan
dan
KEKURANGAN
1. Sangat kaku dan kurang fleksibel
desain
coding.
dilakukan
Hal
ini
dibangun
selama
kekurangan
proaktif
dimana
(cacat)
cacat
Application
Development (RAD)
prototyping adalah
strategi
tergolong
teknik
dalam
atau rapid
pembangunan software
incremental
(bertingkat).
yang
RAD
model
pengembangan
sistem
dikonstruksikan
dengan
tujuan
di
awal
menetapkan
tahap
kebutuhan
(requirement) user. RAD merupakan gabungan dari bermacammacam teknik terstruktur dengan teknik prototyping dan teknik
pengembangan joint
application untuk
mempercepat
pengembangan software.
Dari definisi-definisi konsep RAD ini, dapat dilihat bahwa
pengembangan software dengan menggunakan metode RAD ini
dimaksudkan
software
untuk
Metode
model waterfall,
meminimalisir
RAD
dimana
adalah
waktu
sebuah
pengembangan
pengembangan
modifikasi
aplikasi
dari
dilakukan
memungkinkan
tim
pengembang
untuk
menciptakan
dan melakukan
yang
dibutuhkan
dan
system
system
yang
tahap
ini
keaktifan
user
yang
terlibat
sangat
dengan
istilah
Group
Decision
Support
System
melakukan
persetujuan
terhadap
desain
software .
3. Fase Implementation (Implementasi)
Pada fase ini, sudah harus ada kesepakatan antara analyst
system
dan
user,
sehingga
programmer
melakukan
keseluruhan,
maka
dilakukan
proses
pengujian
terhadap
produk
secara
bersama-sama,
terjadi
dilakukan
proses
timeboxed
dengan
mempunyai 2 kemungkinan :
Jika
diperlukan,
kebutuhan-kebutuhan
yang
bersifat
sekunder ditiadakan
Setiap metode pengembangan software meiliki kelebihan
dan
kekurangan
masing-masing,
adapun
kelebihan
dan
2.
3.
KELEBIHAN
Penghematan
KEKURANGAN
waktu 1. Dengan metode RAD, analysist
RAD
mengurangi 2. Kelemahan
manusia.
tetapi
RAD
sangat
yang
aplikasi
berfokus
waktu
pada
mengarahkan
penekanan
permasalahan-
Perubahan
desain
dapat
berpengaruh
cepat
lebih
dengan
dibandingkan
tidak
berpengalaman
untuk
menguasai
kemampuan-kemampuan baru
tradisional.
sementara
Sudut
disajikan
pandang
dalam
user
sistem
sama
fungsi
sistem
atau
antarmuka pengguna.
pada
mereka
saat
harus
yang
bekerja
mengembangkan sistem.
6.
mampu
penyelesaian 3. RAD
projek.
sistem
tidak
terhadap
pengembangan
5.
berkaitan
membantu
4.
yang
kecepatan
mengutamakan
dibandingkan
7.
karena
mengguna-kan
model
prototype,
sehingga
user
mengerti
akan
lebih
sistem
yang dikembangkan.
8.
dapat
pada
saat
yang
bersamaan.
Pengembangan software
E. AGILE
Agile
Development
Methods
adalah
sekelompok
seimbang.
Secara
garis
besar
tujuan
dirumuskannya
agile
bisa
yang iteratif,
sesuai
merespon
sehingga
waktu
kebutuhan
dan
biaya
yang
diinginkan
pembuatan
pengguna
software
bisa
dikontrol.
4. High-quality production
Walaupun biaya pembuatan software bisa ditekan dan proses
pembuatan bisa dipercepat, tetapi kualitas dari software yang
dibuat harus tetap dijaga. Dengan melakukan tes setiap
fungsionalitas software
mudah diubah
sedangkan
mengkolaborasikan
manajer
developer
tim
software
hanya
bertugas
dengan
klien.
harus
terus
menerus
dibicarakan
dan
software
Proses
Agile
memanfaatkan
dan
percayai
mereka
untuk
menyelesaikan
adalah
yang
berkesinambungan
terhadap
keunggulan
Kesederhanaan
(memaksimalkan
sumber
daya
yang
terbaik
Secara
berkala,
bagaimana
untuk
tim
pengembang
menjadi
lebih
berefleksi
efektif,
tentang
kemudian
Secara
umum
komposisi
dari
sebuah
tim
pengembang
software yaitu:
Developer,
merupakan
titik
vital
dalam
tim,
tanpa
terhadap
story.
Pemberian
derajat
kepentingan
Demo
deskripsi
umum
bagaimana
cara
story
ini
Tujuan sprint.
akan
software
melakukan
sprint
secara
simultan
sampai
minggu
kemudian.
Setelah
dilakukan
demo
untuk
kekurangan
masing-masing,
adapun
kelebihan
dan
KEKURANGAN
1.
1.
Agile
2.
3.
kurang.
4.
Menghemat biaya.
2.
tidak
akan
berjalan
3.
Agile
Software
Development
pengembangan software
yang
toleransi
cocok
digunakan
dalam
terhadap
perubahan
kebutuhan
sehingga
DAFTAR PUSTAKA
Anon.,
n.d.
tutorialspoint.
[Online]
Available
at:
http://www.tutorialspoint.com/sdlc/[Accessed 3 2015].
Balaji, S. & Murugaiyan, M. S., 2012. Waterfall Vs V-Model Vs
Agile: A Comparative Stduy On SDLC. International Journal
of Information Technology and Business Management,
Volume 2, pp. 26-30.
Bassil, Y., 2012. A Simulation Model for the Waterfall Software
Development
Life
Cycle.
International
Journal
of
Carol;
Jill
Doake
(2001). Object-Oriented
Systems
Agile Software
Development. Indonesia
Raymond
McLeod,
George
Analytics
in
Higher
Education.USA:Phytorion.
Sommerville, I., 2011. Sofware Engineering. 9th ed. Boston:
Addison-Wesley.