Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Tanıl Ergin
Tanıl Ergin
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
21 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler:  Yazılım Müh. Tanıl Ergin
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : İleri
Kategori : Yazılım Müh.
Yayınlanma Tarihi : 23.2.2004
Okunma Sayısı : 26363
Yorum Sayısı : 0     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 25.11.2024
Turhal Temizer
Mac OS/X Removing CUDA 25.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak 25.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi 25.11.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
Yazılım Yapılanışı Yönetimi
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Bu yazıda "yazılım yapılış yönetimi" hakkında temel bilgiler verilecektir.

1. YAZILIM YAPILANIŞI YÖNETİMİ - GİRİŞ

Bir sistem, belirli fonksiyon ya da fonksiyonları yerine getiren bileşenler topluluğu olarak tanımlanabilir. Bir sistemin yapılanışı yani konfigürasyonu ise sistemin donanım, bellenim (firmware), yazılım karakteristiklerinin ve fonksiyonlarının tanımlanmasıdır. Ayrıca, belirli bir amaca yönelik olarak yazılım, donanım ve bellenim öğelerinin belirli versiyonlarının bir araya getirilmiş bir topluluğu olarak da düşünülebilinir.

Yukarıdaki açıklamaları dikkate alırsak,   Yapılanış Yönetimi (YY), sistem yaşam döngüsü boyunca bir sistemin yapılanışını belirgin noktalar ile tanımlayan, değişiklikleri sistematik olarak kontrol eden, yapılanışın bütünlüğünü ve izlenebilirliğini sağlayan bir disiplindir. diyebiliriz.

Yapılanış Yönetimi (YY) resmi tanımı:

Bir yapılanış öğesinin fonksiyonel ve fiziksel karakteristiklerini tanımlayan ve belgeleyen,bu karakteristiklerin değişimini kontrol eden, değişim sürecini ve gerçekleştirim durumunu kaydeden ve denetleyen, belirlenmiş gereksinimlerle uyumluluğunu doğrulayan bir disiplindir.

Not: Donanım yapılanış yönetimi ile yazılım yapılanış yönetimi arasında farklar olsa da, yapılanış yönetimi kavramları ikisine de aynı şekilde uygulanır.

2. YAZILIM YAPILANIŞI AKTİVİTELERİ

Yazılım yapılanışını, en iyi olarak aktivitelerini inceleyerek anlayabiliriz. Bu bölümde yazılım yapılanışın aktiviteleri detaylı olarak ele alınacaktır. Yazılımsal Yapılanış Yönetimi (YYY) aktiviteleri genel olarak şu şekilde belirlenmiş ve dünyada bir standard olarak kabul görmüştür:

* Yazılım Yapılanışı Yönetimi sürecinin yönetimi,
* Yazılım Yapılanışı tanımlaması,
* Yazılım Yapılanışı kontrolü,
* Yazılım Yapılanışı durumu kontrolü,
* Yazılım Yapılanışı denetlenemesi,
* Yazılım yayım yönetimi ve dağıtımı
 

Şekil 1 – Yazılım Yapılanış Aktiviteleri

Şimdi şekilde görmüş olduğumuz parçaları tek tek inceleyeceğiz:

2.1.   Yazılım Yapılanışı Yönetimi (YYY) Sürecinin Yönetimi

YYY, yazılım yaşam döngüsünü destekleyen, geliştirme ve bakım aktivitelerine, projenin tamamına, son kullanıcılara, müşterilere yarar sağlayan bir süreçtir.

Yönetimsel bir bakış açısıyla bakarsak, YYY, bir ürünün gelişimini, ürünün öğelerini tanımlayarak, değişimi yöneterek, kontrol ederek, yapılanış bilgisini raporlayarak kontrol eder. diyebiliriz. Geliştirici bakış açısıyla bakacak olursak, YYY, geliştirmeyi ve değişimleri gerçekleştirmeyi kolaylaştıran bir süreçtir. diyebiliriz. Başarılı bir YYY, dikkatli bir planlama ve yönetimi içerir. Bu da, YYY sürecinin kurumsal kavramını, sınırlarını, kavramını anlama ile sağlanabilir.

2.1.1. Kurumsal Yapı ile İlişki

Bir proje için   bir Yazılım Yapılanışı Yönetimi planlayabilmek için kurumsal yapıyı kurum içi bölümler arası ilişkileri bilmek gereklidir çünkü YYY, bazı kurumsal birimlerle ve aktivitelerle içiçe olacaktır.

YYY, yazılım kalite güvencesi, yazılım doğrulama gibi süreçlerle birlikte yaşam döngüsünü destekleyen bir süreç olarak görülmektedir. Kurumsal birimler bu süreçlerin düzgün olarak yapılandırılmasından sorumludurlar. Bazı YYY aktivitelerini gerçekleştirmek başka kurumlara bırakılsa da, genel sorumluluk direkt olarak kurumun kendisinde olmak zorundadır.

Yazılım sık olarak donanım ve bellenim elemanlarını da içeren büyük sistemlerin bir parçası olarak geliştirilir. Bu durumda, donanım ve bellenim ile paralel bir geliştirme yapılması zorunlu duruma gelmektedir. İşte bu yüzden, kurumun birimleri bilinmelidir.

Yazılım Yapılanışı Yönetimi, Yazılım Kalite Güvence süreci ile yakından ilgilidir. Hatta bazı projelerde, Yazılım Kalite Güvencesi’nin önkoşulu Yazılım Yapılanışı Yönetimi olmaktadır. Buna bağlı olarak, YYY içinde bulunan bazı öğeler, yazılım kalite güvencenin de öğeleri olabilecek kadar birbirleriyle ilgili olabilirler. Tabiki en yakın ilişki, yazılım geliştirme ile yazılım bakım arasında olmaktadır. Yazılım ortamı aşağıdakileri içerir:

* Yazılım yaşam döngüsü modeli ve planları,
* Proje stratejileri
* Yazılım tekrar kullanılabilirlik süreçleri
* Geliştirme platformları
* Yazılım geliştirme araçları.
Bu ortam, gördüğünüz gibi, aynı zamanda bir çok yazılım yapılanış kontrolleriyle de ilgilidir.

2.1.2. Yazılım Yapılanışı Yönetimi Rehberi ve Kısıtlamaları

YYY kısıtlamaları ve rehberlikleri bir çok kaynaktan gelmektedir. Bir projenin yazılım yapılanış yönetimini, yapılan birçok anlaşma ve önceden var olan anlaşmalar kısıtlanabilir. Buna ek olarak, müşteri ile yapılan kontratta da süreci etkileyici maddeler bulunabilir. Örneğin, kontratta bazı yapılanış denetlemelerinin istendiği belirtilmiş olabilir ya da bazı belirlenmiş öğeler yazılım yapılanışı yönetimine özel olarak bırakılmış olabilir. Bunlardan başka, seçilen yazılım geliştirme metodolojisi de etkileyici bir faktör olabilir. YYY rehberi, Yazılım Mühendisliği Enstitüsü’nün yayımlamış olduğu CMM ya da ISO SPICE gibi standardlardan, süreçlerden elde edilebilir.

2.1.3. Planlama Aşaması

Yazılım Yapılanışı Yönetimi için yapılacak olan plan, kurumsal kavramlara, kısıtlamalara ve rehberlere, projenin doğasına, yapısına uygun olarak hazırlanmalıdır. Ele Alınan Planlama Adımları:

* Yazılım Yapılanış Tanımlamaları
* Yazılım Yapılanış Kontrolü
* Yazılım Yapılanış Durum Kontrolü
* Yazılım Yapılanış Denetlemesi
* Yazılım Yayım Denetimi ve Dağıtımı
Bunlara ek olarak, kurum, sorumluluklar, kaynaklar, zaman çizelgeleri, araç seçimi, gerçekleştirim, arayüz kontrolü gibi konular da planlama içinde değerlendirilir. Planlama aktivitesinin sonucunda oluşan plan, Yazılım Yapılanış Yönetimi Planı olarak adlandırılır. Bu plan, yazılım kalite güvencesi denetlemesi için bir kaynak olmaktadır.

2.1.3. Yazılım Yapılanış Yönetimi Organizasyonu ve Sorumlulukları

Yapılması gereken yazılım yapılanış yönetimi aktivitelerinin kimin yapacağını karıştırmamak için, sorumluluklar, görevler tam olarak belirlenmek zorundadır. Belirli yazılım yapılanışı yönetimi sorumlulukları ve görevleri, belirli kurumsal birimlere, kişilere atanmalıdır. Yazılım yapılanışı yönetimi genel yetki mekanizması açıkça belirtilmelidir.

2.1.4. Yazılım Yapılanış Yönetimi Kaynakları ve Zaman Çizelgeleri

Yazılım yapılanış yönetimi planı, gerekli aktiviteleri yapabilmek için gerekli olan arçları, grupları belirler. Görevlerin arasındaki ilişkileri ve sıralarını belirleyerek zaman çizelgesi sorunlarını ortadan kaldırır. Gerekli olan herhangi bir eğitim de bu plan sayesinde ortaya çıkar ve belirlenir.

2.1.5. Araç Seçimi ve Gerçekleştirim

Yazılım yapılanış yönetimi için, değişik özelliklerde araçlar mevcuttur. İçinde bulunulan duruma bağlı olarak bu araç özelliklerinin hangilerine ihtiyaç duyulduğu belirlenir ve birden çok araç geretiren durumlarda bu araçların kombinasyonu kullanılabilir. Otomatik araçlar, büyüyen ve büyüdükçe karmaşıklaşan projelerde, büyük yarar sağlarlar. Bu araçların destekledikleri konuları şöyle sıralayabiliriz:

* Yazılım Yapılanış Yönetimi Kütüphanesi
* Yazılım değişimi istekleri ve süreçleri
* Kod ve değişim yönetimi görevleri
* Yazılım yapılanış durumu raporlamaları
* Yazılım denetlemesi
* Yazılım build’leri oluşturmak
* Yazılım yayımlarını ve dağıtımlarını kontrol etmek.
Aşağıdaki şekilde, Yazılım Yapılanış Yönetimi Araçlarının yapabildikleri aktiviteleri ve bunların Yazılım Yapılanış Yönetimi ile nasıl örtüştükleri gösterilmektedir.



Şekil 2 – Yazılım Yapılanış Yordamları ve Araçları

Yukarıdaki şekilde, kod yönetim sistemleri yazılım kütüphanelerinin çalışmasını kütüphane elemanlarına erişimi kontrol ederek, birden çok kullanıcının aktivitelerini kontrol ederek desteklemektedir. Diğer araçlar yazılım ve yayım belgeleri oluşturmayı desteklemektedir. Bunlar dışındaki araçlar ise veritabanı yönetimi desteği, yönetim için raporlama mekanizmaları desteği sağlamaktadır. Araçların bazılarının yetenekleri yazılım yapılanış yönetimi içine entegre edilebilir.

2.2.   Yazılım Yapılanışı Yönetim Planı

Bir proje için belirlenen YYY planının sonuçları, Yazılım yapılanış Yönetimi Planında tutulur. Bu belge, Yazılım Yapılanış Yönetimi süreci için bir kaynak olur. Süreç boyunca, gerekli durumlarda güncellenir. Gerçekleştirim bölümünde ise, plandaki bazı parçaların daha detaylı açıklanması gerekebilmektedir. Bu yüzden bu belgeye yaşayan bir rapor diyebiliriz. Bir YYY Planında 6 kategoride bilgi bulunmaktadır:

1 Giriş -amaç, kavram, kullanılan teimrler
2 YYY Sürecinin Yönetimi -organizasyon, sorumluluklar, yordamlar
3 YYY Aktiviteleri -yapılanış tanımlaması, yapılanış kontrolü
4 YYY Zaman çizelgeleri -diğer proje aktiviteleri ile olan koordinasyonu
5 YYY Kaynakları -araçlar, insan kaynakları
6 Planın bakımı, güncelleştirilmesi

2.3. Yazılım Yapılanış Tanımlaması

Yazılım Yapılanış Tanımlaması aktivitesi kontrol edilecek elemanları belirler ve bu elemanların versiyonlarını kontrol eder. Ayrıca, bu kontrol edilen elemanların yönetiminde kullanılacak araçları belirler.

2.3.1. Kontrol Edilecek Elemanların Tanımlanması

Değişim kontrolündeki ilk aşama, kontrol edilmesi gereken elemanların belirlenmesi işlemidir. Bu işlem, yazılım yapılanışının sistem yapılanışı ile birlikte ele alınıp anlaşılmasını, yapılanış elemanlarının seçimini, yazılım öğelerinin isimlendirilmesinde bir strateji belirlenmesini, aralarındaki ilişkilerin belirlenmesini gerektirir.

Yazılım Yapılanış Öğesi:

Yazılım yapılanış öğesi, yapılanış yönetimi için tasarlanmış olan yazılımın bir genellemesidir ve tek bir eleman olarak algılanır. Kod da dahil olmak üzere, çeşitli öğeler YYY tarafından kontrol edilir. Yazılım yapılanış öğeleri listesi:

Planlar
Belirtimler
Test materyalleri
Yazılım araçları
Kod ve çalıştırılabilir kod
Veri kütüphaneleri
Bakım, kurulum belgeleri
Yazılım Versiyonları:

Yazılım projesi ilerledikçe, öğeler gelişir. Bir karışıklık sözkonusu olmaması için, bu gelişmelerin tutarlı, kontrollü bir şekilde ele alınması gereklidir. Bu da versiyonlar ile sağlanır. Bir yazılım öğesinin versiyonu, belirli özelliklere sahip olan bir öğedir. Uyarlama, geliştirilmiş olan bir yazılım versiyonuna verilen addır.

2.3.2. Yazılım Yapılanış Öğelerinin Bulunması

Yazılım yapılanış öğeleri farklı faklı zamanlarda bulunup farklı zamanlarda yazılım yapılanış yönetimi kontrolüne verilebilir.(yazılım yaşam döngüsünün belirli adımlarında bulunabilir) Genelde, bitirilmiş bir resmi görev, gözden geçirme yeni öğeler bulmayı sağlamaktadır. Aşağıdaki şekilde Şelale Modeli ile öğelerin bulunması örneklendirilmektedir.

 

Şekil 3 – Öğelerin Elde Edilmesi

2.4. Yazılım Yapılanış Kontrolü

Yazılım yapılanış kontrolü, yazılım yaşam döngüsü boyunca oluşan değişiklikleri yönetir. Hangi değişikliklerin uygulanacağı, belirli değişikliklerin onaylanması, bu değişikliklerin hayata geçirilmesinin desteği gibi konuları kapsar.

Yazılım değişiklikleri istekleri süreci, birçok araç kullanımını da beraberinde gerektirir. Ve bu araçlar (belgeleme arçları, koordinasyon araçları...) genelde geliştirme takımı tarafından yaratılır çünkü her projede, bu isteklerin tipi projeye bağımlıdır.

Kabul edilmiş, onaylanmış değişiklikler belilenen yazılım yordamlrına uyularak gerçekleştirilir. Aynı anda birden çok değişikliğin gerçekleştirimi yapılabileceği için bu gibi durumlarda gerçekleştirimlerin birbirine uyumlu olması sağlanmalıdır.   Değişikliklerin gerçekleştirimleri bitirlikten sonra, sonuçların standardlara uygunluğu da test edilmelidir. Aşağıdaki şekilde değişim sürecini daha iyi görmekteyiz.



Şekil 4 – Değişiklik Kontrolü

2.5. Yazılım Yapılanış Durumu Kontrolü

Yazılım Yapılanışı Durum Kontrolü, verimli bir yapılanış yönetimi için gerekli olan bilgiyi, raporlamayı sağlar. Durum Kontrolü tasarımı, mevcut bilgi sistemlerinin tasarımlarından yola çıkarak yapılabilir.

Durum kontrolü aktivitesi, yaşam döngüsü boyunca, bilgiyi yakalamayı ve raporlamayı amaçlar. Her bilgi sisteminde olduğu gibi burada da, yapılanış durumu tanımlanmalı ve bakımı yapılmalıdır. Bu işlem içinde çeşitli ölçütler ve bilgiler gerekmektedir. Bu bilgiler yönetim kademesi, yazılım mühendisleri ve diğer kurumlardan elde edilecektir. Bilgi toplama esnasında, karışıklıkları kontrol etmek için bazı araçların kullanılmasında fayda vardır.

Raporlanan bilgiler, geliştirme akmı, bakım takımı, proje yönetimi, kalite güvence takımı gibi gruplar tarafından kullanılacaktır. Raporlama rasgele ortaya çıkan isteklere bağlı olarak hazırlanabildiği gibi düzenli aralıklarla da hazırlanabilmektedir.

Durum kontrolünden elde edilen bilgi, raporlamada kullanılabildiği gibi yönetim kademesinde bazı ölçütler için de kullanılabilir. Örnek olarak değişiklik isteklerinin sayısı ve bir değişikliğin gerçekleştirme zamanı verilebilir.

2.6. Yazılım Yapılanışı Denetleme

Yazılım denetlemesi, yazılım ürünün kabul edilirliğinin, standardların, rehberlerin, yordamların değerlendirildiği bağımsız olarak gerçekleştirilen bir aktivitedir. Denetlemeler, iyi tanımlanmış olan birçok süreci kapsar. Bu süreçlerde, farklı farklı sorumluluklar mevcuttur. Her denetleme, çok iyi olarak planlanmalıdır.

Denetlemeler, hangi öğelerin istenilen düzeyde olduğu, hangilerinin eksik olduğu hakkında bilgi verir.   Bu denetlemeler proje yaşam döngüsünün önemli noktalarında yapılmalıdır. 2 çeşit denetleme vardır: Fiziksel Denetleme ve Fonksionel Denetleme. Bu denetlemelerin sağlıklı olarak yaılması, ortaya çıkarılacak olan ürünün kalitesini de ortaya koyar.

2.6.1. Fonsiyonel Denetleme

Fonksyionel denetlemenin amacı, denetlenen yazılımın belirtimlerle olan uyumluluğunu ölçmektir.Yazılım Doğrulama ve Testlerinin çıktıları, bu denetleme için iyi birer girdidirler.

2.6.2. Fiziksel Denetleme

Fiziksel denetlemenin amacı, tasarım dökümanının gliştirilmekte olan yazılım ürünü ile tutarlı olup olmadığını ölçmektir.

2.7. Yazılım Yayım Yönetimi

Yayım kelimesi, geliştirme aktivitesi boyunca ortaya çıkarılan farklı özelliklerdeki öğeler anlamına gelmektedir. (Mesela bir araçın yeni, farklı özellikteki versiyonları) Bu öğeler, müşteriye gönderilen dışsal öğeler olabileceği gibi geliştirme takımı içinde kalan içsel öğeler de olabilir. Bi yazılımın yeni bir versionu oluşturulduğunda, bu versiyonun yayım olarak açılanmadan önce diğer yazılımların hangi versiyonları ile uyumlu çalışabileceği belirlenmeli ve buna göre bir paket oluşturulmalıdır. Bu iş için de kütüphaneler kullanılmalıdır.

Çalıştırılabilir bir yazılım için, öğelerin doğru versiyonları bir araya getirilir ve kurulum paketi hazırlanır. Bu işlem yapılırken, en önemli nokta yazılımın çalışacağı donanımın yapılanışının doğu tespit edilmesidir. Çünkü donanım yapılanışı yanlış tespit edilmiş bir paket, çalışmayacağı için sonuç tam anlamıyla hüsran olacaktır.

Buna göre, yazılım yayım yönetimi, bir ürünün öğelerinin tanımlanması, bir araya geirilmesi, dağıtımı gibi konuları ele alan önemli bir aktivitedir. (Çalıştırılabilir kod, dökümantasyonu, yapılanış bilgisi...) Yazlım yayım yönetiminin diğer bir görevi de ne zaman bir yayım yaratmak gerektiğine karar vermektir. Çözülen problemlerin önemi ve hataları ne kadar yok ettiği bu kararı belireyen etkileyici bir faktördür.

3. KAYNAKÇA

Berczuk, Steve. Configuration Management Patterns, 1997.

http://www.bell-labs.com/cgiuser/

 

OrgPatterns/OrgPatterns?ConfigurationManagementPatterns.

Compton, Stephen B, Configuration Management for Software , VNR Computer Library,

Van Nostrand Reinhold, 1993.

 

Continuus Software Corp., Work Area Management, Continuus/CM: Change

Management for Software Development.

http://www.continuus.com/developers/developersACE.html.

 

Dart, Susan, Spectrum of Functionality in Configuration Management Systems,

oftware Engineering Institute, 1990.

http://www.sei.cmu.edu/technology/case/scm/tech_rep/TR11_90/TOC_TR11_90.html

 

Jameson, Kevin, Multi Platform Code Management , O’Reilly & Associates, 1994

Linenbach, Terris, Programmers’ Canvas: A pattern for source code management 1996.

http://www.rahul.net/terris/ProgrammersCanvas.htm.

 

Lyon, David D, Practical CM , Raven Publishing, 1997

McConnell, Steve, Best Practices: Daily Build and Smoke Test, IEEE Software , Vol.13, No. 4, July 1996

van der Hoek, Andre, Hall, Richard S., Heimbigner, Dennis, and Wolf, Alexander L.,Software Release Management, Proceedings of the 6th European Software Engineering Conference , Zurich, Switzerland, 1997.

EK 1 – KULLANILAN TİCARİ YAZILIM YAPILANIŞI YÖNETİMİ ARAÇLARI

EK 2 – KULLANILAN BEDAVA YAZILIM YAPILANIŞI YÖNETİMİ ARAÇLARI

Makale:
Yazılım Yapılanışı Yönetimi Yazılım Mühendisliği Tanıl Ergin
  • Yazılan Yorumlar
  • Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor