시스템 분석 및 설계
1. 요구사항 분석
요구사항 종류
| 종류 |
설명 |
예시 |
| 기능적 요구사항 |
시스템이 해야 할 기능 |
로그인, 결제 처리 |
| 비기능적 요구사항 |
품질 속성 |
응답 시간 1초 이내, 99.9% 가용성 |
요구사항 개발 프로세스
- 도출(Elicitation): 인터뷰, 설문, 관찰로 요구사항 수집
- 분석(Analysis): 요구사항 구체화, 충돌 해결
- 명세(Specification): SRS(소프트웨어 요구사항 명세서) 작성
- 검증(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가지: 기능적합성, 성능효율성, 호환성, 사용성, 신뢰성, 보안성, 유지보수성, 이식성
- 테스트 순서: 단위 → 통합 → 시스템 → 인수
- 회귀 테스트: 변경 후 기존 기능 정상 동작 확인