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 belgelerdeki, kodlardaki ve diğer varlıklardaki değişiklikleri sistematik olarak yönetme, düzenleme ve kontrol etme sürecidir. Birincil amaç, minimum hata ile verimliliği artırmaktır. SCM, disiplinler arası konfigürasyon yönetimi alanının bir parçasıdır ve kimin hangi revizyonu yaptığını doğru bir şekilde belirleyebilir.

Bu yazılım mühendisliği eğitiminde şunları öğreneceksiniz:

Neden Yapılandırma yönetimine ihtiyacımız var?

Teknik Yazılım Konfigürasyon Yönetim Sistemini Uygulamanın başlıca nedenleri şunlardır:

  • Sürekli güncellenen yazılım üzerinde çalışan birden fazla kişi var
  • Birden çok sürümün, dalların, yazarların bir yazılım yapılandırma projesinde yer aldığı ve ekibin coğrafi olarak dağıtıldığı ve aynı anda çalıştığı bir durum olabilir.
  • Kullanıcı gereksinimlerindeki, politikadaki, bütçedeki, programdaki değişikliklere uyum sağlanması gerekir.
  • Yazılım, çeşitli makinelerde ve İşletim Sistemlerinde çalışabilmelidir.
  • Paydaşlar arasında koordinasyonun geliştirilmesine yardımcı olur
  • SCM süreci, bir sistemde değişiklik yapmakla ilgili maliyetleri kontrol etmek için de faydalıdır.

Yazılım yapılandırma Öğelerindeki herhangi bir değişiklik, nihai ürünü etkileyecektir. Bu nedenle, yapılandırma öğelerindeki değişikliklerin kontrol edilmesi ve yönetilmesi gerekir.

SCM sürecindeki görevler

  • Yapılandırma Tanımlama
  • taban çizgileri
  • Kontrolü değiştir
  • Konfigürasyon Durumu Hesaplama
  • Yapılandırma Denetimleri ve İncelemeleri

Yapılandırma Tanımlaması:

Konfigürasyon tanımlama, yazılım sisteminin kapsamını belirleme yöntemidir. 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), bir 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, test senaryosu ve gereksinim özellikleri gibi konfigürasyon öğelerinin tanımlanması.
  • Nesne yönelimli bir yaklaşım kullanarak SCM deposundaki her CSCI'nin tanımlanması
  • İşlem, toplu nesneler olarak gruplandırılmış temel nesnelerle başlar. Testte ne, neden, ne zaman ve kim tarafından değişikliklerin 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:

Dosya login.php yerine login_v1.2.php olarak adlandırılmalıdır, burada v1.2 dosyanın sürüm numarası anlamına gelir.

Klasörü 'Kod' olarak adlandırmak yerine, 'Kod_D' olarak adlandırılmalıdır, burada D kodu temsil eder ve günlük olarak yedeklenmesi gerekir.

Temel:

Temel, bir yazılım yapılandırma öğesinin resmi olarak kabul edilmiş bir sürümüdür. SCM sürecini yürütürken belirli bir zamanda belirlenir ve sabitlenir. Yalnızca resmi değişiklik kontrol prosedürleri ile değiştirilebilir.

Bu süreçteki faaliyetler:

  • Bir uygulamanın çeşitli sürümlerinin oluşturulmasını kolaylaştırmak
  • Bu iş ürünlerinin çeşitli versiyonlarını yönetmek için mekanizmaları tanımlama ve belirleme
  • İşlevsel temel, gözden geçirilen sistem gereksinimlerine karşılık gelir
  • Yaygın olarak kullanılan temel çizgiler, işlevsel, gelişimsel ve ürün temellerini içerir

Basit bir deyişle, temel, yayınlanmaya hazır anlamına gelir.

Kontrolü değiştir:

Değişiklik kontrolü, yapılandırma 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 gönderilir.

Bu süreçteki faaliyetler:

  • Kararlı yazılım geliştirme ortamı oluşturmak için geçici değişikliği kontrol edin. Değişiklikler depoda taahhüt edilir
  • 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 yapılandırma öğelerini kullanılabilir hale getirir

Yapılandırma Durumu Hesaplaması:

Yapılandırma durumu muhasebesi, SCM işlemi sırasında her bir 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 temele ulaşmak için önceki temele 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 taban çizgisinden bu yana tüm değişikliklerin tam listesi
  • Bir sonraki temele ilerlemenin izlenmesine izin verir
  • Test için ayıklanacak önceki sürümlerin/sürümlerin kontrol edilmesini sağlar

Yapılandırma Denetimleri ve İncelemeleri:

Yazılım Yapılandırma 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ğini kontrol ederek ve SCM hedeflerinin karşılandığından emin olarak gerçekleştirilir.
  • Konfigürasyon kontrol standartlarına uygunluğu doğrulamak için. Yapılan değişiklikleri denetlemek ve raporlamak
  • SCM denetimleri ayrıca süreç boyunca izlenebilirliğin korunmasını sağlar.
  • Temelde yapılan değişikliklerin yapılandırma durum raporlarıyla uyumlu olmasını sağlar
  • Tamlık ve tutarlılığın doğrulanması

SCM sürecinin katılımcısı:

SCM'deki kilit katılımcılar aşağıdadır

1. Yapılandırma Yöneticisi

  • Configuration Manager, konfigürasyon öğelerini tanımlamaktan sorumlu olan yöneticidir.
  • 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 isteklerine göre kodu değiştirmesi gerekir. Kod yapılandırmasının korunmasından sorumludur.
  • Geliştirici değişiklikleri kontrol etmeli ve çakışmaları çözmelidir

3. Denetçi

  • Denetçi, SCM denetimlerinden ve incelemelerinden sorumludur.
  • Sürümün tutarlılığını ve eksiksizliğini sağlama ihtiyacı.

4. Proje Yöneticisi:

  • Ürünün belirli bir zaman diliminde geliştirilmesini sağlamak
  • Geliştirmenin ilerlemesini 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 uzatılabilecek 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ırmaları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ü için politikaları düzeltin
  • SCM sürecinde kullanılabilecek araçları tanımlayın
  • Konfigürasyon bilgilerini kaydetmek için konfigürasyon yönetimi veritabanı.

Yazılım Konfigürasyon Yönetim Araçları

Herhangi bir Değişiklik yönetimi yazılımı aşağıdaki 3 Temel özelliğe sahip olmalıdır:

Eşzamanlılık Yönetimi:

Aynı anda iki veya daha fazla görev gerçekleştiğinde, eşzamanlı işlem olarak bilinir. 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 yönetilmezse, birçok acil sorun yaratabilir.

Sürüm Kontrolü:

SCM, arşivleme yöntemini kullanır veya dosyada yapılan her değişikliği kaydeder. Arşivleme veya kaydetme özelliği sayesinde herhangi bir sorun yaşanması durumunda bir önceki sürüme dönülebilmektedir.

senkronizasyon:

Kullanıcılar, birden fazla dosyayı veya havuzun tam bir kopyasını kontrol edebilir. Kullanıcı daha sonra gerekli dosya üzerinde çalışır ve değişiklikleri havuza 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ğıdaki popüler araçlar

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 ele almak için tasarlanmıştır.

İndirme: {link: https://git-scm.com/

2. Ekip Kuruluş Sunucusu: Team Foundation, ekibin bir ürün oluşturmak için işbirliği yapmasını ve koordine etmesini sağlayan bir grup araç ve teknolojidir.

İndirme: {link: https://azure.microsoft.com/en-us/services/devops/server/

3. Duyarlı : Açık kaynaklı bir Yazılım konfigürasyon yönetim aracıdır. Konfigürasyon yönetiminin yanı sıra uygulama dağıtımı ve görev otomasyonu da sunar.

İndirme: {link: https://www.ansible.com/

Daha fazla SW Yapılandırma aracını kontrol edin: https://www.on2vhf.be/software-configuration-management-tools.html

Çözüm:

  • Konfigürasyon Yönetimi en iyi uygulamaları, kuruluşların Yazılım Geliştirme Yaşam Döngüsü boyunca belgelerdeki, kodlardaki ve diğer varlıklardaki değişiklikleri sistematik olarak yönetmesine, düzenlemesine ve kontrol etmesine yardımcı olur.
  • SCM sürecinin birincil amacı, minimum hata ile verimliliği artırmaktır.
  • Konfigürasyon yönetimi sürecinin arkasındaki ana sebep, sürekli güncellenen bir yazılım üzerinde çalışan birden fazla kişinin olmasıdır. SCM, eşzamanlılık, senkronizasyon ve sürüm denetimi oluşturmaya yardımcı olur.
  • Temel, bir yazılım yapılandırma öğesinin resmi olarak kabul edilmiş bir sürümüdür.
  • Değişiklik kontrolü, yapılandırma nesnesinde değişiklik yapıldığında kalite ve tutarlılığı sağlayan prosedürel bir yöntemdir.
  • Yapılandırma durumu muhasebesi, SCM işlemi sırasında her bir sürümü izler
  • Yazılım Yapılandırma denetimleri, tüm yazılım ürününün temel ihtiyaçları karşıladığını doğrular
  • Proje yöneticisi, Yapılandırma yöneticisi, Geliştirici, Denetçi ve kullanıcı, SCM sürecindeki katılımcılardır.
  • SCM süreç planlaması, bir projenin erken aşamalarında başlar.
  • Git, Team Foundation Sever ve Ansible birkaç popüler SCM aracıdır.