728x90
300x250
소프트웨어 아키텍처(Software Architecture) 란?
개념적 의미
여러 가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중 외부에 드러나는 특성, 그리고 구성 요소 간의 관계를 표현하는 시스템 구조나 구조체
좀 더 자세히 설명하면
소프트웨어 아키텍처에서 아키텍처 = 구조 소프트웨어는 여러가지 기능들로 구성되어있습니다. 예를들어 포토샵만 봐도 도형그리기, 색칠하기, 저장하기, 글씨쓰기 등 다양한 기능들이 존재 합니다. 그래서 이렇게 수많은 기능 하나하나의 부품들을 어떻게 연결시켜 관계를 맺었는지 각각의 요소들간의 관계를 표현하는 것 각 부품의 기능들을 쭉 뽑아서 이해 관계자들이 모여서 이런이런 기능들을 어떻게 배치할지 얘기해서 결정합니다 하나의 의사소통 도구로 활용 되는 것입니다. |
소프트웨어를 구성하고 있는 작은 기능 하나하나 단위를 모듈이라고 하고
이 모듈을 기능별로 묶어 놓은 집합을 컴포넌트라고 합니다.
그리고 이 전체를 라이브러리라고 합니다.
그래서 하나의 소프트웨어를 개발할때 이런 수많은 모듈들을 어떻게 분할하고 어떻게 배치할 것인가
파일 메뉴에는 어떤 기능을 편집에는 어떤 기능을 배치할 것인가 이런 것들을 결정할 때 참고하는 것이 소프트웨어 아키텍처이고 건물로 따지면 설계도 평면도에 해당하는 것 입니다.
소프트웨어 아키텍처 설계의 기본 원리에는 모듈화, 추상화, 단계적 분해, 정보은닉이 있습니다.
- 모듈화 : 소프트웨어 성능 향상 및 유지관리 등이 용이하도록 시스템의 기능을 모듈단위로 나누는 것
- 추상화 : 전체적이고 포괄적인 개념을 설계한 후에 구체화시켜 나가는 것
- 단계적 분해 : 상위 개념부터 하위 개념으로 구체화 시키는 분할 기법 하향식 설계 전략
- 정보은닉 : 모듈 내부에 정보와 자료들을 숨겨서 다른 모듈이 접근하거나 수정 못하도록 하는 기법
728x90
반응형
'정보처리기사' 카테고리의 다른 글
소프트웨어 아키텍처 패턴 (0) | 2021.06.02 |
---|---|
소프트웨어 아키텍처 4+1 뷰 (0) | 2021.05.29 |
현행 시스템 파악 (0) | 2021.05.27 |
선택 정렬 (Selection sort) 오름차순, 내림차순 (0) | 2021.05.14 |
소프트웨어 개발 국제 품질 표준 (0) | 2021.05.13 |
댓글