2012-09-21 3 views
1

안녕하세요. 이미 처리 된 경우 알려 주시기 바랍니다.유한 상태 기계를 내 응용 프로그램에 통합하려면 어떻게합니까?

저는 주로 수치적인 소프트웨어 작성에 정신이 팔렸지만 응용 디자인에 있어서는 약간의 멍청한 반응을 보입니다.

필자는 기본적으로 다른 데이터 스트림이나 정적 파일에서 입력을 받아 일부 데이터 분석을 수행하고 화면이나 파일 등으로 데이터를 출력하는 라이브러리를 작성했으며 GUI 애플리케이션을 작성하여 조금만 작성하기로 결정했습니다. 더 사용자 친화적 인.

라이브러리 호출을 수행해야하는 순서는 매우 간단하지만 응용 프로그램이있는 상태에 따라 이벤트를 처리해야하는 제약이 있습니다. 사용자가 이미 다른 곳에서 처리하는 동안 데이터 소스에서 잡아 당기기를 원하지 않습니다.

그래서 유한 상태 기계를 사용하기로 결정했습니다. 그러나 유한 상태 시스템을 응용 프로그램에 통합하는 가장 좋은 방법이 무엇인지 궁금합니다. 내 라이브러리에 공개 인터페이스로 만들어야합니까? 아니면 본질적으로 MVC 프레임 워크에서 컨트롤러를 모델로 사용하고 GUI를 GUI로 사용해야합니까? 아니면 응용 프로그램의 흐름을 제어하는 ​​더 좋은 방법이 있습니까?

도움 주셔서 감사합니다.

답변

1

당신이 맞습니다. GUI =보기, FSM = 컨트롤러, 라이브러리 + 정적 데이터 + 데이터베이스 + 모델.

그렇다면 FSM을 두 부분으로 나눌 수 있는지 확인해보십시오. 상태 전이 정의 자체는 선언으로 만들어야 상태 규칙을 쉽게 변경할 수 있습니다. FSM은 상태 규칙베이스의 규칙을 사용하는 단순한 상태 전달자 여야합니다.

XML의 변형 인 PMML을 사용하여 규칙을 선언적으로 저장할 수 있습니다.

이 한 번 봐, 내가 더 설득력있는 말을하려고하는지 설명합니다 : http://en.wikipedia.org/wiki/ADAPA

은 (ADAPA 관련이없는)

+0

안녕 Srini합니다. 빠른 응답에 감사드립니다. 내가 올바른 방향으로 가고 있다는 것을 아는 것이 좋다. 나는 PMML을 살펴 보았고 또한 SCXML을 보았습니다. SCXML은 또한 XML로 상태 머신을 선언하는 방법을 제공합니다 (분명히 Qt와 함께 사용할 수도 있음). 그러나 FSM을 코드로 직접 구현할 것이라고 생각합니다. 최소한 당분간은. 다행히도 필자가 응용 프로그램을 잘 디자인하면 FSM 구현을 나중에 변경하는 것이 좋을 경우 나중에 변경하는 것이 그리 어렵지 않을 것입니다. – jmp1985

관련 문제