İzlenebilirlik (BT)

Gelen yazılım geliştirme , gereksinimi için izlenebilirlik olarak tanımlanır "gelişimi, şartname, dağıtım ve kullanımı yoluyla kökeni beri ihtiyacının hayatını takip yeteneği," . Bir sistemin gereksinimleri ile kaynak kodu arasındaki izlenebilirlik bağlantıları , anlama ve bakım çabalarını azaltmada yararlıdır. Ayrıca, belirtilen gereksinimlere uyulmasını ve uygulanmasını sağlamak için de gereklidir.

Bağlam

İzlenebilirlik bağlantılarının bozulmasının nedenleri

Çoğu zaman, yazılımın bakımı ve geliştirilmesi sırasında, geliştiriciler yalnızca kusurları veya hataları gidermeye odaklanır. Kaynak kodu gelişir ancak mimari, tasarım ve dokümantasyon güncellenmez. İzlenebilirlik bağlantıları, geliştiricilerin zamanı olmadığından veya bu bağlantıları güncellemeye ayıramadıklarından, geçersiz hale gelir. İzlenebilirlik bağlantılarını elde etmek daha sonra zor ve maliyetli bir görev haline gelir.

İzlenebilirlik bağlantılarının alınması

İzlenebilirlik bağlantılarının bozulmasını telafi etmek için birçok araştırmacı, "yüksek seviyeli" dokümanlar (yazılım gereksinimleri, dokümantasyon veya tasarım dokümanları) ve tasarım dokümanları arasındaki mevcut bağlantıları geri almak için bilgi erişim tekniklerini kullanmıştır . Daha fazla "düşük seviye" (kaynak kodu veya UML diyagramı ).

Bu teknikler, tüm belgeleri metin biçimine dönüştürür ve farklı düzeylerdeki yapay nesneler (örneğin, bir sınıfın kaynak kodu ve gereksinimler) arasındaki benzerliği karşılaştırır. Yüksek benzerlik oranı, bu iki yapının aynı kavramları paylaştığı ve büyük olasılıkla birbirleriyle ilişkili olduğu anlamına gelir.

İzlenebilirlik bağlantılarını elde etmek için çeşitli tekniklerin etkinliğini ölçmek için çeşitli ölçütler kullanılır. En yaygın olanları geri çağırma ve hassasiyettir . Bir ortalamaya benzeyen ve önceki iki ölçütü birleştiren F ölçüsü adı verilen bir formül de vardır .

Geri çağırma

Geri arama, mevcut tüm ilgili bağlantılarda bulunan ilgili bağlantıların sayısının oranına karşılık gelir. Algoritmanın mevcut bağlantıları iyi alıp almadığını ölçmek için kullanılır.

Hassas

Kesinlik, bulunan bağlantı seti üzerinde bulunan ilgili bağlantıların sayısının oranına karşılık gelir. Bulunan bağlantıların doğruluğunu ölçer.

F ölçüsü

F-measure hassasiyeti ve geri çağırmayı birleştirir. Şu şekilde tanımlanır:

Farklı yaklaşımlar

Bilgi erişiminin kullanımı

İzlenebilirlik bağlantılarının kurtarılması için tarihsel olarak kullanılan yöntemler, bilgi erişim tekniklerine dayanmaktadır . Bu teknikler arasında vektör modellerine veya Jensen-Shannon  (en) kullanan diğer modellere dayalı özel çözümler vardır .

Bununla birlikte, bu yöntemler, alınan verileri değerlendirmek ve filtrelemek için genellikle manuel müdahale gerektiren yaklaşık sonuçlar üretir. Çoğunlukla farklı türdeki yapay nesneler arasındaki karşılık gelen matrislerden oluşurlar. Bununla birlikte, bu matrisler, oluşturuldukları sırada ve yazılım geliştirme süreci boyunca manuel olarak düzeltilmelidir.

İyileştirmeler

Bilgi erişim yöntemleriyle üretilen sonuçların kalitesini iyileştirmek için çözümler önerilmiştir. Bunlar, kelimeden kelimeye yazışmalardan ziyade cümlelerin veya terimlerin kullanımını içerir. Aynı şekilde, izlenebilirlik bağlantılarını tanımlarken onlara daha fazla ağırlık vermek için projedeki önemli terimleri veya cümleleri çıkarmak için bir sözlük de kullanabiliriz.

İzlenebilirliğin korunması

Geliştiricinin bu izlenebilirlik bağlantılarını sürdürmesine yardımcı olmak için bazı çözümler geliştirilmiştir.

HİNDİSTAN CEVİZİ

COCONUT ("İzlenebilirliği Kullanan COde Anlama Hemşiresi" için) Eclipse geliştirme ortamı için bir eklenti olarak gelir . Geliştiricilerin tanımlayıcıları (örneğin değişken isimleri) kullanmalarına ve / veya sistem gereksinimleriyle güçlü bir uyuşmaya sahip yorumlar yazmalarına yardımcı olur.

Modele uygulanan değişiklikleri tanıma

UML modeli tarafından yönlendirilen gelişmeler durumunda, izlenebilirlik bağlantılarını otomatik olarak güncellemek için yapı diyagramında yapılan değişiklikleri analiz etmek mümkündür.

Önerilen çözüm üç aşamaya ayrılıyor:

  1. Modelde yapılan değişikliklerin yakalanması ve temel olayların oluşturulması
  2. Modelin modifikasyonu ile ilgili geliştirme faaliyetlerinin tanınması (birkaç temel değişikliğin bileşimi ile)
  3. değiştirilen öğeyle ilişkili izlenebilirlik bağlantılarının güncellemeleri
TraceM

TraceM, hiper medya sistemleri konseptlerini ve bilgi entegrasyonunu  (in) kullanan bir izlenebilirlik yönetim sistemidir . Açıkça bilinen bağlantılar sayesinde örtük izlenebilirlik bağlantılarını keşfetmenize olanak tanıyan bir çerçeve biçimini alır .

TraceM, aşağıdaki kavramlara dayanmaktadır:

  • bir Araç , bir görevi gerçekleştirmek için kullanılır (örn. EDI , sürüm yöneticisi, posta istemcisi)
  • Bir Artefakt , bir Araç tarafından üretilir
  • Bir ilişki arasında semantik ilişki olduğunu Artifacts , bölümleri Artifaktlarının veya diğer İlişkiler
  • Meta veri tanımlamak için geliştirici tarafından kullanılan eserler ve ilişkiler projesi sırasında oluşturulan

TraceM, izlenebilirlik bağlantılarının otomatik olarak oluşturulmasını destekler ve ayrıca birkaç mevcut ilişki arasında ilişki kurulmasına izin verir.

Bir dizi izlenebilirlik bağlantısında arama yapın

Diğer yaklaşımlar, bunun yerine, alınan veriler arasında bilgilerin nasıl bulunacağına odaklanır. Örneğin, bir dizi izlenebilirlik bağlantısında araştırmaya adanmış bir dil vardır. TQL (" İzlenebilirlik Sorgu Dili " için) şu türden sorguları gerçekleştirmenize olanak tanır:

Soru: Tüm gereksinimler bir test seti kapsamında mı?

set:difference(Requirement(), traceFrom(Requirement(), TestCase()))

Bir sürüm yöneticisinden bilgi çıkarma

Bazı sezgisel tabanlı yaklaşımlar , bir yazılımın farklı öğeleri arasında izlenebilirlik bağlantıları almayı / oluşturmayı mümkün kılar. Bu, geliştirme sırasında kullanılan sürüm yöneticilerini inceleyerek yapılır. Bu yaklaşım , ardışık modellerin  (in) çıkarılması yöntemlerini uygular . Bu modellerin çıkarılması, farklı dosyalar arasındaki eşzamanlı değişiklikleri (örneğin kaynak kodu ile dokümantasyon arasında) tespit etmek için sürüm yöneticisinden yapılan işlemlerde gerçekleştirilir. Aynı kayıtlar sırasında birkaç dosya çok düzenli olarak değiştirilirse, aralarında bir izlenebilirlik bağlantısına sahip olma olasılığı çok yüksektir.

Hibrit teknikler

Ortogonal bilgileri alma

Belirli izlenebilirlik bağlantı kurtarma teknikleri ek sonuçlar üretebilir. Örneğin, vektör modellerine dayalı çözümler, deneysel tekniklerden daha fazla sayıda bağlantıyı kurtarabilir, ancak çok daha düşük hassasiyete sahiptir. Bu gözleme dayanarak, belirli yöntemler, nihai sonucu iyileştirmek için farklı tekniklerin sözde "ortogonal" sonuçlarını birleştirir.

Varlık konumu

İzlenebilirlik bağlantılarının kurtarılmasından bahsetmiyorum bile, bilgi kurtarma olarak bilinen teknikler var . Bu uygulama, belirsizlik durumlarında bir karar verme sorunu olarak görülebilir.

Bu tür problemlerin çözümlerinden biri, birkaç uzman sistemin kullanılmasıdır . Kaynak kodu analizi durumunda, örneğin iki tür analizi birleştirmek mümkündür: statik ve dinamik . Statik analiz, uygulamanın kaynak kodunu doğrudan incelerken, dinamik analiz, programın yürütülmesi sırasında okumaları ( izler olarak da adlandırılır ) alır ve bu verileri analiz eder.

Trustrace

Trustace, kaynak kod ve yazılım gereksinimleri arasındaki izlenebilirlik bağlantılarını kurtarmak için bir çözümdür. Standart bilgi erişim tekniklerinden kaynaklanan izlenebilirlik bağlantılarını dinamik olarak yeniden değerlendirmek için çeşitli heterojen bilgi kaynaklarını kullanan bir tekniktir.

Trustrace, başlangıçta kaynak kod depolarında veri madenciliği yapmak için Histrace'i kullanıyor. Ardından, çıkarılan veriler sayesinde, yazılım gereksinimleri ile deponun yardımcı verileri arasında yeni izlenebilirlik bağlantıları oluşturur (örn. Commits, Bugs, vb.). Bu bağlantı kümelerine uzman adı verilir .

Uzman setleri oluşturulduktan sonra. Trustrace, geleneksel sistemlerden izlenebilirlik bağlantılarını yeniden değerlendirmek için Trumo ve DynWing'i kullanıyor. Ağırlıklar, bağlantıların her birine dinamik olarak atanır. Bu ağırlıklar, ilk bağlantılar arasındaki benzerlikler, uzmanlar tarafından sağlanan bağlantılarla karşılaştırılarak ve bu bağlantıların her bir uzman setinde görünme sıklığına göre belirlenir.

Histrace

Histrace, bir yazılım havuzundaki ( CVS / SVN ) bilgileri kullanarak bir dizi gereksinim ve kaynak kodu arasında bağlantılar oluşturmanıza olanak tanır . Bunun için Histrace, gereksinimlerin metinsel tanımlarını, taahhütlerin mesajlarını, hataların raporlarını ve sınıfları iki uzman set üretmek için kullandığı ayrı belgeler olarak kabul eder. Biri izlenebilirlik bağlantıları oluşturmak için commit mesajlarını kullanır ve ikincisi hata raporlarını kullanır.

Trumo

Trumo, bir kullanıcı güven modeline benzer: Bir web sitesinden ne kadar çok kullanıcı satın alırsa, o kadar çok kullanıcı ona güvenir.

Bu ruhla Trumo, uzman setlerinden kaynaklanan bağlantıların benzerliklerine ve temel tekniklerin sonuçlarına dayalı olarak her bir izlenebilirlik bağlantısına bir ağırlık atayacaktır. Bunu yapmak için Trumo, hem veritabanı sonuçlarında hem de uzman setlerinden birinde olmayan tüm bağlantıları atarak ilk sıralamayı gerçekleştirir. Daha sonra, farklı setler içindeki bu benzerliklere dayalı olarak her bağlantıya bir ağırlık atanır. Son olarak Trumo, DynWing tarafından belirlenen her uzmana bir ağırlık atar.

DynWing

Her uzmana atanacak ağırlığı belirlemek için, DynWing bunu bir maksimizasyon problemi şeklinde çözmeye karar verir .

Tipik olarak, her bir uzmanın ürettiği bağlantıların her birine bir miktar güveni vardır. Trumo, bu benzerliğe ve her uzmanın ağırlığına göre her bağlantının ağırlığını belirler. Her bir DynWing uzmanının ağırlığını hesaplamak, her bağlantının (Trumo tarafından belirlenir) nihai ağırlığını en üst düzeye çıkaracaktır.

Bu nedenle, Trumo ve DynWing gerçekte, Histrace'den gelen yeni bağlantılar sayesinde her bir ilk izlenebilirlik bağlantısının güvenini gözden geçirmeyi mümkün kılan birbiriyle yakından bağlantılı iki modüldür.

Mevcut sınırlamalar

Mevcut durumda, izlenebilirlik bağlantılarının kurtarılması için önerilen tüm teknikler doğruluktan yoksundur. Şu anda doğru bir hassasiyet oranıyla ve ters orantılı çok iyi bir geri çağırma oranı elde etmek zor görünüyor. Yeni bilgi kaynaklarını kullanan Trustrace gibi bazı yeni teknikler, doğruluğu ve geri çağırma oranını büyük ölçüde geliştirir. Böylece, şu anda% 40 ila% 60 geri çağırma için% 60 ila% 80 hassasiyet arasında değişen sonuçlar elde edebiliyoruz.

Notlar ve referanslar

  1. Gotel 1994 , s.  94-101
  2. Ali 2011 , s.  111-120
  3. Zou 2010 , s.  119-146
  4. Zou 2006 , s.  265-272
  5. Zou 2007 , s.  40-45
  6. Zou 2008 , s.  157-163
  7. Lucia 2011'den , s.  205-227
  8. Mader 2008 , s.  49-58
  9. Sherba 2003 , s.  32-39
  10. Østerbye 1996 , s.  129-139
  11. Maletic 2009 , s.  16-20
  12. Kagdi 2007 , s.  145-154
  13. Gethers 2011 , s.  133-142
  14. Poshyvanyk 2007 , s.  420-432
  15. Ali 2013 , s.  725-741
  16. Ali 2013 , s.  728-729
  17. Ali 2013 , s.  729
  18. Ali 2013 , s.  737

Kaynakça

(en) N. Ali , Y.-G. Gueheneuc ve G. Antoniol , "  Trustrace: Gereksinim İzlenebilirlik Bağlantılarının Doğruluğunu İyileştirmek için Yazılım Depoları Madenciliği  " , IEEE Trans. Yazılım Müh. ,Mayıs 2013, s.  725-741 ( DOI  10.1109 / TSE.2012.71 , çevrimiçi okuyun )

(en) N. Ali , Y.-G. Gueheneuc ve G. Antoniol , "  Güven Temelli Gereksinimlerin İzlenebilirliği  " , Proc. 19. IEEE Uluslararası Konf. Programı Anlama ,Haziran 2011, s.  111-120 ( DOI  10.1109 / ICPC.2011.42 , çevrimiçi okuyun )

(en) G. Antoniol , G. Canfora , G. Casazza , AD Lucia ve E. Merlo , "  Kod ve Belgeler arasındaki İzlenebilirlik Bağlantılarını Kurtarmak  " , IEEE Trans. Yazılım Müh. , cilt.  28, n o  10,Ekim 2002, s.  970-983 ( DOI  10.1109 / TSE.2002.1041053 , çevrimiçi okuyun )

(en) A. De Lucia , M. Di Penta ve R. Oliveto , "  İzlenebilirlik ve Bilgi Erişimi Yoluyla Kaynak Kodu Sözlüğünün Geliştirilmesine Yardımcı Olun  " , IEEE Trans. Yazılım Müh. ,Mart-Nisan 2011, s.  205-227 ( DOI  10.1109 / TSE.2010.89 , çevrimiçi okuyun )

(en) M. Gethers , R. Oliveto , D. Poshyvanyk ve AD Lucia , "  İzlenebilirlik Geri Kazanımını İyileştirmek İçin Ortogonal Bilgi Erişim Yöntemlerinin Entegrasyonu Üzerine  " , Proc. 27. IEEE Uluslararası Konf. Yazılım Bakımı ,Eylül 2011, s.  133-142 ( DOI  10.1109 / ICSM.2011.6080780 , çevrimiçi okuyun )

(tr) OCZ Gotel ve CW Finkelstein , "  Gereksinimlerin İzlenebilirlik Probleminin Bir Analizi  " , Proc. İlk Uluslararası Konf. Gereksinimler Müh. ,Nisan 1994, s.  94-101 ( DOI  10.1109 / ICRE.1994.292398 , çevrimiçi okuyun )

(tr) JH Hayes , A. Dekhtyar , SK Sundaram ve S. Howard , "  Analistlerin Gereksinimleri İzlemesine Yardımcı Olmak: Hedef Bir Bakış  " , Proc. 12th IEEE Uluslararası Gereksinimler Müh. Conf. ,2004, s.  249-259 ( DOI  10.1109 / RE.2004.26 , çevrimiçi okuyun )

(tr) JH Hayes , G. Antoniol ve Y.-G. Gueheneuc , "  PREREQIR: Ön Gereksinimlerin Küme Analizi Yoluyla Kurtarılması  " , Proc. 15. Çalışma Konf. Ters Müh. ,Ekim 2008, s.  165-174 ( DOI  10.1109 / WCRE.2008.36 , çevrimiçi okuyun )

(en) H. Kagdi , J. Maletic ve B. Sharif , "  İzlenebilirlik Bağlantıları için Madencilik Yazılım Depoları  " , Proc. 15. IEEE Uluslararası Konf. Programı Anlama ,Haziran 2007, s.  145-154 ( DOI  10,1109 / ICPC.2007.28 , çevrimiçi okuma )

(en) A. Marcus ve JI Maletic , "  Gizli Anlamsal İndeksleme Kullanarak Belgelerden Kaynağa-Kod İzlenebilirlik Bağlantılarını Kurtarma  " , Proc. 25. Uluslararası Konf. Yazılım Müh. ,2003, s.  125-135 ( ISBN  0-7695-1877-X , çevrimiçi okuyun )

(tr) JI Maletic ve ML Collard , "  TQL: İzlenebilirliği Destekleyen Bir Sorgu Dili  " , Proc. ICSE Workshop Yazılım Müh. ,2009, s.  16-20 ( DOI  10.1109 / TEFSE.2009.5069577 , çevrimiçi okuyun )

(en) P. Mader , O. Gotel ve I. Philippow , "  Modellere Uygulanan Geliştirme Faaliyetlerini Tanıyarak Otomatik İzlenebilirlik Bakımını Sağlama  " , Proc. 23. IEEE / ACM Uluslararası Konf. Otomatik Yazılım Müh. ,Eylül 2008, s.  49-58 ( DOI  10.1109 / ASE.2008.15 , çevrimiçi okuyun )

(tr) K. Østerbye ve İngiltere Will , “  Açık Hypermedia Sistemlerin Bayrağı Taksonomi  ” , yedinci ACM conf Bildirileri. Hypertext üzerinde ,1996, s.  129-139 ( DOI  10.1145 / 234828.234841 , çevrimiçi okuma )

(tr) D. Poshyvanyk , Y.-G. Gueheneuc , A. Marcus , G. Antoniol ve V. Rajlich , "  Yürütme Senaryolarına ve Bilgi Erişimine Dayalı Yöntemlerin Olasılık Sıralamasını Kullanan Özellik Konumu  " , IEEE Trans. Yazılım Müh. , cilt.  33, n o  6,Haziran 2007, s.  420-432 ( DOI  10.1109 / TSE.2007.1016 , çevrimiçi okuyun )

(en) SA Sherba , KM Anderson ve M. Faisal , "  İzlenebilirlik İlişkilerini Haritalandırmak İçin Bir Çerçeve  " , Yazılım Müh. 18. IEEE Uluslararası Konf. Otomatik Yazılım Mühendisliği üzerine ,2003, s.  32-39 ( DOI  10.1.1.128.1273 , çevrimiçi okuma )

(tr) X. Zou , R. Settimi ve J. Cleland-Huang , "  Dinamik Gereksinimlerin İfade Edilmesi İzleme Erişimi  " , 30. Yıllık Uluslararası Bilgisayar Yazılımı ve Uygulama Konf. (COMPSAC06) ,Eylül 2006, s.  265-272 ( DOI  10,1109 / COMPSAC.2006.66 , çevrimiçi okuma )

(tr) X. Zou , R. Settimi ve J. Cleland-Huang , "  Otomatikleştirilmiş Gereksinimlerin İzlenebilirlik Erişiminde Terime Dayalı Geliştirme Faktörleri  " , İzlenebilirlikte Büyük Zorluk 2. Uluslararası Sempozyum Bildirileri ,2007, s.  40-45

(tr) X. Zou , R. Settimi ve J. Cleland-Huang , "  Otomatik İz Geri Getirmede Proje Sözlüklerinin Kullanımının Değerlendirilmesi  " , 2008 Uluslararası Konf. Yazılım Müh. Araştırma ve Uygulama (SERP'08) ,2008, s.  157-163

(en) X. Zou , R. Settimi ve J. Cleland-Huang , "  Otomatikleştirilmiş gereksinim izleme erişimini iyileştirme: terime dayalı iyileştirme yöntemlerine ilişkin bir çalışma  " , Ampirical Software Eng. ,Nisan 2010, s.  119-146 ( DOI  10.1007 / s10664-009-9114-z , çevrimiçi okuyun )