• 검색 결과가 없습니다.

3.6.1 시뮬레이션 환경의 구현

본 장에서 제시한 설계 및 개선사항은 반영하여 개발한 ASAP의 주요 구성을 Figure 19에 클래스 다이어그램으로 도시하였다.

시뮬레이터의 구동, 정보전달, 시각화 등 주요 업무를 관장하는 ASAPEnvironment 클래스를 중심으로 관련 클래스를 도시하였다.

시뮬레이션 프레임워크인 ASAPEnvironment 클래스는 주요 기능이 집중되어 있고, 이에 따라 가장 많은 필드와 메소드를 갖고 있다. 시뮬레이션을 실제로 구동하는 기능과 동시에 그래프를 그려주고, 시뮬레이션에 필요한 많은 클래스 사이를 중계한다.

연결된 클래스로 Type 클래스는 시스템의 연결구조를 네트워크로 나타낼 때, 방향성의 유무를 정의하는 기능을 수행한다.

컴포넌트의 속성을 이용하여 시각화하는 기능은 NetworkViewer 클래스에서 대부분의 작업을 독립적으로 수행한다. 프레임워크를 상속한 ASAPEnvironmentSqlite 클래스는 동일한 시뮬레이션 환경을 제공하면서, 모든 모의 결과를 데이터베이스로 저장하는 기능을 제공한다. 데이터베이스를 이용하면, 결과를 재현할 수 있는 장점이 있는 반면, 계산시간이 증가하는 단점이 있으므로 연구자가 상황에 따라 선택할 필요가 있다. 컴포넌트의 연결구조는 TreeNode 클래스에서, 연결정보는 Link 클래스에서 관리하며, 각 TreeNode는 시뮬레이션 모델인 IASAPComponent와 1:1로 매칭된다. 이러한 구조를 통하여 연구자가 개발한 컴포넌트는 런타임 시에 동적으로 TreeNode에 할당된다.

개발된 프레임워크는 라이브러리 형태로 제공되어, 연구자가 해당 코드를 컴파일하거나 소스 코드를 수정할 필요가 없이 클래스경로에 추가하여 이용하면 된다. 연구자가 개발한 모델 컴포넌트는 프레임워크와 별도로 관리가 가능하며, 컴포넌트 연결 및 속성을 정의한 실행용 클래스와 모델 컴포넌트 클래스 파일만 작성하여 보관하면 된다. 모델을 공유하기 위해서도 연구자가 개발한 클래스 파일만 공개하면, ASAP 환경이 갖추어진 시스템에서 구동이 가능하다.

3.6.2 시뮬레이션 모델의 구현

시뮬레이션을 수행하기 위하여 개발한 모델 컴포넌트 및 이와 관련된 클래스를 Figure 20과 같이 클래스 다이어그램으로 도시하였다. 컴포넌트 클래스를 중심으로 관계도를 살펴보면, 그림의 가운데 있는 IASAPComponent 인터페이스가 가장 중요하다. 이 클래스를 구현하면, 기본적으로 ASAP 환경에서 모델을 구동할 수 있다.

인터페이스에는 정보를 교환하기 위한 기능뿐만 아니라, 화면에 컴포넌트 노드를 그리기 위한 속성이나, 종료조건, 시뮬레이션 환경에 대한 레퍼런스 등 다양한 메소드가 존재하고, 대부분의 메소드는 모델마다 중복된다. 따라서 인터페이스의 공통된 기능을 구현한 추상클래스인 DefaultModel를 제공하였다. 모델 컴포넌트를 개발하기 위해서는 DefaultModel를 상속하여 모델에 필요한 지배방정식을 java 코드로 작성하여 구현하면 된다.

클래스 다이어그램에는 본 연구에서 개발한 다양한 모델 컴포넌트도 확인할 수 있다. 각 모델 컴포넌트 클래스는 DefaultModel를 상속하며, 생성자, initialize(), process(), isComplete() 메소드를 공통적으로 오버라이드하여 구현하고 있다.

모델에 따라 추가적인 메소드가 존재하나, 대체적으로 메소드 구성이 비슷한 것을 확인할 수 있다.

모델 컴포넌트와 연결된 클래스를 살펴보면, DefaultModel 클래스 외에는 연결된 클래스가 존재하지 않으며, 시뮬레이션 환경인 ASAPEnvironment 클래스 및 연결 정보를 관리하는 TreeNode와는 직접적으로 연결되지 않고, DefaultModel 클래스와 IASAPComponent 인터페이스를 경유하여 연결되어 있음을 확인할 수 있다. 이러한 구조는 연구자가 만든 모델 컴포넌트 클래스와 시뮬레이션 환경 사이에 느슨하게 결합함으로써 개방형 구조를 제공하고자 하였다. 즉, 연구자가 개발한 모델을 추가하거나 삭제하더라도 ASAP를 구동하는 과정에서 영향을 미치지 않으므로 오류가 발생하지 않고 정상 작동이 가능하다.

Figure 20 Class diagram related to implement system models

제 4 장 지역시스템 문제의 적용

Table 3 Classification of example problems

Topological link Physical link Homogeneous Water Tank

Three-reservoir

Consolidation Soil moisture

Chloride Heterogeneous Infection Truss

Cloning Growth of plant Equivalent truss