🔷 소프트웨어 생명 주기 (SDLC)
소프트웨어 개발 과정 전체를 단계별로 나눈 것
프로젝트가 시작 → 개발 → 테스트 → 유지보수까지 전체 흐름
👉 시험에 "SDLC 단계 순서" 나옴!
단계 순서 (암기)
① 프로젝트 계획 → ② 요구 분석 → ③ 설계 → ④ 구현 → ⑤ 테스트 → ⑥ 유지보수
🔷 개발 모형(방법론)들
1️⃣ 폭포수 모델 (Waterfall)
👉 시험 잘 나옴! "고전적 모델, 단계적 개발"
- 특징 : 선형 순차적 개발 (Step-by-Step)
- 한 단계 끝나야 다음 단계 진행 가능
- 예) 건축물 짓기 처럼 단계별로 차례차례
✅ 키워드 암기 : 선형 순차적, 전통적 개발 모형, 단계별
2️⃣ 프로토타입 모델 (Prototype)
- 고객 요구사항을 정확히 모를 때 견본/시제품 만들어 확인
- 고객과 의견 교환하면서 점점 개선
- 예) 시제품 만들어서 고객이 사용해보고 피드백 받기
✅ 키워드 암기 : 견본/시제품, 고객 요구 확인
3️⃣ 나선형 모델 (Spiral)
👉 시험 자주 출제!
- 위험 분석 단계가 추가됨 (리스크 줄이기 목적)
- 반복적 개발 구조
- 문서화보단 위험 분석과 점진적 개선에 집중
✅ 암기 문장 : 계획 → 위험 분석 → 개발 및 검증 → 고객 평가
✅ 키워드 : 위험 관리, 반복적, 점진적 개발
4️⃣ 애자일 모델 (Agile)
👉 최근 시험에 많이 나옴!
- 일정 짧은 주기(스프린트(Sprint) 또는 이터레이션(Iteration))로 반복 개발
- 고객 요구사항 변화에 유연하게 대응
- 문서보다는 작동하는 소프트웨어에 집중
✅ 대표 기법 : XP(Extreme Programming), Scrum, FDD, Lean, DSDM
✅ 키워드 : 짧은 반복 주기, 고객 요구 반영, 유연 대응
🔷 설계 방법
1️⃣ 하향식 설계 (Top-down)
- 상위 기능부터 설계 → 하위 기능으로 분해
- 절차 지향 (순차적 설계 방식)
✅ 키워드 : 절차 지향, 상위부터 설계, 구조적 설계
2️⃣ 상향식 설계 (Bottom-up)
- 작은 부품(모듈)부터 설계 → 상위 기능으로 통합
- 재사용 지향
✅ 키워드 : 재사용 지향, 모듈 중심, 기능 추가 어려움
🔷 XP (eXtreme Programming)
👉 Agile의 대표 사례! 시험 출제 포인트!
- 고객과 개발자가 계속 소통하며 빠르게 반복 개발
- 5가지 가치 : 용기, 단순성, 의사소통, 피드백, 존중
✅ 피드백 중시 : 테스트하면서 즉각적 문제 수정
✅ 키워드 : 짧은 반복 주기, 고객 참여, 피드백, 문서화 X, 소스코드 중심
🔷 정리 암기 포인트
| 폭포수 | 선형 순차적 개발, 전통적 |
| 프로토타입 | 시제품, 고객 요구 확인 |
| 나선형 | 위험 분석, 반복 개발 |
| 애자일 | 짧은 반복 주기, 고객 요구 반영 |
| 하향식 | 절차 지향, 상위부터 설계 |
| 상향식 | 재사용 지향, 모듈 중심 |
| XP | Agile, 피드백, 문서화X |
📘 프로젝트 계획
🔷 1. 비용 산정 기법
① 하향식 비용 산정 기법
✅ 암기 문장 → 전문가 감정 기법 = 주관적 판단
- 전문가 의견으로 비용을 추정
- "그동안 해본 경험상~ 이 정도 비용 들겠네" 하는 방식
② 상향식 비용 산정 기법
✅ 암기 문장 → 작업 단위별 비용 산정 → 전체 합산
📍 LOC (Source Line of Code)
- 코드 라인 수 기반으로 비용 계산
- 낙관치(a), 비관치(b), 기대치(c) 사용
- 공식 : (a + 4c + b) / 6
해설:
코드 몇 줄 작성해야 하는지 → 인력, 시간 예측
③ 개발 단계별 입력 Effort Per Task
- LOC 기반으로 단계별 인력 소요량 계산
④ 수학적 비용 산정 기법
✅ COCOMO (시험 단골)
COCOMO는 3가지 유형으로 구분됨! → 표 암기 필수!!
| 조직형(Organic) | 중·소규모 | 5만 라인 이하 (50KDSI) |
| 반분리형(Semi-detached) | 중간 규모 트랜잭션 시스템 | 30만 라인 이하 (300KDSI) |
| 내장형(Embedded) | 최대형 대규모 시스템 | 30만 라인 초과 |
✅ 암기 팁
"조5반30내30↑"
조직형 → 5만
반분리형 → 30만
내장형 → 30만 이상
✅ PUTNAM 모델
암기 문장 :
노력 분포도 사용 / Rayleigh-Norden 곡선 활용
해설:
프로젝트에 사람과 시간 어떻게 분배할지 예측
✅ Function Point (FP)
암기 문장 :
기능에 가중치 부여 후 기능 점수 계산
FP 증가 요인(암기 필수! 5개 요소)
- 자료 입력
- 정보 출력
- 명령어
- 데이터 파일
- 인터페이스
시험에 "FP 요소 고르시오" 나옴!!
🔷 2. 개발 일정 산정
✅ WBS (Work Breakdown Structure)
암기 문장 :
프로젝트를 작업별로 쪼개서 일정/비용 산정
해설:
큰 프로젝트 → 작은 단위로 나눠서 계획 세움
🔷 3. 네트워크 차트
✅ PERT
암기 문장 :
불확실할 때 사용, 기대치 기반
- 원 노드(작업), 간선(활동/시간)
- "언제 끝날지 애매한 프로젝트"에 유리
✅ CPM
암기 문장 :
확실할 때 사용, 임계 경로 계산
임계 경로란?
가장 오래 걸리는 경로 → 프로젝트 총 기간
START
↓
A(2일)
↓
B(3일) ----> E(5일) ---> G(4일)
↓ ↓
C(4일) H(2일)
↓
F(6일)
↓
END
👉 임계 경로 = A-B-E-G-H = 총 14일
👉 경로 중 가장 오래 걸리는 시간 = 프로젝트 전체 기간
✅ 간트 차트
암기 문장 :
막대차트로 일정 표시 (시간선 기반)
특징
- Bar(막대) 그래프로 보여줌
- 일정 변경 시 반영 어려움 (변경에 둔감)
📌 최종 암기 정리 표
| 하향식 | 전문가 감정, 주관적 |
| 상향식 | LOC, (a+4c+b)/6 |
| COCOMO | 조5반30내30↑ |
| PUTNAM | 노력 분포도, Rayleigh-Norden |
| FP | 입력/출력/명령어/파일/인터페이스 |
| WBS | 작업 쪼개기 |
| PERT | 불확실, 기대치 |
| CPM | 확실, 임계경로 |
| 간트 차트 | 막대차트, 시간 표시 |
📚 쉬운 종합 해설
👉 비용 산정 방법 3가지 기억!
- 하향식(경험으로)
- 상향식(작업 단위로)
- 수학적(COCOMO/PUTNAM/FP)
👉 일정 산정 방법
- WBS → 전체를 쪼갬
- 네트워크 차트
- PERT = 불확실
- CPM = 확실(임계경로 계산)
- 간트차트 = 막대차트로 시각화
📒 요구사항 분석
1️⃣ 요구사항 정의
👉 요구사항이란?
👉 소프트웨어 개발 및 유지보수 과정에서 필요한 기준과 근거 제공
어떠한 문제를 해결하기 위해 필요한 조건 및 제약사항을 요구
= 고객이 원하는 것 + 시스템이 해야 하는 일
2️⃣ 요구사항의 유형
| 기능적 요구사항 | 시스템이 실제로 수행해야 하는 기능 | 금융 시스템 → 조회/입출금/이체 기능 |
| 비기능적 요구사항 | 성능, 보안, 품질, 안정성 등 보조적인 요구사항 | 모든 화면 3초 이내 응답 |
💡 쉽게 말하면
- 기능적 = 무엇을 할 것인가
- 비기능적 = 어떻게 잘 할 것인가
3️⃣ 요구사항 개발 프로세스 (★★★ 순서 매우 중요! 시험 단골)
① 도출/추출 → ② 분석 → ③ 명세 → ④ 확인/검증
| ① 도출/추출 | 요구사항을 모으는 단계 (인터뷰, 회의 등) | 인터뷰, 브레인스토밍 |
| ② 분석 | 수집한 요구사항을 분석하여 타당성, 비용, 일정 검토 | 분석 보고서 작성 |
| ③ 명세 | 요구사항을 문서화 | 명세서 작성 |
| ④ 확인/검증 | 요구사항이 정확하게 작성됐는지 확인 | 리뷰, 검토 |
💡 쉽게 말하면:
요구사항을 모은다 → 분석한다 → 문서로 만든다 → 확인한다
4️⃣ 요구사항 분석 도구
| CASE | 구조적 분석 및 설계 도구 (자동화 가능) |
| HIPO | 계층적 설계 방식, 이해 쉬움, 유지보수 간단 |
💡 쉽게 말하면:
CASE = 자동화 도구 / HIPO = 그림으로 계층 구조 표현
5️⃣ 구조적 분석 모델
✅ 데이터 흐름도 (DFD, Data Flow Diagram) (★★★ 시험 자주 출제!)
👉 프로세스(처리)와 데이터 흐름을 시각적으로 표현
👉 시간 흐름은 나타내지 않음
기호 표
| 원(●) | 외부 엔티티 (원) |
| 사각형 | 데이터 저장소 (Data store) |
| 화살표 | 데이터 흐름 (Flow) |
| 원형 or 타원 | 프로세스 (Process) |
💡 쉽게 말하면:
무엇이 처리되고, 어떤 데이터가 어떻게 흐르는지 보여주는 그림
✅ 자료 사전 (DD, Data Dictionary)
👉 자료에 대한 상세 설명 모음집
구성 요소 표
| + | 구성 |
| * | 설명/주석 |
| { } | 반복 |
6️⃣ 객체지향 분석 모델
✅ Rumbaugh 방법 (★★★ 시험 빈출)
👉 가장 일반적으로 사용
👉 객체 / 동적 / 기능 모델로 구분
| 객체 모델 | 객체와 관계 표현 |
| 동적 모델 | 상태 변화와 동작 기술 |
| 기능 모델 | DFD 기반, 처리 흐름 표현 |
💡 쉽게 말하면:
- 객체 모델 = 무슨 객체(명사)들이 있는가
- 동적 모델 = 어떻게 변하는가(동사)
- 기능 모델 = 어떻게 처리되는가(프로세스)
7️⃣ 요구사항 명세 작성법
| 정형 명세 | 수학적, 정확한 명세 (VDM, Z, Petri-net, CSP) | 수학적으로 정확함, 이해 어려움 |
| 비정형 명세 | 자연어, 그림 등으로 작성 (FSM, ER, State Chart) | 이해 쉬움, 일반적 사용 |
💡 쉽게 말하면:
- 정형 = 수학적, 매우 정확
- 비정형 = 일반적으로 많이 쓰임
🎁 최종 암기 포인트 요약
1️⃣ 요구사항 = 문제 해결을 위한 조건과 제약사항
2️⃣ 기능적 / 비기능적 요구사항 구분
3️⃣ 요구사항 개발 프로세스 순서 꼭 암기 (도출 → 분석 → 명세 → 검증)
4️⃣ DFD = 시간 흐름 없음, 데이터 흐름 표현
5️⃣ Rumbaugh 방법 = 객체/동적/기능 모델 구분
6️⃣ 명세 방법 = 정형(수학적), 비정형(일반적)
'정보처리기사' 카테고리의 다른 글
| [데이터 입출력 구현] (0) | 2025.06.11 |
|---|---|
| [소프트웨어 구축] (5) | 2025.06.10 |
| [개념] 소프트웨어 설계 (0) | 2025.06.03 |
| [2025 실기 복원] (0) | 2025.06.02 |
| [이론] 운영체제(페이지 교체, CPU 스케쥴링, 리눅스 명령어) (0) | 2025.06.02 |