TUGAS
MATA
KULIAH
METODOLOGI
PENGEMBANGAN SISTEM INFORMASI
Oleh:
Machrifal
Fidha Husein
PENDAHULUAN
Metodologi dalam perangkat lunak digunakan untuk merancang atau
membangun suatu perangkat lunak,dengan perkembangan teknologi yang
sangat pesat metodologi perangkat lunak juga terjadi perubahan atau
penambahan requirements. Dari model waterfall sampai dengan
model-model incremental. Semua metodologi yang berkembang sebelumnya
tidak mampu menangani kemungkinan perubahan atau penambahan
requirements. Metode pengembangan perangkat lunak telah dilacak
kembali pada tahun 1957. Pada tahun tersebut EA Edmonds telah
memperkenalkan proses pengembangan perangkat lunak adaptif.
“Lightwight” merupakan metode pengembangan perangkat lunak yang
berkembang pada tahun 1990, sebagai reaksi terhadap apa yang disebut
metode “heavyweight”. Yang ditandai dengan kritik mereka terhadap
metode waterfall
Pada tahun 90-an diperkenalkan dengan metodologi baru yang dikenal
dengan nama agile methods,kata Agile berarti bersifat cepat, ringan,
bebas bergerak, waspada. Metodologi yang dikenal sebagai agile
methods ini mengutamakan fleksibilitas terhadap perubahan-perubahan
yang terjadi selama pengembangan. Bahkan perubahan ataupun penambahan
pada saat fase terakhir pun teratasi apabila menggunakan metodologi
ini.
Agile Methods dikembangkan karena pada metodologi tradisional
terdapat banyak hal yang membuat proses pengembangan tidak dapat
berhasil dengan baik sesuai tuntutan user. Konsep Agile Software
Development dicetuskan oleh Kent Beck dan 16 rekannya dengan
menyatakan bahwa Agile Software Development adalah cara membangun
software dengan melakukannya dan membantu orang lain membangunnya
sekaligus.
- 1. Pengertian
Agile methods merupakan salah satu dari beberapa metode yang
digunakan dalam pengembangan sooftware. Agile method adalah jenis
pegembangan sistem jangka pendek yang memerlukan adaptasi cepat dan
pengembang terhadap perubahan dalam bentuk apapun.
Dalam Agile Software Development interaksi dan personel lebih
penting dari pada proses dan alat, software yang berfungsi lebih
penting daripada dokumentasi yang lengkap, kolaborasi dengan klien
lebih penting dari pada negosiasi kontrak, dan sikap tanggap terhadap
perubahan lebih penting daripada mengikuti rencana.
Agile Method juga dapat diartikan sekelompok metodologi
pengembangan software yang didasarkan pada prinsip-prinsip yang sama
atau pengembangan system jangka pendek yang memerlukan adaptasi cepat
dari pengembang terhadap perubahan dalam bentuk apapun
1.1. Prinsip
Agile Software
Development
Agile Software Development juga melihat pentingnya komunikasi
antara anggota tim, antara orang-orang teknis dan businessmen, antara
developer dan managernya. Ciri lain adalah klien menjadi bagian dari
tim pembangun software. Ciri-ciri ini didukung oleh 12 prinsip yang
ditetapkan oleh Agile Alliance. Menurut Agile Alliance, 12 prinsip
ini adalah bagi mereka yang ingin berhasil dalam penerapan Agile
Software Development:
1. Kepuasan klien adalah prioritas utama dengan menghasilkan
produk lebih awal dan terus menerus.
2. Menerima perubahan kebutuhan, sekalipun diakhir pengembangan.
3. Penyerahan hasil/software dalam hitungan waktu beberapa minggu
sampai beberapa bulan.
4. Pihak bisnis dan pengembang harus bekerja sama setiap hari
selama pengembangan berjalan.
5. Membangun proyek dilingkungan orang-orang yang bermotivasi
tinggi yang bekerja dalam lingkungan yang mendukun dan yang dipercaya
untuk dapat menyelesaikan proyek.
6. Komunikasi dengan berhadapan langsung adalah komunikasi yang
efektif dan efisien
7. Software yang berfungsi adalah ukuran utama dari kemajuan
proyek
8. Dukungan yang stabil dari sponsor, pembangun, dan pengguna
diperlukan untuk menjaga perkembangan yang berkesinambungan
9. Perhatian kepada kehebatan teknis dan desain yang bagus
meningkatkan sifat agile
10. Kesederhanaan penting
11. Arsitektur, kebutuhan dan desain yang bagus muncuk dari tim
yang mengatur dirinya sendiri
12. Secara periodik tim evaluasi diri dan mencari cara untuk lebih
efektif dan segera melakukannya.
Dua belas prinsip tersebut menjadi suatu dasar bagi model-model
proses yang punya sifat agile. Dengan prinsip-prinsip tersebur Agile
Process Model berusaha untuk menyiasati 3 asumsi penting tentang
proyek software pada umumnya:
1. Kebutuhan software sulit diprediksi dari awal dan selalu akan
berubah. Selain itu, prioritas klien juga sering berubah seiring
berjalannya proyek.
2. Desain dan pembangunan sering tumpang tindih. Sulit
diperkirakan seberapa jauh desain yang diperlukan sebelum
pembangunan.
3. Analisis, desain, pembangunan dan testing tidak dapat
diperkirakan seperti yang diinginkan.
Kelebihan dari
Agile Method
Meningkatkan kepuasan kepada klien
Pembangunan system dibuat lebih
cepat
Mengurangi resiko kegagalan
implementasi software dari segi non-teknis
- Jika pada saat pembangunan system terjadi kegagalan,kerugian
dar segi materi relative kecil.
1.2. Model-model
Agile method
Extreme Programmning (XP)
Adaptive Software Development
(ASD)
Dynamic Systems Development Method
(DSDM)
Scrum Methodology
Crystal
Feature Driven Development (FDD)
Agile Modeling (AM)
- Rational Unified Process
1.2.1. Extreme
Programmning (XP)
Proyek Pemrograman Extreme pertama dimulai 6 Maret 1996. Extreme
Programming adalah salah satu dari beberapa Proses Agile populer.
Sudah terbukti sangat sukses di banyak perusahaan dari berbagai
ukuran dan industri di seluruh dunia.
Extreme Pemrograman berhasil karena menekankan kepuasan pelanggan.
Alih-alih memberikan semua yang anda mungkin inginkan pada tanggal
beberapa jauh di masa depan proses ini memberikan perangkat lunak
yang Anda butuhkan saat Anda membutuhkannya. Extreme Pemrograman
memberdayakan pengembang Anda untuk percaya diri menanggapi perubahan
kebutuhan pelanggan, bahkan terlambat dalam siklus hidup.
Extreme Pemrograman menekankan kerja sama tim. Pengelola,
pelanggan, dan pengembang semua mitra setara dalam sebuah tim
kolaboratif. Extreme Pemrograman menerapkan, sederhana namun efektif
yang memungkinkan tim lingkungan menjadi sangat produktif. Tim
mengorganisir diri mengatasi masalah untuk menyelesaikannya seefisien
mungkin.
Extreme Pemrograman meningkatkan proyek perangkat lunak dalam lima
cara penting; komunikasi, kesederhanaan, umpan balik, rasa hormat,
dan keberanian. Extreme Programmer selalu berkomunikasi dengan
pelanggan mereka dan programer sesama. Mereka terus desain mereka
yang sederhana dan bersih. Mereka mendapatkan umpan balik dengan
menguji perangkat lunak mereka dimulai pada hari pertama. Mereka
memberikan sistem ke pelanggan sebagai perubahan sedini mungkin dan
melaksanakan seperti yang disarankan. Setiap keberhasilan kecil
memperdalam rasa hormat mereka atas kontribusi yang unik dari
masing-masing dan setiap anggota tim. Dengan dasar Extreme pemrogram
dapat berani merespon perubahan kebutuhan dan teknologi.
Aspek yang paling mengejutkan dari Extreme Programming adalah
aturan sederhana. Extreme Pemrograman sangat mirip jig gergaji
teka-teki. Ada banyak potongan-potongan kecil. Individual potongan
Extreme Programming adalah metode pengembangan perangkat lunak
yang ringan dan termasuk salah satu agile methods yang dipelopori
oleh Kent Beck, Ron Jeffries, dan Ward Cunningham. Extreme
Programming merupakan agile methods yang paling banyak digunakan dan
menjadi sebuah pendekatan yang sangat terkenal. Sasaran Extreme
Programming adalah tim yang dibentuk berukuran antara kecil sampai
medium saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini
dimaksudkan untuk menghadapi requirements yang tidak jelas maupun
terjadinya perubahan-perubahan requirements yang sangat cepat.
Extreme Programming sebagai sebuah metode yang dinamis
diperlihatkan dalam empat values yang dimilikinya dan keempatnya
merupakan dasar-dasar yang diperlukan dalam Extreme Programming. Kent
Beck menyatakan bahwa tujuan jangka pendek individu sering
berbenturan dengan tujuan sosial jangka panjang. Karena itu dibuatlah
values yang menjadi aturan, hukuman, dan juga penghargaan. Keempat
values tersebut adalah :
- Komunikasi (Communication)
Tugas utama developer dalam membangun suatu sistem perangkat lunak
adalah mengkomunikasikan kebutuhan sistem kepada pengembang perangkat
lunak. Komunikasi dalam Extreme Programmning dibangun dengan
melakukan pemrograman berpasangan (pair programming). Developer
didampingi oleh pihak klien dalam melakukan coding dan unit testing
sehingga klien bisa terlibat langsung dalam pemrograman sambil
berkomunikasi dengan developer. Tujuannya untuk memberikan pandangan
pengembang sesuai dengan pandangan pengguna sistem.
- Kesederhanaan (Simplicity)
XP mencoba untuk mencari solusi paling sederhana dan praktis.
Perbedaan metode ini dengan metodologi pengembangan sistem
konvensional lainnya terletak pada proses desain dan coding yang
terfokus pada kebutuhan saat ini daripada kebutuhan besok, seminggu
lagi atau sebulan lagi. Lebih baik melakukan hal yang sederhana dan
mengembangkannya besok jika diperlukan.
- Umpan Balik (Feedback)
Hal ini diperlukan untuk mengetahui kemajuan dari proses dan
kualitas dari aplikasi yang dibangun. Informasi ini harus dikumpulkan
setiap interval waktu yang singkat secara konsisten. Ini dimaksudkan
agar hal-hal yang menjadi masalah dalam proses pengembangan dapat
diketahui sedini mungkin. Setiap feed back ditanggapi dengan
melakukan tes, unit test atau system integration dan jangan menunda
karena biaya akan membengkak (uang, tenaga, waktu).
- Keberanian (Courage)
Berani mencoba ide baru. Berani mengerjakan kembali dan setiap
kali kesalahan ditemukan, langsung diperbaiki. Contoh dari courage
adalah komitmen untuk selalu melakukan design dan coding untuk saat
ini dan bukan untuk esok. Ketika ada kode yang terlalu rumit, sulit
dibaca dan dipahami, tidak sesuai dengan kemauan pelanggan, dll maka
seharusnya kode program seperti itu di refactor (kalau perlu dibangun
ulang). Hal ini menjadikan pengembang merasa nyaman dengan
refactoring program ketika diperlukan.
Extreme Programming menggunakan pendekatan berorientasi objek.
Pada aktifitas Perencanaan terjadi pengumpulan user stories dari
klien yang klien tetapkan prioritasnya. Setiap story ditetapkan harga
dan lama pembangunan, jika terlalu besar, story dapat dipecah menjadi
beberapa story yang lebih kecil. Terjadi pemeriksaan dan
pertimbangkan resiko dan aktifitas Desain kegiatannya sederhana yaitu
memanfaatkan kartu CRC (Class-Responsibility-Collaborator) untuk
identifikasi dan mengatur class-class di konsep OO. Jika temuikan
kesulitan, prototype dibangun [ini namanya spike solution].
Dilakukannya refactoring, yaitu mengembangkan desain dari program
setelah ditulis. Pada aktifitas Pengkodean adalah penyiapan unit test
sebelum pengkodean dipakai sebagai focus pemrogram untuk membuat
program. Pair programming dilakukan untuk real time program solving
dan real time quality assurance. Proses pengujiannya menggunakan unit
test yang dipersiapkan sebelum pengkodean Menggunakan pendekatan
berorientasi objek
Gambar 1. Proses Extreme Programming (XP)
Sebagai sebuah metodologi untuk mengembangkan peragkat lunak
Extreme Programming tentu memiliki siklus hidup. Siklus hidup pada
Extreme Programming ini terdapat lima fase yaitu :
Exploration Phase
Planning Phase
Iteration to Release Phase
Productionizing Phase
Maintenance Phase
- Death Phase
G
ambar 2. Fase Extreme Programming (XP) sebelum dimodifikasi
Pada bagian ini akan dilakukan penambahan fase pada Extreme
Programmning yaitu dengan menyisipkan sebuah fase yang disebut
requirements management phase. Fase ini disisipkan tidak sekuensial
tapi paralel dengan fase
planning. Tujuan penyisipan secara
paralel ini adalah mengurangi kemungkinan Extreme Programmning keluar
dari lingkup
agile. Tiga hal yang dilakukan yaitu:
Requirements Management
Pendokumentasian sederhana (simple
documenting)
- Mempertahankan index card yang telah diimplementasi dengan
baik
G
ambar 3: Fase pada Extreme Programming (XP) setelah modifikasi
Setelah dilakukan modifikasi terdapat beberapa pengaruh pada
practice-nya. Dari dua belas practice yang terdapat pada Extreme
Programmning, ada empat buah practice yang mempunyai singgungan kuat
dengan requirements management yaitu planning game, metaphor, 40-hour
week, On-site customer. Dari keempatnya planning game-lah yang paling
besar keterkaitannya dengan requirements. Pada bagian ini akan
dipaparkan yang terjadi pada keempat practice tersebut setelah
dilakukan modifikasi pada Extreme Programmning tersebut.
- Planning Game
Berikut ini adalah tabel setelah dilakukan perubahan pada siklus:
NO
|
PHASE
|
BUSINESS
|
DEVELOPMENT
|
I
|
Exploration phase
|
Write story
|
-
|
-
|
Estimate story
|
Split story
|
-
|
-
|
Summarize stories (simple
documenting)
|
II
|
Commitment phase
|
Sort by value
|
-
|
-
|
Sort by risk
|
-
|
Sort by velocity
|
Choose scope
|
-
|
III
|
Steering phase
|
Iteration
|
-
|
-
|
Recovery
|
New story
|
Re-estimate
|
-
|
Summarize stories (update
simple document)
|
Tabel 1: Fase pada planning game (setelah modifikasi)
Sebelum modifikasi, pada exploration phase terdapat tiga kegiatan
yaitu write story, estimate story, dan split story. Setelah dilakukan
modifikasi satu kegiatan lagi yang dikerjakan oleh pihak development
adalah summarize stories into simple document.
Demikian juga pada steering phase yang pada awalnya hanya terdiri
atas kegiatan-kegiatan iteration, recovery, new story, dan
re-estimate, setelah modifikasi ditambah satu lagi yaitu update
simple document. Proses ini sebenarnya sama dengan summarize stories
pada exploration phase, perbedaannya pada steering phase adalah untuk
mengantisipasi adanya new story yang dikerjakan oleh pihak bisnis.
- Metaphor
Metaphor merupakan panduan (guidance) dalam melakukan pengembangan
secara keseluruhan. Metaphor di sini memerlukan penjelasan rinci.
Requirements yang diperoleh melalui proses summarize stories tersebut
berperan sebagai metaphor, sedangkan penjelasan rincinya ada pada
story awal.
- 40-hour week
Story yang telah selesai ditulis oleh customer langsung dirangkum
ke dalam simple document pada fase requirements management. Terjadi
penambahan waktu secara signifikan.
- On-site Customer
Komunikasi dengan on-site customer tetap dilakukan terus, termasuk
dalam melakukan summarize stories. Sifatnya hanya merangkum story ke
dalam requirements yang akan menjadi feature pada sistem yang dibuat.
Penerapan Extreme
Programmning
Beberapa hal yang harus dipertimbangkan sebelum seseorang masuk
dalam dunia Extreme Programmning adalah sebagai berikut:
1. User harus memahami konteks bisnis yang akan dikembangkan
sistemnya, sehingga developer dapat menangkap sistem secara aplikatif
dan dapat mengusulkan teknologi apa yang dapat dikembangkan dalam
sistem barunya.
2. Akan lebih efektif apabila developer pernah menangani proyek
pengembangan sistem yang sejenis sehingga dapat memberikan usulan
model sistem baru, di samping alasan bahwa developer telah memiliki
template aplikasi sistem tersebut untuk dijadikan prototype sistem
baru. Hal ini akan berimplikasi kepada kemudahan dalam konstruksi
sistem karena dikembangkan berdasarkan template yang sudah ada.
3. Extreme programming menuntut komunikasi antar developer dan
user secara intensif dan komunikasi internal antar developer secara
komprehensif, sehingga akan lebih representatif apabila tahap
pengembangan sistem dilakukan di lokal yang mendukung proses
komunikasi tersebut.
Extreme Programmning adalah suatu bentuk pembangunan
perangkat lunak yang berbasis nilai kemudahan, komunikasi, umpan
balik, dan keberanian. Bekerja dalam
whole
team
bersama-sama dengan praktek yang mudah. Dalam Extreme Programming
terdapat 12 practices utama yaitu :
- Planning Game
Hubungan antara Customer dengan Programer untuk memperkirakan
kenbutuhan –kebutuhan dari Custumer dalam implementasinya.
- Small, frequent releases
Memproduksi dengan cepat.
- System metaphors
System metaphors antara Customer dengan Programeruntuk menunjukkan
semua perkembangan dengan menjelaskan bagaimana cara kerja system.
- Simple design
Perhatiannya pada pendisainnan atau perancngan solusi yang
sederhana
- Testing (unit testing & TDD)
Pelaksanaan pengujian atau testing keseluruhan
- Frequent refactoring
Penyusunan system kembali dengan cara duplikat atau
salinan,memperbaiki komunikasi, menambahkan kelenturan
- Pair programming
Dua orang menulis kode pada 1 komputer
- Collective code ownership
Siapapun dapat merubah bagian pada pengkodean setiap saat.
- Continuous integration
Bagian baru code di gabungkan ke dalam kode dasar
- 40-hour weak
Max 40 jam kerja seminggu,
- On-site customer
Customer harus hadir dan ada setiap saat untuk teamnya.
- Coding standards
Terdapat aturan pengkodean dan di ikuti oleh programmer.
Keuntungan dan
Kerugian
Keuntungan Extreme Programmning:
Menjalin komunikasi yang baik dengan client. Meningkatkan
komunikasi dan sifat saling menghargai antar developer.
Kerugian Extreme Programmning:
Developer harus selalu siap dengan perubahan karena perubahan akan
selalu diterima. Tidak bisa membuat kode yang detail di awal (prinsip
simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari
itu juga).
1.2.2. Adaptive
Software Development
(ASD)
Adaptive Software Development (ASD) diajukan oleh Jim Highsmith
sebagai teknik untuk membangun software dan sistem yang kompleks.
Filosofi yang mendasari Adaptive Software Development (ASD) adalah
kolaborasi manusia dan tim yang mengatur diri sendiri.
System kerja adaptive software development : Collaboration dan
Learning
Adaptive cycle planning yaitu menggunakan informasi awal seperti
misi dari klien, batasan proyek dan kebutuhan dasar untuk definisikan
rangkaian software increment (produk software yang secara berkala
diserahkan)
- Collaboration : orang-orang yang bermotivasi tinggi bekerja
sama: saling
melengkapi, rela membantu, kerja keras, trampil di bidangnya, dan
komunikasikan masalah untuk hasilkan penyelesaian yang efektif.
- Learning: tim pembangun sering merasa sudah tahu semua hal
tentang proyek,
padahal tidak selamanya begitu. Karena itu proses ini membuat
mereka belajar lebih tentang proyek melalui 3 cara:
- Focus
group: klien dan pengguna memberi masukan terhadap software
- Formal
Technique Reviews: Tim ASD lengkap melakukan review
- Postmortems:
Tim ASD lakukan instrospeksi pada kinerja dan proses.
Gambar 4. Proses Adaptive Software Development (ASD)
1.2.3. Dynamic
Systems Development
Method (DSDM)
Pada Dynamic System Development Method menyajikan kerangka kerja
(framework) untuk membangun dan memelihara sistem dalam waktu yang
terbatas melalui penggunaan prototyping yang incremental dalam
lingkungan yang terkondisikan. Metode ini akan membangun software
dengan cepat: 80% dari proyek diserahkan dalam 20% dari waktu total
untuk menyerahkan proyek secara utuh.
Dynamic System Development Method dapat dikombinasikan dengan
Extreme Programmning menghasilkan kombinasi model proses yang
mengikuti Dynamic System Development Method dan praktek yang sejalan
dengan Extreme Programmning.
Dynamic System Development Method memiliki beberapa aaktifitas
seperti :
- Feasibility study : siapkan
requirement, dan batasan, lalu uji apakah sesuai gunakan proses DSDM
- Business Study: susun
kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi dan
identifikasi kebutuhan pemeliharaan untuk aplikasi
- Functional model iteration :
hasilkan incremental prototype yang perlihatkan fungsi software ke
klien untuk dapatkan kebutuhan lebih jelas dan konfirmasi
- Design and Build Iteration :
cek ulang prototype yang dibangun untuk pastikan bahwa prototype
dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar
bekerja
- Implementation: menempatkan
software pada lingkungan sebenar sekalipun belum lengkap, atau masih
ada perubahan.
1.2.4. Scrum
Methodology
Pertama kali diperkenalkan oleh Jeff Sutherland tahun awal tahun
1990an, dan dikembangkan selanjutnya dilakukan oleh Schwaber dan
Beedle. Pada dasarnya Scrum merupakan salah satu komponen dari
metodologi pengembangan Agile mengenai pertemuan harian untuk
membahas kemajuan dan XP adalah menekankan metodologi yang berbeda
sepasang ujian dulu pemrograman dan pembangunan.
Scrum menguraikan proses untuk mengidentifikasi dan katalogisasi
pekerjaan yang perlu dilakukan, memprioritaskan yang bekerja dengan
berkomunikasi dengan pelanggan atau wakil pelanggan, dan pelaksanaan
yang bekerja menggunakan rilis iterative dan memiliki tujuan utama
untuk mendapatkan perkiraan berapa lama akan pembangunan. XP lebih
lanjut tentang pengembang membantu menyelesaikan pekerjaan secepat
dan maintainably mungkin
Scrum memiliki
prinsip yaitu:
- Ukuran tim yang
kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan
satu sama lain
-
Proses dapat beradaptasi terhadap perubahan teknis dan bisnis
-
Proses menghasilkan beberapa software increment
-
Pembangunan dan orang yang membangun dibagi dalam tim yang kecil
- Dokumentasi dan
pengujian terus menerus dilakukan setelah software dibangun
- Proses scrum
mampu menyatakan bahwa produk selesai kapanpun diperlukan
Scrum memiliki
aktifitas yang
meliputi :
- Backlog
Backlog adalah daftar kebutuhan yang jadi prioritas klien, dan
daftar yang dibuat dapat bertambah
- Sprints
Aktifitas Sprints merupakanunit pekerjaan yang diperlukan untuk
memenuhi kebutuhan yang ditetapkan dalam backlog sesuai dengan waktu
yang ditetapkan dalam time-box (biasanya 30hari). Selama proses ini
berlangsung backlog tidak ada penambahan.
- Scrum Meetings
Aktifitas Scrum Meeting merupakan pertemuan yang rutin dilakukan
perhari untuk evaluasi apa yang dikerjakan, hambatan yang ada, dan
target penyelesaian untuk bahan meeting selanjutnya.
- Demo
Aktifitas Demo adalah penyerahan software increment ke klien
didemonstrasikan dan dievaluasi oleh klien.
1.2.5. Crystal
Crystal diperkenalkan oleh Cockburn dan Highsmith, Development
yang tidak pada jalur kritis, dapat menghabikan waktu lebih, mereka
yang memperbaiki produk atau membantu oaring yang ada di jalur proyek
kritis.
Karakteristik Crystal :
Secara aktual sebuah model proses
keluarga yang memungkinkan manuver berdasar karakteristik
permasalahan
Menyarankan penggunaan workshop
refleksi untuk review kebiasaan kerja tim
Selalu murah dan cepat
berkomunikasi secara langsung.
- Proyek berkembang sesuai ukuran team menjadi lebih atau luas
dan metologi akan menjadi lebih tinggi.
1.2.6. Feature
Driven Development
Feature Driven Development merupakan model proses praktis untuk
keahlian proses software engineering, Feature merupakan sebuah
fungsi yang berharga dimana dapat dilaksanakan.
Keuntungan dari metode feature :
User dapat menggambarkan dengan
mudah bentuk system.
Dapat di organisasikan atau diatur
ke dallamkelompok bisnis yang hirarki.
Desain dank ode lebih mudah
diperiksa secara efektif.
- Merancang proyek, penjadwalan dan jalur diarahkan oleh
feature.
1.2.7. Agile
Modeling
Dalam situasi pembangunan software harus membangun sistem bisnis
yang besar dan penting. Jangkauan dan kompleksitas sistem harus
dimodelkan sehingga dapat dimengerti, masalah dapat dibagi menjadi
lebih kecil dan kualitas dapat dijaga pada tiap langkah pembangunan
software. Agile Modeling adalah suatu metodologi yang praktis
untuk dokumentasi dan pemodelan system software. Agile Modeling
adalah kumpulan nilai-nilai, prinsip dan praktek-praktek untuk
memodelkan software agar dapat diaplikasian pada software development
proyek secara efektif.
Prinsip dalam
Agile Modeling
:
- Membuat model dengan tujuan:
tentukan tujuan sebelum membuat model
- Mengunakan multiple models:
tiap model mewakili aspek yang berbeda dari model lain.
- Travel light: simpan
model-model yang bersifat jangka panjang saja
- Isi lebih penting dari pada
penampilan: modeling menyajikan informasi kepada audiens yang tepat.
- Memahami model dan alat yang
yang digunakan untuk membuat software
- Adaptasi secara local
1.2.8. Rational
Unified Process
Rational Unified Process, adalah suatu kerangka kerja
proses
pengembangan
perangkat
lunak
iteratif yang dibuat oleh
Rational
Software,
suatu divisi dari
IBM
sejak
2003.
RUP bukanlah suatu
proses
tunggal dengan aturan yang konkrit, melainkan suatu kerangka proses
yang dapat diadaptasi dan dimaksudkan untuk disesuaikan oleh
organisasi pengembang dan tim proyek
perangkat
lunak
yang akan memilih elemen proses sesuai dengan kebutuhan mereka.
Model ini membagi suatu sistem aplikasi menjadi beberapa komponen
sistem dan memungkinkan para developer aplikasi untuk menerapkan
metoda
iterative (analisis, disain, implementasi dan
pengujian) pada tiap komponen. Dengan menggunakan model ini, RUP
membagi tahapan pengembangan perangkat lunaknya ke dalam 4 fase
sebagai berikut.
- Inception, merupakan tahap
untuk mengidentifikasi sistem yang akan dikembangkan. Aktivitas yang
dilakukan pada tahap ini antara lain mencakup analisis sistem
eksisting, perumusan sistem target, penentuan arsitektur global
target, identifikasi kebutuhan, perumusan persyaratan perumusan
kebutuhan pengujian, pemodelan diagram UML, dan pembuatan
dokumentasi.
- Elaboration, merupakan tahap
untuk melakukan disain secara lengkap berdasarkan hasil analisis di
tahap inception. Aktivitas yang dilakukan pada tahap ini antara lain
mencakup pembuatan disain arsitektur subsistem), disain komponen
sistem, disain format data disain database, disain
antarmuka/tampilan, disain peta aliran tampilan, penentuan design
pattern yang digunakan, pemodelan diagram UML, dan pembuatan
dokumentasi.
- Construction, merupakan
tahap untuk mengimplementasikan hasil disain dan melakukan pengujian
hasil implementasi. Pada tahap awal construction, ada baiknya
dilakukan pemeriksaan ulang hasil analisis dan disain, terutama
disain pada domain perilaku (diagram sequence) dan domain struktural
(diagram class, component, deployment). Apabila disain yang dibuat
telah sesuai dengan analisis sistem, maka implementasi dengan bahasa
pemrogramanan tertentu dapat dilakukan. Aktivitas yang dilakukan pada
tahap ini antara lain mencakup pengujian hasil analisis dan disain
(misal menggunakan Class Responsibility Collaborator untuk kasus
pemrograman berorientasi obyek), pendataan kebutuhan implementasi
lengkap (berpedoman pada identifikasi kebutuhan di tahap analisis),
penentuan coding pattern yang digunakan, pembuatan program,
pengujian, optimasi program, pendataan berbagai kemungkinan
pengembangan / perbaikan lebih lanjut, dan pembuatan dokumentasi.
- Transition, merupakan tahap
untuk menyerahkan sistem aplikasi ke konsumen (roll-out), yang
umumnya mencakup pelaksanaan pelatihan kepada pengguna dan testing
beta aplikasi terhadap ekspetasi pengguna.