Nnnnnnnnn
개발프로세스 모델 본문
Software Development Process Model
이전 개발 방식 -> Waterfall (Non-working model). 예를 들어 Design에서 넘어가는 단계에서 문제가 발생했을 시, 다시 처음부터 돌아간다.
반복과 증가 프로세스. 모듈 하나 만들고 그 모듈에 대한 test까지 끝낸다. 그리고 다음 모듈 단계로 넘어간다. 즉, 반복하면서 통합하는 것이다. 맨 마지막 단계에서 수정하는 것이 아닌 그때 그때 수정하는 방식이다. timeboxed 라는 의미를 예를 든다면, 만약 term이 3주였을 시 3주동안 계획상의 업무가 제대로 이루어지지 않았더라도 3주의 term을 지키고 다음으로 넘기는 것이다. 3주 동안 Embrace change를 통해 개발-피드백-조정의 변경들을 받아들여 3주마다 계속 변경을 반복한다.
이러한 프로세스의 장점은 앞 단계에서 계속 실행하는 것을 바꿔가기 때문에 프로젝트에 대한 실패 위험이 적다. 또한 3주마다의 output(prototype)을 눈으로 볼 수 있으며, 초반부터 개발자말고도 이해관계자들을 참여하도록 한다.
Rational Unified Process(RUP)
반복과 진화의 Process. Inception 단계는 초반이기 때문에, 대락적인 비전 제시와 범위, 추측을 한다. Elaboration에서는 더 나아가 자세한 비전, backbone인 core architecture 시행 등을 한다. refine된 결과를 제대로 알 수 있다. Transition 단계는 alpha test나 beta test를 예로 들 수 있다.
Agile Methods
agile의 뜻은 '민첩한'이다. Agile development methods는 적용가능한 planning과, 변화에 대한 빠르고 유연한 반응이 가능하다. Agile의 예로 XP와 Scrum이 있다. XP는 코드를 작성할 때 test 코드도 같이 작성한 후에 같이 나간다. Scrum은 매일 meeting을 진행한다. scrum meeting으로 짧게 한다.
Agile은 빠르고 지속적인 소프트웨어로 고객을 만족시키는 것에 가장 우선순위를 둔다. 비즈니스 사람들과 개발자들은 반드시 매일 함께 업무를 진행하며, 팀 내에서 최상의 효율적인 방법과 능률을 위해 face-to-face conversation을 지향한다. Agile modeling의 목적은 문서화가 아니라, 주로 이해하는것이다.
'Software Design' 카테고리의 다른 글
Logical Architecture using Layers (0) | 2018.01.28 |
---|---|
System Sequence Diagrams (0) | 2018.01.28 |
Domain Modeling (0) | 2018.01.28 |
Inception (0) | 2018.01.13 |
Object Oriented (0) | 2017.12.20 |