소프트웨어 공학
워크 스루
- 요구 사항 명세서 작성자를 포함하여 사전 검토한 후 짧은 검토 회의를 통해 결함 발견
- 복잡한 것 이해할 때 좋음
- 단순 테스트 케이스 이용하여 프로덕트 수작업
인스펙션
- 요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 요굿항 명세서를 확인하면서 결함 발견
- 정적 테스트
- 눈으로 읽기 가능
- 코드 품질 향상 가능
크랙
소프트웨어를 수정하여 소프트웨어를 크랙하는 사람이 원하지 않는 기능들, 수정 방식을 비활성화하거나 제거하는 일
위험 모니터링
위험 요소 징후들에 대하여 계속적으로 인지하는 것
소프트웨어 버전 관리도구
RCS(Revision Control System)
- 동시에 소스를 수정하는 것을 방지 하며 다른 방향으로 진행된 개발 결과를 합치거나 변경 내용을 추적할 수 있는 소프트웨어 버전 관리 기구
- 한 사람으로 제한
RPC(Remote Procedure call)
별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 리모트 함수나 프로시저 실행 가능케 해줌
화이트 박스 테스트
- 논리 프름도
- 동적 테스트
- 프로그램 구조 고려
- 검증 기준 정함
- 기본 경로는 싸이클을 최대 한번만 지나야 한다.
블랙 박스 테스트
- 내부구조 고려 X
- 동치분할검사, 오류예측, 비교, 원인과 결과
알고리즘
-
검색: 정렬 X, 키 값에 해당되는 데이터 찾는 알고리즘
-
정렬: 흩어져 있는 데이터를 키 값을 이용하여 순서대로 열거하는 알고리즘
-
선형 검색: 처음부터 끝까지 하나씩 순서대로 비교하며 원하는 값을 찾아내는 검색
-
이진 검색: 검색을 수행하기 전에 반드시 데이터의 집합이 정렬되어 있어야 한다. 가장 검색 효율이 안좋다 O(n)
-
버블정렬: 레코드의 키 값을 분석하여, ...
-
선택정렬: 큐 사용
-
퀵 정렬: pivot 사용, n(n-1)/2 사용, 레코드의 많은 자료 이동을 없애고 하나의 파일을 부분적으로 나누어 가면서 정렬
단위 테스트 != 통합테스트(상향식, 하향식)
restructing 은 기능과 외적 동작은 변하지 않음
NS chart
Goto, 화살표 사용 X
소프트웨어 테스트 기본원칙
결함집중
살충제 패러독스
- 동일한 곳보다 새로운 곳으로 주기적으로 테스트 점검 개선
오류 부재의 게변
- 사용자 요구사항 만족 못하면 오류 제거해도 품질 높지 않음
형상 감사
- 체크 아웃: 파일 받아옴
- 체크인: 수정, 갱신
- Git 은 분산저장소 방식 (원격 저장소)
- 클라이언트/서버 방식: 중앙시스템(서버)에 저장
DRM
- 콘텐츠 분배자
- 패키저: 배포가능한 형태로 묶어서 암호화 (사용자 중심)
- 클리어링 하우스
- DRM 컨트롤러
EAI 구축 유형
PtP
변경 및 재사용 어려움
Hub & Spoke
허브
Message Bus
hybrid
소스코드 정적 분석
- 실행 X, 코드 분석
- 취약점, .. 발견 가능
- 하드웨어적인 방법 X