Anda di halaman 1dari 49

Siklus Pengembangan

Perangkat Lunak
(Software Development Life Cycle)

Endy Muhardin <endy@artivisi.com>


http://endy.artivisi.com
last updated : 2007-08-01

   
Who am I
● Endy Muhardin
– endy@artivisi.com
– Y! endymuhardin
● Kegiatan
– Software Developer
– Project Manager
– SEPG Member (BaliCamp)
Kompetensi Teknis
● Java Enterprise Edition (JEE)
● Spring Framework
● Hibernate O/R Mapping
● Java Server Faces (JSF)
● PHP
● Linux (single boot sejak 2002)
Projects
● PlaySMS
● PlayBilling
● CMMI
Buku Subversion
Materi
● Siklus Pengembangan Perangkat Lunak
– Fase Perencanaan
– Fase Analisa
– Fase Desain
– Fase Coding
– Fase Testing
– Fase Implementasi
– Fase Pemeliharaan
Metodologi
● Heavyweight
– Waterfall
– RUP
● Lightweight
– Agile
– XP
● Apapun metodologinya, kegiatannya mirip
– analysis – desain – coding – testing – deliver
Fase Perencanaan [1]
● Estimasi ukuran software
– Function point calculation
– Metode Putnam
– Metode COCOMO
● Estimasi effort dan durasi
– Berapa orang?
– Berapa bulan?
– Berapa biayanya?
Fase Perencanaan [2]
● Memilih metodologi
● Menentukan milestone
● Mendefinisikan aturan manajemen
– komunikasi
– penyimpanan dokumen
– aturan rilis
– prosedur change management
● Mengidentifikasi resiko
Fase Perencanaan [3]
● Menyusun anggota tim
– Steering Committee / Project Sponsor
– Project Manager
– Subject Matter Expert
– Business Analyst
– Software Architect
– Programmer
– Tester
– Technical Writer
Produk Fase Perencanaan
● Project Schedule
– Estimasi ukuran
– Estimasi effort dan durasi
– Tanggal selesai masing-masing milestone
● Project Plan
– Stakeholder plan
– Configuration management plan
– Training plan
– Daftar resiko project
Tools Fase Perencanaan
● DotProject
● ActiveCollab
● Open Workbench
???

Pertanyaan dan Diskusi

   
Project Monitoring [1]
● Rencana yang telah dibuat harus
dimonitor secara berkala agar proyek
berjalan baik
● Tujuan Project Monitoring
– Memastikan rencana dijalankan
– Identifikasi masalah sedini mungkin
– Memecahkan masalah sedini mungkin
– Memantau kinerja anggota tim
Project Tracking [2]
● Hal yang harus dimonitor
– Kemajuan proyek dibandingkan rencana awal
– Keterlibatan stakeholder
– Pemenuhan komitmen
– Resiko proyek
– Penanganan masalah yang timbul
Tools Project Monitoring
● DotProject
● ActiveCollab
● Open Workbench
● Timesheet
???

Pertanyaan dan Diskusi

   
Fase Analisa [1]
● Memahami software yang akan dibuat
(requirement)
– Diskusi dengan SME
– Diskusi dengan User
● Verifikasi requirement
– Review hasil analisa
– Prototyping
– Membuat test scenario
Fase Analisa [2]
● Mendapatkan komitmen
– Sign off
– Email Approval
● Mengelola perubahan
– Setiap perubahan harus melalui prosedur
Fase Analisa [3]
● Requirement yang baik
– Sahih (tidak berdasarkan asumsi)
– Dapat diimplementasikan
– Benar-benar diperlukan
– Memiliki skala prioritas
– Tidak ambigu
– Dapat diverifikasi
Fase Analisa [4]
● Spesifikasi yang baik
– Lengkap
– Konsisten
– Bisa diubah
– Bisa dilacak
Produk Fase Analisa
● Functional Spec / SRS / URS / CRS
● Test Scenario
● Requirement Traceability Matrix
● Prototype
● UML Diagram
– Use Case Diagram
– Activity Diagram
Tools Fase Analisa
● DokuWiki
● OSRMT
● Jude Community
● Poseidon CE
Kegunaan Spesifikasi
● Marketing
– membuat brosur
– merencanakan kegiatan pemasaran
● Developer
– mendesain software
– membuat software
● Technical Writer
– menulis dokumentasi
???

Pertanyaan dan Diskusi

   
Change Management
● Kebutuhan user
– PASTI BERUBAH !!!
● Ini adalah hal yang alami
● Perlu ada prosedur khusus sehingga tidak
mengacaukan proyek
● Perubahan requirement akan berbuntut:
– Perubahan effort
– Perubahan durasi
– Perubahan biaya
Prosedur Change Management
● Change Requester harus jelas
● Impact Analysis harus dihitung dengan
cepat
– gunakan Requirement Traceability Matrix
● Berdasarkan hasil Impact Analysis,
Steering Committee bisa memutuskan:
– approve and proceed immediately
– pending to next phase
– discard completely
???

Pertanyaan dan Diskusi

   
Fase Desain [1]
● Desain tampilan akhir
– warna
– huruf
– efek khusus
● Memilih teknologi dan framework
– kemudahan
– kecepatan
– fitur
– sistem operasi
Fase Desain [2]
● Menentukan partisi sistem
– komponen
– plugin
● Menentukan skema database
Produk Fase Desain
● Technical Specification
● Proof of Concepts
● Arsitektur Sistem
● Dokumentasi pemilihan teknologi
– Alternatif yang dipertimbangkan
– Kriteria yang digunakan
– Bobot masing-masing kriteria
– Penilaian masing-masing alternatif
● Test Script
Tools Fase Desain
● Jude Community
● Poseidon CE
● Aqua Studio
● DBDesigner
???

Pertanyaan dan Diskusi

   
Fase Coding [1]
● Persiapan Development
– Version Control
– Mailing List / Forum Diskusi
– Bug Tracker
– Continuous Integration
● Kebijakan Coding
– coding standard
– quality standard
Fase Coding [2]
● Pengukuran kualitas kode
– keterikatan (coupling)
– kompleksitas
– kemudahan pengembangan (extensibility)
– kesesuaian dengan best-practices
– kecukupan jumlah test vs jumlah kode

Fase Coding [3]
● Jenis test yang dilakukan programmer
– Unit Test : method/function
– Coverage Test : kecukupan unit test
– Code Review : praktek coding
– Integration Test : interaksi dengan sistem lain
(database, mail, aplikasi lain)
– Performance Test : waktu yang dibutuhkan
untuk menjalankan fitur tertentu
– Stress Test : perilaku fitur bila dihadapkan
dengan request yang banyak
Produk Fase Coding
● Coding convention
● Kode program
● Unit test
● Code review report
● Unit test report
● Coverage test report
● User Manual
Tools Fase Coding (Java)
● Ant
● PMD / Findbugs
● JUnit / TestNG
● Cobertura / Emma
● DBUnit
● CruiseControl / Luntbuild
● JDepend
● JUnitPerf
● JMeter
Tools Fase Coding (Umum)
● Subversion
● Mantis
● phpBB
● Redmine
● GForge
???

Pertanyaan dan Diskusi

   
Fase Testing
● Terdiri dari
– Internal Testing: dilakukan oleh project team
– User Testing: dilakukan oleh customer
● Tujuan (Internal Testing)
– mengurangi jumlah bug yang ditemukan oleh
customer / end-user
● Tujuan (User Testing)
– memastikan software yang diterima sesuai
dengan spesifikasi yang diminta
Produk Fase Testing
● Bug Report
● Bug Fix
Tools Fase Testing
● Functional Specification
● Test Scenario
● Mantis
● Selenium
● HttpUnit
● Canoo WebTesting
● Abbot & Costello
???

Pertanyaan dan Diskusi

   
Fase Implementasi
● Tujuan
– menyiapkan aplikasi untuk penggunaan yang
sebenarnya (go-live)
● Kegiatan
– User Training
– Administrator Training
– Migrasi Data (kalau ada)
– Cut off sistem/proses lama
Produk Fase Implementasi
● Training Material
● Cut-off Data
Fase Pemeliharaan
● Kegiatan
– perbaikan bug yang tersisa
– penambahan fitur
– perubahan fitur
● Bisa dilakukan dalam kesepakatan
terpisah atau sebagai bagian dari masa
garansi
Terima Kasih

● endy@artivisi.com
● http://endy.artivisi.com
● Y!: endymuhardin
   
   

Anda mungkin juga menyukai