1. 소프트웨어의 품질과 생산성 향상을 위한 기반, SW 개발방법론의 개요
가. SW 개발방법론(SW Development Methodology)의 정의
- 소프트웨어 개발의 생명주기에 따른 정형화된 방법 및 절차, 도구 등을
체계적으로 정리하여 표준화한 문서
- 실무적 관점에서 작업활동, 절차, 산출물, 기법 등을 정리
나. 개발방법론의 목적
- 개발경험 축적 및 재활용을 통한 개발 생산성 향상(작업의 표준화/모듈화)
- 공정의 가시화를 통한 효과적인 프로젝트 관리
- 정형화된 절차와 표준용어의 제공으로 의사소통 수단 제공
2. SW 개발방법론의 진화 및 주요 구성요소
가. 개발방법론의 진화
- 개발방법론이 진화함에 따라 유지보수 용이, 생산성 증대됨
나. 개발방법론의 주요 구성요소
구성요소 | 내 용 | 비 고 |
---|---|---|
작업절차 (Process) | - 프로젝트 수행 시 이루어지는 작업단계의 체계 - 단계별 활동, 활동별 세부작업 열거, 활동순서 명시 | 단계-활동-작업 |
작업방법 (Method) | - 각 단계별 수행해야 하는 일 - 절차/작업방법(누가, 언제, 무엇을 작업하는지 기술) | 작업방법 |
산출물 | - 각 단계별 산출물 목록 및 양식 | 설계서 등 |
관리 | - 프로젝트의 진행 기록 - 계획수립, 진행관리, 품질, 외주, 예산, 인력관리 등의 기록 | 계획서, 실적, 품질보증 등 |
기법 | - 각 단계별 작업수행 시 기술 및 기법의 설명 | 구조적, 객체지향, ERD, DFD 등 |
도구 | - 기법에서 제시된 각 기법별 지원도구에 대한 사용 표준 및 방법 | CASE, UML 등 |
구분 | 설명 | 특징 |
---|---|---|
구조적 방법론 | 정형화된 분석절차에 따라 사용자 요구사항을 파악하여 문서화하는 체계적인 분석이론 | 프로세스 중심 도형중심 분석도구 이용 DFD,DD,Mini-SPEC |
정보공학 방법론 | 기업정보시스템에서 공학적 기법을 적용하여 시스템의 계획, 분석, 설계 및 구축을 하는 데이터중심 방법론 | 기업정보시스템중심 ISP필수, 데이터중심 CASE도구 등 공학적 접근 사용자 참여 데이터와 프로세스의 상관분석 |
객체지향 방법론 | 분석과 설계 및 개발에 있어서 객체지향기법을 활용하여 시스템을 구축하고자 하는 방법론 | -업무영역을 객체 집합으로 이해하고 시스템구축 -자료와 기능을 캡슐화 -메세지를 통한 객체 상호작용 -안정된 모델 -중요 측면만 모델링하므로 분석 초점이 명확 |
CBD방법론 | -재사용 가능한 컴포넌트 개발 또는 상용컴포넌트를 조합하여 어플리케이션 개발 -생산성과 품질을 높이고, 유지보수 비용을 최소화할 수 있는 개발 방법 | -컴포넌트기반 개발 -반복점진적 개발프로세스 -표준화된 산출물 작성 -컴포넌트 재작을 통한 재사용성 향상 |
3. 개발방법론의 비교
구분 | 구조적방법론 | 정보공학방법론 | 객체지향방법론 | CBD방법론 |
---|---|---|---|---|
개념 | 정형화된 분석절차 프로세스 중심 | CASE도구 등 공학적접근 데이터모델 중심 | 객체지향개념 사용자관점분석설계 | 컴포넌트개발 및 조합 재사용중심 |
시기 | 1970년대 | 1980년대 | 1990년대 | 2000년대 |
중점 | 기능중심 | 자료구조중심 | 객체중심 | 컴포넌트중심 |
특징 | 분할과 정복 하향식 기능분해 | 데이터와 프로세스 균형 기업정보시스템 | 캡슐화,추상화 다형성,상속성 정보은익 | 반복,점진적 재사용성 생산성 품질향상 유지보수최소 |
장점 | 프로세스 중심 개발 유용 | 자료중심 비교적 안정적 | 자연스럽고 유연 재사용성 향상 | 생산성, 품질 비용위험 개선 SW 위기극복 |
단점 | -기능은 불안전 요소 -자료 정보은익 불가 -낮은 재사용, 유지보수성 | -APP은 여전히 기능적 설계 -기능의 유지보수, 재사용성 낮은 | -실질적 재사용 낮음 -기본적 SW기술 필요 | -컴포넌트유통 환경 개선필요 -테스트환경 부족 -컴포넌트평가 인증환경 미흡 |
목표 | 비즈니스 프로세스 자동화 | 경영전략적 정보시스템 구축 | 재사용 시스템 | 컴포넌트 개발 및 활용 |
산업 구조 | 소품종 다량생산 | 다품종 소량생산 | 인터넷비즈니스 | 인터넷비즈니스 |
접근 방법 | 프로세스중심 | 데이터중심 | 객체중심 (프로세스+데이터) | 컴포넌트중심 |
생명주기 모델 | 폭포수모델 | 폭포수모델 프로토타이핑 | 반복적개발 | 반복적개발 |
모델링 | 기능모델링 | 데이터모델링 프로세스모델링 | 객체모델링 | 객체모델링 컴포넌트모델링 |
개발 방식 | 하향식 | 하항식 | 상향식 | 상향식 |
자동화 | 수작업가능 | 자동화도구 요구 | 자동화도구 필요 | 자동화도구 |
계획 산출물 | 도메인분석 프로젝트계획서 | 도메인분석 프로젝트계획서 | Biz Process/Concept Model 프로젝트계획서 | Biz Process/Concept Model 프로젝트계획서 |
분석 산출물 | DFD | ERD,기능차트 Event모델 | 유즈케이스 dgm 시퀀스 dgm 클래스 dgm | 유즈케이스 dgm 비즈니스유형 dgm 컴포너트 dgm |
설계 산출물 | 구조도 프로그램사양서 | APP구조도 프로그램사양서 테이블정의서/목록 | 시퀀스 dgm 클래스 dgm 컴포넌트 dgm 배포 dgm | 시퀀스 dgm 클래스 dgm 컴포넌트 dgm |
지원언어 | COBOL VB, PASCAL | COBOL, C, VB, PASCAL | C++, JAVA C#, VB | 원칙적으로 개발언어 무관 |
"끝"
댓글 없음:
댓글 쓰기