Measuring and predicting software requirements volatility for large-scale safety-critical avionics projects
Büyük ölçekli emniyet kritik havacılık elektroniği projesinde yazılım gereksinimi değişkenliği ölçümü ve tahmini
- Tez No: 864658
- Danışmanlar: DR. ÖĞR. ÜYESİ AYŞE TOSUN KÜHN
- Tez Türü: Yüksek Lisans
- Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
- Anahtar Kelimeler: Belirtilmemiş.
- Yıl: 2024
- Dil: İngilizce
- Üniversite: İstanbul Teknik Üniversitesi
- Enstitü: Lisansüstü Eğitim Enstitüsü
- Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
- Bilim Dalı: Bilgisayar Mühendisliği Bilim Dalı
- Sayfa Sayısı: 67
Özet
Yakın tarihlerde yazılım mühendisliği alanında önemli ilerlemeler gerçekleşmiş olmasına rağmen, büyük yazılım projelerindeki yazılım gereksinimleri yazılım geliştirme yaşam döngüsü boyunca birçok defa değişime maruz kalmaktadır. Projeye yeni bir gereksinim eklenmesi, mevcut bir gereksinimin değiştirilmesi ya da mevcut bir gereksinimin yazılım gereksinim dökümanından silinmesi gereksinim değişkenliği olarak tanımlanır. Devamlı değişen gereksinimler, proje geliştirme süreçleri açısından birçok kritik risk faktörü oluşmasına sebep olur. Gereksinim değişkenliği sebebiyle oluşan ekstra yazılım geliştirme, test ve doğrulama faaliyetleri projelerin tahmin edilen bütçeleri aşmasına, proje takviminin gecikmesine veya proje sonunda ortaya çıkacak ürünün kalitesinin düşmesine neden olabilir. En kötü durumda ise yazılım projeleri tamamlanmadan yarım bırakılabilir. Literatürde gereksinim değişkenliği tahmini yapan çalışmalar ve endüstride gereksinim değişkenliğini ölçmeye çalışan proje liderleri farklı gereksinim değişkenliği ölçütlerini kullanmışlardır. Literatürde gereksinim değişim sayısı, projenin gereksinim istikrar endeksi, değişen gereksinimlerin diğer gereksinimlerin güncellenmesine etkisi, gereksinim değişikliğinin proje bütçesine olan etkileri, gereksinim değişikliğinin proje takvimine etkisi ölçüt olarak gereksinim değişkenliğini ölçmek amacıyla kullanılmıştır. Proje liderleri ise bu ölçütlerin yanında kullanım durumu değişme sayısı, bir değişim isteği kapsamında güncellenmiş toplam gereksinim sayısı, gerçeklenen gereksinim sayısının toplam gereksinim sayısına oranı ve gereksinim değişikliği sebebiyle gereken ekstra proje bütçesi ölçütlerini de gereksinim değişkenliğini ölçmek amacıyla kullanmışlardır. Bu tez çalışmasının amacı ASELSAN'a ait bir emniyet-kritik havacılık elektroniği projesinde metinsel ölçütleri, proje karakteristiklerini ve gereksinimler arası ilişkileri kullanarak her bir yazılım gereksinimi için oluşturulmuş değişim isteği sayısını tahmin etmektir. Toplamda üç yazılım sürümünden 20,000'in üzerinde yazılım gereksinimi veri kümesine dahil edilmiştir. Girdi ölçütleri ve makine öğrenmesi metotları kombine edilerek 28 öngörücü model oluşturulmuştur. Birinci araştırma sorusu bu öngörücü modellerin gereksinim değişkenliğini hangi ölçüde tahmin edebildiği, en başarılı girdi ölçütü kombinasyonun hangisi olduğu, en başarılı makine öğrenmesi metodunun hangisi olduğudur. İkinci araştırma sorusu ise öngörücü modellerin çok değişken gereksinimleri tahmin etmede başarılı olup olmadığıdır. Bu öngörücü modellerin pratikteki amacı çok değişken gereksinimleri yazılım geliştirme süreçlerinin erken aşamalarında tahmin edip gerekli önlemleri alarak proje risklerini azaltmaktır. Örneğin yazılım gereksinim dökümanı tamamlanmadan önce bu modelleri kullanarak olası çok değişken gereksinimler bulunup, bu gereksinimlerin tecrübeli kişiler tarafından gözden geçirilmesi sağlanabilir. Bu çalışmada gereksinim değişkenliği ölçütü her bir yazılım gereksinimi için oluşturulmuş değişim isteği sayısıdır. Yazılım gereksinim dökümanı gözden geçirilip tamamlandıktan sonra ihtiyaç olan her bir değişiklik için değişiklik isteği oluşturulur ve yazılım geliştirme ekibi bu değişiklik isteği kapsamında yazılım gereksinimlerini ekler ya da günceller. Bu sebeple her bir yazılım gereksinimi için oluşturulmuş değişim isteği sayısı aynı zamanda her bir yazılım gereksinimin yazılım gereksinim dökümanı tamamlandıktan sonra kaç defa değiştiğini ifade eder. Öngörücü modeller için girdi olarak kullanılan metinsel ölçütler literatürde kullanılan iki farklı programdan derlenerek üretilmiştir. İlk olarak NASA'nın ARM gereksinim çözümleyici programının kullandığı bazı ölçütler bu tezde kullanılmıştır. Bu programın kullandığı ölçütler literatürde daha önceden hatalı modülleri bulmak amacıyla defalarca kullanıldığından dolayı tercih edilmiştir. İkinci olarak ise REUSE firması tarafından üretilen RQA programının kalite ölçütleri kullanılmıştır. Bu programın gereksinimlerin kalitesini ölçme konusunda güncel programlara göre daha başarılı olduğunun iddia edilmesi bu ölçütleri seçmemizde etkili olmuştur. Bir diğer kullanılan ölçüt grubu ise projeye özel ölçütlerdir. Bu tez kapsamında emniyet kritik havacılık elektroniği projelerine ait özellikleri de ölçüt olarak kullanmak istedik, bu sebeple proje özelliklerine tek tek yoğunlaşarak gereksinim değişkenliğini etkileyebileceğini düşündüklerimizi bu ölçüt grubuna ekledik. Son olarak ağ merkezilik ölçütleri kullanılmıştır. Benzer bir çalışmada bu ölçütler kullanıldığı için biz de gereksinim değişkenliği tahmini için bu ölçütleri kullanmak istedik. Bu ölçütleri kullanan çalışma gereksinim ağını dilsel benzerliklere göre oluşturuyordu, fakat biz yazılım gereksinimlerinin sistem gereksinimleriyle olan ilişkilerine göre bu ağı oluşturduk. İlk gözlemlerimizde, değişiklik istekleri notlarını inceledik ve bir değişiklik isteği kapsamında güncellenen gereksinimlerin aynı sistem gereksinimlerinden türetilmiş olmaya yatkın olduğunu fark ettik. Bu sebeple yazılım ve sistem gereksinimi ilişkilerine göre ağ merkezilik ölçütlerini oluşturduk ve bunları gereksinim değişkenliği tahmininde kullandık. Bu tez çalışmasında, baz alınan çalışmalarda kullanılan dört farklı makine öğrenmesi kullanıldı: en yakın k-komşu regresyon algoritması, doğrusal bağıntı, rastgele orman regresyon methodu ve destek vektör regresyonu. Eğitim setini ve test setini ayırmak için 10 kat çapraz geçerleme methodu kullanıldı. Bu tez çalışmasında makine öğrenmesi yöntemlerini eğitmek amacıyla WEKA programı kullanıldı. Öngörücü model tahminleri MATLAB programı ile işlenerek araştırma soruları için başarım ölçütleri hesaplandı. Birinci araştırma sorusu için, öngörücü modellerin gereksinim değişkenliğini hangi ölçüde tahmin edebildiğini ölçmek amacıyla çeşitli performans ölçütleri kullanıldı: bağıl ortalama hata (MMRE), bağıl ortanca hata (MdMRE), Pred(0.5) ve Pred(0.25). Bu ölçütler benzer bir çalışmada da gereksinim değişkenliği tahmin modellerinin performansını ölçmek için kullanılmıştır. İkinci araştırma sorusu öngörücü modellerin çok değişken gereksinimleri tahmin etme başarısı ile ilgilidir. Öngörücü modellerin bu açıdan değerlendirebilmesi için öncelikle çok değişken gereksinim tanımının nasıl yapılacağı ve model başarısının nasıl ölçüleceği belirlenmelidir. Bu konuda literatürde daha önceden kullanılmış bir yöntemden ilham alarak bu çalışmaya uyarladık. İkinci araştırma sorusu için duyarlılık, doğruluk, yanlış alarm oranı performans ölçütleri kullanıldı. Duyarlılık ölçütü öngörücü modellerin çok değişken gereksinimleri bulmadaki başarısını gösterir, bu sebeple ikinci araştırma sorusu için en önemli ölçüt budur. Doğruluk ölçütü bütün gereksinimler üzerindeki tahmin başarısını gösterir. Yanlış alarm oranı ise çok değişken olmayıp çok değişken olarak işaretlenen gereksinimler yüzünden boşa harcanan emeğin ölçütüdür. Bu tez çalışmasında farklı girdi ölçütleri ve makine öğrenmesi metotları kombinasyonuyla oluşturulan 28 farklı öngörücü model için sonuçlar sunuldu. Birinci araştırma sorusu sonuçları incelendiğinde en iyi tahmin sonuçlarının gereksinim metinsel ölçütleri, proje özel ölçütleri ve ağ merkezilik ölçütleri beraber kullanıldığında ve en yakın k-komşu regresyon algoritması ile model eğitildiğinde elde edildiği görüldü (MMRE=0.366, MdMRE=0, Pred(0.25)=0.57, Pred(0.5)=0.681). Ayrıca sonuçlar daha önceden yine gereksinim değişim sayısını tahmin eden bir çalışmayla kıyaslandı. Diğer çalışma sadece doğrusal bağıntı makine öğrenmesini kullandığı için sadece bu kulvarda kıyaslama yapıldığında bizim sonuçlarımızın diğer çalışmaya yakın sonuçlar elde ettiği görüldü. Fakat diğer makine öğrenmesi kullanan öngörücü model sonuçları da dahil edildiğinde bizim modellerimizin tahmin sonuçlarının çok daha iyi olduğu gözlemlendi. İkinci araştırma sorusu için öncelikle çok değişken gereksinimlerin nasıl işaretleneceği konusunda çalışıldı. Bu proje kapsamında yazılım gereksinim dökümanını gözden geçiren kişilerin yaklaşık yüzde 40'nın tecrübeli olduğu görüldü. Yine bu proje kapsamında tüm değişim isteklerinin yüzde 80'inin tüm gereksinimlerin yüzde 38.6'sı için oluşturulduğu görüldü. Bu sebeple tüm değişim isteklerinin yüzde 80'ine sahip olan gereksinimler çok değişken olarak tanımlandı. İkinci araştırma sorusu kapsamında da tüm girdi ölçütleri beraber kullanıldığında ve en yakın k-komşu regresyon algoritması ile eğitim seti eğitildiğinde en iyi sonuçların elde edildiği görüldü. Toplamda değişiklik isteklerinin yüzde 80'ine maruz kalmış yazılım gereksinimlerinin yüzde 63.2 duyarlılık başarısıyla doğru tahmin edildiği görüldü. Ayrıca doğruluk skoru 0.716 ve yanlış alarm oranı 0.232 olarak ölçüldü. Sonuç olarak bu tez çalışmasında gereksinim metinsel ölçütlerini, proje karakteristiklerini ve gereksinimler arası ilişkileri kullanarak ASELSAN'a ait bir emniyet kritik havacılık elektroniği projesinde her bir yazılım gereksinimi için oluşturulmuş değişim isteği sayısı tahmini yapıldı. Üç yazılım sürümünden toplanan 22,771 yazılım gereksinimi ve 28 farklı öngörücü model kullanılarak değişim isteği sayısı tahminini yapmada en başarılı girdi ölçütü kombinasyonları ve makine öğrenmesi metotları bulundu. En başarılı sonuçlar gereksinim metinsel ölçütleri, proje özel ölçütleri ve ağ merkezilik ölçütleri beraber kullanıldığında ve en yakın k-komşu regresyon algoritması ile model eğitildiğinde elde edildi. Bu öngörücü model ile yüzde 36.6 bağıl ortalama hata (MMRE) ile herbir yazılım gereksinimi için oluşturulmuş değişim sayısının tahmin edildiği gözlemlendi. Ayrıca aynı model, toplamda değişiklik isteklerinin yüzde 80'ine maruz kalmış yazılım gereksinimlerini yüzde 63.2 başarıyla doğru tahmin edebiliyor. Bu sonuçlar ilerleyen zamanlarda gereksinim yönetim araçlarında güncellemeler yaparak gereksinim değişkenliğinin projenin erken aşamalarında tahmin edilebilmesi ve buna bağlı proje risklerinin azaltılması konusunda umut verici. Literatürde bu alanda deneysel çalışma yapan çok fazla yayın olmaması sebebiyle en başarılı öngörücü modellerin belirlenmesi için bu alanda deneysel yeni çalışmaların yapılması gerektiğini düşünmekteyiz.
Özet (Çeviri)
During the software development life cycle, software requirements are subjected to many changes despite the recent developments in software engineering. These modifications, additions, or removals are referred to as requirements volatility. Constantly changing requirements affect cost of the project, the project schedule and the quality of the product. In the worst case projects fail or partially completed due to requirements volatility. Various requirement volatility measures have been used in previous requirement volatility prediction studies and industrial volatility measurement practices. A very big safety-critical avionics software project with thousands of software requirements from ASELSAN company is employed to forecast the number of changes for each software requirement as requirements volatility in this thesis. To explain requirements volatility, we use a complete collection of the following metrics: requirement textual metrics, project-specific characteristics, and interdependencies between software requirements. Requirement textual metrics in this thesis are chosen from two requirements quality analyzer tools that are used in the literature. Project-specific metrics are created by focusing on safety-critical avionics project features one by one and including the ones that would give information on requirements volatility. Traceability links between system and software requirements are used to create a network graph, and network centrality metrics are created for software requirements with regard to this graph. Requirement volatility prediction is done by employing several machine learning techniques which are utilized by base studies: k-nearest neighbor regression algorithm, linear regression, random forest regression and support vector regression. Combining input metric groups with machine learning algorithms, 28 predictive models are created in this study. This research evaluates the performance of proposed models in predicting software requirement change proneness, outperforming input metric combinations, outperforming machine learning techniques, and the success of proposed models in labeling highly volatile software requirements. The model that combines requirement textual measurements, avionics project features, and network centrality metrics with a k-nearest neighbor machine learner produces the best prediction results (MMRE=0.366). Furthermore, the best predictive model properly labels 63.2 percent of highly volatile software requirements that are subject to 80 percent of total software requirement changes. The findings of our research are positive in terms of developing automated requirement change analyzer tools to minimize requirement volatility concerns in early development phases.
Benzer Tezler
- Predicting software size from requirements written in natural language: A generative AI approach
Doğal dilde yazılmış gereksinimlerden yazılım boyutunu tahmin etme: Üretken yapay zekâ tabanlı bir yaklaşım
DHIA EDDINE KENNOUCHE
Yüksek Lisans
İngilizce
2024
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİzmir Yüksek Teknoloji EnstitüsüBilgisayar Mühendisliği Ana Bilim Dalı
PROF. DR. ONUR DEMİRÖRS
- Kurumsal kaynakların planlaması (ERP) ve çağdaş üretim-yönetim sistemleri ile ilişkiler
Enterprise resources planning (ERP) and relationships among ERP and other computer aided systems and management information system
BURÇİN ÇARDAK
Yüksek Lisans
Türkçe
2000
Endüstri ve Endüstri Mühendisliğiİstanbul Teknik ÜniversitesiDOÇ.DR. ALPASLAN FIĞLALI
DOÇ.DR. MEHMET TANYAŞ
DOÇ.DR. SEMRA BİRGÜN BARLA
- Hata raportörünün itibarının hesaplanması ve itibarın hata çözüm süresine etkisi
Measuring bug reporter's reputation and its effect on bug resolution time
MUHAMMED KADİR YÜCEL
Yüksek Lisans
Türkçe
2022
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DR. ÖĞR. ÜYESİ AYŞE TOSUN KÜHN
- Üretim kaynakları planlaması
Başlık çevirisi yok
TOLGA EREN
Yüksek Lisans
Türkçe
1997
Endüstri ve Endüstri Mühendisliğiİstanbul Teknik ÜniversitesiEndüstri Mühendisliği Ana Bilim Dalı
DOÇ. DR. MEHMET TANYAŞ
- Model validation and performance analyses for mems design
Mikro-elektro-mekanik sistem tasarımında model doğrulama ve performans analizleri
OZAN ANAÇ
Yüksek Lisans
İngilizce
2006
Bilim ve TeknolojiKoç ÜniversitesiMakine Mühendisliği Ana Bilim Dalı
YRD. DOÇ. İPEK BAŞDOĞAN