9. [정처기 필기] 객체지향/아키택처 패턴/모듈
1.아키택처 패턴
-파이프 필터 패턴 : 데이터 스크림 절차의 각단계를 필터 컴포넌트로 캡슐화하여
파이프를 통해 데이터를 전송하는 패턴 ( 데이터 이동시 데이터 변환으로 인한 오버헤드가 발생 )
-MVC(Model-View-Controller) 패턴 :
모델 : 서브시스템의 핵심 기능과 데이터를 보관
뷰 : 사용자에게 정보를 표시함
컨트롤러 : 사용자로부터 입력된 변경 요청을 처리하기 위해 모델에게 명령을 보냄
-마스터 슬레이브 패턴
동일한 구조의 슬레이브 컴포넌트로 작업을 분할한 후 슬레이브 컴포넌트에서
처리된 결과물을 다시 돌려받는 방식.
장애 허용 시스템과 병렬 컴퓨팅 시스템에서 주로 활용
2. 객체지향
-객체 : 데이터와 데이터를 처리하는 함수를 묶어 놓은(캡슐화한) 하나의 소프트웨어 모듈
-메시지 : 객체들 간에 상호작용을 하는데 사용되며 객체에게 지시하는 명령 또는 요구사항
-클래스 : 공통된 속성과 연산을 갖는 객체의 집합. 각각의 객체는 인스턴스
-캡슐화 : 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는것
-상속: 이미 정의된 상위 클래스의 속성과 연산을 하위 클래스가 물려 받는것
-다형성:메시지에 의해 객체(클래스)가 연산을 수행하게 될 때 하나의 메시지에 대해
각각의 객체(클래스)가 가지고 있는 고유한 방법으로 응답할 수 있는 능력
ex)오버로딩, 오버라이딩
-집단화 : 관련 있는 객체들을 묶어 하나의 상위 객체를 구성
3. 객체지향 분석 및 설계
- Coad와 Yourdon방법 : E-R 다이어그램을 사용하여 객체의 행위를 모델링함.
- 럼바우의 분석 기법 :
객체 모델링 (객체 다이어그램으로 표시) ,
동적 모델링 (상태 다이어그램 표현),
기능 모델링 (자료 흐름도를 이용하여 처리)
4. 객체지향 설계원칙
-단일 책임 원칙 : 단 하나의 책임만 가져야함. 결합도 낮고 응집도 높게
-개방 폐쇄 원칙 : 기존의 코드를 변경하지 않고 가능을 추가할 수 있게
-리스코프 치환 원칙: 자식 클래스는 자신의 부모 클래스에서 가능한 행위를 수행할 수 있어야함
-인터페이스 분리 원칙 : 자신이 사용하지 않는 인터페이스와 영향을 받지 않아야 함
-의존 역전 원칙 : 추상성이 낮은 클래스보다 높은 클래스와 의존 관계를 맺어야함
5. 모듈
-모듈화를 통해 분리된 시스템의 각 기능( 서브루틴,작업 단위 등의 의미)
- 단독으로 컴파일이 가능하며 재사용 할 수 있음
- 모듈은 다른 모듈에서의 접근이 가능
6. 결합도의 종류
낮은순 <<< 높은순
자료(Data) < 스탬프(Stamp) < 제어(Control) < 외부(Extemal) < 공통(common) < 내용(Content)
7. 응집도
-명령어나 호출문 등 모듈의 내부 요소들의 서로 관련되어 있는 정도.
-모듈이 독립적인 기능으로 정의되어 있는 정도.
(결합도가 낮고 응집도가 높으면 좋음)
낮은순<<< 높은순
우연적(Coincidental) < 논리적(Logical) < 시간적(Temporal) < 절차적(Procedural)
< 교환적(Communication) < 순차적(Sequential)< 기능적(Functional)