자격증/정보처리기사 필기 준비

2과목 소프트웨어 개발 정리

동준1234 2024. 10. 18. 19:53

2과목 소프트웨어 개발

 

1. 선형 구조 및 비선형 구조

선형 구조 : 리스트, 스택, 큐, 데크

비선형 구조 : 트리, 그래프

 

2. 선형 구조의 종류 특징

데크 : 삽입과 삭제가 리스트의 양쪽 끝에서 모두 발생할 수 있는 자료 구조

스택 : 리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료 구조

큐 : 한쪽에서는 삽입 작업이 이루어지고 다른 한쪽에서는 삭제 작업이 이루어지도록 구성한 자료 구조

 

3. 스택 응용 분야

함수 호출(재귀 호출 포함) : 함수를 호출 시 현재 진행중인 명령어 주소를 스택에 저장

후위표현 연산:Postfix를 계산할 때 사용

깊이 우선 탐색 (DFS; Depth-First Search) : 깊이 내려갈 때마다 스택에 값을 push 하고, 더 이상 깊이 갈 곳이 없을 경우 스택에서 POP 한 노드와 인접한 노드를 찾음

인터럽트의 처리 : 현재 진행 중인 명령어 위치를 스택에 PUSH 하고, 인터럽트 발생 상황을 처리한 후에 인터럽트 전에 진행 중이던 명령어 위치를 스택해서 POP을 통해 받아옴

 

4. 이진 나무 순회

전위 순회(preorder traverse) : root – left – right

중위 순회(inorder traverse) : letf – root – right

후위 순회(postorder traverse) : left – right – root

트리의 차수 : 노드에 파생된 차수가 가장 많은 차수의 개수

단말노드 : 차수가 없는 노드

 

5. n개의 노드로 구성된 무방향 그래프의 최대 간선 수

n(n-1)/2

 

6. 다음 그림의 트리의 차수

대충 많은 차수 개수 구하면 됨

 

7. 모듈의 특징

소프트웨어 구조를 이루며, 다른 것들과 구별될 수 있는 독립적인 기능을 갖는 단위

하나 또는 몇 개의 논리적인 기능을 수행하기 위한 명령어들의 집합

서로 모여 하나의 완전한 프로그램으로 만들어질 수 있음

 

 

 

 

 

8. 소프트웨어 재공학의 주요 활동

활동
설명
분석(Analysis)
기존 소프트웨어 명세서를 확인하여 소프트웨어 동작을 이해하고, 재공학 대상을 선정하는 작업
재구조(Restructing)
상대적으로 같은 추상적 수준에서 하나의 표현을 다른 형태로 바꾸는 작업
역공학(Reverse Engineering)
기존 소프트웨어를 분석하여 설계도를 추출하거나 다시 만들어내는 작업
이식(Migration)
소프트웨어 재공학의 주요 활동 중 기존 소프트웨어 시스템을 새로운 기술 또는 하드웨어 환경에서 사용할 수 있도록 변환하는 작업

 

9. 컴포넌트(Component)

명백한 역할을 가지고 독립적으로 존재할 수 있는 시스템의 부분으로 넓은 의미에서 재사용되는 모든 단위 및 인터페이스를 통해서만 접근할 수 있음

 

10. 형상 통제 과정

형상 식별 : 형상관리 계획을 근거로 형상 관리의 대상이 무엇인지 식별하는 활동

형상 통제 : 형상 항목의 변경사항에 대하여 형상통제위원회가 승인/기각/보류를 결정하고, 승인된 변경 사항의 이행을 체계적으로 통제하는 활동

형상 감사 : 형상 관리 계획대로 형상 관리가 진행되고 있는지, 형상 항목의 변경이 요구사항에 맞도록 제대로 이뤄졌는지 등을 살펴보는 활동

형상 기록:소프트웨어 형상 및 변경 관리에 대한 각종 수행결과를 기록하는 활동

 

11. 형상 관리 도구의 주요 기능

체크인 : 개발자가 수정한 소스를 형상 관리 저장소로 업로드 하는 기능

체크아웃 : 형상 관리 저장소로부터 최신 버전을 개발자 pc 로 다운로드 받는 기능

커밋 : 개발자가 소스를 형상관리 저장소에 업로드

 

12. 소스코드 품질 분석 도구 중 정적 분석 도구

PMD, Cppcheck, CheckStyle

 

13. 저작권 관리 구성 요소

보기
설명
컨텐츠 제공자
콘텐츠를 제공하는 저작권자
패키저
콘텐츠를 메타 데이터와 함께 배포 가능한 단위를 묶는 도구
클리어링 하우스
저작권에 대한 사용 권한, 라이선스 발급, 사용량에 따른 관리등을 수행하는 곳, 콘텐츠 권한 정책, 라이선스 관리를 수행
DRM 컨트롤러
배포된 디지털 콘텐츠의 이용권한 통제

 

14. 소프트웨어 품질 목표

보기
설명
이식성(Portability)
하나 이상의 하드웨어 환경에서 운용되기 쉽게 수정될 수 있는 시스템 능력
효율성(Efficiency)
명시된 조건에서 사용되는 자원의 양에 따라 요구된 성능을 제공하는 소프트웨어 제품의 능력
사용성(Usability)
명시된 조건에서 사용될 경우, 사용자에 의해 이해되고, 학습되고, 사용되고, 선호될 수 있는 소프트웨어 제품의 능력
신뢰성(Reliability)
옳고 일관된 결과를 얻기 위하여 요구된 기능을 수행할 수 있는 정도

 

15. Brooks 의 법칙

S/W Project 일정이 지연된다고 해서 Project 말기에 새로운 인원을 추가 투입하면 Project 는 더욱 지연되게 된다는 내용관 관련되는 법칙

 

16. Pareto 의 법칙

소프트웨어 테스트에서 오류의 80% 는 전체 모듈의 20% 내에서 발견된다는 법칙

 

17. 소프트웨어 버전 관리 도구 유형

유형
설명
도구
공유 폴더 방식
매일 개발 완료 파일은 약속된 위치의 공유 폴더에 복사하는 방식
RCS
클라이언트/서버 방식
버전 관리 자료가 중앙시스템(서버)에 저장되어 관리되는 방식
CVS SVN
분산 저장소 방식
로컬 저장소와 원격 저장소로 분리되어 관리 하는 방식
GIT

 

18. 테스트의 종류

종류
설명
단위 테스트
사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트 하는 단계
통합 테스트
단위 테스트를 통과한 컴포넌트 간의 인터페이스를 테스트 하는 단계
시스템 테스트
개발 프로젝트 차원에서 정의된 전체 시스템 또는 제품의 동작에 대해 테스트 하는 단계
인수 테스트
계약상의 요구사항이 만족되었는지 확인하기 위한 테스트 단계

 

19. 블랙박스 테스트 유형

동등분할, 경곗값 분석, 결정 테이블, 상태전이, 유스케이스, 분류 트리, 페어와이즈, 원인-결과 그래프, 비교 테스트, 오류 추정

 

20. 화이트박스 테스트 유형

구문 커버리지, 결정 커버리지, 조건 커버리지, 조건-결정 커버리지, 변경조건-결정 커버리지, 다중조건 커버리지, 기본 경로 커버리지, 제어 프름 테스트, 데이터 흐름 테스트,. 루프 테스트

 

21. 테스트 장치 구성 요소

구성 요소
설명
테스트 스텁
하향식 통합시험을 위해 일시적으로 필요한 조건만을 가지고 임시로 제공되는 시험용 모듈
테스트 드라이버
상향식 통합시험을 위해 모듈 테스트 수행 후의 결과를 도출하는 시험용 모듈
프로시저
특정한 로직을 처리하기만 하고 결괏값을 반환하지 않는 서브 프로그램
함수
하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합

 

 

22. 시간복잡도에 따른 알고리즘 분류

O(nlog2n) : 퀵 정렬, 병합 정렬(합병 정렬), 힙 정렬

O(n2) : 버블 정렬, 삽입 정렬, 선택 정렬

 

23. 해싱함수

함수
설명
제산법(division)
나머지 연산자(%)를 사용하여 테이블 주소를 계산하는 방식
제곱법(Mid square)
레코드 킷값을 제곱한 후에 결괏값의 중간 부분에 있는 몇 비트를 선택하여 해시 테이블의 홈 주소로 사용하는 방식
숫자 분석법
(Digit Analysis)
레코드 키를 구성하는 수들이 모든 키들 내에서 자리별로 어떤 분포인지를 조사하여 비교적 고른 분포를 나타내는 자릿수를 필요한 만큼 선택하여, 레코드의 홈 주소로 사용하는 방법
폴딩법
(Folding)
레코드 키를 여러 부분으로 나누고, 나눈 부분의 각 숫자를 더하거나 XOR 한 값을 홈 주소로 사용하는 방식
기수 변환법
(Radix Conversion)
어떤 진법으로 표현된 주어진 레코드 키를 다른 진법으로 간주하고 키를 변환하여 홈 주소를 얻는 방식
무작위 방법
(Random)
난수를 발생시켜 각 레코드 키의 홈 주소를 결정하는 방식

 

24. 알고리즘 설계 기법

분할과 정복(Divide and Conquer), 동적 계획법(Dynamic Programming), 탐욕법(Greedy), 백트래킹(Backtracking)

 

25. EAI 구축 유형

point-to-point, Hub & Spoke, Message Bus, Hybrid

 

26. 인터페이스 구현 검증 도구

xUnit, STAF, FitNess, NTAF, Selenium, watir