SW개발방법론선정
소프트웨어 개발 방법론의 개념
- 소프트웨어 개발, 유지보수 등에 필요한 여러 가지 일들의 수행 방법과 이러한 일들을 효율적으로 수행하려는 과정에서 필요한 각종 기법 및 도구를 체계적으로 정리하여 표준화한 것
- 소프트웨어 개발 방법론의 목적은 소프트웨어 생산성과 품질 향상
- 개발 방법론의 종류
- 구조적 방법론
- 정보공학 방법론
- 객체지향 방법론
- 컴포넌트 기반 방법론
- 애자일 방법론
- 제품 계열 방법론
1. 구조적 방법론
- 폭포수 모델과 같이 정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 체계적인 분석 이론
- 프로그램 로직 중심의 방법론
- 쉬운 이해 및 검증 가능한 프로그램 코드 생성이 목적
2. 정보공학 방법론
- 정보시스템 개발에 필요한 관리절차와 작업기법을 체계화한 방법론
- 자료(Data) 중심의 방법론
- 대규모 정보시스템을 구축하는데 적합
3. 객체지향 방법론
- 현실 세계의 개체를 기계의 부품처럼 하나의 객체로 만들어, 객체들을 조립해서 필요한 소프트웨어를 구현하는 방법론
- 설계 시 자료와 자료에 가해지는 프로세서를 묶어 정의하고 관계를 규명
- 객체지향 방법론의 구성 요소에는 클래스, 객체, 메시지
- 특징
- 캡슐화
- 정보은닉
- 추상화
- 상속성
- 다형성
4. CBD; Componet Based Development 컴포넌트 기반 방법
- 기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론
- 컴포넌트의 재사용이 가능하여 시간과 노력을 절감
- 유지 보수 비용을 최소화하고 생산성 및 품질을 향상
5. Agile 애자일 방법론
- 고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발 과정을 진행하는 방법론
- 소규모 프로젝트, 고도로 숙달된 개발자, 급변하는 요구사항에 적합
6. 제품 계열 방법론
- 특정한 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론
- 임베디드 소프트웨어를 만드는데 적합
- 입베디드 SW
- 디지털TV, 냉장고 등 해당 제품의 특정기능에 맞게 특화되어 제품 자체에 포함된 SW
- 영역공학
- 영역 분석, 영역 설계, 핵심 자산을 구현하는 영역
- 응용공학
- 제품 요구 분석, 제품 설게, 제품을 구현하는 영역
- 영역공학과 응용공학의 연계를 위해 제품의 요구사항, 아키텍처, 조립 생산이 필요
소프트웨어 개발 방법론 결정
- 프로젝트 관리와 재사용 현황을 소프트웨어 개발 방법론에 반영하고, 확정된 소프트웨어 생명 주기와 개발 방법론에 맞춰 소프트웨어 개발 단계, 활동, 작업, 절차 등을 정의하는 것
소프트웨어 개발 방법론 결정 절차
- 프로젝트 관리와 재사용 현황을 소프트웨어 개발 방법론에 반영
- 개발 단계별 작업 및 절차를 소프트웨어 생명 주기에 맞춰 수립
- 결정된 소프트웨어 개발 방법론의 개발 단계별 활동 목적, 작업 내용, 산출물에 대한 매뉴얼 작성