개발방법론이란, 소프트웨어 공학의 원리를 소프트웨어 라이프 사이클에 적용한 개념으로 소프트웨어 개발을 위해 작업활동, 절차, 산출물, 기법등을 체계적으로 정리한 것이다. 일부 서적에서는 개발방법론이라는 것 자체를 혐오하는 글도 본 적이 있다. 혐오의 이유는 개발방법론이 정해진 절차나 기법을 이용하여 소프트웨어를 개발하기 때문에 사람의 생각 자체가 없어지는 것이 가장 큰 이유라고 한다. 어쨌든 개발방법론은 성공적인 프로젝트를 위한 하나의 로드맵이다. 개발방법론이 새로운 것이 아니라면 이미 많은 프로젝트에서 적용되고 성공이 어느 정도 검증된 것이므로 이를 참고하여 프로젝트가 처한 현실에 맞게 커스터마이징하여 사용하는 것은 나쁘지 않으리라 생각한다. 개발방법론은 다음과 같은 구성요소를 가진다.
- 작업절차 (단계별 활동, 단계별 세부작업, 활동순서)
- 작업방법(누가, 언제, 무엇을 작업하는지 기술)
- 산출물
- 관리(계획수립, 진행, 품질, 외주, 예산, 인력등)
- 기법(작업수행시 필요한 기술 및 기법)
- 도구
개발방법론은 1970년대 부터 현재까지 발전해 왔다. 다음은 개발방법론들이다.
기법 | 설명 |
구조적 기법 | 1970년대 시작, 기능중심 |
정보공학 기법 | 1980년대 시작, 자료구조 중심 |
객체지향 기법 | 1990년대 시작, 객체 중심 |
CBD 기법 | 2000년대 시작, 컴포넌트 중심 |
1970년대에 시작된 구조적 기법이 CBD 기법보다 나쁘다고 혹은 좋다고는 말 할 수 없다. 각각 장/단점이 존재하기 때문에 프로젝트에 어떤 개발방법론이 가장 어울리는지 살펴보아야 한다. 즉, 프로젝트 특성을 무시한 채 특정 개발방법론을 강요하거나 형식적인 사용으로 문서만 잔뜩 만들어 내고 별다른 효과를 얻지 못 할 수도 있다는 것이다. 그래서 개발방법론을 적용할 경우에는 다음을 고려해야 한다.
- 프로젝트의 특성과 규모
- 소프트웨어 품질 관리의 인식 제고
- 효과적인 활용 가치 인식
필자가 생각하기로는 현재까지 출현한 개발방법론들 중에 정보공학방법론이 데이터베이스 시스템을 개발하는 방법론으로 가장 적합하다고 여겨진다. 정보공학방법론 자체가 데이터 중심의 방법론이기 때문에 데이터베이스 개발과는 매우 잘 맞는다. 정보공학방법론은 데이터와 프로세스간의 상호관계를 중요하게 여기며, 다음 그림과 같은 피라미드 구조를 가진다.
단계별 수행내용은 다음과 같다.
- 정보전략계획
- 경영전략, 조직 및 목표에 대한 조사
- 업무에 대한 개략적인 분석
- 현행시스템의 분석 및 평가
- 경영전략, 조직 및 목표에 대한 조사
- 업무영역분석
- 데이터 모델링
- 프로세스 모델링
- CRUD 메트릭스
- 데이터 모델링
- 업무시스템설계
- 업무 프로세스의 정의
- 프리젠테이션 레이어(사용자뷰) 설계
- 분산 설계
- 업무 프로세스의 정의
- 시스템구축
- 응용 프로그램 작성
업무영역분석 단계에서 데이터 모델링과 프로세스 모델링을 한다. 그런데 여기에 논란거리가 있다.
- 데이터 모델링 -> 프로세스 모델링 -> CRUD 메트릭스
- 프로세스 모델링 -> 데이터 모델링 -> CRUD 메트릭스
- 프로세스 모델링과 데이터 모델링 병행 -> CRUD 메트릭스
'IT > Database' 카테고리의 다른 글
[NoSQL] MongoDB 아키텍쳐 (0) | 2018.04.26 |
---|---|
[NoSQL] MongoDB (문서, 콜렉션 ,데이터베이스) (0) | 2018.04.26 |
[NoSQL] Mongo DB 설치 법입니다 (0) | 2018.04.26 |
[DB] 데이터모델링이란 (0) | 2018.04.21 |
[DB] 소프트웨어 개발 프로세스 (0) | 2018.04.19 |
[DB] 집합적사고방식 (0) | 2018.04.19 |
[DB] 3단계스키마구조 (0) | 2018.04.18 |
[DB] 데이터베이스 시스템 (0) | 2018.04.18 |