[1]의 4장 초기 이해에서는 소스 코드의 초기 분석을 위한 세 가지 주요 패턴을 제시한다. 퍼시스턴트 데이터 분석하기, 디자인 추측하기, 예외적인 엔터티 연구하기가 그것이다. 각 패턴은 리엔지니어링 프로젝트의 성공적인 진행을 위한 필수적인 단계이다.

퍼시스턴트 데이터 분석하기

  • 의도: 데이터베이스 시스템 내부에 보관해야 할 중요한 개체를 식별하고 이해한다.
  • 문제: 귀중한 데이터는 외부 저장 장치에 보관되어야 하지만, 정리되지 않은 데이터와 혼재될 수 있다.
  • 해결:
    1. 모든 테이블 이름을 열거하여 초기 모델을 준비.
    2. 각 테이블에 대해 열 이름을 수집하고 속성으로 추가.
    3. 후보 키 및 외래 키 관계를 분석.
    4. 상속 관계를 유추하여 클래스 다이어그램을 도출.
    5. 데이터 샘플과 SQL 문을 통해 검증.
  • 장점: 팀 커뮤니케이션 개선, 가치 있는 데이터 추출.
  • 단점: 범위 제한, 정크 데이터 포함, 전문 지식 필요.

디자인 추측하기

  • 의도: 소스코드에서 디자인 개념을 복구하여 가설을 검증하고 구체화한다.
  • 문제: 많은 디자인 개념이 있으며 프로그래밍 언어에서 이를 표현하는 방법이 다양하다.
  • 해결:
    1. 초기 가설 역할을 하는 클래스 다이어그램 작성.
    2. 클래스, 연산, 속성 이름을 소스 코드에서 찾아 가설 검증.
    3. 불일치를 기반으로 클래스 다이어그램을 조정.
    4. 만족스러운 다이어그램을 얻을 때까지 반복.
  • 장점: 대규모 객체 지향 프로그램에 유리, 저렴한 리소스 투자.
  • 단점: 전문 지식 필요, 시간이 많이 소요됨.

예외적인 엔터티 연구하기

  • 의도: 시스템에서 예외적인 엔터티를 식별하고 분석하여 전체 구조를 이해한다.
  • 문제: 예외적인 엔터티는 일반적인 패턴을 따르지 않으며, 특별한 처리가 필요하다.
  • 해결:
    1. 예외적인 엔터티를 식별.
    2. 해당 엔터티의 특성과 동작을 분석.
    3. 다른 엔터티와의 관계를 이해하여 시스템 전체의 구조를 파악.
  • 장점: 시스템의 비정상적인 부분을 이해하고 해결하는 데 도움.
  • 단점: 예외적인 상황을 처리하기 위한 추가 분석이 필요.

이 세 가지 패턴은 소프트웨어 리엔지니어링 프로젝트의 초기 분석 단계에서 시스템을 이해하고 문서화하는 데 필수적인 방법들이다. 이를 통해 프로젝트의 안정적인 기반을 구축하고, 성공적인 진행을 보장할 수 있다. [2]에서 번역된 내용을 찾을 수 있다.

 

참고 문헌

[1] Serge Demeyer et al., "Object-oriented Reengineering Patterns"

[2] https://github.com/blcktgr73/OORP 

+ Recent posts