강승준 SW공학센터 SW공학기술팀 책임연구원


▲ 강승준 SW공학센터 SW공학기술팀 책임연구원



전체 구성


1회는 아키텍처의 기본 개념을 이해하고 소개하는 내용을 다루고, 2회는 전체 아키텍처 설계 사이클에 대한 내용을 다루며, 3회는 시스템이 SW 아키텍처에 요구되는 품질 사항을 도출해 내는 방법, 4회는 도출된 품질 요구사항을 달성할수 있는 아키텍처를 설계하고 정제하고 진화시킬 수 있는 방법, 5회는 이렇게 작성된 아키텍처의 결정사항을 분석하고 검증하는 방법에 대하여 다루고자 한다.

들어가며

본 칼럼의 내용은 SW 아키텍처 설계에 대한 기존의 이론과 내용을 기반으로 초급의 개발자가 쉽게 이해하고 따라하게 하기 위한 목적으로 활용 가능하다. 주로 카네기멜론대학 SEI(Software Engineering Institute)의 아키텍처 철학을 기반으로 현재까지 발표 혹은 출판된 내용을 기본으로 다른 방법론의 장점을 추가하여 구성하였고, 중요한 핵심 내용만을 대상으로 정리하였다. 본문에서 다루는 모든 내용의 출처는 참고문헌에 있음을 밝힌다.

SW 아키텍처 설계

1.1 개요

SW 아키텍처는 SW 개발 결과물이 가져야 하는 품질속성이 문제없이 시스템에 포함될 수 있도록 하는 시스템을 위한 계획이자 설명서이다. 즉, 시스템에 요구되어지는 속성 중 어느 하나에도 치우치지 않고 서로 간의 균형과 동등함을 만들어 내는 청사진이다.

1.2 SW 아키텍처의 이해

SW 아키텍처의 정의

·아키텍처는 소프트웨어 요소간의 관계 정보를 가진다.

·하나 이상의 아키텍처 요소와 한 가지 이상의 연관 관계로 구성될 수 있다.

·시스템의 공통성을 추상화시켜 다양한 행동과 개념, 패턴, 접근 방법, 결과 등을 나타낸다.

·외부에 들어나는 시스템 요소의 행위는 다른 시스템 요소와의 상호 작용방법을 제시한다.

기타 관점

·소프트웨어 아키텍처는 상위 수준의 설계이다.

·아키텍처는 시스템의 전체적인 구조를 표현한다.

·아키텍처는 컴포넌트들의 구조, 그들 간의 상관관계, 시스템설계를 통제하고 향후 진화에 영향을 주는 원칙이며, 지침이다.

·아키텍처는 컴포넌트와 시스템 실행 시에 발생하는 데이터나 제어권이 이동방식을 나타내는 커넥터를 나타낸다.

SW 아키텍처의 특징

아키텍처를 수립하면서 아키텍트는 그들이 만드는 설계 규칙을 통하여 훌륭한 시스템을 만들 수 있도록 지원해야하며, 일반적으로 훌륭한시스템은 다음과 같은 특징을가지고있다.

·고객이 요구하는 기능을 갖추고 있다.

·주어진 일정에 맞추어 구축할 수 있다.

·목적에 맞게 수행을 한다.

·신뢰성이 있다.

·유용하며 안정적이다.

·보안상 안전하다.

·비용이 알맞다.

·합법적인 기준을 따른다.

·이전 시스템 및 경쟁자들보다 더 오래 지속된다.

·SW아키텍처가 일반적으로 가지는 특성을 만족한다.

- 성능, 신뢰성, 기능성, 변화성, 가용성, 플랫폼 호환성, 수용력, 시스템 배치 환경, 모듈성, 구축력, 메모리 사용효율, 변경 용이성, 사용 편의성, 상호 운용성, 생산력, 보완성 등의 특성이 존재한다.


<이하 상세 내용은 컴퓨터월드 4월 호 참조>

저작권자 © 아이티데일리 무단전재 및 재배포 금지