Dokumen tersebut membahas proses rekayasa perangkat lunak mulai dari model-model sistem pengembangan siklus hidup (SDLC), metode pengembangan sekuensial dan iteratif, serta prinsip-prinsip pengembangan berbasis agile.
3. SYSTEM DEVELOPMENT LIFE CYCLE (SDLC)
ď‚ System Development Life Cycle
(Siklus Hidup Pengembangan
Sistem) adalah serangkaian
aktifitas yang dilakukan oleh tim
pengembang dalam proses
rekayasa sistem (software).
ď‚ SDLC dijabarkan dalam 6 langkah
utama
Computer Engineering Department
4. KLASIFIKASI MODEL SDLC
Computer Engineering Department
SDLC Model
Sequential Iterative
Waterfall
V Model
Progressive
Spiral Incremental
5. SEQUENTIAL
•Model Waterfall
• Model Waterfall adalah pendekatan SDLC paling awal yang
digunakan untuk pengembangan perangkat lunak.
•Model Waterfall menggambarkan proses pengembangan
perangkat lunak dalam aliran sekuensial linier.
•Setiap tahap dalam proses pengembangan software
dimulai hanya jika tahap sebelumnya telah selesai
sehingga tidak ada fase yang tumpang tindih.
•Dalam Model Waterfall hasil dari satu fase bertindak
sebagai masukan untuk fase berikutnya secara berurutan.
Computer Engineering Department
7. SEQUENTIAL
• V Model
• V Model adalah model SDLC dimana proses eksekusi terjadi secara
berurutan dalam bentukV.
• V Model dikenal sebagaiVerifikasi danValidasi model.
• V Model adalah perpanjangan dari ModelWaterfall dan didasarkan
pada tahap pengujian untuk setiap tahap pengembangan yang
sesuai.
• DalamV Model fase pengujian untuk tahap pengembangan
direncanakan secara paralel.TahapVerifikasi di satu sisi fase 'V' dan
Validasi di sisi lain.
• DalamV Model tahap pengkodean menggabungkan kedua sisi
ModelV.
Computer Engineering Department
9. ITERATIVE
ď‚ Pendekatan Model Prototipe
ď‚ Prototipe adalah model kerja perangkat lunak dengan beberapa fungsi
terbatas.
ď‚ Prototipe digunakan untuk memudahkan pengguna mengevaluasi
proposal pengembang dan mencobanya sebelum implementasi.
ď‚ Prototipe membantu memahami persyaratan yang spesifik pengguna .
ď‚ Prototype merupakan bagian produk yang mengekspresikan logika
maupun fisik antarmuka eksternal yang ditampilkan dan digunakan untuk
mencari input dari customer.
ď‚ Rapid /Throwaway Protoyping
ď‚ Evolusioner Prototyping
ď‚ Incremental Prototyping
ď‚ Extreme Prototyping
Computer Engineering Department
10. ITERATIVE
ď‚ Rapid /Throwaway Protoyping
PrototipeThrowaway juga disebut sebagai prototyping yang cepat atau
mendekati akhir. Jenis prototyping ini menggunakan sedikit sekali usaha
dengan analisis kebutuhan minimum untuk membangun sebuah prototipe.
Setelah persyaratan yang sebenarnya dipahami, prototipe dibuang dan
sistem yang sebenarnya dikembangkan dengan pemahaman yang jauh
lebih jelas mengenai persyaratan pengguna.
ď‚ Evolusioner Prototyping
Prototipe evolusioner juga disebut sebagai breadboard prototypin yaitu
didasarkan pada pembuatan prototipe fungsional aktual dengan
fungsionalitas minimal di awal. Prototipe ini mengembangkan bentuk inti
prototipe masa depan dimana seluruh sistem akan dibangun. Dengan
menggunakan prototyping evolusioner, persyaratan yang dipahami
disertakan dalam pembuatan prototipe.
Computer Engineering Department
11. ITERATIVE
ď‚ Incremental Protoyping
Prototipe incremental mengacu pada pengembangan beberapa prototipe
fungsional dari berbagai sub-sistem dan kemudian mengintegrasikan
semua prototipe yang ada untuk membentuk sistem yang lengkap.
ď‚ Extreme Prototyping
Prototipe ekstrem digunakan dalam domain pengembangan web.
Computer Engineering Department
13. ITERATIVE
ď‚ Model Spiral
ď‚ Proses direpresentasikan sebagai model spiral (bukan berupa
barisan aktifitas yang dapat ditrack mundur)
ď‚ Setiap loop dalam model spiral menyatakan fase proses
ď‚ Tidak terdapat fase tertentu seperti spesifikasi atau
perancangan, tetapi loop dalam spiral ditentukan pada apa yang
dibutuhkan
Computer Engineering Department
15. AGILE DEVELOPMENT METHODS
ď‚ Agile Development Methods adalah sekelompok metodologi pengembangan
perangkat lunak yang didasarkan pada prinsip-prinsip yang sama atau
pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dari
pengembang terhadap perubahan dalam bentuk apapun.
ď‚ Agile Software Development memungkinkan model proses yang toleransi
terhadap perubahan requirement sehingga perubahan dapat cepat ditanggapi.
ď‚ Agile development methods terdefinisi dalam empat nilai, biasa di sebut Agile
Alliance’s Manifesto,diantaranya :
1. Interaksi dan personel lebih penting daripada proses dan alat.
2. Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap.
3. Kolaborasi dengan klien lebih penting daripada negosiasi kontrak.
4. Respon terhadap perubahan lebih penting daripada mengikuti rencana.
Computer Engineering Department
16. PRINSIP-PRINSIP AGILE
1. Our highest priority is to satisfy the customer through early and continuous delivery
of valuable software.
Agile memuaskan customer dengan cara men-deliver software bernilai dimata
customer secara berkala dan berkelanjutan.
2. Welcome changing requirements, even late in development. Agile processes harness
change for the customer’s competitive advantage.
Agile sangat responsif terhadap perubahan requirement demi memenuhi kebutuhan
user terhadap software.
3. Deliver working software frequently, from a couple of weeks to a couple of months,
with a preference to the shorter timescale.
Dengan waktu pengembangan singkat feedback software akan segera didapat.
Perubahan requirement atau kekurangan dari software dapat segera dilakukan dan
diperbaiki.
Computer Engineering Department
17. PRINSIP-PRINSIP AGILE
4. Business people and developers must work together daily throughout the project.
“Kerja bersama” antara orang bisnis dan developer selama development akan
menghasilkan desain sistem yang lebih baik (dimana antar tim dapat saling
memberikan kontribusi) dan requirement dapat dimengerti lebih cepat dan lebih baik.
Tim bisnis juga dapat mengetahui status project yang saat ini sedang berjalan.
5. Build projects around motivated individuals.Give them the environment and support
they need, and trust them to get the job done.
Motivasi akan membuat seseorang dapat bekerja dengan performa terbaiknya.
Dukungan dan kepercayaan akan membuat pekerjaan berjalan dengan lancar.
7. The most efficient and effective method of conveying information to and within a
development team is face-to-face conversation.
Secanggih apapun communication support tools yang digunakan saat development
tidak lebih baik daripada penyampaian informasi yang dilakukan secara tatap muka.
Computer Engineering Department
18. PRINSIP-PRINSIP AGILE
8. Agile processes promote sustainable development.The sponsors, developers, and
users should be able to maintain a constant pace indefinitely.
Agile menerapkan development yang berkelanjutan, sehingga dukungan stakeholder
diperlukan untuk menjaga agar tim tetap termotivasi dan tidak stress sehingga tidak
mengganggu proses delivery software.
9. Continuous attention to technical excellence and good design enhances agility.
Walaupun waktu deliver produk singkat, tapi kemampuan teknis developer dan desain
sistem perlu selalu diperhatikan agar proses Agile dapat berjalan dengan baik.
10. Simplicity–the art of maximizing the amount of work not done–is essential.
Nyatanya tidak semua feature yang telah di buat akan digunakan oleh user. Proses
penentuannya merupakan bagian dari seni.
Computer Engineering Department
19. PRINSIP-PRINSIP AGILE
11. The best architectures, requirements, and designs emerge from self-organizing
teams.
Produk terbaik akan dihasilkan dari tim yang diberikan kepercayaan untuk menentukan
solusi pada produknya, melakukan evaluasi produk, dan belajar dari kesalahan yang
sudah terjadi.
12. At regular intervals, the team reflects on how to become more effective, then tunes
and adjusts its behavior accordingly.
Pada akhir setiap iterasi development software tim Agile akan melakukan identifikasi
apa yang sudah dilakukan dengan baik, apa yang tidak, dan apa yang bisa dilakukan
untuk dapat lebih baik kedepannya.
Computer Engineering Department
21. MODEL PROSES AGILE
Computer Engineering Department
Adaptif Software Development
Extreme Programming
Feature Driven Development
Dynamic System Development Method
22. MODEL PROSES AGILE
Computer Engineering Department
Bahan diskusi besok
1. Scrum
2. Lean
3. Kanban
4. Feature Driven Development
5. Crystal
6. Dynamic System Development Method
7. Adaptive Software Development
8. Extreme Programming
23. FASE PENGEMBANGAN SOFTWARE
ď‚ Fase Definisi
ď‚ Fase Pengembangan (Development)
ď‚ Fase Pemeliharaan (Maintenance)
Computer Engineering Department
24. FASE DEFINISI
ď‚ Fase definisi memfokuskan pada “What”. Selama definisi ini, developer
software berusaha untuk :
ď‚ Mengidentifikasi informasi apa yang dikerjakan proses
ď‚ Fungsi dan performance apa yang diinginkan
ď‚ Interface apa yang dibutuhkan
ď‚ Hambatan desain apa yang ada, dan
ď‚ Kriteria validasi apa yang dibutuhkan untuk menetapkan keberhasilan
sistem.
Computer Engineering Department
25. FASE PENGEMBANGAN
ď‚ Fase pengembangan berfokus pada “How”. Selama
pengembangan, developer software berusaha menjelaskan :
ď‚ Bagaimana struktur data dan arsitektur software yang didesain
ď‚ Bagaimana rincian prosedur diimplementasikan ( diterapkan )
ď‚ Bagaimana desain diterjemahkan ke dalam bahasa pemrograman atau
bahasa non prosedur, dan
ď‚ Bagaimana pengetesan akan dilaksanakan
Computer Engineering Department
26. FASE PEMELIHARAAN
ď‚ Fase pemelihaaan berfokus pada “Change” atau perubahan. Ini
dapat disebabkan
ď‚ Perubahan karena software error ( Corective Maintenance )
ď‚ Perubahan karena software disesuaikan / diadaptasi dengan lingkungan
external, misalnya munculnyaCPU baru, sistem operasi baru ( Adaptive
Maintenance )
ď‚ Perubahan software yang disebabkan customer / user meminta fungsi
tambahan, misalnya fungsi grafik, fungsi matematik, dll ( Perfective
Maintenance)
Computer Engineering Department