일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- vitis
- verilog
- 코딩테스트
- Zynq
- java
- 정처기
- axi
- C++
- amba
- Vivado
- linux
- Beakjoon
- AMBA BUS
- boj
- chip2chip
- hdl
- Bus
- Xilinx
- Backjoon
- 정보처리기사
- baekjoon
- 실기
- 자격증
- 백준
- SQL
- 리눅스
- verilog HDL
- UNIX
- FPGA
- HDLBits
- Today
- Total
Hueestory
4. 서버 프로그램 구현 본문
결합도, 응집도, 디자인 패턴
럼바우 분석 기법 : 모든 소프트웨어 구성 요소를 그래픽 표기법을 이용하여 모델링하는 기법, OMT
- 객체 모델링 : 객체 다이어그램, 객체 간의 관계를 규정하여 표시
- 동적 모델링 : 상태 다이어그램, 시간의 흐름에 따른 객체들 간의 제어 흐름, 상호 작용, 동작 순서 등 동적 행위를 표현
- 기능 모델링 : 자료 흐름도(DFD), 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현
객체지향 설계 원책(SOLID)
- 단일책임, 개방폐쇄, 리스코프 치환, 인터페이스 분리, 의존 역전
모듈화 : 시스템의 기능들을 모듈 단위로 나누는 것
결합도
- 내용 결합도 : 직접 참조, 수정
- 공유 결합도 : 공통 데이터 영역 공유
- 외부 결합도 : 외부 모듈에서 참조
- 제어 결합도 : 제어 신호나 제어 요소 전달
- 스탬프 결합도 : 자료구조가 전달
- 자료 결합도 : 인터페이스가 자료 요소로만 구성
응집도
- 우연적 응집도 : 서로 관련 없음
- 논리적 응집도 : 유사한 성격, 특정 형태로 분류
- 시간적 응집도 : 특정 시간에 처리되는 기능
- 절차적 응집도 : 기능을 순차적으로 수행
- 교환적 응집도 : 동일한 입출력을 사용해 서로 다른 기능을 수행
- 순차적 응집도 : 출력 데이터가 다음 입력 데이터
- 기능성 응집도 :모든 기능 요소들이 단일 문제와 연관
Fan In : 모듈을 제어하는 모듈 수
Fan Out : 모듈에 의해 제어되는 모듈 수
IPC : 모듈 간 통신 방식을 구현하는 프로그래밍 인터페이스
디자인 패턴
생성 패턴
- 추상 팩토리 : 서로 연관-의존하는 객체들의 그룹
- 빌더 : 인스턴스를 조합하여 객체 생성
- 팩토리 메소드 : 상위 클래스에서 인터페이스 정의, 하위 클래스에서 오버라이딩
- 프로토타입 : 원본 객체를 복제
- 싱글톤 : 한 클래스에서 한 객체만 존재
구조 패턴
- 어댑터 : 호환을 위해 인터페이스 덧씌움
- 브리지 : 구현부에서 추상층 분리
- 컴포지트 : 단일/복합 객체를 동일하게 다루며, 객체 관계를 트리 구조로 구성
- 데코레이터 : 객체 간 동적 결합으로 기능 확장
- 퍼싸드 : 결합도 낮추기 위해 단순한 인터페이스 제공
- 플라이웨이트 : 공통된 요소를 클래스화하여 공유
- 프록시 : 대리자
행위 패턴
- 책임연쇄 : 요청을 처리하는 객체가 둘 이상 존재
- 커맨드 : 요청에 대한 서브 클래스 선택
- 인터프리터 : 언어 문법 표현 정의
- 반복자 : 내부 구조를 노출하지 않고 순차적 접근 방법 제공
- 중재자 : 상호작용을 중재자를 두어 캡슐화
- 메멘토 : 객체 내부 상태를 객체화하고 돌리는 기능
- 옵저버 : 상태가 변화하면 상태 전달
- 상태 : 내부 상태를 캡슐화
- 전략 : 알고리즘군을 정의
- 템플릿 메서드 : 상위 클래스에서 추상적 정의, 하위 클래스에서 구체화
- 방문자 : 데이터 구조에서 처리 기능을 분리하고, 각 클래스를 방문하여 작업 수행
'challenge > 정보처리기사 실기' 카테고리의 다른 글
7. 애플리케이션 테스트 관리 (0) | 2024.10.18 |
---|---|
2. 데이터 입 출력 구현 (0) | 2024.10.18 |
9. 소프트웨어 개발 보안 구축 (0) | 2024.10.18 |
11. 응용 SW 기초 기술 활용 (2) | 2024.10.18 |
SQL 이론 (2) | 2024.10.16 |