Dev ETC/UML2009. 2. 13. 18:05

정보공학(Information Engineering)은 기업의 업무처리용 SW개발에 적용된 모델링
체계
입니다. 정보공학은 구조적 기법중 하나로 처리절차보다는 기업의 정보구조를
중시하는 모델링 체계입니다. 다음은 정보공학에서 정의한 세 가지 관점의 모델링입니다.

구조적 기법

프로세스 모델링

프로세스 모델링은 SW시스템의 기능을 구조적으로 정의해 나가는 과정입니다.
업무를 분석함으로써 도출한 업무 기능을 계층적으로 분할하여 기능-서브기능-
프로세스-서브프로세스-단위 프로세스
로 분할하여 나가는 것입니다.

이렇게 정의해 나가면 프로세스 모델의 최 하단에는 시스템을 구성하는 최소의
프로그램 단위가 정의됩니다. top-down방식을 적용한 이 프로세스 모델링의
결과물을 "기능차트"라고 합니다.

이벤트 모델링

이벤트란 시스템이 기능으로 처리하여야만 하는 시스템 내,외부의 사건입니다.
이벤트 모델링은 시스템이 처리해야 하는 이벤트는 무엇이 있으며, 이벤트가
발생하였을 때 시스템이 어떤 순서로 어떻게 반응
해야 하는 가를 정의하는 것입니다.

이 이벤트 모델링은 사건과 처리라는 자연스런 문제해결 논리를 시스템 구축과정에
응용한 것으로, 모든 사건과 모든 처리는 곧 시스템이 되는 것으로 생각할 수 있습니다.

데이터 모델링

데이터 모델링은 시스템이 어떤 정보를 내부에서 관리하고, 유지해야 하는지를
정의
하는 과정입니다. 데이터 모델링은 위 두 가지 모델링을 포함한 정보공학의
세 가지 모델링 중 가장 중시되고, 중앙에 존재하는 모델입니다.

정보공학에서의 이 데이터 모델링에 기존의 Entity Relationship Diagram(ERD)
적극 수용하여, 데이터 모델의 정합성과 일관성을 확보하려고 하였습니다.

개요

객체지향 모델링 특히 UML(Unified Modeling Language)을 적용한 객체지향
모델링은 현존하는 모든 모델링 기법에 비해 진보된 것입니다. 정보공학이 제공하는
프로세스 모델링, 이벤트 모델링, 데이터 모델링은 객체지향 모델링에서도 수용하고
있으며, 다른 방식의 모델링 체계도 제공하기 때문입니다. 물론, 정보공학 모델링
방식 그대로를 수용한 것은 아니며 다른 형식으로 같은 목적을 달성할 수 있게
제공합니다.

객체지향 모델링은 정보공학에는 없는 동적 모델링과 아케텍처링을 제공합니다.

동적 모델링

SW의 단위 구성원(객체지향에서는 객체)이 동적으로 어떤 연관관계를 가지면서
동작하는가를 정의하는 과정입니다. 주어진 이벤트와 동적 여건에 대하여 어떤
객체들이 관여하게 되고, 이들 간에는 어떤 순서로 어떤 메시지를 교환하면서 외부의
요청을 처리하는 지를 정의하는 것입니다.

즉, 문제를 해결해 가는 시스템 내부의 처리과정을 정의해 나가는 것이 동적
모델링입니다. 동적 모델링을 수행하면 불필요한 실행모듈을 줄이고 S/W시스템을
오류없이 정확하게 동작하게 하고, 프로그램 코딩 근거를 제시
하게 됩니다.

SW 아키텍쳐링

아키텍쳐는 S/W시스템 구성요소들을 책임과 역할에 따라 엄격하게 분류하고,
구성요소간 상호작용의 원칙을 정의
한 것을 말합니다. 객체지향 기법하에서는
아키텍쳐의 표현이 용이하게 됩니다. S/W 시스템 개발시 효율적인 아키텍쳐를
구현하면, 유지보수가 쉬워지고, 재사용에 의한 개발 생산성도 높아집니다.

또한 다른 시스템과의 통합을 고려할 때 이의 분석평가를 위해서는 반드시 대상
시스템의 아키텍쳐를 정의하고 분석해야 합니다. 객체지향은 이 작업을 위한 최적의
방법을 제공합니다.

정보공학과 객체지향 모델링의 차이점

정보공학 모델링과 객체지향 모델링의 차이점을 정리하면 다음과 같습니다.

정보공학은 비즈니스 분석을 지원하는 적절한 모델이 없고, 동적 모델링과
아키텍쳐링 관련 모델도 없음을 알 수 있습니다. 반면에 개발(코딩) 단계에서는
객체지향 모델링과 차이가 없습니다. 이 표를 보면 풍부한 모델링을 지원하는
객체지향 체계가 보다 진보된 방식임을 알 수 있습니다.

객체지향 모델링(UML 기반)

분석
(비즈니스
모델링)

프로세스 모델링(기능챠트)

이벤트 모델링

(이벤트 목록/시나리오)

유즈케이스 모델링

(유즈케이스 다이어그램)

데이터 모델링(ER Diagram)

비즈니스 개념 모델링

(클래스 다이어그램)

없음

비즈니스 프로세스 모델링

(액티비티 다이어그램)

비즈니스 객체 생명주기 모델링

(스테이트차트 다이어그램)

설계
(S/W
모델링)

없음

아키텍쳐 설계

(컬레보레이션 다이어그램)

S/W 동적 모델링

(시퀀스 다이어그램)

Component 모델링

(Componet 다이어그램)

프로그램 설계

(프로그램 사양서)

클래스 상세설계

(클래스 다이어그램)

User Interface 설계

(화면 레이아웃)

User Interface 설계

(화면 레이아웃)

Data Base 설계

(테이블 정의서)

Data Base 설계

(테이블 정의서)

개발

프로그램 코딩(프로그램)

프로그램 코딩(프로그램)

테스트(테스트 결과)

테스트(테스트 결과)

Posted by Huikyun