소프트웨어 분석

Software analytics

소프트웨어 분석은 소스 코드, 정적 및 동적 특성(를 들어 소프트웨어 메트릭) 및 개발진화 관련 프로세스를 고려한 소프트웨어 시스템 영역에 고유분석입니다.소프트웨어 라이프 사이클 전체에 걸쳐 특히 소프트웨어 개발과 소프트웨어 유지보수 중에 소프트웨어 엔지니어링의 효율성과 효과를 설명, 모니터링, 예측 및 개선하는 것을 목적으로 합니다.데이터 수집은 일반적으로 소프트웨어 저장소를 마이닝하여 수행되지만 사용자 작업 또는 프로덕션 데이터를 수집하여 수행할 수도 있습니다.수집된 데이터를 사용하는 한 가지 방법은 통합 개발 환경(IDE)을 데이터 기반 [1]기능으로 확장하는 것입니다.

정의들

  • "소프트웨어 분석은 실무자가 소프트웨어 개발, 시스템 및 [2]사용자와 관련된 작업을 수행하는 데 도움이 되는 소프트웨어 아티팩트로부터 통찰력 있고 실행 가능한 정보를 얻는 것을 목표로 합니다." --- 소프트웨어 시스템이 구성된 아티팩트에 적용된 분석을 중심으로 합니다.
  • "소프트웨어 분석은 분석에 소프트웨어 데이터 관리자들에게는과 소프트웨어 기술자들과 함께 하는 목적의 힘을 주는 소프트웨어 개발 개인과 팀을 얻고 공유할 통찰력이 자신의 데이터를 더 나은 결정이다."[3]-소프트웨어들 유물에 집중하고, 소프트웨어 분석 방식 및 기술의 핵심 목표를 튼튼하게 합니다.관련된 개발자와 팀의 활동
  • "소프트웨어 분석(SA)은 빅데이터 분석의 한 분야입니다.SA는 모든 소프트웨어 유물의 분석 뿐만 아니라 소스 코드가.[...]이층은 관리 위원회의 높은 수준에서 프로젝트 관리 계획하고 실천을 통해 소프트웨어 개발자에 의해가 기업 비전과 포트폴리오 관리 설정 다양하게 걱정하고 있다."[4]..-다양한 stak 등 넓은 범위를 반영한다.eholders.

목적

소프트웨어 분석은 의사결정을 지원하고 소프트웨어 시스템 및 그 구현, 구성, 행동, 품질, 진화뿐만 아니라 이러한 프로세스의 다양한 이해관계자의 활동에 대한 결과, 결론 및 평가와 같은 통찰력을 창출하는 것을 목표로 합니다.

  • 소프트웨어 분석을 통해 얻은 통찰력 있는 정보는 대상 작업 수행에 대한 의미 있고 유용한 이해 또는 지식을 전달합니다.일반적으로 분석 방법 및 기술의 도움 없이는 원시 빅데이터를 직접 검사하여 쉽게 얻을 수 없습니다.
  • 소프트웨어 분석에서 얻은 실행 가능한 정보는 소프트웨어 엔지니어링 프로세스의 이해관계자가 취할 수 있는 솔루션을 지시하거나 처방합니다(소프트웨어 실무자, 개발 리더 또는 경영진).

접근

소프트웨어 분석 방법, 기술 및 도구는 일반적으로 소프트웨어 개발 환경 및 생태계에 저장된 다양한 데이터 소스에서 발견된 정보를 수집, 측정, 분석 및 시각화하는 데 의존합니다.소프트웨어 시스템은 분석 적용에 매우 적합합니다. 왜냐하면, 한편으로는 형식화되고 정확한 데이터를 대부분 사용할 수 있고, 다른 한편으로는 소프트웨어 시스템을 관리하기 매우 어렵기 때문입니다. 즉, "소프트웨어 프로젝트는 측정할 수 있지만 예측할 [3]수 없는 경우가 많습니다."

핵심 데이터 원본에는 소스 코드, "체크인, 작업 항목, 버그 보고서 및 CVS, Subversion, GIT 및 Bugzilla와 [5]같은 소프트웨어 저장소에 기록된 테스트 실행 [...]이 포함됩니다." 원격 측정 데이터와 실행 트레이스 또는 로그도 고려할 수 있습니다.

자동화된 분석, 방대한 데이터 및 체계적인 추론은 거의 모든 수준의 의사결정을 지원합니다.일반적으로 소프트웨어 분석에 사용되는 주요 기술에는 기계 학습, 데이터 마이닝, 통계, 패턴 인식, 정보 시각화 및 대규모 데이터 컴퓨팅 및 처리와 같은 분석 기술이 포함됩니다.예를 들어, 소프트웨어 분석 도구를 사용하면 파생된 분석 결과를 소프트웨어 맵으로 매핑할 수 있습니다. 소프트웨어 맵은 시스템 아티팩트와 관련된 소프트웨어 메트릭을 인터랙티브하게 탐색할 수 있도록 지원합니다.신속한 변화를 위한 소프트웨어 개발 회사에는 소프트웨어 품질 모델 에도 분석 기술을 사용하는 소프트웨어 분석 도구도 있습니다. 이 도구는 소프트웨어 품질(예: 신뢰성) 평가 및 개선을 [6]위한 조치 도출을 지원합니다.

역사

2009년 5월, Dongmei Zhang이 Microsoft Research Asia(MSRA)에서 Software Analytics Group(SA)을 설립했을 때에, 소프트웨어 분석이 최초로 작성되어 제안되었습니다.이 용어는 North Carolina State University의 Tao Xie와 협력하여 IEEE/ACM International Conference on Au의 튜토리얼을 포함한 소프트웨어 엔지니어링 컨퍼런스에서 소프트웨어 해석에 관한 일련의 튜토리얼과 강연을 한 후 소프트웨어 엔지니어링 연구 커뮤니티에 널리 알려졌습니다.Tomated 소프트웨어 공학-국제 워크숍 기계 학습 기술에 소프트웨어 공학에서 강연의 지침과 기조 연설 장에 의해 그 IEEE-CS 회의 소프트웨어 공학 교육 Training,[9][10] 국제 회의 소프트웨어 공학에서 자습서에 주어지(MALETS 2011년)[8](ASE 2011년)[7].소프트웨어를 거쳐 1982년Practice [11]Track에서의 이닝과 Zhang이 마이닝 소프트웨어 저장소 [12]작업 회의에서 행한 기조 강연.

2010년 11월,[13] Microsoft Research Redmond의 경험적 소프트웨어 엔지니어링 그룹(ESE)에서 Thomas Zimmann과 그의 동료들이 FoSER 2010 논문에서 소프트웨어 개발 분석(소프트웨어 개발에 초점을 맞춘 소프트웨어 분석)을 제안했습니다.West Virginia 대학의 Zimmann과 Tim Menzies가 International Conference on Software Engineering, Software Engineering in Practice [14]Track에서 소프트웨어 개발 분석에 관한 금붕어 그릇 패널이 조직되었습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Bruch, Marcel; Bodden, Eric; Monperrus, Martin; Mezini, Mira (2010). "IDE 2.0: Collective Intelligence in Software Development". doi:10.1145/1882362.1882374. S2CID 7637561. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  2. ^ D. 장, S. 한, Y. 단, J.-G.Lou, H Zhang: "실천 중인 소프트웨어 분석"IEEE 소프트웨어, 2013년 9월/10월, 페이지 30-35.
  3. ^ a b 레이먼드 P. L. 부스와 토마스 짐머만입니다"소프트웨어 개발 분석에 대한 정보 요구"제34회 소프트웨어 엔지니어링 국제회의(ICSE 2012), 2012년 6월 스위스 취리히, Software Engineering in Practice, 987-996페이지.
  4. ^ T. M. 압델라티프, L. F. 카프레츠, D.Ho. "소프트웨어 분석에서 소프트웨어 프랙티스:체계적인 문헌 리뷰".1.국제 빅 데이터 엔지니어링 워크숍, 2015, 페이지 30-36.
  5. ^ 하랄드 갤, 팀 멘지스, 로리 윌리엄스, 토마스 짐머맨."소프트웨어 개발 분석"Dagstuhl 보고서, 제4권, 제6호, 페이지 64-83.
  6. ^ Martínez-Fernández, Silverio; Vollmer, Anna Maria; Jedlitschka, Andreas; Franch, Xavier; Lopez, Lidia; Ram, Prabhat; Rodriguez, Pilar; Aaramaa, Sanja; Bagnato, Alessandra (2019). "Continuously assessing and improving software quality with software analytics tools: a case study" (PDF). IEEE Access. 7: 68219–68239. doi:10.1109/ACCESS.2019.2917403. ISSN 2169-3536.
  7. ^ 장동메와 타오쉐."xSA: eXtreme 소프트웨어 분석 - eXtreme 컴퓨팅과 소프트웨어 분석의 결합"제26회 IEEE/ACM International Conference on Automated Software Engineering (ASE 2011), 2011년 11월, 캔자스주 로렌스 튜토리얼.
  8. ^ 장동미, 당잉농, 루젠광, 시한, 장하이둥, 타오쉐."실천 학습 사례로서의 소프트웨어 분석:「접근법 및 경험」을 참조.2011년 11월, 캔자스주 로렌스, MALETs 2011의 「소프트웨어 엔지니어링의 머신 러닝 테크놀로지에 관한 국제 워크숍의 속행」.PD 슬라이드
  9. ^ 장둥메이."실천 중인 소프트웨어 분석 및 교육 및 훈련에 미치는 영향"기조 연설2012년 4월 중국 난징의 튜토리얼, 제24회 소프트웨어 엔지니어링 교육 및 트레이닝에 관한 IEEE-CS 회의(CSE&T 2012)의 속행.
  10. ^ 장동미, 당잉농, 시한, 타오쉐."소프트웨어 분석을 위한 교육 및 교육"2012년 4월 중국 난징의 튜토리얼, 제24회 소프트웨어 엔지니어링 교육 및 트레이닝에 관한 IEEE-CS 회의(CSE&T 2012)의 속행.
  11. ^ 장동메와 타오쉐."실천 중인 소프트웨어 분석:미니 튜토리얼"제34회 소프트웨어 엔지니어링 국제회의(ICSE 2012), 소프트웨어 엔지니어링 실무, 스위스 취리히 미니 튜토리얼, 2012년 6월 페이지 997.슬라이드
  12. ^ 장둥메이.「MSR 2012의 기조:실제 소프트웨어 분석 - 접근법과 경험"스위스 취리히, 2012년 6월, 제9회 마이닝 소프트웨어 저장소 작업 회의(MSR 2012)의 속행, 페이지 1.
  13. ^ 레이먼드 P. L. 부스와 토마스 짐머만입니다"소프트웨어 개발을 위한 분석"소프트웨어 엔지니어링 연구의 미래에 관한 워크숍의 진행(FoSER 2010), Santa Fe, 미국 NM, 2010년 11월, 페이지 77-80.
  14. ^ 팀 멘지스와 토마스 짐머만입니다"Goldfish Bowl 패널: 소프트웨어 개발 분석"제34회 소프트웨어 엔지니어링 국제회의(ICSE 2012), 2012년 6월 스위스 취리히, Software Engineering in Practice, 1032-1033 페이지.

외부 링크