Makale Özeti

Visual Studio Team System ile Yazılım Süreç Yönetimi makale serisinin, 2. Makalesi, Takım ortak bilgi yönetim sunucusu (Team Foundation Server) hakkındadır.

Makale

 

VISUAL STUDIO TEAM SYSTEM (VSTS) İLE

YAZILIM SÜREÇ YÖNETİMİ-

Bölüm 2: Takım ortak bilgi yönetim sunucusu

(Team Foundation Server)

24.01.2007

 

Ertan Deniz

Derya Bilgi Teknolojileri

www.deryabilgi.com, Ertan.Deniz@deryabilgi.com

 

 

 

Makale özeti

 

Visual Studio Team System tanıtımı ile ilgili makale serisinin, ikincisini VSTS’nin en önemli bileşeni ve motoru hükmünde olan, Takım ortak bilgi yönetim sunucusu (Team Foundation Server) hakkındadır. 

 

TFS ‘nin yazılım sürecinin  yönetimi ve tüm araçların entegrasyonu için sunduğu ortak bilgi paylaşım alanı ve servisleri hakkında bilgi sunulacaktır.

 

İçindekiler

 

Giriş

Takım ortak bilgi yönetim sunucusu (Team Foundation)

Proje Yönetimi ve İş takibi

Yazılım konfigürasyon yönetimi (SCM- Software Configuration Management)

Süreç yönetimi

Ürünleştirme işlemi (Team Build)

Değerlendirme

Kaynaklar

 

Giriş

 

Takım ortak bilgi yönetim sunucusu (TFSTeam Foundation Server), tüm VSTS için bir alt yapı (Framework) sunmaktadır.  TFS ile, yazılım geliştirme sürecinde sunulan araçlar ortak bir bilgi paylaşım alanı (veritabanı) üzerinden entegre edilmiş ve takım içinde birlikte çalışma alt yapısı sunulmuştur. Süreç yönetimi, Proje yönetimini destekleyen araçlar, Kaynak kod yönetimi, Ürünleştirme servisi, merkezi raporlama, dağıtık ekipleri desteleyen alt yapısı,servis temelli mimarisi ve geliştirilebilir modelini en önemli özellikleri olarak sayabiliriz.

 

Aşağıdaki bölümde, TFS ‘nin VSTS platformundaki yeri, teknik mimarisi, bileşenleri açıklanacaktır

 

Takım ortak bilgi yönetim sunucusu (Team Foundation Server)

 

Takım ortak bilgi yönetim sunucusu (TFS - Team Foundation Server), VSTS platformunun en önemli bileşenidir. Tüm platfrom için motor hükmündedir. TFS olmadan, mimari, geliştirme ve test araçlarını kullanarak yapılan çalışmalar,  diğer takım üyelerinden bağımsız olarak kişinin kendi çalışma ortamında gerçekleştirilmektedir.

 

 

Aşağıdaki resimde VSTS platformu içinde, TFS  bileşenleri işaretli bir şekilde gösterilmiştir :

 

 

 

Resim1: Visual Studio Team System ürün bileşenleri

 

TFS ile aşağıdaki imkanlar sağlanmıştır :

 

·          Projelerin oluşturulması ve yönetimi (Team Projects)

·          Süreç yönetimi (MSF veya özel süreç şablonları)

·          Projeler ile ilgili iş takip nesneleri ve  iş akış yönetimi

·          Kaynak kod ve versiyon yönetimi

·          Proje ile ilgili yönetim ve durum raporlarının sağlanması

·          Proje ürünleştirme sunucusu (Build Server)

·          Doküman ve raporların paylaşıldığı, Sharepoint proje web sitesi

 

TFS, veritabanı olarak SQL Server 2005 ürününü kullanmaktadır. Müşteri (Client) uygulamaları, uygulama katmanı ve veri katmanı olarak, çok katmanlı mimaride ve servis temelli olarak geliştirilmiştir. TFS sunucu ve müşteri uygulamaları arasındaki iletişimi gösteren teknik mimari şeması aşağıda sunulmuştur :

Resim2: TFS teknik mimarisi.

 

Uygulama katmanında yer alan web servisleri ile, veri katmanına erişim sağlanmaktadır. Bu web servislerini kullanarak, çözüm ortakları tarafından geliştirilen ürünler de yazılım geliştirme sürecine kolaylıkla entegre edilebilmektedirler.  Dağıtık bir yapıda proje ekiplerimiz varsa, bu ekiplerimizin ofislerine merkezi kaynak kod veritabanından alınacak dosyalarda yaşanacak performans problemleri için, önbellekleme amaçlı proxy sunucu kurulabilir.

 

TFS sunucusunun katmanları hakkında detaylı bilgi aşağıdaki resimde sunulmuştur :

     

Resim3: TFS bileşen mimarisi.

 

TFS sunucusunun teknik alt yapısında, ASP.NET 2.0 ve SQL Server 2005 gibi güncel yazılımlar kullanılmıştır. SQL Server 2005’in kullanılması ile, süreklilik, ölçeklenebilirlik gibi özelliklerinden istifade edilmiştir. TFS ‘nin SQL Server 2005 üzerinde yer almasının diğer bir faydası, SQL raporlama servislerinden istifade edilmesidir. SQL raporlama servisleri, SQL Server 2005 ile beraber gelmektedir. (Standart ve Enterprise sürümlerle birlikte)

 

VSTS ‘nin raporlama alt yapısı, SQL raporlama servisleri üzerine kurulmuştur. Süreç şablonları ile birlikte gelen 20 ‘den fazla rapor hazır olarak kullanılabilmektedir. Raporlama servislerinin yönetim portalından veya Rapor web uygulama parçası (Report Webpart) ile Sharepoint proje sitesinden izlenebilir. Bu teknoloji alt yapısı sayesinde, yeni raporlar hazırlanabilir veya özelleştirmeler yapılabilir. Aşağıda örnek projemizin (DeryaDemo) raporlarının, raporlama sunucusundaki yönetim ekranı sunulmuştur :

 

Resim4 : SQL Server rapor yönetim portalı ve VSTS içinde yer alan raporlara örnekler.

 

Uygulama katmanında, Web servisleri yer almaktadır. Windows Sharepoint servisleri (WSS), Visual Studio, MS Excel, MS Project, TFS Müşteri uygulaması gibi müşteri uygulamalarından bu web servisleri çağırılmaktadır. TFS Müşteri uygulaması, takım projelerinin yönetimi için geliştirilmiş yeni bir uygulamadır. Visual Studio olmadan, bazı proje yönetimi fonksiyonlarını gerçekleştirmek için kullanılabilmektedir. Bu araç ile, TFS üzerindeki proje ve süreç bilgilerine daha geniş bir kitle (Mesela projeyi takip eden üst yöneticiler gibi.) tarafından ulaşımı sağlanmıştır.

 

VSTS içinde proje oluşturulduğunda, proje sitesi de isteğe bağlı bir şekilde oluşturulmaktadır. VSTS süreç  şablonları içinde, Sharepoint sitesinin yapısı ve içeriği de tanımlanmaktadır. Süreç şablonu kurum ihtiyaçlarına göre özelleştirilirken, Sharepoint sitesi de özelleştirilebilir. Sharepoint sitesi de Windows Sharepoint Servisleri tarafından sağlanan portal alt yapısı, doküman yönetimi fonksiyonları ile bilgi paylaşım alt yapısı sunmaktadır.  Yukarıda bahsedildiği gibi, Sharepoint sitesinden raporlar izlenebilmektedir. Visual Studio ortamını kullanmayan, proje ile ilgili diğer kullanıcılar (İş analistleri, Proje yatırımcıları gibi) bu özelliği kullanarak proje durumu hakkında detaylı bilgi alabilmektedirler. Aşağıda projemizin (DeryaDemo) proje portalı sunulmuştur :

 

 

Resim5 : Örnek bir proje portalı.

 

Proje Yönetimi ve İş takibi

 

VSTS ile takım içinde iş takibinin sağlandığı birlikte çalışma ortamı sunulmuştur. Proje ile ilgili iş takip nesnelerinin (Work Item) takım içinde ilgili kişilere atanması ve tamamlanma süreci takip edilebilmektedir.

 

VSTS içinde,  bir proje oluşturulurken,  o projenin takip edeceği süreç şablonu (MSF Agile,MSF CMMI gibi) da seçilmektedir.  Süreç şablonu içinde, iş takip nesneleri ile ilgili tüm bilgiler tanımlanmıştır. Her süreç şablonu, kendine özel iş takip nesnelerini ihtiva etmektedir. Hata, Risk, Gereksinim, Servis kalitesi gibi örnek iş takip nesnelerini sayabiliriz. Bu iş takip nesneleri, o projede kullanılabilmektedir. Kurumlar ihtiyaçlarına göre süreçleri özelleştirdiklerinde veya yeni süreç şablonu geliştirdiklerinde, bu iş takip nesneleri de özelleştirilebilmekte, yeni iş takip nesneleri oluşturulabilmektedir.

 

İş takip nesnesi içinde aşağıdaki bilgiler yer almaktadır :

 

Tüm iş takip nesnelerindeki ortak olan bilgiler ;

 

1.      İş tanım nesnesi ile ilgili genel bilgiler (Başlık,Tarih,Atanan kişi,Durum)

2.      Bilgi giriş iş kuralları (O alan için desteklenen değerler gibi)

3.      İş tanım nesnesinin gösterileceği form tanımı

4.      Süreç tanımı ile ilgili basit bir model.

 

Tüm iş takip nesnelerinde ortak olan özellikler ;

 

1.      Ortak sistem alanlarını ihtiva etmeleri,

2.      Yapılan değişikliklerin tarih bazlı tutulması,

3.      Diğer iş tanım nesneleri, dosyalar gibi nesnelerle ilişkilendirme desteği

 

İş takip nesneleri, sistemdeki diğer bir iş takip nesnesi, kaynak kod veritabanındaki dosya gibi diğer nesneler ile ilişki tanımlanmasını desteklemektedir. “Bu değişiklik niçin yapıldı ?”, “ Bu değişikliği kim yaptı ?” gibi sorulara cevap bulunabilir. Bu ilişkilerin, sorgulanması ve raporlanması mümkündür. İş takip nesnesinin, ilişkiler bölümünde de takip edilebilir. Proje ve süreç yönetimi açısısından, izlenebilirliğe önemli katkı sağlanmıştır.Tüm iş takip nesneleri, TFS içinde proje bazlı olarak saklanmaktadır.

        

VSTS ‘nin en önemli özelliklerden birisi, takım elemanlarının kullanmaya alışık oldukları araçları kullanmalarını sağlamasıdır. MS Excel veya MS Project ürünlerini kullanarak iş takibi yapan proje yöneticileri, yine bu şekilde çalışmaya devam edebilirler. Team Explorer ürünü kurulduğunda, ilgili ürünlere de kurulum (VSTS Toolbar) yapılmaktadır. Bu araç çubuğu üzerinden TFS veritabanı ile haberleşme imkanı sağlanır. Veritabanından iş tanım nesneleri alınıp, üzerinde çevrimdışı değişiklik yapılması, tekrar değişikliklerin veritabanına yansıtılması gerçekleştirilebilmektedir.

 

Proje yöneticileri için, diğer önemli bir husus da proje hakkında alabilecekleri raporlardır. VSTS ile, süreç şablonları ile birlikte hazır raporlar sunulmuştur. MS Excel kullanılarak, VSTS veriambarı bağlanılarak proje bilgileri analiz edilebilir.  Sharepoint sitesi de kullanılarak, proje ile ilgili dokümanlar paylaşılarak takım için iletişim kolaylaştırılmıştır.

 

İş takip sistemi, Visual studio ortamı ile entegre çalışmaktadır. Diğer takım elemanları (Mimar, Yazılım geliştirici,Test uzmanı) iş takip sürecine, çalıştıkları ortam içinden katılabilmektedirler.

 

Yazılım konfigürasyon yönetimi (SCM- Software Configuration Management)

 

Microsoft Visual SourceSafe (VSS), Microsoft ortamında yazılım geliştirenlerin kaynak kod yönetim sistemi  olarak yıllardan beri yaygın olarak kullanılıyor. Fakat daha geniş ihtiyaçları olan (ölçeklenebilirlik, internet üzerinden erişim desteği gibi ) kurumlar, alternatif ürünler tercih etmekteydi. TFS ile birlikte, bu ihtiyaçlara da cevap verecek yeni bir ürün geliştirildi. Visual SourceSafe ürünü de yeni versiyonu ile, özellikle internet erişimi,arttırılmış güvenilirlik ve Unicode desteği ile kullanıma sunuldu. Bu ürünlerin özellikle mimari açısından değerlendirilmesi ve ihtiyaçlara göre tercih yapılması için konu ile ilgili MSDN makalesine [1] başvurulabilir.

 

TFS kaynak kod yönetimi, SQL Server 2005 kullanılarak yeni geliştirilmiş, büyük proje ekiplerini destekleme hedefiyle, ölçeklenebilir bir yapıya kavuşturulmuştur. HTTP ve HTTPS desteği ile, dağıtık proje ekiplerinin kaynak kod sistemini kullanması sağlanmış,  dağıtık ekiplerde ortaya çıkan zaman farklılığı hususuna da çözüm sağlanmıştır. Değişikliklerin veritabanına yüklenmeden önce belirlenen iş kurallarını (Aktiviteler ile ilişkilendirilmesi, Kodun temiz derlenmesi,Kod analizi çalıştırılması, Birim testlerinin çalıştırılması) sağlaması gibi özelliklerle, yazılım geliştirme süreci içinde önemli bir role sahip olmuştur. Aşağıda, proje yöneticisi tarafından, iş kurallarının belirlendiği örnek bir ekran sunulmuştur.

 

Resim6 : Kaynak veritabanına yükleme işlemi sırasında çalıştırılacak iş kuralları

 

Yukarıdaki özelliklere ilave olarak Versiyon yönetimi ve raporlama özellikleri ile, bir yazılım konfigürasyon yönetimi çözümünden beklenen özellikleri sağlamıştır.

 

Süreç Yönetimi

 

Yazılım geliştirme sürecinde, bir metodoloji kullanımı önemlidir. Metodoloji basit manasıyla, projenizde hedefe ulaşmak için, takip edeceğiniz açık ve tutarlı bir yaklaşımın adı. Bu sizin geliştirdiğiniz bir metodoloji de olabilir. Zaman içindeki tecrübeleriniz bunda etkili olacaktır. Tecrübe gündeme gelince, “Acaba piyasadaki yaygın olarak kullanılan metodolojiler nedir ?”, “Bunlar niçin yayın olarak kullanılmaktadır ?” gibi soruları kendimize sormamız gerekiyor. Böyle bir sorunun cevabı, VSTS ile birlikte verilmiştir.  MSF!    (Microsoft Solutions Framework)  MSF, Microsoft tarafından geliştirilmiş ve tecrübelerin kazandırıldığı, kolay kullanılabilir ve özelleştirilebilir yazılım geliştirme süreç şablonudur. İlk kez 1995 yılında duyurulmuştur. 25 yıllık tecrübenin mahsülü. Hem de dünyanın en büyük yazılım şirketinden.

 

VSTS ile birlikte sunulan MSF 4.0, yazılım geliştiricilerin değişen ihtiyaçları gözönünde bulundurularak,  MSF Çevik (Agile) ve MSF CMMI (for CMMI improvement) şeklinde 2 süreç yaklaşımı içermektedir.

 

MSF Çevik ile, değişen ihtiyaçlara  daha hızlı cevap verebilmek ve müşteri ile daha yakın bir çalışma ortamı sağlanması özelliklerini takip eden, çevik yazılım tekniklerini benimseyen profesyoneller ve küçük projeler hedeflenmiş. Süreçlerin çok detaylı takip edilmesi, proje ekibinin önüne serilen gereksinimler, bazen başarısız proje netice verebilir.

 

MSF CMMI (for CMMI improvement) ile ise, uzun süreli planlamanın, iletişimin ve detaylı raporlamanın daha önemli olduğu projelerdeki ihtiyaçlar ön planda. Sürecin devamlı iyileştirilmesi için bir model sunuluyor. Sürekli iyileştirme ile, yazılım geliştirme adımlarında gerçekleşen döngülerin azaltılması sayesinde, projenin süre ve maliyet hedeflerini yakalaması mümkün. CMMI ‘ın kullanılmasının en önemli avantajı, diğer yazılım geliştiren firmaların iş yapma kabiliyetlerini karşılaştıran bir standart olması. Kurumların projeleri için, çözüm ortaklarının CMMI seviyesi araştıracağı günler, yakınımızda. 

 

Makalemiz bir tanıtım makalesi olması sebebiyle, bir yazılım geliştirme metodolojisi kullanmanın önemi üzerinde duramayacağız. Sadece, metodoloji uygulanması ile ilgili bir hususa dikkat çekmek ve VSTS ile sunulan süreç şablonlarının özelleştirilmesinin avantajını değerlendirmeye çalışacağım. Takımların çalışma biçimlerine uymayan süreçler, önemli bir dirençle karşılaşırlar. Üretkenliğin sürdürülebilmesi ve yeniliklerin uygulanabilmesi için bir denge şart. Denge sağlanamaz ise, süreç bir yük olarak gözükmeye başlayacaktır. Projelerimizde metodoloji seçimine etki edecek ; proje takımının büyüklüğü, projenin kritikliği ve projedeki öncelikler gibi  parametrelere dikkat edilmesi gerekiyor. Her proje değerlendirildiğinde, projeye özel bazı parametreler (proje ekibindeki kişisel özellikler,Kurum özellikleri gibi) ve özel ihtiyaçlar önümüze gelecektir. Projeler tüm detaylarıyla değerlendirildiğinde, her projede özel bir metodoloji fikri [2] önümüze geliyor. Böyle bir  hedef içinde, özelleştirme imkanı çok önemli. Özelleştirme, VSTS ‘nin en kuvvetli olduğu özelliklerinden.VSTS ile sunulan ve yukarıda bahsi geçen süreç şablonlarının, aynen kullanılması mümkün olabileceği gibi, kurum ihtiyaçlarına göre gerekli özelleştirmeler de yapılabilir. Kurum içindeki alışkanlıklar ve tecrübeler yeni çalışma ortamının bir parçası olması sağlanabilir. Çözüm ortakları tarafından geliştirilen ve yaygın olarak kullanılan RUP (Rational Unified  Process) gibi süreç şablonlarının [3] da Team system ortamında kullanılması mümkündür.

 

Ürünleştirme işlemi (Team Build)

 

Ürünleştirme işlemi, proje ile ilgili tüm kaynak dosyaların,bileşenlerin derlenip çalıştırılabilir bir set haline getirilmesidir.VSTS ile birlikte sunulan ürünleştirme hizmeti, projelerin çalıştırılabilir hale getirilmesi için birim testlerin çalıştırılması ve statik analiz işlemlerinin de dahil edildiği kolay ve yazılım süreci ile entegre bir hizmet haline getirilmiştir.

 

Visual Studio 2005 içinde F5 tuşuna basılması, küçük projeler için uygun bir yöntem. Dosyalar, işlemi gerçekleştiren kişinin makinasında. Fakat büyük projelerde, gereksinimler daha fazla. Yazılım geliştirme süreç yönetimi bütünlüğü açısından bakıldığı zaman, ürünleştirme sürecinde başka işlemlerinde dahil edilmesi gerekiyor. Bunlar ;

 

1.      Kaynak kod dosyalarının sunucu üzerinde kilitlenmesi

2.      Statik analizi ve birim testlerinin çalıştırılması

3.      Kaynakların derlenmesi

4.      Test, test edilen kod kapsamı ve diğer süreç içinde üretilen bilgilerin saklanması (VSTS Veriambarı)

5.      Çalıştırılabilir dosyaların, belirli bir yere kopyalanması

6.      Raporların üretilmesi

 

VSTS ile, bir çok ürünleştirme süreç tipleri  tanımlanabilir ve ihtiyaçlara göre özelleştirilebilir. Bu süreç tipi tanımlama işlemi için, gerekli adımlar hazır olarak sunulmuştur. Bu uygulamanın ekran görüntüsü, aşağıda verilmiştir :

 

Resim7 :Yeni ürünleştirme (Build) tipi oluşturulması

 

Bu adımlar takip edilerek, işlem (script) dosyaları oluşturulmakta ve zaman planlı olarak çalıştırılabilmektedir. Ek olarak, süreç ile ilgili bilgilendirme mesajı ile ilgili kişiler uyarılabilmektedir. Aşağıda, örnek bir uyarı tanımlama ekranı sunulmuştur :

 

Resim8: Proje ile ilgili uyarı tanımlama

 

Değerlendirme

 

TFS yazılım geliştirme projelerimiz için bir veritabanı. Finansal uygulamalar için nasıl bir veritabanı modelliyorsak onun gibi. Yazılım geliştirme sürecindeki tüm bilgiler için ortak bir bilgi modeli ve bu bilgi modeline erişen temel servisleri var. (Team Foundation Core Services). TFS ‘nin bu mimarisi sayesinde, VSTS platformu genişleyebilirlik kazanmış.Mevcut araçlara ek olarak, çözüm ortakları tarafından sunulan ürünlerin, sürece entegrasyonu çözüm arayışlarımızı kolaylaştıracaktır. Hatta kendi ortamımıza özel, çözüm geliştirme imkanı da artık elimizde.

 

Süreçler karmaşıklaşıyor ama  teknoloji işimizi kolaylaştırmaya devam ediyor.

 

Kaynaklar

 

Kaynaklar, bu serinin ilk makalesinde (Bölüm1:Giriş ve bileşenler), ortak yayınlanmıştır.

 

Visual Studio Team System - Takım ortak bilgi yönetim sunucusu