SDLC (Software Development Life Cycle)
소프트웨어 개발 생명주기는 소프트웨어를 계획·분석·설계·구현·테스트·유지보수하는 전체 과정의 체계적인 프레임워크입니다.
개발 방법론 모델
폭포수 모델 (Waterfall)
- 요구분석 → 설계 → 구현 → 테스트 → 유지보수 순으로 순차 진행
- 장점: 단계별 명확한 산출물, 관리 용이
- 단점: 요구사항 변경 대응 어려움, 초반 오류 발견 시 비용 증가
나선형 모델 (Spiral)
- 계획 → 위험 분석 → 개발 → 평가를 반복
- 위험 관리가 중요한 대형 프로젝트에 적합
프로토타입 모델
- 시제품을 빠르게 개발하여 사용자 피드백 반영
- 요구사항이 불명확할 때 유용
애자일 방법론
애자일 선언문 4가지 가치
- 개인과 상호작용 > 프로세스와 도구
- 작동하는 소프트웨어 > 포괄적인 문서
- 고객과의 협력 > 계약 협상
- 변화에 대응 > 계획 준수
스크럼 (Scrum)
- 스프린트: 1~4주 단위의 반복 개발 주기
- 제품 백로그: 개발할 기능 우선순위 목록
- 스프린트 백로그: 스프린트 내 작업 목록
- 스크럼 마스터: 팀의 장애물 제거 및 프로세스 촉진자
- 데일리 스크럼: 매일 15분 이내 진행 현황 공유
칸반 (Kanban)
작업을 시각화하고 WIP(작업 중 항목) 한도를 설정하여 흐름을 최적화하는 방법론
UML 다이어그램
구조 다이어그램
- 클래스 다이어그램: 클래스와 관계 정의, 가장 많이 사용
- 컴포넌트 다이어그램: 물리적 컴포넌트 구조
- 배치 다이어그램: 하드웨어 배포 구성
행위 다이어그램
- 유스케이스 다이어그램: 시스템 기능과 사용자 관계 (요구사항 분석)
- 시퀀스 다이어그램: 객체 간 메시지 교환 시간 순서 표현
- 상태 머신 다이어그램: 객체의 상태 변화
- 활동 다이어그램: 프로세스 흐름, 병렬 처리 표현 가능
소프트웨어 테스트
테스트 기법 분류
- 블랙박스 테스트: 내부 구조 모르고 입출력만으로 테스트
- 동치 분할, 경계값 분석, 결정 테이블, 유스케이스 테스트
- 화이트박스 테스트: 내부 로직과 코드 기반 테스트
- 구문 커버리지, 분기 커버리지, 조건 커버리지, 경로 커버리지
테스트 수준
- 단위 테스트 → 통합 테스트 → 시스템 테스트 → 인수 테스트
시험 핵심 정리
- 폭포수: 이전 단계 완료 후 다음 단계 진행
- 스크럼 산출물: 제품 백로그, 스프린트 백로그, 번다운 차트
- UML 유스케이스: include(포함), extend(확장) 관계
- 클래스 관계: 연관, 집합, 합성, 의존, 일반화, 실체화
- 테스트 원칙: 결함 없음 오류(Absence of Error) – 결함 없어도 쓸모없는 소프트웨어 존재
마무리
소프트웨어 공학은 용어 정의와 각 개념의 특징을 비교하는 문제가 많습니다. 특히 UML 다이어그램 종류와 용도, 애자일 스크럼 용어는 반드시 숙지하세요.