소프트웨어 개발 방법론
소프트웨어 개발 방법론의 종류
1)구조적 방법론:절차적
2)정보공학 방법론:기업에서 사용하는 데이터 중심 방법론
3)객체지향 개발 방법론:개체를 속성과 엮어 만든것
4)CBD 분석 방법론:모듈들을 조합해서 만드는 것
5)애자일 방법론:빠르게 만드는 것
애자일 방법론 종류:XP(5가지핵심가치,12가지실천사항),SCRUM,FDD(기능주도개발),Crysyal 등
XP 12가지 기본원리
짝프로그래밍:개발자 둘이서 짝으로 코딩하는 원리
공동 코드 소유:시스템에 있는 코드는 누구든지 언제라도 수정 가능하다는 원리
지속적인 통합(CI)*:매일 여러 번씩 소프트웨어를 통합하고 빌드해야한다는 원리
계획세우기:고객이 요구하는 비즈니스 가치를 정의하고 개발자가 필요한 것은 무엇이며 어떤 부분에서 지연될 수 있는지를 알려주어야한다는 원리
작은 릴리즈:작은 시스템을 먼저 만들고 짧은 단위로 업데이트한다는 원리
메타포어:공동적인 이름 체계와 시스템 서술서를 통해 고객과 개발자 간의 의사소통을 원활하게 한다는 원리
간단한 디자인:현재의 요구사항에 적합한 가장 단순한 시스템을 설계한다는 원리
테스트기반 개발(TDD)*:작성해야하는 프로그램에 대한 테스트를 먼저 수행하고 이테스트를 통과할 수 있도록 실제 프로그램의 코드를 작성한다는 원리
리팩토링:프로그램의 기능을 바꾸지 않으면서 중복제거,단순화 등을 위해 시스템 재구성한다는 원리
40시간 작업:개발자가 피곤으로 인해 실수하지 않도록 일주일에 40시간 이상을 일하지 말아랴 한다는 원리
고객 상주:개발자들의 질문에 즉각 대답해 줄 수 있는 고객을 프로젝트에 풀타임으로 상주시켜야 한다는 원리
코드표준:효과적인 공동 작업을 위해서는 모든 코드에 대한 코딩표준을 정해야한다는 원리
스크럼:매일 정해진 시간,장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론
스크럼 구성 요소
백로그:제품과 프로젝트에 대한 요구사항(기능들)
스프린트:2~4주의 짧은 개발 기간으로 반복적 수행으로 개발품질 향상(단위)
스크럼 미팅:매일 15분정도미팅으로 투두리스트 계획수립/데일리미팅이라고도함
스크럼 마스터:프로젝트 리더,스크럼 수행 시 문제를 인지 및 해결하는 사람
스프린트 회고:스프린트 주기를 되돌아보며 정해놓은 규칙 준수 여부,개선점 등을 확인 및 기록/해당 스프린트가 끝난 시점이나 일정 주기로 시행,스프린트 주기를 되돌아보며 정해놓은 규칙준수여부 개선점등을 확인 및 기록하는 회의
번다운 차트:남아있는 백로그 대비 시간을 그래픽적으로 표현한 차트/백로그는 보통 수직축에 위치하며 시간은 수평축에 위치
소프트웨어 개발 모델*
1)폭포수 모델:계획,분석,설계,구현,테스트 운영 등 순차적으로
2)프로토타이핑 모델:시제품 만드는 것
3)나선형 모델:위험분석 추가
4)RAD(Rapid Application development) 모델:CASE도구를 이용해 빠른개발
5)V모형*:폭포수 모형에 테스트를 강조한 것
6)4세대 기법:모델링해놓으면 소스코드를 만들어주는 것