변경 영향 분석

Change impact analysis

변경영향분석(IA) 또는 영향분석이란[1] 배치된 제품 또는 애플리케이션 내의 변화와 그 잠재적인 [2][3][better source needed]결과를 분석하는 입니다.

변경 영향 분석은 Bohnner와[4] Arnold에 의해 "변경의 잠재적 결과 식별 또는 변경을 달성하기 위해 수정해야 할 사항 추정"으로 정의되며, 설계 세부 사항 내에서 변경 범위를 지정하는 측면에서 IA에 초점을 맞추고 있습니다.반대로, Pfleeger와 Atlee는[5] 변경과 관련된 위험에 초점을 맞추고 IA는 "자원, 노력 및 일정에 대한 영향 추정치를 포함하여 변경과 관련된 많은 위험의 평가"라고 명시한다.변경 관리 프로세스에서 IA를 수행하려면 설계 세부사항과 변경과 관련된 위험이 모두 중요합니다.의존 지옥이라는 문맥에서도 가끔 기술적인 구어체 용어가 언급된다.

영향 분석 기법의 종류

IA 기법은 세 가지 [6]유형으로 분류할 수 있습니다.

  • 추적하다
  • 의존
  • 경험적

Bohner와[7] Arnold는 IA의 두 가지 등급인 추적 가능성과 의존성 IA를 식별합니다.추적가능성 IA에서는 요건, 규격, 설계 요소 및 테스트 사이의 연결이 포착되며,[8] 이러한 관계를 분석하여 개시 변화의 범위를 결정할 수 있다.의존관계 IA에서는 부품, 변수, 논리, 모듈 등의 연결을 평가하여 개시 변화의 결과를 판단한다.의존관계 IA는 트레이서빌리티 IA보다 더 상세한 수준에서 발생합니다.소프트웨어 설계에서는 정적 알고리즘과 동적 알고리즘을 코드로 실행하여 의존관계 IA를 [9][10]실행할 수 있습니다.정적 메서드는 프로그램 구조에 초점을 맞추고 동적 알고리즘은 런타임에 프로그램 동작에 대한 정보를 수집합니다.

또한 문헌과 엔지니어링 프랙티스는 변경의 영향이 종종 전문가의 설계 지식을 사용하여 결정된다는 점에서 세 번째 유형의 IA인 경험적 IA를 제안한다.회의 프로토콜 [11]검토, 비공식 팀 토론 및 개별 엔지니어링[12] 판단을 모두 [how?]수정의 결과를 결정하는 데 사용할 수 있다.

패키지 관리 및 의존관계 IA

소프트웨어는 배포된 소프트웨어 패키지가 실행되는 데 필요한 다른 소프트웨어 패키지에 대한 종속성을 포함하는 패키지로 전송되는 경우가 많습니다.이러한 의존관계를 역순으로 따르는 것은 소프트웨어 패키지의 내용 변경에 따른 영향을 식별하는 편리한 방법입니다.이 작업에 도움이 되는 소프트웨어의 예는 다음과 같습니다.

소스 코드 및 종속성 IA

종속성은 소스 코드에서도 선언됩니다.[메타데이터[which?] 메타데이터]를[how?] 사용하여 정적 분석을 통해 종속성을 파악할 수 있습니다.이러한 의존성을 나타내는 데 도움이 되는 툴은 다음과 같습니다.

또한 다양한 저장소에 저장된 소스 코드에 전체 텍스트 검색을 적용하는 도구도 있습니다.소스 코드가 웹브라우징이 가능한 경우 기존 검색 엔진을 사용할 수 있습니다.소스를 런타임 환경에서만 사용할 수 있는 경우 더 복잡해지고 전문 도구가 도움이 [14][verification needed][inappropriate external link?]될 수 있습니다.

학습 기법을[which?] 사용하여 영향 [15]의존성을 자동으로[how?] 식별할 수 있습니다.

요건 및 소스 코드에 대한 트레이서빌리티

최신 툴에서는[which?] 의존관계를 추적하기 위해 안정적인 링크를 사용하는 경우가 많습니다.이 작업은 사양, 설계도, 버그, 커밋 등 모든 수준에서 수행할 수 있습니다.그럼에도 불구하고 검색 엔진 최적화에서 알려진 백링크 체커를 사용하는 것은 흔하지 않습니다.이 영역에서의 조사도,[16] 단지 사용 사례 맵의 이름을 붙이기 위해서 행해집니다.

이 영역의 상용 도구에는 Rational DOORS가 포함됩니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Impact Analysis - an overview ScienceDirect Topics". www.sciencedirect.com. Retrieved 2022-01-27.
  2. ^ "Change Impact Analysis - Introduction". ktern.com. 2021-12-29. Archived from the original on 2022-01-27. Retrieved 27 January 2022.
  3. ^ "Change Impact Analysis SMS Tools". www.aviationsafetyplatform.com. Retrieved 27 January 2022.
  4. ^ 보너와 아놀드, 1996, 3페이지
  5. ^ Pfleeger and Atlee, 2006, 페이지 526
  6. ^ Kilpinen, 2008년
  7. ^ 보너와 아놀드, 1996년
  8. ^ 아이스너, 2002, 236-237페이지
  9. ^ 라즐리히, 2000
  10. ^ Ren et al., 2005
  11. ^ 엔드레스와 롬바흐, 2003, 17페이지
  12. ^ Ambler, 2002, 244페이지
  13. ^ "whatrequires". www.pixelbeat.org. Archived from the original on 2006-04-26. Retrieved 27 January 2022.
  14. ^ "ohloh, discover, track, and compare open source". Archived from the original on 2011-01-12. Retrieved 2022-01-27.
  15. ^ Musco, Vincenzo; Carette, Antonin; Monperrus, Martin; Preux, Philippe (2016). "A learning algorithm for change impact prediction". Proceedings of the 5th International Workshop on Realizing Artificial Intelligence Synergies in Software Engineering - RAISE '16. pp. 8–14. arXiv:1512.07435. doi:10.1145/2896995.2896996. ISBN 9781450341653. S2CID 16129537.
  16. ^ 사용 사례 사용한 요구사항 진화를 위한 변경 영향 분석 2016-03-05년 Wayback Machine, Jameldine Hassine, Juergen Rilling, Jacqueline Hewitt, Concordia University, 2005년 컴퓨터 과학 학과의 아카이브.

추가 정보

  • 앰블러, S. (2002)신속한 변화를 위한 모델링: Extreme Programming 및 통합 프로세스를 위한 효과적인 프랙티스.뉴욕, 뉴욕, 미국, John Wiley & Sons.
  • 보너, S.A.와 R.S. 아놀드, 에드(1996)소프트웨어 변경 영향 분석.Los Alamitos, 캘리포니아, 미국, IEEE Computer Society Press.
  • 아이스너, H. (2002)프로젝트 및 시스템 엔지니어링 관리의 핵심.뉴욕, 뉴욕, 미국, John Wiley & Sons.
  • 엔드레스 A와 D롬바흐(2003년).소프트웨어 및 시스템 엔지니어링 핸드북: 경험적 관찰, 법칙 및 이론.뉴욕, 뉴욕, 미국 애디슨 웨슬리
  • 킬피넨, 매사추세츠 (2008년)시스템 엔지니어링 및 소프트웨어 설계 인터페이스에서의 변화:영향 분석의 조사.박사 학위 논문케임브리지 대학교캠브리지, 영국.
  • 플레거, S.L., J.M.ATLEE(2006년).소프트웨어 엔지니어링:이론과 실천어퍼 새들 리버, 뉴저지, 미국 프렌티스 홀.
  • 라즐리히, V. (2000년)"소프트웨어의 변화를 전파하기 위한 모델 및 도구"ACM SIGSOFT 소프트웨어 엔지니어링 노트 25 (1):72.
  • 렌, 엑스, 에프샤 등(2005).Chianti: Java 프로그램 변경 영향 분석 도구입니다.소프트웨어 엔지니어링에 관한 국제회의(ICSE 2005), 미국 미주리주 세인트루이스.