반응형
다이어그램
- 사물과 관계를 도형으로 표현
- 정적 모델링에서는 주로 구조적 다이어그램을 사용하고 동적 모델링에서는 주로 행위 다이어그램 사
용
- 구조적 다이어그램
-> 클래스 다이어그램 : 클래스, 클래스가 가지는 속성, 클래스 사이 관계 표현
-> 객체 다이어그램 : 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현
-> 컴포넌트 다이어그램 : 구현 단계에서 사용되며 컴포넌트 간의 관계나 인터페이스를 표현
-> 패치 다이어그램 : 구현단계에서 사용되며 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치 표
현
-> 복합체 구조 다이어그램 : 복잡한 구조를 가지는 클래스 혹은 컴포넌트의 내부 구조 표현
-> 패키지 다이어그램 : 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계 표현
- 행위 다이어그램
-> 유스케이스 다이어그램 : 사용자의 요구를 분석하여 기능 모델링 작업에 사용됨
-> 시퀀스 다이어그램 : 상호 작용하는 시스템이나 객체들이 주고받는 메시지 표현
-> 커뮤니케이션 다이어그램 : 객체들이 주고받는 메시지를 표현할 뿐 아니라 객체들 간의 연관까지
표현
-> 상태 다이어그램 : 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에
따라 어떻게 변화하는지 표현
-> 활동 다이어그램 : 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현
-> 상호작용 개요 다이어그램 : 상호작용 다이어그램 간의 제어 흐름 표현
-> 타이밍 다이어그램 : 객체 상태 변화와 시간 제약을 명시적으로 표현
결합도
- 모듈 간에 상호 의존도 또는 모듈 사이의 연관 관계
- 결합도와 품질은 반비례 관계
- 결합도가 강하면 시스템 구현 및 유지보수 작업이 어려움
응집도
- 정보 은닉 개념을 확장한 것으로 모듈의 내부 요소들의 서로 관련되어 있는 정도
- 모듈이 독립적인 기능으로 정의되어 있는 정도
- 응집도와 품질은 비례 관계
생성 패턴
- 객체의 생성과 참조 과정을 샘플화 하여 객체가 생성되거나 변경되어도 프로그램의 구조에 영향을 크
게 받지 않도록 하여 프로그램의 유연성을 더해줌
- 추상 팩토리 : 구체적인 클래스에 의존하지 않고 인터페이스를 통해 서로 연관, 의존하는 객체들의 그
룹으로 생성하여 추상적으로 표현
- 빌더 : 작게 분리된 인스턴스를 건축 하듯이 조합하여 객체 생성
- 팩토리 메소드 : 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴
- 프로토타입 : 원본 객체를 복제하는 방법으로 객체를 생성하는 패턴
- 싱글톤 : 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있지만 여러 프로세스가 동시에
참조할 수는 없음
구조 패턴
- 클래스나 객체들을 조합하여 더 큰 구조로 만들 수 있게 해주는 패턴
- 어댑터 : 호환성이 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환해주는 패턴
- 브리지 : 구현부에서 추상층을 분리하여 서로가 독립적으로 확장할 수 있도록 구성한 패턴
- 컴포지트 : 여러 객체를 가진 복합 객체와 단일 객체를 구분 없이 다루고자 할 때 사용하는 패턴
- 데코레이터 : 객체 간의 결합을 통해 능동적으로 기능들을 확장할 수 있는 패턴
- 퍼싸드 : 복잡한 서브 클래스들을 피해 더 상위에 인터페이스를 구상함으로써 서브 클래스의 기능을 간
편하게 사용할 수 있도록 하는 패턴
- 플라이웨이트 : 인스턴스가 필요할 때마다 생성하는 것이 아닌 공유해서 사용함으로써 메모리를 절약
하는 패턴
- 프록시 : 접근이 어려운 객체와 여기에 연결하려는 객체 사이에서 인터페이스 역할을 수행하는 패턴
행위 패턴
- 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의한 패턴
- 책임 연쇄 : 요청을 처리할 수 있는 객체가 둘 이상 존재하여 한 객체가 처리하지 못하면 다음 객체로 넘
어가는 형태의 패턴
- 커맨드 : 요청을 객체의 형태로 캡슐화하여 재이용하거나 취소할 수 있도록 요청에 필요한 정보를 저장
하거나 로그에 남기는 패턴
- 인터프리터 : 언어에 문법 표현을 정의하는 패턴
- 반복자 : 자료 구조와 같이 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 하는 패턴
- 중재자 : 수많은 객체들 간의 복잡한 상호작용을 캡슐화하여 객체로 정의하는 패턴
- 메멘토 : 특정 시점에서의 객체 내부 상태를 객체화함으로써 이후 요청에 따라 객체를 해당 시점의 상
태로 돌릴 수 있는 기능을 제공하는 패턴
- 옵서버 : 한 객체의 상태가 변화하면 객체에 상속되어 있는 다른 객체들에게 변화된 상태를 전달하는
패턴
- 상태 : 객체의 상태에 따라 동일한 동작을 다르게 처리해야 할 때 사용하는 패턴
- 전략 : 동일한 계열의 알고리즘들을 개별적으로 캡슐화하여 상호 교환할 수 있게 정의하는 패턴
- 템플릿 메소드 : 상위 클래스에서 골격을 정의하고 하위 클래스에서 처리를 구체화하는 구조의 패턴
- 방문자 : 각 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도의 클래스로 구성하는 패턴
디지털 저작권 관리의 흐름도
- 클리어링 하우스 : 저작권에 대한 사용 권한, 라이선스 발급, 사용량에 따른 결제 관리 등 수행
- 콘텐츠 제공자 : 콘텐츠를 제공하는 저작권자
- 패키저 : 콘텐츠를 메타 데이터와 함께 배포 가능한 형태로 묶어 암호화는 프로그램
- 콘텐츠 분배자 : 암호화된 콘텐츠를 유통
- 콘텐츠 소비자 : 콘텐츠를 구매해서 사용
- DRM 콘트롤러 : 배포된 콘텐츠의 이용 권한을 통제하는 프로그램
- 보안 컨테이너 : 콘텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치
인터페이스 구현 검증 도구
- xUnit : Java, C++, .Net 등 다양한 언어를 지원
- STAF : 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원
- FitNesse : 웹 기반 테스트케이스 설계, 진행, 결과 확인 등을 지원
- NTAF : FitNess의 협업 기능과 STAF의 재사용 및 확장성을 통합한 NHN의 프레임워크
- Selenium : 다양한 브라우저 및 개발 언어 지원
- watir : Ruby를 사용
속성의 종류
- 기본 속성 : 업무 분석을 통해 정의한 속성. 가장 많고 일반적 ex) 제품명
- 설계 속성 : 업무상 존재하지 않지만 설계 과정에서 도출해내는 속성 ex) 제품 코드
- 파생 속성 : 다른 속성으로부터 계산되거나 파생된 속성 ex) 제품 판매량, 판매 수익
정규화 과정
- 1NF -> 2NF -> 3NF -> BCNF -> 4NF -> 5NF
- 1NF(제1 정규형)
-> 릴레이션에 속한 모든 값들이 원자 값으로만 구성
- 2NF(제2 정규형)
-> 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속을 만족
-> 완전 함수적 종속 : 기본키에 의해서 속성이 결정
-> 부분 함수적 종속 : 기본키의 일부에 의해 속성이 결정
-> 아래와 같이 학번과 과목 코드가 기본키인 릴레이션이 있을 때
-> 과목 점수는 기본키(학번, 과목 코드)를 가지고 알 수 있음 = 완전 함수적 종속
-> 이름은 기본키의 일부(학번)를 가지고 알수 있음 = 부분 함수적 종속
- 3NF(제3 정규형)
-> 기본키가 아닌 모든 속성이 기본키에 대해 이행적 종속을 만족하지 않음
-> 이행적 종속 : A → B, B → C 일 때 A → C를 만족하는 관계
- BCNF(Boyce-Codd정규형)
-> 결정자가 모두 후보키
- 4NF(제4 정규형)
-> 릴레이션에 다치 종속이 성립하는 경우 모든 속성이 함수적 종속 관계를 만족
- 5NF(제5 정규형)
-> 모든 조인 종속이 후보키를 통해서만 성립
반응형
'정보처리기사, 정보처리산업기사' 카테고리의 다른 글
[정보처리기사/ 정보처리산업기사] 개정 후 실기 기출 문제 정리 요약본 6탄 (0) | 2021.07.02 |
---|---|
[정보처리기사/ 정보처리산업기사] 개정 후 실기 기출 문제 정리 요약본 5탄 (0) | 2021.07.02 |
[정보처리기사/ 정보처리산업기사] 개정 후 실기 기출 문제 정리 요약본 3탄 (0) | 2021.06.30 |
[정보처리기사/ 정보처리산업기사] 개정 후 실기 기출 문제 정리 요약본 2탄 (0) | 2021.06.30 |
[정보처리기사/ 정보처리산업기사] 개정 후 실기 기출 문제 정리 요약본 1탄 (0) | 2021.06.30 |
댓글