태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.


2008/07/29 15:19

[SA강좌] Part 1-7 소프트웨어 아키텍처의 특징과 역활




주의 : 아래 글은 전적으로 개인적으로 짧은 지식과 소견으로 쓰는 글입니다. 제 전공은 경제학이나 국제금융도 아니고 외환이나 주식관련 애널리스트도 아닙니다. 따라서 아래 정보를 활용해서 발생하는 손실이나 손해에 대해서는 아무런 책임을 질 수가 없음을 밝힙니다. 그리고, 여기에 쓰는 글은 여기저기 널려있는 수많은 정보중에서 제 맘대로 발췌해서 만든내용일 가능성이 대다수입니다. 이 정보를 자신을 위해 사용할 때의 결정은 자기자신만이 할 수가 있는 것이기 때문에 이 글을 읽으실때에는 그냥 편하게 읽어주십시요.
참고로... 저는 무정부주의자도 아니고, 누구를 모함하거나 잘못된 정보를 전달하기 위해 만들어진 글도 아닙니다. 정부의 정책을 반대하는 것도 아니고, 동조하지도 않습니다. 그냥 개인적인 의견이므로 다음부터 나열되는 글을 읽기가 걱정되시면 그대로 페이지를 닫아주시기 바랍니다. 저는 미네르바 처럼 잡혀가기 싫습니다.


소프트웨어 아키텍처의 특징

소프트웨어 아키텍처의 특징은 다음과 같다.

첫째, 소프트웨어 아키텍처는 시스템에 대한 추상화이다. 따라서 지엽적인 정보는 포함하지 않는다. 큰 그림만을 가지고 있는다.

둘째, 소프트웨어 아키텍처는 한가지 다이어그램으로는 결정되지 않으며 여러 관점의 다이어그램으로 이루어진다.

각각의 세부적인 것이 아니라, 건축물의 투시도와 같으며, 옷 디자이너의 스케치와 유사한 성격을 가진다.

소프트웨어 아키텍처의 역할

소프트웨어 아키텍처가 시스템 개발에서 담당하는 역할은 다음과 같다고 볼 수 있다.

첫째, 관련 당사자들 사이의 의사 소통의 수단이다.

둘째, 개발 프로젝트 초기 단계에서 의사결정 도구이다. 아키텍처는 품질 요소를 결정하며 프로젝트 조직에 영향을 끼친다.

셋째, 시스템의 전체 구조를 결정한다.

넷째, 개발 프로젝트의 조직을 결정하는데 참고할 수 있다.

다섯째, 시스템이 가져야 할 품질 요소를 결정한다. 따라서 아키텍처를 통해 시스템이 어떤 품질을 가질 것인지 예측할 수 있다.

여섯째, 아키텍처를 통해 시스템 개발자들에게 어떤 교육을 시킬 것이지 결정할 수 있다.

일곱째, 소프트웨어의 변경 사항을 어떻게 관리할 것인지를 알려준다.

상당한 역할이지 않은가? 이를 도식화 하면 다음과 같은 그림이 만들어진다.

그림 Ⅱ-2. 소프트웨어 아키텍처가 시스템 구축 시 하는 역할

그림 Ⅱ-2는 소프트웨어 아키텍처가 시스템 구축 시 담당하는 역할을 보여준다.

기능적, 비기능적 요구사항은 소프트웨어 아키텍처를 설계하는데 입력 산출물로 작용한다. 소프트웨어 아키텍처가 결정되면 설계패턴과, 설계 가이드라인을 사용하여 소프트웨어를 설계할 수 있다. 또한 소프트웨어 아키텍처가 결정되면 코드 작성시 코드 표준, 코드 가이드라인을 제공할 수 있다. 또한 소프트웨어 아키텍처는 소프트웨어를 시스템에 배포 시에 가이드라인을 제공한다.

이를 반복에 의해서 구조적으로 안정적인 소프트웨어 아키텍쳐를 구성할 수 있다.

크리에이티브 커먼즈 라이선스
Creative Commons License



Trackback 0 Comment 0