SW/클라우드 서비스 아키텍처

소프트웨어 아키텍처 : 평가 절차, CBAM, 사례 : 개념, 정의, 개요

얇은생각 2020. 5. 15. 19:30
반응형

소프트웨어 아키텍처 : 평가 절차, CBAM, 사례 : 개념, 정의, 개요

 

아키텍처의 평가 절차

첫째 단계는 평가방법 준비 단계로 이 단계에서는 아키텍처 평가 방법을 결정합니다. 둘째 단계에서는 아키텍처와 아키텍처 분석관점을 사용하여 분석을 수행하고 분석결과를 얻습니다. 분석결과는 아키텍처 설계를 통하여 이미 도출되어 있는 경우 이를 사용하면 됩니다. 그

렇지 않은 경우는 새로이 분석을 수행하여야 합니다. 마지막 단계에서는 단계2로부터 얻어진 분석결과에 대하여 단계1에서 결정된 종합 방법을 적용하여 평가결과를 얻습니다.

 

 

CBAM

CBAM 절차는 아키텍처 설계의 방향을 결정하는 아키텍처 전략들과 분석관점을 형성하는 N개의 품질속성 시나리오를 입력으로 하여 평가를 수행하고 평가결과로 각 아키텍처 전략의 순위를 결정합니다. CBAM은 비용과 이득 관점의 계량적 분석 방법으로 합리적인 선택을 하는데 효과적입니다. 이와 같은 방법을 쓰지 않을 경우 쉽게 불합리한 판단을 할 수 있습니다.

예를 들어 3개의 아키텍처 전략 AS1, AS2, AS3 가운데 가장 좋은 선택을 하기 위하여 각 전략을 VP1, VP2, VP3의 관점으로 분석합니다. 해당 관점에서 좋은 전략은 동그라미, 나쁜 전략은 엑스, 중간 전략은 세모로 표기합니다. 만일 각 관점의 가치가 달라서 VP1이 100, VP2가 10, VP3이 1만큼의 가치가 있다면 상황은 달라집니다.

예를 들어 동그라미는 해당가치를 전부 갖고, 엑스는 전혀 갖지 않고, 세모는 반만큼만 갖는 다고 가정합니다. AS1은 110의 가치를 갖는데 비하여 AS2의 가치는 61에 불과 합니다. 따라서 AS2를 선택하는 것은 좋은 결정이 아닌 것입니다. CBAM은 9개의 단계로 구성되며, 단계2부터 단계9까지를 필요에 따라 반복할 수 있습니다.

반복I은 비용과 이득만을 고려하는 기본적인 CBAM으로 아키텍처 전략들의 최초의 순위를 결정합니다. CBAM의 반복II는 반복I의 기본적인 CBAM 결과를 바탕으로 수행됩니다. 반복II에서는 위험을 추정하고 불확실성을 고려한 더 정교하고 현실적인 아키텍처 전략들의 우선순위를 도출합니다. CBAM의 단계들 중 단계 3, 7, 8은 평가에 속하는 단계입니다. 단계 4, 5, 6은 엄밀하게는 분석을 수행하는 단계들입니다.

 

 

ECS 시스템 사례 연구

CBAM의 사례연구에서 사용되는 대상 시스템은 지구관측시스템의 핵심 서브시스템인 ECS입니다. ECS시스템의 프로젝트 관리자는 ECS시스템 유지보수를 위하여 제한된 예산으로 적은 수의 아키텍처 전략을 선별해서 구현해야 하는 상황입니다.

CBAM을 적용하기 위하여 ATAM을 이용한 사전분석을 통하여 이해관계자들로부터 많은 아키텍처 전략들을 수집합니다. 이제 프로젝트 관리자는 CBAM을 적용하여 ROI, 즉 투자수익률에 기초하여 아키텍처 설계전략들을 선택합니다.

이제 CBAM 의 반복I을 수행합니다. 반복I의 수행을 위하여 단계1부터 9까지를 실행합니다. 단계1에서는 ATAM에서 얻어진 시나리오들과 이해관계자들로부터 추가적으로 추출된 시나리오를 모아 정리합니다. 단계1에서 얻어진 시나리오는 측정 가능한 형태가 아닙니다.

단계2에서는 자극/응답의 측정 가능한 형태로 분석하고 동시에 최악의 경우, 현재의 경우, 바람직한 경우, 최상의 경우의 응답수준별로 응답목표치를 결정합니다. 새로 개발하는 시스템은 현재의 경우가 없습니다. 그러나, 사례연구의 개발은 기존의 시스템을 업그레이드하는 개발이기 때문에 현재의 경우를 포함하게 됩니다.

평가에 참가한 이해 당사자들로부터 응답목표치를 입력 받습니다. 입력 값들의 평균치나 Wideband Delphi 방법과 같은 적절한 선정방법을 통하여 단일한 목표치로 결정된 결과입니다. 단계3에서는 평가 팀의 구성원은 개별적으로 혹은 팀 전체로서 총 100점의 점수를 선택된 시나리오 집합에 할당합니다.

시나리오는 시스템의 서비스 시나리오이고 시스템의 서비스는 시스템의 가치를 만듭니다. 또한 시스템의 서비스마다 각기 그 가치가 다릅니다. 같은 서비스의 경우에도 제공되는 서비스의 수준에 따라 가치가 달라집니다. 시스템이 제공하는 다양한 서비스의 가치를 통일적으로 책정하기 위하여 효용 값이라는 개념을 사용하기로 합니다.

단계4에서는 평가 참여자들의 합의에 의하여 각 시나리오의 효용값을 결정합니다. 효용값 0은 효용값의 최소치이고 100은 최대치입니다. 예를 들어 시나리오7의 현재의 응답수준은 50% 정보수신입니다. 이 응답수준의 효용값은 표에 따르면 70입니다.

단계5에서는 도출된 아키텍처 전략별로 표의 시나리오에 대하여 각 아키텍처 전략이 달성하는 응답수준을 결정합니다. 아키텍처 전략은 ATAM을 진행하며 도출할 수도 있고, 이 단계에서 새로이 도출할 수도 있습니다.  하나의 아키텍처 전략은 여러 개의 시나리오에 영향을 줄 수 있습니다.

예를 들어 여덟 번째 “주문실패 통지" 아키텍처 전략은 시나리오6과 시나리오7, 두 개의 시나리오에 영향을 미칩니다. 이 아키텍처 전략을 적용한 후 시나리오 6의 경우에는 현재 시스템의 "25% 도움 필요" 응답 수준이 "20% 도움 필요" 응답 수준으로 좋아집니다. 시나리오7의 경우 현재 시스템의 "50% 정보수신" 수준이 "90% 정보수신" 수준으로 높아지게 됩니다.

단계6에서는 각 시나리오별로 단계 4에서 얻은 최악의 경우, 현재의 경우, 바람직한 경우, 최상의 경우의 효용값을 참조하여 기대응답수준의 효용값을 결정합니다. 예를 들어 AS8의 경우에 시나리오 6의 응답수준 "25% 도움 필요"에서 "20% 도움 필요"로 개선됨에 따라 효용값은 현재의 80에서 85로 증가합니다.

시나리오7의 응답수준이 "50% 정보 수신"에서 "90% 정보수신"으로 높아짐에 따라 효용값도 현재의 70에서 90으로 증가하게 됩니다.  단계7에서는 각 아키텍처 전략이 주는 총 이득은 슬라이드의 계산식을 사용하여 계산합니다. 단계8에서는 각 아키텍처 전략에 대하여 비용을 추정합니다.

비용 추정은 과거의 데이터가 있는 경우 데이터에 기초하여 수행할 수 있습니다. 데이터가 없는 경우 아키텍처 평가 참여자들의 의견에 기초하여 수행합니다. 그리고 각 아키텍처 전략별 ROI를 계산식을 사용하여 계산합니다. 그러면 각 아키텍처 전략의 ROI 값에 따라 맨 오른쪽 열과 같이 결정됩니다. 예를 들어 여덟 번째 아키텍처 전략이 적용될 경우 그 비용은 300으로 추정되고, 총 이득은 표에서 계산된 것처럼 150입니다.

따라서 이 전략의 ROI는 0.5가 됩니다. 이는 세 번째로 높은 ROI 값으로 이 전략의 우선순위는 3이 됩니다. 마지막 단계인 단계9에서는 이러한 순위가 기업의 사업목표와 부합하는지 확인합니다. 중요한 문제점이 있으면 잘못된 부분을 수정하여 앞의 단계들을 다시 반복합니다. 이러한 반복은 결과가 직관과 일치할 때까지 다시 수행됩니다.

CBAM의 반복I에서 한 비용과 이득 관점의 분석은 합리적인 선택을 하는 데 상당히 도움을 주지만 아주 합리적인 결과를 주지는 않습니다. 우선 반복I에서 나온 많은 수치들이 불확실한 수치들입니다. 따라서 이들이 불확실한 수치라는 것을 반영함으로써 더 합리적인 결과를 만들 수 있습니다.

또한 반복I의 비용과 이득 관점의 분석은 위험요인을 반영하지 않았습니다. 위험 요인은 아직 실현되지는 않았지만 위험을 일으킬 수 있는 요인들을 지칭합니다. 합리적인 선택을 하기 위해 위험요인을 고려해야 하는 이유는 다음의 예를 생각해 보면 쉽게 알 수 있습니다.

100만원을 은행에 1년간 저금하면 1년 후 100%의 확률로 105만원을 받을 수 있습니다. 회사채를 사면 1년 후 50%의 확률로 140만원을 받거나 50%의 확률로 50만원을 받는다고 가정합니다. 회사채가 140만원을 받을 수 있는 가능성이 있어 일견 좋은 선택으로 보일 수 있습니다. 그러나, 50%의 확률로 원금이 반으로 줄어드는 위험이 있다는 것이 그것을 더 위험한 선택으로 만드는 것입니다.

그러면 위험요인과 불확실성을 반영한 CBAM의 반복II를 수행하겠습니다. 반복II에서 위험요인 분석을 위하여 각 아키텍처 전략 별로 위험요인을 식별합니다. 각 위험요인에 대해서 발생확률, 발생할 경우의 응답수준 및 효용값의 변경에 대한 파급효과, 또한 완화전략을 평가하거나 파악합니다.

첫 번째 아키텍처 전략의 경우에는 총 다섯 개의 위험요인이 식별되었습니다. 그러나, 두 번째와 세 번째 아키텍처 전략의 경우에는 아무런 위험요인도 식별되지 않았습니다. 반복II에서는 이해관계자들에 의하여 결정된 위험요인의 파급효과와 발생확률에 따라 이득과 비용을 재계산합니다. 불확실성을 반영하기 위하여 비용과 이득을 특정한 값 대신 최소치와 최대치의 범위로 나타냅니다.

따라서 최대치는 CBAM 반복I에서 얻은 특정 값에 10%를 더한 값으로, 최소치는 10%를 뺀 값으로 합니다. 또한 ROI 계산에서 ROI 최소치는 이득최소치을 비용최대치로 나눈 값이 되고, ROI 최대치는 이득최대치를 비용최소치로 나눈 값이 됩니다. 그리고 ROI 기댓값은 최소치와 최대치의 평균으로 계산합니다.

첫 번째 아키텍처 전략의 경우 앞의 위험분석에서 다섯 가지의 위험요인이 수반된 전략으로 식별되었습니다. 각 위험요인이 상당한 추가비용을 발생시킬 수 있는 요인들이었습니다. 따라서 이 전략의 최소 비용은 CBAM 반복I에서 계산된 값과 동일하고, 최대비용은 크게 늘어났습니다.

 

 

CBAM 기법을 사용한 아키텍처 평가

CBAM의 사례연구에서 다양한 아키텍처 전략 후보들을 놓고 그들의 ROI와 우선순위를 결정하는 평가 방법을 보았습니다. 그러나 궁극적으로 평가하고자 하는 대상은 아키텍처 전략이 아니라 아키텍처로 아키텍처는 하나 이상의 아키텍처 전략이 적용되어 얻어집니다.

따라서 아키텍처 평가를 위하여는 전략들의 우선순위를 결정하는 것으로서 충분하지 않습니다. 개별적인 전략의 가치를 합산할 수 있는 방법이 있어서 시스템 개발에 적용될 전략들의 집합을 결정할 수 있어야 합니다.

CBAM의 적용결과인 전략들의 우선순위만 가지고는 아키텍처 평가라고 볼 수 없습니다. 그러나, ROI 관점에서 최적화된 아키텍처를 결정하는 전략들의 집합은 일종의 아키텍처 평가로 볼 수 있습니다.

한편 원자력 발전소의 제어소프트웨어의 경우처럼 안전성이 지배적인 관심사항인 경우 ROI관점의 아키텍처 평가보다는 안전성을 최우선으로 하는 평가도 해당 시스템을 위한 적절한 아키텍처 평가 방법이 될 것입니다.

반응형