CS/더 깊게 깊게
개발 방법론 정리
서영환
2024. 7. 29. 16:49
- 활동과 단계
- 요구사항 분석 : 새로운 제품이나 변경된 제품에 부합하는 요구와 조건을 결정 하는 단계
- 기능 명세 : 분석한 요구사항을 기능 별로 구분하여 문서화 단계
- 구조 & 설계 : 기능 명세에서 만들어진 무서를 토대로 제품의 구조 혹은 설계 방향 결정 하는 단계
- 구현 & 테스팅 : 구조 & 설계를 바탕으로 직접 제품을 제작 후 테스트하는 단계
- 배치(배포) & 유지보수 : 테스트까지 완료된 제품을 배치(배포) 후 유지보수 하는 단계
- 개발모형
- 애자일 소프트웨어 개발 & 애자일 개발 프로세스
- 프로젝트의 생명주기동안 반복적으로 개발 촉진
- 문서를 통한 방법 이 아닌 실질적인 코딩을 통한 방법론
- 앞으로 예측하며 개발을 하지 않고, 일정한 주기를 가지고 끊임없이 프로토 타입을 만들어 내어 그때 그때 필요한 요구사항을 더하고 수정하여 하나의 커라다란 소프트웨어를 개발 해 나가는 것
- 동적 시스템 개발 방법 (DSDM : Dynamic systems development method)
- 점진적 제공, 유연성, 협업 및 효율성의 원칙에 기반을 둔 민첩한 프로젝트 관리 및 소프트웨어 개발 프레임워크
- 기능적 소프트웨어 시스템의 지속적인 협업, 유연성 및 가속화된 제공을 강조하는 프레임워크를 만드는 것
- 8가지 필수 원칙을 기반
- 비즈니스 요구 사항에 집중
- 정시에 배달
- 협업
- 품질에 대해서는 절대 타협하지 마세요
- 확고한 기반을 바탕으로 점진적으로 구축
- 반복적으로 개발
- 지속적이고 명확하게 의사소통하라
- 통제력 입증
- 타당성 조사, 비즈니스 연구, 기능 모델 반복, 설계 및 구축 반복, 구현이라는 5가지 순차적 단계
- 나선 모형
- 고전적인 소프트웨어 개발 방법론 중 하나
- 다음의 사항을 나선 모양을 그리며 반복
- 요구 사항 및 위험 분석
- 계획 및 건축가 반복
- 구현
- 테스트 및 확인
- 매번 반복을 하기전에 위험요소를 알아내고 사전에 제거
- 매번 다음 단계의 반복을 진행 시킬때마다, 기능적, 성능적 측면에서 가장 위험요소가 높은 부분을 먼저 진행하고 없애나간다
- 가장 위험요소가 큰 부분 혹은 버그가 발생하기 쉬운 측면을 절대로 개발의 마지막 단계까지 미루지 않는다는 것이 키워드
- 폭포수 모델
- 개발의 흐름이 마치 폭포수처럼 지속적으로 아래로 향하는 것처럼 보이는 데서 이름이 붙여졌다
- 소프트웨어 요구사항 분석 단계에서 시작하여, 소프트웨어 설계, 소프트웨어 구현, 소프트웨어 시험, 소프트웨어 통합 단계 등을 거쳐, 소프트웨어 유지보수 단계
- 완전히 순차적으로 한 단계, 한 단계를 진행
- 전 단계가 수행되어 완료되기 전에는 다음 단계로 진행할 수 없도록 제한
- 대규모 프로젝트에 자주 사용
- 고속 응용 프로그램 개발 (RAD, Rapid Application Developement)
- 빠르고 쉽게 응용 프로그램을 만들 수 있는 시각적 도구
- 통합 개발 환경과 같은 높은 기능의 개발 환경을 사용하는 프로그래밍의 자동화나, 시각적인 사용자 인터페이스의 설계, 모듈개발 등의 기능을 포함
- 많은 소프트웨어에 공통으로 처리하는 소스를 직접 짜지 않아도 자동으로 기능을 추가해 주는 것이 고속 개발 도구이며, 프로그래머는 각 소프트웨어에 필요한 저만의 기능에 대한 소스만을 짜면 된다
- 프로그램의 개발이 쉬워진다
- 개발된 소프트웨어의 동작 속도가 느려지거나 실행 파일의 크기가 커질 수 있다
- 래셔널 통합 프로세스(RUP, Rational Unified Process)
- IBM의 래셔널 소프트웨어 부서에서 만든 객체 지향 개발 방법론
- 하나로 고정되어 쓰인 프로세스가 아니라, 적응이 가능한 프로세스 프레임워크
- 개발 조직과 소프트웨어 프로젝트 팀이 필요한 바에 따라서 프로세스의 요소들을 선택하여 조절할 수 있도록 설계
- 6 가지 기준
- 발견된 위험 요소를 원동력으로 반복적으로 개발
- 필수사항을 관리
- 컴포넌트 기반의 구조를 도입
- 소프트웨어를 시각화
- 품질을 지속적으로 확인
- 변화를 통제
- 테스트 주도 개발(TDD, Test-driven development)
- 매우 짧은 개발 사이클을 반복
- 개발자는 먼저 요구사항을 검증하는 자동화된 테스트 케이스를 작성
- 테스트 케이스를 통과하기 위한 최소한의 코드를 생성
- 작성한 코드를 표준에 맞도록 리팩토링
- 리팩토링 : 결과의 변경 없이 코드의 구조를 재조정함
- 애자일 소프트웨어 개발 & 애자일 개발 프로세스
https://appmaster.io/ko/glossary/dongjeog-siseutem-gaebal-bangbeob-dsdm
동적 시스템 개발 방법(DSDM) | AppMaster
DSDM(동적 시스템 개발 방법)은 점진적 제공, 유연성, 협업 및 효율성의 원칙에 기반을 둔 민첩한 프로젝트 관리 및 소프트웨어 개발 프레임워크입니다. 포괄적이고 반복적인 접근 방식으로서 개
appmaster.io
소프트웨어 개발 방법론 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전.
ko.wikipedia.org