콘텐츠로 이동

시스템 분석 및 설계

1. 요구사항 분석

요구사항 종류

종류 설명 예시
기능적 요구사항 시스템이 해야 할 기능 로그인, 결제 처리
비기능적 요구사항 품질 속성 응답 시간 1초 이내, 99.9% 가용성

요구사항 개발 프로세스

  1. 도출(Elicitation): 인터뷰, 설문, 관찰로 요구사항 수집
  2. 분석(Analysis): 요구사항 구체화, 충돌 해결
  3. 명세(Specification): SRS(소프트웨어 요구사항 명세서) 작성
  4. 검증(Validation): 완전성, 일관성, 타당성 확인

요구사항 검증 기준

기준 설명
완전성 모든 요구사항이 명시됨
일관성 요구사항 간 충돌 없음
명확성 모호하지 않음
추적성 출처 및 구현 여부 추적 가능

2. 비용 산정 기법

COCOMO (Constructive Cost Model)

소스 코드 라인 수(LOC)를 기반으로 개발 비용과 기간을 산정합니다.

모드 설명
기본(Basic) 단순 공식으로 초기 산정
중간(Intermediate) 비용 유발 요인(15가지) 반영
발전(Detailed) 단계별 세부 산정

프로젝트 유형

유형 규모 특성
Organic 소규모 안정적 환경, 단순
Semi-detached 중규모 혼합 환경
Embedded 대규모 복잡한 제약 조건

기능 점수 (Function Point)

사용자 관점에서 기능의 복잡도를 기반으로 산정합니다.

기능 유형 설명
외부 입력(EI) 사용자 입력 처리
외부 출력(EO) 데이터 출력
외부 조회(EQ) 데이터 조회
내부 논리 파일(ILF) 내부 데이터 저장
외부 인터페이스 파일(EIF) 외부 시스템 데이터 참조

LOC 기반보다 언어 독립적 (어떤 언어로 구현해도 동일한 기능이면 동일한 점수)


3. 품질 관리

ISO/IEC 25010 소프트웨어 품질 특성

특성 설명
기능 적합성 요구 기능을 정확히 수행
성능 효율성 자원 사용 대비 성능
호환성 다른 시스템과의 공존/상호운용
사용성 사용자가 쉽게 사용 가능
신뢰성 지정 조건에서 기능 수행 능력
보안성 무단 접근 방지
유지보수성 변경·수정의 용이성
이식성 다른 환경으로 이전 용이성

테스트 유형

유형 설명
단위 테스트 개별 모듈/함수 테스트
통합 테스트 모듈 간 인터페이스 테스트
시스템 테스트 전체 시스템 기능 테스트
인수 테스트 고객 요구사항 충족 여부 확인
회귀 테스트 변경 후 기존 기능 정상 여부 확인

소프트웨어 품질 보증 (SQA)

  • 인스펙션(Inspection): 산출물을 체계적으로 검토
  • 워크스루(Walkthrough): 작성자가 검토자에게 설명하며 결함 발견
  • 리뷰(Review): 전반적인 검토 활동

4. 형상 관리 (SCM)

소프트웨어 변경 사항을 체계적으로 관리합니다.

활동 설명
형상 식별 관리 대상 항목 선정
형상 통제 변경 요청 검토 및 승인
형상 상태 보고 변경 이력 기록
형상 감사 변경 결과가 승인 내용과 일치하는지 확인

대표 도구: Git, SVN


시험 포인트

  • 기능적 vs 비기능적 요구사항: 기능 vs 성능/보안/가용성 등
  • COCOMO: LOC 기반 비용 산정
  • 기능 점수: 언어 독립적, 사용자 기능 기반 산정
  • 품질 특성 8가지: 기능적합성, 성능효율성, 호환성, 사용성, 신뢰성, 보안성, 유지보수성, 이식성
  • 테스트 순서: 단위 → 통합 → 시스템 → 인수
  • 회귀 테스트: 변경 후 기존 기능 정상 동작 확인