[TIL] 오늘의 공부/정보처리기사
요구사항 확인 01. 소프트웨어 개발 방법론
개발소연자
2025. 2. 11. 02:38
소프트웨어 생명주기(SDLC)
소프트웨어 생명주기 모델 프로세스 요설구테유
- 요구사항 분석: 이해관계자
- 설계
- 구현: 특정 프로그래밍 언어로 코딩
- 테스트
- 유지보수
소프트웨어 생명주기 모델 종류 폭프나반
- 폭포수모델(Waterfall): 각 단계를 확실히 마무리
- 프로토타이핑모델(Prototyping): 프로토타입 = 시제품
- 나선형 모델(Spiral): 위험 최소화
위험 = 일정이 늦어짐, 돈 부족, 기능 변경
계획 및 정의 -> 위험 분석 -> 개발 -> 고객 평가 계위개고 - 반복적 모델(Iteration)
소프트웨어 개발 방법론(SDM)
SDM != SDLC 비슷하지만 다른 개념
- 구조적 방법론(Structured): 분할과 정복 접근 방식의 방법론
- 정보공학 방법론(Information Engineering)
- 객체지향 방법론(Object-Oriented): 객체
- 컴포넌트 기반 방법론(CBD: Component Based)
- 애자일 방법론(Agile): 사람이 중심
- 제품 계열 방법론(Product Line)
애자일 방법론 유형
- XP(eXtreme Programming): 5가지 가치와 12개의 실천항목, 사용자 스토리
- 스크럼(SCRUM): 짧은 시간 개발, velocity(기간 내 처리 가능 수)
- 린(LEAN): 칸반보드
XP의 5가지 가치
- 용기(Courage)
- 단순성(Simplicity)
- 의사소통(Communication)
- 피드백(Feedback)
- 존중(Respect)
XP의 12개의 기본원리
- 짝 프로그래밍(Pair Programming)
- 공동 코드 소유(Collective Ownership)
- 지속적인 통합(CI: Continous Integration)
- 계획 세우기(Planning Process)
- 작은 릴리즈(Small Release)
- 메타포어(Metaphor)
- 간단한 디자인(Simple Design)
- 테스트 기반 개발(TDD: Test Driven Development)
- 리펙토링(Refactoring)
- 40시간 작업(40-Hour Work)
- 고객 상주(On Site Customer)
- 코드 표준(Coding Standard)
스크럼 주요 개념
- 백로그(Backlog)
- 스프린트(Sprint)
- 스크럼 미팅(Scrum Meeting)
- 스크럼 마스터(Scrum Master)
- 스프린트 회고(Sprint Retrospective)
- 번 다운 차트(Burn Down Chart)
객체 지향 분석 방법론
객체 지향 구성요소
- 클래스(Class)
- 객체(Object)
- 메서드(Method)
- 메시지(Message)
- 인스턴스(Instance)
- 속성(Property)
객체 지향 기법 캡상다추정관
- 캡슐화(Encapsulation)
- 상속성(Inheritance)
- 다형성(Polymorphism)
오버로딩: 같은 이름 다른 매개변수의 여러 메서드
오버라이딩: 부모 메서드 무시하고 재정의 - 추상화(Abstraction)
- 정보은닉(Information Hiding)
- 관계성(Relationship)
데이터를 참조하는 관계 종류
- 연관화(Association): is-member-of, 홍길동씨는 회계팀이다.
- 집단화(Aggregation): is-part-of, 엔진과 바퀴는 자동차의 구성이다.
- 분류화(Classification): is-instance-of, 홍길동씨와 임꺽정씨는 사람이다.
- 일반화(Generalization): is-a
- 특수화(Specialization): is-a, 버스와 기차는 교통수단이다.
객체 지향 설계 원칙(SOLID)
SOLID
- 단일 책임의 원칙(SRP: Single Responsibility)
- 개방 폐쇄 원칙(OCP: Open Close): 확장에는 열려있고, 변경에는 닫혀있어야 한다.
- 리스코프 치환의 원칙(LSP: Liskov Substitution): 상위 개념으로 교체 가능해야 한다.
- 인터페이스 분리의 원칙(ISP: Interface Segregation): 사용하지 않으면 구현하지 마라.
- 의존성 역전의 원칙(DIP: Dependency Inversion)
객체 지향 분석 (OOA)
객체 지향 분석 방법론 종류
- OOSE - 야콥슨: 기능적 요구사항 중심
- OMT - 럼바우: 그래픽 표기법
- OOD - 부치
- 코드-요든 방법론
- 워프-브록 방법론
럼바우 분석절차 객동기
- 객체 모델링: ERD
- 동적 모델링: 상태 다이어그램
- 기능 모델링: 자료 흐름도(DFD)
프로젝트 관리
프로젝트 관리 대상
- 계획 관리
- 품질 관리
- 범위 관리
프로젝트 관리 3대 요소(3P)
- 사람(People)
- 문제(Problem)
- 프로세스(Process)
비용산정 모형
비용산정 모형 분류
하향식 산정방법
- 델파이 기법
상향식 산정방법
- 코드 라인 수(LoC): 낙관치1: 중간치4: 비관치1
- Man Month
Man Month = LoC / 프로그래머의 월간 생산성
프로젝트 기간 = Man Month / 프로젝트 인력 - COCOMO 모형: 조직형, 반분리형, 임베디드형
- 기능점수(FP) 모형
일정 관리 모델
일정 관리 모델 종류
- 주 공정법(CPM: Critical Path Method)
- PERT(Program Evaluation and Review Technique)
- 중요 연쇄 프로젝트 관리(CCPM: Critical Chain Project Management)
위험 관리
위험의 종류
- 알려진 위험
- 예측 가능한 위험
- 예측 불가능한 위험
위험 대응 전략
- 회피(Avoidance)
- 전가(Transference)
- 완화(Mitigation)
- 수용(Acceptance)