정보공학 개발 방법론의 절차
ISP(Information Strategy Planning): 정보전략계획 - 기업의 중장기 정보화 전략 수립
BAA(Business Area Analysis): 업무영역분석 - 업무영역별 데이터와 프로세스 모델링, 연관분석
BSD(Business System Design): 업무시스템설계 - 프로세스와 데이터 설계
SC(System Construction): 시스템구축 - 데이터 상세설계, 프로그램 코딩
정보공학 개발 방법론은 비즈니스 시스템 규모 성장과 소프트웨어 공학 발전에 따라 1980년대 중반에 등장한 방법론으로 기업의 전사적인 관점에서 출발해 데이터 중심으로 시스템을 구축하는 방법론이다. 기업의 중장기 정보화 전략을 수립하는 ISP와 업무 영역을 분석하는 BAA(Business System Design) 그리고 시스템을 구축하는 SC(System Construction) 단계로 구성된다.
ISP단계에서는 기업의 경영전략을 뒷받침할 수 있는 정보화 전략을 수립하기 위해 업무프로세스와 시스템을 분석하고 미래 아키텍처와 전략계획을 수립하게 된다.
BAA단계에서는 기업의 업무 현황을 분석해서 개념 수준의 데이터와 프로세스를 설계하는 업무분석 단계이다.
BSD단계는 실질적으로 시스템을 설계하는 단계로 우리가 많이 사용하고 있는 논리적 ER다이어그램으로 데이터를 설계하고 분할 다이어그램 액션 다이어그램 의존 다이어그램을 사용해 프로세스를 설계한다.
SC단계에서는 물리적 데이터베이스를 설계하고 BSD단계에서 작성한 산출물을 바탕으로 프로그램을 개발하게 된다. 이론적인 정보공학 방법론에서는 BSD단계에서 작성한 산출물을 바탕으로 프로그램 코드를 생성할 수 있는데, 대부분의 프로젝트에서는 설계문서만 만들고 코드는 개발자가 직접 만드는 방식으로 개발을 진행한다.
정보공학 개발 방법론의 특징
ISP 중심 - 기업의 경영전략을 지원하기 위한 IT 전략수립에서 출발
데이터 중심 - 비즈니스의 중심은 데이터, 데이터 관점의 설계
공학적 접근 - Case Tool과 같은 자동화 도구 사용 설계 후 코드 자동생성
정보공학 개발 방법론은 다양한 특징을 가지고 있지만 대표적으로 다음의 세개로 요약할 수 있다. 첫째 정보공학 개발 방법론은 ISP중심이다. ISP를 통해 기업 전체적인 업무와 정보화 현황을 정리한 다음 시스템 구축을 위한 계획을 수립한다. 둘째로 데이터 중심 방법론이다. 비즈니스의 중심은 데이터에 있다고 생각하고 IT도 데이터 관점으로 설계한다. 마지막으로 공학적으로 접근한다는 특징을 가지고 있다. 케이스 툴과 같은 자동화 도구를 통해 설계하고 코드를 자동으로 생성한다. 생성된 코드는 프로그램으로 동작하지 않는다. 하지만 프로그램이 가져야 하는 전체적인 윤곽을 잡아주는 역할을 한다.
현재 산업계에서 가장 많이 사용하는 방법론은 정보공학 방법론이다. 기업에서 3~5년 주기로 ISP 프로젝트를 통해 정보화 전략을 수립하고 그에 따른 정보 시스템을 구축한다. 기업 업무 중심에는 데이터베이스가 있으면 시스템은 데이터를 어떻게 하면 잘 쌓을지 그리고 어떻게 데이터를 활용해 기업의 생산성을 높일지 고민하면서 발전하고 있다. 지금 화두가 되는 인공지능 기술도 기업에서 쌓아놓은 데이터 기반 하에 성능을 발휘할 수 있다.
프로젝트 관점에서 정보공학 방법론을 살펴보면 실제 프로젝트 개발 과정에서 필요한 산출물의 종류는 그렇게 많지 않다. 설계 시 스토리보드, 데이터 설계서, UI 설계서 등을 작성하고 개발 과정에서는 이를 바탕으로 물리적 테이블과 프로그램 코드가 만들어진다. 이 관점에서 BAA에 해당하는 요구분석 단계에서는 요구사항 명세서가 만들어지고 BSD에 해당하는 시스템 설계 단계에서는 논리 ERD와 업무 프로세서를 설명하는 프로세스 구조도/흐름도가 만들어 진다. 그리고 SC에 해당하는 개발 단계에서는 물리 ERD, UI, 프로그램 코드가 개발된다.
정보공학 방법론은 일반적으로 수행하는 개발방식이 정보공학 방법론의 간소화 버전이라 생각하면 된다.
'개발 > 소프트웨어공학' 카테고리의 다른 글
CBD 개발 방법론 (0) | 2020.06.06 |
---|---|
객체지향 방법론 (0) | 2020.06.05 |
소프트웨어 개발 방법론 (0) | 2020.06.05 |
SOLID - 단일 책임 원칙(Single Responsibility Principle) (0) | 2020.06.05 |
SOLID - 의존성 역전 원칙(Dependency Inversion Principle) (0) | 2020.06.05 |