* 키워드 표기가 많으므로 기본 공부 지식이 바탕이 되어야 함
* 굳이 영어 표기가 있으면 반드시 영어로도 쓸 수 있어야 함
* 정의 서술은 무조건 연습 되어야함
요구사항 확인
※ 시스템 구성요소 : 입력, 처리, 출력, 피드백, 제어
▷ 소프트웨어 생명 주기
| 폭포수 모형 | 프로토타이핑 | 나선형모형 | V-모형 | RAD |
| 보헴 순차적, 체계적 비전문가 |
요구사항 파악 용이 - 분석→설계 →작성 →평가 →정제 →제품화 |
대규모 시스템 계획 →위험분석* →개발 →평가 |
폭포수 + 검증 테스트 강조 높은 신뢰성 |
짧은 개발 주기 강조 점진적 소프트웨어 |
▷ 애자일(Agile) : 사람중심, 문서화보단 실행, 고객과의 피드백, 효과적인 변경 대응
ㄴ XP(고객과 함께 2주 개발 후 테스트)
- XP의 핵심 가치 : 존중, 단순성, 의사소통, 피드백, 용기
- XP의 실천 사항 : 소규모 릴리즈, 짝 프로그래밍, 공동코드 소유 , 테스트 기반 개발 (↔ TDD : 시험우선 개발)
ㄴ 스크럼(30일마다 동작 가능한 제품 제공 - 스프린트*)
▷ 개발 비용 선정
- 하향식 산정 기법 : 전문가의 감정, 델파이식 기법(조정자*)
- 상향식 산정 기법 : LOC(원시코드 라인수) 기법, 개발 단계별 인월수 기법, 수학적 산정 기법
ㄴ 수학적 산정기법
+ COCOMO : 보헴 원시코드 라인 수에 의한 비용 예측
기본COCOMO(단순) / 중간COCOMO / 고급COCOMO(세분화)
유기적모델(5만라인 이하), 준분리형모델(30만라인 이하), 내장형모델(30만라인 이상)
+ Putnam : SLIM 비용 추정 자동화 모형의 기반
+ FP(Function Point) : 소프트웨어의 각 기능에 대해 가중치를 부여, 요인별 합산해서 규모나 복잡도, 난이도 산출
▷ 요구사항 확인(요구분석 기법)
- 기능 요구 : 사용자 관점, 절차나 입출력 관점
- 비기능 요구 : 개발자 관점, 보안성, 성능 등
▷ 요구 공학
- 요구사항을 문서화 하는데 필요한 <요구사항 추출 → 분석 → 명세* → 검증* → 유지보수>에 대한 체계적 접근 방법
ㄴ 요구사항의 명세 기준 : 정확성, 명확정, 완전성, 일관성, 수정용이성, 추적성
| 구조적 분석 | 객체지향 분석 |
| · 위에서 아래로 세분화(하향식) · 자료흐름도(DFD) · 개체 관계도(ERD) · 상태 전이도(STD) · 도구 : DFD, DD, Mini-spec |
· 동적 모델링 기법 · 데이터 +행위 → 객체를 정의&추상화 · 럼바우의 OMT 기법* 분석중심, 객체(정적D) - 동적(동적D) - 기능(DFD) 모델링 · Booch의 OOAD* :설계중심 · Coad/Yourdon : ER-다이어그램 |
▷ 분석 모델 (모델링 기법: 실 세계의 복잡한 문제에 대한 모델링)
- UML 정의 : 객체 지향 분석 설계용 모델링 언어, 표준 그래픽 언어
ㄴ 기본요소 : 사물, 관계, 다이어그램
ㄴ 종류 : 구조적 다이어그램(정적 모델링) : 클래스D, 객체D, 컴포넌트D, 패키지D, 디플로이먼트D
행위 다이어그램(동적 모델링) : 상태D, 유스케이스D, 시퀀스D
- 스테레오타입(길러멧) << >> 로 표기, 추가기능 표현을 위해 사용
▷ 유스케이스 다이어그램 : 외부에서 보는 시스템의 동작, 사용자의 요구 분석 추출
- 구성 요소 : 시나리오, 유스케이스, 액터
- 관계
ㄴ 연관 관계 : 실선
ㄴ 의존 관계 : 포함관계(필수적 관계<<includes>>) / 확장관계(선택적 관계 <<extends>> )
ㄴ 일반화 관계(상속)
▷ 클래스 다이어그램
- 관계
ㄴ 집합 관계(Aggregation) : 부분이 없어도 전체의 개념이 존재
ㄴ 복합 관계(Composition) : 강한 형태, 한개당 한개
데이터 입출력 구현
※ 데이터 모델링 절차 : 요구조건 분석 → 개념적 모델링 → 논리적 모델링 → 물리적 모델링
▷ 데이터 모델 : 현실 세계의 데이터 구조를 컴퓨터 세계의 데이터 구조로 기술하는 것
- 구성 요소 : <S,O,C> : 구조(Structure), 연산(Operation), 제약조건 (Constraint)
ㄴ 개념적 모델링 : 개념적 데이터 모델링 → ER(개체-관계) 모델, 피터첸
ㄴ 논리적 데이터 모델 : 개념적 데이터 모델링에서 도출된 개념적 구조를 컴퓨터가 이해하고 처리할 수 있도록 변경
* 관계 데이터 모델(표, n:m) : 릴레이션, 속성, 도메인, 튜플, 차수, 기수(튜플개수)
- 릴레이션의 특성 : 애튜리뷰트 원자성, 무순서성 / 튜플의 유일성, 무순서성
- 키의 특성 : 슈퍼키(유일성 만족), 후보키(유일성, 최소성), 기본키(개체무결성 제약조건), 대체키, 외래키(참조 무결성 제약조건)
* 계층 데이터 모델(트리, 1:n)
* 네트위크 데이터 모델(그래프, n:m, 망 데이터 모델)
ㄴ 물리적 데이터 모델링 : 논리적 데이터 모델을 DBMS의 특성을 고려해 DB 저장구조로 변환 및 수행
* ORM 프레임워크 : 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것
[관계 데이터 모델] 테이블 → 변환 → 클래스 [객체지향 데이터 모델] : 호환 되지 않아, [객체-관계 데이터 모델]로 개선
- 장점 : 재사용성, 유지보수성, DBMS에 대한 종속성 감소
- 단점 : 완벽한 구현이 어려움, 많은 프로시저에는 활용하기 어려움
▷ 스키마 : 데이터베이스 구조에 대한 정의와 이에 대한 제약조건 등을 기술한 것
- ANSI/SPARC 3 Level Architecture
ㄴ 외부스키마 : 사용자, 응용프로그램 관점, 뷰
ㄴ 개념스키마 : 전체 통합, 논리적 구조
ㄴ 내부스키마 : 물리적 저장장치 관점, 내부 레코드 형식
▷ 정규화 : 이상현상을 해결하기 위해 여러개의 릴레이션으로 분해하는 과정
ㄴ 정규화 체계 : 비정규 릴레이션 → (원자값이 아닌 도메인 분해) → 제1 정규형 → (부분함수 종속제거) → 제2 정규형
→ (이행함수 종속제거) → 제3 정규형 → (결정자가 후보키가아닌 함수 종속제거) → 제4 정규형(BCNF)
▷ 반정규화 : 성능 향상을 목적으로 정규화 이전 상태로 되돌리는것, De-Normalization
- 과정 : 반정규화 대상 조사 → 다른방법 유도검토* (뷰테이블, 인덱스 조정) → 반정규화 적용(테이블 통분할, 중복테이블/속성 추가)
▷ 데이터 조작 프로시저
- SQL : 관계대수의 관계해석을 기초로 한 질의 언어(관계대수 : 절차적 언어)
- PL/SQL(Procedural Language/SQL) : 절차적인 처리를 위해 표준SQL을 확장한 절차적 언어
문법에 표준이 거의 없고, DBMS에 종속적인 것이 단점
- 저장된 프로시저(Stored Procedure) : 특정 작업을 수행 가능한, 이름이 있는 PL/SQL 블록, 프로시저와 유사하나 IN 파라미터만 사용 가능
- 트리거(Trigger) : INSERT, UPDATE, DELETE 문이 수행될 때 묵시적으로 수행되는 프로시저
- SQL 소스코드 인스펙션 : 계획 → 사전교육 → 사전검토 → 회의 → 수정 → 후속 조치
* DDL(정의어) : CREATE, DROP, ALTER
* DML(조작어) : INSERT, UPDATE, SELECT
* DCL(제어어) : REVOKE, GRANT, COMMIT, ROLLBACK - 데이터 무결성*(권한없으면 접근X) 회복
ㄴ 데이터베이스 회복 조치 유형 : REDO(장애발생 전으로 복구 후 재실행) / UNDO(변경 연산을 취소)
▷ 개체 무결성 : 기본키를 구성하는 어떤 속성도 null 일 수 없고, 반복을 허용하지 않는다.
▷ 참조 무결성 : 외래키 값은 null이거나 참조 릴레이션의 기본키 값과 동일해야 한다.
▷ 관계 데이터 연산
- 관계대수 : 대수는 절차적이며, 해석은 비절차적 언어
ㄴ 일반집합 연산자 : 합집합(U) 교집합() 차집합 카티션프로덕트(X)
ㄴ 순수관계 연산자 : SELECT(δ) PROJECT(π) JOIN( ⋈ ) DIVISION( ÷ )
ex) δ<조건식> 테이블명 , π<속성리스트> 테이블명
'시험공부 > 정보처리기사' 카테고리의 다른 글
| [정보처리기사 실기] 전날 보는 키워드 요약 정리2 (0) | 2024.05.11 |
|---|---|
| [정리노트] DAY4) UML 다이어그램 (0) | 2024.02.25 |
| [정리노트] DAY3) 요구 사항 확인, 요구 공학 프로세스, 객체 지향 분석 (0) | 2024.02.23 |
| [정리노트] DAY2) 개발비용 산정 및 개념 적용 문제풀이 (0) | 2024.02.22 |
| [정리노트] DAY1) 요구사항 분석, 소프트웨어 생명 주기 (1) | 2024.02.19 |