[아키텍쳐 설계]
- 구성하는 요소들 간의 관계
- 비기능요구사항의 제약을 반영 + 기능을 구현하는 방법 찾아내는 과정
<구성요소>
- 모듈화 : 자주사용되는 인증등은 모듈로 구성 > 재사용 가능하도록
- 추상화 : 전체적인 개념 설계 먼저 > 세분화 ( 자동차 - 탈것 )
` 과정 추상화 , 데이터 추상화 , 제어추상화
- 단계적 분해 : 추상화의 반복으로 단계화
- 정보 은닉 : 다른 모듈이 접근하여 변경하지 못하도록, 인터페이스를 통해 기능으 수행할수 잇다.
< 아키텍쳐 품질 속성>
- 시스템 측면 : 성능, 보안, 가용성, 기능성, 사용성 , 변경 용이성, 확장성,
- 비즈니스 측면 : 시장에 맞는 시간에 출시 , 비용 , 예상수명
- 아키텍쳐 측면 : 무결성, 정확성, 구축가능성
[아키텍처 패턴]
레이어패턴 > 마주보는 두개 계층에서만 사용 >변경시에도 서로만 신경쓰면 되므로 수월
> 특정계층만 교체가 가능
> OSI 7계층 있음 ( 물데네 전세표 응 )
클라이언트 서버 패턴 - 서버는 항상 대기 상태 유지.
- 서버와 클라이언트는 서로 독립적
파이프 필터 패턴 - 데이터 스트림 절차. 각 단계를 필터컴포넌트로 캡슐화
- 필터 컴포넌트 : 재사용성 좋다. 추가가 쉽다. 재배치하여 파이프라인 새로 만든기 가능.
- 버퍼링, 동기화, 데이터 변환 등에 사용 > 유닉스의 쉘이 있다.
MVC 패턴 - 모델 : 서브시스템의 핵심 기능 ,데이터 보관 / 컨트롤러 : 사용자로부터 받은 입력을 처리한다.
: 서로 분리 되어 컴포넌트로 존재 . 즉, 따로개발가능
: 대화형 애플리케이션 ( 요구가 발생하면 요구를 처리하는 ) 여러개의 뷰가 가능하므로,
마스터슬레이브 패턴 : 슬레이브 컴포넌트의 결과를 작업의 주체인 마스터컴포넌트가 받아서 처리.
: 장애허용시스템 , 병렬 컴퓨팅 시스템
브로커 패턴 : 사용자가 브로커에게 원하는 기능 알려주면 알맞은 컴포넌트 제시.
: 분산환경 에서 사용 , 원격 서비스호출에 응답하는 컴포넌트들이 많을떄 사용
이벤트 버스 패턴 : '소스'에서 이벤트 발생하면 구독(subscribe) 한 컴포넌트 '리스너 ' 들이 '버스가 관리하는 채널'을 통해 메세지 받음.
피어투 피어 패턴 : 서로가 클/서버 가 되줄 수 있다. 전형적인 '멀티 스레딩' 방식
블랙보드 패턴 : 모든 컴포넌트들이 블랙보드에 있고, 공유된다.
인터프리터 패턴 : '작성된 프로그램 코드를 해석하는 컴포넌트'를 설계 할떄 사용
[ 객체 지향 ]
객체, 클래스, 상속, 캡슐화 : 데이터와 처리메소드 합치기 ( 정보은닉 , 결합도 낮아짐 ), 다형성
[모듈]
독립성 : 한개 기능만, 타 모듈과 지나친 상호작용 x , 결합도 약하게 응집도 높게
응집도 : 얼마나 박스로 필요한것끼리 잘 구분해놓았는지.
(강)
- 기능적 응집도 : 한 모듈의 모든 기능 요소은 단 한개의 문제해결을 위해서 만들어짐
- 순차적 응집도 : 출력을 입력으로 받아 쓰는 경우.
- 절차적 응집도 여러 관련 기능이 있을경우
- 논리적 응집도 : 유사한 성격으로 분리되는 처리요소들만 엮여있음
(약)
결합도 : (약) 자료 결합도 스탬프 결합도 제어 결합도 외부 결합도 공통 결합도 내용 결합도 (강)
'개발론' 카테고리의 다른 글
인증 / 인가의 차이 (0) | 2020.09.21 |
---|---|
로그인 에 대하여. (0) | 2020.09.21 |
TDD (Test Driven Development) (0) | 2020.09.15 |
다양한 프로토콜들의 기능적이해, 블록체인 사용사례 (0) | 2020.09.10 |
[1-1]소프트웨어설계 - 요구사항 확인 (0) | 2020.06.01 |