정보처리기사 기출문제 총정리 ⑭ 소프트웨어 공학 – SDLC·애자일·UML·테스트

SDLC (Software Development Life Cycle)

소프트웨어 개발 생명주기는 소프트웨어를 계획·분석·설계·구현·테스트·유지보수하는 전체 과정의 체계적인 프레임워크입니다.

개발 방법론 모델

폭포수 모델 (Waterfall)

  • 요구분석 → 설계 → 구현 → 테스트 → 유지보수 순으로 순차 진행
  • 장점: 단계별 명확한 산출물, 관리 용이
  • 단점: 요구사항 변경 대응 어려움, 초반 오류 발견 시 비용 증가

나선형 모델 (Spiral)

  • 계획 → 위험 분석 → 개발 → 평가를 반복
  • 위험 관리가 중요한 대형 프로젝트에 적합

프로토타입 모델

  • 시제품을 빠르게 개발하여 사용자 피드백 반영
  • 요구사항이 불명확할 때 유용

애자일 방법론

애자일 선언문 4가지 가치

  • 개인과 상호작용 > 프로세스와 도구
  • 작동하는 소프트웨어 > 포괄적인 문서
  • 고객과의 협력 > 계약 협상
  • 변화에 대응 > 계획 준수

스크럼 (Scrum)

  • 스프린트: 1~4주 단위의 반복 개발 주기
  • 제품 백로그: 개발할 기능 우선순위 목록
  • 스프린트 백로그: 스프린트 내 작업 목록
  • 스크럼 마스터: 팀의 장애물 제거 및 프로세스 촉진자
  • 데일리 스크럼: 매일 15분 이내 진행 현황 공유

칸반 (Kanban)

작업을 시각화하고 WIP(작업 중 항목) 한도를 설정하여 흐름을 최적화하는 방법론

UML 다이어그램

구조 다이어그램

  • 클래스 다이어그램: 클래스와 관계 정의, 가장 많이 사용
  • 컴포넌트 다이어그램: 물리적 컴포넌트 구조
  • 배치 다이어그램: 하드웨어 배포 구성

행위 다이어그램

  • 유스케이스 다이어그램: 시스템 기능과 사용자 관계 (요구사항 분석)
  • 시퀀스 다이어그램: 객체 간 메시지 교환 시간 순서 표현
  • 상태 머신 다이어그램: 객체의 상태 변화
  • 활동 다이어그램: 프로세스 흐름, 병렬 처리 표현 가능

소프트웨어 테스트

테스트 기법 분류

  • 블랙박스 테스트: 내부 구조 모르고 입출력만으로 테스트
    • 동치 분할, 경계값 분석, 결정 테이블, 유스케이스 테스트
  • 화이트박스 테스트: 내부 로직과 코드 기반 테스트
    • 구문 커버리지, 분기 커버리지, 조건 커버리지, 경로 커버리지

테스트 수준

  • 단위 테스트 → 통합 테스트 → 시스템 테스트 → 인수 테스트

시험 핵심 정리

  • 폭포수: 이전 단계 완료 후 다음 단계 진행
  • 스크럼 산출물: 제품 백로그, 스프린트 백로그, 번다운 차트
  • UML 유스케이스: include(포함), extend(확장) 관계
  • 클래스 관계: 연관, 집합, 합성, 의존, 일반화, 실체화
  • 테스트 원칙: 결함 없음 오류(Absence of Error) – 결함 없어도 쓸모없는 소프트웨어 존재

마무리

소프트웨어 공학은 용어 정의와 각 개념의 특징을 비교하는 문제가 많습니다. 특히 UML 다이어그램 종류와 용도, 애자일 스크럼 용어는 반드시 숙지하세요.

Leave a Comment