::: Resume Teknik
Dokumentasi
Aplikasi :::
Pertemuan : 3
Part :
2
Mata Kuliah : Teknik Dokumentasi Aplikasi
Dosen :
Ayuningtyas,
S.Kom.,M.MT.,-MOS
PROSES PENGEMBANGAN PERANGKAT LUNAK
: ^ : Agile Process Model : ^ :
^.^ Adalah suatu chaordic, yaitu suatu proses
berdasarkan praktek untuk memodelkan dan mendokumentasikan suatu sistem yang
berbasiskan software secara efektif.
^.^ Agile Modeling juga dikatakan sebagai
suatu kumpulan dari kebiasaan-kebiasaan berdasarkan beberapa nilai dan
prinsip-prinsip teknik software yang terpercaya.
^.^ Agile Modeling merupakan sebuah
pendekatan light-weight yang mempertinggi usaha pemodelan dan pendokumentasian
untuk proses software lainnya seperti XP
dan RUP.
^.^ Agile model lebih efektif daripada
model tradisional yang tidak cukup bagus dan tidak sempurna. Kita bisa memakai
pendekatan Agile modeling pada requirements,
analysis,
architecture,
dan design.
^.^ Agile modeling bukan suatu proses
yang bersifat menentukan, dengan kata lain tidak mendefinisikan prosedur secara
detil untuk bagaimana membuat suatu tipe model yang telah diberikan, meskipun
terdapat cara bagaimana untuk menjadi suatu modeler yang efektif.
Pendekatan Agile fokus
pada :
1.
Individual dan
interaction dari pada proses proses dan tools
2.
Kinerja software daripada
dokumentasi yang lengkap
3.
Kolaborasi
customer daripada negosiasi kontrak
4.
Reaksi untuk
mengubah daripada mengikuti suatu rencana
Tujuan dari Agile
Modeling sendiri antara lain adalah :
1. Untuk mendefinisikan dan
menunjukkan bagaimana mempraktekkan, sekumpulan nilai, prinsip prinsip dan
praktek yang lebih efektif, suatu modeling yang ringan.
Rahasia dari Agile Modeling bukan
teknik modelingnya sendiri, seperti use case model, class model, data model, or
user interface model tetapi bagaimana
mereka diaplikasikan.
2. Selain itu adalah untuk menempatkan
persoalan bagaimana cara untuk mengaplikasikan teknik modeling pada suatu
proyek software yang menggunakan pendekatan agile seperti eXtreme Programming (XP),
Dynamic Systems Development Method (DSDM),
atau SCRUM.
Mengambil komentar Kent Beck dari eXtreme Programming
Explained (XPE) "kita akan terus menerus
memperbaiki design dari sistem, mulai dari suatu awal yang sederhana. Kita akan
menghapus fleksibilitas yang tidak terbukti berguna”.
Berkebalikan
dengan klaim dari beberapa kritikus eXtreme Programming bahwa akan memakan
banyak waktu untuk memodelkan pada kenyataanya ketika menggunakan suatu pendekatan
eXtreme Programming, tetapi jika kita tidak mempunyai pilihan lain.
Terkadang
lebih produktif bagi developer untuk menggambar bubble dan garis daripada
memikirkan suatu ide, atau untuk membandingkan beberapa pendekatan yang berbeda
untuk mengatasi permasalahan, daripada memulai membajak kode yang sederhana.
3. Untuk menempatkan permasalaha
bagaimana memodelkan sesuatu dengan lebih efektif pada suatu proyek Unified
Process (UP), instansiasi yang biasa yang meliputi Rational Unified Process (RUP)
dan Enterprise Unified
Process (EUP).
EUP
meliputi beberapa workflow yang berorientasi modeling pada requirement,
Business Modeling, Analysis & Design, Infrastructure Management dimana
ketika mengaplikasikan pada suatu nilai akan lebih memberatkan.
Agile Modeling membantu untuk
meningkatkan keefektifan dari usaha memodelkan pada suatu proyek Unified
Process atau beberapa proyek lain yang terjadi.
::~ R u a n g L i n g k u p ~::
Ruang lingkup Agile
Modeling.
- Konsep yang penting untuk dimengerti dari suatu Agile Modeling adalah bahwa ini bukanlah proses software yang lengkap.
- Konsep yang penting untuk dimengerti dari suatu Agile Modeling adalah bahwa ini bukanlah proses software yang lengkap.
- Agile Modeling berkonsentrasi pada modeling dan
dokumentasi yang efektif.
Tidak meliputi aktifitas pemrograman,
meskipun mengatakan untuk membuktikan model kita dengan suatu code (coding).
Tidak meliputi aktifitas testing
juga, meskipun mengatakan untuk mempertimbangkan model yang bisa lolos testing.
Tidak mencakup manajemen proyek,
system deployment, system operasi, system support, dan sebagainya.
Karena Agile Modeling fokus pada
suatu porsi dari semua proses software yang harus memakai yang lain, proses
full-fledged seperti eXtreme Programming (XP), Dynamic Systems Development Method (DSDM),
SCRUM
atau Unified Process (UP) seperti yang telah disebutkan pada tujuan dari Agile
Modeling.
Nilai dari Agile
Modeling meliputi nilai dari eXtreme Programming communication,
simplicity, feedback dan courage, dilengkapi dengan nilai
kelima yaitu humility:
Model meningkatkan komunikasi
antara tim kita dengan stakeholder proyek kita sebaik antara developer dan tim
kita.
Penting
bahwa developer mengerti bahwa model mudah untuk disederhanakan baik software
dan proses software, lebih mudah untuk mengeksplorasi ide, dan meningkatkannya
sesuai dengan peningkatan pemahaman, dengan menggambar diagram atau menulis
puluhan bahkan ribuan baris kode.
Kent
Beck mengatakan bahwa yang terbaik pada Extreme Programming
Explained:“optimis adalah suatu resiko dalam pekerjaan
pemrograman,dan feedback adalah pengobatannya.” Dengan mengkomunikasikan ide
kita melalui deigram, kita akan cepat mendapatkan feedback, sehingga kita bisa
melakukan sesuai nasehat itu.
Courage
penting karena kita harus membuat keputusan yang penting dan bisa untukn
merubah perintah dengan pembuangan atau pembuatan kembali pekerjaan kita ketika beberapa dari keputusan kita
terbukti tidak mencukupi.
Developer
yang terbaik mempunyai kerendahan hati untuk mengenali bahwa mereka tidak tahu
semuanya, bahwa developer bawahan mereka, customer, dan pada kenyataannya semua
stakeholder proyek juga mempunyai daerah kemampuan masing masing dan mempunyai
nilai untuk menambahkan sesuatu pada proyeknya. Suatu pendekatan yang efektif
adalah untuk mengasumsikan bahwa semua orang terlibat dengan proyek kita
mempunyai nilai sama dan harus dihormati.
Kesimpulannya, kunci
untuk modeling yang sukses adalah dengan mempunyai komunikasi yang efektif
antara semua yang terlibat dalam proyek.
Untuk mengembangkan
solusi yang paling sederhana yang mungkin sesuai dengan semua kebutuhan kita,
untuk mendapatkan feedback sesuai dengan yang kita kerjakan dengan cepat dan
sesering mungkin.
Untuk mendapatkan
keberanian untuk membuat dan membuang keputusan, dan mempunyai kerendahan hati
untuk mengatakan bahwa kita mungkin tidak mengetahui segalanya dan bahwa semua
mempunyai nilai untuk berperan dalam proyek kita.
Prinsip prinsip Agile Modeling
Agile Modeling mendefinisikan sekumpulan
prinsip prinsip yang utama dan pendukung yang jika diaplikasikan dalam proyek
software development membangun tingkatan untuk kumpulan praktek pemodelan.
Prinsip prinsip utama
Selama kita membangun kita harus
mengasumsikan bahwa solusi yang sederhana adalah solusi yang terbaik.
Jangan membuat software sampai
overbuild, atau pada kasusnya AM tidak menggambarkan fitur fitur tambahanpada
model kita yang tidak kita butuhkan sekarang.
Mempunyai keberanian bahwa kita
tidak membutuhkan untuk terlalu memodelkan system secara berlebihan sekarang,
kita dapat memodelkan berdasarkan requirement yang ada sekarang dan membangun
kembali system di masa depan jika requirementnya bertambah. Pertahankan model
kita sesederhana mungkin.
2.
E m b r a c e C h a n g e
Requirement
meningkat sewaktu waktu.
Stakeholder
proyek dapat merubah proyek kedepannya, orang baru menambah dan yang sudah ada
bias ditinggalkan.
“Stakeholder
proyek dapat merubah sudut pandang, merubah tujuan dan menambahkan criteria
pada peran kita.”
Maksudnya
adalah bahwa project environment kita berubah sesuai dengan efforts progress,
dan bahwa sebagai hasilnya pendekatan kita pada pengembangan ini harus
merefleksikan realita ini.
3.
E n a b l i n g T h e N e x
t E f f o r t
I s Y o u r
S e c o n d a r y G o a l
-
Proyek kita masih dapat mengalami
kegagalan meskipun tim kita memberikan suatu working system pada user kita,
bagian dari melengkapi kebutuhan dari stakeholder proyek adalah untuk
memastikan bahwa sistem kita cukup kuat jadi bisa ditambahkan sewktu waktu.
-
Usaha kita selanjutnya mungkin menjadi
pengembangan dari dikeluarkannya rilis selanjutnya dari sistem kita atau bisa
juga menyederhanakan operasi dan mendukung versi yang telah ada yang kita
bangun.
-
Untuk memfungsikannya kita tidak hanya
ingin membangun kualitas software tapi juga membuat dokumentasi yang cukup dan
materi pendukung sehingga orang selanjutnya yang mengerjakan bisa lebih
efektif.
Kesimpulannya,
ketika kita bekerja pada sistem, kita harus memperhatikan masa depan pembuatan
sistem ini.
-
Suatu konsep yang penting untuk mengerti
suatu pemodelan adalah bahwa kita tidak harus membuat benar pada pertama
kalinya, kenyataanya tidak seperti yang diinginkan meskipun kita sudah
berusaha.
-
Terlebih lagi kita tidak harus merekam
setiap detil pada model kita, kita hanya harus mengusahakan yang terbaik pada
waktunya
Karena
kita bisa melakukan perubahan secara bertahap jika dibutuhkan.
5.
M a x i m i z e S t a k e h o l d e r I n v
e s t m e n t
-
Stakeholder proyek kita menanamkan
resource resource seperti waktu, uang, fasilitas dan sebagainya untuk
mendapatkan software yang dikembangkan sesuai dengan keinginannya.
-
Karenanya kita harus bisa memanfaatkan
resource tersebut secara maksimal untuk kepuasan semua pihak.
6.
M o d e l W i t h
A P u r
p o s e
Beberapa
pengembang khawatir mengenai artifact mereka seperti model, source code, atau
dokumen apakah cukup detil atau terlalu detil, ataukah akurat atau tidak.
Kemudian
yang dilakukan adalah kembali kebelakang mempertanyakan mengapa membuat artifact
ini dan untuk siapa dibuat.
Karenanya
untuk menghindari terjadinya hal tersebut maka kita harus terlebih dulu menentukan
tujuan pembuatan dan sasaran dibuatnya model tersebut.
7.
M u l t i p l e M o d e l s
Kita
mungkin saja butuh menggunakan model yang beragam untuk membangun software
karena tiap model menggambarkan suatu aspek tunggal dari software.
Dengan
mempertimbangkan kompleksitas software sekarang ini maka kita harus mengetahui
cakupan yang luas dari teknik pada peralatan intelektual modeling kita sehingga
lebih efektif.
Kita
tidak harus membangun semua model yang diberikan tetapi harus dilihat cara yang
paling efektif meskipun menggunakan beragam model.
8.
Q u a l i t y W o r k
Tak
ada orang yang menyukai pekerjaan yang sembarangan.
Seseorang
akan menyukai pekerjaan jika itu bisa dibanggakan dan ada hasil yang akan
dicapai, tidak lemah dan sesuai dengan yang diinginkan.
9.
R a p i d F e e d b a c k
Waktu
antara aksi dan umpan balik dari aksi adalah penting.
Bekerja
dekat dengan customer, untuk mengetahui requirement, menganalisa atau membangun
suatu user interface yang sesuai keinginan akan membuat umpan balik yang lebih
cepat.
10.
S o f t w a r e Is Y o u r P r i m a r y G o a
l
Tujuan
dari pengembangan software adalah untuk menghasilkan software yang sesuai
dengan keinginan dari stakeholder proyek dengan cara yang
efektif, bukan dengan dokumentasi atau model model yang berlebihan.
11.
T r a v e l L i g h t
Setiap
artifak yang dibuat, dan diputuskan untuk dipertahankan, akan membutuhkan untuk
di maintain sewaktu waktu.
Kompleksitas
dan detil yang kita buat diawal akan memberatkan sehingga jika kita membuat
model awal harus yang mudah dimengerti dan efektif sehingga akan meringankan
perjalanan menuju akhir pembuatan software.
Prinsip - Prinsip Pendukung
Model yang diberikan mempunyai
banyak cara merepresentasikannya. Tetapi isi dari model dan software yang
dikerjakan lebih penting daripada representasinya.
2.
E v e r y o n e C a n
L e a r n F r o
m E v e r y o n e E l s
e
Kita
tidak bisa benar benar mencontoh sesuatu, tetapi kita bisa belajar dari orang
lain termasuk teknik melaui berbagai cara misalnya training, education,
mentoring, reading dan lain lain.
3.
K n o w Y o u r
M o d e l s
Karena
kita mempunyai multiple model yang harus diaplikasikan maka kita harus tahu
kekuatan dan kelemahan untuk penggunaan yang efektif.
4.
K n o w Y o u r
T o o l s
Kita
harus memahami peralatan, software, modeling tools, diagramming tools untuk
menggunakannya dengan baik.
5.
L o c a l A d a p t a t i o n
Pendekatan
pada software development harus merefleksikan lingkungan kita, termasuk
organisasi kita, keadaan stakeholder proyek dan lingkungan proyek itu sendiri.
6.
O p e n A n d H o n
e s t C o m m u n i c a t i o n
Kita
harus terbuka dan berkomunikasi dengan jujur pada pengembang dan stakeholder
proyek, pengguna dan semua yang terlibat pada pembuatan proyek.
7.
W o r k W i t h P e o p l e ' s I n s t i n c t s
Bekerja
pada bidang ini bukan berarti tidak mempertimbangkan perasaan dan insting.
Kita
juga harus bekerja dengan insting manusia.
Praktek Agile Modeling
Kebiasaan kebiasaan Agile Modeling juga
mempunyai praktek utama dan praktek pendukung.
Praktek utama
1.
Partisipasi Aktif Stakeholder
2.
Menggunakan Barang-Barang yang
Tepat
4.
Mempertimbangkan Kemampuan Tes
5.
Membuat Beberapa Model Secara
Paralel
6.
Membuat Kandungan Sederhana
7.
Menggambarkan Kesederhanaan Model
8.
Memperlihatkan Model di Depan Umum
9.
Mengiterasi Artefak lainnya
10.
Model in Small Increments
11.
Modelkanlah Dengan Yang Lainnya
12.
Percayakan Dengan Kode
13.
Gunakan Alat Paling Sederhana
Praktek Pendukung
1.
Gunakan Permodelan Standar
2.
Gunakan Contoh dengan Hati-Hati
3.
Buang Model Sementara
4.
Bentuklah Kontrak Model
5.
Model Untuk Berkomunikasi
6.
Model Untuk Dimengerti
7.
Gunakan Kembali Artefak yang Ada
8.
Update Hanya Ketika Rusak
Dokumentasi Agile
ü
Pemakaian dokumentasi pada Agile
Modeling mempunyai beberapa alasan baik alas an yang bagus atau alasan buruk.
ü
Alasan bagusnya antara lain karena stakeholder kita
membutuhkannya, untuk menentukan kontrak model, untuk mendukung komunikasi
dengan kelompok luar, untuk memikirkan sesuatu dari awal sampai selesai.
ü
Sedangkan alasan yang dianggap buruk
adalah karena pemohon ingin terlihat dalam kendali, pemohon ingin diketahui
keberadaannya, pemohon tidak mengetahui yang lebih baik, proses anda mengatakan
untuk membuatnya, seseorang ingin meyakinkan bahwa semuanya baik-baik saja,
tugas spesial anda untuk kelompok lain, kontrak perusahaan anda secara rutin
mengarah ke kompetisi ulang.
ü
Sedangkan tujuan adanya dokumentasi
Agile adalah memaksimalkan investasi stakeholder yang berharga, memenuhi tujuan
pembuatan model, menggambarkan informasi yang kemungkinan besar sedikit untuk
dirubah, menggambarkan “barang bagus untuk diketahui”, mempunyai pelanggan
tertentu dan memfasilitasi usaha pelanggan tersebut, cermat, konsisten, and
detail, mempunyai daftar pengerjaan semua proses.
Untuk menjaga Agile Modelling tetap sederhana yaitu dengan
cara cara sebagai berikut yaitu :
1.
Tambahkan praktek AM hanya ketika
mereka akan mempertinggi produktifitas anda
2.
Buatlah sebuah model hanya ketika
model menambah nilai
3.
Buatlah dokumen hanya ketika model
menambah nilai dan stakeholder anda berkeinginan untuk membayar dan stakeholder
anda mengerti perdagangan
Kapan kita menggunakan
Agile Modeling dalam pemodelan bisa dibatasi pada masalah masalah antara lain
ketika kita menggunakan pendekatan Agile untuk pembangunan, jika bekerja secara
iteratif dan increment, persyaratan yang tidak jelas atau berubah – ubah,
tujuan utama anda adalah membangun software, kita mempunyai dukungan dan
keterlibatan stakeholder aktif, kelompok pembangun berada didalam kontrol atas
nasibnya, seorang pemenang sebenarnya untuk keberadaan AM, kita mempunyai
tanggung jawab dan memotifasi pembangun, kita mempunyai sumber yang cukup untuk
anda gunakan.
Sumber : http://dwijaantara.wordpress.com/2010/10/25/agile-method/
: © : Linear Sequencial Model : © :
-
Model Linear Sequential/Waterfall merupakan
paradigma rekayasa perangkat lunak yang paling tua dan paling banyak dipakai.
-
Model metode rekayasa perangkat lunak
(RPL) ini sering disebut dengan “classic life cycle” atau model waterfall.
-
Karena model ini diperkenalkan pertama
kali pada tahun 70-an maka 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.
K e l e b i h a n M o
d e l I n i
1.
Mudah diaplikasikan
3.
Cocok digunakan untuk produk software yang sudah jelas
kebutuhannya di awal, sehingga minim kesalahannya
K e k u r a n g a
n M o d e l I n i
1.
Terjadinya pembagian proyek menjadi tahap-tahap yang
tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses
2.
Sulit untuk mengalami perubahan kebutuhan yang
diinginkan customer
3.
Customer harus sabar untuk menanti produk selesai,
karena dikerjakan tahap per tahap,menyelesaikan tahap awal baru bisa ke tahap
selanjutnya
4.
Perubahan ditengah-tengah pengerjaan produk akan
membuat bingung team work yang sedang membuat produk
5.
Adanya waktu menganggur bagi pengembang, karena harus
menunggu anggota tim proyek lainnya menuntaskan pekerjaannya
Menurut Roger S. Pressman model
waterfall dibagi menjadi 6 tahapan yaitu:
1.
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.
2.
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.
3.
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.
4.
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.
5.
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.
6.
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.





