
소프트웨어 생명 주기 모델
- 폭포수 모델
- 요구사항 분석 -> 설계 -> 구현 -> 테스트
- 프로토타이핑 모델
- 나선형 모델
- 계획 및 정의 -> 위험 분석 -> 개발 -> 고객 평가
- 반복적 모델
소프트웨어 개발 방법론
- 구조적 방법론
- 나씨-슈나이더만 차트(NS Chart) 사용
- 정보공학 방법론
- 객체 지향 방법론
- 컴포넌트 기반 방법론
- 애자일 방법론
- 제품 계열 방법론
애자일 방법론 유형
- XP
- 1~3주의 반복 개발주기
- 5가지 가치 : 용기, 단순성, 의사소통, 피드백, 존중
- 12가치 기본원리 : 짝 프로그래밍, 공동 코드 소유, 지속적인 통합, 계획 세우기, 작은 릴리즈, 메타포어, 간단한 디자인, 테스트 기반 개발, 리팩토링, 40시간 작업, 고객 상주, 코드 표준
- 스크럼
- 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론
- 백로그, 스프린트, 스크럼 미팅, 스크럼 마스터, 스프린트 회고, 번 다운 차트
- 린
- JIT, 칸반 보드 사용
객체 지향 구성 요소
- 클래스
- 객체
- 메소드
- 메시지
- 인스턴스
- 속성
객체 지향 기법
- 캡슐화
- 상속성
- 다형성
- 오버로딩, 오버라이딩
- 추상화
- 정보 은닉
- 관계성
- 연관화 : is-member-of 관계
- 집단화 : is part of 관계, part-whole 관계
- 분류화 : is-instance-of 관계
- 일반화 : is-a 관계
- 특수화 : is-a 관계
객체 지향 설계 원칙(SOLID)
- 단일 책임의 원칙(SRP)
- 개방 폐쇄 원칙(OCP)
- 리스코프 치환의 원칙(LSP) : 서브 타입은 어디서나 자신의 기반 타입으로 교체할 수 있어야 한다.
- 인터페이스 분리의 원칙(ISP) : 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다.
- 의존성 역전의 원칙(DIP) : 객체에서 어떤 클래스를 참조해서 사용하는 경우, 그 클래스를 직접 참조하는 것이 아니라 그 대상의 상위 요소인 추상 클래스나 인터페이스로 참조하라는 원칙
객체 지향 분석 방법론
- OOSE : Jacobson(야콥슨)
- OMT : Rumbaugh(럼바우)
- 객체 모델링(정보 모델링) : 객체 다이어그램을 활용하여 표현
- 동적 모델링 : 상태 다이어그램을 활용하여 표현
- 기능 모델링 : 자료 흐름도(DFD)를 활용하여 표현
- OOD : Booch(부치)
- Coad-Yourdon 방법론 : ER 다이어그램 사용
- Wirfs-Brock 방법론 : 분석과 설계 간의 구분이 없고 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행하는 분석 방법
프로젝트 관리 대상
- 계획 관리
- 품질 관리
- 범위 관리
프로젝트 관리 3요소(3P)
- 사람(People)
- 문제(Problem)
- 프로세스(Process)
비용산정 하향식 모형
- 전문가 판단
- 델파이 기법
비용산정 상향식 모형
- LoC 모형
- 예측치 = (낙관치 + 4 * 중간치 + 비관치) / 6
- Man Month 모형
- (코드 라인 수) / (프로그래머의 월간 코드 작성 수)
- COCOMO 모형
- Boehm이 제안한 모형
- Organic(조직형) : 5만 라인 이하
- Semi-Detached(반 분리형) : 30만 라인 이하
- Embedded(임베디드형) : 30만 라인 이상
- Putnam 모형
- Rayleigh-Norden 곡선의 노력 분포도를 기초로 한다.
- FP 모형
- 총 기능점수 * (0.65 + (0.1 * 총 영향도))
일정관리 모델
- 주 공정법(CPM, Critical Path Method)
- PERT
- 중요 연쇄 프로젝트 관리(CCPM)
위험 대응 전략
- 회피
- 전가
- 완화
- 수용
소프트웨어 아키텍처 4+1 뷰
- 유스케이스 뷰
- 논리 뷰
- 프로세스 뷰
- 구현 뷰
- 배포 뷰
소프트웨어 아키텍처 패턴
- 계층화 패턴
- 클라이언트-서버 패턴
- 파이프-필터 패턴
- 브로커 패턴
- 모델-뷰-컨트롤러 패턴
소프트웨어 아키텍처 비용 평가 모델
- SAAM
- ATAM
- CBAM
- ADR
- ARID
디자인 패턴
- 생성 : Builder, Prototype, Factory Method, Abstract Factory, Singleton
- 구조 : Bridge, Decorator, Facade, Flyweight, Proxy, Composite, Adapter
- 행위 : Mediator, Interpreter, Iterator, Template Method, Observer, State, Visitor, Command, Strategy, Memento, Chain of Responsibility
요구사항의 분류
- 기능적 요구사항
- 비기능적 요구사항
요구사항 개발 단계 구성(CMM Level 3 프로세스 영역)
- 도출
- 인터뷰, 브레인 스토밍, 델파이 기법, 롤 플레잉, 워크숍, 설문 조사
- 분석
- 데이터 흐름도(DFD), 자료 사전(DD), UML
- 명세
- 비정형 명세 기법 : 사용자의 요구를 자연어를 기반으로, 정형 명세 기법 : 사용자의 요구를 수학적인 원리와 표기법으로
- 확인(검증)
- 동료 검토, 워크 스루, 인스펙션