I.소프트웨어의 품질과 생산성 향상을 위한 기반, SW 개발방법론의 개요
가. 개발방법론(SW Development Methodology)의 정의
- 소프트웨어 개발의 생명주기에 따른 정형화된 방법 및 절차, 도구 등을 체계적으로 정리하여 표준화한 문서
- 실무적 관점에서 작업활동, 절차, 산출물, 기법 등을 정리
나. 개발방법론의 목적
- 개발경험 축적 및 재활용을 통한 개발생산성 향상
- 공정의 가시화를 통한 효과적인 프로젝트 관리
- 정형화된 절차와 표준용어의 제공으로 의사소통 수단 제공
II.개발방법론의 진화 및 주요 구성요소
가.개발방법론의 진화
-개발방법론이 진화함에 따라 유지보수 용이, 생산성 증대됨
나.개발방법론의 주요 구성요소
구성요소 |
내 용 |
비 고 |
작업절차 (Process) |
- 프로젝트 수행 시 이루어지는 작업단계의 체계 - 단계별 활동, 활동별 세부작업 열거, 활동순서 명시 |
단계-활동-작업 |
작업방법 (Method) |
- 각 단계별 수행해야 하는 일. - 절차/작업방법(누가, 언제, 무엇을 작업하는지 기술) |
작업방법 |
산출물 |
- 각 단계별 산출물 목록 및 양식 |
설계서 등 |
관리 |
- 프로젝트의 진행 기록 - 계획수립, 진행관리, 품질, 외주, 예산, 인력관리 등의 기록 |
계획서, 실적, 품질보증 등 |
기법 |
- 각 단계별 작업수행 시 기술 및 기법의 설명 |
구조적, 객체지향, ERD, DFD 등 |
도구 |
- 기법에서 제시된 각 기법별 지원도구에 대한 사용표준 및 방법 |
Case, UML도구 등 |
III.개발방법론 비교
구분 |
구조적방법론 |
정보공학방법론 |
객체지향방법론 |
CBD방법론 |
|
개념 |
정형화된 분석절차 적용. 프로세스 중심 |
CASE도구 등 공학적 접근 데이터모델 중심 |
객제지향 개념 적용, 사용자관점 분석설계 |
컴포넌트개발 및 조합을 통한 재사용 중심 |
|
시기 |
1970 년대 |
1980 년대 |
1990 년대 |
2000 년대 |
|
중점 |
기능중심 |
자료구조 중심 |
객체 중심 |
컴포넌트 중심 |
|
특징 |
분할과 정복 하향식 기능분해 |
데이터와 프로세스 균형 기업정보시스템중심 |
캡슐화,추상화,다형성,정보은닉,상속성(캡추다정상) 분석초점이 명확 |
반복,점진적 높은 재사용성 생산성/품질향상,유지보수죄소 |
|
장점 |
프로세스 중심 방식 개발 유용 |
자료중심으로 비교적 안정적 |
- 자연스럽고 유연함 - 재사용성 향상 |
- 생산성, 품질, 비용위험 개선 - SW 위기극복 |
|
단점 |
-기능은 불안정한 요소 -데이터 정보은닉 불가 -낮은 재사용, 유지보수성 |
-어플리케이 션은 여전히 기능적 설계 -기능의 유지보수, 재사용성 낮음 |
-실질적인 재사용성 어려움 -기본적 SW기술 필요 |
-컴포넌트 유통 환경 개선필요 -테스트 환경의 부족 -컴포넌트평가, 인증 환경 미흡
|
|
목표 |
비즈니스 프로세스자동화 |
경영전략적 정보시스템 구축 |
재사용 시스템 |
컴포넌트 개발 및 활용 |
|
산업 구조 |
소품종 다량생산 |
다품종 소량생산 |
인터넷비즈니스 |
인터넷비즈니스 |
|
접근 방법 |
프로세스 중심 |
데이터 중심 |
객체중심(프로세스+데이터) |
컴포넌트 중심 |
|
Life cycle |
폭포수 모델 |
폭포수 모델, 프로토타이핑 |
반복적 개발 |
반복적 개발 |
|
모델링 |
기능모델링 |
데이터모델링, 프로세스모델링 |
객체모델링 |
객체모델링, 컴포넌트 모델링 |
|
개발 방식 |
Top-down |
Top-down |
Bottom-up |
Bottom-up |
|
자동화 |
수작업가능 |
자동화도구 요구 |
자동화도구 필요 |
자동화도구 필수 |
|
단계별 산출물 |
계획 |
도메인분석, 프로젝트 계획서 |
도메인분석, 프로젝트 계획서 |
Biz Process/ Concept Model, 프로젝트 계획서 |
Biz Process/ Concept Model, 프로젝트 계획서 |
분석 |
Data Flow Diagram |
ERD,기능차트, Event 모델 |
Use Case DM, Sequence DM, Class DM
DM=Diagram |
Use Case DM, Business type DM, Component DM, 재사용 계획서 |
|
설계 |
Structure chart, 프로그램 사양서 |
어플리케이션 구조도, 프로그램사양서 Table정의서/목록 |
Sequence DM, Class DM, Component DM, Deployment DM |
Sequence DM, Class DM, Component DM |
|
지원 언어 |
Cobol, C, VB, Pascal |
Cobol, C, VB Pascal |
C++,Java, C#, VB |
원칙적으로 개발언어 무관 |