870 likes | 1.28k Views
Proses Perangkat Lunak. Rekayasa Perangkat Lunak Materi ke 2 Muhammad Rachmadi , S.T., M.T.I. Rekayasa Perangkat Lunak. K ita telah menetapkan ranah per masalah an - perangkat lunak berskala industri
E N D
Proses Perangkat Lunak RekayasaPerangkatLunak Materike 2 Muhammad Rachmadi, S.T., M.T.I
Rekayasa Perangkat Lunak • Kitatelah menetapkan ranah permasalahan - perangkat lunak berskalaindustri • Selain menghasilkanperangkat lunak, biaya, mutu, dan jadwal jugamerupakanpenggerakpengembangan • RPL didefinisikan sebagai pendekatan sistematis untuk pengembangan perangkat lunak(berskalaindustri)
Proses, Orang, Teknologi • M& P (mutu & prooduktivitas) adalah tujuan yang penting • M & P tergantung pada orang, proses, dan teknologi • Proses membantu orang menjadi lebih produktif dan membuat kesalahan lebih sedikit • Alat membantu orang menjalankan beberapa tugas dalam proses lebih efisien dan efektif • Jadi, proses membentuk inti
Proses Perangkat Lunak • Proses berbeda dari produk - produk hasil dari melaksanakan proses pada proyek • RPLberfokus pada proses • Dasarnya: proses yang tepat akan membantu mencapai tujuan proyek dengan M&P yang tinggi
Proyek dan Proses • Sebuah proyek perangkat lunak adalah salah satu contoh dari masalah pengembangan • Proses Pengembangan membawaproyek dari kebutuhan pengguna ke perangkat lunak • Ada tujuan-tujuan lain yaitu jadwal, biaya,dan mutu, selain menghasilkanperangkat lunak • Butuh proses lainnya
Proses Perangkat Lunak ... • Proses: Urutan langkah-langkah dilakukan untuk mencapai tujuan tertentu • Proses Perangkat Lunak: Urutan langkah-langkah yang dilakukan untuk memproduksi perangkat lunak dengan mutu yang tinggi, dalam anggaran dan jadwaltertentu • Banyak jenis kegiatan yang dilakukan oleh orang-orang ygberbedadalam sebuah proyek perangkat lunak • Lebih baik untuk melihat proses PL sebagai proses yang terdiri dari banyakkomponen
Komponen Perangkat Lunak Proses • Dua proses utama • Pengembangan - berfokus pada pengembangan dan langkah-langkah mutu yang diperlukan untuk rekayasawanperangkat lunak • Manajemen Proyek - berfokus pada perencanaan dan pengendalian proses pengembangan • Proses pengembangan merupakan jantung dari proses perangkat lunak; proses-proses lain beradadi sekitarnya • Ini dijalankan oleh orang yang berbeda • pengembang mengeksekusi prosesrekayasa • manajer proyek mengeksekusi proses manajemen
Komponen Proses ... • Proses lain • Proses manajemen konfigurasi: mengelola evolusi artefak • Proses manajemen perubahan: bagaimana perubahan yang dimasukkan • Proses manajemen proses: manajemen proses itu sendiri • Proses Inspeksi: Bagaimana inspeksi dilakukan pada artefak
Proses Spesifikasi • Proses umumnya satu set fase • Setiap fase melakukan tugas yang didefinisikan dengan baik dan umumnya menghasilkan keluaran • Keluaranantara- produk kerja • Pada tingkat atas, biasanya beberapa fase dalam proses • Cara melakukan fase tertentu – menggunakanmetodologi
SpesifikasiETVX • Pendekatan ETVX untuk menentukan langkah • Kriteria masuk: kondisi apa yang harus dipenuhi untuk memulai fase ini • Tugas: apa yang harus dilakukan dalam fase ini • Verifikasi: pemeriksaan dilakukan pada keluarandari tahap ini • Kriteria keluar: kapan bisa fase ini dianggap diselesaikandengan sukses • Suatu fase juga menghasilkan informasi untuk manajemen
Proyek Perangkat Lunak • Proyek - untuk membangun sebuah sistem PL dalam biaya dan jadwal dan dengan mutu tinggi yang memuaskan pelanggan • Proses yang cocok diperlukan untuk mencapai tujuan • Proses seharusnya tidak hanya membantu menghasilkan perangkat lunak tetapi membantu mencapai M&P yang tertinggi
Proses Proyek dan Model Proses • Proses proyek yang harus diikuti ditentukan dalam perencanaan • Sebuah model proses menentukan proses umum yang optimal untuk suatukelas masalah • Sebuah proyek dapat memilih proses dengan menggunakan salah satu model proses
Proses Pengembangan • Satu set fase dan setiap fase berupaurutan langkah • Urutan langkah-langkah untuk fase - fase adalahmetodologi untuk itu • Mengapa memilikifase-fase: • Untuk menggunakan pendekatan ‘bagi-bagidan taklukkan’ • setiap fase menangani bagian yang berbeda dari masalah • membantu dalam validasi berkelanjutan
Proses Pengembangan • Umumnya memiliki kegiatan: analisis kebutuhan, arsitektur, perancangan, pemrograman, pengujian, penyerahan • Model yang berbeda melakukan fase-fasetersebutdengan cara yang berbeda
ModelProses • Sebuah model proses menentukan proses umum, biasanya sebagai satu set daritahap-tahappekerjaan. • Model ini akan cocok untuk kelas proyektertentu • Jadi,model menyediakan struktur generik dari proses yang dapat diikuti oleh beberapa proyek untuk mencapai tujuannya
Model Waterfall • Urutan linear tahap/fase • Kebutuhan – Rancangan Tingkat Tinggi – Rancangan Rinci - Pemrograman- Pengujian – Penyerahan • Suatufase dimulai hanya ketika fasesebelumnya telah selesai; tidak ada umpan balik • Fase membagiproyek, masing-masing menangani masalah yang terpisah
Waterfall... • Urutan linear menyiratkan setiap tahap harus memiliki beberapa keluaran • Keluaranharus divalidasi/diverivikasi • Keluarandari fase sebelumnya: produk kerja • Keluaranumum dari waterfall: SRS, rencana proyek, dokumenrancangan, rencana dan laporanpengujian, kode akhir, dokumen pendukung
Keunggulan Waterfall • Secara konseptual sederhana, membagi masalah ke dalam tahap yang berbeda yang dapat dilakukan secara independen • Pendekatan alamiuntuk pemecahan masalah • Mudah untuk mengelola dalam kontrak - setiap fase adalah milestone
Kelemahan Waterfall • Menganggap bahwa kebutuhan dapat ditetapkan dan dibekukandiawal • Menetapkanperangkatkerasdan teknologi lainnya terlalu dini • Mengikuti pendekatan "big bang" – “all or nothing delivery”; terlalu berisiko • Sangat berorientasi dokumen, membutuhkan dokumen pada akhir setiap tahap
Penggunaan Waterfall • Penggunaan Waterfall • Telah digunakan secara luas • Cocok untuk proyek-proyek di mana kebutuhan dapat dipahami dengan mudah dan keputusan teknologi yang mudah • Untuk proyek yang sudah dikenal mungkinini yang paling optimal
Purwarupa • Purwarupamengatasiketerbatasanspesifikasi kebutuhanwaterfall • Sebagaigantipembekuan kebutuhanhanya dengan diskusi, purwarupadibangun untuk memahami kebutuhan • Membantu meringankan risiko kebutuhan • Sebuah model waterfallkecil menggantikan tahap kebutuhan
Purwarupa • Pengembangan purwarupa • Mulai dengan kebutuhan awal • Hanya fitur kunci yang perlu pemahaman yang lebih baik yang termasuk dalam purwarupa • Tidak ada gunanya memasukkanfitur-fitur yang dipahami dengan baik • Umpan balik dari pengguna diambil untuk meningkatkan pemahaman dari kebutuhan
Purwarupa • Biaya dapat ditekan serendahmungkin • Hanya membangun fitur yang memerlukan klarifikasi • "cepat dan kotor" - mutu tidak penting, skrip dll dapat digunakan • Hal-hal seperti penanganan eksepsi, pemulihan, danstandar dihilangkan • Biaya bisabeberapa% sajadari total • Belajar dalam membangun purwarupaakan membantu dalam pengembangan, selain kebutuhan yang ditingkatkan
Purwarupa • Keunggulan: kebutuhanakan lebih stabil, kebutuhandibekukankemudian, pengalaman membantu dalam pengembangan utama • Kelemahan: berpotensi meningkatkanbiaya dan jadwal • Penerapan: Ketika kebutuhansulit untuk diperoleh dan keyakinan dalam kebutuhanrendah; yaitu di mana kebutuhantidak dipahami dengan baik
Pengembangan Iteratif • Mengatasimasalah"semua atau tidaksamasekali" yang merupakan kelemahan dari model waterfall • Menggabungkan manfaat purwarupadan waterfall • Mengembangkan dan menyediakan perangkat lunak secara bertahap • Setiap peningkatanmerupakanbagian yang lengkap • Dapat dilihat sebagai waterfall ygberurutan • Umpan balik dari satu iterasi yang digunakan dalam iterasi yang berikutnya
Iteratif… • Setiapiterasihampirselaludiikuti produk yang dihasilkan • Digunakan umumnya dalam pengembangancustomjuga • Bisnis ingin respon cepat untuk PL • Tidak dapat menghadapirisiko “semua atautidaksamasekali” • Pendekatan baru seperti XP, Agile, ... semua bergantung pada pengembangan iteratif
Iteratif… • Keunggulan: Mendapatkansesuai yang dibayar, umpan balik untuk perbaikan • Kelemahan: Arsitektur/rancanganmungkin tidak optimal, pengerjaan ulang dapat meningkat, total biaya mungkin lebihbesar • Penerapan: di mana waktu respon sangat penting, risiko proyek yang lama tidak dapat diambil, semua kebutuhantidak diketahui
Bentuk lain Iteratif • Iterasi pertama membuatkebutuhan dan arsitektur dengan cara waterfall • Pengembangan dan penyerahandilakukan secara bertahap dalam iterasi
Timeboxing • Iteratif adalah urutan linier dari iterasi • Setiap iterasi adalah waterfall mini - menentukan spesifikasi, kemudianrencana iterasi • Timeboxing– menetapkandurasi iterasi, kemudian menentukan spesifikasi • Membagi iterasi dalam beberapa tahap yang sama • Menggunakan konsep pipelining untuk mengeksekusi iterasi secara paralel
Iterasi Time Boxed • Pengembangan iteratif umum – menetapkanfungsi untuk setiap iterasi, kemudian merencanakan dan jalankan • Pada iterasi kotak waktu – menetapkandurasi iterasi dan menyesuaikan fungsi yang akandimasukkan • Waktu penyelesaiannya tetap, fungsi yang akan disampaikan fleksibel
Iterasi Time Boxed • Hal ini sendiri sangat berguna dalam banyak situasi • Waktu pengiriman dapatdiprediksi • Rilis produk secara keseluruhan dan pemasaran dapat lebih terencana • Membuat parameter waktu tidak bisa ditawar dan membantu memfokuskan perhatian pada jadwal • Mencegah penggelembungan kebutuhan • Waktu pengembangan secara keseluruhan masih tidak berubah
Timeboxing • Bagaimana jika kita memiliki beberapa iterasi yang dieksekusi secara paralel • Dapat mengurangi waktu penyelesaian rata-rata dengan memanfaatkan paralelisme • Untuk eksekusi paralel, dapat meminjam konsep-konsep pipelining dari perangkatkeras • Hal ini menghasilkanModel Proses Timeboxing
Model Timeboxing • Dasar • Pengembangan dilakukan secara iteratif dalam kotak waktu berdurasi tetap • Setiap kotak waktu dibagi dalam tahap yang tetap • Setiap tahap melakukan tugas yang jelas yang dapat dilakukan secara mandiri • Setiap tahap kira-kira sama dalam haldurasi • Ada sebuah tim khusus untuk setiap tahap • Ketika tim satu tahap selesai, timitu menyerahkan proyek kepada tim berikutnya
Timeboxing… • Dengan kotak waktu jenisini, dapat menggunakan pipelining untuk mengurangi waktu siklus • Seperti pipelining perangkatkeras– memandangiterasi sebagaisatuinstruksi • Sebagai tahap memilikitimkhusus, eksekusi simultan dari iterasi yang berbeda adalah memungkinkan
Contoh • Sebuah iterasi dengan tiga tahap – (A)nalisis, (B)angun, (S)erahkan • Tahap-tahap ini lebihkurangsama dalam banyak situasi • Dapat menyesuaikan durasidengan menentukan batasyang sesuai • Dapat menyesuaikan durasi dengan menyesuaikan ukuran tim untuk setiap tahap • Memiliki tim terpisah untuk masing-masingtahap
Eksekusi Pipelined • Tim Amulai menjalankaniterasi 1 • Tim A selesai, menyerahkaniterasi1 ke Tim B, danmulai menjalankan iterasi2 • Tim A menyelesaikaniterasi2, menyerahkanke Tim B, Tim B menyelesaikaniterasi1, menyerahkanke Tim S, Tim A memulai iterasi 3, Tim B mulai iterasi2 (dan Tim S, iterasi1) • ...
eksekusi Timeboxing • Iterasi pertama selesai pada waktu T • Kedua selesai pada T + T / 3; ketiga pada T +2 T / 3, dan seterusnya • Dalam keadaanstabil, pengiriman setiap T / 3 waktu • Jika T adalah 3 minggu, pengiriman pertama setelah 3 minggu, 2 setelah 4 minggu, 3 setelah 5 minggu, ... • Dalam pelaksanaan linier, waktu pengiriman akan 3 minggu, 6 minggu, 9 minggu, ...
Eksekusi • Jangka waktu iterasi masing-masing masih sama • Jumlah pekerjaan dilakukan dalam kotak waktu juga sama • Produktivitas dari kotak waktu sama • Namun, waktu siklus rata-rata atau waktu pengiriman telah dikurangi menjadi sepertiga
UkuranTim • Dalam pelaksanaan linear dari iterasi, tim yang sama melakukan semua tahap • Jika setiap tahap memiliki tim dari S, dalam pelaksanaan linear ukuran tim adalah S • Dalam pelaksanaan pipelined, ukuran tim adalah tiga kali (satu timuntuk setiap tahap) • Tapi,ukuran total dalam tim timeboxing lebih besar, dan ini mengurangi waktu siklus
UkuranTim • Hanya dengan meningkatkan ukuran tim kita tidak bisa mengurangi waktu siklus - Hukum Brook • Timeboxingmemungkinkan cara yang terstruktur untuk menambah tenaga kerja untuk mengurangi waktu siklus • Perhatikan bahwa kita tidak dapat mengubah waktu iterasi - Hukum Brook masih berlaku • Alokasi pekerjaan yang berbeda untuk memungkinkan tim yang lebih besar untuk berfungsi dengan baik
Timeboxing… • Keunggulan: waktu pengiriman lebih pendek, mendapatkanjugakeuntunganlain daripendekataniteratif, distribusi eksekusi • Kelemahan: tim besar, manajemenproyeklebih sulit, sinkronisasi tinggi diperlukan, manajemenkonfigurasisulit • Penerapan:Ketika waktu pengiriman yang singkat sangatpenting; arsitektur stabil; fleksibilitas dalam pengelompokan fitur