2016년 4월 25일 월요일

유지보수와 역공학 (2)


유지보수는 제한된 이해와 테스팅, 영향분석, 유지보수성 기술적 이슈와 조직 목표로의 정렬, 유지보수자 형성, 프로세스, 조직적 측면, 외주 관리적 이슈, 유지보수 비용추정 이슈, SW유지 보수 측정에 대한 이슈가 존재한다.



유지보수를 해결하기 위한 기법은 프로그램의 이해(Program Comprehension), 재공학 (Re-engineering), 역공학(Reverse Engineering) 있다. 프로그래머는 변경 사항을 구현하기 위해 프로그램 읽기 이해에 적지 않은 시간을 보내는데, 코드 브라우저(browsers) 프로그램 이해를 위한 핵심 도구다. 명료하고 간결한 문서 역시 프로그램 이해에 많은 도움이 된다.
재공학은 SW 새형태(form) 재구성하기 위한 SW 시험(examination) 변경(alteration) 으로 정의되며, 뒤로 이어지는 형태의 구현 역시 포함하고 있다. 재공학은 가장 급진적(그리고 비싼) 변경이지만, 소규모 변경에도 수행되기도. 재공학은 유지보수성 향상이 아니라 노후된 (legacy) SW 교체하기 위해 종종 사용되기도 한다.
역공학은 SW 컴포넌트와 이들간 상호관계 식별 다른 형태 또는 높은 추상 수준에 대한 표현물에 대한 생산을 위한 SW 분석 공정이다. 역공학은 수동적 속성을 지녀, SW 변경하거나 새로운 SW 만드는 활동이 아니다. 역공학은 제품 소스코드의 호출 그래프와 제어 흐름도의 생산 초점이 맞춰져 있다.
역공학의 종류로는 재문서화(redocumentation) 설계 복구가 있으며, 리팩토링(refactoring) SW 행동 변경을 배재한 상태에서 프로그램에 대한 재조직화를 통한 변형(transformation)으로, 프로그램 구조 향상을 위한 역공학의 형태다. 데이터 역공학은 최근 년간 주목을 받아왔는데, 이는 물리 데이터베이스에서 논리 스키마를 복구하는 활동을 의미한다.


댓글 없음 :

댓글 쓰기