Tujuan
Tujuan bab ini adalah mengenalkan Anda pada konfigurasi
proses dan alat manajemen. Bila Anda telah membaca bab ini,
kamu akan:
memahami proses dan prosedur yang terlibat dalam perubahan perangkat
lunak pengelolaan;
mengetahui fungsi penting yang harus disediakan oleh sebuah versi sistem manajemen,
dan hubungan antar versi pengelolaan dan pembangunan sistem;
memahami perbedaan antara versi sistem dan sistem lepaskan, dan ketahuilah tahapan
dalam proses pelepasan manajemen.
Isi
25.1 Manajemen perubahan
25.2 Manajemen versi
25.3 Pembangunan sistem
25.4 Pelepasan manajemen
Sistem perangkat lunak selalu berubah selama pengembangan dan penggunaan. Bug
ditemukan dan harus diperbaiki. Persyaratan sistem berubah, dan Anda harus menerapkan
perubahan ini dalam versi sistem yang baru. Versi baru perangkat keras dan platform
sistem tersedia dan Anda harus menyesuaikan sistem Anda untuk bekerja dengannya. Pesaing
mengenalkan fitur baru di batang sy mereka yang harus Anda serasi. Seiring perubahan pada
perangkat lunak, versi baru dari ystem dibuat. Oleh karena itu, sebagian besar sistem dapat
dianggap sebagai serangkaian versi, yang harus dipelihara dan dikelola.
Manajemen konfigurasi (CM) berkaitan dengan kebijakan, proses, dan alat untuk
mengelola perubahan sistem perangkat lunak. Anda perlu mengelola sistem yang
berkembang karena mudah kehilangan jejak versi chan ges dan komponen apa yang
telah digabungkan ke dalam setiap versi sistem. V ersions menerapkan proposal
untuk perubahan, koreksi kesalahan, dan adaptasi untuk perangkat keras dan sistem operasi
yang berbeda. Mungkin ada beberapa versi di bawah pengembangan dev dan digunakan pada
saat bersamaan . Jika Anda tidak memiliki prosedur pengaturan gement mana yang
efektif , mungkin Anda bisa membuang sedikit modifikasi versi sy yang salah, memberikan
versi sistem yang salah kepada pelanggan, atau lupa di mana kode
sumber softwa untuk versi tertentu dari sistematau komponen disimpan.
Manajemen konfigurasi berguna untuk proyek individu karena mudah untuk satu
proyek orang lupa perubahan apa yang telah dilakukan Ini penting bagi proyek tim
dimana beberapa pengembang bekerja bersamaan pada sistem perangkat lunak. Terkadang para
pengembang ini bekerja di tempat yang sama namun, semakin, tim pengembang didistribusikan
dengan anggota di berbagai lokasi di seluruh dunia. Penggunaan sistem manajemen konfigurasi
memastikan bahwa t eams memiliki akses ke informasi tentang sistem yang sedang
dikembangkan dan tidak mengganggu pekerjaan masing-masing.
Manajemen konfigurasi produk sistem perangkat lunak melibatkan empat kegiatan yang
terkait erat (Gambar 25.1):
1. Manajemen perubahan Ini melibatkan pelacakan permintaan perubahan perangkat lunak
dari pelanggan dan pengembang, mengerjakan biaya dan dampaknya membuat perubahan ini,
dan memutuskan apakah dan kapan harus berubah diimplementasikan
2. Manajemen versi Ini mencakup pembuatan beberapa versi komponen sistem dan
memastikan perubahan yang dibuat pada komponen secara berbeda pengembang tidak saling
mengganggu.
3. Sistem bangunan Ini adalah proses perakitan komponen program, data, dan perpustakaan,
dan kemudian kompilasi dan menghubungkannya untuk menciptakan sistem eksekusi.
4. Melepaskan manajemen Ini melibatkan persiapan perangkat lunak untuk pelepasan
eksternal dan mencatat versi sistem yang telah dirilis untuk penggunaan pelanggan.
Manajemen konfigurasi melibatkan sejumlah besar informasi dan banyak alat manajemen
konfigurasi telah dikembangkan untuk mendukung CM
Manajemen rilis
Ubah Proposal
Manajemen Perubahan
Sistem Pers
Komponen Versi
Versi sistem
Manajemen Versi
Bangunan sistem
Gambar 25.1
Aktivitas pengelolaan konfigurasi
proses. Ini berkisar dari alat sederhana yang mendukung satu tugas pengelolaan konfigurasi
tunggal , seperti pelacakan bug, hingga kompleksitas perangkat terintegrasi yang canggih yang
mendukung semuaaktivitas pengelolaan confi guration.
Kebijakan dan proses pengelolaan konfigurasi menentukan bagaimana cara merekam
dan proses perubahan sistem yang diusulkan, bagaimana cara membedakan komponen sistem
apa yang akanberubah, bagaimana mengelola berbagai versi sistem dan komponennya,
dan bagaimana mengubah perubahan pada pelanggan. Alat pengelolaan konfigurasi
adalah digunakan untuk melacak proposal perubahan, menyimpan versi komponen
sistem, membangun sistem dari komponen ini, dan melacak pelepasan versi sistem kepada
pelanggan.
Manajemen konfigurasi terkadang dianggap sebagai bagian dari perangkat
lunak manajemen mutu (dibahas dalam Bab 24 ), dengan manajer yang sama memiliki tanggung
jawab manajemen dan konfigurasi manajemen yang baik. Bila versi baru perangkat lunak telah
diterapkan , ini diserahkan oleh tim pengembang ke tim penjaminan mutu (QA ). Tim QA
memeriksa bahwa kualitas sistem dapat diterima. Jika demikian, maka jadilah sistem yang
terkendali,
yang berarti bahwa semua perubahan pada sistem harus disepakati dan dicatat sebelum
diterapkan.
Definisi dan penggunaan standar manajemen konfigurasi sangat penting sertifikasi mutu
baik standar ISO 9000 dan CMM dan CMMI (Ahern et al ., 2001; Bamford dan Deibler, 2003;
Pa ulk et al., 1995; Peach, 1996). Standar CM ini dapat didasarkan pada standar sta CM
generik yang telah dikembangkan oleh badan seperti IEEE. Misalnya standar IEEE 828-1998
adalah standar untuk rencana manajemen konfigurasi. Standar ini berfokus pada proses CM dan
dokumen yang dihasilkan selama proses CM . Dengan menggunakan standar eksternal sebagai
titik awal, perusahaan kemudian mengembangkan standar spesifik perusahaan yang lebih rinci
yang diberikan pada kebutuhan spesifik mereka.
Salah satu masalah dalam manajemen konfigurasi adalah bahwa perusahaan yang
berbeda membicarakan konsep yang sama dengan menggunakan istilah yang berbeda. Ada yang
bersejarah
Penjelasan Term
Konfigurasi item atau konfigurasi perangkat lunak
item (SCI)
Apa pun yang terkait dengan proyek perangkat lunak (des ign, code, test data, document, etc.)
yang telah ditempatkan di bawah konfigurasi con trol. Sering ada versi yang berbeda dari item
konfigurasi. Itemkonfigurasi memiliki nama yang unik.
Kontrol konfigurasi
Proses untuk memastikan bahwa versi sistem dan komponen dicatat dan dipertahankan sehingga
perubahan dikelola dan semua versi komponen diidentifikasi dan disimpan untuk masa pakai
sistem. Versi Sebuah instance dari item konfigurasi yang berbeda, dalam beberapa hal, dari
contoh lain dari item itu. Versi selalu memiliki unique ident ier, yang sering terdiri dari nama
item konfigurasi ditambah nomor versi.
Baseline
Sebuah baseline adalah kumpulan versi komponen yang membentuk sebuah sistem. Dasar-
dasar dikendalikan, yang berarti bahwa versi komponen yang membentuk sistem tidak dapat
diubah. Ini berarti bahwa sebaiknya selalu menciptakan kembali garis dasar dari komponen
penyusunnya.
Codeline
Sebuah codeline adalah seperangkat versi perangkat lunak mponent dan item konfigurasi lainnya
yang menjadi komponennya.
Garis utama
Urutan garis dasar yang mewakili berbagai versi sistem.
Melepaskan
Versi sistem yang telah dilepaskan ke pelanggan (atau pengguna lain di
organisasi) untuk digunakan.
Ruang kerja
Area kerja pribadi di mana perangkat lunak dapat dimusnahkan tanpa
mempengaruhi pengembang lain yang mungkin menggunakan atau memodifikasi perangkat
lunak itu.
Percabangan
Pembuatan codeline baru dari versi n codeline yang ada. Codeline baru dan codeline yang ada
kemudian dapat dikembangkan secara independen.
Penggabungan
Pembuatan versi baru komponen softwar e dengan menggabungkan versi terpisah dengan kode
kode yang berbeda. Ines codel ini mungkin telah dibuat oleh cabang sebelumnya dari salah satu
kode kode yang terlibat.
Sistem bangunan
Pembuatan versi sistem yang dapat dijalankan dengan mengkompilasi dan menghubungkan versi
komponen dan perpustakaan yang sesuai dengan sistem.
Gambar 25.2 CM
terminologi
alasan untuk ini Sistem perangkat lunak militer wer e mungkin sistem pertama di mana
manajemen konfigurasi digunakan dan terminologi untuk syst ini ems mencerminkan proses dan
prosedur yang sudah di p renda
untuk manajemen konfigurasi hardware. Pengembang syste ms komersial tidak terbiasa dengan
prosedur militer atau terminologi dan sering menemukan istilah mereka sendiri . Metode tangkas
juga telah menemukan teologi baru, kadang-kadang diperkenalkan dengan sengaja untuk
membedakan pendekatan tangkas dari metode CM tradisional. Gambar 25.2
mendefinisikan terminologi konfigurasinagement yang saya gunakan dalam bab ini.
Penjelasan Term
25. Manajemen perubahan
Perubahan adalah fakta hidup untuk sistem perangkat lunak besar. Kebutuhan dan persyaratan
kebutuhan Organi berubah selama masa sistem, bug tidak dapat diperbaiki, dan sistem
harus menyesuaikan diri dengan perubahan di lingkungan mereka. Untuk memastikan
bahwa perubahan tersebut diterapkan pada sistem dengan cara yang terkendali, Anda
memerlukan seperangkat proses manajemen perubahan yang didukung, diubah . Manajemen
perubahan dimaksudkan untuk memastikan bahwa evolusi sistem tersebut merupakan proses
yang terkelola dan prioritas tersebut diberikan pada perubahan yang paling mendesak dan hemat
biaya.
Proses manajemen perubahan berkaitan dengan analisis biaya dan manfaat dari
perubahan yang diusulkan, menyetujui perubahan tersebut pada manfaatnya, dan
melacak komponen mana dalam sistem yang telah diubah . Gambar 25.3 adalah model proses
manajemen perubahan yang menunjukkan bahwa prinsipal mengubah aktivitas manajemen. Ada
banyak varian dari proses ini yang digunakan namun,agar efektif, proses manajemen
perubahan harus selalu memiliki cara untuk mengurangi, mengorbankan, dan
menyetujui perubahan. Proses ini harus mulai berlaku saat perangkat lunak diserahkan
untukdilepaskan ke pelanggan atau untuk kepentingan deplesi dalam sebuah organisasi.
Proses manajemen perubahan dimulai saat 'pelanggan' selesai dan mengajukan
permintaan perubahan yang menjelaskan perubahan yang diperlukan pada sistem. Ini bisa
Dukungan Pelanggan
Pengembangan
Menyerahkan
CR
Pelanggan
Pengembangan Produk / CCB
Perubahan
Permintaan
Pilih CRs
Tutup CRs
Menilai CRs
Valid tidak sah
Tutup CR Register CR
Periksa CR
Lulus
Gagal
Tutup CR
Pelaksanaan
Analisis
Dampak biaya
Analisis
Memodifikasi
Perangkat lunak
Uji Perangkat Lunak
686 Bab 25 _ manajemen konfigurasi
Gambar 25.4 Sebagian
selesai ganti
form Permintaan
jadilah laporan bug, di mana gejala bug dijelaskan, atau permintaan fungsionalitas tambahan
untuk ditambahkan ke batang sy . Beberapa perusahaan menangani laporan bug dan persyaratan
baru secara terpisah namun, secara umum , keduanya hanya mengubah permintaan. Permintaan
perubahan dapat diajukan dengan menggunakan formulir permintaan perubahan ( change request
form / CRF). Saya menggunakan istilah 'pelanggan' di sini untuk menyertakan pemangku
kepentingan yang bukan bagian dari tim pengembang, jadi perubahan mungkin disarankan ,
misalnya oleh departemen pemasaran di perusahaan.
Permintaan perubahan elektronik mencatat informasi yang dibagi antara semua kelompok
yang terlibat dalam manajemen perubahan. Saat pencarian perubahan kembali diproses,
informasiditambahkan ke CRF untuk mencatat keputusan yang dibuat setiap tahapan
prosesnya. Setiap saat, oleh karena itu merupakan gambaran dari keadaan permintaan
perubahan. Serta mencatat perubahan yang diperlukan, CRF mencatat rekomendasi
mengenai perubahan tersebut; perkiraan biaya perubahan; suatu tanggal ketika perubahan
itu diminta, disetujui, diimplementasikan, dan divalidasi. CRF mungkin juga termasuk bagian
di mana pengembang menguraikan bagaimana perubahan dapat diimplementasikan.
Contoh formulir permintaan perubahan yang sebagian telah selesai ditunjukkan pada
Gambar 25.4. Ini adalah contoh jenis CRF yang mungkin digunakan dalam proyek
rekayasa sistem kompleks yang besar . Untuk proyek yang lebih kecil, saya recomm akhir
bahwa permintaan perubahan harus dicatat secara formal dan CRF harus berfokus
pada penggambaran perubahan yang diperlukan, dengan penekanan lebih sedikit pada masalah
implementasi. Sebagai pengembang ystem, Anda memutuskan bagaimana menerapkan
perubahan itu dan memperkirakan waktu yang dibutuhkan untuk ini.
Gambar 25.5
Sejarah Derivatif
// Proyek SICSA (XEP 6087)
//
// APP-SYSTEM / AUTH / RBAC / USER_ROLE
//
// Obyek: currentRole
// Pengarang: R. Looek
// Tanggal pembuatan: 13/11/2009
//
// © St Andrews University 2009
//
// Riwayat modifikasi
// Versi Modifier Date Change Reason
// 1.0 J. Jones 11/11/2009 Tambahkan tajuk Submitted to CM
// 1.1 R. Looek 13/11/2009 Bidang baru Ubah req. R07 / 02
Baseline - V1
A B1.2 C1.1
L1 L2 Ex1
Baseline - V2
A1.3 B1.2 C1.2
L1 L2 Ex2
Garis utama
Tanggal Pembuatan
Urutan versi
Terakhir
Struktur Penyimpanan
Versi
1.0
Versi
1.1
Versi
1.2
Versi
1.3
D1 D2 D3
V1.3 Sumber
Kode
Gambar 25.7 Penyimpanan
manajemen menggunakan
delta
CVS (Vesperman, 2003), adalah mungkin untuk memeriksa dan memeriksa semua file terkait
dengan sebuah proyek daripada harus bekerja dengan satu file atau direktori pada satu waktu.
Sistem pengembangan dan server build keduanya dapat berinteraksi dengan versi sistem
manajemen. Sistem VM mungkin ada di server build atau dedicated server. Untuk sistem
embedded, lingkungan simulasi dapat dipasang di lingkungan pengembangan untuk
pengujian, daripada menggunakan platform sistem tertanam yang sebenarnya . Simulator ini
dapat memberikan dukungan debugging lebih baik daripada yang tersedia pada sistem yang
disematkan. Namun, sangat sulit untuk mensimulasikan perilaku sistem yang disematkan dalam
segala hal. Anda harus menjalankan tes sistem pada platform yang sebenarnya dimana sistem
akan dijalankan, serta simulator sistem.
Sistem bangunan melibatkan perakitan sejumlah besar informasi tentang perangkat lunak
dan lingkungan operasinya. Untuk itu , untuk sesuatu yang terpisah dari sistem yang sangat kecil,
selalu masuk akal untuk menggunakan alat pengembangan otomatis untuk menciptakan
sistem (Gambar 25.11). Perhatikan bahwa Anda tidak hanya memerlukan file kode sumber
yang terlibat dalam pembuatan. Anda mungkin harus menghubungkannya dengan yang
disediakan secara eksternal
Sistem Pengembangan
bersama
Versi Manajemen dan Build Server
Sistem Sasaran
Sistem yang Dapat Dijalankan
Platform Sasaran
Periksa
(bersama)
Mendaftar
Pengembangan
Alat
Ruang kerja pribadi
Versi
Pengelolaan
Sistem
Membangun Server
Gambar 25.10
Pembangunan, pembangunan,
dan target platform
Sumber
File kode
File data
Perpustakaan
Executable
Pengujian
Executable
Sistem Sasaran
Hasil tes
Konfigurasi
File
Otomatis
Membangun Sistem
Kompiler
Gambar 25.11 Sistem dan Peralatan
bangunan
perpustakaan, file data (seperti file pesan kesalahan ), dan file konfigurasi yang menentukan
target instalasi. Anda mungkin harus mengetahui versi compiler dan perangkat lunak lain yang
akan digunakan dalam pembuatannya. Idealnya, Anda harus ab le untuk membangun sebuah
sistem yang lengkap dengan perintah tunggal atau klik mouse.
Ada banyak alat pembuatan yang tersedia dan sistem pembuatan mungkin menyediakan
beberapa atau semua fitur berikut:
1. Membangun skrip generasi Jika perlu, sistem build harus menganalisa program yang
sedang dibangun, mengidentifikasi komponen dependen, dan secara otomatis
menghasilkan script build (terkadang disebut file konfigurasi). Sistem juga harus mendukung
pembuatan dan pengeditan manual pembuatan skrip.
2. Integrasi sistem manajemen versi Sistem build harus memeriksa versi komponen yang
dibutuhkan dari sistem manajemen versi.
3. Kompilasi ulang minimal Sistem build harus mencari tahu kode sumber apa yang harus
dikompilasi ulang dan menyiapkan kompilasi jika diperlukan.
4. Pembuatan sistem executable Sistem build harus menghubungkan file kode objek yang
dikompilasi satu sama lain dan dengan file lain yang dibutuhkan, seperti perpustakaan dan file
konfigurasi, untuk membuat sistem eksekusi.
5. Uji otomasi Beberapa sistem build dapat secara otomatis menjalankan tes
otomatis menggunakan alat uji otomasi seperti JUnit. Ini memastikan bahwa bangunan
belum 'rusak' oleh perubahan.
6. Pelaporan Sistem pembuatan harus memberikan laporan tentang keberhasilan atau
kegagalan membangun dan tes yang telah dijalankan.
7. Generasi Dokumentasi Sistem build mungkin dapat menghasilkan catatan rilis tentang
halaman bantuan build and system.
Script build adalah definisi sistem yang akan dibangun. Ini mencakup informasi tentang
komponen dan dependensinya, dan perangkat yang digunakan untuk mengkompilasi dan
menghubungkan sistem. Skrip build mencakup spesifikasi con figuration sehingga bahasa
scripting yang digunakan seringkali sama dengan bahasa deskripsi konfigurasi.
Bahasa konfigurasi mencakup konstruksi untuk menggambarkan komponen sistem yang akan
disertakan dalam membangun dan ketergantungannya.
Sebagai kompilasi adalah proses komputasi yang intensif, alat untuk
mendukung pembangunan sistem biasanya dirancang untuk meminimalkan jumlah kompilasi
yang diperlukan. Mereka melakukan ini dengan memeriksa apakah versi kompilasi dari
compo nent tersedia. Jika demikian, tidak perlu mengkompilasi ulang komponen itu. Oleh karena
itu, ada cara untuk secara jelas menghubungkan kode sumber komponen dengan kode objek
ekuivalennya.
Cara yang dilakukan ini adalah mengaitkan tanda tangan unik dengan setiap file
dimana komponen kode sumber disimpan. Kode objek yang sesuai , yang telah dikompilasi dari
kode sumber, memiliki tanda tangan terkait. Tanda tangan mengidentifikasi setiap versi kode
sumber dan diubah bila kode asam terbit diedit. Dengan membandingkan tanda tangan pada file
sumber dan kode objek, adalah mungkin untuk memutuskan apakah komponen
kode sumber digunakan untuk menghasilkan komponen kode objek.
Ada dua jenis tanda tangan yang bisa digunakan:
1. Tanda tangan modifikasi Tanda tangan pada file kode sumber adalah waktu
dan tanggal saat file tersebut dimodifikasi. Jika file kode sumber komponen
telah dimodifikasi setelah file kode objek terkait, maka sistem mengasumsikan
bahwa kompilasi ulang untuk membuat file kode objek baru diperlukan.
Misalnya, komponen Comp.java dan Comp.class memiliki tanda tangan modifikasi 17:
03: 05: 02: 14: 2009 dan 16: 34: 25: 02: 12: 2009. Ini berarti kode Java dimodifikasi pada
3 menit dan 5 detik 5 pada tanggal 14 Februari 2009 dan versi yang dikompilasi
dimodifikasi pada 34 menit dan 25 detik 4 pada tanggal 12 Februari 2009. Dalam kasus
ini, sistem akan otomatis kompilasi ulang Comp.java karena versi yang dikompilasi
tidak termasuk perubahan yang dibuat pada kode sumber sejak 12 Februari.
2. Source code checksum Tanda tangan pada file kode sumber adalah checksum
yang dihitung dari data dalam file. Fungsi checksum menghitung bilangan unik dengan
menggunakan teks sumber sebagai masukan. Jika Anda mengubah kode sumber (bahkan
dengan satu karakter), ini akan menghasilkan checksum yang berbeda. Oleh karena itu
Anda dapat yakin bahwa file kode sumber dengan checksum berbeda sebenarnya
berbeda. Checksum ditugaskan ke kode sumber sebelum kompilasi dan secara unik
mengidentifikasi file sumber. Itu membangun sistem kemudian tag file kode objek yang
dihasilkan dengan tanda tangan checksum. Jika tidak ada file kode objek dengan tanda
tangan yang sama seperti file kode sumber yang akan disertakan dalam sistem, maka
kompilasi ulang kode sumber diperlukan.
Sebagai file kode objek biasanya tidak diversi, pendekatan pertama berarti hanya file kode
objek yang dikompilasi baru-baru ini yang tersimpan dalam sistem. Hal ini biasanya terkait
dengan file kode sumber dengan nama (i e, memiliki nama yang sama dengan file kode sumber
namun dengan akhiran yang berbeda). Karena itu , file sumber Comp.Java bisa menghasilkan file
objek Comp.class. Karena sou rce dan file objek dihubungkan oleh nama dan bukan tanda tangan
sumber berkas yang eksplisit , biasanya tidak mungkin untuk membuat versi komponen
komponen kode yang berbeda ke dalam direktori yang sama pada saat bersamaan, karena ini
akan menghasilkan file objek dengan sama nama.
Pengujian Gagal
Pengujian OK
baik
Tes Check-out Gagal
Garis utama
Membangun dan
Sistem Uji
Membangun dan
Sistem Uji
Membuat
Perubahan
Check-in ke
Membangun Server
Membangun dan
Sistem Uji
Melakukan
Perubahan pada VM
Versi
Pengelolaan
Sistem
Membangun Server
Pribadi
Ruang kerja
Versi
Pengelolaan
Sistem
Gambar 25.12
Integrasi terus menerus
Pendekatan checksum memiliki keuntungan untuk memungkinkan berbagai versi kode
objek komponen dipertahankan pada waktu bersamaan. Tanda tangan dan bukan nama file
adalah link antara sumber kode objek nd. Kode sumber dan kode objek memiliki tanda tangan
yang sama. Oleh karena itu, ketika Anda mengkompilasi ulang komponen, kode tersebut tidak
menimpa kode objek , seperti biasanya ketika stempel waktu digunakan. Sebaliknya, ia
menghasilkan file kode objek baru dan menandainya dengan tanda kode sumber. Kompilasi
paralel adalah mungkin dan versi komponen yang berbeda dapat disusun pada saat yang
bersamaan.
Metode tangkas menyarankan agar sistem yang sangat sering dibangun harus
dilakukan dengan pengujian otomatis (kadang-kadang disebut tes asap) untuk menemukan
masalah perangkat lunak. Sering membangun mungkin merupakan bagian dari
proses integrasi berkesinambungan , seperti yang ditunjukkan pada Gambar 25.12. Sesuai
dengan gagasan tangkas untuk membuat banyak perubahan kecil , integrasi terus menerus
melibatkan pembangunan kembali jalur utama sesering mungkin, setelah perubahan kode sumber
kecil telah dilakukan. Langkah-langkah dalam integrasi berkesinambungan adalah:
1. Simak sistem jalur utama dari sistem manajemen versi ke dalam ruang kerja
pribadi pengembang.
2. Bangun sistem dan jalankan tes otomatis untuk memastikan sistem yang dibangun
melewati semua tes. Jika tidak, bangunan rusak dan Anda harus memberitahu siapa pun
yang memeriksa sistem dasar terakhir. Mereka bertanggung jawab untuk memperbaiki
masalah.
3. Buat perubahan pada komponen sistem.
4. Bangun sistem di ruang kerja pribadi dan jalankan kembali tes sistem. Jika tes
gagal, lanjutkan pengeditan.
5. Begitu sistem telah lulus tesnya, periksa ke sistem build tapi jangan lakukan itu
sebagai dasar sistem yang baru.
6. Bangun sistem pada build server dan jalankan tesnya. Anda perlu melakukan ini
jika orang lain telah memodifikasi komponen sejak Anda memeriksa
sistem. Jika demikian, periksa komponen yang telah gagal dan edit sehingga tes ini lulus
pada ruang kerja pribadi Anda.
7. Jika sistem melewati tes pada sistem build, maka lakukan perubahan
yang telah Anda buat sebagai baseline baru di sistem mainline.
Argumen untuk integrasi berkesinambungan adalah bahwa hal itu memungkinkan masalah
yang disebabkan oleh interaksi antara pengembang yang berbeda dapat ditemukan dan
diperbaiki sesegera mungkin. Sistem yang paling baru di mainline adalah sistem kerja definitif.
Namun, meskipun integrasi kontinu adalah ide yang baik , tidak selalu mungkin menerapkan
pendekatan ini terhadap pembangunan sistem. Alasan untuk ini adalah:
1. Jika sistemnya sangat besar, mungkin butuh waktu lama untuk membangun dan
menguji. Oleh karena itu tidak praktis untuk membangun sistem itu beberapa kali per hari.
2. Jika platform pengembangan berbeda dari platform target, mungkin
tidak mungkin menjalankan tes sistem di ruang kerja pribadi pengembang. Disana
mungkin menjadi perbedaan dalam perangkat keras, sistem operasi, atau perangkat lunak
yang diinstal. Karena itu lebih banyak waktu yang dibutuhkan untuk menguji sistem.
Untuk sistem besar atau untuk sistem dimana platform eksekusi tidak sama dengan
platform pengembangan, integrasi berkelanjutan mungkin impra ctical. Dalam keadaan seperti
itu, sistem build harian bisa digunakan. Fitur dari hal ini adalah sebagai berikut:
1. Organisasi pengembang menetapkan waktu pengiriman (katakanlah 2 PM) untuk
komponen sistem. Jika pengembang memiliki versi baru dari komponen yang mereka
tulis, mereka harus mengirimkannya pada saat itu. Komponen mungkin tidak lengkap
namun harus menyediakan beberapa fungsi dasar yang bisa diuji.
2. Versi baru dari sistem ini dibangun dari komponen ini dengan mengkompilasi
dan menghubungkannya untuk membentuk sistem yang lengkap.
3. Sistem ini kemudian dikirim ke tim pengujian, yang melakukan serangkaian tes
sistem yang telah ditentukan. Pada saat yang sama, para pengembang masih
mengerjakan komponen mereka, menambah fungsionalitas dan memperbaiki kesalahan
yang ditemukan pada tes sebelumnya.
4. Kesalahan yang ditemukan selama pengujian sistem didokumentasikan dan
dikembalikan ke pengembang sistem. Mereka memperbaiki kesalahan ini dalam versi
berikutnya dari komponen.
Perubahan platform
Anda mungkin harus membuat rilis baru dari aplikasi perangkat lunak saat versi baru
dari platform sistem operasi dilepaskan.
Persaingan : Untuk perangkat lunak pasar massal, peluncuran sistem baru mungkin diperlukan
karena produk pesaing telah memperkenalkan fitur baru dan pasar mungkin akan hilang jika
tidak disediakan bagi pelanggan lama.
Persyaratan pemasaran
Bagian pemasaran sebuah organisasi mungkin telah membuat komitmen agar rilis tersedia pada
tanggal tertentu.
sistem. Pemikiran hati-hati harus diberikan untuk melepaskan timin g. Jika rilis terlalu
sering atau memerlukan upgrade perangkat keras, pelanggan mungkin tidak akan beralih ke rilis
baru, terutama jika mereka harus membayarnya. Jika sistem rilis terlalu jarang terjadi, pangsa
pasar mungkin akan hilang saat pelanggan beralih ke sistem alternatif.
Berbagai faktor teknis dan organisasi yang harus Anda perhitungkan saat menentukan
kapan harus merilis versi baru dari sebuah sistem ditunjukkan pada Gambar 25.13.
Pelepasan sistem bukan hanya kode yang dapat dieksekusi dari sistem. Pelepasan ini
mungkin juga mencakup:
• file konfigurasi yang menentukan bagaimana pelepasannya harus dikonfigurasi
untuk instalasi tertentu ;
• file data, seperti file pesan kesalahan, yang dibutuhkan untuk operasi sistem yang berhasil ;
• sebuah program instalasi yang digunakan untuk membantu menginstal sistem pada
perangkat keras target;
• dokumentasi elektronik dan kertas yang menjelaskan sistem;
• kemasan dan publikasi terkait yang telah dirancang untuk rilis tersebut.
Penciptaan rilis adalah proses pembuatan kumpulan file dan dokumentasi yang mencakup
semua komponen pelepasan sistem . Kode program yang dapat dieksekusi dan semua file data
terkait harus diidentifikasi dalam sistem manajemen versi dan ditandai dengan identifier
rilis. Deskripsi konfigurasi mungkin harus ditulis untuk perangkat keras dan operasi sy stem dan
instruksi yang dipersiapkan untuk pelanggan yang perlu mengkonfigurasi sistem onn mereka .
Jika manual yang dapat dibaca mesin didistribusikan, salinan elektronik harus disertakan dengan
perangkat lunak. Skrip untuk program instalasi mungkin harus ditulis. F inally, kapan semua
informasi itu Tersedia, gambar master executable dari softw harus dipersiapkan dan
diserahkan untuk didistribusikan ke pelanggan atau outlet penjualan.
Saat merencanakan pemasangan sistem baru, Anda tidak dapat mengasumsikan
bahwa pelanggan akan selalu menginstal kemudahan sistem baru . Beberapa pengguna sistem
mungkin senang dengan sistem yang ada. Mereka mungkin mempertimbangkan bahwa tidak
perlu biaya untuk beralih ke rilis baru. Rilis baru dari sistem tidak bisa, karena itu,
mengandalkan pada instalasi rilis sebelumnya. Untuk menggambarkan masalah ini ,
pertimbangkan skenario berikut ini :
1. Release 1 dari sebuah sistem didistribusikan dan mulai digunakan.
2. Release 2 membutuhkan pemasangan file data baru, namun beberapa pelanggan
tidak memerlukan fasilitas pelepasan 2 sehingga tetap dengan release 1.
3. Release 3 memerlukan file data yang terinstal di release 2 dan tidak memiliki file
data baru sendiri.
Distributor perangkat lunak tidak dapat mengasumsikan bahwa file yang diperlukan
untuk rilis 3 sudah terpasang di semua situs. Beberapa situs masuk langsung dari rilis 1
untuk melepaskan 3, melewatkan rilis 2. Beberapa situs mungkin memiliki mod ified file data
yang terkait dengan rilis 2 untuk mencerminkan keadaan setempat. Oleh karena itu, file data
harus didistribusikan dan diinstal dengan release 3 dari sistem.
Biaya pemasaran dan kemasan yang terkait dengan rilis baru produk perangkat
lunak tinggi sehingga vendor produk biasanya hanya membuat rilis baru untuk platform
baru atau menambahkan fungsionalitas baru yang signifikan. Mereka kemudian membebankan
pengguna untuk perangkat lunak baru ini . Ketika masalah ditemukan dalam rilis yang ada,
vendor perangkat lunak membuat tambalan untuk memperbaiki perangkat lunak yang ada di situs
web yang akan diunduh oleh pelanggan.
Masalah dengan menggunakan tambalan yang dapat diunduh adalah banyak pelanggan
mungkin tidak pernah menemukan adanya perbaikan masalah ini dan mungkin tidak
mengerti mengapa harus dipasang. Mereka mungkin malah terus menggunakan sistem mereka
yang sudah ada dan salah dengan konsekuensi risiko bisnis mereka. Dalam beberapa situasi,
di mana tambalan ini dirancang untuk memperbaiki fon pembersihan, risiko
kegagalan memasang patch dapat berarti bahwa bisnis rentan terhadap serangan eksternal.
Untuk menghindari masalah ini, perangkat lunak pasar massal, seperti Adobe, Apple,
dan Microsoft, biasanya menerapkan solusi otomatis di mana sistem diperbarui. kapanpun rilis
minor baru tersedia Namun, ini biasanya tidak bekerja untuk sistem kustom karena sistem
ini tidak ada dalam versi standar untuk semua pelanggan.
POIN KUNCI
• Manajemen konfigurasi adalah pengelolaan sistem perangkat lunak yang
berkembang. Kapan memelihara sebuah sistem, sebuah tim CM disiapkan untuk memastikan
bahwa perubahan dimasukkan ke dalam sistem dengan cara yang terkendali dan catatan
tersebut dipelihara dengan rincian perubahan yang telah diimplementasikan.
• Proses manajemen konfigurasi utama berkaitan dengan manajemen perubahan, manajemen
versi, pengembangan sistem, dan manajemen rilis. Perangkat perangkat lunak tersedia
untuk mendukung semua proses ini.
• Manajemen perubahan melibatkan penilaian proposal untuk perubahan dari pelanggan
sistem dan pemangku kepentingan lainnya dan memutuskan apakah biaya-efektif untuk
menerapkannya dalam versi baru dari sistem.
• Manajemen versi mencakup pembuatan berbagai versi komponen perangkat lunak yang
dibuat karena perubahan dibuat untuk mereka.
• System building adalah proses perakitan komponen sistem menjadi program yang
dapat dijalankan untuk dijalankan pada sistem komputer target.
• Perangkat lunak harus sering dibangun kembali dan diuji segera setelah versi yang
baru dibangun di. Hal ini memudahkan untuk mendeteksi bug dan masalah yang telah
diperkenalkan sejak build terakhir .
• Rilis sistem mencakup kode yang dapat dieksekusi, file data, file konfigurasi, dan
dokumentasi. Manajemen rilis melibatkan pengambilan keputusan pada tanggal rilis sistem,
menyiapkan semua informasi untuk distribusi, dan mendokumentasikan setiap rilis sistem.
Pola Pengelolaan Konfigurasi Perangkat Lunak: Kerja Tim yang Efektif, Integrasi
Praktis. Buku yang relatif singkat dan mudah dibaca yang memberikan saran praktis yang baik
tentang praktik manajemen konstruksinya, terutama untuk metode pengembangan yang
tangkas. (SP Berczuk dengan B. Appleton, Addison-Wesley, 2003.)
'Praktik Terbaik tingkat tinggi dalam Manajemen Konfigurasi Perangkat Lunak'. Artikel
web Thi , yang ditulis oleh staf di pemasok alat CM, merupakan perkenalan yang sangat baik
untuk praktik yang baik dalam konfigurasi perangkat lunak
manajemen (L. Wingerd dan C. Seiwald,
2006.) http://www.perforce.com/perforce/papers/ bestpractices.html.
'Pengelolaan Konfigurasi Agile untuk Organisasi Besar'. Artikel web ini menjelaskan praktik
pengelolaan konfigurasi yang dapat digunakan dalam proses pengembangan tangkas , dengan
penekanan khusus pada bagaimana hal ini dapat mengarah pada proyek dan perusahaan
besar. (P. Sc huh, 2007.) http://www.ibm.com/ developerworks / rational / library / mar07 /
schuh / index.html.
E XERCISES
25.1. Sarankan lima masalah yang mungkin timbul jika perusahaan tidak
mengembangkan kebijakan dan proses manajemen konfigurasi yang efektif .
25.2. Apa manfaat menggunakan formulir permintaan perubahan sebagai dokumen utama dalam
perubahan tersebut
proses manajemen?
25.3. Jelaskan enam fitur penting yang harus disertakan dalam alat untuk mendukung perubahan
proses manajemen
25.4. Jelaskan mengapa penting bahwa setiap versi komponen harus dikenali secara unik.
Mengomentari masalah menggunakan skema identifikasi versi yang hanya berdasarkan
nomor versi
25.5. Bayangkan sebuah situasi dimana dua pengembang sekaligus memodifikasi tiga berbeda
komponen perangkat lunak. Kesulitan apa yang mungkin timbul saat mereka mencoba
menggabungkan perubahan itu
mereka telah membuat?
25.6. Perangkat lunak semakin dikembangkan oleh tim tempat anggota tim bekerja
lokasi yang berbeda Sarankan fitur dalam sistem manajemen versi yang mungkin diperlukan
dukung pengembangan perangkat lunak terdistribusi ini.
25.7. Jelaskan kesulitan yang mungkin timbul saat membangun sistem dari komponennya. Apa
Masalah tertentu mungkin terjadi saat sistem dibangun di komputer host untuk beberapa target
mesin?
25.8. Dengan mengacu pada sistem bangunan, jelaskan mengapa terkadang Anda harus
mempertahankan usang
komputer di mana sistem perangkat lunak besar dikembangkan.
25.9. Masalah umum dengan sistem bangunan terjadi ketika nama file fisik digabungkan
dalam kode sistem dan struktur berkas yang tersirat dalam nama-nama ini berbeda dari target
mesin. Tuliskan satu set panduan programmer yang membantu menghindari hal ini dan
systembuilding lainnya
masalah yang bisa anda pikirkan
25.10. Jelaskan lima faktor yang harus dipertimbangkan oleh para insinyur selama proses
membangun sebuah rilis dari sebuah sistem perangkat lunak yang besar.
REFERENSI
Ahern, DM, Clouse, A. dan Turner, R. (2001). CMMI suling . Membaca, misa: Addison-Wesley.
Bamford, R. dan Deibler, WJ (2003). 'ISO 9001: 2000 untuk Sof twair dan Penyedia
Sistem: Pendekatan Teknik'. Boca Raton, FL: CRC Tekan.
Paulk, MC, Weber, CV, Curtis, B. dan Chrissis, MB (1995). Model Kemampuan
Maturitas: Panduan untuk Meningkatkan Proses Perangkat Lunak . Membaca, misa: Addison-
Wesley.
Peach, RW (1996). Buku Pegangan ISO 9000, edisi ke-3 . New York: Irwin Professional Pub.
Pilato, CM, Collins-Sussman, B. dan Fitzpatrick, BW (2004). Kontrol Versi dengan
Subversion . Sebastopol, California: O'Reilly Media Inc.