[ 1과목 ] 소프트웨어 설계
- 요구사항 확인 A단계
001 소프트웨어 생명 주기
003 XP(eXtreme Programming) 기법
007 요구사항 분석
009 UML(Unified Modeling Language)
고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법.
: 의사소통(Communication), 단순성(Simplicity), 용기(Courage), 존중(Respect), 피드백(Feedback)
Pair Programming (짝 프로그래밍)
: 다른 사람과 함께 프로그래밍
-> 개발에 대한 책임을 공동으로 갖는 환경 조성.
Collective Ownership (공동 코드 소유)
: 개발 코드에 대한 권한과 책임을 공동으로 소유.
Test-Driven Development (테스트 주도 개발)
: 실제 코드 작성 전 테스트 케이스 먼저 작성 -> 무엇을 할지 정확히 파악.
자동화된 테스팅 도구(구조, 프레임워크) -> 테스트 지속적 시행.
Whole Team (전체 팀)
: 모든 구성원들은 각자 자신의 역할이 있고, 그에 책임을 져야 함.
Continuous Integration (계속적인 통합)
: 모듈 단위로 나눠서 코드 개발 -> 작업 하나 마무리마다 지속적으로 통합.
Design Improvement (디자인 개선) 또는 Refactoring (리팩토링)
: 기능 변경 없이 단순화, 유연성 강화 등을 통해 시스템을 재구성.
Small Releases (소규모 릴리즈)
: 릴리즈 기간을 짧게 반복 -> 고객의 요구변화에 신속히 대응 가능.
+) 럼바우(Rumbaugh) 객체지향 분석 기법 : 객체는 객체 모델링에 활용. 상태는 동적 모델링에 활용.