SW 개발 방법론
구조적 방법론 : 절차지향 , 하향식
객체지향 방법론 : 객체간 관계, 상향식
애자일 방법론 : 변화에 빠름 , 유연한 대응
SW개발 모델
폭포수 모델 : 순차적 접근
프로토타이핑 : 시제품
나선형 : 계획 -> 위험분석 -> 개발 -> 평가 (계분개평)
RAD : 래피드 , 빠른 개발 주기
V모형 : 단위 테스트-> 통합 테스트 -> 시스템 테스트 -> 인수 테스트
*단위테스트 : 정적 , 동적
*통합 테스트 : 상향식 - 드라이버 / 하향식 - 스텁
*시스템 테스트 : 기능 / 비기능
*인수 테스트 : 알파 - 개발자 O / 베타 : 개발자 X
애자일 방법론
작은 구성요소를 빠르게 개발
XP : eXtreamPrograming - 용기 , 존중 , 의사소통 , 피드백 , 단순성 (용존의피단)
SCRUM : 백로그, 스프린트 단위(짧은기간- 2~4주)
비용 산정 기법
COCOMO기법 - 보헴
*조직형 Organic : 5만라인이하
*반분리형 Semi - Detached : 5~30만라인
*내장형 Embeded : 30만라인 이상
PUTNAM 기법 : 랠리 노든 곡선
기능 점수 기법 : 기능에 점수매김
일정 산정 기법 - 분설구테
작업 분해(WBS)
CPM 네트워크 작성
최소 소요 기간 계산 : 임계 경로 (!개념 주의 가장 긴 경로를 의미함 - 다끝낼수있는 최소 시간)
간트 차트 표현
요구사항 개발 프로세스
개발 프로세스
- 도출 분석 명세 확인 (도분명확)
분석 도구
- DFD(자료흐름도), DD(자료 사전), MiniSpec, STD, UML 등
요구사항 분류
-기능 , 비기능
CASE 도구
상위 CASE - 개발 전 단계까지 쓰는것
하위 CASE - 개발 하면서 쓰는것
구조적 분석 모델
DFD - 자료흐름도
* DFD 기호

DD - 자료사전
*DD 기호 정리

ERD - 기호
*ERD 기호 정리

객체지향 분석 모델
럼바우 - Rumbaugh
객체 모델링 - 객체 다이어그램
동적 모델링 : 상태 다이어그램
기능 모델링 : 자료 흐름도
(객객 동상 기자)
Booch - 부치 : 미시적 및 거시적 개발
Jacobson - 제이콥슨 : 유스케이스
Coad 와 Yourdon : ERD
Wirfs - Brock 방법 : 분석과 설계의 구분이 없음
UI 설계
UI/UX
UI - 사용자가 접하는 화면 디자인
UX - UI로 겪는 사용자의 경험
UI유형
-CLI : 커멘드 라인 인터페이스 (키보드)
-GUI : 그래픽 ~~(마우스)
-NUI : 내츄럴(자연스러운 - 음성... 시리,빅스비)
-OUI : 모든것
UI설계 원칙
직관성 : 누구나 쉽게 이해
유효성 : 목적 달성
학습성 : 누구나 쉽게 배움
유연성 : 확장에 열려 있어야함
UI 설계 도구 (중요도 下)
-와이어프레임
-스토리보드
-프로토타입
-목업
-유스케이스
형상 관리
-소프트웨어의 변경사항을 추적하고 관리하는 것
형상관리 절차
형상 식별 : 관리대상 선정
형상 통제 : 변경요청 검토 승인, 현재 SW에 반영
형상 감사 : 변경 검증
형상 기록 : 변경 이력 보존
형상관리 도구 - CVS -> SVN(CVS발전형) , GIT , CLEAR , CASE, BitKeeper
빌드 도구(중요도 하)
소스코드 컴파일 , 테스트, 패키징 등을 자동화한 도구
종류
-Maven : 의존성관리 pom.XML
-Jenkins : 지속적 통합 도구
-Gradle : Groovy 기반 - 안드로이드 앱 등
개발 프레임워크
프레임워크 : 개발구조 제공 틀
라이브러리 : 재사용 가능한 코드 모음
API : 소프트웨어간 상호작용용 인터페이스
ORM : 객체지향 프로그래밍 언어의 객체를 DB 테이블과 맵핑 JPA, MYBATIS