Uluslararası Geliştirilen Bir Projenin İşleyişi, Gözlemlerimiz ve Edinilen Tecrübeler



Benzer belgeler
Yazılım Mühendisliği 1

aselsan Açık Pozisyonlar Bilgi Teknolojileri (BT) Denetçisi İç Denetçi

BİLİŞİM SİSTEMLERİ GÜVENLİĞİNDE YENİ EĞİLİMLER

Yazılım Süreçleri Software Processes

SİSTEM ANALİZİ VE TASARIMI

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

YAZILIM MÜHENDİSLİĞİNİN TEMELLERİ 9.Hafta. Bakım

ESİS Projesi. Kaynaklar Bakanlığı

9.DERS Yazılım Geliştirme Modelleri

1.Yazılım Geliştirme Metotları 1

BİL 542 Paralel Hesaplama. Dersi Projesi. MPJ Express Java Paralel Programlama

Konfigürasyon Yönetimi

Yaz.Müh.Ders Notları #6 1

MerSis. Bilgi Güvenliği Danışmanlık Hizmetleri

MerSis. Bilgi Teknolojileri Yönetimi Danışmanlık Hizmetleri

T. C. KAMU İHALE KURUMU

BDDK-Bilgi Sistemlerine İlişkin Düzenlemeler. Etkin ve verimli bir Banka dan beklenenler Bilgi Teknolojilerinden Beklenenler

TÜRKĠYE BĠLĠMSEL VE TEKNOLOJĠK ARAġTIRMA KURUMU BĠLGĠ ĠġLEM DAĠRE BAġKANLIĞI ÇALIġMA USUL VE ESASLARI

MerSis. Bilgi Teknolojileri Bağımsız Denetim Hizmetleri

Yazılım Mühendisliği Bölüm - 3 Planlama

TED Kdz. Ereğli Koleji Okul-Aile Birliği Çalışma Yönergesi

YÖNETİMİN SORUMLULUĞU PROSEDÜRÜ

Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım

Headcount Planlama Formu HR Self Servis /Headcount Planlama sistemi üzerinden kullanılmaktadır. Seçme ve Yerleştirme Prosedürü

Büyük Ölçekli Bir Sistem Projesinde IBM Rational Jazz Platformu Kullanarak Çevik Süreçlerin Uygulanması. Serap Bozbey

Yazılım Kalite Yönetimi (SE 554) Ders Detayları

STİK K KURULTAYI YAZILIM LOJİST STİĞİ

Yazılım Geliştirme Sürecinde Değer Akış Haritalama Yöntemi Uygulama Çalışması

Kalite Yönetim Sistemi El Kitabı Dok.No: AU KYS EK Bölüm 9 Performans değerlendirme

İSTANBUL ÜNİVERSİTESİ İç Denetim Birimi Başkanlığı İÇ DENETİM PROSEDÜRÜ

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması

MESLEKİ TERMİNOLOJİ I 1. HAFTA YAZILIM MÜH. TEMEL KAVRAMLAR

Yazılım Mühendisliği Bölüm - 2 Yazılım Geliştirme Yaşam Döngüsü. Cengiz GÖK

YZM 2108 Yazılım Mimarisi ve Tasarımı

BMT207 VERİ YAPILARI DATA STRUCTURE

KALİTE YÖNETİM SİSTEMİ İş Sürekliliği

YAZILIM MÜHENDİSLİĞİ Şubat 2012 Yrd.Doç.Dr. Yunus Emre SELÇUK GENEL BİLGİLER

Büyük Ölçekli bir Gömülü Yazılımın Geliştirme ve Otomatik Test Deneyimi

Yrd. Doç. Dr. Ayça Tarhan. Hacettepe Üniversitesi Bilgisayar Mühendisliği Bölümü

SAMM ile Güvenli Yazılım Geliştirme

Sistem Geliştirme Yaşam Döngüsü (The Systems Development Life Cycle) (SDLC)

Y I L D I Z T E K N I K Ü N İ V E R S İ T E S İ MÜHENDİSLİĞİ

Yazılım profesyonelleri için önemli olan yetkinlikler anketi Survey

Statik Kod Analizi. Proceedings/Bildiriler Kitabı. SSE-CMM[3], ISO/IEC [3] gibi standartlarla. gereklidir.

Araç, Sistem ve Komponent Tip Onay (Homologasyon) Süreçleri Eğitimleri

Değerlendirme Araçları Projesi

TÜRKİYE BİLİMSEL VE TEKNOLOJİK ARAŞTIRMA KURUMU ULUSAL AKADEMİK AĞ VE BİLGİ MERKEZİ YÖNETMELİĞİ. BİRİNCİ BÖLÜM Genel Hükümler

Bilgisayar Mühendisliği. Bilgisayar Mühendisliğine Giriş 1

BMH-405 YAZILIM MÜHENDİSLİĞİ

C3S Komuta Kontrol ve Sibernetik Sistemler Ltd. Şti. ŞİRKET BİLGİLERİ VE TANITIMI

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Yazılım Tasarımı Dokümanı v Mustafa Atanak Sefai Tandoğan Doç. Dr.

Android e Giriş. Öğr.Gör. Utku SOBUTAY

GT Türkiye İşletme Risk Yönetimi Hizmetleri. Sezer Bozkuş Kahyaoğlu İşletme Risk Yönetimi, Ortak CIA, CFE, CFSA, CRMA, CPA

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

PROJEDE iletişim YöNETiMi

T. C. KAMU İHALE KURUMU

EYP Türkiye Üyelik Kayıtları ( Dönemi)

ISO 13485:2016 TIBBİ CİHAZLAR KALİTE YÖNETİM SİSTEMİ GEÇİŞ KILAVUZU

Dijitalleşme Yolunda ERP Dönüşümü

İç Tetkik Prosedürü Dok.No: KYS PR 02

İÜ İç Denetim Birim Başkanlığı İÇ DENETİM PROSEDÜRÜ

DEĞİŞİKLİK BEDAVA MI?

İÜ Genel Sekreterlik İletişim Prosedürü

Sistem Analizi ve Tasarımı DERS2

AHİ EVRAN ÜNİVERSİTESİ KALİTE YÖNETİM SİSTEMİ 2018 YILI UYGULAMA REHBERİ

Öğretim planındaki AKTS Ulusal Kredi

No : P.02 : 1 / 7 : : 0

GENETİK ALGORİTMALAR. Araş. Gör. Nesibe YALÇIN BİLECİK ÜNİVERSİTESİ

Projenin Kurumlardaki Faaliyetlere Entegrasyonu. Yetişkinler Kabiliyetlerini Keşfediyorlar

BENZERSİZ SORUNLARA BENZERSİZ ÇÖZÜMLER

YAZILIM ÜRÜN HATTI DEĞĐŞKENLĐĞĐNĐN DENETĐM ÇEVRĐMĐ ĐLE ELE ALINMASI

BİLGİ İŞLEM BÖLÜMLERİNİN DAHA KOLAY VE ETKİN YÖNETİLMESİ İÇİN BİR ARIZA KAYIT SİSTEMİ FATİH YÜCALAR ŞENOL ZAFER ERDOĞAN

Web Tabanlı CMMI Süreç Yönetimi Uygulamalarının Süreç ve Yazılım Geliştirme Performansına Pozitif Etkileri

BTK nın IPv6 ya İlişkin Çalışmaları

design)1980li ve 1990lıyıllar Birleştirilmiş Modelleme Dili (Unified Modeling Language-(UML) yazılım geliştirme araçlarının temelidir.

ELEKTRONİK NÜSHA. BASILMIŞ HALİ KONTROLSUZ KOPYADIR

BULUT BİLİŞİM VE BÜYÜK VERİ ARAŞTIRMA LABORATUVARI. Ekim 2017

Varlık davranış modeli: Bu aşama her entity ye etki eden durumların tanımlandığı, modellendiği ve dokümante edildiği süreçtir.

Tedarikçi Yönetimi (Kurumsal Sosyal Uygunluk) 2014 Yılı Eğitim Programı

Web Sunucularda Uygulama Koşturulması

5018 Sayılı Kamu Mali Yönetimi ve Kontrol Kanunu

CMMI ve Çevik Yöntemler

Veri Ambarından Veri Madenciliğine

Ateş Destek C 4 I Sistemleri.

Hızlı Sistem Kurulumu ve Yönetimi İçin Yeni Bir Yaklaşım: SUSE Stüdyo

Spring Giriş Eğitimi

ERP Uygulama Öncesi Değerlendirme

BİLGİ SİSTEMLERİ YÖNETİMİ TEBLİĞİ

İSTANBUL ÜNİVERSİTESİ DÖNER SERMAYE İŞLETME MÜDÜRLÜĞÜ HİZMET İÇİ EĞİTİM SUNUMU 02 MAYIS 2014

YAZILIM ÜRÜN HATTINDA YETENEK MODELİNDEN ÜRÜN KONFİGÜRASYONUNUN OLUŞTURULMASI

ISO 14001:2015 KALİTE YÖNETİM SİSTEMİ GEÇİŞ BİLGİLENDİRME KILAVUZU

Bulut Bilişim. Ege Üniversitesi Bilgisayar Mühendisliği Web Servisleri

Bahçeşehir Koleji, Workcube İle Süreçlerini Raporlanabilir Bir Yapıya Dönüştürdü.

Sistem ve Yazılım Nedir?

Çekirdek Nedir? Ne yapar?

BÖLÜM 1 TEDARİK ZİNCİRİ

UE.18 Rev.Tar/No: /03 SAYFA 1 / 5

YAZILIM MÜHENDİSLİĞİ TEKNOLOJİ FAKÜLTESİ / BİLGİSAYAR MÜHENDİSLİĞİ

Bu dokümanla BGYS rollerinin ve sorumluluklarının tanımlanarak BGYS sürecinin efektif şekilde yönetilmesi hedeflenmektedir.

Transkript:

Uluslararası Geliştirilen Bir Projenin İşleyişi, Gözlemlerimiz ve Edinilen Tecrübeler Emra Askaroglu 1, Hakan Yılmaz 2 1 ASELSAN A.Ş. SST-KKYTM P.K.1 06172, Yenimahalle/Ankara, Türkiye 2 ASELSAN A.Ş. SST-KKYTM P.K.1 06172, Yenimahalle/Ankara, Türkiye 1 easkaroglu@aselsan.com.tr, 2 hakyilmaz@aselsan.com.tr Özet. Günümüzde farklı şirketler, organizasyonlar ya da ülkeler ortak geliştirmeye çalıştıkları projelerde birçok güçlükle karşılaşmaktadırlar. NATO ülkeleri tarafından ortak olarak geliştirilen ve projelerimizde kullandığımız çekirdek yazılımları bize farklı ülkelerle ve şirketlerle aynı proje için çalışmanın getirdiği sorumlulukları ve güçlükleri göstermektedir. Bu kapsamda bir projenin farklı ülkelerle birlikte geliştirilmesi sırasında proje yönetiminin nasıl ele alındığı, geliştirme sırasında belirlenen stratejilerin neler olduğu, geliştirme sonrasında yapılacak testlerin nasıl yapılması gerektiği, konfigürasyon yönetiminin nasıl ele alındığı önem arz etmektedir. Bu makalede diğer ülkelerle ortak geliştirilen çekirdek yazılım çalışmaları kapsamındaki gözlemlerimizi ve edindiğimiz tecrübeleri paylaşacağız. Anahtar Kelimeler: NATO, Proje Yönetimi, Yazılım Süreçleri, Yazılım Testi, Yazılım Kalitesi 1 Giriş S4 (SG/2 Sharable Software Suite) NATO ARMY ARMAMENTS GROUP Integrated CAPABILITY Group - Indirect FIRE Sub-Group 2 (NAAG-ICG-IF-SG/2) grubunun bünyesinde müşterek olarak geliştirilen programlar takımıdır[1]. Bu makalede S4 projesi aşamalarından ve projenin geliştirilmesi sırasında edinilen tecrübelerden bahsedilecektir. Daha önce yapılmış bir çok çalışmada projelerin yaşam döngüleriyle ilgili adımlar sunulmuştur[8][9][10]. Yazılım tasarımı, geliştirmesi, yönetimi, idame edilmesi gibi konular yazılım dünyasında her zaman üzerinde önemli bir konu olarak var olmaya devam edecektir[11]. S4 çalışması ile ilgili bu makalede projenin tüm yaşam döngüsüne odaklanmak yerine ülkelerin ortak çalışmasına ve aynı dili konuşmasına yardımcı olacak anahtar noktaların üzerine gitmeye karar verdik. Makalenin 2. bölümünde NATO ülkeleri ile birlikte geliştirilen S4 projesi hakkında bilgi verilecek, 3. bölümde S4 projesinin geliştirme aşamaları, 4. bölümde ise bu aşamalarda alınan dersler anlatılacaktır. Makalemiz Sonuç bölümü ile sonlanacaktır.

2 S4 Projesi S4 içerisindeki her program ayrı bir projedir ve her projede yazılım ürünleri üretilmektedir. Bu ürünler bir araya gelerek S4 ü oluşturmaktadır[2]. S4 bünyesinde geliştirilen ürünlerin temel amacı balistik hesaplama yeteneği sağlayan ateş destek çekirdek yazılımları üretmektir[3]. Bu kapsamda balistik teknolojiyi kurumsallaştırmak ve standartlaştırmak, mühimmat değişimi ve verilerini standartlaştırmak, balistik hesaplamaya etki eden faktörleri incelemek, STANAG 1 lar tarafından kapsanan verilerle ilgili gerçeklemeyi standartlaştırmak, program çerçevesinin(framework) kurulması ve yazılım geliştirme işlevinin süreç tabanlı yapıda olmasını sağlamak gibi konular üzerine çalışmalar yapılmıştır. S4 çalışmalarına 1994 yılında ABD ve Norveç önderliğinde başlanmıştır. Türkiye bu çalışmalara 1997 yılında dahil olmuştur. 1997 yılından itibaren gözlemci olarak dahil olmakla birlikte, bazı dönemlerde yazılım mühendisliği, yazılım kalite mühendisliği desteğinde bulunmuştur. Ayrıca geliştirilen çekirdek yazılımlarına girdi oluşturacak verilerin toplanmasıyla ilgili çalışmalara da aktif katılım sağlanmıştır[4]. 3 S4 projesinin geliştirme aşamaları 3.1 Proje Organizasyonu S4 projeleri organizasyonlarında ülkeler ve ülke temsilcileri proje lideri, ürün lideri, ürün geliştirme lideri, ürün test lideri, bağımsız yazılım denetçisi (ISA - Independent safety/software Auditor) gibi sorumluluklara sahip olabilmektedirler. Proje lideri koordinatörlüğünde projenin ürünlerinin liderleri ve diğer sorumluları ile birlikte belirli periyotlarla ortalama 6 ayda 1 - yapılan toplantılarda projenin yeni sürüm gözden geçirme ve değerlendirme toplantıları yapılmaktadır. Bu toplantılara ilgili ürünlerin kullanıcıları da davet edilmektedir. Sonuç olarak ülkeler toplantılara gözlemci, gözden geçiren, lider ve aktif kullanıcı olarak katılım sağlarlar. Ürünler için yılda 1 kez olmak üzere yazılım geliştirme gözden geçirme ve değerlendirme toplantıları da düzenlenmektedir. 3.2 S4 Yaşam Döngüsü S4 çalışmaları için ilk zamanlarda yazılım geliştirme süreci olarak Şelale (Waterfall) modeli kullanılmaktaydı. Daha sonraları tüm çekirdek yazılımları için Sarmal (Spiral) model uygun görülmüş ve uygulanmıştır. Bir projenin yeni sürüm planı yapılırken öncelikle ClearQuest e önceki sürümler için girilmiş hatalar ve istekler gözden geçirilerek başlanır(requirements Summary List - RSL). Daha sonra hatalar ilgili yazılım geliştiricilere atanır. Yeni geliştirilecek fonksiyonaliteler için gönüllülük esasına göre yazılımcılar belirlenir ve atamalar yapılır. Kodlamalar tamamlandığında her fonksiyonalite için testler planlanır ve 1 NATO üyesi ülkelerin askeri alandaki standartlarını belirleyen bir bildirimdir.

gerçeklenir. Yazılımlardaki değişiklikler Software Change Request SCR veri tabanında tutulmaktadır. Son olarak yazılımla ilgili hata raporları (bug report), test raporları (test report) ve durum raporları (status report) yayınlanır. Ürünlerin her yeni sürümü önceki 2 sürüm için geriye dönük uyumluluğu destekleyecek şekilde geliştirilmektedir. Geliştiriciler için S4 ADA Kodlama Standardı, S4 Ürün Geliştirme Standartları vb. referans dokümanlar bulunmaktadır. [6]. 3.3 Konfigürasyon Yönetimi S4 ürünleri geliştirilirken hafızanın sınırlı olduğu sistemlerde yaşanan sıkıntılar göz önünde bulundurularak dinamik bellek kullanımına izin verilmez. Bunun yerine nesneler, diziler, listeler ve benzeri veri yapılarının boyutları derleme zamanında yapılandırma dosyaları kullanılarak belirlenir. Çekirdek yazılımları katmanlarının kendine ait bir yapılandırma dosyası bulunmaktadır. Bu yapılandırma dosyalarında ilgili katmanda kullanılan veri tipleri ve bu verilerin boyutları bulunmaktadır. İlgili katman için kullanılacak kaynak önceden belirlenmiş olur. S4 çekirdek yazılımlarını kullanacak projelerin ihtiyaçlarına göre bu yapılandırma dosyaları düzenlenmeli ve çekirdek yazılımlar bu ayarlara göre derlenmelidir. Uyumlu olmayan yapılandırma dosyası verileri çalışma zamanında programın hata vermesine neden olacağı için ayarlamaların dikkatli bir şekilde yapılması gerekmektedir. Kaynak problemi olmayan projeler için çekirdek yazılımları yapılandırma dosyaları en geniş verilerle ya da varsayılan değerlerle derlenerek kullanılabilmektedir. 3.4 Yazılım Testleri Bir ürünün yeni sürümü için yazılım geliştirme çalışmaları tamamlandıktan sonra yeni sürümün yayınlanması öncesi ürün için yazılım testleri yapılmaktadır. S4 ürünleri için hazırlanmış otomatik test altyapısı (Autotest) hızlı ve esnek bir test yöntemi olup yazılımların işlevselliği, hesaplama sonuçlarının uygunluğu ve hataların uygun bir şekilde ele alınıp alınmadığı gibi konuları test eder. Autotest yazılımı çalışırken girdi olarak test betikleri (test scripts) ile diğer girdi dokümanlarını (metro raporu vb.) alır. Test yazılımı test sonuçlarını rapor şekilde çıktı olarak verir ve yazılımın önceki sürümünün ilgili test adımı sonuçlarıyla karşılaştırır. Bu karşılaştırma sonuçları da test yazılımının ürettiği çıktılar arasında yer alır. Autotest yazılımının kullanımı dışında yazılımın ürettiği sonuçların geçerli görülen başka yazılımlarla karşılaştırılması yöntemi de yazılım testi kapsamında kullanılmaktadır. Böylece yazılmış algoritmaların geçerlilikleri daha detaylı bir şekilde test edilmiş olmaktadır. 3.5 Kalite Yönetimi S4 ürünleri geliştirmesi sırasında program yönetimi, proje yönetimi, mühendislik alanlarında kalite adımları takip edilmektedir. Her adım kendi içinde bir kalite yöntemi barındırmaktadır. Genel olarak baktığımızda S4 ürünleri için aşağıdaki konuların takibi kalite açısından önem kazanmaktadır.

Program Yönetimi: Koordinasyon, Bakım Proje Yönetimi: Proje Planlama, Projenin izlenmesi ve Kontrolü, Risk Yönetimi, Proje güvenliğinin izlenmesi, Ürün Değerlendirme Mühendislik Alanı: Gereksinim Yönetimi, Teknoloji geliştirme, Yazılım geliştirme, Konfigürasyon Yönetimi Son zamanlarda S4 Kalite Yönetimine ISA (Independent Software/Safety Auditor) rolü eklenmiştir. ISA rolü proje yönetimi seviyesinin üstünde yer almaktadır. ISA nın temel görevi ürünlerin yayınlanacak sürümlerinin denetimini yapmaktır. Yeni sürümün kodlama standartlarına uyumluluğu kontrol edilir. Performans ve güvenlik kriterleri değerlendirilir ve güvenlik standartlarına uygunluk kontrol edilir. Her ürün için çıkan dokümantasyonlar incelenerek uygunlukları değerlendirilir. Bu kontroller sonrasında her ürün sürümü için değerlendirme raporu ISA tarafından yayınlanır. Sonuç olarak ISA rolündeki temsilciler yazılım geliştirme ekipleriyle koordine olarak ürünlerin kalitesini denetlerler. 3.6 Eğitimler S4 projeleri ve ürünleri için ilgili ürünlerin kullanıcılarına belli aralıklarla toplantılar ve eğitimler düzenlenmektedir. Bu eğitimler ilgili ürünlerin proje lideri tarafından organize edilerek ürünlerle ilgili farkındalığı arttırmak, eğitimler sırasında bilgi paylaşımını sağlamak ve ürünlerin kullanımının arttırılmasını sağlamak amacı ile yapılmaktadır. Böylece yazılımların yanlış kullanımının önüne de geçilmiş olunacaktır. Eğitimler için planlama proje liderleri tarafından yapılarak S4 kullanıcılarına mail yolu ile bilgilendirme yapılır. Her ülkeden bu eğitimlere katılacak temsilciler kayıt formu doldurarak bilgilendirme yaparlar. Eğitimler sırasında teorik bilgilendirmenin yanı sıra bir yazılımın daha net anlaşılmasına önemli rol oynayan pratik eğitim de yapılmaktadır. İlgili çekirdek yazılımı kullanan örnek ürünler üzerinden yazılımların kullanımı daha net anlaşılacağı için pratik eğitimlere özellikle önem verilmektedir. 4 Alınan Dersler Şimdiye kadar S4 programının nasıl bir süreçte ilerlediğini anlatmaya çalıştık. Bunun gibi farklı kullanıcılı ve birden fazla ülkenin, dağıtık ekiplerin bir araya gelerek geliştirdiği projelerde nelere dikkat edilmesi gerektiğine dair birçok noktaya değinmiş olduk. Şirketlerde birden çok ekibin (şirket içi farklı ekiplerin ya da diğer firmaların ekipleriyle alt yükleniciler vb.-) bir araya gelmesiyle yapılan projeler olduğu için bu projelerin her aşamasına katkı sağlayacak birçok şeyden bahsedebiliriz. Projelerin geliştirmesi sırasında ekiplerin ortak paydada buluşabilmesi için toplantılar yapılması ve toplantılarda gereksinimlerin gözden geçirilmesi, kullanılacak teknolojilerin gözden geçirilmesi ve hangi teknolojilerin kullanılacağına karar verilmesi bunların kayıt altına alınıp takibinin düzenli olarak yapılması büyük önem arz etmektedir. Projenin farklı katmanları ile ilgili sorumluluk

atamasının yapılması hem geliştiricilerin projeye daha iyi adapte olmalarını hem de projenin birçok açıdan takip edildiğini garantileyecektir. Yine ortak bir çatıda buluşmak adına projeler için her ekibin uyacağı standartlar belirlenmelidir. Örneğin S4 projelerinde yazılım ekiplerinin bir kodlama standartları ve ürün geliştirme standartları bulunmaktadır. Bu standartlara uygun olarak geliştirilen yazılımlar daha sonra bağımsız kalite denetçileri tarafından gözden geçirilir. Her yeni sürüm için gerçeklenen fonksiyonların geriye dönük uygunluklarının (Backward Compatibility) sağlanması farklı ürünlerin farklı sürümlerle çalışabilmesini sağlayacaktır. Bu durum da ilgili yazılımı servis şeklinde kullanan diğer yazılımların her yeni gelen sürüm ile kendini güncellemek zorunda kalmaması anlamına gelecektir. Ayrıca yazılımların çalışacakları platformlara ve kaynaklara uygun olarak üretilmesi diğer bir deyişle Güvenli bir yazılım olması gerekmektedir. S4 ürünlerinin çalışacakları örnek platformlar kullanıcılar tarafından belirlenip bu platformlarda çalıştıkları garantilendikten sonra sürümler çıkarılmaktadır. Bu durumu ele almak için kullanıcıların kullandıkları derleyiciler de sürüm çıkarılmadan önce S4 ürünleri için denenmektedir. Projelerin yaşam döngüsünün son adımında test aşaması bulunmaktadır. S4 ürünleri için Autotest uygulaması her sürüm de yeni özellikleri de test edecek şekilde güncellenerek kullanılmaktadır. Ayrıca her sürüm testinde çıkan sonuçlar bir önceki sürümde çıkan sonuçlarla karşılaştırılmaktadır. Böylece Autotest uygulaması güvenilir, otomatik ve hızlı bir test mekanizması işletilmesine yardımcı olmaktadır. Bir projenin yaşam döngüsünün en önemli adımlarından biri de dokümantasyon aşamasıdır. S4 projelerinde dokümantasyon büyük önem arz etmektedir. Her ne kadar bilgilerin bir kısmı ekiplerin bir araya gelmesiyle yapılan toplantılarla paylaşılıyor olsa da ürünlerle ile ilgili detaylı bilgiler ürünlerin dokümantasyonu sayesinde paylaşılmaktadır. Bunların yanı sıra projenin her aşamasında yapılan işlerin kaliteli yürütülmesi için kalite sorumluları atanmalıdır. Bir projenin kaliteli olabilmesi için kalite sorumlularının projenin başlangıç aşamasında tamamlanma aşamasına kadar geçilen bütün süreçte aktif olarak görev yapmaları gerekmektedir. S4 programının en çok önem verdiği konulardan biri de bu kalite anlayışıdır. Farklı ülkelerin bir araya gelerek ortak olarak geliştirdikleri projelerde projenin geliştirme süreci doğru tanımlandığında kaliteli, güvenli, doğruluk ve geçerlilik açısından test edilmiş/denenmiş ürünler üretilmektedir. Fakat tüm bu avantajların yanında farklı ülkelerle bir araya gelerek geliştirilen projelerde dezavantajlar da bulunmaktadır. Bu tarz projelerde bilgi aktarımının öneminden birçok kere bahsetmiştik. Fakat bilgi aktarımının zorunluluğu birçok açıdan sorun yaratabilir. Örneğin projelerin gizliliği ülkelerin bir araya gelmesini zorunlu kılmaktadır. Ülkelerin temsilcilerinin planlanan toplantılara katılımlarının zor olması, iş takvimlerinin bu programlara uymaması gibi konular sıkıntı yaratmaktadır. Ayrıca farklı ülkelerin projelerden farklı beklentilerinin olması ve bu beklentilerin planlanamaması /geliştirilememesi diğer bir zorluktur. Bazen bir ülkenin bir ürün için isteği uzun yıllar karşılanamayabilmektedir. Ülkelerin projeler için yeterince iş gücü ayıramamaları ürünlerin gelişimini olumsuz yönde etkileyecektir. S4 projelerinde de yaşanan sıkıntılardan biri de bu kaynak ve zaman problemidir. Özellikle bu gibi

gönüllülük esasına dayanarak ilerleyen projelerde ülkelerin yeterince katkıda bulunmaları ve aktif rol oynayarak alan bilgisine detay seviyesinde sahip olmaları birçok açıdan yararlı olacaktır. Konfigürasyon çeşitliliğinin yarattığı sıkıntılar da dezavantaj oluşturmaktadır. Farklı ülkeler için farklı konfigürasyonlarla geliştirilen projelerin esneklik sağladığı bir gerçektir. Fakat bu esneklik yapılandırma ayarlarının takibini, geliştirme ve test çalışmalarını zorlaştırarak ülkelere ek maliyet getirmektedir. 5 Sonuç S4 projesi NATO üyesi ülkelerin bir araya gelerek gönüllülük esasına dayanarak geliştirilen, balistik hesaplama başta olmak üzere Ateş İdare projelerinde kullanılabilecek birçok özelliği barındıran çekirdek yazılımlar grubudur. S4 projesi ile bir projenin geliştirilmesi aşamasında göz önüne alınması gereken birçok konu ele alınmıştır. Yapılan toplantılar, eğitimler, proje yönetim süreçleri, konfigürasyon yönetimi, test mekanizmaları, dokümantasyon, kalite yönetimi ve bunun gibi bir çok konunun önemine değindik. Ülkelerin projelere olan katkıları projelerin ilerlemesi açısından önemli bir rol oynamaktadır. Bunun gibi bu projede öğrenilenlerin yanında kaynak zaman (iş gücü) problemleri, projenin yavaş ilerlemesi gibi dezavantajlardan da bahsettik. Şirketlerde, yukarıda anlatılan çalışmaların projelere katkı sağlayacağı öngörüsünün uygulamaya konulması kaliteli bir proje geliştirme süresinin yaşanması açısından önem arz etmektedir. KAYNAKLAR [1] André J. Sowa, NATO Sharable Software Developing Into True Suite Supporting National Operation, Fire Control Systems, 1-8, Eylül 2008. [2] http://en.wikipedia.org/wiki/sg2_shareable_(fire_control)_software_suite_(s4) [3] Helmut Schmidt Universität, Overview of the NATO Army Armaments Group (NAAG) AC/225 Land Capabilities Group 3 SG/2 Sharable Software Suite (S4), Almanya, Eylül 2006 [4] Birger Rhe Hansen, Sevsay Aytar Ortaç, André J. Sowa, NATO Testing In Turkey Shows Benefit Of Meteorological Forecast Data To Indirect Fire Support, 1-8, Eylül 2008. [5] www.aop-37.org [6] John Miller NATO Armaments Ballistic Kernel User Training - NABK Contributors - NABK Coding Standard (NCS), Almanya, Eylül 2006 [7] John Miller, NATO Armaments Support Services User Training Autotest, Almanya, Eylül 2006 [8] D. Schultz. Standard for the Software Life-cycle Process, ACM SIGSOFT Software Engineering Notes, 10(3):62 62, 1985. [9] I. Sommerville. Software Process Models. ACM Computing Surveys (CSUR), 28(1):269 271, 1996. [10] Hsiang-Jui Kung, Quantitative Method to Determine Software Maintenance Life Cycle, 20th IEEE International Conference on Software Maintenance (ICSM 04), 2004

[11] Daisuke Horie, Toshio Kasahara, Yuichi Goto, and Jingde Cheng, A New Model of Software Life Cycle Processes for Consistent Design, Development, Management, and Maintenance of Secure Information Systems, Eigth IEEE/ACIS International Conference on Computer and Information Science, 2009