소프트웨어 진단

Software diagnosis

소프트웨어 진단(Software Diagnostics: Software Diagnostics)은 소프트웨어 시스템과 그 구현, 구성, 행동 및 진화에 대한 소견,소프트웨어 시스템 특유의 비즈니스 인텔리전스 접근방식의 관점에서 소프트웨어 개발, 소프트웨어 유지보수, 소프트웨어 재엔지니어링을 감시, 조종, 관찰 및 최적화하는 수단 역할을 한다.그것은 일반적으로 소프트웨어 시스템의 해당 정보 출처의 자동 추출, 분석 및 시각화에 기초한다.그것은 또한 자동이 아니라 수동으로 할 수 있다.

적용들

소프트웨어 진단은 소프트웨어 엔지니어링의 모든 부서, 특히 프로젝트 관리, 품질 관리, 리스크 관리, 구현 및 테스트 등을 지원한다.소프트웨어 프로젝트의 모든 이해관계자(특히 소프트웨어 유지보수 및 소프트웨어 재엔지니어링 작업[1] 중)를 지원하고, 소프트웨어 개발 프로젝트에 효과적인 커뮤니케이션 수단을 제공하는 것이 주요 강점이다.예를 들어, 소프트웨어 진단은 "관리와 개발 사이의 본질적인 정보 격차를 해소하고, 인식을 개선하며, 조기 위험 감지 도구로 기능한다"[2]를 용이하게 한다.소프트웨어 진단에는 예를 들어 "코드 복잡성 및 시스템 다른 부분과의 얽힘 등 낮은 유지보수를 위해 복수의 지표를 결합하는 시각적 분석 기법, 그리고 최근 코드에 적용된 변경 사항 등을 적용하는 "완벽한 유지관리"에 대한 평가 방법이 포함된다.[3]

특성.

소프트웨어 엔지니어링의 다양한 접근법과 기법과 대조적으로 소프트웨어 진단은 프로그래밍 언어, 모델링 기법, 소프트웨어 개발 프로세스 또는 소프트웨어 개발 프로세스의 다양한 단계에서 사용되는 특정 기법에 의존하지 않는다.대신, 소프트웨어 진단은 소프트웨어 시스템을 현재 상태로 분석하고 평가하는 것을 목표로 하며, 시스템 생성 정보에 기초하여 주관적이거나 잠재적으로 시대에 뒤떨어진 정보 소스(예: 초기 소프트웨어 모델)를 수집하는 것을 목표로 한다.그것에 대해, 소프트웨어 진단은 일반적으로 직접 연결되지 않는 정보의 출처를 결합하고 관련시킨다.예:

  • 소스 코드 메트릭은 소프트웨어 코드 품질에 대한 개발자 고유의 영향을 통찰하기 위한 소프트웨어 개발자 활동과 관련이 있다.[4]
  • 시스템 구조와 런타임 실행 추적은 소프트웨어 유지관리 업무의 동적 분석을 통해 프로그램 이해를 용이하게 하기 위해 상호 연관되어 있다.[5]

원칙

소프트웨어 진단의 핵심 원칙은 소스 코드 베이스, 프로젝트 리포지토리, 코드 메트릭스, 실행 추적,[6] 테스트 결과 등 주어진 소프트웨어 프로젝트의 이용 가능한 모든 정보 출처에서 정보를 자동으로 추출하는 것이다.정보를 결합하기 위해 소프트웨어별 데이터 마이닝, 분석, 시각화 기법을 적용한다.그것의 강점은 다양한 이유들 중에서 개발 및 개발자 활동(저장소 기록)과 코드 및 품질 지표(소스 코드를 분석하여 도출) 또는 핵심 성과 지표(KPI)와 같은 일반적인 소프트웨어 프로젝트의 범위에 분리된 정보 공간을 통합함으로써 얻어진다.

소프트웨어 진단 도구의 예로는 소프트웨어 맵소프트웨어 메트릭이 있다.

비평가

소프트웨어 진단은 소프트웨어 엔지니어링의 많은 접근 방식과 달리 개발자 기능, 개발 방법, 프로그래밍 또는 모델링 언어가 옳거나 그르다고 가정하지 않는다(또는 서로에 비해 좋거나 나쁘거나).소프트웨어 진단은 시스템을 만들고 유지하기 위해 사용되는 방법, 언어 또는 모델에 관계없이 주어진 소프트웨어 시스템과 그 상태에 대한 통찰력을 제공하는 것을 목표로 한다.

관련 과목

참조

  1. ^ Beck, M.; Trümper, J.; Döllner, J. (2011). "A visual analysis and design tool for planning software reengineerings". 2011 6th International Workshop on Visualizing Software for Understanding and Analysis (VISSOFT). IEEE Computer Society. pp. 1–8. doi:10.1109/VISSOF.2011.6069458. ISBN 978-1-4577-0822-0. S2CID 16326080.
  2. ^ Bohnet, J.; Döllner, J. (2011). "Monitoring Code Quality and Development Activity by Software Maps". Proceedings of the IEEE ACM ICSE Workshop on Managing Technical Debt. Association for Computing Machinery. pp. 9–16. doi:10.1145/1985362.1985365. ISBN 9781450305860. S2CID 17258620.
  3. ^ Trümper, J.; Beck, M.; Döllner, J. (2012). "A Visual Analysis Approach to Support Perfective Software Maintenance". 2012 16th International Conference on Information Visualisation. IEEE Computer Society. pp. 308–315. doi:10.1109/IV.2012.59. ISBN 978-1-4673-2260-7. S2CID 5988716.
  4. ^ Limberger, D.; Wasty, B.; Trümper, J.; Döllner, J. (2013). "Interactive software maps for web-based source code analysis". Proceedings of the 18th International Conference on 3D Web Technology. pp. 91–98. doi:10.1145/2466533.2466550. ISBN 9781450321334. S2CID 3040005.
  5. ^ Trümper, Jonas; Telea, Alexandru; Döllner, Jürgen (2012). "ViewFusion: Correlating Structure and Activity Views for Execution Traces". Theory and Practice of Computer Graphics. The Eurographics Association. pp. 45–52. doi:10.2312/LocalChapterEvents/TPCG/TPCG12/045-052. ISBN 978-3-905673-93-7.
  6. ^ Bohnet, J. (2010). Visualization of Execution Traces and its Application to Software Maintenance (PhD). Hasso-Plattner-Institut, University of Potsdam.

외부 링크