소프트웨어 아키텍처
소프트웨어 아키텍처
[소프트웨어 아키텍처]
소프트웨어를 구성하는 요소들 간의 관계를 표현한 시스템의 구조 또는 구조체
<소프트웨어 아키텍처 설계 기본 원리>
1. 모듈화 : 시스템의 기능들을 모듈 단위로 나누는 것
2. 추상화 : 전체적이고 포괄적인개념을 설계한 후 차례로 세분화하여 구체화시켜 나가는 것
- 과정 추상화
- 데이터 추상화
- 제어 추상화
3. 단계적 분해 : 하향식 설계로 문제를 상위의 중요 개념을 하위의 개념으로 구체화 시키는 분할 기법
4. 정보 은닉 : 모듈 안에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하게 하는 기법
<상위 설계와 하위 설계>
1. 상위 설계 : 상위에서는 시스템의 전체적인 구조, 즉 아키텍처 등 구조, DB, 인터페이스 등을 설계한다.
2. 하위 설계 : 하위에서는 시스템의 내부 구조 설계로, 모듈을 세부적으로 컴포넌트, 자료구조, 알고리즘 등을 설계한다.
<소프트웨어 아키텍처의 품질 속성>
소프트웨어 아키텍처의 품질 속성은 잘 설계되었는지 확인하기 위해 품질 평가 요소를 구체화시킨것이다.
1. 시스템 측면 : 성능, 보안, 기능 등 시스템적인 품질
2. 비즈니스 측면 : 시스템의 수명이나 목표 시장, 비용과 혜택 등 시스템 운영의 품질
3. 아키텍처 측면 : 구축 가능성, 개념적 무결성 등 만들기전 예상해보는것
<협약에 의한 설계>
컴포넌트를 설계할 때 클래스에 대한 여러 가정을 공유할 수 있도록 명세한 것
1. 선행 조건(Precondition) : 오퍼레이션이 호출되기 전에 참이 되어야 할 조건
2. 결과 조건(Postcondition) : 오퍼레이션이 수행된 후 만족되어야 할 조건
3. 불변 조건(Invariant) : 오퍼레이션이 실행되는 동안 항상 만족되어야 할 조건

읽어주셔서 감사합니다!
정처기 화이팅!