소프트웨어 아키텍쳐
1. 설계
- S/W 개발의 원칙이자 지침
- 사용자의 비기능적 요구사항 제약 반영, 기능적 요구사항 구현
- 어플리케이션 분할방법 & 분할된 모듈에 할당될 기능, 모듈간의 인터페이스 결정
2. 모듈화
- 공통모듈 구성하여 프로젝으틔 재사용성 향상이 목적
- 모듈크기 감소 = 통합비용 상승 / 모듈크기 증가 = 통합비용 감소
3. 추상화
- 점차 세분화, 구체화 하는것
- 최소비용으로 실제 상황 대처 & 시스템 구조 & 구성 대략 파악
- 과정 추상화 / 데이터 추상화 / 제어추상화
4. 단계적 분해
- Niklaus Wirth에 의한 하향식 설계전량
- 상위 중요 개념 -> 하위 개념으로 구체화
5. 정보은닉
- 모듈의 독립적 수행 보장
- 다른 모듈에 영향을 주지 않음, 따라서 수정, 시험, 유지보수가 용이
6. 소프트웨어 아키텍처의 품질속성
- 시스템 측면 : 성능, 보안, 가용성, 기능성, 사용성, 변경용이성, 확장성, 기타속성
- 비즈니스 측면 : 시장적시성, 비용과 혜택, 예상 시스템 수명, 기타속성
- 아키텍처 측면 : 개념적 무결성, 정확성 & 완결성, 구축가능성, 기타속성
7. 소프트웨어 아키텍처의 설계과정
- 설계 목표 설정
- 시스템 타입 결정
- 아키텍처 패턴 적용
- 서브시스템 구체화
- 검토
아키텍처 패턴
1. 개요
- 시행착오 줄임 = 개발 시간 단축 = 고품질 소프트웨어 생산
- 검증된 구조로 개발 = 안정적
- 공통된 아키텍처 공유 = 의사소통 간편
- 시스템 이해도 쉬워 개발에 참여 x -> 손쉽게 유지 / 보수
- 시스템 특성 개발전 예측 가능
2. 레이어 패턴(계층형 구조)
- 서비스 제공자와 클라이언트 관계
- 특정 계층만 교체 용이
3. 클라이언트 서버 패턴
- 사용자는 클라이언트만 의사소통
- 서버는 항상 대기 유지
- 서버, 클라이언트는 요청과 응답 동기화를 제외하고는 서로 독립적
4. 파이프 - 필터 패턴
- 필터는 재사용성이 좋고, 추가가 쉬워 확장이 용이
- 필터 컴포넌트를 재배치하여 다양한 파이프라인 구축 가능
5. 모델 - 뷰 - 컨트롤러 패턴
- 모델 : 서브시스템의 핵심 기능 & 데이터 보관
- 뷰 : 사용자 정보 표시
- 컨트롤러 : 사용자로부터 받은 입력 처리
6. 기타패턴
- 마스터 - 슬레이브 패턴 : 마스터 -> 슬레이브로 작업 후 return받음 / 장애허용시스템 또는 병렬 컴퓨팅
- 브로커 패턴 : 사용자가 우너하는 서비스와 특성을 특정 컴포넌트와 매칭 / 분산환경 시스템
- 피어투피어 패턴 : 한 컴포넌트에 대해 서버가 될 수도 클라이언트가 될 수도 있는 패턴 / 멀티스레드 방식
- 이벤트 - 버스 패턴 : 이벤트 생성(source) -> Bus가 이벤트를 채널(연결통로)로 보냄 -> Listener가 이벤트 수행
- 블랙보드 패턴 : 해결책이 명확하지 않은 문제 처리에 유용
- 인터프리터 패턴 : 각 라인을 수행하는 방법 지정 & 기호마다 클래스 구성 / 특정언어로 작성된 프로그램 코드 해석하는 컴포넌트 설계에 사용
'자격증 > 정처기' 카테고리의 다른 글
정처기 실기 파트1 (0) | 2022.07.10 |
---|---|
정보처리기사 합격 후기 (3) | 2022.07.10 |
1과목 소프트웨어 설계_2 (0) | 2020.07.06 |
1과목 소프트웨어 설계_1 (0) | 2020.07.05 |
2020 정보처리기사 필기 정리 (0) | 2020.07.05 |