● UML
1. 사물 : 구조, 행동, 그룹, 주해
2. 관계 :
연관 - 다중도 / 의존 - 짧은시간 연관,
집합 - 포함, 서로 독립적 / 포함 - 변화포함, 독립X
일반화 - 상속 / 실체화 - 인터페이스(행위)
3. 다이어그램
구조 다이어그램 : 클래스, 객체, 컴포넌트(구현모듈), 배치, 복합체, 패키지
행위 다이어그램 :
유스케이스
시퀀스 - 메시지
커뮤니케이션 - 메시지 + 연관
활동 - 처리흐름 순서
상호작용
타이밍 - 시간제약
● UI 설계원칙
- 직관성(누구나 쉽게), 유효성(목적을 정확), 학습성(모두가 쉽게 배울), 유연성(요구사항 최대수용)
● UI 설계도구
- 와이어프레임 : 개략적인 레이아웃과 UI 등 뼈대 셜계
- 목업 : 정적인 형태
- 스토리보드 : 개발자가 참고하는 작업 지침서, 디스크립션 포함
- 프로토타입 : 동적인 형태, 인터렉션 적용
- 유스케이스 : 사용자의 요구사항, 다이어 그램 형식
● 품질 요구사항(ISO/IEC 9126)
- 기능성, 신뢰성(오류없이), 사용성(사용자가 이해), 효율성(시간동안 얼마나 빠른지), 유지보수성(개선이나 확장), 이식성(다른 환경)
● 모듈 - 분해
1. 결합도 -> 자스제외공내
자료 : 자료요소(변수)
스탬프 : 자료구조(컬렉션)
제어 : 제어신호, 제어요소
외부 : 외부 다른요소 참조
공통 : 공통 데이터
내용 : 내부기능, 내부자료
2. 응집도 -> 기순교절시논우
기능적 : 하나의 기능(단일 문제)
순차적 : 출력데이터-> 다음 입력데이터
교환(통신)적 : 같은 입출력 데이터로 서로 다른 기능
절차적 : 다수의 기능이 순차적으로 실행
시간적 : 특정 시간
논리적 : 유사성격, 특정 형태
우연적 : 서로관련 X
● 디자인 패턴(GoF) - 서브시스템
1. 생성패턴(5) - 객체생성
- 추상팩토리 : 연관된 객체들을 그룹화
빌더 : 생성자로써 빌더를 사용함
팩토리메소드 : 객체생성을 하위클래스로 분리하여 캡슐화
프로토타입 : 복제
싱글톤 : 하나의 인스턴스만 생성
2. 구조패턴(7) - 객체조합해서 더 큰 구조
- 어댑터 : 다른 클래스의 인터페이스를 이용할 수 있게 변환
브리지 : 기능(클래스)과 구현(클래스)을 독립적으로 만든다음 연결
컴포지트 : 합성
데코레이터 : 기존 코드를 수정하지 않고 새로운 기능으로 확장
퍼싸드 : 상위에 인터페이스 구성 (각 각의 클래스를 상위에서 통합)
플라이웨이트 : 용량이 큰 클래스를 메모리 절약을 위해 공유해서 사용 (싱글톤과 비슷)
프록시 : 접근이 어렵기에 간접적으로 접속을 도와줌 -> 인터페이스 역할
3. 행위패턴(11) - 객체간의 상호작용, 책임분배
- 책임연쇄 : 한 객체에서 처리 못하면 다음 객체로 넘어감
커맨드 : 실행될 기능(커맨드)을 캡슐화
인터프리터 : 문법 정의
반복자 : 반복해서 접근할 수 있게 인터페이스
중재자 : 객체들간의 상호작용을 캡슐화
메멘토 : 특정 시점의 객체상태를 객체화후 돌림(ctrl+z)
옵서버 : 변수를 관찰하고 있다가 변화가 생기면 특정 클래스에게 전달하여 그에 맞게 행동하게 만듦
상태 : 객체 상태에 따라 다르게 처리
전략 : 기능을 인터페이스로 캡슐화 하고 이를 implements 받아 하위에서 구현
템플릿메소드 : 상위클래스에서 골격 정의, 하위 클래스에서 구체화
방문자 : 처리 기능을 분리해서 별도의 클래스로 구성 -> 여기에 방문함
● 데이터 흐름도(DFD) = 버블차트 / 구조분석 기법
- 프로세스(Process) : 데이터를 변환하여 출력하기 위한 과정, 원
- 데이터 흐름(Data Flow) : 구성요소 간의 데이터 흐름, 화살표(->)
- 데이터 저장소(Data Store) : 등호(=)
- 단말(Terminator) : 프로세스 처리과정에서 시작과 종료를 나타냄, 사각형
● UML 확장수단
- 스테레오타입 : 기본요소 외의 새로운 요소 확장 (<< >>)
- 꼬리표값 : 속성 확장, {tag = value}
- 제약 : 기존 규칙 수정 또는 새로 생성, { }
● 럼바우 분석기법(OMT)
- 1. 객체모델링 : 객체 다이어그램
- 2. 동적 모델링 : 상태 다이어그램, 시간 흐름
- 3. 기능 모델링 : 데이터 흐름도(DFD), 프로세스간의 자료흐름
● 객체지향기법
- 집단화(part) : 클래스간의 구조적 집약관계
- 일반화(is) : 클래스간의 개념적 포함관계
- 캡슐화 : 속성과 메소드를 하나의 객체로 모음
- 추상화 : 공통 성질을 추출해 슈퍼클래스로
- 연관성(is member of) : 객체간의 참조관계
● 데이터사전
정의 =, 구성&연결 +, 반복 { }, 주석 **, 선택 [ | ], 생략 ( )
● CASE(Computer-Aided Software Engnering) - 5
- 소프트웨어 개발과정 중 일부를 도구로 자동화
- 생명주기 전단계 연결, 다양한 SW개발모델 지원, 그래픽 지원
- 이점 : 개발 기간 단축, 비용절감, 품질향상, 생산성향상, 재사용성향상, 유지보수 용이, 개발주기 표준화
- Upper : 다이어그램 표현, 모델 간 모순성 검사, 오류검사, DFD작성
Intergrate : 화면출력, 상세설계
Lower : 원시 코드 생성, 시스템 명세서 작성
● HIPO - 5
- 하향식 소프트웨어 개발 문서화 도구
- 가시적, 총체적, 세부적 차트
- HIPO Chart : 시스템의 기능을 여러 개의 고유 모듈로 분할하고 이들 간의 인터페이스를 계층구조로 표현한 도면
● 시간복잡도(빅오 표기법) - 2
● 트리 순회 - 2
- 전위순위(preorder) : root - 왼 - 오
- 중위순위(inorder) : 왼 - root - 오
- 후위순위(postorder) : 왼 - 오 - root
● 외계인코드 - 2
- 너무 오래되거나 참조할 자료 또는 개발자가 없어 유지보수하기 힘든 코드
● 병행제어&로킹 - 3
- 병행제어 : 동시에 여러 개의 트랙잭션이 병행수행될 때 DB의 일관성이 파괴되지 않도록 트랜잭션간의 상호작용을 제어/ 공유 최대화, 시스템 활용도 최대화, 일관성 유지, 응답시간 최소화
- 로킹 : 어떤 로킹 단위가 Lock을 갖고있어야지만 액세스할 수 있음
- 로킹 단위 : DB, 파일, 레코드, 필드 가능 / 단위↑ -> 로크수↓, 병행성수준↓, 공유도↓, 오버헤드↓, 관리쉬움
(로투낙타다)
락킹(Locking)기법
2단계 락킹(2Phase Locking)기법
낙관적 검증 기법
타임스탬프 순서(Timestamp ordering) 기법
다중버전 동시성제어(MVCC) 기법
● 은행원 알고리즘
- 교착상태 회피기법(Avoidance)
- 운영체제가 안전상태를 유지할 수 있는 요구만 수락, 불안전상태의 요구는 안전상태를 만족될 수 있을때 까지 거절
● 교착상태
- 상호배제 : 한번에 한개의 프로세스만이 공유지원 사용
- 점유대기 : 이미 자원을 가진 프로세스가 다른 자원의 할당을 요구
- 비선점 : 할당된 자원이 끝날때까지 뻇을수 없음
- 순환대기 : 원형으로 구성되어있어 앞이나 뒤 프로세스의 자원 요구
● HDLC(Highest Data Ling Control Protocol) / F-A-C-D-S-F
- 정규응답모드(NRM)
- 비동기응답모드(ARM)
- 비동기균형모드(ABM)
- 비트위주 프로토콜, 점대점링크 및 멀티포인트 링크, 단방향/반이중/전이중, 전송효율과 신뢰성 높음, 흐름제어-슬라이딩윈도우, 오류제어-Go-Back-N과 재전송ARQ
● 해싱함수
- 제산법 : % 연산자
- 폴딩법 : XOR
- 기수변환법 : 다른진법으로 변환 후 초과길이는 자름
- 숫자분석법 : 균등한 분포의 숫자 선택
- 중간제곱법 : 제곱한 후 중간숫자 선택
● 소프트웨어 품질 목표
'CS이론 > 정보처리기사' 카테고리의 다른 글
정보처리기사 필기 5과목 암기정리 (0) | 2020.07.06 |
---|---|
정보처리기사 필기 4과목 암기정리 (0) | 2020.07.06 |
정보처리기사 필기 3과목 암기정리 (0) | 2020.07.06 |
정보처리기사 필기 2과목 암기정리 (0) | 2020.07.06 |
3과목 데이터베이스 구축 (0) | 2020.06.16 |