SW 아키텍쳐
SW 구성 요소 간의 관계 표현하는 시스템, 구조/구조체
- 사용자의 비기능적 요구사항으로 나타난 제약 반영
- 기능적 요구사항을 구현하는 방법을 찾는 해결 과정
- 개발할 SW 기본 틀을 만드는 것, 복잡한 SW 개발 과정을 체계적으로 접근하기 위한 밑그림
소프트웨어 아키텍처 4+1뷰 : 유스케이스 , 논리 , 프로세스 , 구현 배포 뷰
기본 원리 4가지 #모추단정
1) 모듈화(Modularity)/ 서브 시스템, 서브루틴,work unit
- 시스템 기능들을 모듈 단위로 나눠 소프트웨어의 성능 및 재사용성을 향상시키는 것
- 모듈의 크기 多: 모듈 개수 적음 | 모듈 간 통합 비용 적음 | 모듈 하나의 개발 비용 큼
- 모듈의 크기 小: 모듈 개수 많음 | 모듈 간 통합 비용 큼
2) 단위 모듈 구현의 원리
- 데이터 추상화(Data Abstraction) 각 모듈 자료 구조를 액세스하고 수정하는 함수내에 자료 구조의 표현 내역을 은폐
- 분할과 정복(Divide & Conquer) 복잡한 문제를 분해, 모듈 단위로 문제 해결
- 정보 은닉(Information Hiding) 어렵거나 변경 가능성이 있는 모듈을 타 모듈로부터 은폐
- 모듈 독립성(Module Inpendency) 낮은 결합도와 높은 응집도
2.1) 추상화(Abstraction)
- 전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화 시키는 것(불필요한 부분 생략)
- 과정 추상화: 자세한 수행 과정을 정의하지 않고, 전반적인 흐름만 파악
- 데이터 추상화: 데이터의 세부적인 속성/용도를 정의하지 않고, 데이터 구조를 대표 표현으로 대체
- 제어 추상화: 이벤트 발생의 정확한 절차나 방법을 정의하지 않고, 대표하는 표현으로 대체
2.2) 단계적 분해(Stepwise Refinement)
- Niklaus Wirth에 의해 제안된 하향식 설계 전략
- 추상화의 반복에 의해 세분화
- 소프트웨어 기능에서부터 시작해 절차적으로 구체화
- 상세한 내역은 가능한 한 뒤로 미루어 진행
2.3) 정보 은닉(Information Hiding)
- 한 모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법
- 정보 은닉을 통한 독립적 모듈 수행 가능 (고려되지 않은 영향(side effect) 최소화)
- 모듈 변경 시 영향을 받지 않아 수정, 시험, 유지보수 용이
3)설계 단계 20년 4회 필기
(1) 상위설계 : 아키텍처/예비 설계
시스템의 전체적인 구조(아키텍처), DB, 인터페이스 를 설계한다.
(2) 하위설계: 모듈/상세 설계
컴포넌트, 자료 구조, 알고리즘과 같은 시스템 내부 구조 및 행위를 설계한다.
4) 협약(contract) 20년 3회 필기
협약에 의한 설계는 컴포넌트를 설계할 때 클래스에 대한 여러 가정을 공유할 수 있도록 명세
명세에 포함할 3가지 조건
1) 선행 조건: 컴포넌트 오퍼레이션 사용 전에 참이 되어야함
2) 결과 조건: 사용 후 만족되어야함
3) 불변 조건: 오퍼레이션이 실행되는 동안 항상 만족되어야 함
'Challenges > 정보처리기사' 카테고리의 다른 글
[정보처리기사]1. 소프트웨어 설계/애플리케이션 설계/아키텍쳐 패턴 (0) | 2021.08.09 |
---|---|
[정보처리기사]1. 소프트웨어 설계/애플리케이션 설계/객체지향 (0) | 2021.08.09 |
[정보처리기사]1.소프트웨어 설계/화면설계/품질 요구사항 (0) | 2021.08.08 |
[정보처리기사]1.소프트웨어 설계/화면설계/사용자 인터페이스 (0) | 2021.08.07 |
[정보처리기사]1.소프트웨어 설계/화면설계/사용자 인터페이스 시나리오 (0) | 2021.08.07 |