전위 표기법 : 연산자 -> 피연산자 -> 피연산자 ex) +AB
중위 표기법 : 피연산자 -> 연산자 -> 피연산자 ex) A+B
후위 표기법 : 피연산자 -> 피연산자 -> 연산자 ex) AB+
ex) (A*B) + (C*D)를 전위, 후위 방식으로 표기
전위
- 괄호 앞으로 연산자 이동 : (+(*AB) *(CD))
- 괄호 제거 : +*AB*CD
후위
- 괄호 뒤로 연산자 이동 : ((AB*)(CD*)+)
- 괄호 제거 : AB*CD*+
방향 그래프 최대 간선 수 : n(n-1)
무방향 그래프 최대 간선 수 : n(n-1)/2
소프트웨어 형상관리(SCM; Software Configuration Management)
소프트웨어 개발 과정의 변화되는 사항을 관리하는 것
관리 항목
- 프로젝트 요구 분석서
- 운영 및 설치 지침서
- 소스코드
형상 관리 절차
식통감기
형상 식별 - 형상 통제 - 형상 감사 - 형상 기록
형상 식별
- 형상 관리 계획을 근거로 형상 관리의 대상이 무엇인지 식별하는 활동
형상 통제
- 형상 항목의 변경사항에 대하여 형상통제위원회(CCB; Change Control Board)가 승인/기각/보류를 결정하고, 승인된 변경사항의 이해를 체계적으로 통제하는 활동
형상 감사
- 형상 관리 계획대로 형상 관리가 진행되고 있는지, 형상 항목의 변경이 요구사항에 맞도록 제대로 이뤄졌는지 등을 살펴보는 활동
형상 기록
- 소프트웨어 형상 및 변경 관리에 대한 각종 수행 결과를 기록하는 활동
관리 도구
기능 | 설명 |
체크인(Check-In) | 개발자가 수정한 소스를 형상 관리 저장소로 업로드 하는 기능 |
체크아웃(Check-Out) | 형상 관리 저장소로부터 최신 버전을 개발자 PC로 다운로드 받는 기능 |
커밋(Commit) | 작업한 내용을 로컬저장소에 저장하는 것 |
빌드 자동화 도구 : Ant, Maven, Gradle
*Jenkins는 JAVA 기반의 오픈소스로 가장 많이 활용되는 빌드 자동화 도구이다.
형상 관리 도구 : CVS, SVN, Git
화이트박스 테스트
- Source Code의 모든 문장을 한 번 이상 수행함으로써 진행된다.
- 모듈 안의 작동을 직접 관찰할 수 있다.
- 산출물의 각 기능별로 적절한 프로그램의 제어 구조에 따라 선택, 반복 등의 부분들을 수행함으로써 논리적 경로를 점검한다.
- Base Path Testing
- 구문 커버리지, 결정 커버리지, 조건 커버리지, 조건-결정 커버리지, 변경 조건-결정 커버리지, 다중 조건 커버리지, 기본 경로 커버리지, 제어 흐름 테스트, 데이터 흐름 테스트, 루프 테스트
블랙박스 테스트
- 프로그램 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트이다.
- 소프트웨어의 특징, 요구사항, 설계 명세서 등에 초점을 맞춰 테스트가 이루어진다.
- 기능 및 동작 위주의 테스트를 진행하기 때문에 내부 구조나 작동 원리를 알지 못해도 가능하다.
- Boundary Value Analysis
- 동등 분할, 경곗값 분석, 결정 테이블, 상태전이, 유스케이스, 분류트리, 페어와이즈, 원인-결과 그래프, 비교테스트, 오류 수정
*화이트박스, 블랙박스 모두 동적 테스트
제품 소프트웨어 패키징
DRM 구성 요소
콘텐츠 제공자 / 콘텐츠 소비자 / 콘텐츠 분배자 / 클리어링 하우스 / DRM 콘텐츠 / 패키지 / DRM 컨트롤러 / 보안 컨테이너
DRM 기술 요소
암호화 / 키 관리 / 식별 기술 / 저작권 표현 / 암호화 파일 생성 / 정책 관리 / 크랙 방지 / 인증
정적 분석 도구 / 동적 분석 도구
정적 분석 도구
- Cppcheck, CheckStyle, PMD
동적 분석 도구
- ValMeter
제품 소프트웨어 매뉴얼 작성
컴포넌트 명세서, 컴포넌트 구현 설계서 ->
작성 지침 정의 -> 사용자 매뉴얼 구성 요소 정의 -> 구성 요소별 내용 작성 -> 사용자 매뉴얼 검토
-> 사용 설명서
소프트웨어 품질 목표
특성 | 설명 |
이식성 (Portability) |
하나 이상의 하드웨어 환경에서 운용되기 위해 쉽게 수정될 수 있는 시스템 능력 |
효율성 (Efficiency) |
명시된 조건에서 사용되는 자원의 양에 따라 요구된 성능을 제공하는 소프트웨어 제품의 능력 -품질 부특성으로 시간반응성, 자원효율성, 준수성 등을 갖음 |
사용성 (Usability) |
명시된 조건에서 사용될 경우, 사용자에 의해 이해되고, 학습되고, 사용되고, 선호될 수 있는 소프트웨어 제품의 능력 -쉽게 배우고 사용될 수 있는 정도 |
신뢰성 (Reliability) |
-옳고 일관된 결과를 얻기 위하여 요구된 기능을 수행할 수 있는 정도 -주어진 시간동안 주어진 기능을 오류없이 수행하는 정도 |
S/W Project 일정이 지연된다고 해서 프로젝트 말기에 새로운 인원을 추가 투입하면 더 지연된다.
= Brooks 법칙
소프트웨어 테스트에서 오류의 80%는 전체 모듈의 20% 내에서 발견된다
= Pareto 법칙
패키지 소프트웨어의 일반적인 제품 풀질 요구사항 및 테스트를 위한 국제표준
= ISO/IEC 12119
119를 기억
동시에 소스를 수정하는 것을 방지하고 다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있는 소프트웨어 버전 관리 도구
= RCS(Revision Control System)
애플리케이션 테스트 관리
종류 | 설명 |
단위 테스트 | 사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계 |
통합 테스트 | 단위 테스트를 통과한 컴포넌트 간의 인터페이스를 테스트하는 단계 |
시스템 테스트 | 개발 프로젝트 차원에서 정의된 전체 시스템 또는 제품의 동작에 대해 테스트하는 단계 |
인수 테스트 | 계약상의 요구사항이 만족되었는지 확인하기 위한 테스트 단계 -알파, 베타 테스트 |
테스트의 목적에 따른 분류
분류 | 설명 |
회복 테스트 (Recovery Test) |
시스템에 고의로 실패를 유도하고, 시스템의 정상적 복귀 여부를 테스트 |
안전 테스트 (Security Test) |
불법적인 소프트웨어가 접근하여 시스템을 파괴하지 못하도록 소스 코드 내의 보안적인 결함을 미리 점검하는 테스트 기법 |
성능 테스트 (Performance Test) |
사용자의 이벤트에 시스템이 응답하는 시간, 특정 시간 내에 처리하는 업무량, 사용자 요구에 시스템이 반응하는 속도 등을 측정하는 테스트 기법 |
강도 테스트 (Stress Test) |
시스템 처리 능력 이상의 부하, 즉 임계점 이상의 부하를 가하여 비정상적인 상황에서의 처리를 테스트 |
구조 테스트 (Structure Test) |
시스템의 내부 논리 경로, 소스 코드의 복잡도를 평가하는 테스트 기법 |
회귀 테스트 (Regression Test) |
회귀 테스트는 오류를 제거하거나 수정한 시스템에서 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지 확인하는 일종의 반복 테스트 기법 |
병행 테스트 (Parallel Test) |
변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교하는 테스트 기법 |
테스트 드라이버 vs 테스트 스텁
테스트 드라이버
- 상향식 통합시험을 위해 모듈 테스트 수행 후의 결과를 도출하는 시험용 모듈
- 테스트와 필요한 모듈에 인지를 넘겨주고 테스트를 완료한 후 그 결괏값을 받는 역할을 하는 가상의 모듈
- 하위 모듈을 호출하는 상위 모듈의 역할
테스트 스텁
- 하향식 통합 시험을 위해 일시적으로 필요한 조건만을 가지고 임시로 제공되는 시험용 모듈
- 상위 모듈에 의해 호출되는 하위 모듈의 역할
해싱 함수
제산법, 제곱법, 숫자 분석법, 폴딩법 (<- XOR), 기수 변환법, 무작위 방법
EAI (Enterprise Application Integration)구축 유형
포허메하
포인트 투 포인트, 허브 앤 스포크, 메시지 버스, 하이브리드
메시지 버스(Message Bus) | 애플리케이션 사이 미들웨어를 두어 연계하는 미들웨어 통합 방식 |
포인트 투 포인트(Point-to-Point) | 중간에 미들웨어를 두지 않고 각각의 애플리케이션 간에 점대점 형태로 연결 |
허브 앤 스포크(Hub & Spoke) | 단일한 접점의 허브 시스템을 통하여 데이터를 전송하는 중앙 집중식 방식 |
하이브리드(Hybrid) | 그룹 내는 허브 앤 스포크 방식을 사용하고, 그룹 간에는 메시지 버스 방식을 사용하는 통합 방식 |
인터페이스 간 통신을 위해 이용되는 데이터 포맷 : JSON, XML, YAML
인터페이스 구현 검증 도구
- xUnit, STAF, FitNesse, NTAF, Selenium, watir
'정보처리기사 공부' 카테고리의 다른 글
소프트웨어 설계 (0) | 2025.02.05 |
---|---|
프로그래밍 언어 활용 (0) | 2025.02.05 |
네트워크 기초 활용 (1) | 2025.01.25 |
데이터 타입 크기 (2) | 2025.01.25 |
OSI 7계층 (2) | 2025.01.24 |