C4 모델

C4 model

C4 모델은 소프트웨어 [1][2]시스템의 아키텍처를 모델링하기 위한 희박한 그래픽 표기 기법입니다.컨테이너와 컴포넌트로의 시스템의 구조적 분해에 기초하고 있으며, 아키텍처 구성요소의 보다 상세한 분해를 위해 통합 모델링 언어(UML) 또는 엔티티 관계도(ERD)와 같은 기존 모델링 기술에 의존합니다.

역사

C4 모델은 소프트웨어 설계자 Simon Brown이 2006년부터 2011년 사이에 Unified Modeling Language(UML)와 4+1 아키텍처 뷰 모델을 기반으로 만들었습니다.크리에이티브 커먼즈[3] 라이선스로 공식 웹사이트를 개설하고 2018년에 발표된 기사를 통해[4] 이 새로운 기술을 [1]대중화했습니다.

개요

C4 모델은 컨테이너와 컴포넌트로의 시스템 분해, 이들 요소 간의 관계 및 필요에 따라 [3]사용자와의 관계를 설명하는 여러 관점을[5] 보여줌으로써 소프트웨어 시스템의 아키텍처를 문서화합니다.

뷰포인트는 계층 [2][3]수준에 따라 구성됩니다.

  • 컨텍스트 다이어그램(레벨 1) : 대상 시스템 및 사용자 및 기타 시스템과의 관계를 나타냅니다.
  • 용기 다이어그램(레벨 2): 시스템을 상호 연관된 용기로 분해합니다.컨테이너는 애플리케이션 또는 데이터 저장소를 나타냅니다.
  • 구성요소 다이어그램(레벨 3): 컨테이너를 상호 관련된 구성요소로 분해하고 구성요소를 다른 컨테이너 또는 다른 시스템과 관련시킵니다.
  • 코드 다이어그램(레벨 4): 코드에 매핑할 수 있는 아키텍처 요소의 설계에 대한 추가 세부 정보를 제공합니다.C4 모델은 이 수준에서 통합 모델링 언어(UML), 엔티티 관계도(ERD) 또는 통합 개발 환경(IDE)에 의해 생성된 다이어그램과 같은 기존 표기법에 의존합니다.

레벨 1~3의 경우 C4 모델은 5가지 기본 다이어그램 요소(사람, 소프트웨어 시스템, 컨테이너, 구성요소 및 관계)를 사용합니다.이 기술은 이러한 요소의 레이아웃, 모양, 색상 및 스타일에 대해 규범적이지 않습니다.대신 C4 모델은 대화식 공동 도면을 용이하게 하기 위해 중첩된 상자를 기반으로 한 간단한 다이어그램을 사용하는 것이 좋습니다.또한 이 기법은 모든 다이어그램에 제목과 범례를 제공하고, 대상 독자의 이해를 촉진하기 위해 명확하고 명확한 라벨 부착과 같은 모범 모델링 관행을 촉진한다.

C4 모델은 보다 공식적인 문서화 방법 및 초기 아키텍처 설계를 [6]원하지 않는 민첩한 팀의 맥락에서 협업적인 시각적 아키텍처와 진화적 아키텍처를 지원합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b Richards,Mark; Ford, Neal (2019). Fundamentals of software architecture: an engineering approach. O'REILLY MEDIA. p. 293. ISBN 978-1-4920-4342-3. OCLC 1138515057. some standard are emerging for diagramming software architecture (such as software architect Simon Brown's C4 model or The Open Group Archimate standard)
  2. ^ a b Enríquez, René (2018). Software Architecture with Spring 5. 0 : Design and Architect Highly Scalable, Robust, and High-Performance Java Applications. Salazar, Alberto. Packt Publishing Ltd. pp. 41–44. ISBN 978-1-78899-673-0. OCLC 1053798657.
  3. ^ a b c Brown, Simon. "The C4 model for visualising software architecture". c4model.com (Official site of the modelling technique). Archived from the original on 2010-02-25. Retrieved 2020-08-22.
  4. ^ Brown, Simon (2018-06-25). "The C4 Model for Software Architecture". InfoQ. Archived from the original on 2018-12-12. Retrieved 2020-08-22.
  5. ^ Keeling, Michael. Design it! : from programmer to software architect. Raleigh, North Carolina. ISBN 978-1-68050-345-6. OCLC 1024312521.
  6. ^ "The Conflict Between Agile and Architecture: Myth or Reality?". resources.sei.cmu.edu. SATURN 2013 conference. Software Engineering Institute of Carnegie Mellon University. Archived from the original on 2021-04-19. Retrieved 2020-08-22.

외부 링크