Sebelumnya, telah dijelaskan bahwa proses terdiri dari sekelompok aktivitas, tindakan, dan tugas yang harus dilakukan saat membuat beberapa produk kerja. Setiap aktivitas, tindakan, dan tugas tersebut termasuk dalam kerangka kerja atau model yang menjelaskan hubungannya dengan proses dan antara satu sama lain.
Proses pengembangan perangkat lunak digambarkan secara skematis pada Gambar 1.1, dengan setiap aktivitas kerangka diisi oleh serangkaian tindakan yang harus dilakukan. Setiap tindakan tersebut memiliki tugas yang harus diselesaikan, termasuk penjaminan kualitas dan pencapaian tonggak waktu yang telah ditetapkan.
Seperti yang telah dibahas pada pembahasan sebelumnya, terdapat lima kegiatan kerangka dalam proses rekayasa perangkat lunak yang bersifat generik, yaitu communication, planning, modeling, construction, and deployment. Selain itu, beberapa aktivitas lain seperti pelacakan dan pengontrolan proyek, manajemen risiko, jaminan kualitas, manajemen konfigurasi, tinjauan teknis, dan sebagainya juga diterapkan dalam seluruh proses.
Dalam hal ini, penting untuk mencatat bahwa ada satu aspek dari proses perangkat lunak yang belum dibahas. Aspek ini dikenal sebagai process flow, yang menjelaskan bagaimana kegiatan kerangka kerja, tindakan, dan tugas yang terjadi dalam setiap kegiatan kerangka kerja diatur dalam urutan dan waktu tertentu. Gambar 1.2 memberikan ilustrasi dari alur proses ini.
Dalam pengembangan perangkat lunak, ada empat jenis alur proses yang dapat diambil. Linear process flow melakukan setiap aktivitas kerangka secara berurutan, dimulai dari komunikasi hingga penerapan (lihat Gambar 1.2a). Sementara itu, iterative process flow mengulangi satu atau beberapa aktivitas sebelum melanjutkan ke aktivitas berikutnya (lihat Gambar 1.2b). Evolutionary process flow menggunakan pendekatan "melingkar", di mana setiap rangkaian melalui lima aktivitas mengarah ke versi perangkat lunak yang lebih lengkap (lihat Gambar 1.2c). Di sisi lain, parallel process flow mengeksekusi satu atau lebih aktivitas secara paralel dengan aktivitas lain (misalnya, pemodelan untuk satu aspek perangkat lunak dapat dilakukan secara paralel dengan pembangunan aspek lain dari perangkat lunak) (lihat Gambar 1.2d).
1.1 Mendefinisikan Kegiatan Kerangka Kerja
Walaupun telah dijelaskan lima aktivitas kerangka kerja dan diberikan definisi dasar masing-masing di pembahasan sebelumnya, tim perangkat lunak membutuhkan informasi yang lebih detail untuk dapat menjalankan aktivitas ini secara efektif sebagai bagian dari proses perangkat lunak. Oleh karena itu, terdapat pertanyaan penting: tindakan apa yang sesuai untuk setiap aktivitas kerangka kerja, dengan mempertimbangkan sifat masalah yang akan diatasi, karakteristik dari para pekerja yang terlibat, dan juga para pemangku kepentingan yang mensponsori proyek?
Untuk proyek perangkat lunak kecil yang diminta oleh satu orang dengan persyaratan sederhana dan langsung, aktivitas komunikasi bisa terbatas hanya pada panggilan telepon dengan pemangku kepentingan yang tepat. Dalam hal ini, tindakan yang diperlukan hanyalah melakukan percakapan telepon dan tugas kerja yang terkait dengan tindakan ini adalah:
- Hubungi pihak-pihak yang berkepentingan melalui telepon.
- Bicarakan kebutuhan dan catatlah.
- Ubah catatan menjadi pernyataan tertulis singkat mengenai persyaratan.
- Kirimkan email kepada pemangku kepentingan agar mereka dapat meninjau dan menyetujui isi pesan tersebut.
Jika proyek perangkat lunak yang diminta jauh lebih rumit dengan melibatkan banyak pemangku kepentingan, masing-masing memiliki serangkaian kebutuhan yang berbeda dan terkadang saling bertentangan, maka aktivitas komunikasi dapat meliputi enam tindakan yang berbeda: memulai, memperoleh informasi, mengembangkan informasi, bernegosiasi, menentukan persyaratan, dan memvalidasi. Setiap tindakan rekayasa perangkat lunak akan terdiri dari berbagai tugas kerja dan sejumlah produk kerja yang berbeda.
1.2 Mengidentifikasi Kumpulan Tugas
Berdasarkan Gambar 1.1, setiap tindakan rekayasa perangkat lunak, seperti elisitasi yang terkait dengan aktivitas komunikasi, memiliki beberapa kumpulan tugas yang berbeda. Masing-masing kumpulan tugas ini mencakup produk kerja dan poin penjaminan kualitas yang berbeda serta tonggak proyek. Anda harus memilih kumpulan tugas yang sesuai dengan kebutuhan proyek dan karakteristik tim Anda. Dengan kata lain, tindakan rekayasa perangkat lunak dapat disesuaikan dengan kebutuhan khusus proyek perangkat lunak dan karakteristik tim proyek.
1.3 Pola Proses
Bergerak melalui proses perangkat lunak, setiap tim akan menghadapi berbagai masalah yang harus segera dipecahkan. Oleh karena itu, akan sangat membantu jika solusi yang telah terbukti dapat tersedia untuk tim. Process pattern memberikan gambaran tentang masalah yang terkait dengan proses yang mungkin terjadi selama rekayasa perangkat lunak. Pola ini mengidentifikasi lingkungan tempat masalah muncul dan menawarkan satu atau lebih solusi terbukti untuk mengatasinya. Secara umum, pola proses memberikan template atau metode yang konsisten untuk menggambarkan solusi masalah dalam konteks proses perangkat lunak. Dengan menggabungkan pola, tim perangkat lunak dapat dengan mudah memecahkan masalah dan menyusun proses yang sesuai dengan kebutuhan proyek.
Dalam penggunaannya, pattern dapat diterapkan pada berbagai tingkat abstraksi. Beberapa pola dapat diaplikasikan pada model proses secara keseluruhan, seperti pada prototyping, untuk menjelaskan masalah dan solusinya. Di sisi lain, pola juga dapat digunakan untuk menggambarkan masalah dan solusi pada aktivitas kerangka kerja, seperti perencanaan, atau tindakan dalam aktivitas kerangka kerja, seperti estimasi proyek.
Ambler memperkenalkan sebuah pola proses template yang digunakan untuk menjelaskan pola proses:
Pattern Name. Nama yang bermakna diberikan pada pola tersebut untuk menggambarkannya dalam konteks proses perangkat lunak, seperti pada pola Tinjauan Teknis.
Forces. Konteks di mana pola tersebut ditemukan dan masalah yang terjadi dalam situasi tersebut dapat mempengaruhi solusi yang diusulkan.
Type. Dalam menentukan jenis pola, Ambler merekomendasikan tiga jenis pola yang berbeda:
Stage pattern. Dalam pola tahapan, masalah terkait dengan aktivitas kerangka kerja proses perangkat lunak didefinisikan. Karena aktivitas kerangka kerja melibatkan banyak tindakan dan tugas kerja, pola tahapan menggabungkan beberapa pola tugas yang relevan dengan tahapan tersebut. Contohnya adalah pola Establishing Communication, yang menggabungkan pola tugas seperti Requirements Gathering dan lainnya.
Task pattern. Dalam pola tugas, masalah yang terkait dengan tindakan atau tugas rekayasa perangkat lunak didefinisikan, dan terkait dengan praktik rekayasa perangkat lunak yang sukses. Contohnya adalah pola tugas Requirements Gathering.
Phase pattern. Dalam pola fase, dibuat definisi mengenai urutan kegiatan kerangka kerja yang terjadi dalam proses, walaupun keseluruhan aliran kegiatan itu bersifat iteratif. Beberapa contoh pola fase seperti Spiral Model atau Prototyping.
Initial context. Pada bagian ini, pola dijelaskan dalam kondisi di mana pola tersebut berlaku. Beberapa hal yang harus dipertimbangkan sebelum memulai pola antara lain: (1) aktivitas organisasi atau tim terkait yang sudah terjadi, (2) status input untuk proses yang akan dilakukan, dan (3) informasi rekayasa perangkat lunak atau proyek yang sudah ada.
Contohnya, untuk menerapkan pola Planning (pola tahapan) dibutuhkan kondisi seperti (1) adanya komunikasi kolaboratif antara pelanggan dan perekayasa perangkat lunak, (2) telah berhasil menyelesaikan sejumlah pola tugas [yang telah ditentukan] untuk pola Communication yang terjadi, dan (3) mengetahui ruang lingkup proyek, persyaratan bisnis dasar, dan kendala proyek.
Problem. Polanya harus dapat menyelesaikan suatu masalah khusus.
Solution. Menjelaskan cara mengimplementasikan pola dengan sukses. Bagian ini menjelaskan bagaimana keadaan awal proses (yang ada sebelum pola diimplementasikan) dimodifikasi sebagai konsekuensi dari inisiasi pola. Ini juga menjelaskan bagaimana informasi rekayasa perangkat lunak atau informasi proyek yang tersedia sebelum inisiasi pola diubah sebagai konsekuensi dari keberhasilan eksekusi pola.
Resulting Context. Dalam bagian ini, dijelaskan kondisi yang akan terjadi setelah pola berhasil diimplementasikan. Pertanyaan-pertanyaan yang harus dijawab termasuk: (1) Apa aktivitas organisasi atau tim yang harus terjadi selanjutnya? (2) Apa output yang dihasilkan setelah proses tersebut selesai? (3) Informasi apa yang telah dikembangkan dalam rekayasa perangkat lunak atau proyek setelah pola berhasil diterapkan?
Related Patterns. Berikan daftar seluruh pola proses yang berhubungan secara langsung dengan pola ini. Hal ini dapat disajikan dalam bentuk hierarki atau dalam beberapa bentuk diagram lainnya. Sebagai contoh, pola tahapan "Communication" terdiri dari beberapa pola tugas seperti "Project Team", "Collaborative Guidelines", "Scope Isolation", "Requirements Gathering", "Constraint Description", dan "Scenario Creation".
Known Uses and Examples. Berikan suatu contoh konkret di mana pola tersebut terbukti efektif. Misalnya, dalam tahap awal setiap proyek perangkat lunak, Communication diwajibkan, disarankan untuk terus dilakukan sepanjang proyek perangkat lunak berlangsung, dan menjadi suatu keharusan saat aktivitas penyebaran sedang berjalan.
Process patterns memberikan solusi yang efektif untuk mengatasi masalah yang terkait dengan setiap jenis proses perangkat lunak. Pola memungkinkan pengguna untuk membuat deskripsi proses hirarkis yang dimulai dari abstraksi tingkat tinggi (dalam bentuk pola fase). Deskripsi ini kemudian diubah menjadi serangkaian pola tahap yang menjelaskan kegiatan kerangka kerja dan selanjutnya diperinci secara hirarkis menjadi pola tugas yang lebih spesifik untuk setiap pola tahap. Setelah pola proses dibuat, mereka dapat digunakan kembali untuk mendefinisikan variasi proses - yaitu, model proses yang disesuaikan dapat dibuat oleh tim pengembang perangkat lunak dengan menggunakan pola sebagai dasar untuk model proses tersebut.
Source: Pressman, Roger S. 2010. Software engineering : A Practitioner’s Approach (7th. Edition). New York: McGraw-Hill Higher Education.
Comments
Post a Comment