본문 바로가기
Software Engineering

Architectural Design

by Doromi 2019. 4. 20.
728x90
반응형

소프트웨어아키텍처란?

 

프로그램이나 컴퓨팅 시스템의 소프트웨어아키텍처는
소프트웨어 구성요소와 그들이 지니고 있는 특성 중에 외부에 드러나는 특성,
그리고 구성요소들의 관계를 표현하는 시스템의 구조나 구조체이다.

 

소프트웨어아키텍처는 소프트웨어 시스템의 구조(structure)를 정의하며 표현한다.
소프트웨어아키텍처는 상위 레벨의 추상화를 통해서 시스템의 전반적인 모습을 보여주는 것이다.

 

 

 

소프트웨어시스템은 여러 소프트웨어 요소 또는 컴포넌트로 구성된다.
소프트웨어 요소 또는 컴포넌트는 외부로 드러나는 속성 즉, 인터페이스를 갖는다.

 

소프트웨어아키텍처는 왜 중요한가?

1. 이해당사자 사이의 의사 소통 (이해당사자(고객)들이 동일하게 이해해야 되서 의사소통이 중요)

2. 초기 설계 결정 사항

3. 재사용할 수 있는 시스템의 추상화

 

비기능 요구사항과 품질속성(Quality Attribute)


- 비기능적인 요구사항들 중에서 특별히 소프트웨어아키텍처에 많은 영향을 미치게 하는

요구사항을 품질 속성(quality attribute)이라고 부른다.

- 소프트웨어아키텍처는 다른 비기능적인 요구사항 즉, 품질 속성이 중요할 때
비로소 그 가치를 이야기할 수 있는 것이 된다.

- 품질 속성을 소프트웨어 시스템에 실현하는데 있어서 소프트웨어아키텍처는 중요한 역할을 담당한다.
  

 

왜 아키텍처가 필요한가?

 

- 엔터프라이즈 시스템을 구축한다는 것은 간단한 프로그램을 작성하는 것과는 전혀 다르다.

- 일관되고 체계적인 프로세스를 통해서 견고한 아키텍처를 정립한 후에라야 성공적이며
효율적인 언터프라이즈 시스템을 개발할 수 있게 된다.

- 이것을 위해서는 소프트웨어 공학적인 지식과 풍부한 개발 경험을 가진 아키텍트가 필요함

- 아키텍트가 수행하는 작업의 최종 목적은 엔터프라이즈 시스템을 위한 견고한 

소프트웨어아키텍처를 정의하는 것

 

728x90
반응형

'Software Engineering' 카테고리의 다른 글

객체 지향 프로그래밍의 5원칙(SOLID)  (0) 2019.04.24
Architectural Views  (0) 2019.04.20
System Modeling  (0) 2019.04.20
Requirements Engineering  (0) 2019.04.20
애자일 개발 기법  (0) 2019.04.17