[2과목] 소프트웨어 개발

자료구조

선형 구조: 배열, 선형 리스트, 스택, 큐, 데크 비선형 구조: 트리, 그래프

삽입 정렬 index가 1번째 자료부터 시작. index 0자료 비교

-소스 코드 품질 분석 도구

정적 분석 도구 소스 코드 실행x, 잠재적 오류 찾기, 흐름 분석해 비정상적 패턴 찾기

종류: pmd, cppcheck, checkstyle, ccm 등 동적 분석 도구: 작성한 소스 코드를 실행, 메모리 누수 스레드의 결함 등 분석

종류: Avalanche, Valgrind 등

-소프트웨어 개발 활동 수행

결함(Fault): 오류 발생, 작동 실패 등 소프트웨어가 개발자가 설계한 것과 다르게 동작하거나 다른 결과가 발생하는 것 점검(Inspection):

-소프트웨어 품질 특성

기능성(Functionality): 사용자 요구사항 만족 신뢰성(Realiability): 오류 없이 수행 사용성(Usability): 사용자가 정확히 이해 후 사용 효율성(Efficiency): 한정된 자원 -> 얼마나 빨리 처리? 유지 보수성(Maintainability): 개선, 확장 가능성 이식성(Portability): 다른 환경

-인터페이스 구현 검증 도구

xUnit: Java(Junit), C++(CppUnit) 등 STAF: 서비스 호출 및 컴포넌트 재사용 등 FitNeese: 웹 기반 NTAF: NHN(Naver), FitNeese+STAF Selenium: 다양한 브라우저 및 개발언어 지원 watir: Ruby

네트워크 영역 인터페이스 송, 수신간 스니핑(Sniffing - 킁킁) 방지

종류: IPSec, SSL, S-HTTP 등 그 외, 애플리케이션 영역, 데이터베이스 영역 존재