[1]의 4장 초기 이해에서는 소스 코드의 초기 분석을 위한 세 가지 주요 패턴을 제시한다. 퍼시스턴트 데이터 분석하기, 디자인 추측하기, 예외적인 엔터티 연구하기가 그것이다. 각 패턴은 리엔지니어링 프로젝트의 성공적인 진행을 위한 필수적인 단계이다.
퍼시스턴트 데이터 분석하기
- 의도: 데이터베이스 시스템 내부에 보관해야 할 중요한 개체를 식별하고 이해한다.
- 문제: 귀중한 데이터는 외부 저장 장치에 보관되어야 하지만, 정리되지 않은 데이터와 혼재될 수 있다.
- 해결:
- 모든 테이블 이름을 열거하여 초기 모델을 준비.
- 각 테이블에 대해 열 이름을 수집하고 속성으로 추가.
- 후보 키 및 외래 키 관계를 분석.
- 상속 관계를 유추하여 클래스 다이어그램을 도출.
- 데이터 샘플과 SQL 문을 통해 검증.
- 장점: 팀 커뮤니케이션 개선, 가치 있는 데이터 추출.
- 단점: 범위 제한, 정크 데이터 포함, 전문 지식 필요.
디자인 추측하기
- 의도: 소스코드에서 디자인 개념을 복구하여 가설을 검증하고 구체화한다.
- 문제: 많은 디자인 개념이 있으며 프로그래밍 언어에서 이를 표현하는 방법이 다양하다.
- 해결:
- 초기 가설 역할을 하는 클래스 다이어그램 작성.
- 클래스, 연산, 속성 이름을 소스 코드에서 찾아 가설 검증.
- 불일치를 기반으로 클래스 다이어그램을 조정.
- 만족스러운 다이어그램을 얻을 때까지 반복.
- 장점: 대규모 객체 지향 프로그램에 유리, 저렴한 리소스 투자.
- 단점: 전문 지식 필요, 시간이 많이 소요됨.
예외적인 엔터티 연구하기
- 의도: 시스템에서 예외적인 엔터티를 식별하고 분석하여 전체 구조를 이해한다.
- 문제: 예외적인 엔터티는 일반적인 패턴을 따르지 않으며, 특별한 처리가 필요하다.
- 해결:
- 예외적인 엔터티를 식별.
- 해당 엔터티의 특성과 동작을 분석.
- 다른 엔터티와의 관계를 이해하여 시스템 전체의 구조를 파악.
- 장점: 시스템의 비정상적인 부분을 이해하고 해결하는 데 도움.
- 단점: 예외적인 상황을 처리하기 위한 추가 분석이 필요.
이 세 가지 패턴은 소프트웨어 리엔지니어링 프로젝트의 초기 분석 단계에서 시스템을 이해하고 문서화하는 데 필수적인 방법들이다. 이를 통해 프로젝트의 안정적인 기반을 구축하고, 성공적인 진행을 보장할 수 있다. [2]에서 번역된 내용을 찾을 수 있다.
참고 문헌
[1] Serge Demeyer et al., "Object-oriented Reengineering Patterns"
'Software Architecture' 카테고리의 다른 글
객체 지향 리엔지니어링 패턴: 6장 테스트라는 생명보험 (2) | 2024.09.04 |
---|---|
객체 지향 리엔지니어링 패턴: 5장 디테일한 모델 캡처 (0) | 2024.08.28 |
객체 지향 리엔지니어링 패턴: 3장 첫 번째 접근 (4) | 2024.07.24 |
객체 지향 리엔지니어링 패턴: 2장 방향 설정하기 (0) | 2024.07.17 |
소프트웨어 아키텍처 드라이버(Software Architectural Driver) (0) | 2024.07.10 |