Yazılım Mühendisliğinde Yazılım Konfigürasyon Yönetimi
Yazılım Konfigürasyon Yönetimi Nedir?
Yazılım Mühendisliğinde, Yazılım Konfigürasyon Yönetimi (SCM) Yazılım Geliştirme Yaşam Döngüsü boyunca belgelerde, kodlarda ve diğer varlıklarda meydana gelen değişiklikleri sistematik olarak yönetme, organize etme ve kontrol etme sürecidir. Temel amaç minimum hatayla verimliliği artırmaktır. SCM, konfigürasyon yönetiminin disiplinler arası alanının bir parçasıdır ve kimin hangi revizyonu yaptığını doğru bir şekilde belirleyebilir.
Konfigürasyon yönetimine neden ihtiyacımız var?
Teknik Yazılım Konfigürasyon Yönetim Sisteminin Uygulanmasının başlıca nedenleri şunlardır:
- Sürekli olarak güncellenen yazılım üzerinde çalışan birden fazla kişi var
- Bir yazılım yapılandırma projesinde birden fazla sürümün, şubenin, yazarın yer aldığı ve ekibin coğrafi olarak dağıtıldığı ve eş zamanlı çalıştığı bir durum olabilir.
- Kullanıcı gereksinimlerindeki, politikadaki, bütçedeki ve programdaki değişikliklere uyum sağlanması gerekir.
- Yazılım çeşitli makinelerde çalışabilmeli ve OperaAyarlama Sistemleri
- Paydaşlar arasında koordinasyonun geliştirilmesine yardımcı olur
- SCM süreci aynı zamanda sistemde değişiklik yapmanın getirdiği maliyetleri kontrol etme açısından da faydalıdır.
Yazılım yapılandırma öğelerindeki herhangi bir değişiklik nihai ürünü etkileyecektir. Bu nedenle konfigürasyon öğelerindeki değişikliklerin kontrol edilmesi ve yönetilmesi gerekir.
SCM sürecindeki görevler
- Yapılandırma Tanımlaması
- taban
- Kontrolü değiştir
- Konfigürasyon Durumu Hesaplama
- Yapılandırma Denetimleri ve Revgörünüm
Yapılandırma Tanımlaması
Konfigürasyon tanımlama, yazılım sisteminin kapsamını belirlemeye yönelik bir yöntemdir. Bu adımın yardımıyla, ne olduğunu bilmeseniz bile bir şeyi yönetebilir veya kontrol edebilirsiniz. CSCI türünü (Bilgisayar Yazılımı Yapılandırma Öğesi), proje tanımlayıcısını ve sürüm bilgilerini içeren bir açıklamadır.
Bu süreçteki faaliyetler:
- Kaynak kodu modülleri gibi konfigürasyon öğelerinin tanımlanması, test durumuve gereksinim spesifikasyonu.
- Nesne yönelimli bir yaklaşım kullanılarak SCM deposundaki her CSCI'nin tanımlanması
- Süreç, toplu nesneler halinde gruplandırılan temel nesnelerle başlar. Testte hangi değişikliklerin, neden, ne zaman ve kim tarafından yapıldığına dair ayrıntılar
- Her nesnenin, diğer tüm nesnelere açık olan adını tanımlayan kendi özellikleri vardır.
- Belge, dosya, araçlar vb. gibi gerekli kaynakların listesi.
Örnek:
Bir Login.php Dosyasını adlandırmak yerine, Login_v1.2.php olarak adlandırılmalıdır; burada v1.2, dosyanın sürüm numarasını temsil eder.
Klasörü “Kod” olarak adlandırmak yerine “Kod_D” olarak adlandırmalı, burada D kodu temsil eder ve günlük olarak yedeklenmelidir.
Temel
Temel, bir yazılım yapılandırma öğesinin resmi olarak kabul edilen bir sürümüdür. SCM süreci yürütülürken belirli bir zamanda belirlenir ve sabitlenir. Yalnızca resmi değişiklik kontrol prosedürleri yoluyla değiştirilebilir.
Bu süreçteki faaliyetler:
- Bir uygulamanın çeşitli versiyonlarının oluşturulmasını kolaylaştırmak
- Bu iş ürünlerinin çeşitli versiyonlarını yönetmeye yönelik mekanizmaların tanımlanması ve belirlenmesi
- İşlevsel temel, gözden geçirilen sistem gereksinimlerine karşılık gelir
- Yaygın olarak kullanılan temel çizgiler arasında işlevsel, gelişimsel ve ürün temel çizgileri bulunur
Basit bir ifadeyle temel, yayına hazır anlamına gelir.
Kontrolü değiştir
Değişiklik kontrolü, konfigürasyon nesnesinde değişiklik yapıldığında kalite ve tutarlılığı sağlayan prosedürel bir yöntemdir. Bu adımda değişiklik talebi yazılım konfigürasyon yöneticisine iletilir.
Bu süreçteki faaliyetler:
- İstikrarlı bir yazılım geliştirme ortamı oluşturmak için geçici değişiklikleri kontrol edin. Değişiklikler depoya kaydedildi
- Talep, teknik değere, olası yan etkilere ve diğer yapılandırma nesneleri üzerindeki genel etkiye göre kontrol edilecektir.
- Yazılım yaşam döngüsü boyunca değişiklikleri yönetir ve konfigürasyon öğelerini kullanılabilir hale getirir
Konfigürasyon Durumu Hesaplama
Yapılandırma durumu muhasebesi, SCM süreci sırasında her sürümü izler. Bu aşama, her sürümün nelere sahip olduğunu ve bu sürüme yol açan değişiklikleri izlemeyi içerir.
Bu süreçteki faaliyetler:
- Yeni bir taban çizgisine ulaşmak için önceki taban çizgisinde yapılan tüm değişikliklerin kaydını tutar
- Yazılım yapılandırmasını tanımlamak için tüm öğeleri tanımlayın
- Değişiklik isteklerinin durumunu izleyin
- Son temelden bu yana tüm değişikliklerin tam listesi
- Bir sonraki temel seviyeye kadar ilerlemenin izlenmesine olanak tanır
- Test için çıkarılacak önceki sürümlerin/sürümlerin kontrol edilmesine olanak tanır
Yapılandırma Denetimleri ve Revgörünüm
Yazılım Konfigürasyonu denetimleri, tüm yazılım ürününün temel ihtiyaçları karşıladığını doğrular. İnşa edilenin teslim edilen şey olmasını sağlar.
Bu süreçteki faaliyetler:
- Konfigürasyon denetimi, denetçiler tarafından tanımlanan süreçlerin takip edildiğinin kontrol edilmesi ve SCM hedeflerinin karşılanmasının sağlanması yoluyla gerçekleştirilir.
- Yapılandırma kontrol standartlarına uygunluğu doğrulamak için. Yapılan değişikliklerin denetlenmesi ve raporlanması
- SCM denetimleri aynı zamanda süreç boyunca izlenebilirliğin korunmasını da sağlar.
- Temelde yapılan değişikliklerin yapılandırma durumu raporlarıyla uyumlu olmasını sağlar
- Tamlık ve tutarlılığın doğrulanması
SCM sürecinin katılımcısı
SCM'deki temel katılımcılar şunlardır:
1. Yapılandırma Yöneticisi
- Configuration Manager, yapılandırma öğelerinin tanımlanmasından sorumlu olan başkandır.
- CM, ekibin SCM sürecini takip etmesini sağlar
- Değişiklik isteklerini onaylaması veya reddetmesi gerekiyor
2. Geliştirici
- Geliştiricinin, standart geliştirme faaliyetlerine veya değişiklik taleplerine göre kodu değiştirmesi gerekir. Kodun yapılandırmasının sürdürülmesinden sorumludur.
- Geliştirici değişiklikleri kontrol etmeli ve çakışmaları çözmelidir
3. denetçi
- Denetçi, SCM denetimlerinden ve incelemelerinden sorumludur.
- Serbest bırakmanın tutarlılığını ve eksiksizliğini sağlamak gerekir.
4. Proje Yöneticisi:
- Ürünün belirli bir zaman dilimi içerisinde geliştirilmesini sağlayın
- Geliştirmenin ilerleyişini izler ve SCM sürecindeki sorunları tanır
- Yazılım sisteminin durumu hakkında raporlar oluşturun
- Oluşturma, değiştirme ve test etme süreçlerine ve politikalarına uyulduğundan emin olun
5. Kullanıcı
Son kullanıcı, yazılımın en son sürümüne sahip olduğundan emin olmak için temel SCM terimlerini anlamalıdır.
Yazılım Konfigürasyon Yönetim Planı
SCMP (Yazılım Yapılandırma yönetimi planlaması) süreç planlaması, bir projenin erken kodlama aşamalarında başlar. Planlama aşamasının sonucu, proje sırasında genişletilebilecek veya revize edilebilecek SCM planıdır.
- SCMP, IEEE 828 gibi genel bir standardı veya kuruluşa özel standardı takip edebilir
- Yönetilecek belge türlerini ve belge adlandırmasını tanımlar. Örnek Test_v1
- SCMP, tüm SCM sürecinden ve temel çizgilerin oluşturulmasından sorumlu olacak kişiyi tanımlar.
- Sürüm yönetimi ve değişiklik kontrolüne ilişkin politikaları düzeltme
- SCM süreci sırasında kullanılabilecek araçları tanımlama
- Yapılandırma bilgilerini kaydetmek için yapılandırma yönetimi veritabanı.
Yazılım Konfigürasyon Yönetimi Araçları
Herhangi bir Değişim yönetimi yazılımının aşağıdaki 3 Temel özelliğe sahip olması gerekir:
Eşzamanlılık Yönetimi:
İki veya daha fazla görevin aynı anda gerçekleşmesine eş zamanlı işlem denir. SCM bağlamında eşzamanlılık, aynı dosyanın aynı anda birden fazla kişi tarafından düzenlenmesi anlamına gelir.
Eşzamanlılık SCM araçlarıyla doğru şekilde yönetilmezse, birçok acil soruna neden olabilir.
Sürüm Kontrolü:
SCM arşivleme yöntemini kullanır veya dosyaya yapılan her değişikliği kaydeder. Arşivleme veya kaydetme özelliğinin yardımıyla, sorunlar olması durumunda önceki sürüme geri dönmek mümkündür.
Synckronizasyon:
Kullanıcılar birden fazla dosyayı veya deponun tüm bir kopyasını kontrol edebilir. Kullanıcı daha sonra ihtiyaç duyduğu dosya üzerinde çalışır ve değişiklikleri depoya geri kontrol eder. Diğer ekip üyeleri tarafından yapılan değişikliklerle güncel kalmak için yerel kopyalarını senkronize edebilirler.
Aşağıda popüler araçlar yer almaktadır
1.Git: Git, sürüm kontrolüne yardımcı olan ücretsiz ve açık kaynaklı bir araçtır. Her türlü projeyi hızlı ve verimli bir şekilde yürütmek için tasarlanmıştır.
Download linki: https://git-scm.com/
2. takım Foundation Sunucu: Takımı Foundation ekibin bir ürün oluşturmak için işbirliği yapmasına ve koordine etmesine olanak tanıyan bir grup araç ve teknolojidir.
Download linki: https://azure.microsoft.com/en-us/services/devops/server/
3. Duyarlı: Açık kaynaklı bir Yazılım konfigürasyon yönetimi aracıdır. Konfigürasyon yönetiminin yanı sıra uygulama dağıtımı ve görev otomasyonu da sunar.
Download linki: https://www.ansible.com/
Daha fazla SW Yapılandırma aracını kontrol edin: https://www.guru99.com/software-configuration-management-tools.html
Sonuç
- Yapılandırma Yönetimi'nin en iyi uygulamaları, kuruluşların, kurulum sırasında belgelerde, kodlarda ve diğer varlıklarda meydana gelen değişiklikleri sistematik olarak yönetmesine, organize etmesine ve kontrol etmesine yardımcı olur. Yazılım geliştirme Yaşam Döngüsü.
- SCM sürecinin öncelikli hedefi minimum hatayla verimliliği arttırmaktır.
- Yapılandırma yönetimi sürecinin arkasındaki temel neden, sürekli olarak güncellenen yazılım üzerinde çalışan birden fazla kişinin olmasıdır. SCM, eşzamanlılık, senkronizasyon ve sürüm kontrolü sağlamaya yardımcı olur.
- Temel, bir yazılım yapılandırma öğesinin resmi olarak kabul edilen bir sürümüdür
- Değişiklik kontrolü, konfigürasyon nesnesinde değişiklik yapıldığında kalite ve tutarlılığı sağlayan prosedürel bir yöntemdir.
- Yapılandırma durumu muhasebesi, SCM süreci sırasında her sürümü izler
- Yazılım Konfigürasyonu denetimleri, tüm yazılım ürününün temel ihtiyaçları karşıladığını doğrular
- Proje yöneticisi, Konfigürasyon yöneticisi, Geliştirici, Denetçi ve kullanıcı SCM sürecinin katılımcılarıdır
- SCM süreç planlaması bir projenin ilk aşamalarında başlar.
- Git, Team Foundation Server ve Ansible popüler SCM araçlarından birkaçıdır.