state machine 예제 속시원내과 | 2019년 8월 2일

turnstile 상태 머신은 가능한 각 상태, 각 입력에 따른 출력(컴퓨터에 주어진 입력에 따라) 및 각 입력에서 생성된 출력 사이의 전환을 표시하는 상태 전환 테이블로 나타낼 수 있습니다. 모델은 우리가 매우 명확하게 행동을 보여 줄 수 있기 때문에 기계는 매우 강력합니다. 시스템이 견고하고 예기치 않은 방식으로 행동하지 않는다는 것을 증명할 수 있습니다. 엘리베이터의 예를 생각해 보십시오: 시스템을 유한 상태 기계로 모델링함으로써 엘리베이터가 멈추지 않고 위아래로 움직일 수 없음을 보여줄 수 있습니다. 이 디자인은 `위로 이동`상태에서 `아래로 이동`상태로 전환하는 것이 불가능하다는 것을 명확하게 보여줍니다. 이렇게 하면 논리가 단순화되고 예측이 더 어려워집니다. 또한 위에서 언급 한 문제 중 일부를 해결합니다. “가져오기” 상태에 있는 동안 에는 클릭이 허용되지 않습니다. 따라서 사용자가 단추를 클릭하더라도 컴퓨터가 해당 상태에 있는 동안 해당 작업에 응답하도록 구성되지 않았기 때문에 아무 일도 발생하지 않습니다. 이 방법은 코드 논리의 예기치 않은 분기를 자동으로 제거합니다. 즉, 테스트 하는 동안 다룰 코드가 줄어듭니다.

또한 통합 테스트와 같은 일부 유형의 테스트를 자동화할 수 있습니다. 응용 프로그램이 수행하는 작업을 실제로 명확히 파악하는 방법을 생각해 보시고 정의된 상태 및 전환을 통해 어설션을 생성하는 스크립트를 만들 수 있습니다. 이러한 주장은 우리가 가능한 모든 상태에 도달했거나 특정 여정을 다루었다는 것을 증명할 수 있습니다. 다음 개념은 일반적으로 유한 상태 컴퓨터와 소프트웨어 응용 프로그램을 구축하는 데 사용됩니다 : 나는 당신의 포인트를 참조하십시오. 내 목표는 튜링 기계를 실제로 설명하는 것이 아니라 유한 한 상태 기계로 는 할 수없는 일을 할 수있는 기계가 있다는 개념을 소개하는 것입니다. DfA와 달리 NDFI는 ΣSigmaΣ의 모든 심볼에 대해 전환 함수를 가질 필요가 없으며 동일한 심볼에 대해 동일한 상태에서 여러 전환 함수가 있을 수 있습니다. 또한 NDFA는 θepsilonθ로 표시되는 null 전환을 사용할 수 있습니다. Null 전환을 사용하면 기호를 읽지 않고도 컴퓨터가 한 상태에서 다른 상태로 이동할 수 있습니다. 예를 들어 다음 문자열은 모두 이 NDFA에서 인식됩니다. 그러나 실용적인 목적을 위해 SAX 파서는 유효한 XHTML 문서의 하위 집합을 허용하는 유한 상태 시스템입니다.

명확하고 간결한 설명 주셔서 감사합니다.