소프트웨어 개발에 대한 점진적 접근과 반복적 접근의 차이점은 무엇입니까?


16

증분 방식은 제품이 완료 될 때까지 모델이 (좀 더 때마다 추가) 단계적으로 설계, 구현 및 테스트 소프트웨어 개발의 방법이다. 개발 및 유지 관리가 모두 포함됩니다. 제품이 모든 요구 사항을 충족하면 완제품으로 정의됩니다.

반복 설계 , 프로토 타입, 분석, 테스트 및 제품이나 공정을 정제의 순환 과정을 기반으로 설계 방법론이다. 가장 최근의 설계 반복 테스트 결과에 따라 변경 및 수정됩니다. 이 프로세스는 궁극적으로 디자인의 품질과 기능을 향상시키기위한 것입니다. 반복적 인 디자인에서 디자인 된 시스템과의 상호 작용은 프로젝트의 연속 버전 또는 디자인의 반복이 구현 될 때 프로젝트를 알리고 발전시키기위한 연구 형태로 사용됩니다.

두 가지 방법 모두 시스템의 일부를 생성하고 모든 테스트 사례를 통과하도록 정제하고 시스템의 다른 구성 요소를 추가하고 다시 정제하는 것입니다. 시스템이 완료 될 때까지 반복됩니다.

이 두 가지 소프트웨어 설계 방법의 실제 차이점은 무엇입니까

이 두 가지 방법을 결합하여 반복적이고 점진적인 설계 접근 방식 을 형성하는 방법

답변:


13

증분 접근법은 일련의 단계 번호를 사용 및 개발 진행의 선형 경로에 처음부터 끝까지 간다.

증분 개발은 설계, 구현, 테스트 / 검증, 유지 보수 단계에서 수행됩니다. 이것들은 하위 단계로 더 나눌 수 있지만 대부분의 증분 모델은 동일한 패턴을 따릅니다. 폭포 모델은 기존의 점진적 개발 방식이다.

반복 접근이 단계의 정해진 번호가없고, 오히려 개발 사이클에서 수행된다.

반복 개발은 개별 기능의 진행 상황을 추적하는 데 덜 관심이 있습니다. 대신, 작업 프로토 타입을 먼저 작성하고 모든주기마다 증분 개발 단계가 수행되는 개발주기에 기능을 추가하는 데 중점을 둡니다. 애자일 모델링 은 일반적인 반복 접근 방식입니다.


증분 모델은 원래 공장에서 사용 된 기존의 조립 라인 모델을 따르도록 개발되었습니다. 불행히도 소프트웨어 설계 및 개발은 실제 제품 제조와 거의 관련이 없습니다. 코드는 개발의 완제품이 아닌 청사진입니다. 좋은 디자인 선택은 종종 개발 과정에서 '발견'됩니다. 적절한 상황없이 개발자를 일련의 가정으로 잠그면 최선의 경우 설계가 불량하거나 최악의 경우 개발이 완전히 탈선 될 수 있습니다.

반복적 인 접근 방식은 이제 소프트웨어 개발의 자연스러운 진행 경로에 더 잘 맞기 때문에 일반적인 관행이되고 있습니다. 가정을 기반으로 '완벽한 디자인'을 추구하기 위해 많은 시간과 노력을 투자하는 대신 반복적 인 접근 방식은 사용자의 요구에 맞게 시작하고 발전하기에 '충분한'무언가를 만드는 것입니다.

tl; dr-증분 모델로 에세이를 작성하는 경우 한 번에 한 문장 씩 완성하기 위해 완벽하게 글을 쓰려고합니다. 반복 모델로 작성했다면, 대략적인 초안을 작성하고 일련의 개정 단계를 통해 개선하기 위해 노력할 것입니다.


최신 정보:

보다 실용적인 예에 ​​맞게 '증분 접근법'에 대한 정의를 수정했습니다.

증분 접근법을 처리해야한다면 대부분의 계약이 수행되는 방식입니다 (특히 군대). 전형적인 'Waterfall Model'의 많은 미묘한 변형에도 불구하고 대부분 / 모두 실제로 동일한 방식으로 적용됩니다.

단계는 다음과 같습니다.

  • 계약 상
  • 예비 설계 검토
  • 중요한 디자인 검토
  • 사양 동결
  • 개발
  • 수비 / 통합
  • 확인
  • 신뢰성 테스트

PDR 및 CDR은 사양이 생성되고 수정되는 곳입니다. 사양이 완료되면 스코프 크리프를 방지하기 위해 사양을 동결 해야 합니다. 소프트웨어가 기존 시스템을 확장하는 데 사용되는 경우 통합이 발생합니다. 확인은 응용 프로그램이 사양과 일치하는지 확인하기위한 것입니다. 신뢰성은 장기간에 걸쳐 응용 프로그램이 신뢰할 수 있음을 입증하기위한 테스트로, 시스템이 특정 가동 시간 비율 (예 : 3 개월 동안 99 % 가동 시간)을 유지해야하는 SLA (서비스 수준 계약)와 유사하게 지정할 수 있습니다. ).

이 모델은 용지에 직접 지정하기는 쉽지만 생산하기 어려운 시스템에 적합합니다. 소프트웨어는 종이에 어느 정도의 세부적인 정도 (예 : UML)로 지정하기가 매우 어렵습니다. 관리 / 계약을 담당하는 대부분의 '비즈니스 유형'은 소프트웨어 개발과 관련하여 코드 자체 사양 이라는 것을 인식하지 못합니다 . 용지 사양은 종종 코드 자체만큼 작성하는 데 많은 시간 / 노력이 걸리며 실제로는 불완전하거나 열등한 것으로 판명됩니다.

증분 방식은 코드 자체를 사양으로 처리하여 낭비되는 시간 / 자원에 대한 시도입니다. 여러 수정 단계를 통해 용지 사양을 실행하는 대신 코드 자체가 여러 번의 수정주기를 거칩니다.


증분 설명이 나에게 잘못 보이지만 좋은 예를 들어 +1
Basilevs

@Basilevs 더 나은가요?
Evan Plaice

7
폭포는 증분되지 않습니다. 증분은 구체적으로 소프트웨어를 한 조각 씩 작성 (디자인부터 테스트까지)하는 것을 말합니다. 기존의 폭포수 모델에서는 모든 디자인, 구현 및 테스트를 모두 수행합니다. 전혀 증분되지 않습니다. 요구 사항 엔지니어링을 먼저 처리 한 다음 각 증분을 설계, 구현, 테스트 (및 다른 증분과 통합 및 테스트)하는 증분으로 프로젝트를 분할하는 등 폭포의 변형이 있지만 이는 전통적이지 않습니다. 폭포.
Thomas Owens

0

다른 형용사와 마찬가지로 소프트웨어 개발의 대부분은 ... 의존합니다!

문맥과 용어가 어떻게 사용되는지에 달려 있습니다. 따라서 소프트웨어 개발에 대한 점진적 접근 방식과 반복적 접근 방식의 차이점에 대해 묻고 있지만 인용문에서는 반복적 인 디자인을 보았습니다.

소프트웨어 개발에 대한 접근 방식으로 구체적으로 대답하십시오.

질문이 잘못되었습니다. 둘 중 하나가 아닙니다. 프로세스의 다른 부분을 참조하므로 직접 비교할 수 없습니다.

반복적 인 소프트웨어 개발은 ​​본질적으로 증분입니다. 증분 소프트웨어 개발을 반복 할 필요는 없습니다.

증분은 약간의 움직임입니다. 수행되는 작업의 각 단계를 참조하는 방법입니다.

반복은 작업주기입니다.

따라서 반복은 사용되는 전체 개발주기를 나타냅니다. 증분은 작업의 각 개별 단계를 나타냅니다. 반복은 증분을 생성하며, 이는 소프트웨어에 대한 하나 이상의 실제 증분으로 구성됩니다 (보통 더 많음).

결론적으로...

반복적 인 소프트웨어 개발은 ​​일반적인 폭포 방식과 달리 반복적으로 작업하는 소프트웨어 개발에 대한 특정 유형의 접근 방식입니다. 스크럼이 좋은 예입니다.

점진적 소프트웨어 개발이보다 일반적이며 단계적으로 작업을 진행하는 것을 의미하며 이는 대부분 (아마도?) 접근 방식의 특징입니다. 그렇기 때문에이 용어는 현대적이고 민첩한 접근 방식과 관련하여 더 자주 사용되는데, 이는 아마도 매우 유사한 두 용어 사이의 혼동을 설명합니다.

그리고 마지막으로, 그것은 용어가 사용될 때의 의미에 달려 있으며, 종종 화자, 시간 등에 따라 크게 다릅니다!

보다 흥미로운 질문은 소프트웨어 개발에 대한 경험적 접근이이 모든 것에 어디에 적합한가 하는 것입니다. 반복적 인 접근 방식의 아름다움은 그것이 마술이 일어나는 곳에서 경험주의를 가능하게한다는 것입니다.

도움이 되었기를 바랍니다.

이 기사에서는 예제와 함께 잘 설명합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.