속성 중심 설계

Attribute-driven design

계수형 설계[1][2](ADD 또는 계수형 설계 방식이라고도 함)는 소프트웨어의 품질 속성을 고려한 소프트웨어 아키텍처를 만드는 방법론이다.이전에는 ABD(Architecture Based Design Method)로 알려졌으나, 상표 문제로 2001년경 Attribute-Driven Design으로 명칭이 변경되었다.[3]

속성 중심 설계 방법

실제로[4] 소프트웨어 아키텍처라는 책에서 저자들은 ADD를 각 반복 시 설계자가 다음과 같은 단계를 수행하는 데 도움이 되는 반복적 방법으로 설명한다.

  • 설계할 시스템의 일부를 선택하십시오.
  • 선택한 부품에 대해 건축적으로 중요한 모든 요구 사항을 정리하십시오.즉, 이 단계의 아키텍처에 영향을 미칠 수 있는 모든 품질 속성과 비즈니스 목표를 선택한다는 것을 의미한다.
  • 선택된 건축학적으로 중요한 요건을 충족하는 선택된 부분에 대한 아키텍처를 생성하고 이 설계를 테스트한다.

필수입력

ADD는 다음 리소스를 이미 사용할 수 있는 경우에만 성공적으로 시작할 수 있다.

  • 기능적 요건
  • 품질 요구 사항
  • 제약

물론 시간이 좀 걸릴 수 있기 때문에 이 모든 요구사항이 확정될 때까지 기다릴 수는 없다.ADD 프로세스는 일단 ASRs 집합(위에 열거된 3가지 자원인 아키텍처적으로 중요한 요구사항)을 이용할 수 있게 되면 시작할 수 있다.

프로세스 단계

  1. 설계할 시스템의 요소 선택
    • 아직 설계되지 않은 시스템의 요소를 선택하십시오.첫 번째 반복에서 이것은 시스템 그 자체일 것이다.나중에 몇 가지 요소 사이에서 선택을 해야 할 것이다.이러한 선택은 인력 가용성, 입력 리소스 가용성, 위험 완화 등에 기초할 수 있다.이러한 제한이 없는 경우, 범위 우선 전략을 채택하는 것이 좋다.
  2. 선택한 요소에 대한 건축적 중요 요구사항(ASR) 식별
    • 이 선택한 요소에 가장 중요한 ASR을 식별하십시오.설계가 가장 중요한 ASR을 반영하도록 하려면 이러한 요구사항의 우선순위를 정해야 한다.
  3. 선택한 요소에 대한 설계 솔루션 생성
    • 이 단계는 구조가 이 단계에서 생성될 것이기 때문에 ADD의 핵심이다.생성한 아키텍처는 선택된 ASR을 반영해야 한다.건축 패턴이나 전술을 활용하면 이렇게 할 수 있다.대부분의 경우 당신은 몇 가지 전술과 ASR 사이에서 절충을 해야 할 것이다.
  4. 나머지 요구 사항 재고 및 다음 반복에 대한 입력 선택
    • 나열된 ASR을 살펴보고 현재 보유하고 있는 설계가 이미 충족되었는지 확인하십시오.각 ASR에 대해 만족하는지, 어린이 중 한 명에게 위임되었는지, 어린이 사이에 분배되었는지, 또는 충족되지 않는지 여부를 확인해야 한다.마지막 경우에는 아키텍처를 변경해야 한다.
  5. 모든 ASR이 완료될 때까지 1~4단계를 반복하십시오.
    • 반복한다!

출력

전체 상세 아키텍처가 아닌 아키텍처 뷰의 스케치 세트.

ADD 3.0

최근 몇 년 동안 ADD는 플랫폼별 설계(예: 설계 개념 카탈로그를 통한 기술 및 프레임워크 선택)를 포함하고 아키텍처 결정의 작성과 문서화를 강조하기 위해 실질적으로 업데이트되었다.[5]

참조

  1. ^ Wojcik, Rob; Bachmann, Felix; Bass, Len; Clements, Paul C.; Merson, Paulo; Nord, Robert; Wood, William G. (November 2006). "Attribute-Driven Design (ADD), Version 2.0". SEI.
  2. ^ "Attribute-Driven Design Method". SEI.
  3. ^ Bachmann, Felix; Bass, Len (2001). "Introduction to the Attribute Driven Design Method". IEEE: 745–746. CiteSeerX 10.1.1.97.5395. {{cite journal}}:Cite 저널은 필요로 한다. journal=(도움말)
  4. ^ Bass, Len; Clements, Paul; Kazman, Rick (2013). "Chapter 17". Software Architecture in Practice (third ed.). Pearson. ISBN 978-0-321-81573-6.
  5. ^ 세르반테스 H, Kazman R, 소프트웨어 아키텍처 설계, 애디슨 웨슬리, 2016.