(1) Rumbaugh의 OMT(Object Modeling Technique)기법
⭐️
[1] 객체 모형화(object modeling)
- 객체들을 식별하고 객체들간의 관계를 정의
[2] 동적 모형화(dynamic modeling)
- 시스템이 시간 흐름에 따라 변화하는 것을 보여주는 상태 다이어그램(state diagram)을 작성
[3] 기능 모형화(function modeling)
- 시스템 내에서 데이터가 변하는 과정을 나타낸다.
(2) Booch의 OOAD(Object Oriented Analysis and Design)
(3) Coad/Yourdon 방법
⭐️- E-R 다이어그램을 사용하여 객체의 행위를 모델링하며 객체식별, 구조식별, 주체정의, 속성 및 관계정의, 서비스정의 등의 과정으로 구성된다.
(1) UML의 정의
[1] 시스템의 여러 다양한 특성을 표현할 수 있는 방법이 있으며, 객체지향 분석/설계 표현 방법에 대한 표준으로 받아들여지고 있다.
[2] 객체 지향 분석/설계용의 모델링 언어이며, 종래의 객체 지향 방법론과 함께 제안되어 모델링 언어 표기법의 표준화를 목적으로 한 것이다.
(2) UML의 특성
[1] 시스템의 정적인 측면 : Class Diagram 정적인 구조
[2] 시스템의 동적인 측면 : Sequence Diagram, State Diagram
[3] 시스템의 기능적 측면 : Use Case Diagram
(3) UML의 종류
[1] Use Case(사용 사례) Diagram
⭐️ [2]Class Diagram 정적 구조
[3] Sequence Diagram 동적 구조
[4] Collaboration Diagram 동적 구조
[5] State Diagram 동적 구조
[6] Activity Diagram 동적 구조
[7] Component Diagram 정적 구조
정적 구조 : Class Diagram, Component Diagram
동적 구조 : Sequence Diagram, Collaboration Diagram, State Diagram, Activity Diagram
(1) 애자일의 정의
[1] 애자일 소프트위어 개발(Agile software development) 혹은 애자일 개발 프로세스는 소프트웨어 엔지니어링에 대한 개념적인 얼개로, 프로젝트의 생명주기동안 반복적인 개발을 촉진한다.
[2] 애자일 개발 프로세스란 어느 특정 개발 방법론을 가리키는 말은 아니고 "애자일개발을 가능하게해 주는 다양한 방법론 전체를 일컫는 말이다.
[3] eBusiness 시장 및 SW개발환경 등 주위변화를 수용하고 이에 능동적으로 대응하는 여러 방법론의 통칭한다.
(2) 애자일의 특성
[1] Predictive라기보다 Adaptive(가변적 요구사항에 대응)
[2] 프로세스중심이 아닌 사람 중심(책임감이 있는 개발자와 전향적인 고객)
[3] 전반적인 문서화보다는 제대로 동작하는 소프트웨어
[4] 계약 협상보다는 고객 협력
[5] 계획을 따르기보다는 변화에 응대함
[6] 모든 경우에 적용되는 것이 아니고 중소형, 아키텍처 설계, 프로토타이핑에 적합하다.
(3) 애자일의 종류
⭐️ [1] 익스트림 프로그래밍(Extreme Programing, XP)
- 애자일 개발 프로세스의 대표자로 애자일 개발 프로세스의 보급에 큰 역활을 하였다.
- 이 방법은 고객과 함께 2주 정도의 반복개발을 하고, 테스트와 우선 개발을 특징으로 하느 명시적인 기술과 방법을 가지고 있다.
[2] 스크럼
[3] 크리스털 패밀리
[4] Feature-Driven Development
[5] Adaptive Software Development, ASD
⭐️ (4) 익스트림 프로그래밍(eXtreme Programming, XP)
1) 개요
[1] 익스트림 프로그래밍(eXtreme Programming, XP)는 켄트 백 등이 제안한 소프트웨어 개발방법이다.
[2] Agile Process의 대표적 개발법이며, 비즈니스 상의 요구가 시시각각 변동이 심한 경우에 적합한 개발 방법이다.
[3] 개발자, 관리자, 고객이 조화를 극대화하여 개발생산성을 높이고자 하는 접근법이다.
⭐️ 2) XP(eXtreme Programming)의 5가지 핵심 가치
[1] 존중(Respect) : 팀 기반의 활동 중 팀원 간의 상호 존중을 강조
[2] 단순성(Simplicity) : 사용되지 않는 구조와 알고리즘 배제
[3] 의사소통(Communication) : 개발자, 관리자, 고객간의 원활한 의사소통
[4] 피드백(Feedback) : 지속적인 테스트와 통합, 반복적 결함 수정, 빠른 피드백
[5] 용기(Courage) : 고객의 요구사항 변화에 능동적인 대처
⭐️ 3) XP(eXtreme Programming)의 실천사항
[1] 점증적인 계획 수립 : 계획세우기, 우선순위와 기술사항 고려 범위 결정
[2] 소규모 시스템 릴리즈 : 짧은 사이클로 버전 발표
[3] 시험우선개발 : 테스팅, 단위 테스트를 계속 작성
[4] 리팩토링
[5] 페어pair 프로그래밍 : 가장 좋은 구현 방법 고민, 전략적인 방법 고민
[6] 공동 소유권 : 개발자들 누구나 코드 수정
[7] 지속적 통합
[8] 유지할 수 있는 속도 : 1주에 40시간 작업
[9] 현장의 고객 : 고객도 한 자리에
[10] 표준에 맞춘 코딩