기초로 볼 수있는 소프트웨어 개발 방법론


10

소프트웨어 개발 방법론이 포함 된 작은 연구 논문을 작성하고 있습니다. 사용 가능한 모든 방법론을 조사하고 있었으며 모든 방법론에서 다른 방법론의 기초를 제공 한 것이 있는지 궁금했습니다.

예를 들어,
애자일, 프로토 타이핑, 클린 룸, 반복, RAD, RUP, 나선형, 워터 폴, XP, 린, 스크럼, V- 모델, TDD 와 같은 방법론을 살펴 봅니다.

: 우리는 말할 수
프로토 타이핑, 반복, 나선형과 폭포가있는 사람들을위한 "기초"인가?

아니면 "기초"와 같은 것이없고 각 방법론마다 고유 한 역사가 있습니까?

물론 연구 논문에 모든 방법론을 설명하고 싶지만 그렇게 할 시간이 없기 때문에 어떤 방법론을 대표자로 볼 수 있는지 알고 싶습니다.

답변:


5

목록의 이름은 모든 방법론이 아니며 다른 수준으로 확장됩니다.

  • 반복은 여러 가지 방법과 기술이 공유하는 특징 인 특성입니다. 스크럼은 반복적 인 방법론이며, TDD는 반복적 인 기술입니다.
  • 나는 애자일을 개념적 / 철학적 인 수준으로 유지되는 방법론 수퍼 셋으로 본다. 객체 지향 프로그래밍에서는이를 추상으로 설명 할 수 있습니다. 즉 인스턴스화 할 수없고 도출 및 구현되어야하는 일련의 값과 원칙입니다. 그것이 Scrum과 XP가하는 일입니다.
  • Cleanroom, RAD, RUP, Spiral, Waterfall, XP, Lean, Scrum, V-Model은 적절한 방법론, 즉 소프트웨어 개발 프로세스입니다 (Scrum은 무거운 프로세스와 달리 가벼운 "프레임 워크"라고 주장하지만)
  • 프로토 타이핑 및 TDD는 기술, 활동입니다. TDD는 XP 연습입니다.

기초가되는 구별은 어려운 일입니다. 역사적 선을 분명히 그릴 수는 있지만 방법론이 다른 것을 기반으로하는 경우는 거의 없습니다. 그것들은 오히려 겹치고 서로 빌리 며 때로는 서로 반응합니다 ... 명백하게 정의 된 분류를 볼 수는 없지만 몇 가지 큰 가족을 요약 할 수는 있습니다.

그것을 보는 또 다른 방법은 세대 관점에서입니다. 엔터프라이즈 소프트웨어 측면에서 우리는 2 세대 방법론을 알고 있다고 말할 것입니다. Waterfall과 V-Model 중 첫 번째는 대부분 다른 공학 분야의 소프트웨어에 적용된 기존 프로세스였습니다. 사람들이 소프트웨어가 완전히 다른 동물이라는 것을 깨닫기 시작했을 때 1 세대 프로세스의 무거움에 반응하여 2 세대 (애자일이라고 불릴 수도 있지만 민첩이라는 용어가 만들어지기 훨씬 전에 시작된)가 시작되었습니다. 소프트웨어와 이러한 기준을 보장 할 수있는 단계는 실제로 구체적이었으며 여전히 탐색해야했습니다.

마지막으로 소프트웨어에서는 다른 분야보다 훨씬 많은 방법이 있지만 방법론은 일을 작동시키기 위해 적용 할 수있는 레시피가 아닙니다. 소프트웨어 개발에는 기술적 측면만큼 많은 인간 측면이 있으며 팀이나 관리자는은 총알 방법론과 맹목적으로 적용해야 할 사항에 대한 점검 목록을 통해 약간의 놀라움을 기대할 수 있습니다. 매년 카오스 보고서와 같은 소프트웨어 프로젝트 성공률에 대한 연구를 살펴보면, 소프트웨어 방법론의 역사는 견고하고 과학적으로 확립 된 반복 가능한 프로세스의 규칙보다 일련의 실패한 시도와 더 관련이 있습니다.


필자는 언급 한 2 세대와 유사한 두 가지 유형의 소프트웨어 프로세스를 비교하는이 학술 논문을 추천합니다. paulralph.name/wp-content/uploads/2011/01/…
guillaume31

3

세 가지가 있습니다 :

  1. 없음 (일명 카우보이 코딩)
  2. 폭포
  3. 신속한 응용 프로그램 개발 (RAD 또는 나선형)

나머지는 이들의 변형 및 조합입니다.

폭포의 인공물 (시작, 요구 사항, 기능 사양, 디자인 사양, 테스트 사양, 품질 관리 사양 등)은 모두 프로젝트에 중요한 사항을 포함하며 대부분은 다른 방법론에 의해 다루지는 않지만 매우 다른 방법. 예를 들어, TDD에서 기능, 사용자 스토리 및 테스트 설명에는 폭포수의 요구 사항, 기능 사양 및 테스트 사양이 포함됩니다. RUP에는 폭포 사양 (예 : 이해 관계자 문서는 시작 문서의 일부)을 분리하는 더 많은 아티팩트가 추가되지만 나선형으로 진행됩니다.

완료되면 결과에 대한 링크를 게시하십시오. 재미있는 종이처럼 들립니다!


@Bas : James Martin은 1991 년 en.wikipedia.org/wiki/
Steven A. Lowe

이 답변에 대단히 감사합니다! 회사에서 수행하는 과제의 일부이므로 나중에 결과를 게시 할 수 있는지 살펴 보겠습니다. 그래서 나는 그것이 회사의 과제와 독립적으로 만들 수 있는지
알아볼 것입니다

0

어쩌면 다음과 같은 골동품 방법론 ( '방법론'이 아닌)을 언급하고 싶을 수도 있습니다.

  1. 일괄 처리 : 한 벌의 카드를 제출하고 다음날 다시 출력물을 가져옵니다. 단점 : 제출 사이에 너무 많은 시간; 디버깅을 위해 코어 덤프를 연구하십시오.

  2. cli 메소드-vi 또는 emacs를 사용한 다음 컴파일하십시오. 커맨드 라인에서 모든 것은 오늘날까지도 리눅스 쉘에서 수행됩니다. 단점 : 디버그하기가 어렵고 (gdb? 당신은 나를 놀리는가?) 40 세의 쉘 명령을 모호하게합니다.

그냥 생각이야


1
이것은 내가 실제로 찾고있는 것이 아닙니다. 소프트웨어 개발 프로젝트에 사용되는 소프트웨어 개발 방법론에 대해 정말로 알고 싶습니다.

0

프로토 타입, 나선형 및 폭포의 세 가지 기본 접근 방식을 언급 할 수 있습니다. Lean, TDD 또는 Cleanroom을 방법론으로 간주하지 않고 방법론의 일부가 될 수있는 프로세스입니다.

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