software process & method -...

67
email Fasilkom|| 4/22/2014 SOFTWARE PROCESS & METHOD Defri Kurniawan M.Kom REKAYASA PERANGKAT LUNAK

Upload: buikien

Post on 16-Mar-2018

231 views

Category:

Documents


4 download

TRANSCRIPT

email Fasilkom|| 4/22/2014

SOFTWARE PROCESS & METHOD

Defri Kurniawan M.Kom

REKAYASA PERANGKAT LUNAK

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

Process Framework

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

3. Increment Model

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

Software Process Model

4. Spiral Model

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

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

Parallel Development

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

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

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

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

Extreme Programming (XP)

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

email Fasilkom|| 4/22/2014

Selecting the Right Methodology