SOFTWARE PROCESS & METHOD -...
Transcript of SOFTWARE PROCESS & METHOD -...
email Fasilkom|| 4/22/2014
Software Process
Software Process merupakan serangkaiankegiatan yang mengarah ke produksi produkperangkat lunak (Ian Sommerville, 2007)
email Fasilkom|| 4/22/2014
Lapisan Rekayasa Perangkat Lunak
Proses mendifinisikan framework (kerangka kerja)yang harus dibangun & membentuk dasar bagikendali menagement proyek perangkat lunak
email Fasilkom|| 4/22/2014
Process Framework
Sebuah proses adalah kumpulan kegiatan, tindakandan tugas-tugas yang dilakukan ketika beberapaproduk kerja akan dibuat
Sebuah kerangka kerja menetapkan dasar untukmengidentifikasi sejumlah kecil aktivitas kerangkakerja (framework activity) yang berlaku untuksemua proyek perangkat lunak
email Fasilkom|| 4/22/2014
Umbrella Activities (AktivitasPenyangga)
Software project tracking and control Formal technical reviews Software quality assurance Software configuration management Document preparation and production Reusability management Measurement Risk management
email Fasilkom|| 4/22/2014
Process Framework - lanj
Secara umum Process Framework, meliputi:1. Communication2. Planning3. Modeling4. Construction5. Deployment
email Fasilkom|| 4/22/2014
Process Framework - lanj
Communication Tujuannya adalah untuk memahami tujuan pemangku
kepentingan (stakeholder) proyek dan untukmengumpulkan persyaratan (requirement) yang membantu mendefinisikan fitur-fitur dan fungsi-fungsiperangkat lunak.
Planning Menetapkan rencana kerja rekayasa perangkat lunak,
domain tugas-tugas teknis, sumber daya, produk kerja, dan jadwal kerja
Modeling Meliputi pembuatan model untuk lebih memahami
kebutuhan dan desain
email Fasilkom|| 4/22/2014
Process Framework - lanj
Construction Menggabungkan pembuatan kode dan pengujian untuk
menemukan error
Deployment Melibatkan pengiriman (deliver) perangkat lunak untuk pelanggan
untuk evaluasi dan umpan balik
Framework Process ini berlangsung secara berulang(iterasi), tiap iterasi akan menghasilkan softwareyang lebih lengkap
email Fasilkom|| 4/22/2014
Process Assessment
Kehadiran suatu proses perangkat lunak tidakmenjamin bahwa perangkat lunak akan diselesaikansecara tepat waktu, sesuai dengan kebutuhanpengguna.
Proses perangkat lunak harus dapat dinilai untukmemastikan bahwa PL memenuhi sejumlah kriteriaproses dasar yang esensial bagi rekayasa perangkatlunak yang berhasil
email Fasilkom|| 4/22/2014
Process Assessment
Process Assessment merupakan proses penilaianuntuk memastikan bahwa PL memenuhi sejumlahkriteria proses dasar yang esensial bagi rekayasaperangkat lunak yang berhasil
CMMI membahas karakteristik sutau prosesperangkat lunak dan kriteria suatu proses yang berhasil secara rinci
email Fasilkom|| 4/22/2014
Capability Maturity Model Integration (CMMI)
CMMI dikembangkan oleh Software Engineering Institute (SEI) di Carnegie Mellon University dansekarang ditangani oleh CMMI Institute
CMMI adalah model proses yang memberikandefinisi yang jelas tentang apa yang organisasi haruslakukan untuk mempromosikan perilaku yang mengarah pada peningkatan kinerja dengan lima tingkatan / Maturity Levels
email Fasilkom|| 4/22/2014
Capability Maturity Model Integration (CMMI)
Lima tingkatan / Maturity Lavel pada CMMI meliputi:
Level 1: Performed Semua tujuan yang spesifik dari area proses telah
terpenuhi Tugas kerja yang dibutuhkan untuk menghasilkan produk
kerja sedang dilakukan
Level 2: Managed Semua tugas kerja dan produk kerja dipantau,
dikendalikan dan dievaluasi sebagai kepatuhan terhadapdeskripsi proses
email Fasilkom|| 4/22/2014
Capability Maturity Model Integration (CMMI)
Proses Area dan Tingkat Kemampuan
email Fasilkom|| 4/22/2014
Capability Maturity Model Integration (CMMI)
Level 3: Defined Proses telah disesuaikan dari standar proses organisasi
yang sesuai dengan pedoman organisasi dan memberikankontribusi pada produk kerja, tindakan dan perbaikan lain
Level 4: Quantitatively Managed Area proses dikendalikan dan ditingkatkan dengan
menggunakan pengukuran dan penilaian kuantitatif. "Sasaran kuantitatif untuk kualitas dan kinerja prosesditetapkan dan digunakan sebagai kriteria dalammengelola proses”
email Fasilkom|| 4/22/2014
Capability Maturity Model Integration (CMMI)
Level 5: Optimized Area proses disesuaikan dan dioptimalkan
menggunakan kuantitatif (statistik) untuk memenuhiperubahan kebutuhan pelanggan dan untuk terusmeningkatkan efektivitas area proses yang dipertimbangkan
email Fasilkom|| 4/22/2014
Software Process
Terdapat 2 type software process:1. Plan-driven processes merupakan proses di mana
semua kegiatan proses yang direncanakan terlebihdahulu dan kemajuan diukur terhadap rencana ini
2. In agile processes merupakan perencanaantambahan dan lebih mudah untuk mengubahproses yang mencerminkan perubahan kebutuhanpelanggan
email Fasilkom|| 4/22/2014
Aliran Proses
Proses secara aliran: Linier, Iterative, Parallel, Evolutionary
email Fasilkom|| 4/22/2014
Software Process Model
Terdapat beberapa software process model, meliputi:
1. Waterfall Model Alur secara linier Biasa desebut dengan classic life cycle,
email Fasilkom|| 4/22/2014
Software Process Model
2. Evolutionary Model Dimulai dari model,
kemudiandikembangkan danakhirnya dipakai
Dimulai daripembuatan Prototype
email Fasilkom|| 4/22/2014
Software Process Model
3. Increment Model Incremental Model merupakan gabungan antara
model linier sekuensial dan prototyping. Setiap linier sekuen menghasilkan produk yang
deliverables (dapat dikirim) Increment pertama merupakan produk inti (core),
yang mengandung persyaratan/kebutuhan dasar. Penambahan dilakukan pada increment-increment
berikutnya
email Fasilkom|| 4/22/2014
Software Process Model
4. Spiral Model Evolutionary process (pengembangan bertingkat) Menggabungkan keunggulan prototyping dan
waterfall Memungkinkan dikembangkannya perangkat lunak
secara bertahap (incremental) dan cepat
email Fasilkom|| 4/22/2014
An Agile View of Process
Merupakan hal yang masuk akal, untukmengembangkan perangkat lunak secara cepat padajenis proyek perangkat lunak tertentu
Dapat memberikan sistem yang sukses dengancepat dengan menekankan komunikasi yang terusmenerus dan kolaborasi di antara para pengembangdan pelanggan
email Fasilkom|| 4/22/2014
Software Life Cycle
Perangkat lunak memiliki siklus hidup yang dikenaldengan siklus hidup perangkat lunak (Software Life Cycle)
Siklus hidup perangkat lunak (Software Life Cycle) adalah urutan dari kegiatan yang ada di dalamsebuah pengembangan perangkat lunak (Gustafson, 2002)
email Fasilkom|| 4/22/2014
Software Development Process
Software Development Process, juga dikenal sebagaiSoftware Development Life-Cycle / siklus hiduppengembangan perangkat lunak, adalah strukturyang dikenakan pada pengembangan produkperangkat lunak.
Software Life Cycle dan Software Process merupakanbagian dari siklus hidup pengembangan sistem(System Development Life Cycle)
email Fasilkom|| 4/22/2014
System Development Life Cycle (SDLC)
System Development life cycle (SDLC) / Siklus HidupPengembangan Sistem adalah proses memahamibagaimana sistem informasi (IS) dapat mendukungkebutuhan bisnis, perancangan sistem, membangunnya dan memberikannya kepadapengguna (Dennis, 2005).
email Fasilkom|| 4/22/2014
Kelebihan dan Kekurangan SDLC
Penerapan SDLC memiliki kekurangan dankelebihan.
Kelebihan dari SDLC adalah menyediakan tahapanyang dapat digunakan sebagai pedomanpengembangan sistem, sedangkan
Kekurangannya: hasil dari SDLC tergantung padahasil analisis, sehingga jika terdapat kesalahan ditahap analisis akan terbawa terus ke hasil sistem
email Fasilkom|| 4/22/2014
Tahapan SDLC
Dennis menggunakan Process Framework yang berbeda dengan Roger S.Pressman, yaitu: Planning, Analysis, Design & Implementation
SDLC memiliki 4 tahapan mendasar (Dennis, 2005):1. Planning2. Analysis3. Design4. Implementation
email Fasilkom|| 4/22/2014
PlanningPlanning
AnalysisAnalysis
DesignDesign
ImplementationImplementation
System Development Life Cycle (SDLC)
email Fasilkom|| 4/22/2014
Project Phases
1. Planning: Why build the system? System request, feasibility analysis, project size
estimation
2. Analysis: Who, what, when, where will the system be? Requirement gathering, business process modeling
3. Design: How will the system work? Program design, user interface design, data design
4. Implementation: System construction and delivery System construction, testing, documentation and
installation
email Fasilkom|| 4/22/2014
Processes and Products
Process Product
Planning
AnalysisDesign
Implementation
System Proposal
System Specification
New System withTesting/Maintenance Plan
Process Product
Planning
AnalysisDesign
Implementation
System Proposal
System Specification
New System withTesting/Maintenance Plan
email Fasilkom|| 4/22/2014
Planning(System Proposal)
Planning(System Proposal)
Analysis(System Specification)
Analysis(System Specification)
Design(System Specification)
Design(System Specification)
Implementation(New System)
Implementation(New System)
SDLC and Deliverables
email Fasilkom|| 4/22/2014
SDLC merupakan konsep, untukmengimplementasikannya membutuh suatupendekatan
Methodology merupakan suatu pendekatan formal untuk mengimplementasikan SDLC
What is methodology?
email Fasilkom|| 4/22/2014
Major Methodologies
1. Structured Design Waterfall method Parallel development
2. RAD Development Phased Development Prototyping Throw-away Prototyping
3. Agile Development Extreme Programming (XP) Scrum
email Fasilkom|| 4/22/2014
Structured Design Methodology
Project berjalan dari satu tahapan ke tahapanselanjutnya
Umumnya, suatu tahapan telah selesaisebelum memulai ke tahapan selanjutnya
email Fasilkom|| 4/22/2014
Waterfall Method
Kelebihan Mudah untuk dipahami, mudah untuk digunakan Tahapan dipahami dengan baik Kontrol management baik Bekerja baik ketika kualitas lebih penting dari biaya
atau jadwal Pengidentifikasian system request yang lama
sebelum memulai menuliskan kode (programming), meminimalisasi perubahan-perubahan yang terjadi
email Fasilkom|| 4/22/2014
Waterfall Method
Kekurangan Semua kebutuhan harus diketahui di awal Waktu yang lama antara system proposal dan
peyerahan sistem baru Design harus spesifik sebelum melakukan
programming Kemungkinannya kecil bagi customer untuk dapat
melihat preview sistem yang sedang dikerjakan
email Fasilkom|| 4/22/2014
When to use the Waterfall Model
Kebutuhan telah diketahui dengan baik Definisi produk stabil Versi baru dari suatu sistem yang telah ada
email Fasilkom|| 4/22/2014
Parallel Development
Salah satu metode design struktur lainnya adalahParallel Development
Seperti waterfall model, namun membaginya kepadabeberapa sub-sub project dan menggabungkannyapada tahap akhir
email Fasilkom|| 4/22/2014
Parallel Development
Parallel Development mencoba untuk mengatasimasalah penundaan yang lama antara tahap analisisdan pengiriman sistem.
Bukannya melakukan desain dan implementasisecara berurutan, Parallel Development melakukandesain umum untuk seluruh sistem dan kemudianmembagi proyek menjadi serangkaian sub proyekyang berbeda yang dapat dirancang danimplementasi secara paralel
email Fasilkom|| 4/22/2014
Rapid Application Development
1. Phased development A series of versions
2. Prototyping System prototyping
3. Throw-away prototyping Design prototyping
email Fasilkom|| 4/22/2014
Rapid Application Development
Critical elements to speed up the SDLC: CASE tools Visual programming languages Code generators
email Fasilkom|| 4/22/2014
Memecah sistem ke dalam beberapaserangkaian versi
Setiap versi memiliki Analis, Design, danImplementasi
Output dari suatu versi merupakan input untuk versi selanjutnya
Tahapan analisis mengidentifikasikeseluruhan konsep sistem kemudianmengkategorikan kebutuhan ke dalambeberapa versi.
RAD – Phased Development
email Fasilkom|| 4/22/2014
Kebutuhan mendasar dan pentingdimasukkan ke versi pertama dari sistem.
Tahapan analisis kemudian memasukidesign, dan implementasi, namun hanyapada kebutuhan yang diidentifikasi padaversi pertama.
Versi pertama telah diimplentasikan, pekerjaan versi 2 dimulai dengan tambahananalisis, ide-ide, isu-isu, pelajaran dari versi1, versi 2 dimulai, dst
Proses ini berlanjut sampai sistem selesai
RAD – Phased Development
email Fasilkom|| 4/22/2014
RAD – Phased Development
Kelebihan Mendapatkan sistem yang berguna untuk pengguna
dengan cepat
Kekurangan Sistem awal sengaja tidak lengkap System requirements berkembang tergantung
pandangan dari versi user
email Fasilkom|| 4/22/2014
Memulai dengan menyediakan fungsi sistemyang minimal minimal functionality disebutdengan "quick-and-dirty" prototype
Analisis, Design, Implementasi menghasilkanprototype. Perbaikan prototype dilakukanberulang-ulang dalam siklus (Analisis-Design-Implementasi)
Berhenti ketika prototype merupakan sebuahsistem kerja yang lengkap (sesuai)
RAD: Prototyping
email Fasilkom|| 4/22/2014
RAD: Prototyping
Prototipe pertama biasanya adalah bagian pertamadari sistem bahwa pengguna akan menggunakan ini
Ini ditunjukkan dengan pengguna dan sponsor proyekmemberikan komentar terhadap prototype yang dihasilkan, yang digunakan untuk menganalisakembali, mendesain ulang, dan melaksanakan re-prototipe kedua yang menyediakan beberapa fitur-fitur tambahan.
Proses ini terus berlanjut dalam siklus sampai analis, pengguna, dan sponsor sepakat prototipe (sekarangdisebut sistem) diinstal,
email Fasilkom|| 4/22/2014
RAD: Prototyping
Kelebihan Sangat cepat memberikan sistem bagi pengguna
untuk berinteraksi (bahkan jika organisasi itu tidaksiap/tidak memiliki gambaran)
Prototyping meyakinkan klien bahwa tim proyekbekerja dengan baik (tidak ada penundaan yang lama di mana pengguna melihat kemajuan),
Prototyping membantu lebih cepat memperbaikipersyaratan nyata (pengguna dapat berinteraksidengan prototipe untuk lebih memahami apa yang bisa dan tidak bisa lakukan).
email Fasilkom|| 4/22/2014
RAD: Prototyping
Kekurangan Sistem rilis yang cepat memiliki tantangan untuk
mencoba melakukan dengan hati-hati pada faseanalisis.
Hal ini dapat menyebabkan masalah dalampengembangan sistem yang kompleks karena isu danpermasalahan mendasar yang tidak diakui dengan baiksampai ke dalam proses pembangunan
email Fasilkom|| 4/22/2014
RAD: Throw-Away Prototyping
Throw-Away prototyping menggunakan prototypinguntuk tujuan yang berbeda dari prototyping sebelumnya
Melakukan analisis secara menyeluruh, untukmengumpulkan informasi & mengembangkan ide-ide untuk sebuah konsep sistem.
Masalah yang muncul diujicobakan/diselesaikandengan menganalisa, mendesign, & membangunsebuah prototype (yang dinamakan design prototype)
Yang dibangun merupakan fitur yang blm dipahamidengan jelas
email Fasilkom|| 4/22/2014
RAD: Throw-Away Prototyping
Sebagai contoh, pengguna tidak sepenuhnya jelastentang bagaimana sistem entry order harusbekerja.
Tim analis membangun serangkaian halaman HTML yang diperlihatkan untuk membantu klienmemvisualisasikan sistem yang dibangun.
Jika menginginkan program canggih, tim bisamenulis bagian dari program dengan data contoh(sample) untuk memastikan bahwa mereka bisamendapatkan apa yang diinginkan klien dengantepat
email Fasilkom|| 4/22/2014
RAD: Throw-Away Prototyping
Namun ini hanyalah design prototype (rancangan) ini bukan bagian dari produk
Membuat design prototype untuk memahamikebutuhan
Jika design prototype merupakan hal yang diinginkan & dapat mengatasi masalah, design prototype dibuang, selanjutnya memasuki tahapdesign, implementasi, system yang sesungguhnya.
email Fasilkom|| 4/22/2014
RAD: Throw-Away Prototyping
Kelebihan Setiap prototype yang dibangun dapat
meminimalkan resiko terkait isu-isu / masalah yang akan dihadapi oleh sistem
Menyeimbangkan fase analisis & design
Kekurangan Sistem yang dikembangkan bergantung pada
rancangan prototype
email Fasilkom|| 4/22/2014
Perbedaan Prototyping & ThrowAway P
Prototype digunakan sampai sistem final Sedangkan Throw Away, prototype tidak
digunakan/dibuang
email Fasilkom|| 4/22/2014
Agile Development
Menggunakan sedikit aturan yang mudah untukdipelajari dan diikuti
Mengurangi banyak pemodelan dan dokumentasi Menekankan kesederhanaan (simple) dan
pengembangan aplikasi yang iteratif (berulang) Contoh pengembangan ini:
Extreme Programming (XP) Scrum Dynamic Systems Development Model (DSDM)
email Fasilkom|| 4/22/2014
Extreme Programming (XP)
“Core Values” of XP1. Communication2. Simplicity3. Feedback4. Courage (Quality First, test and efficient coding)
email Fasilkom|| 4/22/2014
Extreme Programming (XP)
1. User Stories about system do2. Code small program using defined
standards3. User Feedback4. Repeat
email Fasilkom|| 4/22/2014
Selecting the Right Methodology
1. Clarity of User Requirements (KejelasanPersyaratan Pengguna)
2. Familiarity with Technology (Kefamiliaran denganteknologi)
3. System Complexity (Kompleksitas Sistem)4. System Reliability (Keandalan Sistem)5. Short Time Schedules (Jadwal Pendek)6. Schedule Visibility