4일차 – 소프트웨어 공학 상세 + 개발 방법론
🛠 소프트웨어 개발 단계별 상세 설명
요구분석 : 사용자의 요구사항을 수집하고 문서화하는 단계
설계 : 시스템 구조 설계, 모듈 구성, 인터페이스 정의
구현 : 설계 내용을 바탕으로 실제 코드 작성
테스트 : 단위 테스트, 통합 테스트, 시스템 테스트 등 진행
유지보수 : 운영 후 오류 수정, 기능 개선, 성능 향상
🔄 구조적 분석/설계 기법
구조적 분석 도구 : DFD (자료 흐름도), ERD (개체-관계 다이어그램)
자료사전(DD) : DFD에 나오는 모든 데이터 요소를 정리한 표
ERD 구성요소 : 개체(Entity), 속성(Attribute), 관계(Relationship)
자료 흐름도(DFD) : 데이터 흐름, 프로세스, 저장소를 도식화
🧱 객체지향 개념 (OOP)
캡슐화 : 데이터 + 기능을 하나로 묶고 외부 접근을 제한
상속 : 기존 클래스의 속성과 기능을 새로운 클래스가 물려받음
다형성 : 같은 메시지(함수 호출)에 대해 객체가 다르게 반응
추상화 : 중요한 부분만 보여주고 세부 구현은 감춤
🧰 개발 방법론
전통적 방법론 : 폭포수 모델, 프로토타입 모델
신속 개발 방법론 : RAD (Rapid Application Development)
객체지향 방법론 : 객체 단위로 분석, 설계, 구현
컴포넌트 기반 방법론 : 재사용 가능한 컴포넌트를 조합
애자일 방법론 : 고객 피드백 중심, 반복적, 협업 강조
스크럼(SCRUM) : 짧은 개발 주기(스프린트), 팀 단위 진행
📌 암기 포인트 요약
소프트웨어 생명주기 : 요구분석 → 설계 → 구현 → 테스트 → 유지보수
구조적 분석 도구 : DFD, ERD, 자료사전
OOP 핵심 : 캡슐화 / 상속 / 다형성 / 추상화
애자일 특징 : 반복 개발, 빠른 피드백, 협업 중시
스크럼 요소 : 스프린트 / 백로그 / 데일리 미팅
✅ OX 퀴즈
- 요구분석 단계는 코드를 작성하는 단계이다. (O/X)
- DFD는 시스템 내의 데이터 흐름을 시각화한 것이다. (O/X)
- ERD는 개체와 개체 간의 관계를 나타내는 다이어그램이다. (O/X)
- 캡슐화는 클래스 간에 상속을 가능하게 하는 개념이다. (O/X)
- 다형성이란 같은 명령어에 대해 객체마다 다른 반응을 하는 성질이다. (O/X)
- RAD는 반복적인 피드백을 기반으로 하는 전통적 개발 방법론이다. (O/X)
- 스크럼은 정해진 시간 안에 목표를 달성하는 스프린트를 중심으로 운영된다. (O/X)
🧠 빈칸 문제
- 소프트웨어 개발 단계는 요구분석 → 설계 → 구현 → 테스트 → ( ) 로 구성된다.
- 자료 흐름도에서 사용하는 주요 요소는 프로세스, 데이터 흐름, 저장소, ( ) 이다.
- ERD의 구성 요소는 개체, 속성, ( ) 이다.
- 캡슐화는 데이터와 기능을 하나로 묶고 ( ) 을 제한하는 객체지향 개념이다.
- 객체지향의 핵심 개념 네 가지는 캡슐화, 상속, 추상화, ( ) 이다.
- RAD는 ( ) 개발에 초점을 맞춘 방법론이다.
- 스크럼에서 개발 단위는 ( ) 라고 불린다.
🎴 암기카드
Q. 소프트웨어 생명주기(SDLC)의 순서는?
👉 요구분석 → 설계 → 구현 → 테스트 → 유지보수
Q. DFD와 ERD의 차이는?
👉 DFD는 데이터 흐름, ERD는 개체 간 관계를 표현
Q. 객체지향 프로그래밍의 4대 특성은?
👉 캡슐화, 상속, 다형성, 추상화
Q. 캡슐화란?
👉 데이터와 기능을 묶고 외부에서 직접 접근 못 하게 함
Q. 스크럼(Scrum)의 핵심 구성 요소는?
👉 스프린트, 백로그, 데일리 미팅
Q. RAD의 특징은?
👉 빠른 개발과 반복적인 사용자 피드백