Тау-кен бағдарламалық қамтамасыз ету қоймасы - Mining software repositories

The тау-кен бағдарламалық жасақтамасының қоймалары[дәйексөз қажет ] (MSR) өріс [1] сияқты бағдарламалық қамтамасыз ету репозиторийлерінде бар бай деректерді талдайды нұсқаны басқару репозитарийлер, пошта тізімі мұрағаттар, қателерді бақылау жүйелері, шығарылымды қадағалау жүйелері туралы және қызықты ақпаратты табу үшін және т.б. бағдарламалық жасақтама жүйелер, жобалар және бағдарламалық жасақтама.

Анықтама

Герциг пен Целлер «тау-кен бағдарламалық жасақтамасының архивтерін» бағдарламалық жасақтама қоймаларынан мәліметтер алу арқылы «көптеген алғашқы дәлелдемелер алу» процесі ретінде анықтайды. Бұдан әрі олар «деректер көздерін» бастапқы код, өнімге қажеттілік туындылары немесе мұрағат архивтері сияқты өнімге негізделген артефактілер ретінде анықтайды және бұл көздер объективті емес, бірақ шулы және толық емес деп мәлімдейді.[2]

Техника

Бірлескен өзгерістерді талдау

Бірлескен өзгертулерді талдау идеясы ақауларды жою немесе жаңа мүмкіндіктерді енгізу үшін әзірлеушілер код нысандарын (мысалы, файлдарды) жиі бірге өзгертеді. Кәсіпорындар арасындағы бұл муфталар көбінесе кодта немесе басқа құжаттарда айқын көрсетілмейді. Әсіресе, жобада жаңа әзірлеушілер қандай нысандарды бірге өзгерту керек екенін білмейді. Бірлескен өзгертулерді талдау жобаның нұсқасын басқару жүйесінен муфтаны шығаруға бағытталған. Міндеттер мен өзгерістердің уақыты бойынша біз қандай құрылымдардың жиі бірге өзгеретінін анықтай аламыз. Содан кейін бұл ақпаратты әзірлеушілерге келесі өзгерістерге қолдау көрсету үшін біреуін өзгерту туралы ұсынуға болады.[3]

Талдау

Нұсқаларды басқару жүйелерінде көптеген әр түрлі тапсырмалар бар, мысалы. қателерді түзету бойынша міндеттемелер, жаңа мүмкіндіктер, құжаттамалық құжаттар және т.с.с. өткен мәліметтер негізінде мәліметтер алу үшін шешім қабылдау үшін берілген критерийге сәйкес келетін ішкі топтамаларды таңдау қажет. Бұл хабарлама негізінде жасалуы мүмкін,[4] немесе міндеттеме мазмұнына негізделген.[5]

Құжаттарды қалыптастыру

Тау-кен бағдарламалық қамтамасыз ету қоймасынан пайдалы құжаттама жасауға болады. Мысалы, Jadeite пайдалану статистикасын есептейді және жаңадан келгендерге жиі қолданылатын сыныптарды тез анықтауға көмектеседі.[6] Ішкі сынып директивалары сияқты құрылымдық құжаттаманың белгілі бір түрлеріне назар аударған кезде, жетілдірілген техникалар толық сөйлемдерді синтездей алады.[7]

Деректер мен құралдар

Негізгі тау-кен деректері нұсқаны басқару жүйелерінен алынған. Ертедегі тау-кен тәжірибелері CVS қоймаларында жүргізілді.[8] Содан кейін зерттеушілер SVN репозиторийлерін жан-жақты талдады. [9] Қазір Git репозиторийлері басым[10], бірақ бұтақтар мен шанышқылармен жұмыс істеуге ерекше назар аудару керек.[11]

Құралдар:

  • ModelMine бұл ашық бастапқы репозитарийді өндіруге арналған веб-қосымша
  • LibVCS4j Java кітапханасы - бұл қолданыстағы құралдарға әр түрлі нұсқаларды басқару жүйелері мен шығарылым трекерлеріне арналған жалпы API ұсыну арқылы бағдарламалық жасақтама жүйелерінің эволюциясын талдауға мүмкіндік береді.
  • Пирриллер бұл Git репозиторийлерін талдауға арналған Python Framework.
  • Репозитор бұл C # тілінде жазылған Git репозиторийлерін талдау механизмі.
  • Келе жатыр - бұл өткен уақыттағы үлгілерді іздеуге арналған Java құралы.[12]
  • Анықтама бастапқы код репозиторийі журналынан ақпаратты шығарып алады және оны мәліметтер базасында сақтайды.

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ Тау-кен бағдарламалық қамтамасыз ету репозитарийлері бойынша жұмыс конференциясы, Басты бағдарламалық жасақтама аймақтағы конференция
  2. ^ K. S. Herzig және A. Zeller, «Өз дәлелдеріңізді өндіру», Making Software, 517–529 б., Себастополь, Калифорния, АҚШ: О'Рейли, 2011.
  3. ^ Өт, Х .; Хажек, К .; Джазайери, М. (1998). «Өнімнің шығу тарихына негізделген логикалық муфтаны анықтау». Іс жүргізу. Бағдарламалық қамтамасыздандыруға арналған халықаралық конференция (Кат. № 98CB36272). 190–198 бб. CiteSeerX  10.1.1.199.7754. дои:10.1109 / icsm.1998.738508. ISBN  978-0-8186-8779-2.
  4. ^ Хиндль, Ибрам; Неміс, Даниэль М .; Годфри, Майкл В. Холт, Ричард С. (2009). «Техникалық қызмет көрсету санаттарына үлкен өзгерістерді автоматты түрде жіктеу». 2009 IEEE Бағдарламаны түсіну бойынша 17-ші халықаралық конференция. 30-39 бет. дои:10.1109 / ICPC.2009.5090025. ISBN  978-1-4244-3998-0.
  5. ^ Мартинес, Матиас; Дючиен, Лоренс; Монперрус, Мартин (2013). «AST талдауымен кодты өзгерту үлгілерін автоматты түрде шығару». 2013 IEEE бағдарламалық қамтамасыздандыруға арналған халықаралық конференция. 388-391 бет. arXiv:1309.3730. дои:10.1109 / ICSM.2013.54. ISBN  978-0-7695-4981-1.
  6. ^ Стилос, Джеффри; Фолринг, Эндрю; Ян, Цзычжуан; Майерс, Брэд А. (2009). «API пайдалану туралы ақпаратты қолдану арқылы API құжаттамасын жетілдіру». 2009 ж. IEEE визуалды тілдер және адам-орталықтан есептеу бойынша симпозиум (VL / HCC). 119–126 бет. дои:10.1109 / VLHCC.2009.5295283. ISBN  978-1-4244-4876-0.
  7. ^ Брух, Марсель; Мезини, Мира; Монперрус, Мартин (2010). «Құрылымды қайта қолдануды жақсарту бойынша тау-кен жұмыстарының субклассификациялау директивалары». 2010 ж. IEEE тау-кен бағдарламалық қамтамасыз ету репозитарийлері бойынша 7-ші жұмыс конференциясы (MSR 2010) (PDF). 141-150 бб. дои:10.1109 / MSR.2010.5463347. ISBN  978-1-4244-6802-7.
  8. ^ Канфора, Г .; Cerulo, L. (2005). «Тау-кен бағдарламалық жасақтамасының әсерін талдау және сұраныс репозитарийлері». IEEE 11 Халықаралық бағдарламалық қамтамасыз ету симпозиумы (METRICS'05). б. 29. дои:10.1109 / METRICS.2005.28. ISBN  978-0-7695-2371-2.
  9. ^ d'Ambros, Марко; Галл, Харальд; Ланза, Мишель; Пинцгер, Мартин (2008). «Бағдарламалық жасақтама эволюциясын түсіну үшін бағдарламалық жасақтама репозитарийлерін талдау». Бағдарламалық жасақтама эволюциясы. 37–67 бет. дои:10.1007/978-3-540-76440-3_3. ISBN  978-3-540-76439-7.
  10. ^ Каллиамваку, Эирини; Гузиос, Георгиос; Блинко, Келли; Әнші, Лейф; Неміс, Даниэль М .; Дамиан, Даниэла (2014). «GitHub өндірісінің уәделері мен қауіптері». Тау-кен бағдарламалық қамтамасыз ету репозитарийлері бойынша 11-ші жұмыс конференциясының материалдары - MSR 2014 ж. 92-101 бет. дои:10.1145/2597073.2597074. ISBN  9781450328630.
  11. ^ Биасцини, Марко; Монперрус, Мартин; Бодри, Бенуа (2014). «Орталықтандырылмаған нұсқаларды басқару жүйелеріндегі міндеттемелер тарихының топологиясын талдау туралы» (PDF). Бағдарламалық қамтамасыз ету және эволюция бойынша IEEE 2014 Халықаралық конференциясы. 261-270 бет. дои:10.1109 / ICSME.2014.48. ISBN  978-1-4799-6146-7.
  12. ^ Мартинес, Матиас; Монперрус, Мартин; Монперрус, Мартин (2019). «Келесі: Git міндеттемелерінен кен өндірісінің өзгеру үлгісін құралы». Бағдарламалық жасақтама бойынша IEEE / ACM 41-ші халықаралық конференция: Companion Processing (ICSE-Companion). 79-82 бет. arXiv:1810.08532. дои:10.1109 / ICSE-Companion.2019.00043. ISBN  978-1-7281-1764-5.