24 Ağustos 2015 Pazartesi

Software Configuration Management Süreci

Software Configuration Management (SCM) CMMI, MILSTD 498 gibi yazılım süreçlerinde bulunan bir süreç. SCM genellikle şu alt süreçlerden oluşur

Initialization
Projenin başlangıcında SCM altyapısının planlanması ve kurulması. Örneğin SVN ağacının aşağıdaki gibi standart yapılması
project
 - trunk
 - branches
 - tags
Dokümanların nereye konulacağı her zaman sorun olur. Bazı projelerde trunk altına konulur.
trunk > Development > code
                                                > Lib1
                                                > Lib2
                                                > App1
                                                > App2

                                   > contint
                                                > Jenkins
                                                > scripts
                                    > Documents (Tüm süreç dokümanları)
                                    > Models
                                    > Test
                                    > Tools
Branch'e Ne Zaman Çıkılır
Bu konuda yazılı bir politika görmedim. Ama bence yazılı olması lazım. Genelde müşteriye verilen sürüm için bir branch açılıyor.

Release Management and Delivery

Configuration Index (CI) listesine dahil edilecek yazılım parçalarının ve üretilen belgelerin tanımlanması, baseline alınıp yayınlanması (release)

Üretilen belgelere hangi revizyonda olduklarını ve değişiklik tarihçesini gösteren kapak sayfası eklenir.

Yazılım İçin Versiyon Numarası
Kod için hangi versiyonlama sisteminin kullanıldığının tanımlı olması gerekir. Bu sistem için evrensel kabul gören bir şey yok. Herkes kendine göre bir sistem uydurmuş.

Ben semantic versioning sistemini seviyorum. Bu sistem 3 haneden oluşuyor.

Semantic Versioning
Semantic Versioning yazısına taşıdım

Microsoft Versioning
.Net versiyonlama sistemi ise 4 haneden oluşuyor.
Major.Minor.Revision. Build

Change Management
SCM ile takip edilen veriye gelen değişiklik isteği ve değişikliklerin kontrollü olması gerekir. Gelen istekler bir Değişikli Takip Aracı (Change Tracking Tool) ile kayıt altına alınır. İstekler çözülür, doğrulanır  ve onaylanır. Tüm bu faaliyetler SCM planında tarif edilir.

Backup and Recovery
Yedeklenecek verilerin tanımlanması ve listening IT'ye iletilmesi. Yedekten geri dönüşün mümkün olduğunun doğrulanması.

Reports and Reviews
İstek veya süreçte tanımlı peryodlarda rapor ve sunumların hazırlanması.

CM istenildiği zaman aşağıdakine benzer bir Konfigürasyon Durum Listesi verebilmeli.

No                              SVIL No   Revizyon  Son Yayın Tarihi   Son Durum
XX-XXX-X-S            9                 -(P2)       19.04.2011          20.04.2011 tarihinde onaylandı

Configuration Audits
Konfigürasyon kayıtlarının, doğru veriyi tuttuğunun kontrol edilmesi. Configuration Management System'ın (örneğin SVN) yapısal bütünlüğünün doğrulanması. CMS'teki verinin tam ve doğru olduğunun kontrolü.

Interface Control
Altyükleniciler ile arayüzü için gerekli faaliyetler

Archiving
Proje bitiminde CI listesindeki verinin arşivlenmesi.

Bir Developer İle Configuration Manager Hangi Ortak Araçları Kullanır?
Developer'lar genellikle Configuration Manager'ın ne yaptığını anlamazlar. Kullandıkları araçlar da ortak olmadıkları için CM'in yaptıkları başka bir dünyadadır. Developer ile CM en fazla Issue Tracker (örneğin Jira) ve Revision Control (örneğin SVN) araçlarını ortak kullanırlar.



Hiç yorum yok:

Yorum Gönder