아키텍쳐 체크 리스트

업데이트: Link

아키텍쳐 체크 리스트

다음은 훌륭한 아키텍처가 갖추어야 할 항목이다. 이 목록이 아키텍처에 대한 종합 안내서가 되지는 않겠지만 개발자가 소프트웨어 먹이 사슬 끝 단계에서 얻는 영양분이 무엇인지를 평가하는 실용적인 방법은 될 수 있다. 이 체크리스트를 자신만의 리스트를 만드는 시작점으로 사용하라. 요구사항 체크리스트에서처럼 비형식적인 프로젝트를 진행중이라면 고려할 필요조차 없는 항목도 있을 것이다. 큰 프로젝트를 진행중이라면 대부분의 항목이 유용할 것이다.

구체적인 아키텍처 주제

  • 좋은 아키텍처의 개요와 설명을 포함한 전체적인 프로그램 구조가 명확한가
  • 주요 빌딩 블록을 그 책임 영역과 다른 빌딩 블록에 대한 인터페이스를 포함해 잘 정의했는가
  • 요구사항에 있는 모든 기능을 적절한 수의 빌딩 블록으로 다루었는가
  • 가장 중요한 클래스를 기술하고 정당성을 증명했는가
  • 데이터베이스 구조와 내용을 명시했는가
  • 핵심 비즈니스 규칙을 모두 명시하고 그 규칙이 시스템에 미치는 영향을 기술했는가
  • 사용자 인터페이스 설계 전략을 기술했는가
  • 사용자 인터페이스를 일부 변경해도 프로그램의 나머지 부분에 영향을 미치지 않도록 모듈화했는가
  • I/O 처리 방법을 기술하고 정당성을 증명했는가
  • 스레드와 데이터베이스 연결, 핸들, 네트워크 대역폭 등과 같이 부족한 자원에 대해서 자원 사용 예측 및 자원 관리 방법을 기술했는가
  • 아키텍처의 보안 요구사항을 기술해쑈는가
  • 아키텍처가 각 클래스나 서브시스템 기능 영역에 대한 공간과 속도를 설정했는가
  • 아키텍처가 확장성을 어떻게 구현할지 기술했는가
  • 아키텍처가 상호운용성을 다루는가
  • 국제와와 지역화를 위한 방법을 기술했는가
  • 일관된 오류 처리 방법을 제공했는가
  • 장애 허용에 대한 접근 방법을 정의했는가 (장애 허용이 필요한 경우)
  • 시스템의 모든 부분에 대해서 기술적인 구현 가능성을 확인했는가
  • 과동한 엔지니어링에 대한 해결책을 명시했는가
  • 구입할 것인지 구현할 것인지에 대한 결정을 포함했는가
  • 재사용된 코드가 아키텍처의 다른 목표와 어떻게 부합할 것인지 기술했는가
  • 아키텍처가 가능성 있는 변경 사항을 수용할 수 있도록 설계 했는가

일반적인 아키텍처 품질

  • 아키텍처가 모든 요구사항을 설명하고 있는가
  • 지나치거나 부족한 부분은 없는가 이부분에 대한 기대치를 명확하게 설정하고 있는가
  • 전체적인 아키텍처가 개념적으로 일관성을 갖는가
  • 최상위 설계가 구현에 사용될 기계와 언어에 독립적인가
  • 모든 중요한 결정에 대한 근거를 제공하는가
  • 시스템을 구현할 당사자로서 아키텍처에 만족하는가

댓글남기기